.caption{font:400 20px/1.3 var(--hand);color:var(--kraft-dark)}
.btn-dashed{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:1.5px dashed var(--accent);border-radius:8px;background:transparent;color:var(--accent);font:400 24px/1.3 var(--hand);cursor:pointer}
h1.headline{font-style:italic;margin:24px 0 8px}
.jump{margin:4px 0 0}
.steps{margin:16px 0 0;padding:0;list-style:none;counter-reset:etape}
.steps li{counter-increment:etape;display:grid;grid-template-columns:36px 1fr;gap:0 12px;padding:10px 0;border-top:1px solid var(--kraft)}
.steps li:first-child{border-top:0}
.steps li::before{content:counter(etape);font:400 20px/1.3 var(--hand);color:var(--kraft-dark);grid-row:span 2;padding-top:4px}
.steps .label{display:block}
.steps .body-sm{grid-column:2}
hr.dashed{border:0;border-top:1.5px dashed var(--kraft);margin:24px 0 16px}
.callout{background:var(--parchment);border:1.5px solid var(--kraft-deep);border-radius:12px;padding:12px 16px;margin:24px 0}
.callout .body{color:var(--ink)}
.field{margin-top:16px}
.field .label{display:block;margin-bottom:4px}
.help{font:400 14px/1.6 var(--serif);color:var(--ink-muted);margin:0 0 4px}
.input{display:block;width:100%;min-height:48px;padding:12px 14px;border:1.5px solid var(--kraft-deep);border-radius:8px;background:var(--card);font:400 16px/1.75 var(--serif);color:var(--ink)}
.input::placeholder{color:var(--kraft-dark)}
textarea.input{min-height:120px;resize:vertical}
fieldset{border:0;margin:16px 0 0;padding:0;min-width:0}
legend{font:700 15px/1.4 var(--serif);color:var(--ink);padding:0;margin-bottom:4px}
.choice{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:6px 0;font:400 16px/1.75 var(--serif);color:var(--ink-soft);cursor:pointer}
.choice input{width:24px;height:24px;accent-color:var(--accent);margin:2px 0 0;flex:none}
.photos{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.photos:focus-within .btn-dashed{outline:2px solid var(--accent);outline-offset:2px}
.leurre{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.submit{margin-top:24px}
.ref{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;margin-top:16px;padding:12px;background:var(--card);border:1px solid var(--sand);border-radius:12px}
.thumb{width:72px;height:72px;border-radius:8px}
.ref .title{display:block;text-decoration:none}
.badge{display:inline-flex;align-items:center;height:24px;padding:2px 10px;border:1px solid currentColor;border-radius:999px;background:var(--card);font:400 14px/1.6 var(--serif);color:var(--ink-muted);vertical-align:middle}
.badge.teal-dashed{color:var(--teal);border-style:dashed}
.ph-vague{background:linear-gradient(165deg,#F3F7F6 0%,#A9DDE2 35%,#3FA8B8 65%,#156672 100%)}
.notice{position:relative;background:var(--parchment);border:1px solid var(--sand);border-radius:14px;padding:32px 24px;box-shadow:var(--sh-relief);text-align:center;margin-top:40px}
.notice::before{content:"";position:absolute;top:-14px;left:50%;width:110px;height:28px;margin-left:-55px;background:var(--paper-deep);opacity:.8;transform:rotate(2deg)}
.notice .headline{font-style:italic;margin:8px 0 12px}
.notice .btn-primary{margin-top:20px}
.notice .long{text-align:left}
.notice{padding:32px 16px}
.btn-primary{padding:10px 16px}
main a.title{display:inline-flex;align-items:center;min-height:44px}

/* desktop : colonne de lecture bornée à la mesure de 820 px, centrée (DESIGN.md › Layout) */
@media (min-width:768px){
  main{max-width:868px}
  .btn-primary{padding:10px 26px}
  .btn-primary,.btn-legal{width:fit-content;min-width:240px}
}
@media (min-width:768px){
  .notice{padding:40px 44px}
  .notice .btn-primary{margin-inline:auto}
}
