/*
 * Formulario de acreditación de prensa CIA2026.
 * Mantiene el mismo lenguaje visual que mpr_contact_form.
 */

/* Encabezado + formulario. */
.accreditation-wrap {
  max-width: 900px;
  margin: 2rem auto;
  padding: 2rem 1rem;
}

/* Título. */
.accreditation-heading {
  font-family: 'Oswald', sans-serif;
  font-size: 48px;
  font-weight: 600;
  color: #3b3b3b;
  letter-spacing: 0;
  margin-bottom: .6rem;
  line-height: 58px;
}

/* Descripción. */
.accreditation-subheading {
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #3b3b3b;
  margin-bottom: .5rem;
  line-height: 28px;
}

/* Nota de campos obligatorios. */
.accreditation-mandatory {
  font-size: 13px;
  color: #3b3b3b;
  margin-bottom: 2rem;
}

.accreditation-required {
  color: #E11B22;
}

/* Tarjeta y distribución del formulario. */
.accreditation-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.25rem;
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 4px;
  padding: 2rem;
}

.accreditation-span-full,
.accreditation-form > .captcha {
  grid-column: 1 / -1;
}

.accreditation-span-full,
.accreditation-span-full a {
  overflow-wrap: break-word;
  word-break: break-word;
  max-width: 100%;
}

.accreditation-section-label {
  font-family: 'Oswald', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .04em;
  color: #949494;
  margin-bottom: -.25rem;
}
#accreditation-rgpd-title.accreditation-section-label {
  margin-top: 2rem;
  scroll-margin-top: 140px;
}

.accreditation-divider {
  width: 100%;
  border: none;
  border-top: 1px solid #E5E5E5;
  margin: .5rem 0 .75rem;
  opacity: 1;
}

/* Drupal/Bootstrap añade form-item y mb-3. */
.accreditation-field,
.accreditation-field.form-item,
.accreditation-form .form-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  margin-bottom: 0 !important;
  padding-bottom: 0;
}

/* Quita el marco nativo del navegador en fieldsets (ej. telefono movil). */
fieldset.accreditation-field {
  border: none;
  padding: 0;
  margin: 0;
  min-width: 0;
}

.accreditation-form .accreditation-field > legend {
  padding: 0;
  margin: 0;
}

/* Etiquetas. */
.accreditation-form .accreditation-field > label,
.accreditation-form .accreditation-field > .form-label,
.accreditation-form .accreditation-field > legend,
.accreditation-form .accreditation-field .fieldset-legend {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .03em;
  color: #414141;
  margin-bottom: 0;
  line-height: 1.4;
}

/* Sustituye el SVG del tema por el asterisco rojo del formulario de contacto. */
.accreditation-form label.form-required::after,
.accreditation-form legend.form-required::after,
.accreditation-form .fieldset-legend.form-required::after {
  content: ' *';
  color: #E11B22;
  margin-left: 1px;
  display: inline;
  background-image: none;
  background-repeat: unset;
  background-size: unset;
  width: auto;
  height: auto;
  vertical-align: baseline;
  font-size: inherit;
}

/* Inputs y selects. */
.accreditation-input,
.accreditation-select,
.accreditation-form .accreditation-field .form-text,
.accreditation-form .accreditation-field .form-email,
.accreditation-form .accreditation-field .form-select {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
  padding: .375rem .75rem !important;
  border: 1px solid #D3D3D3 !important;
  border-radius: .25rem !important;
  background: #fff !important;
  color: #2E2E2E !important;
  width: 100% !important;
  max-width: 100%;
  min-height: 38px;
  transition: border-color .2s, box-shadow .2s;
  outline: none !important;
  box-shadow: none !important;

  &.error,
  &.is-invalid {
    border-color: #E11B22 !important;
  }
}

.accreditation-select--multiple,
.accreditation-form select[multiple] {
  min-height: 180px;
  padding: .5rem .75rem !important;
}

.accreditation-select:not(.accreditation-select--multiple),
.accreditation-form .accreditation-field .form-select:not(.accreditation-select--multiple) {
  appearance: none;
  -webkit-appearance: none;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%232E2E2E' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right .75rem center !important;
  background-size: 16px 12px !important;
  padding-right: 2.25rem !important;
}

