/**
 * Styles principaux — Défi Sans Frontières Maroc 2026
 * Mobile-first · breakpoints 480 / 768 / 1024 / 1440
 */

/* ------------------------------------------------------------------------- Reset minimal */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

body.dsf-landing {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--color-text);
  background-color: var(--color-bg);
  background-image: radial-gradient(1200px 600px at 10% -10%, rgba(101, 192, 221, 0.12), transparent),
    radial-gradient(900px 500px at 90% 0%, rgba(0, 99, 174, 0.08), transparent);
  background-attachment: fixed;
}

body.dsf-landing :focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 2px;
}

.dsf-skip {
  position: absolute;
  left: -9999px;
  top: 0.75rem;
  z-index: 10000;
  padding: 0.5rem 1rem;
  background: var(--color-accent);
  color: var(--color-dark);
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--radius-button);
}

.dsf-skip:focus {
  left: 0.75rem;
}

.visually-hidden {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
  clip-path: inset(50%);
  border: 0;
  padding: 0;
  margin: -1px;
}

.dsf-container {
  width: min(100% - 2rem, var(--maxwidth-content));
  margin-inline: auto;
}

.dsf-container--narrow {
  width: min(100% - 2rem, var(--maxwidth-narrow));
}

/* ------------------------------------------------------------------------- Header */
.dsf-header {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem clamp(1rem, 3vw, 2rem);
  background: linear-gradient(180deg, rgba(14, 27, 44, 0.62), rgba(14, 27, 44, 0.22));
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(12px);
  transition: background 0.2s ease-out, border-color 0.2s ease-out, box-shadow 0.2s ease-out, padding 0.2s ease-out;
}

/* Empêche toute marge UA qui pourrait créer un espace au-dessus du header */
html,
body {
  margin: 0;
  padding: 0;
}

.dsf-header.is-scrolled {
  background: rgba(255, 255, 246, 0.96);
  border-bottom-color: var(--color-border);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
}

.dsf-header.is-scrolled .dsf-header__logo {
  filter: none;
  opacity: 1;
}

.dsf-header__brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.dsf-header__logo {
  height: 40px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.95;
}

.dsf-header__cta {
  font-family: var(--font-heading);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.95rem;
  padding: 0.55rem 1.1rem;
  border-radius: var(--radius-pill);
  background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hot));
  color: var(--color-dark);
  text-decoration: none;
  box-shadow: var(--shadow-cta);
  border: none;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.dsf-header__cta:hover,
.dsf-header__cta:focus-visible {
  transform: translateY(-2px);
}

.dsf-header__end {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-shrink: 0;
}

/* Menu pages équipe (code fso2026) */
.dsf-staff-nav {
  position: relative;
}

.dsf-staff-nav__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 0.45rem 0.75rem;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255, 255, 255, 0.45);
  background: rgba(14, 27, 44, 0.35);
  color: #fff;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.dsf-header.is-scrolled .dsf-staff-nav__toggle {
  border-color: var(--color-border);
  background: var(--color-surface);
  color: var(--color-dark);
}

.dsf-staff-nav.is-unlocked .dsf-staff-nav__toggle {
  border-color: rgba(125, 211, 160, 0.55);
  box-shadow: 0 0 0 1px rgba(125, 211, 160, 0.25);
}

.dsf-staff-nav__toggle:hover,
.dsf-staff-nav__toggle:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  outline: none;
}

.dsf-header.is-scrolled .dsf-staff-nav__toggle:hover,
.dsf-header.is-scrolled .dsf-staff-nav__toggle:focus-visible {
  background: var(--color-bg-soft);
}

.dsf-staff-nav__toggle-icon {
  font-size: 1rem;
  line-height: 1;
}

.dsf-staff-nav__panel {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  z-index: 120;
  width: min(18rem, calc(100vw - 2rem));
  padding: 0.85rem 1rem;
  border-radius: var(--radius-md);
  background: rgba(255, 255, 246, 0.98);
  border: 1px solid var(--color-border);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
  color: var(--color-dark);
}

.dsf-staff-nav__unlock-title,
.dsf-staff-nav__links-title {
  margin: 0 0 0.5rem;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-muted);
}

.dsf-staff-nav__unlock-row {
  display: flex;
  gap: 0.4rem;
}

.dsf-staff-nav__input {
  flex: 1;
  min-width: 0;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: 0.95rem;
}

.dsf-staff-nav__submit {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.85rem;
  padding: 0.45rem 0.85rem;
  border: none;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hot));
  color: var(--color-dark);
  cursor: pointer;
}

.dsf-staff-nav__error {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  color: #b42318;
}

.dsf-staff-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  max-height: min(60vh, 22rem);
  overflow-y: auto;
}

.dsf-staff-nav__list a {
  display: block;
  padding: 0.4rem 0.55rem;
  border-radius: var(--radius-sm);
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--color-dark);
  transition: background 0.15s ease;
}

.dsf-staff-nav__list a:hover,
.dsf-staff-nav__list a:focus-visible {
  background: var(--color-bg-soft);
  outline: none;
}

.dsf-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ------------------------------------------------------------------------- Hero */
.dsf-hero {
  --hero-pad-y: clamp(0.75rem, 2vw, 1.25rem);
  position: relative;
  min-height: min(100svh, 900px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  /* Le header est au-dessus du hero dans le flux : pas de réserve « header » ici. Padding bloc symétrique (safe-area + même gouttière). */
  padding-top: calc(env(safe-area-inset-top, 0px) + var(--hero-pad-y));
  padding-right: clamp(1rem, 4vw, 2rem);
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + var(--hero-pad-y));
  padding-left: clamp(1rem, 4vw, 2rem);
  color: var(--color-white);
  isolation: isolate;
  overflow: hidden;
}

.dsf-hero::before,
.dsf-hero::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 2;
  border-radius: 50%;
  filter: blur(48px);
}

.dsf-hero::before {
  width: min(42vw, 480px);
  height: min(42vw, 480px);
  top: -12%;
  right: -8%;
  background: rgba(110, 231, 255, 0.18);
}

.dsf-hero::after {
  width: min(34vw, 360px);
  height: min(34vw, 360px);
  bottom: -18%;
  left: -6%;
  background: rgba(240, 160, 70, 0.15);
}

.dsf-hero__layer {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  border-radius: 999px;
  opacity: 0.38;
  mix-blend-mode: screen;
}

.dsf-hero__layer--one {
  width: min(44vw, 520px);
  height: min(44vw, 520px);
  right: -10%;
  top: 18%;
  background: radial-gradient(circle, rgba(143, 180, 199, 0.9), rgba(143, 180, 199, 0) 66%);
}

.dsf-hero__layer--two {
  width: min(32vw, 360px);
  height: min(32vw, 360px);
  left: -8%;
  bottom: 10%;
  background: radial-gradient(circle, rgba(244, 169, 76, 0.85), rgba(244, 169, 76, 0) 65%);
}

/**
 * Fond hero (grande « section d’en-tête » sous la barre sticky).
 * Image : remplace assets/img/hero-header-bg.png par ta photo finale (même nom de fichier).
 * Le point d’ancrage à droite garde silhouettes + soleil visibles sur mobile et bureau.
 */
.dsf-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-color: var(--color-bg);
  background-image: linear-gradient(
      120deg,
      rgba(14, 27, 44, 0.82) 0%,
      rgba(14, 27, 44, 0.38) 45%,
      rgba(14, 27, 44, 0.15) 70%,
      rgba(14, 27, 44, 0.35) 100%
    ),
    linear-gradient(
      180deg,
      rgba(14, 27, 44, 0.55) 0%,
      rgba(14, 27, 44, 0.12) 42%,
      rgba(14, 27, 44, 0.55) 100%
    ),
    url("../img/hero-header-bg.png");
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
}

/* Voile : fond lisible derrière la carte vitrée centrée */
.dsf-hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(ellipse 85% 75% at 50% 45%, rgba(8, 10, 16, 0.5) 0%, transparent 62%),
    linear-gradient(
      90deg,
      rgba(10, 14, 22, 0.75) 0%,
      rgba(14, 27, 44, 0.35) 50%,
      rgba(14, 27, 44, 0.2) 72%,
      transparent 92%
    ),
    linear-gradient(180deg, rgba(8, 10, 16, 0.5) 0%, transparent 45%, rgba(8, 10, 16, 0.7) 100%);
}

.dsf-hero__inner {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: min(100%, 36rem);
  margin-inline: auto;
  padding-inline: 0.5rem;
  flex: 0 1 auto;
  min-height: 0;
  transform-style: preserve-3d;
  display: flex;
  justify-content: center;
}

/* Carte glassmorphism + cadrage « luxe » (halo, brillance) */
.dsf-hero__card {
  position: relative;
  z-index: 0;
  overflow: hidden;
  width: 100%;
  text-align: center;
  padding: clamp(1.75rem, 4.5vw, 2.75rem) clamp(1.35rem, 3.5vw, 2rem);
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(15, 18, 28, 0.42);
  box-shadow:
    0 4px 28px rgba(0, 0, 0, 0.4),
    0 0 0 1px rgba(255, 255, 255, 0.06) inset,
    0 1px 0 rgba(255, 255, 255, 0.14) inset,
    0 0 48px rgba(255, 203, 27, 0.08);
}

.dsf-hero__card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 38%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 255, 255, 0.07) 45%,
    rgba(255, 255, 255, 0.16) 50%,
    rgba(255, 255, 255, 0.05) 55%,
    transparent 100%
  );
  transform: translateX(-120%) skewX(-12deg);
  opacity: 0;
  z-index: 0;
}

/* Contenu au-dessus du balayage lumineux */
.dsf-hero__card > * {
  position: relative;
  z-index: 1;
}

@supports (backdrop-filter: blur(14px)) or (-webkit-backdrop-filter: blur(14px)) {
  .dsf-hero__card {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }
}

.dsf-hero__eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem 0.65rem;
  margin: 0 0 1.1rem;
}

.dsf-hero__chip {
  display: inline-block;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.92);
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}

.dsf-hero__cta {
  margin: 1rem 0 0;
  display: flex;
  justify-content: center;
  width: 100%;
}

.dsf-hero__top {
  position: absolute;
  top: calc(-1 * var(--spacing-section) + 1rem);
  left: 0;
  right: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 1rem;
}

.dsf-hero__badge {
  align-self: flex-end;
  margin-top: 3.5rem;
  font-family: var(--font-heading);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.75rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  color: var(--color-sand-light);
  border: 1px solid var(--color-accent);
}

.dsf-hero__h1 {
  font-family: var(--font-heading);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.06;
  font-size: clamp(2rem, 7vw, 2.85rem);
  margin: 0 0 1.1rem;
  max-width: 100%;
  color: #ffffff;
  -webkit-font-smoothing: antialiased;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.45);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .dsf-hero__h1 {
    background-image: linear-gradient(
      188deg,
      #ffffff 0%,
      #faf6ef 35%,
      var(--color-sand-light) 72%,
      rgba(255, 230, 160, 0.95) 100%
    );
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    text-shadow: none;
    filter: drop-shadow(0 3px 28px rgba(0, 0, 0, 0.55)) drop-shadow(0 0 36px rgba(255, 203, 27, 0.15));
  }
}

.dsf-hero__h1-line {
  display: block;
}

.dsf-hero__h1-line + .dsf-hero__h1-line {
  margin-top: 0.18em;
}

.dsf-hero__baseline {
  margin: 0 0 1.1rem;
  padding: 0;
  display: flex;
  justify-content: center;
  width: 100%;
}

.dsf-hero__baseline-pill {
  display: inline-block;
  position: relative;
  z-index: 0;
  overflow: hidden;
  max-width: 100%;
  text-align: center;
  background: linear-gradient(
    125deg,
    var(--color-accent) 0%,
    var(--color-accent-hot) 38%,
    #ffd24a 52%,
    var(--color-accent-hot) 65%,
    var(--color-accent) 100%
  );
  background-size: 240% 240%;
  background-position: 12% 50%;
  color: var(--color-dark);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(0.95rem, 2.4vw, 1.15rem);
  letter-spacing: 0.02em;
  padding: 0.55rem 1rem;
  border-radius: 10px;
  box-shadow: var(--shadow-cta);
}

.dsf-hero__baseline-pill-text {
  position: relative;
  z-index: 1;
}

.dsf-hero__baseline-pill::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background: linear-gradient(
    105deg,
    transparent 20%,
    rgba(255, 255, 255, 0.55) 48%,
    rgba(255, 255, 255, 0.2) 52%,
    transparent 78%
  );
  transform: translateX(-120%) skewX(-14deg);
  opacity: 0;
  pointer-events: none;
}

.dsf-hero__story {
  margin: 0;
  max-width: 100%;
  width: 100%;
  font-size: clamp(0.98rem, 2.2vw, 1.08rem);
  line-height: 1.65;
  text-align: center;
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

.dsf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--font-heading);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 1rem;
  padding: 0.85rem 1.5rem;
  border-radius: var(--radius-pill);
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  overflow: hidden;
}

.dsf-btn--primary {
  background: var(--color-accent);
  color: var(--color-dark);
  box-shadow: var(--shadow-cta);
}

.dsf-btn--primary:hover,
.dsf-btn--primary:focus-visible {
  transform: translateY(-2px);
}

.dsf-btn--primary::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.4) 50%, transparent 70%);
  transform: translateX(-120%);
}

@media (prefers-reduced-motion: no-preference) {
  .dsf-btn--primary:hover::after,
  .dsf-btn--primary:focus-visible::after {
    animation: dsf-shine 0.7s ease forwards;
  }
}

@keyframes dsf-shine {
  to {
    transform: translateX(120%);
  }
}

.dsf-btn--outline {
  background: rgba(255, 255, 255, 0.06);
  color: var(--color-sand-light);
  border: 1px solid var(--color-border);
}

.dsf-btn--outline:hover,
.dsf-btn--outline:focus-visible {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.22);
}

.dsf-hero__meta {
  margin-top: 1rem;
  font-size: 0.88rem;
  line-height: 1.5;
  text-align: center;
  opacity: 0.92;
  color: rgba(255, 255, 255, 0.88);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

/* Entrée visuelle hero (désactivée si reduced-motion) */
@media (prefers-reduced-motion: no-preference) {
  .dsf-hero__eyebrow {
    opacity: 0;
    transform: translateY(1.1rem) scale(0.99);
    animation: dsf-hero-in 0.88s cubic-bezier(0.22, 1, 0.36, 1) 0.1s forwards;
  }

  .dsf-hero__h1 {
    opacity: 0;
    transform: translateY(1.5rem) scale(0.985);
    animation: dsf-hero-in 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.16s forwards;
  }

  .dsf-hero__baseline {
    opacity: 0;
    transform: translateY(1.1rem) scale(0.99);
    animation: dsf-hero-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.28s forwards;
  }

  .dsf-hero__story {
    opacity: 0;
    transform: translateY(0.95rem) scale(0.992);
    animation: dsf-hero-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.4s forwards;
  }

  .dsf-hero__cta {
    opacity: 0;
    transform: translateY(0.85rem) scale(0.99);
    animation: dsf-hero-in 0.88s cubic-bezier(0.22, 1, 0.36, 1) 0.52s forwards;
  }

  .dsf-hero__meta {
    opacity: 0;
    transform: translateY(0.7rem) scale(0.995);
    animation: dsf-hero-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.64s forwards;
  }

  .dsf-hero__card {
    animation: dsf-hero-card-ambient 7.5s ease-in-out infinite;
  }

  .dsf-hero__card::after {
    animation: dsf-hero-card-shine-sweep 7s ease-in-out 1.2s infinite;
  }
}

@keyframes dsf-hero-in {
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .dsf-hero__baseline-pill {
    animation: dsf-baseline-pill-living 5.2s ease-in-out infinite;
    animation-delay: 0.85s;
  }

  .dsf-hero__baseline-pill::before {
    animation: dsf-baseline-pill-shine 7.5s ease-in-out infinite;
    animation-delay: 1.8s;
  }
}

@keyframes dsf-baseline-pill-living {
  0%,
  100% {
    background-position: 12% 50%;
    box-shadow: var(--shadow-cta);
    transform: scale(1);
  }
  40% {
    background-position: 88% 50%;
    box-shadow:
      0 6px 32px rgba(255, 203, 27, 0.48),
      0 0 26px rgba(255, 183, 50, 0.32);
    transform: scale(1.02);
  }
  55% {
    background-position: 70% 50%;
    transform: scale(1.01);
  }
}

@keyframes dsf-baseline-pill-shine {
  0%,
  58% {
    opacity: 0;
    transform: translateX(-120%) skewX(-14deg);
  }
  62% {
    opacity: 0.85;
  }
  70% {
    opacity: 0;
    transform: translateX(120%) skewX(-14deg);
  }
  100% {
    opacity: 0;
    transform: translateX(120%) skewX(-14deg);
  }
}

/* Carte hero : flottement + halo (or / cyan) + brillance */
@keyframes dsf-hero-card-ambient {
  0%,
  100% {
    transform: translateY(0);
    box-shadow:
      0 4px 28px rgba(0, 0, 0, 0.4),
      0 0 0 1px rgba(255, 255, 255, 0.07) inset,
      0 1px 0 rgba(255, 255, 255, 0.15) inset,
      0 0 40px rgba(255, 203, 27, 0.1),
      0 0 64px rgba(110, 231, 255, 0.05);
  }
  50% {
    transform: translateY(-5px);
    box-shadow:
      0 12px 40px rgba(0, 0, 0, 0.48),
      0 0 0 1px rgba(255, 255, 255, 0.1) inset,
      0 1px 0 rgba(255, 255, 255, 0.2) inset,
      0 0 56px rgba(255, 203, 27, 0.2),
      0 0 100px rgba(110, 231, 255, 0.12);
  }
}

@keyframes dsf-hero-card-shine-sweep {
  0%,
  40% {
    opacity: 0;
    transform: translateX(-130%) skewX(-12deg);
  }
  48% {
    opacity: 0.75;
  }
  55%,
  100% {
    opacity: 0;
    transform: translateX(220%) skewX(-12deg);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .dsf-hero__chip {
    animation: dsf-hero-chip-soft 5.5s ease-in-out infinite;
  }
}

@keyframes dsf-hero-chip-soft {
  0%,
  100% {
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
    border-color: rgba(255, 255, 255, 0.2);
  }
  50% {
    box-shadow:
      0 4px 20px rgba(0, 0, 0, 0.35),
      0 0 24px rgba(255, 203, 27, 0.22);
    border-color: rgba(255, 255, 255, 0.38);
  }
}

/* ------------------------------------------------------------------------- Sections génériques */
.dsf-section {
  padding: var(--spacing-section) 0;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  --section-image: none;
  --section-image-opacity: 0;
  --section-image-position: center center;
}

/* Fondu global entre TOUTES les sections (pleine largeur, sans "carreau") */
.dsf-section + .dsf-section {
  margin-top: -1px;
}

.dsf-section--alt {
  background: var(--color-bg-alt);
}

.dsf-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: var(--section-image);
  background-size: cover;
  background-position: var(--section-image-position);
  opacity: var(--section-image-opacity);
  transform: scale(1.03);
}

.dsf-section::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(14, 27, 44, 0.58), rgba(14, 27, 44, 0.7));
}

.dsf-section--alt::after {
  background: linear-gradient(180deg, rgba(14, 27, 44, 0.7), rgba(14, 27, 44, 0.84));
}

.dsf-section > .dsf-container {
  position: relative;
  z-index: 1;
}

/* Image de fond par section (remplaçable dans assets/img/) */
#video.dsf-section {
  --section-image: url("../img/video-bg.jpg"), url("../img/hero-desert-placeholder.svg");
  --section-image-opacity: 0.3;
  --section-image-position: center 25%;
}

/*
 * Concept + Parcours : une seule image sur `.dsf-concept-parcours-wrap` (HTML)
 * → une couche, un scale `cover`, aucune couture entre les deux sections.
 * Fichier : concept-parcours-bg.jpg — idéal 1920 × 2160 (ou 16∶9 double bande).
 */
.dsf-concept-parcours-wrap {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  /* Évite qu’un sub-pixel entre sections laisse voir une autre couleur (bande « bleue ») */
  background-color: var(--color-bg-alt);
}

