/* Pages publiques MKD Groupe — exercice des droits RGPD et politique de
   protection des données. Reprend les tokens de app.css (chargé avant) : aucune
   couleur nouvelle, seulement des composants de mise en page pour du contenu
   long lu par le grand public.

   Contrainte CSP : aucun style inline nulle part (server.js). */

body.pub{padding-bottom:0}
.mono{font-family:var(--mono);font-size:.94em;letter-spacing:.04em}

/* --- En-tête public : logo MKD Groupe, pas le bandeau interne ------------- */
.pub-head{background:var(--card);border-bottom:3px solid var(--ink)}
.pub-head .head-in{align-items:center;padding:18px 0}
.pub-logo{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit}
.pub-logo img{height:44px;width:auto;display:block}
.pub-logo .sep{width:1px;height:34px;background:var(--line)}
.pub-logo .titles .t{font-size:15px;font-weight:800;letter-spacing:-.01em;line-height:1.2}
.pub-logo .titles .s{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-top:3px}
@media (max-width:560px){ .pub-logo .sep,.pub-logo .titles{display:none} }

.pub-nav{display:flex;gap:18px;flex-wrap:wrap}
.pub-nav a{font-size:13px;font-weight:600;color:var(--slate);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:2px}
.pub-nav a:hover,.pub-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--primary)}

/* --- Colonne de lecture --------------------------------------------------- */
.pub main{padding:34px 0 60px}
.reading{max-width:820px;margin:0 auto}
.reading.wide{max-width:980px}

.pub h1.page{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-bottom:10px}
.pub .lede{font-size:16px;line-height:1.65;color:var(--slate);margin-bottom:8px}
.pub .updated{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);margin-bottom:26px}

/* --- Cartes d'action (choix nouvelle demande / suivi) --------------------- */
.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:24px 0 8px}
.choice{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--primary);padding:22px;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.choice:hover{border-color:var(--primary);box-shadow:0 2px 0 var(--line)}
.choice:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.choice .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.choice h3{font-size:19px;font-weight:800;margin:8px 0 8px;letter-spacing:-.01em}
.choice p{font-size:14px;line-height:1.6;color:var(--slate);flex:1}
.choice .go{margin-top:16px;font-weight:700;color:var(--primary)}
.choice.alt{border-top-color:var(--ink)}
.choice.alt .go{color:var(--ink)}

/* --- Contenu légal long --------------------------------------------------- */
.legal h2{font-size:19px;font-weight:800;margin:34px 0 12px;padding-bottom:8px;border-bottom:2px solid var(--ink);display:block}
.legal h3{font-size:15.5px;font-weight:800;margin:22px 0 8px}
.legal p{font-size:14.5px;line-height:1.7;margin-bottom:12px}
.legal ul,.legal ol{margin:0 0 14px 22px}
.legal li{font-size:14.5px;line-height:1.7;margin-bottom:6px}
.legal strong{font-weight:700}
.legal a{color:var(--primary)}
.legal dl.defs{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin-bottom:14px;font-size:14.5px;line-height:1.6}
.legal dl.defs dt{font-weight:700}

.toc{background:var(--card);border:1px solid var(--line);padding:16px 18px;margin-bottom:8px}
.toc .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-bottom:10px}
.toc ol{margin:0 0 0 20px}
.toc li{font-size:14px;margin-bottom:5px}
.toc a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.toc a:hover{color:var(--primary);border-bottom-color:var(--primary)}

/* Encadré d'information légale (rappel de texte, mise en garde). */
.notice{border-left:5px solid var(--primary);background:var(--primary-soft);padding:14px 16px;margin:18px 0;font-size:14px;line-height:1.65}
.notice.warn{border-left-color:var(--warn);background:var(--warn-soft)}
.notice.ok{border-left-color:var(--ok);background:var(--ok-soft)}
.notice p{margin-bottom:8px}
.notice p:last-child{margin-bottom:0}
.notice .t{font-weight:800;display:block;margin-bottom:6px}

.contactbox{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--ink);padding:18px;margin:18px 0}
.contactbox dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14px;line-height:1.6}
.contactbox dt{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);padding-top:3px}

/* --- Formulaire long ------------------------------------------------------ */
.step{background:var(--card);border:1px solid var(--line);padding:22px;margin-bottom:18px}
.step>.n{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.step>h2{font-size:18px;font-weight:800;margin:4px 0 6px;border:0;padding:0}
.step>.hint{font-size:13.5px;line-height:1.6;color:var(--slate);margin-bottom:16px}
.field{margin-bottom:14px}
.field .help{font-size:12.5px;color:var(--slate);margin-top:4px;line-height:1.5}
.req{color:var(--block);font-weight:700}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){ .two{grid-template-columns:1fr} }

/* Cases à cocher / boutons radio en liste lisible (droits, canal, qualité). */
.opts{display:grid;gap:8px}
.opts.two-col{grid-template-columns:1fr 1fr}
@media (max-width:640px){ .opts.two-col{grid-template-columns:1fr} }
.opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);background:#FDFDFB;padding:11px 13px;cursor:pointer}
.opt:hover{border-color:var(--primary)}
.opt input{width:auto;margin-top:2px;flex:none}
.opt .lbl{font-size:14px;line-height:1.45;font-weight:600;letter-spacing:0;text-transform:none;font-family:inherit;color:var(--ink);margin:0}
.opt .sub{display:block;font-weight:400;font-size:12.5px;color:var(--slate);margin-top:3px}
.opt:focus-within{outline:2px solid var(--primary);outline-offset:1px}

/* Honeypot anti-robot : hors écran, jamais masqué par display:none (certains
   robots ignorent les champs cachés ainsi). */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.attest{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.6;margin:14px 0}
.attest input{width:auto;margin-top:3px;flex:none}

.submitbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:6px}
.pub .msg{font-size:14px;line-height:1.6;border-left:5px solid var(--block);background:var(--block-soft);padding:12px 14px;margin-top:14px}
.pub .msg[hidden]{display:none}

/* --- Accusé de dépôt ------------------------------------------------------ */
.receipt{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--ok);padding:26px;text-align:center}
.receipt h2{font-size:22px;font-weight:800;margin-bottom:10px;border:0;padding:0}
.receipt .ref{font-family:var(--mono);font-size:26px;letter-spacing:.18em;font-weight:700;border:2px dashed var(--ok);background:var(--ok-soft);padding:14px;margin:16px 0;word-break:break-all}
.receipt p{font-size:14.5px;line-height:1.7;color:var(--slate);max-width:560px;margin:0 auto 10px}
.receipt .actions{justify-content:center}

/* --- Suivi ---------------------------------------------------------------- */
.timeline{list-style:none;margin:16px 0 0}
.timeline li{position:relative;padding:0 0 18px 26px;border-left:2px solid var(--line);font-size:14px;line-height:1.6}
.timeline li:last-child{border-left-color:transparent;padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;background:var(--card);border:2px solid var(--line);border-radius:50%}
.timeline li.done::before{background:var(--ok);border-color:var(--ok)}
.timeline li.current::before{background:var(--primary);border-color:var(--primary)}
.timeline li .st{font-weight:700}
.timeline li .dt{font-family:var(--mono);font-size:11.5px;color:var(--slate);display:block;margin-top:2px}

/* --- Pied de page public -------------------------------------------------- */
.pub-foot{border-top:3px solid var(--ink);background:var(--card);padding:26px 0;margin-top:50px}
.pub-foot .in{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--slate);line-height:1.7}
.pub-foot a{color:var(--slate)}
.pub-foot .who{font-weight:700;color:var(--ink)}
