/**
 * Rediseño UX/UI — Webforms de solicitud Coninsa
 *
 * Scope: aplica solo a formularios con la clase .webform--solicitud
 * Cubre: solicitud_de_vinculacion_pen, _pej, y los 4 de desvinculación.
 * No afecta otros webforms del sitio.
 */

/* ================================================================
 *  Variables de scope
 * ================================================================ */
.webform--solicitud {
  --sol-blue: #27387e;
  --sol-blue-dark: #1f2f6a;
  --sol-blue-soft: #eef2fb;
  --sol-green: #49a356;
  --sol-green-dark: #2f6e6a;
  --sol-gray-50: #f7f9fc;
  --sol-gray-100: #eef1f5;
  --sol-gray-200: #e1e6ef;
  --sol-gray-300: #d7dde7;
  --sol-gray-400: #94a3b8;
  --sol-gray-600: #5b667a;
  --sol-gray-800: #1f2937;
  --sol-card-bg: #ffffff;
  --sol-card-shadow: 0 16px 40px rgba(15, 23, 42, 0.07);
  --sol-radius-card: 16px;
  --sol-radius-input: 10px;
  --sol-radius-pill: 999px;
  --sol-error: #ef4444;
  --sol-error-bg: #fff5f5;
  --sol-error-text: #b91c1c;
  --sol-success: #16a34a;
  --sol-info-bg: #f0f4ff;
  --sol-focus-ring: 0 0 0 3px rgba(39, 56, 126, 0.18);
  --sol-font: "Outfit", "Montserrat", "Inter", "Helvetica", sans-serif;
}

/* ================================================================
 *  Layout shell — neutraliza estilos heredados
 * ================================================================ */
.webform--solicitud,
.webform--solicitud * {
  box-sizing: border-box;
}

/* Anula el "card" del legacy webform-styles cuando está activo el rediseño */
.webform-submission-form.webform--solicitud {
  max-width: none;
  margin: 0 auto;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
  font-family: var(--sol-font);
  color: var(--sol-gray-800);
}

/* Wrapper que contiene sidebar + formulario */
.webform--solicitud .sol-shell {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 16px 120px;
}

@media (min-width: 1024px) {
  .webform--solicitud .sol-shell {
    grid-template-columns: 280px 1fr;
    gap: 32px;
    padding: 32px 24px 64px;
  }
}

/* ================================================================
 *  Sidebar — Stepper desktop
 * ================================================================ */
.webform--solicitud .sol-sidebar {
  display: none;
}

@media (min-width: 1024px) {
  .webform--solicitud .sol-sidebar {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: sticky;
    top: 88px;
    align-self: start;
    background: var(--sol-card-bg);
    border: 1px solid var(--sol-gray-200);
    border-radius: var(--sol-radius-card);
    padding: 20px 18px;
    box-shadow: var(--sol-card-shadow);
    max-height: calc(100vh - 110px);
    overflow-y: auto;
  }
}

.webform--solicitud .sol-sidebar__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--sol-blue);
  letter-spacing: -0.01em;
}

.webform--solicitud .sol-sidebar__subtitle {
  margin: 0 0 4px;
  font-size: 0.8rem;
  color: var(--sol-gray-600);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.webform--solicitud .sol-stepper {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  counter-reset: sol-step;
}

.webform--solicitud .sol-stepper li {
  position: relative;
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 12px;
  align-items: flex-start;
  padding: 10px 0;
}

.webform--solicitud .sol-stepper li:not(:last-child)::after {
  content: '';
  position: absolute;
  left: 17px;
  top: 44px;
  bottom: -4px;
  width: 2px;
  background: var(--sol-gray-200);
  border-radius: 2px;
}

.webform--solicitud .sol-stepper li.is-completed:not(:last-child)::after {
  background: var(--sol-green);
}

.webform--solicitud .sol-stepper__bullet {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--sol-card-bg);
  border: 2px solid var(--sol-gray-300);
  color: var(--sol-gray-600);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.9rem;
  transition: all 0.2s ease;
  flex-shrink: 0;
  z-index: 1;
}

