/* Palette commune des formulaires OS2026. */
:root{--os-form-accent:#245747;--os-form-text:#294039;--os-form-background:#edf4f0;--os-form-border:#c6d8cf;--os-form-input-border:#749382;--os-form-white:#fff;--os-form-selected:#dcebe3;--os-form-accent-dark:#193e32;--os-form-muted:#4b6056;--os-form-error:#902e35;--os-form-caption:#315b4c;--os-form-error-border:#b87575;--os-form-error-background:#faeeee}
/* Présentation commune des formulaires RSForm génériques ; les inscriptions
   RSEvents et le formulaire d'adhésion conservent leurs règles propres. */
:where(form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0))) {
  box-sizing: border-box;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 36px;
  color: var(--os-form-text);
  font-size: 16px;
  line-height: 1.55;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) > h2 {
  margin: 0 0 24px;
  color: var(--os-form-accent);
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .formContainer {
  box-sizing: border-box;
  width: 100%;
  padding: 26px;
  border: 1px solid var(--os-form-border);
  border-radius: 12px;
  background: var(--os-form-background);
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) :is(.formRow,.formSpan12) {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0;
  float: none;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .rsform-block {
  min-width: 0;
  margin: 0 0 20px;
  padding: 0;
  float: none;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .rsform-block:last-child { margin-bottom: 0; }
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .formControlLabel {
  display: block;
  width: auto;
  float: none;
  margin: 0 0 7px;
  padding: 0;
  color: var(--os-form-text);
  font-size: 16px;
  line-height: 1.5;
  font-weight: 600;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) :is(.formControls,.formBody) {
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  float: none;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) :is(input.rsform-input-box,textarea.rsform-text-box,select.rsform-select-box) {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  height: auto;
  margin: 0;
  padding: 11px 13px;
  border: 1px solid var(--os-form-input-border);
  border-radius: 7px;
  background: var(--os-form-white);
  box-shadow: none;
  color: var(--os-form-text);
  font: inherit;
  font-size: 16px;
  line-height: 1.5;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) textarea.rsform-text-box { min-height: 120px; resize: vertical; }
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) select.rsform-select-box { padding-right: 32px; }
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) :is(input.rsform-radio,input.rsform-checkbox) {
  appearance: auto;
  position: static;
  width: 19px;
  height: 19px;
  min-height: 0;
  margin: 0;
  flex: none;
  accent-color: var(--os-form-accent);
  cursor: pointer;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .rsfp-fieldset {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .rsfp-fieldset > p { margin: 0; }
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) :is(.rsfp-fieldset > label,.rsfp-fieldset > p > label) {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  min-height: 46px;
  margin: 0;
  padding: 9px 15px;
  border: 1px solid var(--os-form-input-border);
  border-radius: 7px;
  background: var(--os-form-white);
  color: var(--os-form-text);
  font-size: 16px;
  line-height: 1.5;
  cursor: pointer;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) :is(.rsfp-fieldset > label,.rsfp-fieldset > p > label):has(input:checked) {
  background: var(--os-form-selected);
  border-color: var(--os-form-accent);
  color: var(--os-form-accent-dark);
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .formDescription { margin: 6px 0 0; color: var(--os-form-muted); font-size: 14px; line-height: 1.5; }
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .formDescription:empty { display: none; }
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .formValidation .formError { display: block; margin-top: 7px; color: var(--os-form-error); font-size: 14px; font-weight: 600; line-height: 1.5; }
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .rsform-error { border-color: var(--os-form-error)!important; }
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) button.rsform-submit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 48px;
  max-width: 100%;
  margin: 0;
  padding: 12px 24px;
  border: 1px solid var(--os-form-accent);
  border-radius: 8px;
  background: var(--os-form-accent);
  box-shadow: none;
  color: var(--os-form-white);
  text-shadow: none;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  text-transform: uppercase;
  white-space: normal;
  cursor: pointer;
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) button.rsform-submit-button:hover { background: var(--os-form-accent-dark); border-color: var(--os-form-accent-dark); color: var(--os-form-white); }
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) :is(input,textarea,select,button,a):focus-visible { outline: 3px solid var(--os-form-accent); outline-offset: 3px; }
@media(max-width:650px) {
  form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .formContainer { padding: 18px; }
  form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) button.rsform-submit-button { width: 100%; }
}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .formControlLabel{text-align:left}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .rsform-block{padding:0!important}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) :is(input.rsform-input-box,textarea.rsform-text-box,select.rsform-select-box){display:block}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .formValidation{display:block}
@media(min-width:651px){form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .formSpan12{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .rsform-block{grid-column:1/-1;margin:0}form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)):not(:has(#rsform_5_page_0)) .rsform-type-textbox{grid-column:auto}}

/* Choix de présentation des groupes de cases RSForm hors inscriptions RSEvents. */





/* Pour une case unique, le texte de choix reste dans le formulaire mais n’est pas répété à l’écran. */



/* Fenêtres de documents Regular Labs, sur tout le site. */
/* Existing Regular Labs dialog: above the fixed menu, with a separate persistent close bar. */
[data-modals-element="modal"][data-modals-active-type="iframe"]{z-index:11000;--main-margin:0px;--close-button-size:44px}
[data-modals-element="modal"][data-modals-active-type="iframe"] [data-modals-element="overlay"]{backdrop-filter:none;background:rgba(21,39,31,.65)}
[data-modals-element="modal"][data-modals-active-type="iframe"] [data-modals-element="container"]{position:absolute;inset:24px;width:calc(100% - 48px);max-width:960px;height:calc(100% - 48px);max-height:840px;margin:auto;padding:0;box-sizing:border-box;border:1px solid var(--os-form-border);border-radius:14px;background:var(--os-form-white);overflow:hidden;display:flex;flex-direction:column}
[data-modals-element="modal"][data-modals-active-type="iframe"] [data-modals-element="main"]{box-sizing:border-box;width:100%;height:100%;min-height:0;margin:0;padding:64px 0 0;flex:1;max-width:100%;overflow:hidden}
[data-modals-element="modal"][data-modals-active-type="iframe"] :is([data-modals-element="center"],[data-modals-element="slides"],[data-modals-element="slide"],[data-modals-element="slide-container"],[data-modals-element="slide-content"],[data-modals-element="slide-content-inner"]){box-sizing:border-box;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;min-height:0;margin:0;padding:0;border-radius:0}
[data-modals-element="modal"][data-modals-active-type="iframe"] [data-modals-element="slide-content"]{background:var(--os-form-white);overflow:hidden}
[data-modals-element="modal"][data-modals-active-type="iframe"] iframe{display:block;border:0;width:100%;height:100%}
[data-modals-element="modal"][data-modals-active-type="iframe"] [data-modals-element="close-bar"]{position:absolute;inset:0 0 auto;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;height:64px;padding:8px 12px;box-sizing:border-box;border-bottom:1px solid var(--os-form-border);background:var(--os-form-background);z-index:3}
[data-modals-element="modal"][data-modals-active-type="iframe"] [data-modals-element="close-bar"]:before{content:"Lecture du document";margin-right:auto;color:var(--os-form-accent);font-size:15px;font-weight:600}
[data-modals-element="modal"][data-modals-active-type="iframe"] button[data-modals-element="close"]{position:static;display:block;width:116px;height:44px;min-height:44px;padding:0 12px 0 32px;border:1px solid var(--os-form-accent);border-radius:7px;background-color:var(--os-form-accent);background-size:16px 16px;background-position:12px center;background-repeat:no-repeat;color:var(--os-form-white);opacity:1;filter:none;cursor:pointer}
[data-modals-element="modal"][data-modals-active-type="iframe"] button[data-modals-element="close"]:after{content:"Fermer";color:var(--os-form-white);font-size:15px;font-weight:600;line-height:42px}
[data-modals-element="modal"][data-modals-active-type="iframe"] button[data-modals-element="close"]:focus-visible{outline:3px solid var(--os-form-accent);outline-offset:3px}
@media(max-width:650px){[data-modals-element="modal"][data-modals-active-type="iframe"] [data-modals-element="container"]{inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);max-height:none;border-radius:12px}[data-modals-element="modal"][data-modals-active-type="iframe"] [data-modals-element="close-bar"]:before{font-size:13px}}


/* Présentation de la case unique facultative, hors RSEvents et adhésion. */
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)) .os-form-choice-confirmation{display:flex;align-items:flex-start;gap:12px;padding:15px 16px;border:1px solid var(--os-form-border);border-radius:8px;background:var(--os-form-white)}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)) .os-form-choice-confirmation>input{margin-top:3px;flex:none}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)) .os-form-choice-text{min-width:0;flex:1}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)) .os-form-choice-label{display:block;min-height:24px;font-size:16px;line-height:1.55;font-weight:400;color:var(--os-form-text)}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)) .os-form-choice-label>label{display:inline;margin:0;font:inherit;cursor:pointer}
form#userForm.formResponsive:not(.os-registration):not(:has(#RSEProTickets)) .os-form-choice-confirmation:has(input:focus-visible){outline:3px solid var(--os-form-accent);outline-offset:3px}
/* Badge de protection conservé, présentation discrète comme pour les inscriptions. */
form#userForm.formResponsive:not(:has(#RSEProTickets)) .grecaptcha-badge{filter:grayscale(1)}

/* Alignement de la case avec la première ligne du texte. */
form#userForm :is(.os-form-choice-confirmation,.os-registration-consent)>input.rsform-checkbox[data-os-style="confirmation"]{margin-top:3px!important}

form#userForm:has(#rsform_4_page_0) .os-contact-required-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Téléphone RSForm : laisser la place au choix du pays. */
form#userForm:has(#rsform_4_page_0) .rsform-block-contact-telephone .iti{width:100%}
form#userForm:has(#rsform_4_page_0) .rsform-block-contact-telephone .iti--allow-dropdown #contact_telephone{padding-left:var(--iti-selected-country-arrow-padding,52px)!important}
@media(min-width:651px){form#userForm:has(#rsform_4_page_0) .rsform-block-contact-telephone{grid-column:auto!important}}
