/* Page de confidentialité : même look que le site, rythme de lecture.
   Le sommaire garde le point orange sur la section lue; le rail se trace
   à mesure de la lecture. Styles d’impression en fin de fichier. */

.legal-page{background:var(--paper)}

/* Hero noir, compact : le titre porte la page. */
.legal-hero{position:relative;overflow:clip;isolation:isolate;background:var(--ink);color:var(--paper);padding:calc(var(--header-h) + clamp(56px,7vw,110px)) 0 clamp(64px,7vw,110px)}
.legal-hero .wrap{position:relative;z-index:1}
.legal-hero .overline{color:var(--paper);margin-bottom:clamp(26px,3vw,40px)}
.legal-hero h1{font:700 clamp(54px,8.4vw,138px)/.96 var(--display);letter-spacing:-.065em;max-width:1100px;text-wrap:balance}
.legal-hero h1 em{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:-.035em;color:var(--orange)}
.legal-lede{max-width:62ch;margin-top:clamp(30px,3.5vw,48px);font-size:clamp(17px,1.4vw,21px);line-height:1.55;letter-spacing:-.01em;color:#e7e4dc}
.legal-lede a,.legal-sections a{color:inherit;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;transition:color .2s}
.legal-lede a:is(:hover,:focus-visible){color:var(--orange)}
.legal-contact{display:grid;gap:10px;max-width:100%;margin-top:26px;font-size:15px;color:#c8c5bd}
.legal-contact a{justify-self:start;color:var(--orange);font:600 clamp(18px,2vw,28px)/1.3 var(--body);letter-spacing:-.025em;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.legal-contact a:is(:hover,:focus-visible){color:var(--paper);text-decoration-thickness:2px}
.legal-rights-contact a{overflow-wrap:anywhere}
.legal-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:30px;font-size:13px;color:#c8c5bd}
.legal-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 10px 4px;background:var(--orange);color:var(--ink);font-size:12px;font-weight:600;line-height:1.3;letter-spacing:.01em;white-space:nowrap}
.legal-chip::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--ink)}