/* El select nativo no expone si el listbox esta abierto: usamos :focus para imitar el giro de la flecha. */
.accreditation-select:not(.accreditation-select--multiple):focus,
.accreditation-form .accreditation-field .form-select:not(.accreditation-select--multiple):focus {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%232E2E2E' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 11l6-6 6 6'/%3E%3C/svg%3E") !important;
}

.accreditation-input:focus,
.accreditation-select:focus,
.accreditation-form .accreditation-field .form-text:focus,
.accreditation-form .accreditation-field .form-email:focus,
.accreditation-form .accreditation-field .form-select:focus,
.accreditation-form .form-control:focus {
  border-color: #FFCB05 !important;
  box-shadow: 0 0 0 3px rgba(255, 203, 5, .2) !important;
  outline: none !important;
}

.accreditation-input::placeholder,
.accreditation-form .accreditation-field .form-text::placeholder,
.accreditation-form .accreditation-field .form-email::placeholder {
  color: #B4B4B4;
}

/* Radios. */
.accreditation-field--radios .fieldset-wrapper,
.accreditation-field--radios .form-radios {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem 1.5rem;
  min-height: 38px;
}

.accreditation-field--radios .form-item,
.accreditation-field--radios .form-check {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  margin: 0 !important;
}

.accreditation-field--radios input[type='radio'] {
  float: none !important;
  position: static !important;
  width: 16px;
  height: 16px;
  min-width: 16px;
  margin: 0 !important;
  accent-color: #2E2E2E;
  cursor: pointer;
}

.accreditation-field--radios label,
.accreditation-field--radios .form-check-label {
  margin: 0;
  color: #414141;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  cursor: pointer;
}

/* Texto de ayuda. */
.accreditation-form .accreditation-field .description,
.accreditation-form .accreditation-field .form-text__description,
.accreditation-form .accreditation-field small {
  font-size: 13px;
  color: #B4B4B4;
  margin-top: 0;
  line-height: 1.5;
}

/* Datepicker propio (Fecha de nacimiento). */
.accreditation-datepicker {
  position: relative;
  width: 100%;
}

.accreditation-datepicker__native {
  display: none !important;
}

.accreditation-datepicker__control {
  display: flex;
  align-items: stretch;
  width: 100%;
  border: 1px solid #D3D3D3;
  border-radius: .25rem;
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
}

.accreditation-datepicker.is-open .accreditation-datepicker__control,
.accreditation-datepicker__control:focus-within {
  border-color: #FFCB05;
  box-shadow: 0 0 0 3px rgba(255, 203, 5, .2);
}

.accreditation-datepicker__input {
  flex: 1 1 auto;
  min-width: 0;
  padding: .375rem .75rem;
  border: 0;
  border-radius: .25rem 0 0 .25rem;
  background: transparent;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  color: #2E2E2E;
  outline: none;
}

.accreditation-datepicker__input::placeholder {
  color: #B4B4B4;
}

.accreditation-datepicker__input.has-error {
  color: #E11B22;
}

.accreditation-datepicker__trigger {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 40px;
  padding: 0;
  border: 0;
  border-left: 1px solid #E5E5E5;
  background: transparent;
  color: #787878;
  cursor: pointer;
  transition: background .2s, color .2s;
}

.accreditation-datepicker__trigger:hover,
.accreditation-datepicker__trigger:focus {
  background: #F4F4F4;
  color: #2E2E2E;
  outline: none;
}

.accreditation-datepicker__panel {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  left: 0;
  display: none;
  width: 280px;
  max-width: 100%;
  padding: .75rem;
  border: 1px solid #D3D3D3;
  border-radius: .25rem;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
}

.accreditation-datepicker.is-open .accreditation-datepicker__panel {
  display: block;
}

.accreditation-datepicker__header {
  display: flex;
  align-items: center;
  gap: .25rem;
  margin-bottom: .5rem;
}

.accreditation-datepicker__nav {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid #E5E5E5;
  border-radius: .25rem;
  background: #fff;
  font-family: 'Oswald', sans-serif;
  font-size: 16px;
  line-height: 1;
  color: #2E2E2E;
  cursor: pointer;
}

.accreditation-datepicker__nav:hover,
.accreditation-datepicker__nav:focus {
  background: #F4F4F4;
  outline: none;
}

.accreditation-datepicker__select {
  flex: 1 1 auto;
  min-width: 0;
  height: 28px;
  padding: 0 .25rem;
  border: 1px solid #E5E5E5;
  border-radius: .25rem;
  background: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  color: #2E2E2E;
  cursor: pointer;
}