/* Bloc vidéo + compte à rebours : un seul fond (dégradés type compte à rebours) */
.dsf-video-countdown-wrap {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin-top: -1px;
  background:
    radial-gradient(ellipse 120% 80% at 50% 0%, rgba(110, 231, 255, 0.12), transparent 55%),
    radial-gradient(ellipse 90% 60% at 80% 100%, rgba(255, 203, 27, 0.08), transparent 50%),
    linear-gradient(180deg, #0a0d14 0%, #12151f 45%, #0d1018 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.dsf-video-countdown-wrap .dsf-countdown {
  background: transparent;
  border: none;
  margin-top: 0;
  /* Moins d’espace sous le compte à rebours avant la section « 30 places… » */
  padding-top: clamp(2.75rem, 7vw, 5rem);
  padding-bottom: clamp(1.35rem, 3.2vw, 2.35rem);
  padding-left: clamp(1rem, 4vw, 2rem);
  padding-right: clamp(1rem, 4vw, 2rem);
}

.dsf-video-countdown-wrap #video.dsf-section {
  --section-image: none;
  --section-image-opacity: 0;
  background: transparent;
  /* Compense le padding section plein entre compte à rebours et titre vidéo */
  padding-top: clamp(2rem, 4.5vw, 3.25rem);
}

.dsf-video-countdown-wrap #video.dsf-section::before,
.dsf-video-countdown-wrap #video.dsf-section::after {
  display: none;
}

/* Coller la transition bloc vidéo+compte à rebours -> concept */
.dsf-video-countdown-wrap + .dsf-concept-parcours-wrap {
  margin-top: -1px;
}

.dsf-concept-parcours-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../img/concept-parcours-bg.jpg"), url("../img/hero-desert-placeholder.svg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  opacity: 0.42;
}

/*
 * Un seul voile « bleu » sur tout le bloc (même rendu que .dsf-section--alt::after) :
 * identique sur Le concept et Le parcours, sans cumul ni couture.
 */
.dsf-concept-parcours-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(14, 27, 44, 0.7), rgba(14, 27, 44, 0.84));
}

/* Pas de recollement -1px entre concept et parcours : ça créait parfois une ligne visible */
.dsf-concept-parcours-wrap .dsf-section + .dsf-section {
  margin-top: 0;
}

.dsf-concept-parcours-wrap > .dsf-section {
  position: relative;
  z-index: 2;
  background: transparent;
}

.dsf-concept-parcours-wrap > .dsf-section.dsf-section--alt {
  background: transparent;
}

.dsf-concept-parcours-wrap #concept.dsf-section,
.dsf-concept-parcours-wrap #parcours.dsf-section {
  --section-image: none;
}

.dsf-concept-parcours-wrap #concept.dsf-section::before,
.dsf-concept-parcours-wrap #parcours.dsf-section::before {
  display: none;
}

/* Voiles par section désactivés : le filtre est sur .dsf-concept-parcours-wrap::after */
.dsf-concept-parcours-wrap #concept.dsf-section::after,
.dsf-concept-parcours-wrap #parcours.dsf-section::after {
  display: none;
}

#concept.dsf-section {
  padding-bottom: calc(var(--spacing-section) * 0.55);
}

/* Rapprocher les deux blocs sans chevauchement négatif (évite ligne / flash au pixel près) */
#concept.dsf-section + #parcours.dsf-section {
  margin-top: 0;
  padding-top: var(--spacing-section);
}

/* Après le wrapper : « Pourquoi » n’est plus adjacent à #parcours — recoller le fondu haut */
.dsf-concept-parcours-wrap + #pourquoi.dsf-section::after {
  background:
    linear-gradient(180deg, rgba(18, 21, 31, 0.82) 0, rgba(18, 21, 31, 0) clamp(2.3rem, 7vw, 6rem)),
    linear-gradient(180deg, rgba(14, 27, 44, 0.66), rgba(14, 27, 44, 0.82));
}

/*
 * Pourquoi + Inclus : même logique que Concept + Parcours
 * (une seule image de fond continue pour deux sections).
 */
.dsf-pourquoi-inclus-wrap {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--color-bg-alt);
  margin-top: -1px;
}

.dsf-pourquoi-inclus-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../img/pourquoi-inclus-bg.jpg"), url("../img/hero-desert-placeholder.svg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  opacity: 0.4;
}

.dsf-pourquoi-inclus-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(14, 27, 44, 0.7), rgba(14, 27, 44, 0.84));
}

.dsf-pourquoi-inclus-wrap > .dsf-section {
  position: relative;
  z-index: 2;
  background: transparent;
}

.dsf-pourquoi-inclus-wrap > .dsf-section.dsf-section--alt {
  background: transparent;
}

.dsf-pourquoi-inclus-wrap .dsf-section + .dsf-section {
  margin-top: 0;
}

.dsf-pourquoi-inclus-wrap #pourquoi.dsf-section,
.dsf-pourquoi-inclus-wrap #inclus.dsf-section {
  --section-image: none;
}

.dsf-pourquoi-inclus-wrap #pourquoi.dsf-section::before,
.dsf-pourquoi-inclus-wrap #inclus.dsf-section::before,
.dsf-pourquoi-inclus-wrap #pourquoi.dsf-section::after,
.dsf-pourquoi-inclus-wrap #inclus.dsf-section::after {
  display: none;
}

/* Top fade appliqué uniformément sur chaque section qui suit une autre section */
.dsf-section + .dsf-section::after {
  background:
    linear-gradient(180deg, rgba(18, 21, 31, 0.72) 0, rgba(18, 21, 31, 0) clamp(2.3rem, 7vw, 6rem)),
    linear-gradient(180deg, rgba(14, 27, 44, 0.6), rgba(14, 27, 44, 0.74));
}

.dsf-section--alt + .dsf-section::after,
.dsf-section + .dsf-section--alt::after {
  background:
    linear-gradient(180deg, rgba(18, 21, 31, 0.82) 0, rgba(18, 21, 31, 0) clamp(2.3rem, 7vw, 6rem)),
    linear-gradient(180deg, rgba(14, 27, 44, 0.66), rgba(14, 27, 44, 0.82));
}

#pourquoi.dsf-section {
  --section-image: url("../img/pourquoi-bg.jpg"), url("../img/hero-desert-placeholder.svg");
  --section-image-opacity: 0.32;
  --section-image-position: center 35%;
}

#inclus.dsf-section {
  --section-image: url("../img/inclus-bg.jpg"), url("../img/hero-desert-placeholder.svg");
  --section-image-opacity: 0.3;
  --section-image-position: center 60%;
}

#filtres.dsf-section {
  --section-image: url("../img/filtres-bg.jpg"), url("../img/hero-desert-placeholder.svg");
  /* Un peu plus lisible : 28 % + voile bleu = visuel invisible sur certains écrans */
  --section-image-opacity: 0.46;
  --section-image-position: center 42%;
}

#postuler.dsf-section {
  /* Sinon `position:sticky` sur la barre de progression ne peut pas coller au viewport */
  overflow: visible;
  scroll-margin-top: var(--header-offset);
  --section-image: url("../img/postuler-bg.jpg"), url("../img/hero-desert-placeholder.svg");
  /* Idem + la règle « section adjacente » assombrit encore ::after (voir correctif ci-dessous) */
  --section-image-opacity: 0.5;
  --section-image-position: center 48%;
}

/*
 * #postuler suit directement #filtres : `.dsf-section + .dsf-section::after` ajoute un dégradé
 * supplémentaire très sombre — sans override, postuler-bg.jpg semble « absent » malgré un fichier OK.
 */
#filtres.dsf-section::after,
#postuler.dsf-section::after {
  background:
    linear-gradient(180deg, rgba(18, 21, 31, 0.42) 0, rgba(18, 21, 31, 0) clamp(1.75rem, 5vw, 4.25rem)),
    linear-gradient(180deg, rgba(14, 27, 44, 0.34), rgba(14, 27, 44, 0.52));
}

#stephane.dsf-section {
  --section-image: url("../img/stephane-bg.jpg"), url("../img/hero-desert-placeholder.svg");
  --section-image-opacity: 0.34;
  --section-image-position: center 40%;
}

#fondation.dsf-section {
  --section-image: url("../img/fondation-bg.jpg"), url("../img/hero-desert-placeholder.svg");
  --section-image-opacity: 0.32;
  --section-image-position: center 58%;
}

#faq.dsf-section {
  --section-image: url("../img/faq-bg.jpg"), url("../img/hero-desert-placeholder.svg");
  --section-image-opacity: 0.3;
  --section-image-position: center 30%;
}

.dsf-section--alt .dsf-section__title {
  color: var(--color-text-on-dark);
}

.dsf-section--alt .dsf-section__lead,
.dsf-section--alt .dsf-video__caption {
  color: var(--color-muted-on-dark);
}

.dsf-section__title {
  font-family: var(--font-heading);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-text-on-dark);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  letter-spacing: 0.03em;
  margin: 0 0 0.75rem;
}

.dsf-section__title::after {
  content: "";
  display: block;
  width: 86px;
  height: 3px;
  margin-top: 0.45rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--color-accent), transparent);
}

.dsf-section__lead {
  margin: 0 0 2rem;
  color: var(--color-muted-on-dark);
  max-width: 52ch;
}

/* Reveal progressif au scroll (piloté par design-motion.js) */
@media (prefers-reduced-motion: no-preference) {
  .dsf-reveal {
    opacity: 0;
    transform: translateY(26px) scale(0.98);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }

  .dsf-reveal.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* ------------------------------------------------------------------------- Compte à rebours (lux · bloc vidéo + compte à rebours) */
.dsf-countdown {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(2.75rem, 7vw, 5rem) clamp(1rem, 4vw, 2rem);
  margin-top: -1px;
  background:
    radial-gradient(ellipse 120% 80% at 50% 0%, rgba(110, 231, 255, 0.12), transparent 55%),
    radial-gradient(ellipse 90% 60% at 80% 100%, rgba(255, 203, 27, 0.08), transparent 50%),
    linear-gradient(180deg, #0a0d14 0%, #12151f 45%, #0d1018 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.dsf-countdown__ambient {
  pointer-events: none;
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(circle at 30% 40%, rgba(110, 231, 255, 0.09), transparent 42%),
    radial-gradient(circle at 70% 60%, rgba(255, 203, 27, 0.07), transparent 40%);
  opacity: 0.95;
}

@media (prefers-reduced-motion: no-preference) {
  .dsf-countdown__ambient {
    animation: dsf-countdown-ambient 14s ease-in-out infinite alternate;
  }
}

@keyframes dsf-countdown-ambient {
  0% {
    transform: translate(0, 0) scale(1);
    opacity: 0.85;
  }
  100% {
    transform: translate(2%, -1%) scale(1.05);
    opacity: 1;
  }
}

.dsf-countdown .dsf-container {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: min(100%, 56rem);
}

.dsf-countdown__eyebrow {
  margin: 0 0 0.65rem;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(110, 231, 255, 0.92);
}

.dsf-countdown__title {
  margin: 0 0 0.75rem;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: clamp(1.55rem, 4.2vw, 2.35rem);
  line-height: 1.15;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.98);
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.45);
}

.dsf-countdown__title-strong {
  display: inline-block;
  background: linear-gradient(
    135deg,
    #ffffff 0%,
    var(--color-sand-light) 42%,
    var(--color-accent) 78%,
    #ffe066 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 18px rgba(255, 203, 27, 0.25));
}

.dsf-countdown__note {
  margin: 0 0 clamp(1.75rem, 4vw, 2.5rem);
  font-size: clamp(0.92rem, 2vw, 1.02rem);
  color: var(--color-text-muted);
}

.dsf-countdown__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.85rem, 2.5vw, 1.35rem);
  max-width: 52rem;
  margin-inline: auto;
}

@media (min-width: 768px) {
  .dsf-countdown__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.1rem 1.25rem;
  }
}

.dsf-countdown__unit {
  position: relative;
  padding: clamp(1.1rem, 3vw, 1.65rem) clamp(0.65rem, 2vw, 1rem);
  border-radius: calc(var(--radius-card) + 2px);
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.05);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 1px 0 rgba(255, 255, 255, 0.1) inset,
    0 16px 48px rgba(0, 0, 0, 0.35),
    0 0 40px rgba(110, 231, 255, 0.06);
}

.dsf-countdown__unit::before {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  top: 0;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(255, 203, 27, 0.85), rgba(110, 231, 255, 0.75), transparent);
  opacity: 0.9;
}

@supports (backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px)) {
  .dsf-countdown__unit {
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    background: rgba(18, 21, 31, 0.42);
  }
}

.dsf-countdown__value {
  display: block;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: clamp(2.75rem, 12vw, 5.25rem);
  line-height: 1;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  color: #fff;
  text-shadow:
    0 0 40px rgba(110, 231, 255, 0.2),
    0 2px 24px rgba(0, 0, 0, 0.5);
  background: linear-gradient(188deg, #ffffff 0%, #e8f8ff 38%, var(--color-sand-light) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.dsf-countdown__label {
  display: block;
  margin-top: 0.65rem;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}

.dsf-countdown--ended .dsf-countdown__value {
  opacity: 0.45;
  filter: grayscale(0.25);
}

html.dsf-candidatures-closed #filtres,
html.dsf-candidatures-closed #postuler > .dsf-container > .dsf-section__title,
html.dsf-candidatures-closed #postuler > .dsf-container > .dsf-section__lead,
html.dsf-candidatures-closed #dsf-form-inner {
  display: none !important;
}

html.dsf-candidatures-closed .dsf-candidatures-closed-notice {
  display: block;
}

.dsf-candidatures-closed-notice {
  display: none;
  margin-top: var(--space-lg, 1.5rem);
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(8px);
}

.dsf-candidatures-closed-notice__title {
  margin: 0 0 0.75rem;
  font-family: var(--font-display, "Outfit", sans-serif);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  font-weight: 700;
  color: #fff;
}

.dsf-candidatures-closed-notice__steps {
  margin: 1rem 0;
  padding-left: 1.25rem;
  line-height: 1.65;
}

.dsf-candidatures-closed-notice__hint {
  margin: 0 0 1rem;
  opacity: 0.92;
}

.dsf-candidatures-closed-notice__cta {
  margin: 0;
}

/* ------------------------------------------------------------------------- Vidéo */
.dsf-video {
  max-width: 960px;
  margin: 0 auto;
}

.dsf-video__frame {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-card);
  overflow: hidden;
  border: 2px solid rgba(101, 192, 221, 0.65);
  box-shadow: var(--shadow-card);
  background: #000;
}

.dsf-video__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.dsf-video__cover {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0;
  background: #000;
  cursor: pointer;
}

.dsf-video__thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.92;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.dsf-video__cover:hover .dsf-video__thumb,
.dsf-video__cover:focus-visible .dsf-video__thumb {
  transform: scale(1.03);
  opacity: 1;
}

.dsf-video__play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 1.9rem;
  color: #fff;
  background: rgba(0, 0, 0, 0.6);
  border: 2px solid rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 0 8px rgba(0, 0, 0, 0.2);
  transition: transform 0.2s ease, background 0.2s ease;
}

.dsf-video__cover:hover .dsf-video__play,
.dsf-video__cover:focus-visible .dsf-video__play {
  transform: translate(-50%, -50%) scale(1.06);
  background: rgba(0, 0, 0, 0.75);
}

.dsf-video__caption {
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: var(--color-muted-on-dark);
}

/* ------------------------------------------------------------------------- Cards grid */
.dsf-grid {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .dsf-grid--3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .dsf-grid--2 {
    grid-template-columns: repeat(2, 1fr);
  }
}

.dsf-card {
  position: relative;
  background: var(--color-card);
  border-radius: var(--radius-card);
  padding: 1.5rem;
  box-shadow: var(--shadow-card);
  border: 1px solid var(--color-border);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  transform-style: preserve-3d;
  will-change: transform;
}

.dsf-section--alt .dsf-card {
  background: var(--color-card-dark);
  border-color: var(--color-border-dark);
}

.dsf-section--alt .dsf-card__title {
  color: var(--color-text-on-dark);
}

.dsf-section--alt .dsf-card p {
  color: var(--color-muted-on-dark);
}

.dsf-card:hover,
.dsf-card:focus-within {
  transform: translateY(-4px);
  border-color: rgba(253, 201, 27, 0.55);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

.dsf-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(130deg, rgba(101, 192, 221, 0.16), transparent 45%, rgba(253, 201, 27, 0.14));
  opacity: 0;
  transition: opacity 0.2s ease;
}

.dsf-card:hover::before,
.dsf-card:focus-within::before {
  opacity: 1;
}

/* Icônes SVG des cartes — halo, tracé animé, survol */
.dsf-card__icon-wrap {
  --icon-delay: 0s;
  position: relative;
  width: 3.75rem;
  height: 3.75rem;
  margin-bottom: 0.85rem;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: var(--color-primary);
  background: linear-gradient(145deg, rgba(110, 231, 255, 0.14), rgba(255, 203, 27, 0.07));
  border: 1px solid rgba(110, 231, 255, 0.28);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.2) inset,
    0 4px 20px rgba(0, 0, 0, 0.25);
  overflow: hidden;
  isolation: isolate;
  transition:
    border-color 0.45s cubic-bezier(0.34, 1.2, 0.64, 1),
    box-shadow 0.45s cubic-bezier(0.34, 1.2, 0.64, 1),
    transform 0.45s cubic-bezier(0.34, 1.2, 0.64, 1);
}

.dsf-section--alt .dsf-card__icon-wrap {
  color: var(--color-primary);
  background: linear-gradient(145deg, rgba(110, 231, 255, 0.1), rgba(255, 203, 27, 0.09));
  border-color: rgba(110, 231, 255, 0.22);
}

.dsf-card__icon-wrap::after {
  content: "";
  position: absolute;
  inset: -40%;
  background: linear-gradient(
    105deg,
    transparent 36%,
    rgba(255, 255, 255, 0.14) 48%,
    rgba(255, 203, 27, 0.2) 52%,
    transparent 64%
  );
  opacity: 0;
  transform: translateX(-55%) rotate(11deg);
  pointer-events: none;
  z-index: 1;
}

.dsf-icon-svg {
  position: relative;
  z-index: 2;
  width: 1.85rem;
  height: 1.85rem;
  overflow: visible;
}

.dsf-icon-path {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dsf-icon-fill {
  fill: currentColor;
  stroke: none;
}

.dsf-icon-path--draw {
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
}

@media (prefers-reduced-motion: no-preference) {
  .dsf-card__icon-wrap::after {
    animation: dsf-icon-shimmer 6s ease-in-out infinite;
    animation-delay: calc(var(--icon-delay) + 0.4s);
  }

  .dsf-icon-svg {
    animation: dsf-icon-wow 5.4s ease-in-out infinite;
    animation-delay: var(--icon-delay);
    filter: drop-shadow(0 0 10px rgba(110, 231, 255, 0.28));
  }

  .dsf-icon-path--draw {
    animation: dsf-icon-draw-loop 5.5s ease-in-out infinite;
    animation-delay: calc(var(--icon-delay) + 0.15s);
  }

  .dsf-card:hover .dsf-card__icon-wrap,
  .dsf-card:focus-within .dsf-card__icon-wrap {
    transform: translateY(-5px) scale(1.05);
    border-color: rgba(255, 203, 27, 0.55);
    box-shadow:
      0 0 0 1px rgba(255, 203, 27, 0.15) inset,
      0 10px 36px rgba(0, 0, 0, 0.35),
      0 0 28px rgba(110, 231, 255, 0.22),
      0 0 40px rgba(255, 203, 27, 0.12);
  }

  .dsf-card:hover .dsf-icon-svg,
  .dsf-card:focus-within .dsf-icon-svg {
    animation-duration: 3.1s;
    filter: drop-shadow(0 0 16px rgba(255, 203, 27, 0.45));
  }

  .dsf-card:hover .dsf-icon-path--draw,
  .dsf-card:focus-within .dsf-icon-path--draw {
    animation-duration: 3.1s;
  }

  #concept .dsf-grid--3 .dsf-card:nth-child(1) .dsf-card__icon-wrap {
    --icon-delay: 0s;
  }

  #concept .dsf-grid--3 .dsf-card:nth-child(2) .dsf-card__icon-wrap {
    --icon-delay: 0.18s;
  }

  #concept .dsf-grid--3 .dsf-card:nth-child(3) .dsf-card__icon-wrap {
    --icon-delay: 0.36s;
  }

  #pourquoi .dsf-grid--2 .dsf-card:nth-child(1) .dsf-card__icon-wrap {
    --icon-delay: 0s;
  }

  #pourquoi .dsf-grid--2 .dsf-card:nth-child(2) .dsf-card__icon-wrap {
    --icon-delay: 0.14s;
  }

  #pourquoi .dsf-grid--2 .dsf-card:nth-child(3) .dsf-card__icon-wrap {
    --icon-delay: 0.28s;
  }

  #pourquoi .dsf-grid--2 .dsf-card:nth-child(4) .dsf-card__icon-wrap {
    --icon-delay: 0.42s;
  }
}