.webform--solicitud .sol-stepper li.is-active .sol-stepper__bullet {
  border-color: var(--sol-blue);
  background: var(--sol-blue-soft);
  color: var(--sol-blue);
  box-shadow: 0 0 0 4px rgba(39, 56, 126, 0.08);
}

.webform--solicitud .sol-stepper li.is-completed .sol-stepper__bullet {
  background: var(--sol-green);
  border-color: var(--sol-green);
  color: #fff;
}

.webform--solicitud .sol-stepper__bullet svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 3;
  fill: none;
}

.webform--solicitud .sol-stepper__label {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-top: 6px;
}

.webform--solicitud .sol-stepper__title {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--sol-gray-800);
  line-height: 1.3;
}

.webform--solicitud .sol-stepper li.is-active .sol-stepper__title {
  color: var(--sol-blue);
}

.webform--solicitud .sol-stepper li.is-pending .sol-stepper__title {
  color: var(--sol-gray-600);
}

.webform--solicitud .sol-stepper__hint {
  font-size: 0.75rem;
  color: var(--sol-gray-600);
}

.webform--solicitud .sol-sidebar__help {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--sol-gray-200);
  font-size: 0.8rem;
  color: var(--sol-gray-600);
  line-height: 1.5;
}

.webform--solicitud .sol-sidebar__help a {
  color: var(--sol-blue);
  font-weight: 600;
  text-decoration: none;
}

.webform--solicitud .sol-sidebar__help a:hover {
  text-decoration: underline;
}

/* ================================================================
 *  Mobile/tablet stepper
 * ================================================================ */
.webform--solicitud .sol-mobile-bar {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: var(--sol-card-bg);
  border: 1px solid var(--sol-gray-200);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 16px;
  position: sticky;
  top: 0;
  z-index: 30;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
}

@media (min-width: 1024px) {
  .webform--solicitud .sol-mobile-bar {
    display: none;
  }
}

.webform--solicitud .sol-mobile-bar__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
}

.webform--solicitud .sol-mobile-bar__step {
  font-weight: 700;
  color: var(--sol-blue);
}

.webform--solicitud .sol-mobile-bar__title {
  font-weight: 600;
  color: var(--sol-gray-800);
}

.webform--solicitud .sol-mobile-bar__pct {
  font-weight: 700;
  color: var(--sol-gray-600);
  font-size: 0.8rem;
}

.webform--solicitud .sol-mobile-bar__progress {
  height: 6px;
  background: var(--sol-gray-100);
  border-radius: 999px;
  overflow: hidden;
}

.webform--solicitud .sol-mobile-bar__fill {
  height: 100%;
  background: linear-gradient(90deg, var(--sol-blue), var(--sol-green));
  border-radius: 999px;
  transition: width 0.3s ease;
}

/* ================================================================
 *  Tarjeta del formulario
 * ================================================================ */
.webform--solicitud .sol-card {
  background: var(--sol-card-bg);
  border: 1px solid var(--sol-gray-200);
  border-radius: var(--sol-radius-card);
  box-shadow: var(--sol-card-shadow);
  padding: 24px 20px;
}

@media (min-width: 768px) {
  .webform--solicitud .sol-card {
    padding: 32px 36px;
  }
}

/* Cabecera del paso (icono + título + subtítulo) */
.webform--solicitud .sol-step-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-bottom: 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--sol-gray-200);
}