.accreditation-datepicker__select:focus {
  border-color: #FFCB05;
  outline: none;
}

.accreditation-datepicker__weekdays,
.accreditation-datepicker__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}

.accreditation-datepicker__weekdays {
  margin-bottom: 4px;
}

.accreditation-datepicker__weekdays span {
  padding: 4px 0;
  font-family: 'Oswald', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .04em;
  color: #949494;
  text-align: center;
}

.accreditation-datepicker__day {
  padding: 6px 0;
  border: 0;
  border-radius: .25rem;
  background: transparent;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  color: #414141;
  cursor: pointer;
  transition: background .15s, color .15s;
}

.accreditation-datepicker__day:hover,
.accreditation-datepicker__day:focus {
  background: #F4F4F4;
  outline: none;
}

.accreditation-datepicker__day.is-empty {
  background: transparent;
  cursor: default;
  pointer-events: none;
}

.accreditation-datepicker__day.is-selected {
  background: #2E2E2E;
  color: #FAFAFA;
}

/* Multiselect con buscador y checkboxes (Nacionalidad/es). */
.accreditation-multiselect {
  position: relative;
  width: 100%;
}

.accreditation-multiselect__native {
  display: none !important;
}

.accreditation-multiselect__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  width: 100%;
  min-height: 38px;
  padding: .375rem .75rem;
  border: 1px solid #D3D3D3;
  border-radius: .25rem;
  background: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  color: #2E2E2E;
  text-align: left;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s;
}

.accreditation-multiselect.is-open .accreditation-multiselect__toggle,
.accreditation-multiselect__toggle:focus {
  border-color: #FFCB05;
  box-shadow: 0 0 0 3px rgba(255, 203, 5, .2);
  outline: none;
}

.accreditation-multiselect__label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.accreditation-multiselect__label.is-empty {
  color: #B4B4B4;
}

.accreditation-multiselect__arrow {
  flex: 0 0 auto;
  width: 16px;
  height: 12px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%232E2E2E' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 12px;
  transition: transform .2s;
}

.accreditation-multiselect.is-open .accreditation-multiselect__arrow {
  transform: rotate(180deg);
}

.accreditation-multiselect__panel {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  display: none;
  border: 1px solid #D3D3D3;
  border-radius: .25rem;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
}

.accreditation-multiselect.is-open .accreditation-multiselect__panel {
  display: block;
}

.accreditation-multiselect__search {
  padding: .5rem;
  border-bottom: 1px solid #E5E5E5;
}

.accreditation-multiselect__search-input {
  width: 100%;
  padding: .375rem .75rem;
  border: 1px solid #D3D3D3;
  border-radius: .25rem;
  background: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  color: #2E2E2E;
}

.accreditation-multiselect__search-input:focus {
  border-color: #FFCB05;
  box-shadow: 0 0 0 3px rgba(255, 203, 5, .2);
  outline: none;
}

.accreditation-multiselect__list {
  max-height: 240px;
  overflow-y: auto;
  padding: .25rem 0;
}

.accreditation-multiselect__option {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: .4rem .75rem;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #414141;
  letter-spacing: normal;
  text-transform: none;
  cursor: pointer;
}

.accreditation-multiselect__option:hover {
  background: #F4F4F4;
}

.accreditation-multiselect__checkbox {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: #2E2E2E;
  cursor: pointer;
}

.accreditation-multiselect__empty {
  margin: 0;
  padding: .75rem;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  color: #B4B4B4;
}

/* Select simple de pais con bandera (Pais de nacimiento). */
.accreditation-country-select {
  position: relative;
  width: 100%;
}

.accreditation-country-select__native {
  display: none !important;
}

.accreditation-country-select__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  width: 100%;
  min-height: 38px;
  padding: .375rem .75rem;
  border: 1px solid #D3D3D3;
  border-radius: .25rem;
  background: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  color: #2E2E2E;
  text-align: left;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s;
}

.accreditation-country-select.is-open .accreditation-country-select__toggle,
.accreditation-country-select__toggle:focus {
  border-color: #FFCB05;
  box-shadow: 0 0 0 3px rgba(255, 203, 5, .2);
  outline: none;
}

