/* boum.it — formulaires (contact, candidature) : panneau, champs, erreurs, envoi, succès. */
/* ── Form panel ── */
.contact-form-panel{background:var(--surface-2);box-shadow:0 1px 0 rgba(17,17,17,0.04);border:1px solid var(--border);padding:3.5rem}
@media(max-width:600px){.contact-form-panel{padding:1.75rem 1.25rem}}
.form-header{margin-bottom:2.25rem;padding-bottom:1.75rem;border-bottom:1px solid var(--border)}
.form-header-label{font-size:0.72rem;letter-spacing:0.35em;color:var(--gold-dim);text-transform:uppercase;margin-bottom:0.8rem;display:block}
.form-header-title{font-family:'Syne',sans-serif;font-size:1.5rem;font-weight:600;line-height:1.2;letter-spacing:-0.01em}

/* ── Form fields ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media(max-width:600px){.form-grid{grid-template-columns:1fr;gap:1.25rem}}
.form-group{display:flex;flex-direction:column;gap:0.5rem;min-width:0}
.form-group.full{grid-column:1/-1}
.form-label{font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-muted)}
.form-label .opt{color:var(--gold-dim);font-size:0.68rem;letter-spacing:0.08em;margin-inline-start:0.4rem;text-transform:none}
/* 16 px minimum : en dessous, l'iPhone zoome automatiquement quand on touche un champ */
.form-input,.form-select,.form-textarea{background:rgba(17,17,17,0.03);border:1px solid rgba(17,17,17,0.12);color:var(--text);font-family:inherit;font-size:1rem;padding:0.85rem 1rem;border-radius:0;transition:border-color 0.25s,background-color 0.25s;width:100%;-webkit-appearance:none;appearance:none}
.form-input::placeholder,.form-textarea::placeholder{color:rgba(17,17,17,0.4)}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--gold);background:rgba(132,101,31,0.04);outline:none}
.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible{outline:1px solid var(--gold);outline-offset:0}
[aria-invalid="true"]{border-color:#B5452F!important}
.field-error{font-size:0.8rem;color:#A63A26;min-height:0;line-height:1.5}
.field-error:empty{display:none}
.form-select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C9A84C' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
.form-select option{background:var(--surface-2);color:var(--text)}
.form-textarea{resize:vertical;min-height:150px;line-height:1.7}
.form-file-wrap{position:relative}
.form-file{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.form-file-display{background:rgba(17,17,17,0.03);border:1px dashed var(--border-gold);color:var(--text-muted);font-size:0.9rem;padding:0.95rem 1rem;display:flex;align-items:center;gap:0.6rem;cursor:pointer;transition:border-color 0.25s,background-color 0.25s;overflow-wrap:anywhere}
.form-file-display:hover,.form-file-wrap:focus-within .form-file-display{border-color:var(--gold);background:rgba(132,101,31,0.04)}
.form-file-wrap:focus-within .form-file-display{outline:1px solid var(--gold)}
.form-file-icon{color:var(--gold-dim);font-size:1rem}
.file-name{color:var(--text)}
/* champ piège anti-robots : invisible sans être déplacé hors écran (sinon défilement géant en arabe) */
.botcheck{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);opacity:0;pointer-events:none}
.form-submit{margin-top:2rem;display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.btn-submit{display:inline-flex;align-items:center;justify-content:center;gap:0.75rem;min-height:3.25rem;background:var(--ink);color:var(--bg);font-family:inherit;font-size:0.8rem;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;padding:1rem 2.5rem;border:none;cursor:pointer;transition:background-color 0.25s,transform 0.2s;position:relative;overflow:hidden}
.btn-submit:hover{background:var(--gold)}
.btn-submit:active{transform:scale(0.98)}
.btn-submit:disabled{opacity:0.6;cursor:not-allowed}
.btn-submit .arrow{transition:transform 0.25s;display:inline-block}
.btn-submit:hover .arrow{transform:translateX(4px)}
[dir="rtl"] .btn-submit .arrow{transform:scaleX(-1)}
@media(max-width:600px){.btn-submit{width:100%}}
.btn-spinner{width:16px;height:16px;border:2px solid rgba(246,242,234,0.35);border-top-color:var(--bg);border-radius:50%;animation:spin 0.7s linear infinite;display:none}
.btn-submit.loading .btn-label{display:none}
.btn-submit.loading .btn-spinner{display:block}
.form-alert{font-size:0.9rem;line-height:1.7;color:#A63A26;border:1px solid rgba(217,112,92,0.4);background:rgba(217,112,92,0.06);padding:0.85rem 1rem;width:100%}
.form-alert[hidden]{display:none}
.form-alert a{color:inherit}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── Success state ── */
.form-success{display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 1rem;gap:1.75rem}
.form-success.visible{display:flex}
.success-icon{width:56px;height:56px;border-radius:50%;border:1px solid var(--border-gold);display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:var(--gold)}
.success-title{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:600;letter-spacing:-0.01em}
.success-title em{font-style:normal;color:var(--gold)}
.success-sub{font-size:0.95rem;color:var(--text-muted);line-height:1.85;max-width:380px}

/* ── RTL ── */
[dir="rtl"] .form-select{background-position:left 1rem center;padding-right:1rem;padding-left:2.5rem}