@keyframes dsf-icon-wow {
  0%,
  100% {
    transform: translateY(0) scale(1) rotate(0deg);
  }
  22% {
    transform: translateY(-4px) scale(1.06) rotate(-2.5deg);
  }
  48% {
    transform: translateY(-2px) scale(1.08) rotate(2deg);
  }
  72% {
    transform: translateY(-5px) scale(1.04) rotate(-1.2deg);
  }
}

@keyframes dsf-icon-shimmer {
  0%,
  72% {
    opacity: 0;
    transform: translateX(-55%) rotate(11deg);
  }
  78% {
    opacity: 1;
  }
  88% {
    opacity: 0;
    transform: translateX(55%) rotate(11deg);
  }
  100% {
    opacity: 0;
  }
}

@keyframes dsf-icon-draw-loop {
  0%,
  12% {
    stroke-dashoffset: 100;
    opacity: 0.65;
  }
  42%,
  58% {
    stroke-dashoffset: 0;
    opacity: 1;
  }
  88%,
  100% {
    stroke-dashoffset: 100;
    opacity: 0.65;
  }
}

.dsf-card__title {
  font-family: var(--font-heading);
  color: var(--color-primary);
  font-size: 1.25rem;
  margin: 0 0 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.dsf-card p {
  margin: 0;
  color: var(--color-text-muted);
}

/* ------------------------------------------------------------------------- Timeline */
.dsf-timeline {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  position: relative;
  padding-left: 1.25rem;
}

.dsf-timeline--dynamic::before {
  content: "";
  position: absolute;
  left: 0.45rem;
  top: 0.1rem;
  bottom: 0.1rem;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(101, 192, 221, 0.85), rgba(101, 192, 221, 0.08));
}

.dsf-timeline--dynamic::after {
  content: "";
  position: absolute;
  left: 0.45rem;
  top: 0.1rem;
  width: 3px;
  height: calc(100% / 7);
  max-height: 18%;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--color-accent), rgba(253, 201, 27, 0.05));
  box-shadow: 0 0 24px rgba(253, 201, 27, 0.42);
}

@media (min-width: 1024px) {
  .dsf-timeline {
    flex-direction: row;
    align-items: stretch;
    gap: 1rem;
    padding-left: 0;
    padding-top: 2rem;
  }

  .dsf-timeline--dynamic::before {
    content: "";
    position: absolute;
    left: 2%;
    right: 2%;
    top: 0.55rem;
    height: 3px;
    background: linear-gradient(90deg, rgba(101, 192, 221, 0.85), rgba(101, 192, 221, 0.08));
    border-radius: 999px;
    z-index: 0;
  }

  .dsf-timeline--dynamic::after {
    left: 2%;
    top: 0.55rem;
    width: calc((100% - 4%) / 7);
    height: 3px;
    background: linear-gradient(90deg, var(--color-accent), rgba(253, 201, 27, 0.05));
    box-shadow: 0 0 22px rgba(253, 201, 27, 0.42);
  }
}

.dsf-phase {
  flex: 1;
  position: relative;
  z-index: 1;
  padding: 1rem 1rem 1.1rem;
  border-radius: var(--radius-card);
  background: var(--color-card);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-card);
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  backdrop-filter: blur(8px);
}

.dsf-section--alt .dsf-phase {
  background: var(--color-card-dark);
  border-color: var(--color-border-dark);
}

/* Cartes parcours cliquables : léger zoom au survol / focus (popup détail) */
.dsf-phase:hover {
  transform: translateY(-4px);
  border-color: rgba(101, 192, 221, 0.75);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

@media (prefers-reduced-motion: no-preference) {
  .dsf-phase[data-parcours-key]:hover,
  .dsf-phase[data-parcours-key]:focus-visible {
    transform: translateY(-4px) scale(1.02);
  }
}

.dsf-phase__dot {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 50%;
  margin-bottom: 0.55rem;
  border: 2px solid var(--color-sky);
  background: transparent;
  position: relative;
  margin-left: -1.42rem;
  box-shadow: 0 0 0 5px rgba(14, 27, 44, 0.88);
}

.dsf-phase--done .dsf-phase__dot {
  background: var(--color-success);
  border-color: var(--color-success);
}

.dsf-phase--current .dsf-phase__dot {
  background: var(--color-accent);
  border-color: var(--color-accent);
  box-shadow: 0 0 0 5px rgba(14, 27, 44, 0.88), 0 0 0 10px rgba(253, 201, 27, 0.25);
}

@media (prefers-reduced-motion: no-preference) {
  .dsf-phase--current .dsf-phase__dot {
    animation: dsf-pulse 2s ease-in-out infinite;
  }

  .dsf-timeline--dynamic::after {
    animation: dsf-flow 2.8s ease-in-out infinite;
  }
}

@keyframes dsf-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(253, 201, 27, 0.5);
  }
  50% {
    box-shadow: 0 0 0 12px rgba(253, 201, 27, 0);
  }
}

@keyframes dsf-flow {
  0%,
  100% {
    filter: brightness(1);
    opacity: 0.85;
  }
  50% {
    filter: brightness(1.12);
    opacity: 1;
  }
}

@media (min-width: 1024px) {
  .dsf-phase {
    padding-top: 1.35rem;
  }

  .dsf-phase__dot {
    margin-left: 0;
    margin-top: -2rem;
    box-shadow: 0 0 0 6px rgba(11, 13, 18, 0.95);
  }
}

.dsf-phase__label {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-sky);
  font-weight: 700;
  margin: 0 0 0.25rem;
}

.dsf-phase h3 {
  font-family: var(--font-heading);
  color: var(--color-primary);
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
}

.dsf-section--alt .dsf-phase h3 {
  color: var(--color-text-on-dark);
}

.dsf-phase p {
  margin: 0;
  font-size: 0.92rem;
  color: var(--color-text-muted);
}

.dsf-section--alt .dsf-phase p {
  color: var(--color-muted-on-dark);
}

.dsf-phase[role="button"] {
  cursor: pointer;
}

.dsf-phase[role="button"]:focus-visible {
  outline: 2px solid rgba(253, 201, 27, 0.95);
  outline-offset: 3px;
  box-shadow:
    0 0 0 4px rgba(253, 201, 27, 0.18),
    0 24px 60px rgba(0, 0, 0, 0.45);
}

/* ------------------------------------------------------------------------- Parcours popup */
.dsf-parcours-modal {
  width: min(92vw, 46rem);
  max-height: min(86vh, 48rem);
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 18px;
  padding: clamp(1.2rem, 2.6vw, 2rem);
  color: var(--color-text);
  background: rgba(11, 16, 27, 0.62);
  box-shadow:
    0 24px 70px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
  overflow: auto;
}

@supports (backdrop-filter: blur(14px)) or (-webkit-backdrop-filter: blur(14px)) {
  .dsf-parcours-modal {
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }
}

.dsf-parcours-modal::backdrop {
  background:
    radial-gradient(ellipse at 50% 30%, rgba(253, 201, 27, 0.12), rgba(11, 13, 18, 0.86) 62%),
    rgba(8, 10, 16, 0.78);
  backdrop-filter: blur(2px);
}

.dsf-parcours-modal__close {
  position: sticky;
  top: 0;
  margin-left: auto;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}

.dsf-parcours-modal__label {
  display: inline-block;
  margin-top: 0.15rem;
  margin-bottom: 0.35rem;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-dark);
  background: linear-gradient(120deg, var(--color-accent), #ffd56a);
}

.dsf-parcours-modal__title {
  margin: 0 0 0.55rem;
  font-family: var(--font-heading);
  font-size: clamp(1.45rem, 2.8vw, 2rem);
  color: #ffffff;
}

.dsf-parcours-modal__lead {
  margin: 0 0 1rem;
  color: rgba(255, 255, 255, 0.9);
  font-size: 1rem;
  line-height: 1.65;
}

.dsf-parcours-modal__details {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.dsf-parcours-modal__details li {
  position: relative;
  padding: 0.7rem 0.85rem 0.7rem 2rem;
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.06);
}

.dsf-parcours-modal__details li::before {
  content: "✦";
  position: absolute;
  left: 0.7rem;
  top: 0.52rem;
  color: #ffd56a;
  font-size: 0.95rem;
}

.dsf-tag {
  display: inline-block;
  margin-top: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.2rem 0.45rem;
  border-radius: 6px;
  background: rgba(125, 211, 160, 0.15);
  color: var(--color-success);
}

.dsf-tag--live {
  background: rgba(240, 160, 70, 0.2);
  color: var(--color-accent);
}

/* ------------------------------------------------------------------------- Inclus / non inclus */
.dsf-split {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .dsf-split {
    grid-template-columns: 1fr 1fr;
  }
}

.dsf-box {
  padding: 1.25rem;
  border-radius: var(--radius-card);
  background: var(--color-card);
  border: 1px solid var(--color-border);
}

.dsf-box--ok {
  border: 2px solid var(--color-success);
}

.dsf-box--no {
  border: 2px solid var(--color-error);
}

.dsf-inclus-head {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.dsf-inclus-head h3 {
  margin: 0;
  flex: 1;
}

.dsf-box h3 {
  font-family: var(--font-heading);
  margin-top: 0;
  color: var(--color-primary);
}

.dsf-inclus-icon-wrap {
  flex-shrink: 0;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 12px;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition:
    border-color 0.45s cubic-bezier(0.34, 1.2, 0.64, 1),
    box-shadow 0.45s cubic-bezier(0.34, 1.2, 0.64, 1),
    transform 0.45s cubic-bezier(0.34, 1.2, 0.64, 1);
}

.dsf-inclus-icon-wrap--ok {
  color: var(--color-success);
  background: linear-gradient(145deg, rgba(125, 211, 160, 0.18), rgba(110, 231, 255, 0.08));
  border: 1px solid rgba(125, 211, 160, 0.45);
  box-shadow: 0 4px 22px rgba(0, 0, 0, 0.2);
}

.dsf-inclus-icon-wrap--no {
  color: var(--color-error);
  background: linear-gradient(145deg, rgba(248, 113, 113, 0.14), rgba(253, 201, 27, 0.06));
  border: 1px solid rgba(248, 113, 113, 0.4);
  box-shadow: 0 4px 22px rgba(0, 0, 0, 0.2);
}

.dsf-inclus-icon-wrap::after {
  content: "";
  position: absolute;
  inset: -35%;
  background: linear-gradient(
    105deg,
    transparent 28%,
    rgba(255, 255, 255, 0.18) 48%,
    transparent 68%
  );
  transform: translateX(-100%) skewX(-12deg);
  opacity: 0;
  pointer-events: none;
  z-index: 0;
}

.dsf-inclus-svg {
  position: relative;
  z-index: 1;
  width: 1.9rem;
  height: 1.9rem;
}

.dsf-inclus-path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dsf-inclus-path--ring {
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  opacity: 0.95;
}

.dsf-inclus-path--check {
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
}

.dsf-inclus-path--cross-a,
.dsf-inclus-path--cross-b {
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
}

@media (prefers-reduced-motion: no-preference) {
  .dsf-inclus-icon-wrap {
    animation: dsf-inclus-float 4.8s ease-in-out infinite;
  }

  .dsf-inclus-icon-wrap--ok {
    animation-delay: 0s;
  }

  .dsf-inclus-icon-wrap--no {
    animation-delay: 0.35s;
  }

  .dsf-inclus-icon-wrap::after {
    animation: dsf-inclus-shimmer 7s ease-in-out infinite;
  }

  .dsf-inclus-icon-wrap--no::after {
    animation-delay: 1.2s;
  }

  .dsf-inclus-svg {
    animation: dsf-inclus-breathe 5s ease-in-out infinite;
    filter: drop-shadow(0 0 8px currentColor);
  }

  .dsf-inclus-icon-wrap--no .dsf-inclus-svg {
    animation-delay: 0.35s;
  }

  .dsf-inclus-path--ring {
    animation: dsf-inclus-draw 3.2s ease-in-out infinite;
  }

  .dsf-inclus-path--check {
    animation: dsf-inclus-draw 3.2s ease-in-out 0.35s infinite;
  }

  .dsf-inclus-path--cross-a {
    animation: dsf-inclus-draw 2.8s ease-in-out 0.2s infinite;
  }

  .dsf-inclus-path--cross-b {
    animation: dsf-inclus-draw 2.8s ease-in-out 0.45s infinite;
  }

  .dsf-box--ok:hover .dsf-inclus-icon-wrap--ok {
    box-shadow:
      0 10px 32px rgba(0, 0, 0, 0.35),
      0 0 24px rgba(125, 211, 160, 0.35);
    border-color: rgba(125, 211, 160, 0.75);
  }

  .dsf-box--no:hover .dsf-inclus-icon-wrap--no {
    box-shadow:
      0 10px 32px rgba(0, 0, 0, 0.35),
      0 0 22px rgba(248, 113, 113, 0.3);
    border-color: rgba(248, 113, 113, 0.65);
  }
}

@keyframes dsf-inclus-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

@keyframes dsf-inclus-shimmer {
  0%,
  65% {
    opacity: 0;
    transform: translateX(-100%) skewX(-12deg);
  }
  72% {
    opacity: 0.9;
  }
  80% {
    opacity: 0;
    transform: translateX(100%) skewX(-12deg);
  }
  100% {
    opacity: 0;
  }
}

@keyframes dsf-inclus-breathe {
  0%,
  100% {
    transform: scale(1) rotate(0deg);
  }
  45% {
    transform: scale(1.06) rotate(-1.5deg);
  }
  70% {
    transform: scale(1.04) rotate(1.5deg);
  }
}

@keyframes dsf-inclus-draw {
  0%,
  18% {
    stroke-dashoffset: 100;
    opacity: 0.55;
  }
  42%,
  58% {
    stroke-dashoffset: 0;
    opacity: 1;
  }
  82%,
  100% {
    stroke-dashoffset: 100;
    opacity: 0.55;
  }
}

.dsf-box ul {
  margin: 0;
  padding-left: 1.2rem;
  color: var(--color-text-muted);
}

/* ------------------------------------------------------------------------- Filtres + formulaire */
#filtres.dsf-section {
  scroll-margin-top: var(--header-offset);
}

.dsf-filters {
  padding: 1.5rem;
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border);
  background: rgba(0, 0, 0, 0.35);
  box-shadow: var(--shadow-card);
}

.dsf-filters__fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}

.dsf-filters__legend {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-primary);
  margin: 0 0 1rem;
  padding: 0;
}

.dsf-filters__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.dsf-check {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
}

.dsf-check input[type="checkbox"] {
  width: 1.35rem;
  height: 1.35rem;
  min-width: 1.35rem;
  min-height: 1.35rem;
  margin-top: 0.15rem;
  accent-color: var(--color-accent);
}

.dsf-check label {
  cursor: pointer;
  font-size: 0.98rem;
}

.dsf-filter-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.dsf-badge-count {
  font-family: var(--font-heading);
  background: rgba(110, 231, 255, 0.18);
  color: var(--color-primary);
  border: 1px solid rgba(110, 231, 255, 0.35);
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  font-size: 0.9rem;
}

.dsf-filter-msg {
  font-weight: 600;
}

.dsf-filter-msg--err {
  color: #fca5a5;
}

.dsf-filter-msg--ok {
  color: var(--color-success);
}

.dsf-unlock-icon {
  font-size: 1.25rem;
}

/* Zone formulaire */
.dsf-form-wrap {
  position: relative;
  transition: filter 0.3s ease, opacity 0.3s ease;
}

html.dsf-enhanced .dsf-form-wrap.dsf-form-locked {
  filter: blur(4px);
  opacity: 0.4;
  pointer-events: none;
  user-select: none;
}

.dsf-form {
  display: grid;
  gap: 1rem;
}

/* Progression du formulaire (4 étapes) */
.dsf-form-progress {
  position: sticky;
  top: calc(env(safe-area-inset-top, 0px) + var(--header-offset));
  z-index: 90;
  margin: 0 0 0.25rem;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-button);
  border: 1px solid var(--color-border);
  background: rgba(8, 12, 20, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
}

.dsf-form-progress__meta {
  margin: 0 0 0.65rem;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(0.95rem, 2.8vw, 1.05rem);
  color: var(--color-text);
  line-height: 1.35;
}

.dsf-form-progress__total {
  font-weight: 800;
}

.dsf-form-progress__dash {
  font-weight: 600;
  color: var(--color-text-muted);
}

#dsf-form-step-name {
  color: var(--color-primary);
}

.dsf-form-progress__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.5rem;
  justify-content: center;
  margin: 0 0 0.75rem;
  padding: 0;
  list-style: none;
}

.dsf-form-progress__pill {
  display: inline-flex;
  align-items: center;
  padding: 0.32rem 0.55rem;
  border-radius: var(--radius-pill);
  font-size: clamp(0.7rem, 2.1vw, 0.8rem);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-text-muted);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  line-height: 1.2;
  transition:
    color 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease;
}

.dsf-form-progress__pill.is-done {
  color: #b8c8d6;
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

.dsf-form-progress__pill.is-current {
  color: var(--color-dark);
  background: linear-gradient(135deg, var(--color-accent), #ffd85c);
  border-color: rgba(255, 255, 255, 0.35);
  box-shadow: 0 2px 12px rgba(255, 203, 27, 0.25);
}

.dsf-form-progress__track {
  height: 0.45rem;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.dsf-form-progress__fill {
  height: 100%;
  width: 25%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--color-accent), var(--color-primary));
  transition: width 0.35s ease;
}

@media (max-width: 767px) {
  #postuler .dsf-field label,
  #postuler .dsf-field-label {
    font-size: 1rem;
  }

  #postuler .dsf-form-fieldset__legend {
    font-size: 1.1rem;
    line-height: 1.35;
  }

  #postuler .dsf-field .hint,
  #postuler .dsf-field-label .hint {
    font-size: 0.9375rem;
    color: #c8d0dc;
  }

  #filtres .dsf-check label {
    font-size: 1rem;
    line-height: 1.45;
    color: #e6eaef;
  }

  #postuler .dsf-char {
    font-size: 0.875rem;
    color: #b4becb;
  }

  label.dsf-check {
    font-size: 1rem;
  }
}

.dsf-form-fieldset {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-button);
  padding: 1rem 1.1rem;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}

.dsf-form-fieldset__legend {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1.05rem;
  padding: 0 0.35rem;
}

.dsf-field-label {
  font-weight: 600;
  font-size: 0.95rem;
  margin: 0;
}

.dsf-field-label .hint {
  font-weight: 400;
  color: var(--color-text-muted);
  font-size: 0.85rem;
}

.dsf-radio-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  align-items: flex-start;
}