.accreditation-country-select__label {
  display: flex;
  align-items: center;
  gap: 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.accreditation-country-select__label.is-empty {
  color: #B4B4B4;
}

.accreditation-country-select__flag {
  flex: 0 0 auto;
  width: 20px;
  height: 14px;
  border-radius: 2px;
  background-size: cover;
}

.accreditation-country-select__arrow {
  flex: 0 0 auto;
  width: 16px;
  height: 12px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%232E2E2E' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 12px;
  transition: transform .2s;
}

.accreditation-country-select.is-open .accreditation-country-select__arrow {
  transform: rotate(180deg);
}

.accreditation-country-select__panel {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  right: auto;
  left: 0;
  display: none;
  width: max-content;
  min-width: 260px;
  max-width: 90vw;
  border: 1px solid #D3D3D3;
  border-radius: .25rem;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
}

.accreditation-country-select.is-open .accreditation-country-select__panel {
  display: block;
}

.accreditation-country-select__search {
  padding: .5rem;
  border-bottom: 1px solid #E5E5E5;
}

.accreditation-country-select__search-input {
  width: 100%;
  padding: .375rem .5rem;
  border: 1px solid #D3D3D3;
  border-radius: .25rem;
  font-family: 'Montserrat', sans-serif;
  font-size: .875rem;
}

.accreditation-country-select__search-input:focus {
  border-color: #FFCB05;
  box-shadow: 0 0 0 3px rgba(255, 203, 5, .2);
  outline: none;
}

.accreditation-country-select__option[hidden] {
  display: none;
}

.accreditation-country-select__list {
  max-height: 320px;
  overflow-y: auto;
  padding: .25rem 0;
}

.accreditation-country-select__option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: .4rem .75rem;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  color: #414141;
  cursor: pointer;
}

.accreditation-country-select__option:hover,
.accreditation-country-select__option:focus {
  background: #F4F4F4;
  outline: none;
}

.accreditation-country-select__option.is-selected {
  background: #FFF8DD;
  font-weight: 600;
}

/* Fieldset de telefono (prefijo + numero unidos como un unico control). */
.accreditation-field--phone .fieldset-wrapper {
  display: flex;
  flex-direction: row;
  gap: 0;
}

.accreditation-field--phone .fieldset-wrapper > .js-form-item,
.accreditation-field--phone .fieldset-wrapper > .form-item {
  margin-bottom: 0 !important;
}

.accreditation-field--phone .fieldset-wrapper > .js-form-item:first-child,
.accreditation-field--phone .fieldset-wrapper > .form-item:first-child {
  flex: 0 0 92px;
}

.accreditation-field--phone .fieldset-wrapper > .js-form-item:last-child,
.accreditation-field--phone .fieldset-wrapper > .form-item:last-child {
  flex: 1 1 auto;
  min-width: 0;
}

.accreditation-field--phone select.accreditation-select {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  border-right: 1px solid #D3D3D3 !important;
  background-position: right .5rem center !important;
  background-size: 14px 10px !important;
  padding-right: 1.75rem !important;
}