.webform--solicitud .sol-step-header__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--sol-blue-soft);
  color: var(--sol-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.webform--solicitud .sol-step-header__icon svg {
  width: 24px;
  height: 24px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.webform--solicitud .sol-step-header__title {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--sol-blue);
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.webform--solicitud .sol-step-header__subtitle {
  margin: 2px 0 0;
  font-size: 0.85rem;
  color: var(--sol-gray-600);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}

/* Oculta título h1/h2 nativo del webform cuando hay step header */
.webform--solicitud .sol-card>h1,
.webform--solicitud .sol-card>h2:first-of-type {
  display: none;
}

/* Oculta el progress bar nativo (lo reemplazamos con sidebar/mobile) */
.webform--solicitud .webform-progress {
  display: none !important;
}

/* ================================================================
 *  Secciones (webform_section)
 * ================================================================ */
.webform--solicitud .webform-section {
  border: none;
  background: transparent;
  padding: 0;
  margin: 0 0 28px;
}

.webform--solicitud .webform-section-title,
.webform--solicitud .webform-section>legend {
  display: block;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--sol-blue);
  margin: 0 0 16px;
  padding: 4px 0 4px 14px;
  border-left: 4px solid var(--sol-green);
  border-radius: 2px;
  background: transparent;
  text-transform: none;
  letter-spacing: 0;
}

.webform--solicitud .webform-section-title::before {
  display: none !important;
}

/* Info card (descripciones largas dentro de secciones) */
.webform--solicitud .webform-section>.description,
.webform--solicitud .webform-section-wrapper>.description {
  background: var(--sol-info-bg);
  border-radius: 10px;
  padding: 12px 16px;
  color: var(--sol-gray-800);
  font-size: 0.9rem;
  line-height: 1.55;
  margin-bottom: 16px;
  border-left: 3px solid var(--sol-blue);
}

/* ================================================================
 *  Grid de campos (12 columnas)
 * ================================================================ */
.webform--solicitud .webform-flexbox,
.webform--solicitud .webform-section-wrapper>div:not(.description):not(.webform-section-title-wrapper) {
  grid-template-columns: repeat(12, 1fr);
  gap: 16px 20px;
}

.webform--solicitud .form-item {
  grid-column: span 12;
  margin: 0;
}

/* Spans por nombre de campo (campos cortos: 6 cols) */
@media (min-width: 720px) {

  .webform--solicitud .form-item.js-form-item-tipo-de-documento,
  .webform--solicitud .form-item.js-form-item-numero-de-documento,
  .webform--solicitud .form-item.js-form-item-tipo-de-documento-2,
  .webform--solicitud .form-item.js-form-item-numero-de-identificacion,
  .webform--solicitud .form-item.js-form-item-fecha-de-expedicion,
  .webform--solicitud .form-item.js-form-item-pais-de-expedicion,
  .webform--solicitud .form-item.js-form-item-ciudad-de-expedicion,
  .webform--solicitud .form-item.js-form-item-fecha-de-nacimiento,
  .webform--solicitud .form-item.js-form-item-lugar-de-nacimiento,
  .webform--solicitud .form-item.js-form-item-numero-celular,
  .webform--solicitud .form-item.js-form-item-correo-electronico,
  .webform--solicitud .form-item.js-form-item-profesion,
  .webform--solicitud .form-item.js-form-item-sociedad,
  .webform--solicitud .form-item.js-form-item-nit,
  .webform--solicitud .form-item.js-form-item-nombre-completo-representante-legal,
  .webform--solicitud .form-item.js-form-item-numero-de-identificacion-representante-legal,
  .webform--solicitud .form-item.js-form-item-actividad-economica,
  .webform--solicitud .form-item.js-form-item-codigo-de-actividad-ciuu,
  .webform--solicitud .form-item.js-form-item-activos,
  .webform--solicitud .form-item.js-form-item-pasivos,
  .webform--solicitud .form-item.js-form-item-patrimonio,
  .webform--solicitud .form-item.js-form-item-ingresos-mensuales,
  .webform--solicitud .form-item.js-form-item-egresos-mensuales,
  .webform--solicitud .form-item.js-form-item-otros-ingresos-mensuales,
  .webform--solicitud .form-item.js-form-item-pais-donde-tributa,
  .webform--solicitud .form-item.js-form-item-nombre-completo-colaborador,
  .webform--solicitud .form-item.js-form-item-relacion-o-parentesco,
  .webform--solicitud .form-item.js-form-item-nacionalidad,
  .webform--solicitud .form-item.js-form-item-tipo-y-numero-de-identificacion {
    grid-column: span 6;
  }
}

/* ================================================================
 *  Inputs
 * ================================================================ */
.webform--solicitud .form-item label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--sol-gray-800);
  margin-bottom: 6px;
  line-height: 1.4;
}

.webform--solicitud .form-item label .form-required {
  color: var(--sol-green);
  margin-left: 2px;
}

.webform--solicitud .form-item label .form-required::after {
  content: '*';
  color: var(--sol-green);
  font-weight: 700;
}

