/* ==========================================================================
   QUÉBEC HD — pages/signalement-dmca.css
   Styles spécifiques à la page « Signalement DMCA » (slug
   « signalement-dmca », ID 27). Une feuille par page, jamais par section.
   Les composants réutilisables (typographie, boutons, focus) restent dans
   general.css.

   Namespaces utilisés ici :
   - .qhd-dmca-hero-*, .qhd-dmca-nav-*   (section sections/dmca-hero.php)
   - .qhd-dmca-policy-*, .qhd-dmca-jurisdiction-*, .qhd-dmca-notice-*,
     .qhd-dmca-requirement-*             (section sections/dmca-politique.php)
   - .qhd-dmca-review-*, .qhd-dmca-review-step-*
                                         (section sections/dmca-examen.php)
   - .qhd-dmca-counter-*, .qhd-dmca-counter-item-*
                                         (section sections/dmca-contre-notification.php)
   - .qhd-dmca-send-*                     (section sections/dmca-envoyer.php)
   ========================================================================== */

/* ==========================================================================
   Section 01 « hero » (sections/dmca-hero.php)
   --------------------------------------------------------------------------
   Texte à gauche (≈ 55 %), image à droite (≈ 45 %) dès 1025 px ; une colonne
   en dessous. Puis la navigation interne (pastilles), défilable si besoin.
   Fond : même système que la page Revendeur — base #06070B, halo bleu à
   gauche, halo magenta à droite, mêmes teintes et intensités, séparés sur
   ::before / ::after pour « respirer » très lentement ; lumière douce
   derrière l'image.
   Animations (toutes en CSS, coupées par prefers-reduced-motion) :
   - halos : dérive de quelques pour cent, 16 s et 19 s, alternate ;
   - apparition au chargement : texte, image, puis navigation ;
   - pulses brefs et décalés : lueur de l'image (10 s), icônes des repères
     (une à la fois, 9 s), pastille active (11 s).
   ========================================================================== */

/* Pleine largeur : la section sort de son conteneur Elementor. 100vw inclut
   la barre de défilement verticale : le surplus est coupé au niveau de la
   page (clip ne crée pas de conteneur de défilement).
   Règle limitée à cette page : la feuille n'est chargée que sur cette page. */
body.qhd-theme {
  overflow-x: clip;
}

.qhd-dmca-hero {
  --qhd-dmca-pink: #f24a67;
  --qhd-dmca-pulse-rest: 0 0 5px rgb(242 74 103 / 14%);
  --qhd-dmca-pulse-peak: 0 0 12px rgb(242 74 103 / 42%);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  inline-size: 100vw;
  max-inline-size: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-block-start: clamp(2.5rem, 1.25rem + 3.5vw, 5.5rem); /* 40 → 88 px */
  background-color: #06070b;
}

/* Halos : mêmes teintes et intensités que la page Revendeur. Débordent de
   6 % pour que la dérive ne découvre jamais un bord ; fondu en bas vers la
   navigation. */
.qhd-dmca-hero::before,
.qhd-dmca-hero::after,
.qhd-dmca-policy::before,
.qhd-dmca-policy::after,
.qhd-dmca-review::before,
.qhd-dmca-counter::before,
.qhd-dmca-send::before,
.qhd-dmca-review::after,
.qhd-dmca-counter::after,
.qhd-dmca-send::after {
  content: "";
  position: absolute;
  inset: -6%;
  z-index: -1;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 78%, transparent 94%);
  mask-image: linear-gradient(180deg, #000 0, #000 78%, transparent 94%);
  will-change: transform, opacity;
}

.qhd-dmca-hero::before,
.qhd-dmca-policy::before,
.qhd-dmca-review::before,
.qhd-dmca-counter::before,
.qhd-dmca-send::before {
  background-image:
    radial-gradient(30% 60% at 3% 38%, rgb(37 99 235 / 40%), rgb(37 99 235 / 9%) 45%, transparent 75%),
    radial-gradient(22% 34% at 2% 92%, rgb(37 99 235 / 22%), transparent 72%);
  animation: qhd-dmca-halo-blue 16s ease-in-out infinite alternate;
}

.qhd-dmca-hero::after,
.qhd-dmca-policy::after,
.qhd-dmca-review::after,
.qhd-dmca-counter::after,
.qhd-dmca-send::after {
  background-image:
    radial-gradient(30% 55% at 97% 22%, rgb(214 36 120 / 38%), rgb(214 36 120 / 9%) 45%, transparent 75%);
  animation: qhd-dmca-halo-pink 19s ease-in-out infinite alternate;
}

@keyframes qhd-dmca-halo-blue {
  0% { transform: translate(0, 0) scale(1); opacity: 0.85; }
  100% { transform: translate(2.5%, -3%) scale(1.05); opacity: 1; }
}

@keyframes qhd-dmca-halo-pink {
  0% { transform: translate(0, 0) scale(1.04); opacity: 1; }
  100% { transform: translate(-2.5%, 3%) scale(1); opacity: 0.82; }
}

/* Une colonne : texte, image (ordre du HTML). */
.qhd-dmca-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 40px;
  width: min(100% - (var(--qhd-gutter) * 2), 1240px);
  padding-block-end: clamp(2.5rem, 1.75rem + 2vw, 4.25rem); /* 40 → 68 px */
}

.qhd-dmca-hero__content {
  min-inline-size: 0;
  animation: qhd-dmca-rise 0.7s ease-out both;
}

/* --- Fil d'Ariane ---------------------------------------------------------- */

.qhd-dmca-hero__breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.9375rem;
  line-height: 1.4;
}

.qhd-dmca-hero__breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #dde2ea;
}

/* Séparateur « › » dessiné, non lu par les lecteurs d'écran. */
.qhd-dmca-hero__breadcrumb li + li::before {
  content: "›";
  color: #6f7c96;
  font-size: 1.1em;
}

.qhd-dmca-hero .qhd-dmca-hero__breadcrumb a {
  color: #c7ced8;
  text-decoration: none;
}