.accreditation-field--phone input.accreditation-input {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

/* El select nativo esta oculto: el widget debe pegarse igual al numero. */
.accreditation-field--phone .accreditation-country-select__toggle {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  gap: .25rem;
  padding-left: .5rem;
  padding-right: .5rem;
}

/* Cargas de archivos. */
.accreditation-upload {
  padding: 1rem;
  background: #F4F4F4;
  border: 1px solid #E5E5E5;
  border-radius: 2px;
}

.accreditation-upload .form-managed-file,
.accreditation-upload .js-form-managed-file {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  width: 100%;
}

.accreditation-upload input[type='file'] {
  min-width: 0;
  max-width: 100%;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  color: #2E2E2E;
  border: 1px solid #D3D3D3;
  border-radius: .25rem;
  background: #fff;
  padding: .25rem;

  &.error,
  &.is-invalid {
    border-color: #E11B22 !important;
  }
}

.accreditation-upload input[type='file']:focus {
  border-color: #FFCB05;
  box-shadow: 0 0 0 3px rgba(255, 203, 5, .2);
  outline: none;
}

.accreditation-upload input[type='file']::file-selector-button {
  margin-right: .75rem;
  padding: .5rem .75rem;
  border: 0;
  border-right: 1px solid #D3D3D3;
  background: #fff;
  color: #2E2E2E;
  font-family: 'Oswald', sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

.accreditation-upload input[type='file']::file-selector-button:hover {
  background: #E5E5E5;
}

.accreditation-upload input[type='submit'],
.accreditation-upload button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: .5rem 1rem !important;
  border: 1px solid #2E2E2E !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #2E2E2E !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600;
  line-height: 1;
  box-shadow: none !important;
}

.accreditation-upload input[type='submit']:hover,
.accreditation-upload input[type='submit']:focus,
.accreditation-upload button:hover,
.accreditation-upload button:focus {
  background: #2E2E2E !important;
  color: #FAFAFA !important;
  outline: none;
}

.accreditation-upload .file,
.accreditation-upload .file-link,
.accreditation-upload .messages {
  flex-basis: 100%;
}

/* El fichero se sube solo al seleccionarlo (Drupal.behaviors.fileAutoUpload), no hace falta el boton. */
.accreditation-upload input[data-drupal-selector$='upload-button'] {
  display: none !important;
}

/* Bloque de privacidad. */
.accreditation-privacy {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 10px !important;
  min-height: 48px !important;
  box-sizing: border-box;
  padding: .25rem .875rem !important;
  background: #F4F4F4;
  border-radius: 2px;
  border: 1px solid #E5E5E5;
  margin: 0 !important;
}

.accreditation-privacy input[type='checkbox'],
.accreditation-privacy .form-check-input {
  float: none !important;
  position: static !important;
  width: 15px;
  height: 15px;
  min-width: 15px;
  margin: 0 !important;
  accent-color: #2E2E2E;
  flex-shrink: 0;
  cursor: pointer;
}

.accreditation-privacy label,
.accreditation-privacy .form-check-label {
  font-size: 13px;
  font-weight: 400;
  color: #323131;
  line-height: 1.4;
  text-transform: none;
  letter-spacing: normal;
  margin-bottom: 0;

  a {
    color: #323131;
    text-decoration: underline;
  }
}

/* CAPTCHA, si se configura para el form ID del módulo. */
.accreditation-form > .captcha {
  padding: 0;
  margin: 0;
}

.accreditation-form .captcha legend {
  font-family: 'Oswald', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #949494;
  letter-spacing: .04em;
  padding: 0;
  float: none;
  width: 100%;
}

.accreditation-form .captcha label,
.accreditation-form .captcha .form-label {
  font-size: 14px;
  font-weight: 600;
  color: #323131;
  letter-spacing: .03em;
  text-transform: none;
}

.accreditation-form .captcha .description,
.accreditation-form .captcha small.description,
.accreditation-form .captcha .captcha__description {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: #323131 !important;
}

/* Tipografia del sitio tambien en etiquetas y avisos. */
.accreditation-form,
.accreditation-form label,
.accreditation-error {
  font-family: Montserrat, sans-serif;
}

/* Margen al desplazar hasta un campo con error, para que no quede pegado arriba. */
.accreditation-form .js-form-item,
.accreditation-form .js-form-wrapper,
.accreditation-form fieldset,
.accreditation-form input,
.accreditation-form select,
.accreditation-form textarea {
  scroll-margin-top: 140px;
}

/* Aviso de validación en cliente. */
.accreditation-error,
.accreditation-multiselect__error,
.accreditation-country-select__error,
.accreditation-datepicker__error {
  display: block;
  margin-top: .375rem;
  color: #C10E21;
  font-size: 13px;
  line-height: 1.4;
}

/* Aviso informativo (no bloquea el envio) al llegar al maxlength. */
.accreditation-limit-notice {
  display: block;
  margin-top: .375rem;
  /* Mismo tono que el amarillo de foco (#FFCB05), oscurecido para ~4.6:1 sobre blanco (AA). */
  color: #8F7100;
  font-size: 13px;
  line-height: 1.4;
}

.accreditation-multiselect__error[hidden],
.accreditation-country-select__error[hidden],
.accreditation-datepicker__error[hidden] {
  display: none;
}

.accreditation-field--error input:not([type='checkbox']),
.accreditation-field--error select,
.accreditation-field--error textarea,
.accreditation-multiselect__toggle.has-error,
.accreditation-country-select__toggle.has-error {
  border-color: #C10E21 !important;
}

/* Pie y botón de envío. */
.accreditation-footer {
  display: flex !important;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 24px;
  margin: 0 !important;
  padding: 0 !important;
}

.accreditation-footer > .accreditation-error {
  flex: 1 0 100%;
  padding-left: 15px;
}

.accreditation-footer .accreditation-privacy {
  flex: 1 1 auto;
  margin: 0 !important;
}

input.accreditation-btn[type='submit'],
.accreditation-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 200px;
  max-width: 100%;
  height: 48px;
  padding: 12px 24px !important;
  border: 2px solid #2E2E2E !important;
  background: transparent !important;
  color: #2E2E2E !important;
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600;
  font-size: 16px !important;
  line-height: 1;
  cursor: pointer;
  transition: background .3s ease-in-out, color .3s ease-in-out !important;
  border-radius: 0 !important;
  appearance: none;
  -webkit-appearance: none;
  text-align: center;
  box-shadow: none !important;
}