.dsf-check-stack {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

label.dsf-check {
  cursor: pointer;
  font-size: 0.98rem;
  align-items: flex-start;
}

.dsf-check input[type="radio"] {
  width: 1.35rem;
  height: 1.35rem;
  min-width: 1.35rem;
  min-height: 1.35rem;
  margin-top: 0.15rem;
  accent-color: var(--color-accent);
}

@media (min-width: 768px) {
  .dsf-form__row2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
}

.dsf-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.dsf-field--sep {
  margin-top: 1rem;
}

.dsf-field label {
  font-weight: 600;
  font-size: 0.95rem;
}

.dsf-field .hint {
  font-weight: 400;
  color: var(--color-text-muted);
  font-size: 0.85rem;
}

.dsf-field input,
.dsf-field textarea {
  font: inherit;
  padding: 0.65rem 0.75rem;
  border-radius: var(--radius-button);
  border: 1px solid var(--color-border);
  background: rgba(0, 0, 0, 0.45);
  color: var(--color-text);
}

.dsf-field input[type="file"] {
  padding: 0.55rem 0.65rem;
  cursor: pointer;
  max-width: 100%;
}

.dsf-field input[type="file"]::file-selector-button {
  font: inherit;
  font-weight: 600;
  margin-right: 0.85rem;
  padding: 0.45rem 0.85rem;
  border-radius: var(--radius-button);
  border: 1px solid var(--color-border);
  background: rgba(255, 203, 27, 0.18);
  color: var(--color-text);
  cursor: pointer;
}

.dsf-field input[type="file"]:hover::file-selector-button {
  background: rgba(255, 203, 27, 0.28);
}

.dsf-video-file-chosen {
  margin: 0;
  font-size: 0.85rem;
  color: var(--color-text-muted);
  min-height: 0;
}

.dsf-uploadcare-slot {
  margin-top: 0.15rem;
  min-height: 2.75rem;
}

.dsf-field--uploadcare .uploadcare--widget,
.dsf-field--uploadcare .uploadcare--widget__button {
  max-width: 100%;
}

.dsf-field input.dsf-input-invalid,
.dsf-field textarea.dsf-input-invalid {
  border-color: var(--color-error);
}

.dsf-field-error {
  font-size: 0.85rem;
  color: var(--color-error);
  min-height: 1.1em;
}

.dsf-char {
  text-align: right;
  font-size: 0.8rem;
  color: var(--color-text-muted);
}

.dsf-form__actions {
  margin-top: 0.5rem;
}

.dsf-btn[disabled] {
  opacity: 0.65;
  cursor: not-allowed;
  transform: none;
}

.dsf-spinner {
  width: 1.1rem;
  height: 1.1rem;
  border: 2px solid rgba(255, 255, 255, 0.2);
  border-top-color: var(--color-accent);
  border-radius: 50%;
  animation: dsf-spin 0.7s linear infinite;
  display: none;
}

.dsf-btn.is-loading .dsf-spinner,
.dsf-casting-submit-btn.is-loading .dsf-spinner,
.dsf-casting-submit-btn.is-submitting .dsf-spinner {
  display: inline-block;
}

.dsf-casting-submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-width: min(100%, 18rem);
  min-height: 3rem;
  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    transform 0.15s ease;
}

.dsf-casting-submit-btn.is-submitting,
.dsf-casting-submit-btn.is-loading {
  background: linear-gradient(145deg, #1a6b4a, #0d4a32) !important;
  border-color: rgba(255, 203, 27, 0.75) !important;
  box-shadow:
    0 0 0 2px rgba(255, 203, 27, 0.35),
    0 0 28px rgba(125, 211, 160, 0.45) !important;
  pointer-events: none;
  opacity: 1 !important;
  transform: scale(0.98);
  animation: dsf-casting-btn-pulse 1.2s ease-in-out infinite;
}

.dsf-casting-submit-btn.is-submitting .casting-submit-btn__text,
.dsf-casting-submit-btn.is-loading .casting-submit-btn__text {
  font-weight: 700;
  color: #fff;
}

.dsf-casting-submit-btn.is-submitting .dsf-spinner,
.dsf-casting-submit-btn.is-loading .dsf-spinner {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  border-width: 3px;
  border-color: rgba(255, 255, 255, 0.35);
  border-top-color: var(--color-accent);
  box-shadow: 0 0 8px rgba(255, 203, 27, 0.5);
}

@keyframes dsf-casting-btn-pulse {
  0%,
  100% {
    box-shadow:
      0 0 0 2px rgba(255, 203, 27, 0.35),
      0 0 20px rgba(125, 211, 160, 0.35);
  }
  50% {
    box-shadow:
      0 0 0 3px rgba(255, 203, 27, 0.55),
      0 0 32px rgba(125, 211, 160, 0.55);
  }
}

.dsf-casting-submit-status {
  margin: 0.75rem 0 0;
  min-height: 1.25em;
  font-size: 0.95rem;
  line-height: 1.45;
  text-align: center;
  color: var(--color-text-muted);
}

.dsf-casting-submit-status.is-pending {
  color: var(--color-accent);
  font-weight: 600;
}

.dsf-casting-submit-status.is-error {
  color: var(--color-error);
  font-weight: 600;
}

.dsf-casting-submit-status.is-success {
  color: var(--color-success);
  font-weight: 600;
}

@keyframes dsf-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Page merci (après soumission FormSubmit) */
.dsf-merci-page {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: calc(100svh - var(--header-offset));
  padding: clamp(1rem, 2.5vw, 2rem) 0 clamp(1.5rem, 3vw, 2.5rem);
  display: flex;
  align-items: center;
}

.dsf-merci-page::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-color: var(--color-bg);
  background-image: linear-gradient(
      120deg,
      rgba(14, 27, 44, 0.82) 0%,
      rgba(14, 27, 44, 0.38) 45%,
      rgba(14, 27, 44, 0.15) 70%,
      rgba(14, 27, 44, 0.35) 100%
    ),
    linear-gradient(180deg, rgba(14, 27, 44, 0.55) 0%, rgba(14, 27, 44, 0.12) 42%, rgba(14, 27, 44, 0.55) 100%),
    url("../img/hero-header-bg.png");
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
}

.dsf-merci-page::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 85% 75% at 50% 45%, rgba(8, 10, 16, 0.5) 0%, transparent 62%),
    linear-gradient(
      90deg,
      rgba(10, 14, 22, 0.75) 0%,
      rgba(14, 27, 44, 0.35) 50%,
      rgba(14, 27, 44, 0.2) 72%,
      transparent 92%
    ),
    linear-gradient(180deg, rgba(8, 10, 16, 0.5) 0%, transparent 45%, rgba(8, 10, 16, 0.7) 100%);
}

.dsf-merci-page .dsf-container--narrow {
  width: min(100% - 2rem, 46rem);
}

.dsf-merci-page__card {
  margin-inline: auto;
  text-align: center;
  padding: clamp(1.75rem, 4.5vw, 2.75rem) clamp(1.35rem, 3.5vw, 2rem);
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(15, 18, 28, 0.42);
  color: var(--color-text);
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

@supports (backdrop-filter: blur(14px)) or (-webkit-backdrop-filter: blur(14px)) {
  .dsf-merci-page__card {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }
}

.dsf-merci-page__title {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: clamp(1.35rem, 3.5vw, 1.85rem);
  line-height: 1.25;
  color: var(--color-primary);
  margin: 0 0 1.25rem;
  letter-spacing: 0.02em;
}

.dsf-merci-page__prenom {
  font-weight: 800;
  color: var(--color-sand-light);
}

.dsf-merci-page__emoji {
  font-weight: 400;
  margin-left: 0.15em;
}

.dsf-merci-page__card p {
  margin: 0 0 1rem;
  color: rgba(255, 255, 255, 0.92);
  max-width: 62ch;
  margin-inline: auto;
}

.dsf-merci-page__card a:not(.dsf-btn) {
  color: var(--color-primary);
  font-weight: 600;
  text-underline-offset: 3px;
}

.dsf-merci-page__lead {
  font-family: var(--font-heading);
  font-weight: 700;
  color: var(--color-text) !important;
  margin-top: 1.25rem !important;
}

.dsf-merci-page__list {
  margin: 0 0 1.25rem;
  padding-left: 1.2rem;
  color: rgba(255, 255, 255, 0.9);
  max-width: 62ch;
  margin-inline: auto;
  text-align: left;
}

.dsf-merci-page__list li {
  margin-bottom: 0.75rem;
}

.dsf-merci-page__list li:last-child {
  margin-bottom: 0;
}

.dsf-merci-page__steps {
  margin: 0 auto 1.5rem;
  padding-left: 1.35rem;
  max-width: 52rem;
  text-align: left;
  color: rgba(255, 255, 255, 0.94);
  line-height: 1.55;
}

.dsf-merci-page__steps li {
  margin-bottom: 0.85rem;
}

.dsf-merci-page__steps li:last-child {
  margin-bottom: 0;
}

.dsf-merci-share {
  margin: 1.75rem auto 1.5rem;
  padding: 1.25rem 1.15rem;
  max-width: 42rem;
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.06);
  text-align: center;
}

.dsf-merci-share__title {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: clamp(1.05rem, 3vw, 1.25rem);
  color: var(--color-accent);
  margin: 0 0 0.65rem;
}

.dsf-merci-share__text {
  margin: 0 0 1rem !important;
  font-size: 0.98rem;
  color: rgba(255, 255, 255, 0.9) !important;
  max-width: 48ch !important;
}

.dsf-merci-share__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
  align-items: center;
}

.dsf-merci-share__feedback {
  margin: 0.85rem 0 0 !important;
  font-size: 0.92rem !important;
  color: var(--color-success) !important;
}

.dsf-merci-page__signoff {
  margin-top: 1.5rem !important;
  color: var(--color-text) !important;
}

.dsf-merci-page__back {
  margin-top: 1.75rem !important;
  margin-bottom: 0 !important;
}

.dsf-footer--merci {
  padding: 1.5rem 0 2rem;
  border-top: 1px solid var(--color-border);
}

.dsf-header__brand-link {
  display: inline-block;
  text-decoration: none;
  color: inherit;
}

/* ------------------------------------------------------------------------- Ambassadeur */
.dsf-amb {
  background: var(--color-surface-elevated);
  color: var(--color-text);
}

.dsf-amb__grid {
  display: grid;
  gap: 1.5rem;
  align-items: center;
}

@media (min-width: 768px) {
  .dsf-amb__grid {
    grid-template-columns: 220px 1fr;
  }
}

.dsf-amb__photo {
  border-radius: var(--radius-card);
  overflow: hidden;
  border: 3px solid var(--color-accent);
  aspect-ratio: 1;
  background: linear-gradient(145deg, var(--color-sand-deep), #1a3a4a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 3rem;
  font-weight: 700;
  color: var(--color-white);
}

.dsf-amb__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dsf-amb h2 {
  font-family: var(--font-heading);
  text-transform: uppercase;
  color: var(--color-accent);
  margin: 0 0 0.5rem;
}

.dsf-amb p {
  margin: 0;
  color: var(--color-text-muted);
}

/* ------------------------------------------------------------------------- FSO */
.dsf-fso-sign {
  display: inline-block;
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  background: rgba(110, 231, 255, 0.12);
  color: var(--color-sand-light);
  border: 1px solid rgba(110, 231, 255, 0.35);
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: var(--radius-button);
}

/* ------------------------------------------------------------------------- FAQ */
.dsf-faq-group {
  margin-top: 1.5rem;
}

.dsf-faq-group:first-of-type {
  margin-top: 0;
}

.dsf-faq-group__title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--color-sand-light);
  margin: 0 0 0.65rem;
  padding: 0;
  opacity: 0.92;
}

.dsf-faq-item {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  margin-bottom: 0.65rem;
  background: var(--color-card);
  overflow: hidden;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.dsf-faq-item:hover {
  transform: translateY(-2px);
  border-color: rgba(240, 160, 70, 0.45);
}

.dsf-faq-item summary {
  cursor: pointer;
  list-style: none;
  padding: 1rem 1.1rem;
  font-family: var(--font-heading);
  font-weight: 600;
  color: var(--color-primary);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
}

.dsf-faq-item summary::-webkit-details-marker {
  display: none;
}

.dsf-faq-chevron {
  flex-shrink: 0;
  width: 0.55rem;
  height: 0.55rem;
  margin-right: 0.35rem;
  border-right: 2px solid var(--color-accent);
  border-bottom: 2px solid var(--color-accent);
  transform: rotate(45deg);
  transform-origin: 50% 50%;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

.dsf-faq-item[open] .dsf-faq-chevron {
  transform: rotate(225deg);
}

.dsf-faq-item__body {
  padding: 0 1.1rem 1rem;
  color: var(--color-text-muted);
  border-top: 1px solid var(--color-border);
}

.dsf-faq-item__body p {
  margin: 0.75rem 0 0;
}

/* ------------------------------------------------------------------------- Footer */
.dsf-footer {
  background: var(--color-footer-bg);
  color: var(--color-text);
  padding: 3rem 0 1.5rem;
  border-top: 1px solid var(--color-border);
}

.dsf-footer a {
  color: var(--color-sand-light);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.dsf-footer__grid {
  display: grid;
  gap: 2rem;
}

@media (min-width: 1024px) {
  .dsf-footer__grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

.dsf-footer__logo {
  height: 52px;
  width: auto;
  margin-bottom: 0.75rem;
  filter: brightness(0) invert(1);
  opacity: 0.9;
}

.dsf-footer__social {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.dsf-footer__bar {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
  font-size: 0.85rem;
  text-align: center;
  color: var(--color-text-muted);
}

.dsf-site-legal {
  background: var(--color-footer-bg);
  color: var(--color-text-muted);
  padding: 1rem 0 1.35rem;
  border-top: 1px solid var(--color-border);
  font-size: 0.82rem;
  line-height: 1.55;
  text-align: center;
}

.dsf-site-legal__text {
  margin: 0;
}

.dsf-site-legal a {
  color: var(--color-sand-light);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.dsf-site-legal a:hover {
  color: #fff;
}

/* ------------------------------------------------------------------------- noscript */
.dsf-noscript {
  display: none;
  padding: 1rem;
  background: rgba(240, 160, 70, 0.12);
  color: var(--color-sand-light);
  border-bottom: 1px solid var(--color-border);
  text-align: center;
  font-weight: 600;
}

html.no-js .dsf-noscript {
  display: block;
}

/* ------------------------------------------------------------------------- Breakpoints finition typo */
@media (min-width: 480px) {
  .dsf-header__logo {
    height: 44px;
  }
}

@media (max-width: 767px) {
  .dsf-header {
    min-height: 60px;
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
  }

  .dsf-header__logo {
    height: 32px;
  }

  .dsf-header__cta {
    display: none;
  }

  .dsf-staff-nav__toggle-label {
    display: none;
  }

  .dsf-staff-nav__panel {
    right: -0.25rem;
  }

  .dsf-hero {
    min-height: min(100svh, 900px);
  }

  .dsf-hero__top {
    position: static;
    margin-bottom: 1rem;
  }

  .dsf-hero__badge {
    margin-top: 0;
  }

  .dsf-hero__layer {
    opacity: 0.2;
  }

  .dsf-hero__story {
    line-height: 1.7;
  }
}

@media (min-width: 480px) {
  .dsf-hero__inner {
    max-width: min(100%, 40rem);
  }
}

/* Bureau / tablette : carte plus large + titre plus grand */
@media (min-width: 768px) {
  .dsf-hero__inner {
    max-width: min(100%, 48rem);
  }

  .dsf-hero__h1 {
    font-size: clamp(2.55rem, 3.4vw, 3.85rem);
    margin-bottom: 1.2rem;
  }
}

@media (min-width: 1024px) {
  .dsf-hero__inner {
    max-width: min(100%, 52rem);
  }

  .dsf-hero__h1 {
    font-size: clamp(2.75rem, 3.1vw, 4.15rem);
  }
}

@media (min-width: 1440px) {
  .dsf-container {
    width: min(100% - 4rem, var(--maxwidth-content));
  }
}

/* ------------------------------------------------------------------------- Casting (formulaire jour J) */
.dsf-casting-page {
  background: var(--color-dark, #0e1b2c);
  color: var(--color-text, #e8eef4);
}

.dsf-casting-main {
  padding: clamp(1.5rem, 4vw, 3rem) 0 4rem;
}

.dsf-casting-intro {
  text-align: center;
  margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

.dsf-casting-intro__eyebrow {
  margin: 0 0 0.5rem;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-accent, #ffcb1b);
}

.dsf-casting-intro__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-display, "Outfit", sans-serif);
  font-size: clamp(1.5rem, 4vw, 2.1rem);
  font-weight: 800;
  line-height: 1.15;
}

.dsf-casting-intro__date {
  margin: 0 0 1rem;
  font-size: 1.15rem;
}

.dsf-casting-intro__lead {
  margin: 0 auto;
  max-width: 36rem;
  line-height: 1.65;
  opacity: 0.92;
}

.dsf-casting-form .dsf-form {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.dsf-casting-form .dsf-field--highlight {
  padding: 1rem;
  border-radius: 12px;
  background: rgba(255, 203, 27, 0.12);
  border: 1px solid rgba(255, 203, 27, 0.35);
}

.dsf-casting-form .dsf-field--highlight label {
  color: var(--color-accent, #ffcb1b);
  font-weight: 700;
}

.dsf-consent-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.dsf-casting-form .dsf-check--clear {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin: 0;
  line-height: 1.5;
  font-size: 1rem;
}

.dsf-casting-form .dsf-check--clear input {
  margin-top: 0.35rem;
  flex-shrink: 0;
  width: 1.15rem;
  height: 1.15rem;
}

.dsf-casting-form .dsf-check--clear span {
  flex: 1;
}

.dsf-casting-form .dsf-check--highlight-consent {
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  background: rgba(255, 203, 27, 0.1);
  border: 1px solid rgba(255, 203, 27, 0.35);
}

.dsf-casting-form .dsf-check--highlight-consent span {
  color: #fff;
}

.dsf-casting-form .dsf-check--highlight-consent span strong {
  color: var(--color-accent, #ffcb1b);
}

.dsf-casting-form .dsf-form-fieldset--consents .dsf-form-fieldset__legend {
  margin-bottom: 0.85rem;
}

.dsf-casting-footer-note {
  margin-top: 2rem;
  text-align: center;
  font-size: 0.85rem;
  opacity: 0.75;
  line-height: 1.6;
}

/* —— Notation jury · même langage visuel que l’accueil (hero + glass) —— */
.dsf-jury-page {
  /* hérite de body.dsf-landing (dégradés + typo) */
}

.dsf-jury-hero {
  min-height: min(52vh, 520px);
  padding-top: calc(env(safe-area-inset-top, 0px) + 0.5rem);
  padding-bottom: 1.5rem;
}

.dsf-jury-hero--compact {
  min-height: min(38vh, 380px);
}

.dsf-jury-hero__card {
  max-width: 28rem;
}

.dsf-jury-hero__h1 {
  font-size: clamp(1.75rem, 5.5vw, 2.35rem);
  margin-bottom: 0.85rem;
}

.dsf-jury-hero__story {
  margin: 0;
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
}

.dsf-jury-hero__story strong {
  color: var(--color-accent);
}

.dsf-jury-live-chip {
  border-color: rgba(125, 211, 160, 0.5);
  color: var(--color-success);
}

.dsf-jury-final-chip {
  border-color: rgba(212, 175, 55, 0.45);
  color: var(--color-accent);
}

.dsf-jury-final-badge {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.4rem 0.75rem;
  border-radius: var(--radius-pill);
  color: var(--color-accent);
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(212, 175, 55, 0.35);
}

.dsf-jury-page--static .dsf-jury-live-badge::before {
  display: none;
  animation: none;
}

/* Header jury : reste sombre au scroll (pas de fond blanc is-scrolled) */
.dsf-jury-page .dsf-header,
.dsf-jury-page .dsf-header.is-scrolled {
  background: linear-gradient(180deg, rgba(14, 27, 44, 0.96), rgba(14, 27, 44, 0.88));
  border-bottom-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(14px);
}

.dsf-jury-page .dsf-header__logo,
.dsf-jury-page .dsf-header.is-scrolled .dsf-header__logo {
  filter: brightness(0) invert(1);
  opacity: 0.95;
}

.dsf-jury-section {
  padding: clamp(2rem, 5vw, 3.5rem) 0 clamp(3rem, 6vw, 4.5rem);
  margin-top: -2rem;
}

.dsf-jury-section--ranking {
  margin-top: -1.5rem;
}

.dsf-jury-glass {
  position: relative;
  overflow: hidden;
  padding: clamp(1.5rem, 4vw, 2.25rem);
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(15, 18, 28, 0.5);
  box-shadow:
    0 4px 28px rgba(0, 0, 0, 0.4),
    0 0 0 1px rgba(255, 255, 255, 0.06) inset,
    0 1px 0 rgba(255, 255, 255, 0.12) inset,
    0 0 56px rgba(255, 203, 27, 0.06);
}

@supports (backdrop-filter: blur(16px)) or (-webkit-backdrop-filter: blur(16px)) {
  .dsf-jury-glass {
    background: rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }
}

.dsf-jury-glass::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 42%;
  height: 100%;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 255, 255, 0.06) 48%,
    transparent 100%
  );
  transform: translateX(-130%) skewX(-10deg);
  animation: dsf-jury-shine 8s ease-in-out infinite;
}

@keyframes dsf-jury-shine {
  0%,
  72%,
  100% {
    transform: translateX(-130%) skewX(-10deg);
    opacity: 0;
  }
  78% {
    opacity: 1;
  }
  88% {
    transform: translateX(220%) skewX(-10deg);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dsf-jury-glass::after {
    animation: none;
  }
}

.dsf-jury-glass > * {
  position: relative;
  z-index: 1;
}

.dsf-jury-glass__title {
  margin: 0 0 0.35rem;
  font-family: var(--font-heading);
  font-size: clamp(1.2rem, 3vw, 1.45rem);
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-white);
}

.dsf-jury-glass__lead {
  margin: 0 0 1.75rem;
  text-align: center;
  font-size: 1rem;
  color: var(--color-text-muted);
  line-height: 1.55;
}

.dsf-jury-pick-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

@media (min-width: 600px) {
  .dsf-jury-pick-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 1.1rem;
  }
}

.dsf-jury-pick-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.35rem 0.85rem 1.15rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius-card);
  background: rgba(0, 0, 0, 0.22);
  color: var(--color-white);
  cursor: pointer;
  transition:
    transform 0.25s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.2s ease,
    box-shadow 0.25s ease;
}

.dsf-jury-pick-card__ring {
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(255, 203, 27, 0.5), rgba(110, 231, 255, 0.35), transparent 60%);
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.25s ease;
}

.dsf-jury-pick-card:hover,
.dsf-jury-pick-card:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(255, 203, 27, 0.45);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35), 0 0 32px rgba(255, 203, 27, 0.12);
}

.dsf-jury-pick-card:hover .dsf-jury-pick-card__ring,
.dsf-jury-pick-card:focus-visible .dsf-jury-pick-card__ring {
  opacity: 1;
}

.dsf-jury-pick-card__initial {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  font-family: var(--font-heading);
  font-size: 1.4rem;
  font-weight: 800;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.dsf-jury-pick-card__name {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.dsf-jury-session {
  text-align: center;
  margin-bottom: 1.75rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.dsf-jury-session__label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.dsf-jury-session__name {
  margin: 0.25rem 0 0.75rem;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 6vw, 2.65rem);
  font-weight: 800;
  line-height: 1.05;
  background: linear-gradient(188deg, #fff 0%, var(--color-sand-light) 55%, var(--color-accent) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 16px rgba(0, 0, 0, 0.4));
}

.dsf-jury-page[data-active-jury="jean"] .dsf-jury-session__name {
  background: linear-gradient(188deg, #fff, var(--color-primary) 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

.dsf-jury-session__change {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--color-primary);
  background: none;
  border: none;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 0.25rem;
}

.dsf-jury-session__change:hover {
  color: var(--color-accent);
}

.dsf-jury-feedback {
  margin-bottom: 1.25rem;
  padding: 0.9rem 1.15rem;
  border-radius: var(--radius-button);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.5;
}

.dsf-jury-feedback--success {
  background: rgba(125, 211, 160, 0.12);
  color: var(--color-success);
  border: 1px solid rgba(125, 211, 160, 0.35);
}

.dsf-jury-feedback--error {
  background: rgba(248, 113, 113, 0.1);
  color: var(--color-error);
  border: 1px solid rgba(248, 113, 113, 0.35);
}

.dsf-jury-feedback--info {
  background: rgba(110, 231, 255, 0.08);
  color: var(--color-primary);
  border: 1px solid rgba(110, 231, 255, 0.28);
}

.dsf-jury-numero {
  margin-bottom: 1.75rem;
  text-align: center;
}

.dsf-jury-numero__label {
  display: block;
  margin-bottom: 0.65rem;
  font-family: var(--font-heading);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.dsf-jury-numero__input {
  width: 100%;
  max-width: 12rem;
  margin-inline: auto;
  display: block;
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 10vw, 3.5rem);
  font-weight: 800;
  text-align: center;
  letter-spacing: 0.04em;
  color: var(--color-white);
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(255, 203, 27, 0.4);
  border-radius: var(--radius-card);
  padding: 0.5rem 0.75rem;
  box-shadow: 0 0 40px rgba(255, 203, 27, 0.08) inset;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.dsf-jury-numero__input:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow:
    0 0 0 3px rgba(255, 203, 27, 0.2),
    0 0 48px rgba(255, 203, 27, 0.12) inset;
}

.dsf-jury-numero__input::placeholder {
  color: rgba(255, 255, 255, 0.25);
}

.dsf-jury-score-fieldset {
  border: none;
  margin: 0 0 1.5rem;
  padding: 0;
}

.dsf-jury-score-fieldset__legend {
  display: block;
  width: 100%;
  margin-bottom: 1rem;
  text-align: center;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-white);
}

.dsf-jury-score-fieldset__hint {
  display: block;
  margin-top: 0.3rem;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--color-text-muted);
}

.dsf-jury-score-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}

.dsf-jury-score-btn {
  min-width: 2.65rem;
  height: 2.65rem;
  padding: 0 0.35rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.9);
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition:
    transform 0.15s ease,
    background 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.dsf-jury-score-btn:hover,
.dsf-jury-score-btn:focus-visible {
  border-color: rgba(110, 231, 255, 0.45);
  background: rgba(110, 231, 255, 0.12);
}

.dsf-jury-score-btn.is-selected {
  color: var(--color-dark);
  background: linear-gradient(145deg, var(--color-accent), var(--color-accent-hot));
  border-color: transparent;
  box-shadow: var(--shadow-cta);
  transform: scale(1.08);
}

.dsf-jury-comment {
  margin-bottom: 0.5rem;
}

.dsf-jury-comment__label {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-text-muted);
}

.dsf-jury-comment__label span {
  font-weight: 400;
  opacity: 0.85;
}

.dsf-jury-comment textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--color-text);
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-button);
  padding: 0.65rem 0.85rem;
  resize: vertical;
  min-height: 3.5rem;
}