/* L’essentiel : six réponses courtes avant le détail. */
.legal-summary{padding-block:clamp(72px,8vw,128px) clamp(56px,6vw,96px)}
.legal-summary-title{font:700 clamp(40px,5vw,78px)/1 var(--display);letter-spacing:-.06em;margin-bottom:clamp(36px,4vw,60px)}
.legal-summary-title em{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:-.035em}
.legal-points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 40px}
.legal-points li{border-top:1px solid var(--ink);padding-top:22px}
.legal-points h3{display:flex;align-items:baseline;gap:12px;font:700 clamp(21px,1.7vw,26px)/1.15 var(--display);letter-spacing:-.04em;margin-bottom:12px}
.legal-points h3::before{content:'';flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--orange);transform:translateY(-2px)}
.legal-points p{font-size:16px;line-height:1.55;max-width:34ch;color:#2b2a27}

/* Politique détaillée : sommaire collant à gauche, texte à droite. */
.legal-body{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2.2fr);gap:clamp(40px,6vw,110px);padding-bottom:clamp(80px,9vw,140px);align-items:start}
.legal-toc{position:sticky;top:40px;display:grid;grid-template-columns:16px 1fr;column-gap:18px;font-size:14px}
.legal-toc-title{grid-column:1/-1;font:700 13px/1 var(--display);letter-spacing:.02em;margin-bottom:20px}
.legal-toc-rail{position:relative;grid-column:1;width:1px;justify-self:center;background:var(--rule)}
.legal-toc-rail>span{position:absolute;inset:0;background:var(--ink);transform-origin:50% 0;transform:scaleY(var(--read,0))}
.legal-toc-rail>i{position:absolute;left:50%;top:0;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px var(--paper)}
.legal-toc ol{grid-column:2;list-style:none;margin:0;padding:0;counter-reset:toc}
.legal-toc li{counter-increment:toc}
.legal-toc a{display:flex;gap:12px;min-height:34px;align-items:center;color:#55534e;transition:color .25s,transform .35s var(--ease-out)}
.legal-toc a::before{content:counter(toc,decimal-leading-zero);font-size:11px;font-variant-numeric:tabular-nums;color:#6b6862}
.legal-toc a:is(:hover,:focus-visible){color:var(--ink);transform:translateX(4px)}
.legal-toc a[aria-current]{color:var(--ink);font-weight:600}
.legal-toc a[aria-current]::before{color:var(--orange)}

.legal-sections{max-width:780px}
.legal-sections>section{padding:34px 0 60px;border-top:1px solid var(--rule);scroll-margin-top:24px}
.legal-sections>section:first-child{border-top-color:var(--ink)}
.legal-number{font:700 13px/1 var(--display);font-variant-numeric:tabular-nums;color:#6b6862;margin-bottom:18px}
.legal-sections h2{font:700 clamp(30px,3.1vw,48px)/1.05 var(--display);letter-spacing:-.05em;margin-bottom:24px;text-wrap:balance}
.legal-sections h3{font:700 19px/1.2 var(--display);letter-spacing:-.03em;margin:28px 0 10px}
.legal-sections p,.legal-sections li{font-size:clamp(16px,1.2vw,18px);line-height:1.68;letter-spacing:-.005em;max-width:66ch}
.legal-sections p+p,.legal-sections ul+p,.legal-sections p+ul{margin-top:16px}
.legal-sections ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.legal-sections li{position:relative;padding-left:24px}
.legal-sections li::before{content:'';position:absolute;left:2px;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--orange)}
.legal-sections a:is(:hover,:focus-visible){color:#b8361a}
.legal-sections .legal-chip{margin-left:6px;vertical-align:1px}
.legal-card{display:grid;margin:26px 0 0;border:1px solid var(--ink)}
.legal-card>div{display:grid;grid-template-columns:minmax(120px,.5fr) 1fr;gap:20px;padding:16px 20px;border-top:1px solid var(--rule)}
.legal-card>div:first-child{border-top:0}
.legal-card dt{font-size:13px;font-weight:600;color:#55534e}
.legal-card dd{margin:0;font-size:16px}

/* Footer de la page légale. */
.legal-footer{padding-top:clamp(70px,8vw,120px)}
.legal-footer-top{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:end;padding-bottom:clamp(48px,5vw,72px);border-bottom:1px solid #3b3a36}
.legal-footer-top h2{font:700 clamp(44px,6vw,98px)/.98 var(--display);letter-spacing:-.065em}
.legal-footer-top h2 em{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:-.035em;color:var(--orange)}
.legal-footer-top p{font-size:16px;line-height:1.55;max-width:34ch;margin-bottom:26px;color:#e7e4dc}
.legal-footer-top .button{display:inline-block;min-width:260px}
.legal-footer .footer-signature{margin-top:clamp(48px,6vw,80px);margin-bottom:clamp(36px,4vw,56px)}

@media(max-width:1000px){
  .legal-points{grid-template-columns:repeat(2,minmax(0,1fr))}
  .legal-body{grid-template-columns:1fr;gap:28px}
  .legal-toc{position:static;grid-template-columns:1fr;border:1px solid var(--rule);padding:20px 22px}
  .legal-toc-rail{display:none}
  .legal-toc ol{grid-column:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
  .legal-footer-top{grid-template-columns:1fr}
}
@media(max-width:760px){
  .legal-hero h1{font-size:10.2vw;line-height:1.02}
  .legal-chip{white-space:normal}
  .legal-points{grid-template-columns:1fr;gap:30px}
  .legal-toc ol{grid-template-columns:1fr}
  .legal-card>div{grid-template-columns:1fr;gap:4px}
  .legal-footer-top h2{font-size:clamp(40px,12vw,58px)}
  .legal-footer-top .button{width:100%;min-width:0}
}

/* Impression : le texte de la politique, sans décor ni navigation. */
@media print{
  .site-header,.site-rail,dialog,.cursor,.page-curtain,.legal-toc,.hero-grain,.legal-footer .footer-signature,.legal-footer .button,.skip-link,.svg-defs{display:none!important}
  html,body,.legal-page{background:#fff!important;color:#000!important;padding-left:0!important}
  .legal-hero,.legal-footer,.footer.footer-dark{background:#fff!important;color:#000!important;padding:24px 0!important;clip-path:none!important}
  .legal-hero h1 em,.legal-footer-top h2 em{color:#000!important}
  .legal-lede,.legal-meta,.legal-footer-top p,.footer-legal,.footer-legal .footer-place{color:#000!important}
  .legal-body{display:block}
  .legal-sections>section{break-inside:avoid-page;padding:16px 0 20px}
  .legal-sections a[href^="http"]::after,.legal-lede a[href^="http"]::after{content:" (" attr(href) ")";font-size:.85em}
  .legal-chip{border:1px solid #000;background:#fff!important}
  [data-split] *{transform:none!important}
}
.legal-sections code{font:500 .9em/1 var(--body);padding:2px 6px;background:rgba(17,17,17,.07);white-space:nowrap}
