/* Ideal Contact – mise en page des formulaires (comme Fox Contact) ; le style des champs vient du template. */
.ic-form { container-type: inline-size; margin: 0 auto 1rem 0; --ic-gap: 12px; }
.ic-form .ic-row { display: flex; flex-wrap: wrap; gap: 0 24px; }
.ic-form .ic-column { flex: var(--ic-size, 12) 1 0; min-width: min(100%, 260px); }
.ic-form .ic-item { margin: 0 0 var(--ic-gap); min-width: 0; }
.ic-form .ic-label label, .ic-form .ic-label { font-weight: 500; }
.ic-form .ic-control { min-width: 0; max-width: 100%; }
.ic-form .ic-control input:not([type=checkbox]):not([type=radio]), .ic-form .ic-control select, .ic-form .ic-control textarea { width: 100%; max-width: 100%; box-sizing: border-box; }
.ic-form .ic-required { color: #c0392b; margin-left: 2px; }
.ic-form fieldset.ic-item { border: 0; padding: 0; margin-inline: 0; }
.ic-form fieldset.ic-item > legend { float: none; width: auto; font-size: inherit; padding: 0; margin: 0 0 4px; }
.ic-form .ic-options { display: flex; flex-direction: column; gap: 4px; }
.ic-form .ic-options-inline { flex-direction: row; flex-wrap: wrap; gap: 6px 18px; }
.ic-form .ic-option, .ic-form .ic-check { display: inline-flex; gap: 8px; align-items: baseline; cursor: pointer; margin: 0; }
.ic-form .ic-terms { max-height: 140px; overflow: auto; border: 1px solid rgba(128, 128, 128, .35); border-radius: 4px; padding: 8px 12px; margin-bottom: 8px; font-size: .9em; }
.ic-form .ic-tooltip { margin-top: 4px; }
/* Libellés dans les champs : l'aide reste lue par les lecteurs d'écran et s'affiche au survol (title), comme dans Fox Contact. */
.ic-form.ic-labels-inside .ic-tooltip { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* Certains templates décalent les champs (marge à gauche) : les champs du formulaire restent alignés. */
.ic-form .ic-control > input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .ic-form .ic-control > textarea, .ic-form .ic-control > select, .ic-form .ic-control > .ic-submit { margin-left: 0; margin-right: 0; }
.ic-form .ic-error { margin-top: 4px; }
.ic-form .ic-messages:empty { display: none; }
.ic-form .ic-messages > .ic-alert { margin-bottom: 0; }
.ic-form .ic-alert:focus { outline: none; }
.ic-form .ic-alert > :last-child { margin-bottom: 0; }
.ic-form .ic-item-html > :last-child { margin-bottom: 0; }
.ic-form .ic-align-center { text-align: center; }
.ic-form .ic-reset { margin-left: 6px; }
.ic-form .ic-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.ic-form .ic-visually-hidden { position: absolute !important; width: 1px !important; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ic-form [hidden] { display: none !important; }
.ic-form[aria-busy="true"] .ic-submit { cursor: progress; opacity: .7; }
.ic-form.ic-inline .ic-column { display: flex; flex-wrap: wrap; gap: 0 16px; align-items: flex-end; }

/* Étiquettes au-dessus des champs (petits espaces) */
.ic-form .ic-label { margin-bottom: 4px; }
.ic-form .ic-item-checkbox > .ic-label, .ic-form .ic-item-submit > .ic-label { display: none; }
.ic-form .ic-control { width: var(--ic-control-w); }

/* Étiquettes à côté des champs, dès que la place le permet (comme Fox Contact) */
@container (min-width: 560px) {
  .ic-labels-beside .ic-item:not(.ic-item-html):not(.ic-item-board) { display: flex; gap: 0 16px; align-items: flex-start; }
  .ic-labels-beside .ic-item > .ic-label, .ic-labels-beside fieldset.ic-item > legend { flex: 0 0 var(--ic-label-w); width: var(--ic-label-w); margin: 0; padding-top: .45em; float: left; }
  .ic-labels-beside .ic-item-checkbox > .ic-label, .ic-labels-beside .ic-item-submit > .ic-label { display: block; }
  .ic-labels-beside .ic-item-submit.ic-align-fields > .ic-control, .ic-labels-beside .ic-item-board.ic-align-fields, .ic-labels-beside .ic-item-html.ic-align-fields { margin-left: calc(var(--ic-label-w) + 16px); }
  .ic-labels-beside .ic-item-submit.ic-align-fields::before { content: none; }
  .ic-labels-beside .ic-item-submit.ic-align-labels > .ic-control { margin-left: 0; }
  .ic-labels-beside .ic-control { flex: 0 1 var(--ic-control-w); }
  .ic-labels-beside .ic-item-submit .ic-control { width: auto; }
}
@container (max-width: 559px) {
  .ic-form .ic-control { width: 100%; }
}

/* Captcha image intégré */
.idealcontact .ic-captcha-box { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.idealcontact .ic-captcha-img { display: block; max-width: 100%; height: auto; border: 1px solid rgba(0, 0, 0, .15); border-radius: 4px; background: #fff; }
.idealcontact .ic-captcha-reload { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; padding: 0; border: 1px solid rgba(0, 0, 0, .2); border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.idealcontact .ic-captcha-reload:hover { background: rgba(0, 0, 0, .05); }
.idealcontact .ic-captcha-reload:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.idealcontact .ic-captcha-reload[hidden] { display: none; }
.ic-form.ic-form .ic-control input.ic-captcha-input { max-width: 12rem; }
.idealcontact .ic-noscript { margin: .5rem 0 0; font-size: .875em; opacity: .8; }

/* Aperçu depuis l'administration */
.idealcontact .ic-preview-captcha { display: inline-block; padding: .9rem 1.1rem; border: 2px dashed rgba(0, 0, 0, .2); border-radius: 4px; font-size: .875em; opacity: .8; }
.idealcontact .ic-preview-note { margin-bottom: 1rem; }

/* Pièces jointes : bouton du template + zone glisser-déposer. Sans JavaScript, le champ natif reste visible. */
.idealcontact .ic-files-drop { display: none; }
.idealcontact.ic-js .ic-files-drop { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: .9rem 1rem; border: 1px dashed rgba(127, 127, 127, .55); border-radius: 6px; transition: background-color .15s, border-color .15s; }
.idealcontact.ic-form.ic-js .ic-control input.ic-files-input { position: absolute; width: 1px !important; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.idealcontact .ic-files { position: relative; }
.idealcontact .ic-files-icon { flex: none; opacity: .6; }
.idealcontact .ic-files-btn { margin: 0; cursor: pointer; }
.idealcontact .ic-files-drop-text { font-size: .9em; opacity: .75; }
.idealcontact .ic-files-drop.ic-dragover { border-color: currentColor; background: rgba(127, 127, 127, .08); }
.idealcontact .ic-files-drop.ic-full .ic-files-btn { opacity: .5; cursor: not-allowed; }
.idealcontact .ic-files-drop.ic-full .ic-files-drop-text { display: none; }
.idealcontact .ic-files-input:focus-visible + .ic-files-drop .ic-files-btn { outline: 2px solid currentColor; outline-offset: 2px; }
.idealcontact .ic-files-list { margin: .5rem 0 0; padding: 0; list-style: none; }
.idealcontact .ic-files-list li { display: flex; align-items: center; gap: .5rem; padding: .4rem .6rem; font-size: .925em; }
.idealcontact .ic-files-list:not(.list-group):not(.uk-list) li + li { border-top: 1px solid rgba(127, 127, 127, .25); }
.idealcontact .ic-file-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.idealcontact .ic-file-size { flex: none; opacity: .65; }
.idealcontact .ic-file-remove { flex: none; margin-left: auto; border: 0; background: transparent; color: inherit; font-size: 1.35rem; line-height: 1; cursor: pointer; padding: 0 .35rem; opacity: .7; }
.idealcontact .ic-file-remove:hover, .idealcontact .ic-file-remove:focus-visible { opacity: 1; }
.idealcontact .ic-files-info { margin-top: .4rem; }

/* Formulaires importés de Fox Contact avec son style « bootstrap.css » : mêmes couleurs de messages que Fox,
   quel que soit le style des alertes du template. */
.ic-form.ic-fox-bootstrap .alert { padding: 8px 14px; margin-bottom: 0; border: 1px solid; border-radius: 5px; background-image: none; text-shadow: 0 1px 0 rgba(255, 255, 255, .5); }
.ic-form.ic-fox-bootstrap .alert-success { color: #468847; background-color: #dff0d8; border-color: #d6e9c6; }
.ic-form.ic-fox-bootstrap .alert-info { color: #3a87ad; background-color: #d9edf7; border-color: #bce8f1; }
.ic-form.ic-fox-bootstrap .alert-warning { color: #c09853; background-color: #fcf8e3; border-color: #fbeed5; }
.ic-form.ic-fox-bootstrap .alert-danger, .ic-form.ic-fox-bootstrap .alert-error { color: #b94a48; background-color: #f2dede; border-color: #eed3d7; }
/* Champs comme dans « bootstrap.css » de Fox : fond blanc, bord gris, fond jaune pâle au survol et à la saisie. */
.ic-form.ic-fox-bootstrap .ic-control > input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),
.ic-form.ic-fox-bootstrap .ic-control > textarea, .ic-form.ic-fox-bootstrap .ic-control > select { color: #555; background-color: #fff; border: 1px solid #aaa; border-radius: 4px; transition: border linear .2s, box-shadow linear .2s; }
.ic-form.ic-fox-bootstrap .ic-control > input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):hover,
.ic-form.ic-fox-bootstrap .ic-control > input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):focus,
.ic-form.ic-fox-bootstrap .ic-control > textarea:hover, .ic-form.ic-fox-bootstrap .ic-control > textarea:focus { background-color: #ffffe0; }