.dsf-jury-comment textarea:focus {
  border-color: rgba(255, 203, 27, 0.45);
  outline: none;
}

.dsf-jury-form__cta {
  margin-top: 1.25rem !important;
}

.dsf-jury-submit {
  min-width: min(100%, 18rem);
}

.dsf-jury-last {
  margin-top: 1.25rem;
  padding: 0.85rem 1rem;
  text-align: center;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--color-success);
  border-radius: var(--radius-button);
  background: rgba(125, 211, 160, 0.08);
  border: 1px solid rgba(125, 211, 160, 0.22);
}

.dsf-jury-sheet-status {
  margin-top: 1.5rem;
  text-align: center;
  font-size: 0.88rem;
  font-weight: 600;
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius-pill);
}

.dsf-jury-sheet-status--ok {
  color: var(--color-success);
  background: rgba(125, 211, 160, 0.1);
  border: 1px solid rgba(125, 211, 160, 0.28);
}

.dsf-jury-sheet-status--error {
  color: var(--color-error);
  background: rgba(248, 113, 113, 0.1);
  border: 1px solid rgba(248, 113, 113, 0.28);
}

.dsf-jury-foot {
  margin-top: 1rem;
  text-align: center;
  font-size: 0.88rem;
  color: var(--color-text-muted);
}

.dsf-jury-foot a {
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: none;
}

.dsf-jury-foot a:hover {
  color: var(--color-accent);
}

/* Classement */
.dsf-jury-ranking-bar {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
}

.dsf-jury-live-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.4rem 0.75rem;
  border-radius: var(--radius-pill);
  color: var(--color-success);
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(125, 211, 160, 0.35);
}

.dsf-jury-live-badge::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--color-success);
  box-shadow: 0 0 10px var(--color-success);
  animation: dsf-jury-pulse 1.6s ease-in-out infinite;
}

@keyframes dsf-jury-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.35;
  }
}

.dsf-jury-glass--table {
  padding: 0;
  overflow: hidden;
}

.dsf-jury-ranking-error {
  margin-bottom: 1.25rem;
  padding: 0.9rem 1.15rem;
  border-radius: var(--radius-button);
  font-weight: 600;
  background: rgba(248, 113, 113, 0.1);
  color: var(--color-error);
  border: 1px solid rgba(248, 113, 113, 0.35);
}

.dsf-jury-ranking-table-wrap {
  overflow: auto;
  max-height: min(68vh, 720px);
}

.dsf-jury-ranking-table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(0.82rem, 1.4vw, 0.95rem);
}

.dsf-jury-ranking-table th,
.dsf-jury-ranking-table td {
  padding: 0.7rem 0.85rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  text-align: center;
}

.dsf-jury-ranking-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-accent);
  background: rgba(8, 10, 16, 0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(255, 203, 27, 0.25);
}

.dsf-jury-ranking-table th:nth-child(3),
.dsf-jury-ranking-table th:nth-child(4),
.dsf-jury-ranking-table td:nth-child(3),
.dsf-jury-ranking-table td:nth-child(4) {
  text-align: left;
}

.dsf-jury-ranking-table tbody tr {
  transition: background 0.15s ease;
}

.dsf-jury-ranking-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.04);
}

.dsf-jury-ranking-table tbody td:first-child {
  font-weight: 800;
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums;
}

.dsf-jury-ranking-table tbody td:nth-child(2) {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--color-accent);
}

.dsf-jury-rank-top30 {
  background: linear-gradient(90deg, rgba(255, 203, 27, 0.08), transparent 70%);
}

.dsf-jury-rank-podium {
  background: linear-gradient(90deg, rgba(255, 203, 27, 0.14), rgba(255, 203, 27, 0.04) 55%, transparent 85%);
}

.dsf-jury-rank-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.dsf-jury-rank-star {
  color: var(--color-accent);
  font-size: 0.92em;
  line-height: 1;
  text-shadow: 0 0 14px rgba(255, 203, 27, 0.55);
}

.dsf-jury-rank-podium td:first-child {
  color: var(--color-accent);
}

.dsf-jury-ranking-finale {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1.08rem;
  color: var(--color-primary);
  font-variant-numeric: tabular-nums;
}

.dsf-jury-rank-top30 .dsf-jury-ranking-finale {
  color: var(--color-accent);
  text-shadow: 0 0 20px rgba(255, 203, 27, 0.25);
}

.dsf-jury-ranking-table td:not(.dsf-jury-ranking-finale):not(:first-child):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4)) {
  color: var(--color-text-muted);
  font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------------------- Jury — choix des 30 finalistes */
.dsf-jury-choice-celebration {
  margin-bottom: clamp(1.75rem, 5vw, 2.75rem);
  padding-bottom: clamp(0.5rem, 2vw, 1rem);
}

.dsf-jury-glass--photo-grid {
  padding-top: 1.1rem;
}

.dsf-jury-choice-status {
  margin: 1rem 0 0;
  color: var(--color-text-muted);
  font-size: 0.95rem;
}

.dsf-jury-choice-grid {
  margin-top: 1.25rem;
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 0.65rem;
}

.dsf-jury-choice-card {
  position: relative;
  display: flex;
  flex-direction: column;
  aspect-ratio: 1 / 1;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.2);
}

.dsf-jury-choice-card__frame {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  background: rgba(0, 0, 0, 0.35);
}

.dsf-jury-choice-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(0.95) contrast(1.05);
}

.dsf-jury-choice-card__fallback {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: clamp(1.25rem, 4vw, 1.75rem);
  font-weight: 800;
  color: var(--color-accent);
  background: linear-gradient(145deg, rgba(255, 203, 27, 0.12), rgba(0, 0, 0, 0.4));
}

.dsf-jury-choice-card__fallback[hidden],
.dsf-jury-choice-card__img[hidden] {
  display: none !important;
}

.dsf-jury-choice-card__overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.35rem 0.5rem 0.45rem;
  background: rgba(0, 0, 0, 0.55);
}

.dsf-jury-choice-card__numero {
  font-weight: 900;
  font-size: 0.9rem;
  line-height: 1.1;
  color: #fff;
}

.dsf-jury-choice-card__name {
  margin-top: 0.15rem;
  font-weight: 700;
  font-size: 0.72rem;
  line-height: 1.15;
  color: rgba(255, 255, 255, 0.92);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dsf-jury-choice-card.is-self {
  box-shadow: 0 0 0 3px rgba(255, 203, 27, 0.55), 0 14px 40px rgba(255, 203, 27, 0.12);
}

@media (max-width: 1100px) {
  .dsf-jury-choice-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .dsf-jury-choice-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .dsf-jury-choice-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* —— Déroulement équipe (style accueil / jury) —— */
.dsf-runbook-page .dsf-runbook-print {
  cursor: pointer;
  font: inherit;
}

.dsf-runbook-page .dsf-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
}

/* Page process équipe — hero aéré + transition vers le contenu */
.dsf-process-page .dsf-jury-hero {
  min-height: min(58vh, 580px);
  padding-top: calc(env(safe-area-inset-top, 0px) + 1.5rem);
  padding-bottom: clamp(2.5rem, 6vw, 3.5rem);
  display: flex;
  align-items: center;
  justify-content: center;
}

.dsf-process-page .dsf-jury-hero .dsf-hero__inner {
  max-width: min(100%, 42rem);
  padding-top: clamp(1.75rem, 5vw, 3rem);
  padding-bottom: clamp(0.75rem, 2vw, 1.25rem);
  padding-inline: clamp(0.75rem, 3vw, 1.25rem);
}

.dsf-process-page .dsf-jury-hero__card {
  max-width: 100%;
  padding: clamp(2.25rem, 5.5vw, 3.25rem) clamp(1.75rem, 4vw, 2.5rem);
  box-shadow:
    0 8px 40px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.08) inset,
    0 1px 0 rgba(255, 255, 255, 0.16) inset,
    0 0 64px rgba(255, 203, 27, 0.1);
}

.dsf-process-page .dsf-jury-hero__h1 {
  font-size: clamp(1.9rem, 5.2vw, 2.65rem);
  margin-bottom: 1rem;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.dsf-process-page .dsf-jury-hero__h1 .dsf-hero__h1-line {
  display: block;
}

.dsf-process-page .dsf-jury-hero__h1 .dsf-hero__h1-line + .dsf-hero__h1-line {
  margin-top: 0.2em;
  color: var(--color-accent);
}

.dsf-process-page .dsf-jury-hero__story {
  margin-top: 0.25rem;
  max-width: 32rem;
  margin-inline: auto;
}

.dsf-process-page .dsf-runbook-section.dsf-jury-section {
  margin-top: 0;
  padding-top: clamp(2.75rem, 7vw, 4.5rem);
  padding-bottom: clamp(3rem, 6vw, 4.5rem);
  position: relative;
}

.dsf-process-page .dsf-runbook-section.dsf-jury-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(92%, 36rem);
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 203, 27, 0.35) 20%,
    rgba(255, 203, 27, 0.5) 50%,
    rgba(255, 203, 27, 0.35) 80%,
    transparent
  );
  opacity: 0.85;
}

.dsf-process-page .dsf-runbook-wrap {
  gap: clamp(1.75rem, 4vw, 2.25rem);
  padding-top: 0.5rem;
}

.dsf-process-page .dsf-runbook-toolbar {
  padding: clamp(1.35rem, 3.5vw, 1.85rem) clamp(1.25rem, 3vw, 1.75rem);
}

.dsf-runbook-section {
  /* hérite de .dsf-jury-section */
}

.dsf-runbook-wrap {
  display: flex;
  flex-direction: column;
  gap: clamp(1.25rem, 3vw, 1.75rem);
}

.dsf-runbook-toolbar .dsf-jury-glass__title {
  margin-bottom: 1rem;
}

.dsf-runbook-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.65rem;
  justify-content: center;
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
}

.dsf-runbook-page .dsf-btn--sm {
  padding: 0.45rem 0.85rem;
  font-size: 0.875rem;
}

.dsf-runbook-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: center;
}

.dsf-runbook-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 203, 27, 0.35);
  background: rgba(255, 203, 27, 0.08);
  font-size: 0.875rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--color-accent);
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.dsf-runbook-chip:hover {
  background: rgba(255, 203, 27, 0.18);
  border-color: var(--color-accent);
  color: var(--color-white);
}

.dsf-runbook-flow {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2.5vw, 1.35rem);
}

/* —— Process équipe : statut d’étape (badges) —— */
.dsf-process-step__head.dsf-runbook-step__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex-wrap: nowrap;
  gap: 0.5rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.65rem;
}

.dsf-process-step__head .dsf-runbook-step__title {
  flex: none;
  width: 100%;
  max-width: 100%;
  padding-right: 0;
}

.dsf-process-step__head .dsf-process-status {
  flex-shrink: 0;
  order: 2;
}

@media (min-width: 768px) {
  .dsf-process-step__head.dsf-runbook-step__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto;
    align-items: start;
    gap: 0.35rem 0.75rem;
  }

  .dsf-process-step__head .dsf-runbook-step__title {
    grid-column: 1;
    grid-row: 1;
    width: auto;
    padding-right: 0.5rem;
  }

  .dsf-process-step__head .dsf-process-status {
    grid-column: 2;
    grid-row: 1;
    order: unset;
  }
}

.dsf-process-status {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5.25rem;
  padding: 0.32rem 0.75rem;
  border-radius: 999px;
  font-family: var(--font-heading);
  font-size: clamp(0.68rem, 2.2vw, 0.78rem);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid transparent;
  cursor: default;
  user-select: none;
  white-space: nowrap;
}

.dsf-process-status--done {
  color: #0f2a1c;
  background: linear-gradient(145deg, #7dd3a0, #3d9b6e);
  border-color: rgba(125, 211, 160, 0.6);
  box-shadow: 0 2px 10px rgba(61, 155, 110, 0.35);
}

.dsf-process-status--current {
  color: #2a1808;
  background: linear-gradient(145deg, #ffc070, #e8922f);
  border-color: rgba(255, 192, 112, 0.65);
  box-shadow: 0 2px 12px rgba(232, 146, 47, 0.4);
}

.dsf-process-status--upcoming {
  color: rgba(255, 220, 220, 0.95);
  background: rgba(120, 45, 50, 0.55);
  border-color: rgba(200, 90, 90, 0.55);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.dsf-runbook-step {
  scroll-margin-top: calc(var(--header-offset) + 1rem);
}

.dsf-runbook-step__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.65rem 1rem;
  margin-bottom: 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.dsf-runbook-step__time {
  flex-shrink: 0;
  margin: 0;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  color: var(--color-dark);
  background: linear-gradient(145deg, var(--color-accent), var(--color-accent-hot));
  box-shadow: 0 2px 12px rgba(255, 203, 27, 0.25);
}

.dsf-runbook-step__title {
  margin: 0;
  flex: 1 1 12rem;
  min-width: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.1rem, 2.8vw, 1.35rem);
  font-weight: 800;
  line-height: 1.3;
  color: var(--color-white);
  text-transform: none;
  letter-spacing: 0;
  text-align: left;
}

.dsf-runbook-step__meta {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.92em;
  color: var(--color-text-muted);
}

.dsf-runbook-step__body {
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
}

.dsf-runbook-step__body ul,
.dsf-runbook-step__body ol {
  margin: 0.65rem 0 0;
  padding-left: 1.35rem;
}

.dsf-runbook-step__body li + li {
  margin-top: 0.45rem;
}

.dsf-runbook-step__body h3 {
  margin: 1.1rem 0 0.4rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-primary);
  text-transform: none;
  letter-spacing: 0;
}

.dsf-runbook-step__body h3:first-child {
  margin-top: 0;
}

.dsf-runbook-step--accent.dsf-jury-glass {
  border-color: rgba(255, 203, 27, 0.38);
  box-shadow:
    0 4px 28px rgba(0, 0, 0, 0.4),
    0 0 0 1px rgba(255, 203, 27, 0.12) inset,
    0 0 48px rgba(255, 203, 27, 0.1);
}

.dsf-runbook-step--tool .dsf-runbook-step__head {
  border-bottom-color: rgba(110, 231, 255, 0.25);
}

.dsf-runbook-step--fin .dsf-runbook-fin {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.15rem, 3vw, 1.4rem);
  font-weight: 800;
  color: var(--color-success);
}

.dsf-runbook-cols {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 640px) {
  .dsf-runbook-cols {
    grid-template-columns: 1fr 1fr;
  }
}

.dsf-runbook-lead {
  margin: 0 0 1rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-text);
}

