/* ============================================================
   legal.css — mise en page des pages légales (mentions légales,
   politique de confidentialité). S'ajoute à main.css, qui porte
   déjà les tokens, le reset et le pied de page partagé.
   ============================================================ */

*{margin:0;padding:0;box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  font-family:var(--font-sans);
  font-size:var(--text-body);
  line-height:var(--text-body-lh);
  font-weight:400;
  color:var(--color-ink);
  background:var(--color-white);
  -webkit-font-smoothing:antialiased;
}

a{color:inherit}

.container{
  width:100%;
  max-width:var(--container-max);
  margin:0 auto;
  padding-inline:var(--space-gutter);
}

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

.masthead{
  padding-block:var(--space-8);
  border-bottom:1px solid var(--color-border-soft);
}

.masthead__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-6);
}

.masthead__logo{
  display:inline-flex;
  align-items:center;
  gap:var(--space-2);
  text-decoration:none;
}

.masthead__picto{display:block;width:54px;height:54px}

/* Wordmark d'en-tête — repris à l'identique de /accueil (.site-header__name) */
.masthead__name{
  font-weight:800;
  font-size:28px;
  line-height:26px;
  letter-spacing:-0.56px;
  color:var(--color-ink);
}

.masthead__back{
  display:inline-flex;
  align-items:center;
  gap:var(--space-2);
  min-height:44px;
  font-size:var(--text-small);
  line-height:var(--text-small-lh);
  font-weight:var(--text-small-w);
  text-decoration:none;
  position:relative;
}

.masthead__back::after{
  content:"";
  position:absolute;
  left:0; bottom:10px;
  height:1px; width:0;
  background:currentColor;
  transition:width var(--motion-slow) var(--ease-signature);
}

.masthead__back:hover::after{width:100%}

.masthead__arrow{transition:transform var(--motion-quick) var(--ease-signature)}
.masthead__back:hover .masthead__arrow{transform:translateX(-3px)}

/* --- Ouverture ----------------------------------------------------- */

.opening{padding-block:var(--space-section) var(--space-12)}

.opening__title{
  margin-top:var(--space-6);
  max-width:20ch;
  font-size:var(--text-h1);
  line-height:var(--text-h1-lh);
  letter-spacing:var(--text-h1-ls);
  font-weight:var(--text-h1-w);
  color:var(--color-title);
}