.webform--solicitud input[type="text"],
.webform--solicitud input[type="email"],
.webform--solicitud input[type="tel"],
.webform--solicitud input[type="number"],
.webform--solicitud input[type="date"],
.webform--solicitud input[type="password"],
.webform--solicitud input[type="search"],
.webform--solicitud select,
.webform--solicitud textarea {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1px solid var(--sol-gray-300);
  border-radius: var(--sol-radius-input);
  background: #fff;
  color: var(--sol-gray-800);
  font-family: var(--sol-font);
  font-size: 0.95rem;
  line-height: 1.4;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  appearance: none;
  -webkit-appearance: none;
}

.webform--solicitud textarea {
  height: auto;
  min-height: 120px;
  padding: 12px 14px;
  resize: vertical;
}

.webform--solicitud select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2327387e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}

.webform--solicitud input::placeholder,
.webform--solicitud textarea::placeholder {
  color: var(--sol-gray-400);
}

.webform--solicitud input:focus,
.webform--solicitud select:focus,
.webform--solicitud textarea:focus {
  outline: none;
  border-color: var(--sol-blue);
  box-shadow: var(--sol-focus-ring);
}

.webform--solicitud .form-item .description {
  margin-top: 6px;
  color: var(--sol-gray-600);
  font-size: 0.82rem;
  line-height: 1.5;
}

.webform--solicitud .form-item .description::before {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 6px;
  vertical-align: -2px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2327387e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E") no-repeat center;
}

/* Anula el legacy info "i" */
.webform--solicitud .form-item .description::before {
  background-color: transparent;
  border-radius: 0;
  color: transparent;
  font-size: 0;
}

/* ================================================================
 *  Toggle pills Sí/No (radios)
 * ================================================================ */
.webform--solicitud .form-radios {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
  max-width: 360px;
}

.webform--solicitud .form-type-radio {
  margin: 0;
}

.webform--solicitud .form-type-radio label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 8px 16px;
  background: var(--sol-gray-50);
  border: 1.5px solid var(--sol-gray-300);
  border-radius: var(--sol-radius-pill);
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--sol-gray-600);
  cursor: pointer;
  transition: all 0.15s ease;
  position: relative;
  margin: 0;
  user-select: none;
}

.webform--solicitud .form-type-radio label:hover {
  border-color: var(--sol-blue);
  color: var(--sol-blue);
  background: var(--sol-blue-soft);
}

/* Esconde el input radio nativo, mantiene la accesibilidad */
.webform--solicitud .form-type-radio input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
}

.webform--solicitud .form-type-radio input[type="radio"]:checked+label,
.webform--solicitud .form-type-radio:has(input:checked) label {
  background: var(--sol-blue);
  border-color: var(--sol-blue);
  color: #fff;
  box-shadow: 0 6px 14px rgba(39, 56, 126, 0.22);
}

.webform--solicitud .form-type-radio input[type="radio"]:focus-visible+label,
.webform--solicitud .form-type-radio:has(input:focus-visible) label {
  box-shadow: var(--sol-focus-ring);
}

/* Si label viene antes del input (orden inverso en Drupal) */
.webform--solicitud .form-type-radio label+input[type="radio"]:checked~label {
  background: var(--sol-blue);
}

/* Checkbox styling (reused for "I accept") */
.webform--solicitud .form-type-checkbox label,
.webform--solicitud .sol-accept-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.92rem;
  color: var(--sol-gray-800);
  cursor: pointer;
  line-height: 1.5;
  font-weight: 500;
  margin: 0;
  padding: 12px 14px;
  background: var(--sol-blue-soft);
  border: 1px solid rgba(39, 56, 126, 0.15);
  border-radius: 10px;
  transition: background 0.15s ease;
}

.webform--solicitud .form-type-checkbox label:hover,
.webform--solicitud .sol-accept-label:hover {
  background: rgba(39, 56, 126, 0.1);
}

.webform--solicitud .form-type-checkbox input[type="checkbox"],
.webform--solicitud .sol-accept-label input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin: 0;
  flex-shrink: 0;
  accent-color: var(--sol-blue);
  cursor: pointer;
}

/* ================================================================
 *  Bloques legales (acordeón)
 * ================================================================ */