.qhd-dmca-hero .qhd-dmca-hero__breadcrumb a:hover {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

/* --- Label, titre, texte --------------------------------------------------- */

.qhd-dmca-hero__eyebrow {
  margin: 22px 0 0;
  font-size: 0.875rem; /* 14 px */
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-hero__title {
  margin: 16px 0 0;
  font-family: var(--qhd-font-title);
  font-size: clamp(2.375rem, 1.6rem + 2.8vw, 3.75rem); /* 38 → 60 px */
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.035em;
  color: #f7f7f8;
  text-wrap: balance;
}

.qhd-dmca-hero__accent {
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-hero__description {
  max-inline-size: 670px;
  margin: 22px 0 0;
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem); /* 16 → 18 px */
  line-height: 1.65;
  color: #cbd1db;
}

/* --- Repères de confiance -------------------------------------------------- */

.qhd-dmca-hero__trust {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

.qhd-dmca-hero__trust-item {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 16px 18px;
  border: 1px solid rgb(25 115 210 / 50%);
  border-radius: 11px;
  background-color: rgb(5 18 31 / 75%);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
  color: #f4f6f9;
  transition: transform 0.25s ease, border-color 0.25s ease;
}

.qhd-dmca-hero__trust-icon {
  flex: 0 0 auto;
  inline-size: 26px;
  block-size: 26px;
  color: var(--qhd-dmca-pink);
  filter: drop-shadow(var(--qhd-dmca-pulse-rest));
  animation: qhd-dmca-soft-blink 9s ease-in-out 1s infinite;
}

.qhd-dmca-hero__trust-item:nth-child(2) .qhd-dmca-hero__trust-icon {
  animation-delay: 4s;
}

.qhd-dmca-hero__trust-item:nth-child(3) .qhd-dmca-hero__trust-icon {
  animation-delay: 7s;
}

@media (hover: hover) {
  .qhd-dmca-hero__trust-item:hover {
    transform: translateY(-2px);
    border-color: rgb(60 150 240 / 80%);
  }
}

/* --- Image ----------------------------------------------------------------- */

.qhd-dmca-hero__media {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: 18px;
  min-inline-size: 0;
  animation: qhd-dmca-slide 0.75s ease-out 0.1s both;
}

/* Lumière bleue et rose derrière l'illustration, avec un pulse occasionnel. */
.qhd-dmca-hero__media::before {
  content: "";
  position: absolute;
  inset: 8% 6%;
  z-index: -1;
  pointer-events: none;
  background-image:
    radial-gradient(50% 50% at 40% 50%, rgb(37 99 235 / 22%), transparent 70%),
    radial-gradient(40% 40% at 70% 60%, rgb(214 36 120 / 14%), transparent 70%);
  opacity: 0.8;
  animation: qhd-dmca-glow 10s ease-in-out 2s infinite;
}

@keyframes qhd-dmca-glow {
  0%, 76%, 100% { opacity: 0.8; }
  79% { opacity: 1; }
  82% { opacity: 0.85; }
}

.qhd-dmca-hero__image {
  display: block;
  inline-size: 100%;
  max-inline-size: 560px;
  block-size: auto;
  object-fit: contain;
  /* Bords de l'illustration fondus dans le fond (pas de rectangle visible). */
  -webkit-mask-image: radial-gradient(closest-side, #000 72%, transparent 100%);
  mask-image: radial-gradient(closest-side, #000 72%, transparent 100%);
  filter:
    drop-shadow(0 18px 45px rgb(0 90 255 / 13%))
    drop-shadow(0 0 32px rgb(242 74 103 / 10%));
}

/* « Respect / Protection / Confiance » : en ligne sous l'image (mobile),
   en colonne à droite de l'image dès 1025 px ; filet rose dessous. */
.qhd-dmca-hero__side-copy {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 18px;
  margin: 0;
  font-size: 0.8125rem; /* 13 px */
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #aeb8ca;
}

.qhd-dmca-hero__side-copy::after {
  content: "";
  flex: 0 0 100%;
  max-inline-size: 36px;
  block-size: 2px;
  margin-block-start: 6px;
  border-radius: 2px;
  background-color: var(--qhd-dmca-pink);
}

/* --- Navigation interne ---------------------------------------------------- */

/* Bande pleine largeur ; la liste défile horizontalement si elle ne tient
   pas (centrée sinon), sans jamais élargir la page. */
.qhd-dmca-nav {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  scrollbar-color: rgb(30 125 225 / 50%) transparent;
  padding-block: 14px;
  border-block-start: 1px solid rgb(30 115 210 / 25%);
  border-block-end: 1px solid rgb(30 115 210 / 18%);
  background-color: rgb(4 14 25 / 85%);
  animation: qhd-dmca-fade 0.6s ease-out 0.35s both;
}

.qhd-dmca-nav__list {
  display: flex;
  gap: 12px;
  inline-size: max-content;
  margin: 0 auto;
  /* 8 px : le contour de focus (3 px + 3 px de décalage) n'est pas rogné
     par la zone défilante. */
  padding: 8px var(--qhd-gutter);
  list-style: none;
}

.qhd-dmca-nav__item {
  flex: 0 0 auto;
  margin: 0;
  scroll-margin-inline: var(--qhd-gutter);
}

.qhd-dmca-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-block-size: 50px;
  padding: 0 26px;
  border: 1px solid rgb(30 125 225 / 75%);
  border-radius: 999px;
  background-color: rgb(6 20 36 / 60%);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  transition: background-color 0.25s ease, border-color 0.25s ease;
}

/* Le thème parent souligne et colore les liens du contenu. */
.qhd-dmca-nav a.qhd-dmca-nav__link {
  color: #ffffff;
  text-decoration: none;
}

.qhd-dmca-nav__icon {
  flex: 0 0 auto;
  inline-size: 20px;
  block-size: 20px;
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-nav a.qhd-dmca-nav__link:hover {
  border-color: var(--qhd-dmca-pink);
  background-color: rgb(20 40 66 / 75%);
}

.qhd-dmca-nav__link--active {
  border-color: var(--qhd-dmca-pink);
  background-image: linear-gradient(90deg, rgb(242 74 103 / 26%), rgb(110 20 80 / 18%));
  box-shadow: 0 0 20px rgb(242 74 103 / 12%);
  animation: qhd-dmca-pill-pulse 11s ease-in-out 5s infinite;
}

.qhd-dmca-nav .qhd-dmca-nav__link:focus-visible,
.qhd-dmca-hero .qhd-dmca-hero__breadcrumb a:focus-visible {
  outline: 3px solid var(--qhd-cyan);
  outline-offset: 3px;
  box-shadow: none;
}

/* --- Animations ------------------------------------------------------------ */

@keyframes qhd-dmca-rise {
  from { opacity: 0; translate: 0 14px; }
  to { opacity: 1; translate: 0 0; }
}

@keyframes qhd-dmca-slide {
  from { opacity: 0; translate: 18px 0; }
  to { opacity: 1; translate: 0 0; }
}

@keyframes qhd-dmca-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Pulse occasionnel : repos, puis un éclat doux (≈ 300 ms). */
@keyframes qhd-dmca-soft-blink {
  0%, 74%, 100% {
    opacity: 0.85;
    filter: drop-shadow(var(--qhd-dmca-pulse-rest));
  }
  77.5% {
    opacity: 1;
    filter: drop-shadow(var(--qhd-dmca-pulse-peak));
  }
  81% {
    opacity: 0.85;
    filter: drop-shadow(var(--qhd-dmca-pulse-rest));
  }
}

@keyframes qhd-dmca-pill-pulse {
  0%, 78%, 100% { box-shadow: 0 0 20px rgb(242 74 103 / 12%); }
  81% { box-shadow: 0 0 26px rgb(242 74 103 / 32%); }
  84% { box-shadow: 0 0 20px rgb(242 74 103 / 12%); }
}

/* --- 600 px : repères sur une ligne ---------------------------------------- */

@media (min-width: 600px) {
  .qhd-dmca-hero__trust {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .qhd-dmca-hero__trust-item {
    padding: 16px;
  }
}

/* --- 1025 px : deux colonnes ≈ 55 / 45 ------------------------------------- */

@media (min-width: 1025px) {
  .qhd-dmca-hero__inner {
    grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
    align-items: center;
    gap: clamp(2.75rem, 1rem + 3vw, 4rem); /* 44 → 64 px */
  }

  .qhd-dmca-hero__media {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 14px;
  }

  .qhd-dmca-hero__side-copy {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    padding-block-end: 12%;
  }

  .qhd-dmca-hero__side-copy::after {
    flex: 0 0 auto;
    inline-size: 36px;
  }
}

/* --- Mobile : pulses plus discrets ----------------------------------------- */

@media (max-width: 767px) {
  .qhd-dmca-hero {
    --qhd-dmca-pulse-rest: 0 0 4px rgb(242 74 103 / 10%);
    --qhd-dmca-pulse-peak: 0 0 8px rgb(242 74 103 / 28%);
  }

  .qhd-dmca-hero::before,
  .qhd-dmca-hero::after,
  .qhd-dmca-policy::before,
  .qhd-dmca-policy::after,
  .qhd-dmca-review::before,
  .qhd-dmca-counter::before,
  .qhd-dmca-send::before,
  .qhd-dmca-review::after,
  .qhd-dmca-counter::after,
  .qhd-dmca-send::after {
    animation-name: qhd-dmca-halo-fade;
  }

  .qhd-dmca-hero::before,
  .qhd-dmca-policy::before,
  .qhd-dmca-review::before,
  .qhd-dmca-counter::before,
  .qhd-dmca-send::before {
    background-image:
      radial-gradient(60% 28% at 0% 22%, rgb(37 99 235 / 32%), rgb(37 99 235 / 7%) 45%, transparent 75%),
      radial-gradient(50% 18% at 0% 90%, rgb(37 99 235 / 18%), transparent 72%);
  }

  .qhd-dmca-hero::after,
  .qhd-dmca-policy::after,
  .qhd-dmca-review::after,
  .qhd-dmca-counter::after,
  .qhd-dmca-send::after {
    background-image:
      radial-gradient(60% 24% at 100% 8%, rgb(214 36 120 / 30%), rgb(214 36 120 / 7%) 45%, transparent 75%);
  }

  .qhd-dmca-nav {
    padding-block: 10px;
  }

  .qhd-dmca-nav__link {
    min-block-size: 48px;
    padding: 0 22px;
  }
}

@keyframes qhd-dmca-halo-fade {
  from { opacity: 0.8; }
  to { opacity: 1; }
}

/* Mouvement réduit : design statique, contenu entièrement visible. */
@media (prefers-reduced-motion: reduce) {
  .qhd-dmca-hero::before,
  .qhd-dmca-hero::after,
  .qhd-dmca-policy::before,
  .qhd-dmca-policy::after,
  .qhd-dmca-review::before,
  .qhd-dmca-counter::before,
  .qhd-dmca-send::before,
  .qhd-dmca-review::after,
  .qhd-dmca-counter::after,
  .qhd-dmca-send::after,
  .qhd-dmca-hero__content,
  .qhd-dmca-hero__media,
  .qhd-dmca-hero__media::before,
  .qhd-dmca-hero__trust-icon,
  .qhd-dmca-nav,
  .qhd-dmca-nav__link--active {
    animation: none;
  }

  .qhd-dmca-hero__trust-item,
  .qhd-dmca-nav__link {
    transition: none;
  }

  .qhd-dmca-hero__trust-item:hover {
    transform: none;
  }
}

/* ==========================================================================
   Section 02 « politique » (sections/dmca-politique.php)
   --------------------------------------------------------------------------
   Fond pleine largeur portant deux sections (ancres de la navigation du
   hero) : #politique-dmca — texte ≈ 60 % + carte « Canada + DMCA » ≈ 40 %
   dès 1025 px ; #deposer-avis-dmca — six éléments (1 / 2 / 3 colonnes) et un
   bandeau d'information.
   Fond : règles partagées avec le hero (.qhd-dmca-hero::before / ::after,
   plus haut) — mêmes halos, même respiration ; fondu en haut et en bas.
   Animations (coupées par prefers-reduced-motion) :
   - icônes des éléments : qhd-dmca-soft-blink (hero), une à la fois ;
   - apparition à l'entrée dans l'écran (CSS, sans script) : carte
     « Canada + DMCA » depuis la droite, éléments décalés de bas en haut.
   ========================================================================== */

.qhd-dmca-policy {
  --qhd-dmca-pink: #f24a67;
  --qhd-dmca-blue: #2294ff;
  --qhd-dmca-pulse-rest: 0 0 6px rgb(242 74 103 / 16%);
  --qhd-dmca-pulse-peak: 0 0 13px rgb(242 74 103 / 42%);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  inline-size: 100vw;
  max-inline-size: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-block: clamp(3.5rem, 2rem + 3.5vw, 5.75rem); /* 56 → 92 px */
  background-color: #06070b;
}

/* Halos du hero, fondus en haut (raccord sous la navigation) et en bas. */
.qhd-dmca-policy::before,
.qhd-dmca-policy::after,
.qhd-dmca-review::before,
.qhd-dmca-counter::before,
.qhd-dmca-send::before,
.qhd-dmca-review::after,
.qhd-dmca-counter::after,
.qhd-dmca-send::after {
  -webkit-mask-image: linear-gradient(180deg, transparent 0, transparent 6%, #000 20%, #000 82%, transparent 95%);
  mask-image: linear-gradient(180deg, transparent 0, transparent 6%, #000 20%, #000 82%, transparent 95%);
}

.qhd-dmca-policy__inner {
  width: min(100% - (var(--qhd-gutter) * 2), 1240px);
}

.qhd-dmca-policy__accent {
  color: var(--qhd-dmca-pink);
}

/* --- Politique + carte « Canada + DMCA » ----------------------------------- */

.qhd-dmca-policy__overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 28px;
}

.qhd-dmca-policy__title,
.qhd-dmca-notice__title {
  margin: 0;
  font-family: var(--qhd-font-title);
  font-size: clamp(1.875rem, 1.4rem + 1.8vw, 2.75rem); /* 30 → 44 px */
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: #f7f7f8;
  text-wrap: balance;
}

.qhd-dmca-policy__description {
  max-inline-size: 720px;
  margin: 14px 0 0;
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem); /* 16 → 18 px */
  line-height: 1.65;
  color: #c8cfd9;
}

.qhd-dmca-jurisdiction {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px;
  border: 1px solid rgb(35 125 220 / 42%);
  border-radius: 16px;
  background-color: rgb(5 20 35 / 86%);
}

.qhd-dmca-jurisdiction__icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  inline-size: 84px;
  block-size: 84px;
  border-radius: 50%;
  background-color: rgb(10 35 66 / 85%);
  color: var(--qhd-dmca-blue);
}

.qhd-dmca-jurisdiction__icon svg {
  inline-size: 42px;
  block-size: 42px;
  filter: drop-shadow(0 0 8px rgb(34 148 255 / 25%));
}

.qhd-dmca-jurisdiction__content {
  min-inline-size: 0;
}

.qhd-dmca-jurisdiction__title {
  margin: 0;
  font-family: var(--qhd-font-title);
  font-size: 1.25rem; /* 20 px */
  font-weight: 700;
  line-height: 1.3;
  color: #ffffff;
}

.qhd-dmca-jurisdiction__text {
  margin: 8px 0 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: #c5ccd7;
}

/* --- Comment déposer un avis ----------------------------------------------- */

.qhd-dmca-notice {
  margin-block-start: clamp(1.875rem, 1.5rem + 1vw, 2.625rem); /* 30 → 42 px */
  padding-block-start: clamp(1.875rem, 1.5rem + 1vw, 2.625rem);
  border-block-start: 1px solid rgb(40 100 170 / 22%);
}

.qhd-dmca-notice__intro {
  margin: 10px 0 0;
  font-size: clamp(1rem, 0.97rem + 0.1vw, 1.0625rem); /* 16 → 17 px */
  line-height: 1.6;
  color: #c8cfd9;
}

.qhd-dmca-notice__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

/* Icône à gauche ; numéro, titre et texte à droite. */
.qhd-dmca-requirement {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto 1fr;
  column-gap: 18px;
  margin: 0;
  padding: 22px 20px;
  border: 1px solid rgb(30 120 210 / 40%);
  border-radius: 14px;
  background-color: rgb(5 20 34 / 88%);
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.qhd-dmca-requirement__icon {
  display: grid;
  grid-row: 1 / -1;
  place-items: center;
  inline-size: 64px;
  block-size: 64px;
  border: 2px solid var(--qhd-dmca-pink);
  border-radius: 50%;
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-requirement__icon svg {
  inline-size: 30px;
  block-size: 30px;
  filter: drop-shadow(var(--qhd-dmca-pulse-rest));
  animation: qhd-dmca-soft-blink 10s ease-in-out infinite;
}

/* Une icône à la fois : décalage de 1,65 s sur un cycle de 10 s. */
.qhd-dmca-requirement:nth-child(2) .qhd-dmca-requirement__icon svg { animation-delay: 1.65s; }
.qhd-dmca-requirement:nth-child(3) .qhd-dmca-requirement__icon svg { animation-delay: 3.3s; }
.qhd-dmca-requirement:nth-child(4) .qhd-dmca-requirement__icon svg { animation-delay: 4.95s; }
.qhd-dmca-requirement:nth-child(5) .qhd-dmca-requirement__icon svg { animation-delay: 6.6s; }
.qhd-dmca-requirement:nth-child(6) .qhd-dmca-requirement__icon svg { animation-delay: 8.25s; }

.qhd-dmca-requirement__number {
  font-family: var(--qhd-font-title);
  font-size: 1.25rem; /* 20 px */
  font-weight: 800;
  line-height: 1.2;
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-requirement__title {
  margin: 4px 0 8px;
  font-family: var(--qhd-font-title);
  font-size: clamp(1.125rem, 1.08rem + 0.2vw, 1.25rem); /* 18 → 20 px */
  font-weight: 700;
  line-height: 1.3;
  color: #ffffff;
}

.qhd-dmca-requirement__text {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: #c2c9d4;
}

@media (hover: hover) and (min-width: 1025px) {
  .qhd-dmca-requirement:hover {
    transform: translateY(-3px);
    border-color: rgb(242 74 103 / 40%);
    box-shadow: 0 10px 30px rgb(0 90 200 / 6%);
  }
}

/* --- Bandeau d'information ------------------------------------------------- */

.qhd-dmca-policy__info {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 18px 0 0;
  padding: 15px 18px;
  border: 1px solid rgb(25 125 220 / 45%);
  border-radius: 11px;
  background-color: rgb(6 27 48 / 85%);
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #bec7d3;
}

.qhd-dmca-policy__info svg {
  flex: 0 0 auto;
  color: var(--qhd-dmca-blue);
}

/* --- 768 px : deux éléments par ligne -------------------------------------- */

@media (min-width: 768px) {
  .qhd-dmca-notice__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* --- 1025 px : politique 60 / 40, éléments sur trois colonnes -------------- */

@media (min-width: 1025px) {
  .qhd-dmca-policy__overview {
    grid-template-columns: minmax(0, 60fr) minmax(0, 40fr);
    align-items: center;
    gap: clamp(2.75rem, 1rem + 2.5vw, 3.75rem); /* 44 → 60 px */
  }

  .qhd-dmca-jurisdiction {
    padding: 26px 28px;
  }

  .qhd-dmca-notice__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .qhd-dmca-requirement {
    min-block-size: 180px;
    padding: 24px 22px;
  }

  .qhd-dmca-requirement__icon {
    inline-size: 76px;
    block-size: 76px;
  }

  .qhd-dmca-requirement__icon svg {
    inline-size: 36px;
    block-size: 36px;
  }
}

/* --- Apparition à l'entrée dans l'écran ------------------------------------ */

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .qhd-dmca-jurisdiction {
      animation: qhd-dmca-from-right linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 55%;
    }

    .qhd-dmca-requirement {
      animation: qhd-dmca-rise linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 50%;
    }

    .qhd-dmca-requirement:nth-child(2) { animation-range: entry 4% entry 54%; }
    .qhd-dmca-requirement:nth-child(3) { animation-range: entry 8% entry 58%; }
    .qhd-dmca-requirement:nth-child(4) { animation-range: entry 12% entry 62%; }
    .qhd-dmca-requirement:nth-child(5) { animation-range: entry 16% entry 66%; }
    .qhd-dmca-requirement:nth-child(6) { animation-range: entry 20% entry 70%; }
  }
}

@keyframes qhd-dmca-from-right {
  from { opacity: 0; translate: 14px 0; }
  to { opacity: 1; translate: 0 0; }
}

/* --- Mobile : icônes plus petites, pulse plus discret ---------------------- */

@media (max-width: 767px) {
  .qhd-dmca-policy {
    --qhd-dmca-pulse-rest: 0 0 4px rgb(242 74 103 / 10%);
    --qhd-dmca-pulse-peak: 0 0 8px rgb(242 74 103 / 28%);
  }

  .qhd-dmca-jurisdiction {
    align-items: flex-start;
    gap: 16px;
    padding: 20px 18px;
  }

  .qhd-dmca-jurisdiction__icon {
    inline-size: 60px;
    block-size: 60px;
  }

  .qhd-dmca-jurisdiction__icon svg {
    inline-size: 32px;
    block-size: 32px;
  }

  .qhd-dmca-requirement {
    column-gap: 16px;
    padding: 20px 18px;
  }

  .qhd-dmca-requirement__icon {
    inline-size: 60px;
    block-size: 60px;
  }

  .qhd-dmca-requirement__icon svg {
    inline-size: 28px;
    block-size: 28px;
  }

  .qhd-dmca-policy__info {
    align-items: flex-start;
  }
}

/* Mouvement réduit : design statique, contenu entièrement visible. */
@media (prefers-reduced-motion: reduce) {
  .qhd-dmca-requirement__icon svg {
    animation: none;
  }

  .qhd-dmca-requirement {
    transition: none;
  }

  .qhd-dmca-requirement:hover {
    transform: none;
  }
}

/* ==========================================================================
   Section 03 « examen » (sections/dmca-examen.php)
   --------------------------------------------------------------------------
   H2, trois étapes (liste ordonnée) reliées par des flèches dès 1025 px —
   une colonne reliée par un trait vertical en dessous — puis l'avertissement
   « Signalements inexacts ou trompeurs ».
   Fond : règles partagées avec le hero et la section 02 (plus haut).
   Animations (coupées par prefers-reduced-motion) :
   - flèches : glissement de 5 px, 3 s ;
   - numéros : lueur brève, un à la fois (cycle de 12 s) ;
   - icône d'avertissement : qhd-dmca-soft-blink (hero), cycle de 11 s ;
   - étapes puis avertissement : apparition à l'entrée dans l'écran (CSS).
   ========================================================================== */

.qhd-dmca-review {
  --qhd-dmca-pink: #f24a67;
  --qhd-dmca-review-gap: 44px;
  --qhd-dmca-pulse-rest: 0 0 10px rgb(242 74 103 / 20%);
  --qhd-dmca-pulse-peak: 0 0 16px rgb(242 74 103 / 45%);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  inline-size: 100vw;
  max-inline-size: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-block: clamp(3.5rem, 2rem + 3.5vw, 5.75rem); /* 56 → 92 px */
  background-color: #06070b;
}

.qhd-dmca-review__inner {
  width: min(100% - (var(--qhd-gutter) * 2), 1240px);
}

.qhd-dmca-review__title {
  margin: 0;
  font-family: var(--qhd-font-title);
  font-size: clamp(1.875rem, 1.4rem + 1.8vw, 2.875rem); /* 30 → 46 px */
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: #f7f7f8;
  text-wrap: balance;
}

.qhd-dmca-review__accent {
  color: var(--qhd-dmca-pink);
}

/* --- Étapes ---------------------------------------------------------------- */

.qhd-dmca-review__steps {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--qhd-dmca-review-gap);
  margin: clamp(1.5rem, 1.2rem + 1vw, 2rem) 0 0;
  padding: 0;
  list-style: none;
}

/* Numéro à gauche, titre et texte à droite. */
.qhd-dmca-review-step {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  column-gap: 20px;
  margin: 0;
  padding: 24px 22px;
  border: 1px solid rgb(30 120 210 / 42%);
  border-radius: 15px;
  background-color: rgb(5 20 34 / 88%);
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.qhd-dmca-review-step__number {
  display: grid;
  grid-row: 1 / -1;
  place-items: center;
  inline-size: 54px;
  block-size: 54px;
  border: 2px solid var(--qhd-dmca-pink);
  border-radius: 50%;
  background-color: rgb(242 74 103 / 8%);
  box-shadow: 0 0 14px rgb(242 74 103 / 12%);
  font-family: var(--qhd-font-title);
  font-size: 1.375rem; /* 22 px */
  font-weight: 700;
  line-height: 1;
  color: #ffffff;
  animation: qhd-dmca-number-pulse 12s ease-in-out infinite;
}

/* Un numéro à la fois : décalage de 4 s sur un cycle de 12 s. */
.qhd-dmca-review-step:nth-child(2) .qhd-dmca-review-step__number { animation-delay: 4s; }
.qhd-dmca-review-step:nth-child(3) .qhd-dmca-review-step__number { animation-delay: 8s; }

@keyframes qhd-dmca-number-pulse {
  0%, 78%, 100% { box-shadow: 0 0 14px rgb(242 74 103 / 12%); }
  80.5% { box-shadow: 0 0 22px rgb(242 74 103 / 40%); }
  83% { box-shadow: 0 0 14px rgb(242 74 103 / 12%); }
}

.qhd-dmca-review-step__title {
  margin: 2px 0 10px;
  font-family: var(--qhd-font-title);
  font-size: clamp(1.25rem, 1.15rem + 0.35vw, 1.4375rem); /* 20 → 23 px */
  font-weight: 700;
  line-height: 1.25;
  color: #ffffff;
}

.qhd-dmca-review-step__text {
  margin: 0;
  font-size: clamp(0.9375rem, 0.9rem + 0.15vw, 1.0625rem); /* 15 → 17 px */
  line-height: 1.6;
  color: #c3cbd6;
}

/* Liaison en une colonne : trait vertical discret entre deux étapes. */
.qhd-dmca-review-step + .qhd-dmca-review-step::before {
  content: "";
  position: absolute;
  inset-block-end: calc(100% + 10px);
  inset-inline-start: calc(22px + 26px);
  inline-size: 2px;
  block-size: calc(var(--qhd-dmca-review-gap) - 20px);
  border-radius: 2px;
  background-color: rgb(242 74 103 / 55%);
}

.qhd-dmca-review-step__arrow {
  display: none;
}

@media (hover: hover) and (min-width: 1025px) {
  .qhd-dmca-review-step:hover {
    transform: translateY(-3px);
    border-color: rgb(242 74 103 / 38%);
    box-shadow: 0 10px 30px rgb(0 90 200 / 5%);
  }
}

@keyframes qhd-dmca-arrow-flow {
  0%, 100% { translate: 0 0; opacity: 0.65; }
  50% { translate: 5px 0; opacity: 1; }
}

/* --- Avertissement --------------------------------------------------------- */

/* Colonne sur mobile (icône, titre, texte) ; icône à gauche dès 768 px. */
.qhd-dmca-review__warning {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: start;
  margin-block-start: clamp(1.875rem, 1.6rem + 0.8vw, 2.375rem); /* 30 → 38 px */
  padding: 24px 20px;
  border: 1px solid rgb(242 74 103 / 70%);
  border-radius: 14px;
  background-image: linear-gradient(90deg, rgb(60 8 32 / 32%), rgb(35 8 28 / 22%));
  background-color: rgb(6 7 11 / 60%);
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.qhd-dmca-review__warning-icon {
  inline-size: 52px;
  block-size: 52px;
  margin-block-end: 14px;
  color: var(--qhd-dmca-pink);
  filter: drop-shadow(var(--qhd-dmca-pulse-rest));
  animation: qhd-dmca-soft-blink 11s ease-in-out 2s infinite;
}

.qhd-dmca-review__warning-title {
  margin: 0 0 8px;
  font-family: var(--qhd-font-title);
  font-size: clamp(1.25rem, 1.18rem + 0.25vw, 1.4375rem); /* 20 → 23 px */
  font-weight: 700;
  line-height: 1.3;
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-review__warning-text {
  margin: 0;
  font-size: clamp(0.9375rem, 0.92rem + 0.1vw, 1rem); /* 15 → 16 px */
  line-height: 1.6;
  color: #d2d5dc;
}

@media (hover: hover) {
  .qhd-dmca-review__warning:hover {
    border-color: rgb(242 74 103 / 90%);
    box-shadow: 0 0 24px rgb(242 74 103 / 6%);
  }
}

/* --- 768 px : avertissement en ligne --------------------------------------- */

@media (min-width: 768px) {
  .qhd-dmca-review__warning {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    column-gap: 26px;
    padding: 26px 30px;
  }

  .qhd-dmca-review__warning-icon {
    grid-row: 1 / -1;
    align-self: center;
    inline-size: 62px;
    block-size: 62px;
    margin: 0;
  }
}

/* --- 1025 px : trois étapes sur une ligne, reliées par des flèches --------- */

@media (min-width: 1025px) {
  .qhd-dmca-review {
    --qhd-dmca-review-gap: 54px;
  }

  .qhd-dmca-review__steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .qhd-dmca-review-step {
    column-gap: 18px;
    min-block-size: 170px;
    padding: 28px 22px;
  }

  .qhd-dmca-review-step + .qhd-dmca-review-step::before {
    content: none;
  }

  .qhd-dmca-review-step__number {
    inline-size: 62px;
    block-size: 62px;
  }

  /* Centrée verticalement, dans l'espace qui sépare deux étapes. */
  .qhd-dmca-review-step__arrow {
    display: block;
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: calc(100% + (var(--qhd-dmca-review-gap) - 30px) / 2);
    inline-size: 30px;
    block-size: 30px;
    margin-block-start: -15px;
    color: var(--qhd-dmca-pink);
    filter: drop-shadow(0 0 6px rgb(242 74 103 / 30%));
    animation: qhd-dmca-arrow-flow 3s ease-in-out infinite;
  }
}

/* --- Apparition à l'entrée dans l'écran ------------------------------------ */

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .qhd-dmca-review-step {
      animation: qhd-dmca-rise linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 50%;
    }

    .qhd-dmca-review-step:nth-child(2) { animation-range: entry 6% entry 56%; }
    .qhd-dmca-review-step:nth-child(3) { animation-range: entry 12% entry 62%; }

    .qhd-dmca-review__warning {
      animation: qhd-dmca-rise linear both;
      animation-timeline: view();
      animation-range: entry 15% entry 60%;
    }
  }
}

/* --- Mobile : numéros plus petits, pulse plus discret ---------------------- */

@media (max-width: 767px) {
  .qhd-dmca-review {
    --qhd-dmca-review-gap: 36px;
    --qhd-dmca-pulse-rest: 0 0 6px rgb(242 74 103 / 14%);
    --qhd-dmca-pulse-peak: 0 0 10px rgb(242 74 103 / 30%);
  }

  .qhd-dmca-review-step {
    column-gap: 16px;
    padding: 20px 18px;
  }

  .qhd-dmca-review-step__number {
    inline-size: 52px;
    block-size: 52px;
    font-size: 1.25rem;
  }

  .qhd-dmca-review-step + .qhd-dmca-review-step::before {
    inset-inline-start: calc(18px + 25px);
  }
}

/* Mouvement réduit : design statique, contenu entièrement visible. */
@media (prefers-reduced-motion: reduce) {
  .qhd-dmca-review-step__number,
  .qhd-dmca-review-step__arrow,
  .qhd-dmca-review__warning-icon {
    animation: none;
  }

  .qhd-dmca-review-step,
  .qhd-dmca-review__warning {
    transition: none;
  }

  .qhd-dmca-review-step:hover {
    transform: none;
  }
}

/* ==========================================================================
   Section 04 « contre-notification » (sections/dmca-contre-notification.php)
   --------------------------------------------------------------------------
   H2, introduction, quatre éléments (1 colonne, 2 dès 768 px, 4 dès
   1025 px, même hauteur), puis une note d'information (même bandeau que la
   section 02).
   Fond : règles partagées avec les sections 01 à 03 (plus haut).
   Animations (coupées par prefers-reduced-motion) :
   - icônes : qhd-dmca-soft-blink (hero), une à la fois, cycle de 10 s ;
   - éléments : apparition décalée à l'entrée dans l'écran (CSS).
   ========================================================================== */

.qhd-dmca-counter {
  --qhd-dmca-pink: #f24a67;
  --qhd-dmca-blue: #2294ff;
  --qhd-dmca-pulse-rest: 0 0 8px rgb(242 74 103 / 18%);
  --qhd-dmca-pulse-peak: 0 0 14px rgb(242 74 103 / 44%);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  inline-size: 100vw;
  max-inline-size: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-block: clamp(3.5rem, 2rem + 3.5vw, 5.75rem); /* 56 → 92 px */
  background-color: #06070b;
}

.qhd-dmca-counter__inner {
  width: min(100% - (var(--qhd-gutter) * 2), 1240px);
}

.qhd-dmca-counter__title {
  margin: 0;
  font-family: var(--qhd-font-title);
  font-size: clamp(1.875rem, 1.4rem + 1.8vw, 2.875rem); /* 30 → 46 px */
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: #f7f7f8;
}

.qhd-dmca-counter__accent {
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-counter__intro {
  max-inline-size: 900px;
  margin: 12px 0 0;
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem); /* 16 → 18 px */
  line-height: 1.65;
  color: #c8cfd9;
}

/* --- Éléments -------------------------------------------------------------- */

.qhd-dmca-counter__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin: clamp(1.75rem, 1.5rem + 0.8vw, 2.25rem) 0 0; /* 28 → 36 px */
  padding: 0;
  list-style: none;
}

.qhd-dmca-counter-item {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0;
  padding: 22px 20px;
  border: 1px solid rgb(30 120 210 / 42%);
  border-radius: 14px;
  background-color: rgb(5 20 34 / 88%);
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.qhd-dmca-counter-item__icon {
  flex: 0 0 auto;
  inline-size: 46px;
  block-size: 46px;
  color: var(--qhd-dmca-pink);
  filter: drop-shadow(var(--qhd-dmca-pulse-rest));
  animation: qhd-dmca-soft-blink 10s ease-in-out 1s infinite;
}

/* Une icône à la fois : décalage de 2,5 s sur un cycle de 10 s. */
.qhd-dmca-counter-item:nth-child(2) .qhd-dmca-counter-item__icon { animation-delay: 3.5s; }
.qhd-dmca-counter-item:nth-child(3) .qhd-dmca-counter-item__icon { animation-delay: 6s; }
.qhd-dmca-counter-item:nth-child(4) .qhd-dmca-counter-item__icon { animation-delay: 8.5s; }

.qhd-dmca-counter-item__text {
  min-inline-size: 0;
  font-size: clamp(1rem, 0.97rem + 0.12vw, 1.0625rem); /* 16 → 17 px */
  font-weight: 500;
  line-height: 1.5;
  color: #e5e8ed;
}

@media (hover: hover) and (min-width: 1025px) {
  .qhd-dmca-counter-item:hover {
    transform: translateY(-3px);
    border-color: rgb(242 74 103 / 38%);
    box-shadow: 0 10px 30px rgb(0 90 200 / 5%);
  }
}

/* --- Note d'information (même bandeau que la section 02) ------------------- */

.qhd-dmca-counter__note {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 18px 0 0;
  padding: 15px 18px;
  border: 1px solid rgb(25 125 220 / 45%);
  border-radius: 11px;
  background-color: rgb(6 27 48 / 85%);
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #bdc6d3;
}

.qhd-dmca-counter__note-icon {
  flex: 0 0 auto;
  color: var(--qhd-dmca-blue);
}

/* --- 768 px : deux colonnes ; 1025 px : quatre ----------------------------- */

@media (min-width: 768px) {
  .qhd-dmca-counter__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
}

@media (min-width: 1025px) {
  .qhd-dmca-counter__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
  }

  .qhd-dmca-counter-item {
    min-block-size: 160px;
    padding: 24px 20px;
  }

  .qhd-dmca-counter-item__icon {
    inline-size: 52px;
    block-size: 52px;
  }
}

/* --- Apparition à l'entrée dans l'écran ------------------------------------ */

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .qhd-dmca-counter-item {
      animation: qhd-dmca-rise linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 50%;
    }

    .qhd-dmca-counter-item:nth-child(2) { animation-range: entry 5% entry 55%; }
    .qhd-dmca-counter-item:nth-child(3) { animation-range: entry 10% entry 60%; }
    .qhd-dmca-counter-item:nth-child(4) { animation-range: entry 15% entry 65%; }
  }
}

/* --- Mobile : icônes plus petites, pulse plus discret ---------------------- */

@media (max-width: 767px) {
  .qhd-dmca-counter {
    --qhd-dmca-pulse-rest: 0 0 5px rgb(242 74 103 / 12%);
    --qhd-dmca-pulse-peak: 0 0 9px rgb(242 74 103 / 28%);
  }

  .qhd-dmca-counter-item {
    padding: 20px 18px;
  }

  .qhd-dmca-counter-item__icon {
    inline-size: 44px;
    block-size: 44px;
  }

  .qhd-dmca-counter__note {
    align-items: flex-start;
  }
}

/* Mouvement réduit : design statique, contenu entièrement visible. */
@media (prefers-reduced-motion: reduce) {
  .qhd-dmca-counter-item__icon {
    animation: none;
  }

  .qhd-dmca-counter-item {
    transition: none;
  }

  .qhd-dmca-counter-item:hover {
    transform: none;
  }
}

/* ==========================================================================
   Section 05 « envoyer un avis » (sections/dmca-envoyer.php)
   --------------------------------------------------------------------------
   Label, H2, panneau (texte + boutons + adresse à gauche, image fournie à
   droite dès 1025 px, dessous avant), trois repères (1 / 3 colonnes), puis
   la ligne de mise à jour.
   Fond : règles partagées avec les sections 01 à 04 (plus haut).
   Animations (coupées par prefers-reduced-motion) :
   - icônes des repères : qhd-dmca-soft-blink (hero), une à la fois ;
   - bouton principal : lueur brève toutes les 10 s ;
   - panneau puis repères : apparition à l'entrée dans l'écran (CSS).
   ========================================================================== */

.qhd-dmca-send {
  --qhd-dmca-pink: #f24a67;
  --qhd-dmca-pulse-rest: 0 0 8px rgb(242 74 103 / 18%);
  --qhd-dmca-pulse-peak: 0 0 14px rgb(242 74 103 / 44%);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  inline-size: 100vw;
  max-inline-size: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-block: clamp(3.5rem, 2rem + 3.5vw, 5.75rem) clamp(2.5rem, 1.75rem + 2vw, 3.75rem); /* 56 → 92 / 40 → 60 px */
  background-color: #06070b;
}

.qhd-dmca-send__inner {
  width: min(100% - (var(--qhd-gutter) * 2), 1240px);
}

/* --- En-tête --------------------------------------------------------------- */

.qhd-dmca-send__eyebrow {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-send__eyebrow::before {
  content: "";
  flex: 0 0 auto;
  inline-size: 44px;
  block-size: 3px;
  border-radius: 3px;
  background-color: var(--qhd-dmca-pink);
}

.qhd-dmca-send__title {
  margin: 12px 0 0;
  font-family: var(--qhd-font-title);
  font-size: clamp(1.875rem, 1.4rem + 1.8vw, 2.875rem); /* 30 → 46 px */
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: #f7f7f8;
}

/* --- Panneau --------------------------------------------------------------- */

.qhd-dmca-send__panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 28px;
  margin-block-start: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  padding: 28px 20px;
  border: 1px solid rgb(35 125 220 / 55%);
  border-radius: 18px;
  background-color: rgb(5 16 29 / 88%);
  box-shadow: 0 16px 50px rgb(0 80 190 / 8%);
}

.qhd-dmca-send__content {
  min-inline-size: 0;
}

.qhd-dmca-send__panel-title {
  margin: 0;
  font-family: var(--qhd-font-title);
  font-size: clamp(1.5rem, 1.2rem + 1.1vw, 2.25rem); /* 24 → 36 px */
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #f7f7f8;
  text-wrap: balance;
}

.qhd-dmca-send__text {
  max-inline-size: 640px;
  margin: 12px 0 0;
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem); /* 16 → 18 px */
  line-height: 1.6;
  color: #cbd1db;
}

/* Boutons : empilés sur mobile, côte à côte dès 600 px. */
.qhd-dmca-send__actions {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-block-start: 26px;
}

.qhd-dmca-send__cta {
  gap: 12px;
  inline-size: 100%;
  max-inline-size: 380px;
  min-block-size: 56px;
  padding: 10px 30px;
  font-size: 1.1875rem; /* 19 px gras : texte « grand » au sens WCAG */
  font-weight: 700;
}

.qhd-dmca-send__cta-icon {
  flex: 0 0 auto;
}

/* Le thème parent souligne les liens du contenu (.page-content a, 0,1,1). */
.qhd-dmca-send a.qhd-dmca-send__cta {
  text-decoration: none;
}

.qhd-dmca-send a.qhd-dmca-send__cta--primary {
  background-color: var(--qhd-dmca-pink);
  color: #ffffff;
  box-shadow: 0 12px 30px rgb(242 74 103 / 26%);
  animation: qhd-dmca-cta-pulse 10s ease-in-out 3s infinite;
}

.qhd-dmca-send a.qhd-dmca-send__cta--primary:hover {
  background-color: #f45d77;
  color: #ffffff;
}

.qhd-dmca-send a.qhd-dmca-send__cta--secondary {
  border-color: rgb(80 160 255 / 75%);
  background-color: transparent;
  color: #f7f7f8;
}

.qhd-dmca-send a.qhd-dmca-send__cta--secondary:hover {
  border-color: rgb(80 160 255 / 100%);
  background-color: rgb(80 160 255 / 12%);
  color: #ffffff;
}

@keyframes qhd-dmca-cta-pulse {
  0%, 78%, 100% { box-shadow: 0 12px 30px rgb(242 74 103 / 26%); }
  81% { box-shadow: 0 12px 30px rgb(242 74 103 / 26%), 0 0 26px rgb(242 74 103 / 45%); }
  84% { box-shadow: 0 12px 30px rgb(242 74 103 / 26%); }
}

/* Adresse de réception des avis. */
.qhd-dmca-send__email {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin: 22px 0 0;
  padding: 13px 16px;
  border: 1px solid rgb(242 74 103 / 65%);
  border-radius: 11px;
  background-color: rgb(60 8 32 / 22%);
  font-size: 1rem;
  line-height: 1.4;
  color: #f4f6f9;
}

.qhd-dmca-send__email-icon {
  flex: 0 0 auto;
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-send__email-value {
  font-weight: 700;
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-send a.qhd-dmca-send__email-value {
  color: var(--qhd-dmca-pink);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.qhd-dmca-send__pending {
  margin: 10px 0 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #aeb8ca;
}

.qhd-dmca-send .qhd-dmca-send__cta:focus-visible,
.qhd-dmca-send .qhd-dmca-send__email-value:focus-visible {
  outline: 3px solid var(--qhd-cyan);
  outline-offset: 3px;
  box-shadow: none;
}

/* --- Image ----------------------------------------------------------------- */

.qhd-dmca-send__media {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: 16px;
  min-inline-size: 0;
}

/* Lumière bleue et rose derrière l'illustration. */
.qhd-dmca-send__media::before {
  content: "";
  position: absolute;
  inset: 10% 8%;
  z-index: -1;
  pointer-events: none;
  background-image:
    radial-gradient(50% 50% at 40% 50%, rgb(37 99 235 / 20%), transparent 70%),
    radial-gradient(40% 40% at 72% 58%, rgb(214 36 120 / 14%), transparent 70%);
}

.qhd-dmca-send__image {
  display: block;
  inline-size: 100%;
  max-inline-size: 560px;
  block-size: auto;
  object-fit: contain;
  object-position: center;
  /* Bords de l'illustration fondus dans le panneau (pas de rectangle visible). */
  -webkit-mask-image: radial-gradient(closest-side, #000 72%, transparent 100%);
  mask-image: radial-gradient(closest-side, #000 72%, transparent 100%);
  filter:
    drop-shadow(0 20px 45px rgb(0 90 255 / 12%))
    drop-shadow(0 0 28px rgb(242 74 103 / 10%));
}

/* « Un internet plus respectueux des créateurs » : en ligne sous l'image
   (mobile), en colonne à droite dès 1025 px ; filet rose dessous. */
.qhd-dmca-send__side-copy {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 10px;
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: center;
  color: #aeb8ca;
}

.qhd-dmca-send__side-copy::after {
  content: "";
  flex: 0 0 100%;
  max-inline-size: 36px;
  block-size: 2px;
  margin-block-start: 8px;
  border-radius: 2px;
  background-color: var(--qhd-dmca-pink);
}

/* --- Repères --------------------------------------------------------------- */

.qhd-dmca-send__points {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  margin: 30px 0 0;
  padding: 28px 0 0;
  border-block-start: 1px solid rgb(40 100 170 / 22%);
  list-style: none;
}

.qhd-dmca-send__point {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  column-gap: 18px;
  margin: 0;
}

.qhd-dmca-send__point-icon {
  grid-row: 1 / -1;
  inline-size: 46px;
  block-size: 46px;
  color: var(--qhd-dmca-pink);
  filter: drop-shadow(var(--qhd-dmca-pulse-rest));
  animation: qhd-dmca-soft-blink 10s ease-in-out 1.5s infinite;
}

.qhd-dmca-send__point:nth-child(2) .qhd-dmca-send__point-icon { animation-delay: 4.8s; }
.qhd-dmca-send__point:nth-child(3) .qhd-dmca-send__point-icon { animation-delay: 8.1s; }

.qhd-dmca-send__point-title {
  margin: 0;
  font-family: var(--qhd-font-title);
  font-size: clamp(1.125rem, 1.08rem + 0.2vw, 1.25rem); /* 18 → 20 px */
  font-weight: 700;
  line-height: 1.3;
  color: #ffffff;
}

.qhd-dmca-send__point-text {
  margin: 6px 0 0;
  font-size: 1rem;
  line-height: 1.55;
  color: #c4cbd6;
}

/* --- Mise à jour ----------------------------------------------------------- */

.qhd-dmca-send__updated {
  margin: 28px 0 0;
  padding-block-start: 20px;
  border-block-start: 1px solid rgb(40 100 170 / 22%);
  font-size: 0.875rem;
  line-height: 1.6;
  text-align: center;
  color: #9aa6b8;
}

/* --- 600 px : boutons côte à côte ------------------------------------------ */

@media (min-width: 600px) {
  .qhd-dmca-send__actions {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .qhd-dmca-send__cta {
    inline-size: auto;
  }
}

/* --- 768 px : repères sur trois colonnes, séparés -------------------------- */

@media (min-width: 768px) {
  .qhd-dmca-send__panel {
    padding: 34px 32px;
  }

  .qhd-dmca-send__points {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }

  .qhd-dmca-send__point {
    padding-inline: 22px;
  }

  .qhd-dmca-send__point:first-child {
    padding-inline-start: 0;
  }

  .qhd-dmca-send__point + .qhd-dmca-send__point {
    border-inline-start: 1px solid rgb(40 100 170 / 30%);
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .qhd-dmca-send__point {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
  }

  .qhd-dmca-send__point-icon {
    grid-row: auto;
    margin-block-end: 12px;
  }

  .qhd-dmca-send__image {
    max-inline-size: 480px;
  }
}

/* --- 1025 px : panneau en deux colonnes ≈ 55 / 45 ------------------------- */

@media (min-width: 1025px) {
  .qhd-dmca-send__panel {
    grid-template-columns: minmax(0, 52fr) minmax(0, 48fr);
    align-items: center;
    gap: 24px;
    padding: 38px 28px 38px 40px;
  }

  .qhd-dmca-send__media {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
  }

  .qhd-dmca-send__side-copy {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    text-align: start;
  }

  .qhd-dmca-send__side-copy::after {
    flex: 0 0 auto;
    inline-size: 36px;
  }

  .qhd-dmca-send__point-icon {
    inline-size: 52px;
    block-size: 52px;
  }

  .qhd-dmca-send__point {
    padding-inline: 32px;
  }
}

@media (hover: hover) {
  .qhd-dmca-send a.qhd-dmca-send__cta:hover {
    transform: translateY(-2px);
  }
}

/* --- Apparition à l'entrée dans l'écran ------------------------------------ */

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .qhd-dmca-send__panel {
      animation: qhd-dmca-rise linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 40%;
    }

    .qhd-dmca-send__point {
      animation: qhd-dmca-rise linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 60%;
    }

    .qhd-dmca-send__point:nth-child(2) { animation-range: entry 6% entry 66%; }
    .qhd-dmca-send__point:nth-child(3) { animation-range: entry 12% entry 72%; }
  }
}

/* --- Mobile : pulse plus discret ------------------------------------------- */

@media (max-width: 767px) {
  .qhd-dmca-send {
    --qhd-dmca-pulse-rest: 0 0 5px rgb(242 74 103 / 12%);
    --qhd-dmca-pulse-peak: 0 0 9px rgb(242 74 103 / 28%);
  }

  .qhd-dmca-send__email {
    font-size: 0.9375rem;
  }
}

/* Mouvement réduit : design statique, contenu entièrement visible. */
@media (prefers-reduced-motion: reduce) {
  .qhd-dmca-send a.qhd-dmca-send__cta--primary,
  .qhd-dmca-send__point-icon {
    animation: none;
  }

  .qhd-dmca-send a.qhd-dmca-send__cta:hover {
    transform: none;
  }
}

/* ==========================================================================
   Version simplifiée de la page (sections/dmca-document.php)
   --------------------------------------------------------------------------
   Un seul document : bandeau de titre (fil d'Ariane + H1), puis colonne de
   lecture (date, titres, paragraphes, listes numérotées, contact,
   avertissement). Fond uni sombre, aucune animation, aucun décor.
   Remplace les cinq sections précédentes de la page.
   ========================================================================== */

.qhd-dmca-doc {
  --qhd-dmca-pink: #f24a67;
  inline-size: 100vw;
  max-inline-size: 100vw;
  margin-inline: calc(50% - 50vw);
  /* Aucun espace au-dessus : le bandeau de titre suit directement l'en-tête
     (l'espacement par défaut de .qhd-section est annulé en haut seulement). */
  padding-block-start: 0;
  padding-block-end: clamp(3.5rem, 2rem + 3.5vw, 6rem);
  background-color: #06070b;
}

/* --- Bandeau de titre ------------------------------------------------------ */

.qhd-dmca-doc__banner {
  padding-block: clamp(2.5rem, 1.5rem + 3vw, 4.5rem);
  border-block-end: 1px solid rgb(30 120 210 / 25%);
  background-color: #0b0c12;
}

/* Même largeur que la colonne de lecture : bords gauches alignés. */
.qhd-dmca-doc__banner-inner {
  width: min(100% - (var(--qhd-gutter) * 2), 860px);
}

.qhd-dmca-doc__breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.9375rem;
  line-height: 1.4;
}

.qhd-dmca-doc__breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #dde2ea;
}

/* Séparateur « › » dessiné, non lu par les lecteurs d'écran. */
.qhd-dmca-doc__breadcrumb li + li::before {
  content: "›";
  color: #6f7c96;
}

.qhd-dmca-doc .qhd-dmca-doc__breadcrumb a {
  color: #c7ced8;
  text-decoration: none;
}

.qhd-dmca-doc .qhd-dmca-doc__breadcrumb a:hover {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.qhd-dmca-doc__title {
  margin: 16px 0 0;
  font-family: var(--qhd-font-title);
  font-size: clamp(2.125rem, 1.5rem + 2.6vw, 3.5rem); /* 34 → 56 px */
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: #f7f7f8;
}

/* --- Colonne de lecture ---------------------------------------------------- */

.qhd-dmca-doc__body {
  width: min(100% - (var(--qhd-gutter) * 2), 860px);
  padding-block-start: clamp(2rem, 1.5rem + 1.5vw, 3rem);
  font-size: clamp(1rem, 0.97rem + 0.12vw, 1.0625rem); /* 16 → 17 px */
  line-height: 1.8;
  color: #c8cfd9;
}

.qhd-dmca-doc__body p {
  margin: 0 0 1.1em;
}

.qhd-dmca-doc__updated {
  font-style: italic;
  font-weight: 600;
  color: #aeb8c9;
}

.qhd-dmca-doc__heading {
  margin: 2.2em 0 0.7em;
  font-family: var(--qhd-font-title);
  font-size: clamp(1.375rem, 1.2rem + 0.7vw, 1.75rem); /* 22 → 28 px */
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: #ffffff;
}

.qhd-dmca-doc__updated + .qhd-dmca-doc__heading {
  margin-block-start: 1.2em;
}

/* Listes numérotées : numéros roses, bien alignés. */
.qhd-dmca-doc__list {
  display: grid;
  gap: 0.55em;
  margin: 0 0 1.2em;
  padding: 0;
  list-style: none;
  counter-reset: qhd-dmca-doc;
}

.qhd-dmca-doc__list li {
  position: relative;
  margin: 0;
  padding-inline-start: 2em;
  counter-increment: qhd-dmca-doc;
}

.qhd-dmca-doc__list li::before {
  content: counter(qhd-dmca-doc) ".";
  position: absolute;
  inset-inline-start: 0;
  font-weight: 800;
  color: var(--qhd-dmca-pink);
}

.qhd-dmca-doc__contact {
  display: grid;
  gap: 0.4em;
  margin: 0 0 1.4em;
  padding: 0;
  list-style: none;
}

.qhd-dmca-doc__contact li {
  margin: 0;
}

.qhd-dmca-doc__contact strong {
  color: #ffffff;
}

.qhd-dmca-doc .qhd-dmca-doc__link {
  color: #4fb0ff;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  overflow-wrap: anywhere;
}

.qhd-dmca-doc .qhd-dmca-doc__link:hover {
  color: #ffffff;
}

.qhd-dmca-doc .qhd-dmca-doc__link:focus-visible,
.qhd-dmca-doc .qhd-dmca-doc__breadcrumb a:focus-visible {
  outline: 3px solid var(--qhd-cyan);
  outline-offset: 2px;
  box-shadow: none;
}

.qhd-dmca-doc__disclaimer {
  margin-block-start: 2em;
  padding-block-start: 1.2em;
  border-block-start: 1px solid rgb(30 120 210 / 22%);
  font-size: 0.9375rem;
  color: #aeb8c9;
}