.dsf-runbook-stations {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.dsf-runbook-station {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.85rem;
  align-items: start;
  padding: 1rem 1.1rem;
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(0, 0, 0, 0.22);
}

.dsf-runbook-station__n {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1rem;
  color: var(--color-dark);
  background: linear-gradient(145deg, var(--color-accent), var(--color-accent-hot));
}

.dsf-runbook-station h3 {
  margin: 0 0 0.4rem !important;
  font-size: 1rem !important;
  color: var(--color-white) !important;
}

.dsf-runbook-team {
  margin: 1rem 0 0;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-card);
  background: rgba(110, 231, 255, 0.1);
  border: 1px solid rgba(110, 231, 255, 0.22);
  color: var(--color-text);
  font-size: 0.95rem;
  line-height: 1.55;
}

.dsf-runbook-slot {
  margin: 0.75rem 0 0;
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.18);
  overflow: hidden;
}

.dsf-runbook-slot summary {
  padding: 0.75rem 1rem;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--color-white);
  cursor: pointer;
  list-style: none;
}

.dsf-runbook-slot summary::-webkit-details-marker {
  display: none;
}

.dsf-runbook-slot[open] summary {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.05);
}

.dsf-runbook-slot > ul,
.dsf-runbook-slot > p {
  margin: 0;
  padding: 0.85rem 1rem 1rem;
  font-size: 0.95rem;
  line-height: 1.6;
}

.dsf-runbook-slot--alert {
  border-color: rgba(255, 203, 27, 0.35);
  background: rgba(255, 203, 27, 0.06);
}

.dsf-runbook-alert {
  margin: 0 0 0.5rem !important;
  color: var(--color-accent) !important;
  font-weight: 600;
}

.dsf-runbook-defis li + li {
  margin-top: 0.75rem;
}

.dsf-runbook-quote {
  margin: 0 0 1rem;
  padding: 1rem 1.15rem;
  border-left: 3px solid var(--color-accent);
  border-radius: 0 var(--radius-card) var(--radius-card) 0;
  background: rgba(255, 255, 255, 0.05);
  font-size: 1rem;
  font-style: normal;
  line-height: 1.6;
  color: var(--color-text);
}

.dsf-runbook-tool-link {
  margin: 1rem 0 0.5rem;
}

.dsf-runbook-timing {
  margin-top: 0.75rem;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-card);
  background: rgba(0, 0, 0, 0.25);
  font-size: 0.95rem;
  line-height: 1.55;
}

.dsf-runbook-step__body .hint {
  font-size: 0.9em;
  color: var(--color-text-muted);
}

.dsf-runbook-step__body a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.dsf-runbook-step__body a:hover {
  color: var(--color-accent);
}

/* Circuit candidat — timeline minimaliste + bonhomme */
.dsf-runbook-circuit {
  margin-top: clamp(2rem, 5vw, 3rem);
  scroll-margin-top: calc(var(--header-offset) + 1rem);
}

.dsf-runbook-circuit__head {
  margin-bottom: 1rem;
}

.dsf-runbook-circuit__lead {
  margin: 0.35rem 0 0;
  font-size: 0.9rem;
  color: var(--color-text-muted);
}

.dsf-circuit-walk {
  padding: 1.25rem 1rem 1.5rem;
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.22);
}

.dsf-circuit-walk__popup {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  min-height: 4.5rem;
  margin: 0 auto 0.5rem;
  padding: 0.65rem 1rem;
  max-width: 22rem;
  text-align: center;
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(18, 21, 31, 0.85);
  opacity: 1;
  transition: opacity 0.2s ease;
}

.dsf-circuit-walk__popup[hidden] {
  display: none;
}

.dsf-circuit-walk__popup-time {
  font-family: var(--font-heading);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.dsf-circuit-walk__popup-title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-white);
}

.dsf-circuit-walk__popup-detail {
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--color-text-muted);
}

.dsf-circuit-walk__stage {
  position: relative;
  padding-top: 3.25rem;
}

.dsf-circuit-walk__walker {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  transform: translateX(-50%);
  color: var(--color-primary);
  filter: drop-shadow(0 2px 8px rgba(110, 231, 255, 0.35));
  pointer-events: none;
}

.dsf-circuit-walk__person {
  display: block;
}

.dsf-circuit-walk__track {
  position: relative;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  padding: 0.5rem 0.25rem 0;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}

.dsf-circuit-walk__line {
  position: absolute;
  left: 1.25rem;
  right: 1.25rem;
  top: 1.15rem;
  height: 2px;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 1px;
  pointer-events: none;
}

.dsf-circuit-walk__points {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 0.35rem;
  min-width: min(100%, 36rem);
  margin: 0;
  padding: 0 0.5rem;
  list-style: none;
}

.dsf-circuit-walk__points > li {
  flex: 1 1 0;
  min-width: 2.5rem;
  display: flex;
  justify-content: center;
}

.dsf-circuit-walk__point {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  padding: 0.25rem;
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
  color: inherit;
  -webkit-tap-highlight-color: transparent;
}

.dsf-circuit-walk__point:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
  border-radius: 6px;
}

.dsf-circuit-walk__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  border: 2px solid transparent;
  transition:
    transform 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.dsf-circuit-walk__point:hover .dsf-circuit-walk__dot {
  background: rgba(110, 231, 255, 0.5);
  transform: scale(1.15);
}

.dsf-circuit-walk__point.is-active .dsf-circuit-walk__dot {
  background: var(--color-accent);
  border-color: var(--color-white);
  box-shadow: 0 0 0 4px rgba(255, 203, 27, 0.2);
  transform: scale(1.2);
}

.dsf-circuit-walk__point--choice.is-active .dsf-circuit-walk__dot {
  background: var(--color-accent);
}

.dsf-circuit-walk__label {
  font-size: 0.65rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--color-text-muted);
  max-width: 3.5rem;
  text-align: center;
}

.dsf-circuit-walk__point.is-active .dsf-circuit-walk__label {
  color: var(--color-white);
}

@media (min-width: 640px) {
  .dsf-circuit-walk__points {
    min-width: 100%;
  }

  .dsf-circuit-walk__label {
    font-size: 0.72rem;
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dsf-circuit-walk__walker {
    transition: none !important;
  }

  .dsf-circuit-walk__dot {
    transition: none;
  }
}

/* Défi 2 — page photos Luskville */
.dsf-defi2-celebration {
  margin: 0 0 1.75rem;
  padding: clamp(1.25rem, 4vw, 2rem);
  text-align: center;
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 203, 27, 0.45);
  background: linear-gradient(165deg, rgba(255, 203, 27, 0.14), rgba(125, 211, 160, 0.1));
  box-shadow: 0 8px 40px rgba(255, 203, 27, 0.12);
  position: relative;
  overflow: hidden;
}

.dsf-defi2-celebration--fireworks {
  isolation: isolate;
}

.dsf-defi2-fireworks {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  opacity: 1;
  transition: opacity 0.6s ease;
}

.dsf-defi2-fireworks.is-faded {
  opacity: 0;
}

.dsf-defi2-celebration > *:not(.dsf-defi2-fireworks) {
  position: relative;
  z-index: 1;
}

.dsf-defi2-input-numero,
.dsf-input-numero {
  -moz-appearance: textfield;
  appearance: textfield;
}

.dsf-defi2-input-numero::-webkit-outer-spin-button,
.dsf-defi2-input-numero::-webkit-inner-spin-button,
.dsf-input-numero::-webkit-outer-spin-button,
.dsf-input-numero::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.dsf-defi2-contact {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  text-align: center;
}

.dsf-defi2-contact__text {
  margin: 0 0 0.5rem;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--color-text-muted);
}

.dsf-defi2-contact__emails {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.6;
  word-break: break-word;
}

.dsf-defi2-contact__emails a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.dsf-defi2-contact__emails a:hover {
  color: var(--color-accent);
}

.dsf-defi2-contact__sep {
  margin: 0 0.35rem;
  color: var(--color-text-muted);
}

@media (max-width: 520px) {
  .dsf-defi2-contact__sep {
    display: block;
    margin: 0.25rem 0;
  }
}

.dsf-defi2-celebration__eyebrow {
  margin: 0 0 0.35rem;
  font-family: var(--font-heading);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.dsf-defi2-celebration__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 8vw, 3rem);
  font-weight: 800;
  line-height: 1.05;
  color: var(--color-white);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.dsf-defi2-celebration__title--sm {
  font-size: clamp(1.75rem, 6vw, 2.35rem);
}

.dsf-defi2-celebration__lead {
  margin: 0;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(1rem, 2.5vw, 1.12rem);
  line-height: 1.6;
  color: var(--color-text);
}

.dsf-defi2-journey {
  margin-bottom: 2rem;
}

.dsf-defi2-journey__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-white);
  text-transform: none;
  letter-spacing: 0;
}

.dsf-defi2-journey__hint {
  margin: 0.85rem 0 0;
  text-align: center;
}

/* Défi 2 — compte à rebours (version compacte dans le formulaire) */
.dsf-defi2-countdown-wrap {
  margin: 0 0 1.75rem;
}

.dsf-defi2-countdown {
  padding: clamp(1.5rem, 4vw, 2.25rem) clamp(1rem, 3vw, 1.5rem);
  border-radius: var(--radius-card);
  margin-top: 0;
}

.dsf-defi2-countdown .dsf-countdown__grid {
  margin-bottom: 0;
}

.dsf-defi2-countdown-ended {
  margin: 1rem 0 0;
  font-size: 0.95rem;
  color: #f87171;
  font-weight: 600;
}

/* Défi 2 — bloc « Où j’en suis » */
.dsf-defi2-progress-section {
  margin: 0 0 1.75rem;
}

.dsf-defi2-progress {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dsf-defi2-progress__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.75rem 0.35rem;
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.2);
  text-align: center;
}

.dsf-defi2-progress__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.1);
  color: var(--color-text-muted);
}

.dsf-defi2-progress__label {
  font-family: var(--font-heading);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
}

.dsf-defi2-progress__sub {
  font-size: 0.68rem;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.55);
}

.dsf-defi2-progress__step.is-done {
  border-color: rgba(125, 211, 160, 0.4);
  background: rgba(125, 211, 160, 0.1);
}

.dsf-defi2-progress__step.is-done .dsf-defi2-progress__icon {
  background: var(--color-success);
  color: var(--color-dark);
}

.dsf-defi2-progress__step.is-done .dsf-defi2-progress__label {
  color: var(--color-success);
}

.dsf-defi2-progress__step.is-current {
  border-color: rgba(255, 203, 27, 0.55);
  background: rgba(255, 203, 27, 0.12);
  box-shadow: 0 0 24px rgba(255, 203, 27, 0.15);
}

.dsf-defi2-progress__step.is-current .dsf-defi2-progress__icon {
  background: var(--color-accent);
  color: var(--color-dark);
}

.dsf-defi2-progress__step.is-current .dsf-defi2-progress__label {
  color: var(--color-accent);
}

.dsf-defi2-progress__step.is-next {
  border-color: rgba(110, 231, 255, 0.35);
  background: rgba(110, 231, 255, 0.08);
}

.dsf-defi2-progress__step.is-next .dsf-defi2-progress__icon {
  background: rgba(110, 231, 255, 0.25);
  color: #6ee7ff;
}

.dsf-defi2-progress__step.is-next .dsf-defi2-progress__label {
  color: #6ee7ff;
}

@media (max-width: 520px) {
  .dsf-defi2-progress {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Défi 2 — aperçu photos */
.dsf-defi2-previews {
  margin-top: 1.25rem;
  padding: 1rem;
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 203, 27, 0.35);
  background: rgba(255, 203, 27, 0.06);
}

.dsf-defi2-previews--ready {
  border-color: rgba(125, 211, 160, 0.45);
  background: rgba(125, 211, 160, 0.08);
}

.dsf-defi2-previews__title {
  margin: 0 0 0.85rem;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-accent);
}

.dsf-defi2-previews__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

@media (max-width: 520px) {
  .dsf-defi2-previews__grid {
    grid-template-columns: 1fr;
  }
}

.dsf-defi2-preview {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
}

.dsf-defi2-preview figcaption {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-text-muted);
}

.dsf-defi2-preview__frame {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: 0.65rem;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.dsf-defi2-preview__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: none;
}

.dsf-defi2-preview.has-image .dsf-defi2-preview__frame img {
  display: block;
}

.dsf-defi2-preview.has-image .dsf-defi2-preview__placeholder {
  display: none;
}

.dsf-defi2-preview__placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.35);
}

.dsf-defi2-previews__hint {
  margin: 0.85rem 0 0;
}

/* Défi 2 — page merci renforcée */
.dsf-defi2-merci-page .dsf-merci-page__card {
  max-width: 32rem;
}

.dsf-defi2-merci-card--wow {
  animation: dsf-defi2-merci-in 0.65s ease-out both;
}

@keyframes dsf-defi2-merci-in {
  from {
    opacity: 0;
    transform: translateY(18px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dsf-defi2-merci-card--wow {
    animation: none;
  }
}

.dsf-defi2-merci-badge {
  display: inline-block;
  margin: 0 0 0.75rem;
  padding: 0.45rem 1rem;
  border-radius: var(--radius-pill);
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--color-dark);
  background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hot));
  box-shadow: 0 4px 20px rgba(255, 203, 27, 0.35);
}

.dsf-defi2-progress--merci {
  margin: 1.25rem 0;
}

.dsf-defi2-merci-lead {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--color-text);
}

.dsf-defi2-merci-cta {
  margin: 1rem 0 0.5rem;
}

.dsf-defi2-merci-cta .dsf-btn {
  width: 100%;
  max-width: 20rem;
}

/* Défi 3 — collecte ProDon */
.dsf-defi3-celebration {
  border-color: rgba(110, 231, 255, 0.45);
  background: linear-gradient(165deg, rgba(110, 231, 255, 0.12), rgba(255, 203, 27, 0.08));
}

.dsf-defi3-countdown .dsf-countdown__eyebrow {
  color: rgba(110, 231, 255, 0.92);
}

.dsf-defi3-goal {
  margin: 0 0 1.75rem;
  padding: clamp(1.25rem, 4vw, 1.75rem);
  text-align: center;
  border-radius: var(--radius-card);
  border: 1px solid rgba(110, 231, 255, 0.4);
  background: linear-gradient(160deg, rgba(110, 231, 255, 0.1), rgba(0, 0, 0, 0.25));
  box-shadow: 0 8px 32px rgba(110, 231, 255, 0.1);
}

.dsf-defi3-goal__label {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(110, 231, 255, 0.9);
}

.dsf-defi3-goal__amount {
  margin: 0.25rem 0 0.5rem;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 8vw, 3rem);
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-accent);
  text-shadow: 0 0 28px rgba(255, 203, 27, 0.35);
}

.dsf-defi3-goal__minimum {
  display: block;
  font-size: clamp(1.35rem, 5vw, 1.75rem);
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--color-accent);
  text-shadow: 0 0 20px rgba(255, 203, 27, 0.45);
}

.dsf-defi3-goal__note {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--color-text-muted);
}

.dsf-defi3-intro .dsf-casting-intro__eyebrow {
  color: rgba(110, 231, 255, 0.95);
}

.dsf-defi3-rules {
  border-color: rgba(110, 231, 255, 0.28);
  background: rgba(110, 231, 255, 0.06);
}

.dsf-defi3-cta {
  margin: 0 0 1.75rem;
  text-align: center;
}

.dsf-defi3-donate-btn {
  width: 100%;
  max-width: 22rem;
  font-size: 1.05rem;
  padding: 0.85rem 1.5rem;
}

.dsf-defi3-donate-hint {
  margin: 0.75rem 0 0;
}

.dsf-defi3-cta__secondary {
  margin: 1rem 0 0;
}

.dsf-defi3-tips {
  margin: 0 0 2rem;
  padding: 1rem 1.15rem;
  border-radius: var(--radius-card);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.2);
}

.dsf-defi3-tips__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-white);
}

.dsf-defi3-tips__list {
  margin: 0;
  padding-left: 1.2rem;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--color-text-muted);
}

.dsf-defi3-tips__list li + li {
  margin-top: 0.45rem;
}

.dsf-defi34-dual-intro {
  margin: 0 0 2rem;
  padding: 1.5rem 1.25rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.dsf-defi34-dual-intro__eyebrow {
  margin: 0 0 0.5rem;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--dsf-accent, #7dd3fc);
}

.dsf-defi34-dual-intro__title {
  margin: 0 0 1.25rem;
  font-family: var(--dsf-font-display, "Outfit", sans-serif);
  font-size: clamp(1.2rem, 3vw, 1.55rem);
  font-weight: 700;
  line-height: 1.3;
}

.dsf-defi34-dual-intro__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.dsf-defi34-dual-intro__item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 1.25rem;
  line-height: 1.55;
}

.dsf-defi34-dual-intro__item:last-child {
  margin-bottom: 0;
}

.dsf-defi34-dual-intro__num {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  font-weight: 700;
  font-size: 1rem;
  background: var(--dsf-accent, #0ea5e9);
  color: #fff;
}

.dsf-defi34-dual-intro__engage {
  margin: 0.65rem 0 0;
  padding: 0.75rem 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 0.95rem;
  color: var(--dsf-text-muted, rgba(255, 255, 255, 0.88));
}

.dsf-defi34-dual-intro__period {
  margin: 1.25rem 0 0;
  text-align: center;
}

.dsf-defi34-part__heading {
  margin: 0 0 1.5rem;
  font-family: var(--dsf-font-display, "Outfit", sans-serif);
  font-size: clamp(1.15rem, 2.5vw, 1.45rem);
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.dsf-defi34-part__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  height: 1.75rem;
  padding: 0 0.4rem;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: 700;
  background: var(--dsf-accent, #0ea5e9);
  color: #fff;
}

.dsf-defi34-part__num--inline {
  vertical-align: middle;
  margin-right: 0.35rem;
}

.dsf-defi34-engage-box {
  margin: 0 0 1.75rem;
  padding: 1.25rem 1.15rem;
  border-radius: 10px;
  border-left: 4px solid var(--dsf-accent, #38bdf8);
  background: rgba(14, 165, 233, 0.12);
}

.dsf-defi34-engage-box__title {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
  font-weight: 700;
}

.dsf-defi34-engage-box p {
  margin: 0;
  line-height: 1.55;
}

.dsf-defi34-after {
  margin: 2.5rem 0 2rem;
  padding: 1.5rem 1.25rem;
  text-align: center;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.dsf-defi34-after__title {
  margin: 0 0 0.65rem;
  font-family: var(--dsf-font-display, "Outfit", sans-serif);
  font-size: 1.25rem;
  font-weight: 700;
}

.dsf-defi34-after__lead {
  margin: 0;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.55;
  color: var(--dsf-text-muted, rgba(255, 255, 255, 0.85));
}

.dsf-defi34-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
  margin: 0 0 1.75rem;
}

.dsf-defi34-divider {
  margin: 3rem 0 2.5rem;
  padding: 2rem 1.25rem;
  text-align: center;
  border-top: 2px solid rgba(255, 255, 255, 0.14);
  border-bottom: 2px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.12);
  border-radius: 12px;
}

.dsf-defi34-divider__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--dsf-accent, #7dd3fc);
}

.dsf-defi34-divider__title {
  margin: 0 0 0.65rem;
  font-family: var(--dsf-font-display, "Outfit", sans-serif);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  font-weight: 700;
}

.dsf-defi34-divider__lead {
  margin: 0 0 1.25rem;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.55;
  color: var(--dsf-text-muted, rgba(255, 255, 255, 0.82));
}

.dsf-defi34-part + .dsf-defi34-part {
  margin-top: 0;
}

.dsf-defi3-merci-card .dsf-merci-page__back {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
  margin-top: 1.25rem;
}

.dsf-defi3-merci-card .dsf-merci-page__back .dsf-btn {
  width: 100%;
  max-width: 18rem;
}

/* Défi 4 — rayonnement médiatique */
.dsf-defi4-celebration {
  margin-bottom: 0.5rem;
}

.dsf-defi4-subtitle {
  margin: -0.2rem 0 0.9rem;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: clamp(1.05rem, 2.2vw, 1.35rem);
  line-height: 1.15;
  color: rgba(255, 255, 255, 0.92);
}

.dsf-defi4-page .dsf-defi4-subtitle {
  text-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
}

.dsf-defi4-countdown .dsf-countdown__eyebrow {
  color: #7eb8ff;
}

.dsf-defi4-intro .dsf-casting-intro__eyebrow {
  color: #5b9bd5;
}

.dsf-defi4-rules code {
  font-size: 0.88em;
  padding: 0.1em 0.35em;
  border-radius: 4px;
  background: rgba(14, 27, 44, 0.08);
}

.dsf-defi4-ideas {
  margin: 1.25rem 0 1.5rem;
  padding: 1rem 1.15rem;
  border-radius: var(--radius-md);
  background: rgba(91, 155, 213, 0.1);
  border: 1px solid rgba(91, 155, 213, 0.28);
}

.dsf-defi4-ideas__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
}

