@font-face{font-family:"General Sans";src:url("../fonts/GeneralSans-Light.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"General Sans";src:url("../fonts/GeneralSans-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"General Sans";src:url("../fonts/GeneralSans-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"General Sans";src:url("../fonts/GeneralSans-Semibold.woff2") format("woff2");font-weight:600;font-display:swap}
body{margin:0;background:#F6F6F4}
a{color:#19323C}a:hover{color:#E95359}
input,textarea,button{font-family:inherit}
input:focus,textarea:focus{outline:2px solid #19323C;outline-offset:1px}
a:focus-visible,button:focus-visible{outline:2px solid #19323C;outline-offset:2px}
.on-blue a:focus-visible,.on-blue button:focus-visible{outline-color:#F7898D}
[hidden]{display:none !important}
.piege{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
select:focus{outline:2px solid #19323C;outline-offset:1px}
.on-blue input:focus{outline-color:#F7898D}

/* Questionnaire : champs */
.field{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:500}
.field.q{font-size:16px;line-height:1.45}
.field input{height:48px;padding:0 14px;border:1px solid #DCE0E2;border-radius:11px;font-size:16px;color:#19323C;background:#FFFFFF;box-sizing:border-box;width:100%;min-width:0}
.field textarea{padding:14px;border:1px solid #DCE0E2;border-radius:11px;font-size:16px;line-height:1.5;color:#19323C;resize:vertical;box-sizing:border-box;width:100%;font-weight:400}
.field input[type=file]{height:auto;padding:14px;border:1px dashed #6A7A80;font-size:15px;background:#F6F6F4}
.grid{display:grid;gap:16px}
.g240{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.g200{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px}
.g170{grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:12px}
.g280{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:12px}
.g140{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:10px}
fieldset.q{border:0;margin:0;padding:0;min-width:0}
fieldset.q legend{font-size:14px;font-weight:500;margin-bottom:12px;padding:0}
fieldset.q legend.big{font-size:16px;line-height:1.45}

/* Choix */
.chip{min-height:44px;padding:10px 18px;border-radius:11px;font-size:15px;font-weight:500;cursor:pointer;background:#FFFFFF;color:#19323C;border:1px solid #DCE0E2}
.chip[aria-pressed=true]{background:#19323C;color:#F6F6F4;border-color:#19323C}
.card{display:flex;gap:14px;align-items:center;width:100%;min-height:52px;padding:12px 16px;border-radius:14px;text-align:left;font-size:15px;line-height:1.4;cursor:pointer;color:#19323C;background:#FFFFFF;border:1px solid #DCE0E2}
.card[aria-pressed=true]{background:#DCE0E2;border-color:#19323C}
.card .dot{flex:0 0 18px;width:18px;height:18px;border-radius:50%;box-sizing:border-box;border:2px solid #6A7A80}
.card[aria-pressed=true] .dot{border:6px solid #19323C}

/* Navigation des étapes */
.stepnav{display:flex;gap:12px;align-items:center;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:11px;text-align:left;font-size:15px;cursor:pointer;background:transparent;color:#F6F6F4;font-weight:500}
.stepnav[aria-disabled=true]{cursor:default;color:rgba(246,246,244,0.72);font-weight:400}
.stepnav[aria-current=step]{background:#F6F6F4;color:#19323C;font-weight:600}
.stepnav .n{font-size:12px;font-weight:600;letter-spacing:0.96px;min-width:22px;opacity:0.8}

/* Boutons d'action */
.btn{min-height:52px;padding:0 26px;border:0;border-radius:11px;font-size:17px;font-weight:600;cursor:pointer}
.btn-prev{min-height:48px;padding:0 22px;background:#FFFFFF;border:1px solid #DCE0E2;font-size:16px;color:#19323C}
.btn-next{background:#19323C;color:#F6F6F4}
.btn-send{background:#E95359;color:#FFFFFF}
.btn[disabled]{cursor:progress;opacity:0.6}
.notice{border-radius:14px;padding:16px 20px;font-size:15px;line-height:1.5;color:#19323C}
.notice.err{background:#FDE5E6}
.notice.info{background:#DCE0E2}
.notice strong{font-weight:600}

/* Téléphone : marges latérales réduites */
@media (max-width:600px){
  .gut{padding-left:16px !important;padding-right:16px !important}
  .tight{padding:28px 20px !important}
}

/* Portraits des associés : trois colonnes égales, empilées sur téléphone */
.portraits{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:600px){.portraits{grid-template-columns:1fr}}