input.accreditation-btn[type='submit']:hover,
input.accreditation-btn[type='submit']:focus,
.accreditation-btn:hover,
.accreditation-btn:focus {
  background: #2E2E2E !important;
  color: #FAFAFA !important;
  outline: none;
  box-shadow: none !important;
}

/* Errores de validación. */
.accreditation-form .form-item--error .accreditation-input,
.accreditation-form .form-item--error .accreditation-select,
.accreditation-form .form-item--error .form-text,
.accreditation-form .form-item--error .form-email,
.accreditation-form .form-item--error .form-select,
.accreditation-form .form-item--error input[type='file'] {
  border-color: #E11B22 !important;
}

.accreditation-form .form-item--error-message {
  color: #E11B22;
  font-size: 12px;
  margin-top: 4px;
}

/* Texto RGPD bajo el formulario. */
.accreditation-rgpd {
  margin-top: 2rem;
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #3b3b3b;
  line-height: 1.7;
}

.accreditation-rgpd p {
  margin: 0 0 .75rem;
}

.accreditation-rgpd p:last-child {
  margin-bottom: 0;
}

.accreditation-rgpd ul {
  margin: 0 0 .75rem;
  padding-left: 2rem;
  list-style: disc;
}

.accreditation-rgpd li {
  margin-bottom: .5rem;
  padding-left: .25rem;
}

.accreditation-rgpd a {
  color: #3b3b3b;
  text-decoration: underline;
  /* Las URLs largas no tienen espacios: sin esto desbordan en movil. */
  overflow-wrap: anywhere;
  word-break: break-word;
}

.accreditation-rgpd a:hover,
.accreditation-rgpd a:focus {
  color: #E11B22;
}

/* Oculta el título que añade la ruta para evitar duplicarlo. */
.mpr-accreditation-form-page #block-mpr-cumbre-iberoamericana-page-title {
  display: none;
}

/* Oculta el título del mensaje de error genérico */
#message-error-title {
  display: none;
}

/* Responsive. */
@media (max-width: 600px) {
  .accreditation-form {
    grid-template-columns: minmax(0, 1fr);
    padding: 1.25rem;
  }

  .accreditation-wrap {
    padding: 1.5rem 1rem;
  }

  .accreditation-field--radios .fieldset-wrapper,
  .accreditation-field--radios .form-radios {
    align-items: flex-start;
    flex-direction: column;
    gap: .5rem;
  }

  .accreditation-upload .form-managed-file,
  .accreditation-upload .js-form-managed-file {
    align-items: stretch;
    flex-direction: column;
  }

  .accreditation-upload input[type='file'] {
    flex-basis: auto;
  }

  .accreditation-field--phone .fieldset-wrapper {
    flex-direction: column;
    gap: .5rem;
  }

  .accreditation-field--phone .fieldset-wrapper > .js-form-item:first-child,
  .accreditation-field--phone .fieldset-wrapper > .form-item:first-child {
    flex: 1 1 auto;
  }

  .accreditation-field--phone select.accreditation-select,
  .accreditation-field--phone input.accreditation-input {
    border-radius: .25rem !important;
    border: 1px solid #D3D3D3 !important;
  }

  .accreditation-field--phone .accreditation-country-select__toggle {
    border-radius: .25rem;
  }

  .accreditation-upload input[type='file'],
  .accreditation-upload input[type='submit'],
  .accreditation-upload button,
  input.accreditation-btn[type='submit'],
  .accreditation-btn {
    width: 100%;
  }

  .accreditation-footer {
    flex-direction: column;
    align-items: stretch;
    justify-content: stretch;
  }
}
