/* =========================================================
   HOMWEB Photographe — pages légales (CGV, mentions légales &
   confidentialité, résiliation) en « L’Accrochage ».
   S’appuie sur les jetons, la nav, les boutons et le pied de page
   de css/landing.css ; ne contient que la mise en page du document.
   Le texte juridique est un « cartel » long : colonne de lecture
   étroite, sommaire en marge, filets fins, aucune carte arrondie.
   ========================================================= */

/* Nav : pas de comportement « headroom » ici, simple bandeau en tête */
.acc-legal-page .acc-nav{ position:relative; box-shadow:0 1px 0 var(--acc-rule); }
.acc-legal-back{ font-size:15px; color:var(--acc-label); }
.acc-legal-back:hover{ color:var(--acc-ink); }

/* ---------- Document ---------- */
.acc-legal{ padding:96px 0 120px; }
.acc-legal-grid{
  display:grid; grid-template-columns:260px minmax(0,720px); column-gap:clamp(48px,8vw,120px);
  align-items:start;
}
.acc-legal-head{ grid-column:2; padding-bottom:40px; border-bottom:1px solid var(--acc-ink); }
.acc-legal-title{ font-size:56px; line-height:60px; letter-spacing:-.035em; color:var(--acc-ink); max-width:14em; }
.acc-legal-version{ margin-top:22px; font-family:var(--acc-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--acc-label); }
.acc-legal-intro{ margin-top:24px; max-width:560px; font-size:18px; line-height:28px; color:var(--acc-label); }

/* Marge : sommaire + cartel de contact (collants pendant la lecture) */
.acc-legal-aside{ grid-column:1; grid-row:1 / span 2; position:sticky; top:40px; padding-top:10px; }
.acc-legal-toc ol{ list-style:none; margin:0; padding:0; counter-reset:toc; }
.acc-legal-toc li{ border-top:1px solid var(--acc-rule); }
.acc-legal-toc li:last-child{ border-bottom:1px solid var(--acc-rule); }
.acc-legal-toc a{ display:grid; grid-template-columns:28px 1fr; gap:4px; padding:7px 0; font-size:13px; line-height:18px; color:var(--acc-label); }
.acc-legal-toc a span{ font-family:var(--acc-mono); font-size:10.5px; letter-spacing:.04em; padding-top:1px; }
.acc-legal-toc a:hover{ color:var(--acc-ink); }
.acc-legal-aside .acc-cartel{ margin-top:32px; }
.acc-legal-aside .acc-cartel a{ color:var(--acc-ink); }