.webform--solicitud .legal-block {
  border: 1px solid var(--sol-gray-200);
  border-left: 4px solid var(--sol-blue);
  border-radius: 12px;
  background: #fbfcfe;
  margin: 0 0 18px;
  overflow: hidden;
}

.webform--solicitud .legal-block>summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  cursor: pointer;
  font-weight: 600;
  color: var(--sol-blue);
  font-size: 0.95rem;
  list-style: none;
  user-select: none;
  transition: background 0.15s ease;
}

.webform--solicitud .legal-block>summary::-webkit-details-marker {
  display: none;
}

.webform--solicitud .legal-block>summary:hover {
  background: rgba(39, 56, 126, 0.04);
}

.webform--solicitud .legal-block>summary svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
}

.webform--solicitud .legal-block>summary .sol-caret {
  margin-left: auto;
  transition: transform 0.2s ease;
}

.webform--solicitud .legal-block[open]>summary .sol-caret {
  transform: rotate(180deg);
}

.webform--solicitud .legal-block>summary .sol-caret-hint {
  margin-left: auto;
  font-size: 0.78rem;
  color: var(--sol-gray-600);
  font-weight: 500;
}

.webform--solicitud .legal-block[open]>summary .sol-caret-hint::after {
  content: ' Cerrar';
}

.webform--solicitud .legal-block:not([open])>summary .sol-caret-hint::after {
  content: ' Leer completo';
}

.webform--solicitud .legal-block__body {
  padding: 0 20px 18px;
  max-height: 320px;
  overflow-y: auto;
  font-size: 0.88rem;
  line-height: 1.65;
  color: var(--sol-gray-800);
  position: relative;
}

.webform--solicitud .legal-block__body p {
  margin: 0 0 12px;
}

.webform--solicitud .legal-block__body p:last-child {
  margin-bottom: 0;
}

/* Fade gradient en el borde inferior cuando hay más contenido */
.webform--solicitud .legal-block[open]::after {
  content: '';
  position: relative;
  display: block;
  height: 24px;
  margin-top: -24px;
  background: linear-gradient(to bottom, transparent, #fbfcfe);
  pointer-events: none;
}

/* ================================================================
 *  Mensajes de error y éxito
 * ================================================================ */
.webform--solicitud .sol-error-banner {
  display: flex;
  gap: 14px;
  padding: 16px 18px;
  background: var(--sol-error-bg);
  border: 1px solid #fecdd3;
  border-left: 4px solid var(--sol-error);
  border-radius: 12px;
  margin-bottom: 20px;
  color: var(--sol-error-text);
}

.webform--solicitud .sol-error-banner__icon {
  flex-shrink: 0;
}

.webform--solicitud .sol-error-banner__icon svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

.webform--solicitud .sol-error-banner__title {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--sol-error-text);
}

.webform--solicitud .sol-error-banner__list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.88rem;
}

.webform--solicitud .sol-error-banner__list li {
  margin: 0;
  padding: 2px 0;
}

.webform--solicitud .sol-error-banner__list a {
  color: var(--sol-error-text);
  text-decoration: underline;
  font-weight: 500;
}

.webform--solicitud .sol-error-banner__list a:hover {
  text-decoration: none;
}

/* Estilos por campo en error */
.webform--solicitud .form-item--error input,
.webform--solicitud .form-item--error select,
.webform--solicitud .form-item--error textarea,
.webform--solicitud .form-item.has-error input,
.webform--solicitud .form-item.has-error select,
.webform--solicitud .form-item.has-error textarea {
  border-color: var(--sol-error);
  background: var(--sol-error-bg);
}

.webform--solicitud .form-item--error input:focus,
.webform--solicitud .form-item--error select:focus,
.webform--solicitud .form-item--error textarea:focus,
.webform--solicitud .form-item.has-error input:focus,
.webform--solicitud .form-item.has-error select:focus,
.webform--solicitud .form-item.has-error textarea:focus {
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.18);
}

.webform--solicitud .form-item--error-message,
.webform--solicitud .sol-field-error {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: 6px;
  font-size: 0.82rem;
  color: var(--sol-error-text);
  font-weight: 600;
}

.webform--solicitud .sol-field-error::before {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  margin-top: 2px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23b91c1c' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E") no-repeat center;
}