.dsf-defi4-ideas__list {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.95rem;
  line-height: 1.5;
}

.dsf-defi4-ideas__list li + li {
  margin-top: 0.35rem;
}

.dsf-defi4-type__options {
  margin: 0.5rem 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.dsf-defi4-type__label {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.75rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  cursor: pointer;
  font-weight: 600;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.dsf-defi4-type__label:has(input:checked) {
  border-color: #5b9bd5;
  background: rgba(91, 155, 213, 0.12);
}

.dsf-defi4-type__label input {
  flex-shrink: 0;
}

.dsf-defi4-type__hint {
  margin-top: 0.5rem;
}

.dsf-defi4-form select {
  width: 100%;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: 1rem;
  background: var(--color-surface);
}

.dsf-defi4-merci-card .dsf-defi2-progress__step.is-done .dsf-defi2-progress__icon {
  color: #2e6ea8;
}

.dsf-process-diagram {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto 1fr;
  align-items: stretch;
  gap: 0.65rem;
}

.dsf-process-node {
  border-radius: 16px;
  padding: 0.85rem 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
}

.dsf-process-node--choice {
  border-color: rgba(255, 203, 27, 0.4);
  background: rgba(255, 203, 27, 0.08);
}

.dsf-process-node__kicker {
  margin: 0 0 0.25rem;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 203, 27, 0.9);
}

.dsf-process-node__title {
  margin: 0 0 0.2rem;
  font-family: var(--font-heading);
  font-weight: 800;
  line-height: 1.15;
}

.dsf-process-node__meta {
  margin: 0;
  font-size: 0.95rem;
  opacity: 0.9;
}

.dsf-process-arrow {
  display: grid;
  place-items: center;
  font-size: 1.25rem;
  font-weight: 800;
  opacity: 0.75;
}

@media (max-width: 900px) {
  .dsf-process-diagram {
    grid-template-columns: 1fr;
  }
  .dsf-process-arrow {
    display: none;
  }
}

/* Process équipe — boîtes courriels par défi */
.dsf-process-comms {
  margin-top: 1.35rem;
  padding: 1rem 1.15rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-left-width: 4px;
}

.dsf-process-comms__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.dsf-process-comms__period {
  margin: 0 0 0.65rem;
  font-size: 0.92rem;
  opacity: 0.95;
}

.dsf-process-comms__subtitle {
  margin: 1rem 0 0.45rem;
  font-size: 0.88rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.9;
}

.dsf-process-comms__list {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.95rem;
  line-height: 1.55;
}

.dsf-process-comms__list--secondary {
  opacity: 0.92;
}

.dsf-process-comms__list li + li {
  margin-top: 0.4rem;
}

.dsf-process-comms__hint {
  margin: 0.75rem 0 0;
  font-size: 0.88rem;
}

.dsf-process-comms--defi1 {
  border-left-color: #b8a9e8;
  background: rgba(184, 169, 232, 0.12);
}

.dsf-process-comms--defi1 .dsf-process-comms__title {
  color: #d4c8f5;
}

.dsf-process-comms--defi2 {
  border-left-color: #7dd3a0;
  background: rgba(125, 211, 160, 0.12);
}

.dsf-process-comms--defi2 .dsf-process-comms__title {
  color: #9ae8b8;
}

.dsf-process-comms--defi3 {
  border-left-color: #ffcb1b;
  background: rgba(255, 203, 27, 0.1);
}

.dsf-process-comms--defi3 .dsf-process-comms__title {
  color: #ffe066;
}

.dsf-process-comms--defi4 {
  border-left-color: #5b9bd5;
  background: rgba(91, 155, 213, 0.14);
}

.dsf-process-comms--defi4 .dsf-process-comms__title {
  color: #8ec0f0;
}

.dsf-process-comms--jury {
  border-left-color: #f0a060;
  background: rgba(240, 160, 96, 0.12);
}

.dsf-process-comms--jury .dsf-process-comms__title {
  color: #ffc899;
}

.dsf-process-comms--social {
  margin-top: 1rem;
  border-left-color: #b794f6;
  background: rgba(183, 148, 246, 0.1);
}

.dsf-process-comms--social .dsf-process-comms__title {
  color: #d4b8ff;
}

.dsf-process-social-intro {
  margin: 0 0 0.5rem;
  padding: clamp(1rem, 3vw, 1.35rem) clamp(1.1rem, 3vw, 1.5rem);
  border-radius: var(--radius-card);
  border: 1px solid rgba(183, 148, 246, 0.35);
  background: rgba(183, 148, 246, 0.1);
  font-size: 0.92rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
}

.dsf-process-social-intro__title {
  display: block;
  margin-bottom: 0.35rem;
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 800;
  color: #d4b8ff;
}

.dsf-process-social-intro code {
  font-size: 0.85em;
}

.dsf-process-social-load-warn {
  margin: 0 0 0.75rem;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 120, 120, 0.55);
  background: rgba(255, 80, 80, 0.15);
  font-size: 0.9rem;
  font-weight: 600;
  color: #ffc9c9;
}

.dsf-process-social-mount {
  margin-top: 0.5rem;
}

.dsf-process-social-phase + .dsf-process-social-phase {
  margin-top: 1.35rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.dsf-process-social-phase__title {
  margin: 0 0 0.75rem;
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--color-primary);
}

.dsf-process-social-phase__title--inline {
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
  color: #d4b8ff;
}

.dsf-process-social-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.dsf-process-social-post {
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.18);
  overflow: hidden;
}

.dsf-process-social-post__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  padding: 0.8rem 0.95rem;
}

.dsf-process-social-post__when {
  margin: 0 0 0.15rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.85;
}

.dsf-process-social-post__format {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  color: var(--color-text-muted);
}

.dsf-process-social-post__label {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 0.98rem;
  font-weight: 800;
  line-height: 1.25;
}

.dsf-process-social-post__preview {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 0 0.95rem 0.85rem;
}

.dsf-process-social-post__preview summary {
  cursor: pointer;
  font-size: 0.86rem;
  font-weight: 700;
  padding: 0.5rem 0;
}

.dsf-process-social-post__caption {
  margin: 0;
  padding: 0.7rem 0.8rem;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.22);
  font-family: var(--font-body);
  font-size: 0.82rem;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 14rem;
  overflow: auto;
}

@media (max-width: 767px) {
  .dsf-process-social-post__head {
    flex-direction: column;
  }

  .dsf-process-social-post__head .dsf-btn {
    width: 100%;
    justify-content: center;
  }
}

@media print {
  .dsf-process-social-post__head .dsf-btn {
    display: none;
  }

  .dsf-process-social-post__preview {
    display: block;
  }

  .dsf-process-social-post__preview summary {
    display: none;
  }

  .dsf-process-social-post__caption {
    max-height: none;
  }
}

.dsf-process-email-guide__steps {
  margin: 0 0 0.75rem;
  padding-left: 1.25rem;
  line-height: 1.6;
}

.dsf-process-email-guide__steps li + li {
  margin-top: 0.45rem;
}

.dsf-process-comms__howto,
.dsf-process-comms__note {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  line-height: 1.55;
}

.dsf-process-emails-mount {
  margin-top: 0.5rem;
}

.dsf-process-emails-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.dsf-process-email {
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.2);
  overflow: hidden;
}

.dsf-process-email__head {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.55rem;
  padding: 0.85rem 1rem;
}

.dsf-process-email__meta {
  min-width: 0;
  width: 100%;
}

.dsf-process-email__actions {
  width: 100%;
}

@media (min-width: 768px) {
  .dsf-process-email__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.5rem 0.75rem;
  }

  .dsf-process-email__meta {
    grid-column: 1;
    grid-row: 1;
  }

  .dsf-process-email__actions {
    grid-column: 2;
    grid-row: 1;
    width: auto;
    align-self: start;
  }
}

.dsf-process-email__when {
  margin: 0 0 0.2rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.85;
}

.dsf-process-email__label {
  margin: 0 0 0.35rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.2;
}

.dsf-process-email__audience {
  margin: 0;
  font-size: 0.88rem;
  opacity: 0.92;
}

.dsf-process-email__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  flex-shrink: 0;
}

.dsf-process-email__actions .dsf-btn.is-copied {
  background: rgba(125, 211, 160, 0.35);
  border-color: rgba(125, 211, 160, 0.6);
}

.dsf-process-email__preview {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 0 1rem 0.85rem;
}

.dsf-process-email__preview summary {
  cursor: pointer;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 0.55rem 0;
  color: rgba(255, 255, 255, 0.85);
}

.dsf-process-email__subject {
  margin: 0.5rem 0 0.35rem;
  font-size: 0.9rem;
}

.dsf-process-email__body {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.25);
  font-family: var(--font-body);
  font-size: 0.82rem;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 16rem;
  overflow: auto;
}

@media (max-width: 767px) {
  .dsf-process-email__head {
    padding: 0.75rem 0.85rem;
  }

  .dsf-process-email__actions .dsf-btn {
    flex: 1 1 calc(50% - 0.25rem);
    justify-content: center;
    min-width: 0;
    font-size: 0.8rem;
    padding-inline: 0.5rem;
  }
}

@media (max-width: 900px) {
  .dsf-process-page .dsf-jury-hero {
    min-height: auto;
    padding-bottom: clamp(1.5rem, 4vw, 2rem);
  }

  .dsf-process-page .dsf-runbook-section.dsf-jury-section {
    padding-top: clamp(1.75rem, 5vw, 2.5rem);
  }

  .dsf-process-page .dsf-runbook-wrap {
    gap: 1.25rem;
  }

  .dsf-runbook-step.dsf-jury-glass {
    padding: clamp(1rem, 3.5vw, 1.5rem);
  }

  .dsf-runbook-tools {
    gap: 0.45rem;
    justify-content: stretch;
  }

  .dsf-runbook-tools li {
    flex: 1 1 calc(50% - 0.25rem);
    min-width: 0;
  }

  .dsf-runbook-tools .dsf-btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .dsf-process-comms {
    padding: 0.85rem 0.9rem;
  }
}

@media print {
  .dsf-process-email__actions {
    display: none;
  }

  .dsf-process-email__preview {
    display: block;
  }

  .dsf-process-email__preview summary {
    display: none;
  }

  .dsf-process-email__body {
    max-height: none;
  }
}

.dsf-circuit-walk__points--journey {
  min-width: min(100%, 28rem);
}

.dsf-circuit-walk__points--journey-4 {
  min-width: min(100%, 30rem);
}

.dsf-circuit-walk__points--journey-4 .dsf-circuit-walk__label {
  font-size: 0.62rem;
  max-width: 3.5rem;
}

@media (min-width: 640px) {
  .dsf-circuit-walk__points--journey-4 .dsf-circuit-walk__label {
    font-size: 0.72rem;
    max-width: none;
  }
}

.dsf-circuit-walk__points--journey-5 {
  min-width: min(100%, 36rem);
}

.dsf-circuit-walk__points--journey-5 .dsf-circuit-walk__label {
  font-size: 0.58rem;
  max-width: 3rem;
}

@media (min-width: 640px) {
  .dsf-circuit-walk__points--journey-5 .dsf-circuit-walk__label {
    font-size: 0.68rem;
    max-width: none;
  }
}

.dsf-defi2-progress--5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.35rem;
}

@media (max-width: 520px) {
  .dsf-defi2-progress--5 .dsf-defi2-progress__label {
    font-size: 0.62rem;
  }

  .dsf-defi2-progress--5 .dsf-defi2-progress__sub {
    display: none;
  }
}

.dsf-circuit-walk__point--done .dsf-circuit-walk__dot {
  background: var(--color-success);
  border-color: rgba(255, 255, 255, 0.5);
}

.dsf-circuit-walk__point--done .dsf-circuit-walk__label {
  color: var(--color-success);
}

.dsf-circuit-walk__point--current .dsf-circuit-walk__dot,
.dsf-circuit-walk__point--current.is-active .dsf-circuit-walk__dot {
  background: var(--color-accent);
  box-shadow: 0 0 0 5px rgba(255, 203, 27, 0.25);
}

.dsf-circuit-walk__point--next .dsf-circuit-walk__dot {
  background: rgba(255, 255, 255, 0.2);
  border: 2px dashed rgba(255, 255, 255, 0.35);
}

.dsf-defi2-intro {
  margin-top: 0.5rem;
}

.dsf-defi2-intro .dsf-casting-intro__eyebrow {
  color: var(--color-success);
}

.dsf-defi2-merci-highlight {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-card);
  border: 1px solid rgba(125, 211, 160, 0.35);
  background: rgba(125, 211, 160, 0.1);
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--color-text);
}

.dsf-defi2-merci-email {
  margin-top: 1rem;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--color-accent);
}

.dsf-defi2-contact--merci {
  margin-top: 1.25rem;
  padding-top: 0;
  border-top: none;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--color-text-muted);
  text-align: center;
}

.dsf-defi2-contact--merci a {
  color: var(--color-primary);
  font-weight: 600;
}

.dsf-defi2-rules {
  margin: 0 0 1.75rem;
  padding: 1rem 1.15rem;
  border-radius: var(--radius-card);
  border: 1px solid rgba(125, 211, 160, 0.28);
  background: rgba(125, 211, 160, 0.08);
}

.dsf-defi2-rules__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-white);
  text-transform: none;
  letter-spacing: 0;
}

.dsf-defi2-rules__list {
  margin: 0;
  padding-left: 1.25rem;
  font-size: 0.95rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.88);
}

.dsf-defi2-rules__list li + li {
  margin-top: 0.4rem;
}

.dsf-defi2-ok {
  color: var(--color-success);
}

.dsf-defi2-video {
  margin: 0 0 1.75rem;
}

.dsf-defi2-video__title {
  margin: 0 0 0.75rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-white);
  text-transform: none;
  letter-spacing: 0;
}

.dsf-defi2-video .dsf-video {
  max-width: 100%;
}

.dsf-defi2-video .dsf-video__frame {
  aspect-ratio: 1060 / 636;
  background: #000;
  /* Masque les bandes blanches du player Vimeo (16:9) autour d’une vidéo 1060×636 */
  --dsf-defi2-vimeo-cover: calc(100% * 16 / 9 / (1060 / 636));
}

.dsf-defi2-video .dsf-video__frame iframe {
  left: 50%;
  top: 0;
  width: var(--dsf-defi2-vimeo-cover);
  height: 100%;
  max-width: none;
  transform: translateX(-50%);
  background: #000;
}

.dsf-defi2-form input[type="file"] {
  width: 100%;
  max-width: 100%;
  padding: 0.65rem;
  border-radius: var(--radius-button);
  border: 1px dashed rgba(255, 255, 255, 0.25);
  background: rgba(0, 0, 0, 0.2);
  color: var(--color-text);
  font-size: 0.9rem;
}

.dsf-defi2-privacy {
  margin: 0.5rem 0 1rem;
}

.dsf-defi2-merci-card {
  border-color: rgba(125, 211, 160, 0.35);
}

@media print {
  .dsf-header,
  .dsf-runbook-toolbar,
  .dsf-skip,
  .dsf-hero__cta,
  .dsf-runbook-print {
    display: none !important;
  }

  .dsf-runbook-page .dsf-jury-glass::after {
    animation: none;
  }

  .dsf-runbook-step {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .dsf-runbook-circuit {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .dsf-circuit-walk__track {
    overflow: visible;
  }
}

/* ------------------------------------------------------------------------- Calendrier communications (process équipe) */
.dsf-cal-page .dsf-cal-legend {
  margin-bottom: 1.25rem;
}

.dsf-cal-legend__title {
  margin: 0 0 0.65rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 800;
}

.dsf-cal-legend__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.92rem;
}

.dsf-cal-legend__list li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.dsf-cal-legend__swatch {
  width: 1rem;
  height: 1rem;
  border-radius: 4px;
  flex-shrink: 0;
}

.dsf-cal-legend__swatch--email {
  background: rgba(183, 148, 246, 0.85);
  box-shadow: 0 0 0 1px rgba(183, 148, 246, 0.5);
}

.dsf-cal-legend__swatch--social {
  background: rgba(125, 211, 160, 0.85);
  box-shadow: 0 0 0 1px rgba(125, 211, 160, 0.5);
}

.dsf-cal-legend__swatch--internal {
  background: rgba(107, 127, 215, 0.9);
  box-shadow: 0 0 0 1px rgba(107, 127, 215, 0.5);
}

.dsf-cal-loading,
.dsf-cal-summary {
  margin: 0 0 1.25rem;
  font-size: 0.92rem;
  color: var(--color-text-muted);
}

.dsf-cal-month + .dsf-cal-month {
  margin-top: 2rem;
}

.dsf-cal-month__title {
  margin: 0 0 0.75rem;
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 800;
  text-transform: capitalize;
  color: var(--color-accent);
}

.dsf-cal-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
  margin-bottom: 0.35rem;
}

.dsf-cal-weekdays__cell {
  text-align: center;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.dsf-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
}

.dsf-cal-day {
  min-height: 5.5rem;
  padding: 0.45rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.15);
}

.dsf-cal-day--pad {
  min-height: 0;
  padding: 0;
  border: none;
  background: transparent;
}

.dsf-cal-day--has-events {
  border-color: rgba(255, 203, 27, 0.25);
  background: rgba(255, 203, 27, 0.04);
}

.dsf-cal-day--past-blur .dsf-cal-day__events,
.dsf-cal-day--past-blur .dsf-cal-day__empty {
  filter: blur(2.5px);
  opacity: 0.5;
}

.dsf-cal-day__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.25rem;
  margin-bottom: 0.35rem;
}

.dsf-cal-day__date {
  font-size: 0.75rem;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.85);
}

.dsf-cal-day__count {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.1rem 0.35rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-text-muted);
}

.dsf-cal-day__empty {
  margin: 0;
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.15);
  text-align: center;
  padding-top: 0.5rem;
}

.dsf-cal-day__events {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.dsf-cal-chip {
  margin: 0;
  padding: 0.35rem 0.4rem;
  border-radius: 6px;
  border: 1px solid transparent;
  font-size: 0.68rem;
  line-height: 1.25;
}

.dsf-cal-chip--email {
  background: rgba(183, 148, 246, 0.2);
  border-color: rgba(183, 148, 246, 0.45);
}

.dsf-cal-chip--social {
  background: rgba(125, 211, 160, 0.18);
  border-color: rgba(125, 211, 160, 0.45);
}

.dsf-cal-chip--internal {
  background: rgba(107, 127, 215, 0.18);
  border-color: rgba(107, 127, 215, 0.45);
}

.dsf-cal-chip__type {
  display: block;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.dsf-cal-chip--email .dsf-cal-chip__type {
  color: #d4b8ff;
}

.dsf-cal-chip--social .dsf-cal-chip__type {
  color: #7dd3a0;
}

.dsf-cal-chip--internal .dsf-cal-chip__type {
  color: #9eb0f0;
}

.dsf-cal-chip__phase {
  display: block;
  font-size: 0.6rem;
  opacity: 0.85;
  margin-top: 0.05rem;
}

.dsf-cal-chip__label {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
}

.dsf-cal-chip--clickable {
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.1s ease;
}

.dsf-cal-chip--clickable:hover,
.dsf-cal-chip--clickable:focus {
  outline: none;
  border-color: rgba(183, 148, 246, 0.75);
  background: rgba(183, 148, 246, 0.28);
  transform: translateY(-1px);
}

.dsf-cal-chip--clickable:focus-visible {
  box-shadow: 0 0 0 2px rgba(183, 148, 246, 0.6);
}

.dsf-cal-chip__hint {
  font-weight: 600;
  font-size: 0.58rem;
  opacity: 0.75;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Popup courriel — calendrier communications */
.dsf-cal-email-modal {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.dsf-cal-email-modal[hidden] {
  display: none !important;
}

.dsf-cal-email-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 12, 28, 0.82);
  backdrop-filter: blur(4px);
}

.dsf-cal-email-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(36rem, 100%);
  max-height: min(90vh, 42rem);
  overflow: auto;
  padding: 1.25rem 1.35rem 1.35rem;
  border-radius: var(--radius-md, 12px);
  border: 1px solid rgba(183, 148, 246, 0.45);
  background: linear-gradient(165deg, rgba(28, 32, 52, 0.98), rgba(18, 20, 36, 0.99));
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
}

.dsf-cal-email-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.dsf-cal-email-modal__kicker {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #d4b8ff;
}

.dsf-cal-email-modal__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.25;
}