/* Corps du texte */
.acc-legal-body{ grid-column:2; padding-top:8px; }
.acc-legal-body h2{
  margin:64px 0 18px; padding-top:18px; border-top:1px solid var(--acc-rule);
  font-size:26px; line-height:32px; letter-spacing:-.02em; font-weight:400; color:var(--acc-ink);
  scroll-margin-top:24px;
}
.acc-legal-body > h2:first-child{ margin-top:40px; padding-top:0; border-top:0; }
.acc-legal-body h3{ margin:32px 0 10px; font-size:17px; line-height:24px; font-weight:500; letter-spacing:-.005em; color:var(--acc-ink); }
.acc-legal-body p{ margin:0 0 14px; font-size:16px; line-height:26px; color:#3D3A35; }
.acc-legal-body a{ color:var(--acc-ink); text-decoration-color:rgba(26,26,26,.35) !important; }
.acc-legal-list{ list-style:none; margin:0 0 16px; padding:0; }
.acc-legal-list li{ position:relative; padding:0 0 8px 26px; font-size:16px; line-height:26px; color:#3D3A35; }
.acc-legal-list li::before{ content:"—"; position:absolute; left:0; color:var(--acc-label); }
.acc-legal-callout{ margin:24px 0; padding:20px 0 20px 22px; border-left:2px solid var(--acc-ink); }
.acc-legal-callout p{ font-size:15px; line-height:24px; }
.acc-legal-callout p:last-child{ margin-bottom:0; }

/* ---------- Résiliation : formulaire dans la colonne de lecture ---------- */
.acc-legal-body--form{ max-width:560px; padding-top:40px; }
.acc-legal-page .ffl-cancel-alt{ text-align:left; margin-top:28px; font-size:15px; line-height:24px; color:var(--acc-label); }
.acc-legal-page .ffl-cancel-form,.acc-legal-page .ffl-cancel-recap{ background:none; border-radius:0; padding:0; }

.acc-legal-page .ff-field{ margin-bottom:26px; }
.acc-legal-page .ff-label{ display:block; margin-bottom:10px; font-size:14px; font-weight:500; color:var(--acc-ink); }
.acc-legal-page .ff-required{ color:var(--acc-red); }
.acc-legal-page .ff-field input{
  width:100%; min-height:56px; padding:15px 16px; border-radius:0;
  border:1px solid var(--acc-rule); background:#FBFAF7; color:var(--acc-ink);
  font-family:var(--acc-sans); font-size:17px; line-height:1.4; box-shadow:none;
  transition:border-color .18s var(--acc-out), box-shadow .18s var(--acc-out), background-color .18s;
}
.acc-legal-page .ff-field input:hover{ border-color:#B9B3A8; }
.acc-legal-page .ff-field input:focus{ outline:none; border-color:var(--acc-ink); box-shadow:inset 0 0 0 1px var(--acc-ink); background:#fff; }
.acc-legal-page .ff-field input::placeholder{ color:#9A958C; }
.acc-legal-page .ff-field.has-error input{ border-color:#B3261E; box-shadow:inset 3px 0 0 #B3261E; }
.acc-legal-page .ff-help{ margin-top:8px; font-size:13px; color:var(--acc-label); }
.acc-legal-page .ff-error{ margin-top:8px; font-size:13px; font-weight:500; color:#B3261E; }
.acc-legal-page .ff-error:not([hidden])::before{ content:"— "; }

.acc-legal-page .ff-btn-primary,.acc-legal-page .ff-btn-ghost{
  display:inline-flex; align-items:center; justify-content:center; gap:12px; height:56px; border-radius:0;
  font-family:var(--acc-sans); font-weight:500; cursor:pointer; box-shadow:none;
  transition:background-color .22s var(--acc-out), border-color .2s var(--acc-out), transform .14s var(--acc-out);
}
.acc-legal-page .ff-btn-primary{ width:100%; padding:0 30px; border:0; background:var(--acc-ink); color:var(--acc-on-ink); font-size:17px; }
.acc-legal-page .ff-btn-primary::before{ content:""; flex:none; width:9px; height:9px; border-radius:50%; background:var(--acc-red); transition:transform .22s var(--acc-out), box-shadow .22s; }
.acc-legal-page .ff-btn-primary:hover{ background:#000; transform:none; }
.acc-legal-page .ff-btn-primary:hover::before,.acc-legal-page .ff-btn-primary:focus-visible::before{ transform:scale(1.35); box-shadow:0 0 0 3px rgba(215,38,30,.2); }
.acc-legal-page .ff-btn-primary:active,.acc-legal-page .ff-btn-ghost:active{ transform:scale(.985); }
.acc-legal-page .ff-btn-primary:disabled{ opacity:.55; transform:none; }
.acc-legal-page .ff-btn-primary.is-loading::before{ animation:accLegalPulse .9s ease-in-out infinite alternate; }
@keyframes accLegalPulse{ to{ transform:scale(.5); opacity:.5; } }
.acc-legal-page .ff-btn-ghost{ padding:0 22px; border:1px solid var(--acc-rule); background:transparent; color:var(--acc-ink); font-size:16px; }
.acc-legal-page .ff-btn-ghost:hover{ border-color:var(--acc-ink); background:transparent; transform:none; }

.acc-legal-page .ffl-cancel-recap-title{ margin:0 0 18px; font-size:24px; line-height:30px; font-weight:400; letter-spacing:-.02em; }
.acc-legal-page .ffl-cancel-recap-row{ display:flex; justify-content:space-between; gap:24px; padding:14px 0; border-top:1px solid var(--acc-rule); font-size:15px; }
.acc-legal-page .ffl-cancel-recap-row:last-of-type{ border-bottom:1px solid var(--acc-rule); }
.acc-legal-page .ffl-cancel-recap-label{ flex-shrink:0; font-family:var(--acc-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--acc-label); padding-top:3px; }
.acc-legal-page .ffl-cancel-recap-value{ font-weight:500; text-align:right; word-break:break-word; }
.acc-legal-page .ffl-cancel-recap-actions{ display:flex; flex-direction:column-reverse; gap:10px; margin-top:28px; }
.acc-legal-page .ffl-cancel-recap-actions .ff-btn-ghost{ width:100%; }
.acc-legal-page .ffl-cancel-confirmed{ padding:22px 0 22px 22px; border-left:2px solid var(--acc-ink); }
.acc-legal-page .ffl-cancel-confirmed p{ font-size:16px; line-height:26px; color:#3D3A35; }
.acc-legal-page .ffl-cancel-confirmed-title{ margin-bottom:8px; font-size:20px !important; line-height:28px !important; color:var(--acc-ink) !important; font-weight:400; letter-spacing:-.01em; }

/* ---------- Tablette ---------- */
@media (max-width:1199px){
  .acc-legal{ padding:72px 0 96px; }
  .acc-legal-grid{ grid-template-columns:minmax(0,1fr); }
  .acc-legal-head,.acc-legal-body,.acc-legal-aside{ grid-column:1; }
  .acc-legal-aside{ grid-row:auto; position:static; padding-top:32px; }
  .acc-legal-aside--after{ order:3; padding-top:48px; }
  .acc-legal-toc ol{ columns:2; column-gap:32px; }
  .acc-legal-toc li{ break-inside:avoid; }
  .acc-legal-title{ font-size:44px; line-height:48px; }
}

/* ---------- Mobile ---------- */
@media (max-width:767px){
  .acc-legal{ padding:44px 0 72px; }
  .acc-legal-back{ font-size:14px; }
  .acc-legal-head{ padding-bottom:28px; }
  .acc-legal-title{ font-size:34px; line-height:38px; letter-spacing:-.03em; }
  .acc-legal-intro{ font-size:16px; line-height:25px; }
  .acc-legal-toc ol{ columns:1; }
  .acc-legal-body h2{ margin-top:48px; font-size:22px; line-height:28px; }
  .acc-legal-body p,.acc-legal-list li{ font-size:15px; line-height:24px; }
  .acc-legal-page .ffl-cancel-recap-row{ flex-direction:column; gap:4px; }
  .acc-legal-page .ffl-cancel-recap-value{ text-align:left; }
}