.opening__accent{
  font-style:normal;
  background-image:var(--gradient-signature);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.opening__lead{
  margin-top:var(--space-6);
  max-width:62ch;
  font-size:var(--text-body-lg);
  line-height:var(--text-body-lg-lh);
  color:var(--color-ink-soft);
}

.opening__updated{
  margin-top:var(--space-8);
  font-size:var(--text-caption);
  line-height:var(--text-caption-lh);
  font-weight:var(--text-caption-w);
  color:var(--color-ink-soft);
}

/* --- Le registre --------------------------------------------------- */

.ledger{padding-block:0 var(--space-section)}

.ledger__block + .ledger__block{margin-top:var(--space-section)}

.ledger__heading{
  font-size:var(--text-h3);
  line-height:var(--text-h3-lh);
  letter-spacing:var(--text-h3-ls);
  font-weight:var(--text-h3-w);
  color:var(--color-title);
}

.ledger__rows{margin-top:var(--space-12);border-top:1px solid var(--color-border-soft)}

.ledger__row{
  display:grid;
  grid-template-columns:.32fr .68fr;
  gap:var(--space-6);
  padding-block:var(--space-6);
  border-bottom:1px solid var(--color-border-soft);
}

.ledger__label{
  font-size:var(--text-eyebrow);
  line-height:var(--text-eyebrow-lh);
  letter-spacing:var(--text-eyebrow-ls);
  font-weight:var(--text-eyebrow-w);
  text-transform:uppercase;
  color:var(--color-ink-soft);
}

.ledger__value{
  font-size:var(--text-body);
  line-height:var(--text-body-lh);
  color:var(--color-ink);
  max-width:60ch;
}

.ledger__strong{font-weight:600}

.ledger__link{
  text-decoration:none;
  position:relative;
  display:inline-block;
}

.ledger__link::after{
  content:"";
  position:absolute;
  left:0; bottom:-2px;
  height:1px; width:0;
  background:currentColor;
  transition:width var(--motion-slow) var(--ease-signature);
}

.ledger__link:hover::after{width:100%}

/* --- Blocs de prose ------------------------------------------------ */

.terms{
  background:var(--color-surface);
  padding-block:var(--space-section);
}

.terms__article + .terms__article{margin-top:var(--space-12)}

.terms__title{
  font-size:var(--text-h5);
  line-height:var(--text-h5-lh);
  letter-spacing:var(--text-h5-ls);
  font-weight:var(--text-h5-w);
  color:var(--color-title);
}

.terms__body{
  margin-top:var(--space-4);
  max-width:70ch;
  font-size:var(--text-body);
  line-height:var(--text-body-lh);
  color:var(--color-ink-soft);
}

.terms__para + .terms__para{margin-top:var(--space-4)}

.terms__link{
  text-decoration:none;
  position:relative;
  display:inline-block;
}

.terms__link::after{
  content:"";
  position:absolute;
  left:0; bottom:-2px;
  height:1px; width:0;
  background:currentColor;
  transition:width var(--motion-slow) var(--ease-signature);
}

.terms__link:hover::after{width:100%}

/* --- Accessibilité ------------------------------------------------- */

a:focus-visible{
  outline:2px solid var(--color-primary);
  outline-offset:3px;
  border-radius:var(--radius-sm);
}

.skip{position:absolute;left:-9999px}

.skip:focus{
  left:var(--space-6);
  top:var(--space-6);
  z-index:10;
  padding:var(--space-3) var(--space-4);
  background:var(--color-white);
  border:1px solid var(--color-border-strong);
  border-radius:var(--radius-md);
  font-size:var(--text-small);
  font-weight:var(--text-small-w);
}

/* --- Adaptatif ----------------------------------------------------- */

@media (max-width: 900px){
  .container{padding-inline:var(--space-12)}
  .opening{padding-block:var(--space-12) var(--space-8)}
  .opening__title{font-size:50px;line-height:62px;max-width:none}
  .ledger__heading{font-size:24px;line-height:32px}
  .ledger__block + .ledger__block{margin-top:var(--space-12)}
  .ledger__rows{margin-top:var(--space-8)}
  .terms{padding-block:var(--space-12)}
  .ledger{padding-block:0 var(--space-12)}
  .pagefoot{padding-top:var(--space-12)}
  .pagefoot__bottom{padding-top:40px}
  .pagefoot__star{transform:scale(0.7);transform-origin:bottom left}
}

@media (max-width: 560px){
  .container{padding-inline:var(--space-6)}
  .opening__title{font-size:32px;line-height:44px}
  .ledger__row{grid-template-columns:1fr;gap:var(--space-2)}
  .pagefoot__bottom{flex-direction:column;align-items:flex-start;gap:var(--space-6)}
  .pagefoot__nav{gap:var(--space-2) var(--space-6)}
  .pagefoot__wordmark{padding-bottom:24px}
  .pagefoot__star{display:none}
}

@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
/* ============================================================
   Registre des traitements — propre à la politique de confidentialité.
   Grille à trois colonnes séparées par des filets (jamais par du blanc),
   conformément à la composition de marque.
   ============================================================ */

.registre{padding-block:var(--space-section, 96px)}
.registre__head{max-width:640px;margin-bottom:var(--space-12, 48px)}
.registre__title{
  font-family:var(--font-sans);font-size:var(--text-h2, 54px);
  line-height:var(--text-h2--line-height, 56px);letter-spacing:-0.02em;
  font-weight:600;color:var(--color-title);margin:0 0 var(--space-6, 24px)
}
.registre__lead{
  font-size:var(--text-body-lg, 18px);line-height:28px;
  color:var(--color-ink-soft);margin:0
}

/* Deux colonnes : les traitements sont au nombre de 4, et une grille à trois
   laisserait une rangée orpheline dont le filet ne court pas jusqu'au bord. */
.registre__grid{
  display:grid;grid-template-columns:repeat(2, 1fr);
  border-top:1px solid var(--color-border)
}
.registre__cell{padding:var(--space-8, 32px) var(--space-6, 24px)}
/* Filets : verticaux dès la 2e colonne, horizontaux dès la 2e rangée. */
.registre__cell:not(:nth-child(2n+1)){border-left:1px solid var(--color-border)}
.registre__cell:nth-child(n+3){border-top:1px solid var(--color-border)}

.registre__name{
  font-size:var(--text-h5, 21px);line-height:28px;letter-spacing:-0.02em;
  font-weight:600;color:var(--color-title);margin:0 0 var(--space-4, 16px)
}
.registre__def{margin:0;display:grid;gap:var(--space-3, 12px)}
.registre__dt{
  font-size:var(--text-tiny, 12px);line-height:16px;letter-spacing:0.04em;
  text-transform:uppercase;font-weight:500;color:var(--color-ink-soft);
  margin:0;opacity:.75
}
.registre__dd{
  font-size:var(--text-body-sm, 15px);line-height:22px;
  color:var(--color-ink);margin:0 0 var(--space-2, 8px)
}
.registre__dd:last-child{margin-bottom:0}

/* ── « Ce que ce site ne fait pas » ── */
.exclusions{
  background:var(--color-surface);
  padding-block:var(--space-section, 96px)
}
.exclusions__title{
  font-family:var(--font-sans);font-size:var(--text-h2, 54px);
  line-height:var(--text-h2--line-height, 56px);letter-spacing:-0.02em;
  font-weight:600;color:var(--color-title);margin:0 0 var(--space-12, 48px);
  max-width:640px
}
.exclusions__list{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(2, 1fr);
  column-gap:var(--space-12, 48px)
}
.exclusions__item{
  font-size:var(--text-body, 16px);line-height:24px;color:var(--color-ink);
  padding:var(--space-6, 24px) 0;border-top:1px solid var(--color-border-strong)
}
.exclusions__item strong{font-weight:600;color:var(--color-title)}

/* ── Destinataires ── */
.tiers{padding-block:var(--space-section, 96px)}
.tiers__title{
  font-family:var(--font-sans);font-size:var(--text-h2, 54px);
  line-height:var(--text-h2--line-height, 56px);letter-spacing:-0.02em;
  font-weight:600;color:var(--color-title);margin:0 0 var(--space-6, 24px);
  max-width:640px
}
.tiers__lead{
  font-size:var(--text-body-lg, 18px);line-height:28px;
  color:var(--color-ink-soft);margin:0 0 var(--space-12, 48px);max-width:640px
}
.tiers__row{
  display:grid;grid-template-columns:minmax(180px,1fr) 2fr minmax(140px,auto);
  gap:var(--space-6, 24px);align-items:baseline;
  padding:var(--space-6, 24px) 0;border-top:1px solid var(--color-border)
}
.tiers__row:last-child{border-bottom:1px solid var(--color-border)}
.tiers__who{
  font-size:var(--text-h6, 20px);line-height:28px;letter-spacing:-0.01em;
  font-weight:500;color:var(--color-title);margin:0
}
.tiers__what{
  font-size:var(--text-body-sm, 15px);line-height:22px;
  color:var(--color-ink);margin:0
}
.tiers__where{
  font-size:var(--text-caption, 13px);line-height:20px;font-weight:500;
  color:var(--color-ink-soft);margin:0
}

@media (max-width: 900px){
  .registre__grid{grid-template-columns:1fr}
  .registre__cell:not(:nth-child(2n+1)){border-left:0}
  .registre__cell:not(:first-child){border-top:1px solid var(--color-border)}
  .exclusions__list{grid-template-columns:1fr}
  .tiers__row{grid-template-columns:1fr;gap:var(--space-2, 8px)}
}