.dsf-cal-email-modal__when {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  color: var(--color-text-muted);
}

.dsf-cal-email-modal__close {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.dsf-cal-email-modal__close:hover {
  background: rgba(255, 255, 255, 0.18);
}

.dsf-cal-email-modal__audience,
.dsf-cal-email-modal__subject {
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  line-height: 1.45;
}

.dsf-cal-email-modal__label {
  display: block;
  margin: 0.75rem 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.dsf-cal-email-modal__body {
  display: block;
  width: 100%;
  min-height: 14rem;
  margin: 0;
  padding: 0.75rem 0.85rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.35);
  color: rgba(255, 255, 255, 0.92);
  font-family: var(--font-body, "Source Sans 3", sans-serif);
  font-size: 0.88rem;
  line-height: 1.5;
  resize: vertical;
}

.dsf-cal-email-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}

.dsf-cal-email-modal__actions .dsf-btn.is-copied {
  background: rgba(125, 211, 160, 0.35);
  border-color: rgba(125, 211, 160, 0.6);
}

body.dsf-cal-email-modal-open {
  overflow: hidden;
}

.dsf-process-cal-embed {
  margin-bottom: 1.25rem;
}

.dsf-process-cal-embed__head {
  margin-bottom: 0.75rem;
}

.dsf-cal-unscheduled--embed {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.dsf-cal-unscheduled--embed .dsf-cal-unscheduled__title {
  margin: 0 0 0.35rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 800;
}

.dsf-cal-chip__detail {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.62rem;
  opacity: 0.8;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dsf-cal-unscheduled {
  margin-top: 1.75rem;
}

.dsf-cal-unscheduled-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (max-width: 900px) {
  .dsf-cal-grid,
  .dsf-cal-weekdays {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dsf-cal-weekdays__cell:nth-child(n + 3) {
    display: none;
  }

  .dsf-cal-day--pad {
    display: none;
  }

  .dsf-cal-day {
    min-height: auto;
  }
}

@media print {
  .dsf-cal-day {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

/* Sélection finale — tableau équipe */
.dsf-selection-page .dsf-container {
  max-width: 72rem;
}

.dsf-selection-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin: 1.25rem 0 0.75rem;
  align-items: flex-end;
}

.dsf-selection-filter {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--color-text-muted);
}

.dsf-selection-filter--grow {
  flex: 1 1 12rem;
  min-width: 10rem;
}

.dsf-selection-filter--preset {
  flex: 1 1 14rem;
  min-width: 12rem;
}

.dsf-selection-filter--preset select {
  min-width: 100%;
}

.dsf-selection-filter--check {
  flex-direction: row;
  align-items: center;
  gap: 0.4rem;
  padding-bottom: 0.35rem;
}

.dsf-selection-filter select,
.dsf-selection-filter input[type="number"],
.dsf-selection-filter input[type="search"] {
  font: inherit;
  padding: 0.45rem 0.6rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(0, 0, 0, 0.25);
  color: inherit;
  min-width: 5rem;
}

.dsf-selection-filter input[type="search"] {
  width: 100%;
}

.dsf-selection-filter-count {
  flex: 1 1 100%;
  margin: 0;
  padding: 0.5rem 0.85rem;
  font-size: 0.95rem;
  color: var(--color-text-muted);
  background: rgba(255, 203, 27, 0.08);
  border: 1px solid rgba(255, 203, 27, 0.25);
  border-radius: var(--radius-sm);
  align-self: stretch;
}

.dsf-selection-filter-count strong {
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--color-accent);
  margin-right: 0.25rem;
}

.dsf-selection-counts {
  font-size: 0.88rem;
  color: var(--color-text-muted);
  margin: 0.5rem 0;
}

.dsf-selection-table-wrap {
  overflow-x: auto;
  margin-top: 0.5rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.dsf-selection-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}

.dsf-selection-table th,
.dsf-selection-table td {
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  vertical-align: middle;
  text-align: left;
}

.dsf-selection-table th {
  font-family: var(--font-heading);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
  background: rgba(0, 0, 0, 0.2);
  white-space: nowrap;
}

.dsf-selection-table tbody tr:hover {
  background: rgba(255, 203, 27, 0.04);
}

.dsf-selection-profil {
  max-width: 14rem;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--color-text-muted);
}

.dsf-selection-notes {
  min-width: 9rem;
  font-size: 0.78rem;
  line-height: 1.4;
  white-space: normal;
}

.dsf-selection-note-finale {
  min-width: 4.5rem;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1rem;
  color: var(--color-accent);
  text-align: center;
}

.dsf-selection-photo-btn {
  display: block;
  padding: 0;
  margin: 0;
  border: none;
  background: none;
  cursor: zoom-in;
  border-radius: var(--radius-sm);
  line-height: 0;
}

.dsf-selection-photo-btn:hover .dsf-selection-photo,
.dsf-selection-photo-btn:focus-visible .dsf-selection-photo {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.dsf-selection-photo {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
}

.dsf-selection-photo__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dsf-selection-photo--empty {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--color-accent);
}

.dsf-selection-toolbar .dsf-btn--sm {
  align-self: flex-end;
  margin-bottom: 0.35rem;
}

.dsf-selection-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  background: rgba(0, 0, 0, 0.96);
  backdrop-filter: blur(8px);
}

.dsf-selection-lightbox[hidden] {
  display: none !important;
}

.dsf-selection-lightbox__stage {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  padding: 3.5rem 0.5rem 0.5rem;
}

.dsf-selection-lightbox__img {
  display: block;
  max-width: min(98vw, 2400px);
  max-height: min(92vh, 2400px);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: var(--radius-md);
  box-shadow: 0 16px 64px rgba(0, 0, 0, 0.75);
  cursor: zoom-out;
}

.dsf-selection-lightbox__hint {
  flex: 0 0 auto;
  margin: 0.35rem 0 0.5rem;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.55);
  text-align: center;
}

.dsf-selection-lightbox__close {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 10001;
  padding: 0.65rem 1.1rem;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  color: #0a1628;
  background: var(--color-accent);
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.dsf-selection-lightbox__close:hover {
  filter: brightness(1.08);
}

body.dsf-selection-lightbox-open {
  overflow: hidden;
}

.dsf-selection-shortlist-bar {
  margin: 1.25rem 0;
  padding: 1rem 1.15rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 203, 27, 0.35);
  background: linear-gradient(160deg, rgba(255, 203, 27, 0.12), rgba(0, 0, 0, 0.2));
}

.dsf-selection-shortlist-bar__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
}

.dsf-selection-shortlist-bar__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 800;
}

.dsf-selection-shortlist-bar__count strong {
  font-size: 1.5rem;
  color: var(--color-accent);
}

.dsf-selection-shortlist-bar__count--full strong {
  color: #7dd3a0;
}

.dsf-selection-shortlist-bar__meta {
  margin: 0.5rem 0;
  font-size: 0.85rem;
  color: var(--color-text-muted);
}

.dsf-selection-shortlist-bar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.65rem;
}

.dsf-selection-zones-bar {
  margin: 1rem 0 1.25rem;
  padding: 1rem 1.15rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(234, 179, 8, 0.35);
  background: rgba(234, 179, 8, 0.06);
}

.dsf-btn--file {
  cursor: pointer;
  margin: 0;
}

.dsf-selection-pick-list {
  margin: 0.75rem 0 0;
  padding-left: 1.2rem;
  font-size: 0.82rem;
  color: var(--color-text-muted);
  max-height: 8rem;
  overflow-y: auto;
}

.dsf-selection-pick-label {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.dsf-selection-pick-label input {
  width: 1.1rem;
  height: 1.1rem;
  accent-color: var(--color-accent);
}

.dsf-selection-row--picked {
  background: rgba(255, 203, 27, 0.08);
}

.dsf-selection-col-pick {
  width: 2.5rem;
  text-align: center;
}

.dsf-selection-col-zone {
  width: 4.5rem;
  text-align: center;
  padding-left: 0.35rem !important;
  padding-right: 0.35rem !important;
}

.dsf-selection-zone {
  display: inline-flex;
  gap: 0.2rem;
  vertical-align: middle;
}

.dsf-selection-zone__btn {
  width: 1.55rem;
  height: 1.55rem;
  padding: 0;
  border-radius: 999px;
  border: 2px solid transparent;
  font-family: var(--font-heading);
  font-size: 0.65rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  opacity: 0.45;
  transition: opacity 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.dsf-selection-zone__btn:hover {
  opacity: 0.85;
  transform: scale(1.06);
}

.dsf-selection-zone__btn.is-active {
  opacity: 1;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.35);
  transform: scale(1.08);
}

.dsf-selection-zone__btn--green {
  background: rgba(34, 197, 94, 0.35);
  border-color: rgba(34, 197, 94, 0.85);
  color: #bbf7d0;
}

.dsf-selection-zone__btn--yellow {
  background: rgba(234, 179, 8, 0.35);
  border-color: rgba(234, 179, 8, 0.9);
  color: #fef08a;
}

.dsf-selection-zone__btn--red {
  background: rgba(239, 68, 68, 0.35);
  border-color: rgba(239, 68, 68, 0.9);
  color: #fecaca;
}

.dsf-selection-zone-legend {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  font-family: var(--font-heading);
  font-size: 0.65rem;
  font-weight: 800;
  background: rgba(34, 197, 94, 0.35);
  border: 1px solid rgba(34, 197, 94, 0.85);
  color: #bbf7d0;
  vertical-align: middle;
}

.dsf-selection-zone-legend--yellow {
  background: rgba(234, 179, 8, 0.35);
  border-color: rgba(234, 179, 8, 0.9);
  color: #fef08a;
}

.dsf-selection-zone-legend--red {
  background: rgba(239, 68, 68, 0.35);
  border-color: rgba(239, 68, 68, 0.9);
  color: #fecaca;
}

.dsf-selection-row--zone-green {
  box-shadow: inset 3px 0 0 rgba(34, 197, 94, 0.85);
}

.dsf-selection-row--zone-yellow {
  box-shadow: inset 3px 0 0 rgba(234, 179, 8, 0.9);
}

.dsf-selection-row--zone-red {
  box-shadow: inset 3px 0 0 rgba(239, 68, 68, 0.85);
  opacity: 0.72;
}

.dsf-selection-card--zone-green {
  border-color: rgba(34, 197, 94, 0.55);
}

.dsf-selection-card--zone-yellow {
  border-color: rgba(234, 179, 8, 0.65);
}

.dsf-selection-card--zone-red {
  border-color: rgba(239, 68, 68, 0.55);
  opacity: 0.78;
}

.dsf-selection-card .dsf-selection-zone {
  margin: 0.35rem 0 0.5rem;
}

.dsf-selection-present__zone {
  margin: 0.75rem 0 1rem;
}

.dsf-selection-present__zone .dsf-selection-zone__btn {
  width: 2.25rem;
  height: 2.25rem;
  font-size: 0.85rem;
}

.dsf-selection-score {
  font-family: var(--font-heading);
  font-weight: 700;
  color: rgba(110, 231, 255, 0.95);
  text-align: center;
}

.dsf-selection-view-toggle {
  display: flex;
  gap: 0.5rem;
  margin: 0.5rem 0;
}

.dsf-selection-view-toggle .dsf-btn.is-active {
  background: var(--color-accent);
  color: #0a1628;
  border-color: var(--color-accent);
}

.dsf-selection-cards-wrap {
  margin-top: 0.75rem;
}

.dsf-selection-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 1rem;
}

.dsf-selection-card {
  padding: 0.85rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.25);
  text-align: center;
}

.dsf-selection-card--picked {
  border-color: rgba(255, 203, 27, 0.45);
  background: rgba(255, 203, 27, 0.08);
}

.dsf-selection-card__pick {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

.dsf-selection-card__name {
  margin: 0.4rem 0 0.2rem;
  font-size: 0.88rem;
}

.dsf-selection-card__meta,
.dsf-selection-card__scores {
  margin: 0.2rem 0;
  font-size: 0.75rem;
  color: var(--color-text-muted);
}

.dsf-selection-card__profil {
  margin: 0.35rem 0 0;
  font-size: 0.7rem;
  line-height: 1.35;
  color: var(--color-text-muted);
  max-height: 3.5rem;
  overflow: hidden;
}

.dsf-selection-print-sheet {
  display: none;
}

body.dsf-selection-printing .dsf-selection-print-sheet {
  display: block;
  padding: 1rem;
  color: #111;
  background: #fff;
}

.dsf-selection-print-sheet h1 {
  font-size: 1.25rem;
  margin: 0 0 0.25rem;
}

.dsf-selection-print-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.dsf-selection-print-table th,
.dsf-selection-print-table td {
  border: 1px solid #ccc;
  padding: 0.35rem 0.5rem;
  text-align: left;
}

@media print {
  body.dsf-selection-printing .dsf-selection-no-print,
  body.dsf-selection-printing .dsf-header,
  body.dsf-selection-printing #selection-main {
    display: none !important;
  }

  body.dsf-selection-printing .dsf-selection-print-sheet {
    display: block !important;
  }
}

/* --- Sélection finale WOW --- */
.dsf-selection-fresh {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
  color: var(--color-text-muted);
}

.dsf-selection-legend {
  margin: 0 0 1rem;
  padding: 0.65rem 0.9rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.2);
  font-size: 0.82rem;
}

.dsf-selection-legend summary {
  cursor: pointer;
  font-weight: 700;
}

.dsf-selection-legend ul {
  margin: 0.5rem 0 0;
  padding-left: 1.2rem;
}

.dsf-selection-legend__body {
  margin-top: 0.65rem;
}

.dsf-selection-legend__body p {
  margin: 0 0 0.55rem;
  line-height: 1.45;
}

.dsf-selection-legend__body ol {
  margin: 0.35rem 0 0.55rem;
  padding-left: 1.25rem;
}

.dsf-selection-legend__body li + li {
  margin-top: 0.25rem;
}

.dsf-selection-score-weight {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
}

.dsf-selection-score-weight__label {
  font-size: 0.88rem;
  font-weight: 600;
}

.dsf-selection-score-weight input[type="range"] {
  flex: 1 1 12rem;
  min-width: 10rem;
  max-width: 20rem;
  accent-color: var(--color-accent, #ffcb1b);
}

.dsf-selection-score-weight output {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-accent, #ffcb1b);
  white-space: nowrap;
}

.dsf-selection-targets {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(110, 231, 255, 0.25);
  background: rgba(110, 231, 255, 0.06);
}

.dsf-selection-targets__title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 800;
}

.dsf-selection-targets__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin-bottom: 0.65rem;
}

.dsf-selection-targets__grid label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.78rem;
  font-weight: 600;
}

.dsf-selection-targets__grid input {
  width: 4rem;
  padding: 0.35rem 0.5rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(0, 0, 0, 0.25);
  color: inherit;
}

.dsf-selection-target-gauges {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.dsf-selection-gauge span {
  font-size: 0.8rem;
  font-weight: 700;
}

.dsf-selection-gauge__bar {
  height: 0.35rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  overflow: hidden;
}

.dsf-selection-gauge__bar i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--color-accent), #7dd3a0);
}

.dsf-selection-gauge em {
  font-size: 0.75rem;
  color: var(--color-accent);
  font-style: normal;
}

.dsf-selection-gauge__warn {
  margin: 0.25rem 0 0;
  color: #f87171;
  font-size: 0.8rem;
  font-weight: 700;
}

.dsf-selection-pick-list--sortable {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
  max-height: 14rem;
  overflow-y: auto;
}

.dsf-selection-pick-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.8rem;
}

.dsf-selection-pick-item__handle {
  cursor: grab;
  opacity: 0.5;
}

.dsf-selection-pick-item .sel-pick-memo {
  flex: 1 1 12rem;
  min-width: 8rem;
  padding: 0.3rem 0.45rem;
  font-size: 0.78rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.2);
  color: inherit;
}

.dsf-selection-pick-item .sel-call-status {
  font-size: 0.75rem;
  padding: 0.2rem;
}

#sel-sheet-sync-status.is-error {
  color: #f87171;
}

.dsf-selection-skeleton {
  margin: 0.5rem 0 1rem;
}

.dsf-selection-skeleton__bar {
  height: 0.65rem;
  margin-bottom: 0.45rem;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.06) 0%,
    rgba(255, 255, 255, 0.14) 50%,
    rgba(255, 255, 255, 0.06) 100%
  );
  background-size: 200% 100%;
  animation: dsf-sel-skeleton 1.2s ease-in-out infinite;
}

.dsf-selection-skeleton__bar:nth-child(2) {
  width: 85%;
  animation-delay: 0.15s;
}

.dsf-selection-skeleton__bar:nth-child(3) {
  width: 70%;
  animation-delay: 0.3s;
}

@keyframes dsf-sel-skeleton {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}

.dsf-selection-defi4-link {
  margin-left: 0.25rem;
  font-size: 0.85rem;
}

.dsf-selection-compare {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 900;
  max-height: 55vh;
  overflow-y: auto;
  padding: 1rem;
  background: rgba(10, 22, 40, 0.97);
  border-top: 2px solid var(--color-accent);
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.45);
}

.dsf-selection-compare__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.dsf-selection-compare__title {
  margin: 0;
  flex: 1;
  font-size: 1rem;
}

.dsf-selection-compare__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 1rem;
}

.dsf-selection-compare-card {
  padding: 0.75rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.25);
  font-size: 0.82rem;
}

.dsf-selection-compare-card h3 {
  margin: 0.35rem 0;
  font-size: 0.95rem;
}

.dsf-selection-compare-card .dsf-selection-photo-btn {
  display: block;
  margin: 0 auto 0.5rem;
}

.dsf-selection-compare-card .dsf-selection-photo,
.dsf-selection-compare-card .dsf-selection-photo__img {
  width: 7rem;
  height: 7rem;
}

.dsf-selection-compare-card__profil {
  max-height: 4rem;
  overflow: hidden;
}

.dsf-selection-video-link {
  font-weight: 600;
  color: var(--dsf-primary, #0a3d91);
  white-space: nowrap;
}

.dsf-selection-video--none {
  color: var(--dsf-muted, #6b7280);
}

.dsf-selection-card__video,
.dsf-selection-compare-card__video {
  margin-top: 0.35rem;
}

.dsf-selection-present[hidden],
.dsf-selection-compare[hidden],
.dsf-selection-toast[hidden] {
  display: none !important;
  pointer-events: none;
}

.dsf-selection-present {
  position: fixed;
  inset: 0;
  z-index: 950;
  display: flex;
  flex-direction: column;
  background: #0a1628;
  color: #f0f4f8;
}

.dsf-selection-present__chrome {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.dsf-selection-present__counter {
  font-weight: 800;
  margin-right: auto;
}

.dsf-selection-present__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  text-align: center;
  max-width: 42rem;
  margin: 0 auto;
}

.dsf-selection-present__photo {
  width: min(280px, 70vw);
  height: min(280px, 70vw);
  object-fit: cover;
  border-radius: var(--radius-md);
  margin-bottom: 1rem;
}

.dsf-selection-present__photo--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4rem;
  font-weight: 800;
  background: rgba(255, 203, 27, 0.15);
  color: var(--color-accent);
}

.dsf-selection-present__stats {
  font-size: 1.1rem;
}

.dsf-selection-present__hint {
  text-align: center;
  font-size: 0.78rem;
  color: var(--color-text-muted);
  padding: 0.5rem;
}

.dsf-selection-toast {
  position: fixed;
  bottom: 5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  padding: 0.65rem 1.2rem;
  border-radius: 999px;
  background: var(--color-accent);
  color: #0a1628;
  font-weight: 800;
  font-size: 0.9rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

@media (max-width: 720px) {
  .dsf-selection-profil {
    max-width: 8rem;
  }

  .dsf-selection-filter-count {
    flex: 1 1 100%;
  }

  .dsf-selection-cards {
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
  }

  .dsf-selection-compare {
    max-height: 70vh;
  }

  .dsf-selection-present__chrome {
    justify-content: center;
  }
}
