/* Alliance Philatélie — formulaire « Demande d'estimation » (reprend la maquette A).
   Les couleurs suivent les jetons du thème (--ap-*) avec des valeurs de repli. */
.slex{
  --slex-ink:var(--ap-ink,#2C3A4F); --slex-texte:var(--ap-texte,#4D4A45); --slex-muted:var(--ap-muted,#8A857C);
  --slex-paper:var(--ap-paper,#FAF7F1); --slex-paper-2:var(--ap-paper-2,#F3EDE1); --slex-blanc:#fff;
  --slex-ligne:var(--ap-ligne,#E3DCCC); --slex-ligne-2:var(--ap-ligne-2,#D5CDBB);
  --slex-bordeaux:var(--ap-bordeaux,#9E3E4A); --slex-dore:var(--ap-dore,#C8A14B); --slex-dore-2:var(--ap-dore-2,#A8853A);
  --slex-vert:var(--ap-vert,#3E7A52); --slex-err:#B3453F;
  --slex-ease:cubic-bezier(.25,.8,.25,1);
  background:var(--slex-blanc);border:1px solid var(--slex-ligne);border-radius:4px;padding:28px;color:var(--slex-texte);font-size:.92rem
}
.slex-title{font-family:var(--ap-f-display,Georgia,serif);font-weight:400;font-size:1.5rem;color:var(--slex-ink);margin:0 0 20px}
.slex-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.slex-field{margin:0 0 14px;padding:0;border:0;min-width:0}
.slex-field>label,.slex-field>legend{display:block;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--slex-muted);margin:0 0 6px;padding:0;float:none;width:auto}
.slex-field legend small{font-weight:400;text-transform:none;letter-spacing:0}
.slex-req{color:var(--slex-bordeaux)}
.slex input:not([type=radio]):not([type=checkbox]):not([type=file]),.slex textarea{width:100%;border:1px solid var(--slex-ligne-2);border-radius:3px;padding:11px 12px;font-size:.92rem;background:var(--slex-paper);font-family:inherit;color:var(--slex-texte);transition:border-color .2s,box-shadow .2s}
.slex textarea{min-height:110px;resize:vertical}
.slex input:focus,.slex textarea:focus{outline:none;border-color:var(--slex-dore);box-shadow:0 0 0 3px rgba(200,161,75,.18)}
.slex-hint{font-size:.72rem;color:var(--slex-muted);margin:5px 0 0}
.slex-error{font-size:.76rem;color:var(--slex-err);margin:5px 0 0;font-weight:600}
.slex-error:empty{display:none}
.slex-field.has-error input,.slex-field.has-error textarea{border-color:var(--slex-err);background:#FDF6F5}
.slex-field.has-error .slex-hint{display:none}
.slex-alert{background:rgba(179,69,63,.08);border:1px solid rgba(179,69,63,.3);color:var(--slex-err);border-radius:3px;padding:10px 12px;font-size:.84rem;font-weight:600;margin:0 0 16px}
/* cartes radio */
.slex-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.slex-opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--slex-ligne-2);border-radius:3px;padding:12px 14px;cursor:pointer;margin:0;transition:border-color .2s,background .2s}
.slex-opts--4{grid-template-columns:repeat(2,minmax(0,1fr))}
.slex-opt:hover{border-color:var(--ap-bleugris,#7195A7)}
.slex-opt.is-on{border-color:var(--slex-bordeaux);background:rgba(158,62,74,.04)}
.slex-opt input{accent-color:var(--slex-bordeaux);margin-top:3px;flex:none}
.slex-opt b{display:block;color:var(--slex-ink);font-size:.88rem}
.slex-opt small{display:block;font-size:.76rem;color:var(--slex-muted)}
.slex-opt:has(input:focus-visible){outline:2px solid var(--slex-dore);outline-offset:2px}
/* cases à cocher */
.slex-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:2px 16px;border:1px solid var(--slex-ligne-2);border-radius:3px;padding:12px 14px}
.slex-checks label{display:flex;align-items:center;gap:9px;font-size:.86rem;padding:5px 0;cursor:pointer;margin:0;color:var(--slex-texte)}
.slex-checks input{accent-color:var(--slex-bordeaux);width:15px;height:15px}
/* dépôt de photos */
.slex-drop{display:flex;flex-direction:column;align-items:center;gap:4px;border:2px dashed var(--slex-ligne-2);border-radius:4px;padding:22px;text-align:center;color:var(--slex-muted);font-size:.84rem;cursor:pointer;transition:border-color .2s,background .2s}
.slex-drop svg{color:var(--slex-dore-2)}
.slex-drop b{color:var(--ap-ardoise,#36475F)}
.slex-drop:hover,.slex-drop.is-over{border-color:var(--slex-dore);background:var(--slex-paper)}
.slex-drop:focus-visible{outline:2px solid var(--slex-dore);outline-offset:2px}
.slex-facult{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--slex-dore-2);background:rgba(200,161,75,.14);border-radius:10px;padding:2px 9px;vertical-align:middle;margin-left:6px}
.slex-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.slex-thumbs{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.slex-thumbs:empty{display:none}
.slex-thumb{position:relative;border:1px solid var(--slex-ligne);border-radius:3px;background:var(--slex-paper-2);overflow:hidden;font-size:.68rem}
.slex-thumb__img{display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:center/cover no-repeat var(--slex-paper-2);color:var(--slex-muted);font-weight:700;letter-spacing:.1em}
.slex-thumb__name{display:block;padding:5px 26px 5px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--slex-texte)}
.slex-thumb__bar{position:absolute;left:0;right:0;bottom:24px;height:3px;background:rgba(0,0,0,.08)}
.slex-thumb__bar i{display:block;height:100%;background:var(--slex-dore);transform:scaleX(0);transform-origin:left;transition:transform .2s linear}
.slex-thumb.is-done .slex-thumb__bar{display:none}
.slex-thumb.is-done::after{content:"✓";position:absolute;top:6px;left:6px;width:20px;height:20px;border-radius:50%;background:var(--slex-vert);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700}
.slex-thumb.is-loading .slex-thumb__img{opacity:.7}
.slex-thumb__msg{display:none}
.slex-thumb.is-failed{border-color:var(--slex-err)}
.slex-thumb.is-failed .slex-thumb__bar{display:none}
.slex-thumb.is-failed .slex-thumb__msg{display:block;position:absolute;inset:0 0 24px;background:rgba(253,246,245,.94);color:var(--slex-err);font-weight:700;padding:8px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.3}
.slex-thumb__del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(27,36,48,.72);color:#fff;font-size:.95rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2}
.slex-thumb__del:hover,.slex-thumb__del:focus-visible{background:var(--slex-bordeaux)}
/* pot de miel anti-robots : hors écran */
.slex-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.slex-gdpr{font-size:.8rem;margin:4px 0 14px}
/* envoi */
.slex-submit{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 26px;border:0;border-radius:3px;background:var(--slex-bordeaux);color:#FDF9F3;font-weight:600;font-size:.95rem;letter-spacing:.04em;cursor:pointer;margin-top:6px;transition:background .25s var(--slex-ease),box-shadow .25s var(--slex-ease)}
.slex-submit:hover{background:var(--ap-bordeaux-hover,#8A3440);box-shadow:0 6px 18px rgba(158,62,74,.28)}
.slex-submit:focus-visible{outline:2px solid var(--slex-dore);outline-offset:2px}
.slex-submit[disabled]{opacity:.75;cursor:progress;box-shadow:none}
.slex-submit.is-busy::before{content:"";width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:slex-spin .8s linear infinite}
@keyframes slex-spin{to{transform:rotate(360deg)}}
.slex-note{font-size:.74rem;color:var(--slex-muted);margin:12px 0 0;text-align:center}
/* confirmation (cachet vert) */
.slex-success{text-align:center;padding:26px 10px}
.slex-success:focus{outline:none}
.slex-mark{width:168px;height:auto;color:var(--slex-vert);display:block;margin:0 auto 8px;animation:slex-stamp .6s var(--slex-ease)}
@keyframes slex-stamp{from{transform:scale(1.25) rotate(-8deg);opacity:0}to{transform:none;opacity:1}}
.slex-success h2{font-family:var(--ap-f-display,Georgia,serif);font-weight:400;font-size:1.5rem;color:var(--slex-ink);margin:0}
.slex-success p{color:var(--slex-muted);max-width:46ch;margin:10px auto 0}
.slex-ref{font-family:var(--ap-f-mono,ui-monospace,monospace);font-size:.82rem;color:var(--slex-ink)!important}
.slex [hidden]{display:none!important}
@media (max-width:600px){.slex{padding:18px}.slex-row{grid-template-columns:1fr}.slex-opts{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.slex *,.slex *::before{animation:none!important;transition:none!important}}