/* Override de mensajes de Drupal con el banner unificado */
.webform--solicitud .messages--error {
  background: var(--sol-error-bg);
  color: var(--sol-error-text);
  border: 1px solid #fecdd3;
  border-left: 4px solid var(--sol-error);
  border-radius: 12px;
}

.webform--solicitud .messages--status,
.webform--solicitud .webform-message--success {
  background: #ecfdf3;
  color: #14532d;
  border-color: #bbf7d0;
  border-left: 4px solid var(--sol-success);
  border-radius: 12px;
}

/* ================================================================
 *  Acciones del wizard (botones)
 * ================================================================ */
.webform--solicitud .form-actions,
.webform--solicitud .webform-actions {
  display: flex;
  gap: 12px;
  justify-content: space-between;
  align-items: center;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--sol-gray-200);
  flex-wrap: wrap;
}

.webform--solicitud .form-actions input[type="submit"],
.webform--solicitud .form-actions button,
.webform--solicitud .webform-actions input[type="submit"],
.webform--solicitud .webform-actions button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 48px;
  padding: 0 22px;
  border-radius: var(--sol-radius-pill);
  font-family: var(--sol-font);
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
  border: 1.5px solid transparent;
  text-transform: none;
  letter-spacing: 0;
  box-shadow: none;
}

/* Botón primario (Siguiente / Enviar) */
.webform--solicitud .webform-button--next,
.webform--solicitud .webform-button--submit,
.webform--solicitud .form-actions input[type="submit"],
.webform--solicitud .form-actions .button--primary {
  background: var(--sol-green);
  color: #fff;
  border-color: var(--sol-green);
  box-shadow: 0 8px 18px rgba(73, 163, 86, 0.32);
  margin-left: auto;
}

.webform--solicitud .webform-button--next:hover,
.webform--solicitud .webform-button--submit:hover,
.webform--solicitud .form-actions input[type="submit"]:hover,
.webform--solicitud .form-actions .button--primary:hover {
  background: var(--sol-green-dark);
  border-color: var(--sol-green-dark);
}

/* Botón secundario (Volver) */
.webform--solicitud .webform-button--previous,
.webform--solicitud .form-actions .button:not(.button--primary):not(input[type="submit"]) {
  background: #fff;
  color: var(--sol-blue);
  border-color: var(--sol-blue);
  box-shadow: none;
}

.webform--solicitud .webform-button--previous:hover {
  background: var(--sol-blue);
  color: #fff;
}

/* Sticky bottom en móvil */
@media (max-width: 767px) {

  .webform--solicitud .form-actions,
  .webform--solicitud .webform-actions {
    position: sticky;
    bottom: 0;
    background: #fff;
    margin: 28px -20px 0;
    padding: 14px 20px;
    border-top: 1px solid var(--sol-gray-200);
    box-shadow: 0 -8px 18px rgba(15, 23, 42, 0.06);
    z-index: 20;
  }

  .webform--solicitud .form-actions input[type="submit"],
  .webform--solicitud .form-actions button,
  .webform--solicitud .webform-actions input[type="submit"],
  .webform--solicitud .webform-actions button {
    flex: 1 1 0;
    min-width: 0;
    padding: 0 12px;
    justify-content: center;
  }
}

/* ================================================================
 *  Misc — webform_more native cleanup
 * ================================================================ */
.webform--solicitud .webform-element-more {
  margin: 8px 0;
}

.webform--solicitud .webform-element-more__link {
  color: var(--sol-blue);
  font-weight: 600;
  font-size: 0.85rem;
}

/* ================================================================
 *  Page header del trámite (cuando aplique)
 * ================================================================ */
.webform--solicitud .sol-page-title {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--sol-blue);
  letter-spacing: -0.01em;
  margin: 0 0 4px;
}

.webform--solicitud .sol-page-subtitle {
  font-size: 0.9rem;
  color: var(--sol-gray-600);
  margin: 0 0 18px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}

/* ================================================================
 *  Ajustes específicos para webforms tipo desvinculación
 * ================================================================ */
.webform--solicitud[data-webform-id^="solicitud_de_desvinculacion"] .sol-step-header__title {
  font-size: 1.25rem;
}
