:root{
  --psmp-primary:#009FE3;      /* Principal */
  --psmp-secondary:#F32F33;    /* Secundario */
  --psmp-accent:#000066;       /* Acento */
  --psmp-text:#666666;         /* Texto */
  --psmp-line-1:#666666;       /* Líneas 1 */
  --psmp-line-2:#B3B3B3;       /* Líneas 2 */
  --psmp-line-3:#CCCCCC;       /* Líneas 3 */
  --psmp-muted:#B3B3B3;
  --psmp-border:#CCCCCC;
  --psmp-error:#F32F33;
  --psmp-radius:8px;
}

#psmp-form-wrapper{
  max-width:980px;margin:0 auto;font-family:Arial, Helvetica, sans-serif;color:var(--psmp-text);
}
#psmp-form-wrapper *{box-sizing:border-box;}

/* Honeypot: oculto para personas (no display:none, para que los bots lo sigan viendo) */
.fs-honeypot{position:absolute;left:-9999px;top:-9999px;opacity:0;height:0;overflow:hidden;}

/* ---------- Progress bar ---------- */
.fs-progress{display:flex;justify-content:space-between;margin-bottom:28px;position:relative;}
.fs-progress::before{
  content:"";position:absolute;top:14px;left:0;right:0;height:2px;background:var(--psmp-border);z-index:0;
}
.fs-progress-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;flex:1;}
.fs-progress-step .dot{
  width:28px;height:28px;border-radius:50%;background:#fff;border:2px solid var(--psmp-border);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:bold;color:var(--psmp-muted);
  transition:.2s;
}
.fs-progress-step .label{font-size:11px;margin-top:6px;color:var(--psmp-muted);text-align:center;}
.fs-progress-step.active .dot{border-color:var(--psmp-primary);color:var(--psmp-primary);}
.fs-progress-step.done .dot{background:var(--psmp-primary);border-color:var(--psmp-primary);color:#fff;}
.fs-progress-step.active .label{color:var(--psmp-primary);font-weight:bold;}

/* ---------- Steps ---------- */
.fs-step{display:none;animation:fadeIn .25s ease;}
.fs-step.active{display:grid;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

/* Grid de columnas: 3 columnas en desktop amplio */
.fs-step.fs-grid.active{
  grid-template-columns:repeat(3, 1fr);
  column-gap:24px;
  align-items:start;
}
.fs-full{grid-column:1 / -1;}

.fs-step h2{font-size:19px;margin:0 0 12px;color:var(--psmp-accent);}
.fs-step .fs-step-desc{font-size:13px;color:var(--psmp-text);margin:0 0 26px;}

.fs-field{margin-bottom:16px;min-width:0;}
.fs-field[hidden]{display:none !important;}
.fs-field label{display:block;font-size:13.5px;font-weight:bold;margin-bottom:5px;}
.fs-field label .req{color:var(--psmp-error);margin-left:2px;}
.fs-field .fs-hint{font-size:12px;color:var(--psmp-muted);margin-top:4px;}

.fs-field input[type="text"],
.fs-field input[type="email"],
.fs-field input[type="tel"],
.fs-field input[type="number"],
.fs-field input[type="date"],
.fs-field select,
.fs-field textarea{
  width:100%;padding:10px 12px;border:1px solid var(--psmp-border);border-radius:var(--psmp-radius);
  font-size:14px;font-family:inherit;background:#fff;color:var(--psmp-text);
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
}

/* Select: flecha custom con espacio suficiente respecto al borde */
.fs-field select{
  padding-right:38px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23666666' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:12px 8px;
}

.fs-field input:focus,.fs-field select:focus,.fs-field textarea:focus{
  outline:none;border-color:var(--psmp-primary);box-shadow:0 0 0 3px rgba(0,159,227,.15);
}
.fs-field textarea{min-height:80px;resize:vertical;}
.fs-field.fs-invalid input,.fs-field.fs-invalid select,.fs-field.fs-invalid textarea{
  border-color:var(--psmp-error);
}
.fs-error-msg{color:var(--psmp-error);font-size:12px;margin-top:4px;display:none;}
.fs-field.fs-invalid .fs-error-msg{display:block;}

/* Estado inválido para grupos de checkboxes (Step 4) */
.fs-group.fs-invalid{border-color:var(--psmp-error);background:#fdf1f1;}
.fs-group.fs-invalid .fs-error-msg{display:block;margin-top:10px;margin-bottom:0;}

.fs-options{display:flex;flex-wrap:wrap;gap:8px 18px;}
.fs-options label{display:flex;align-items:center;gap:6px;font-weight:normal;font-size:13.5px;}
.fs-options input{width:auto;flex-shrink:0;}

/* Opciones largas (Step 4) en columna, una por fila, para mejor lectura */
.fs-options-col{flex-direction:column;gap:9px;}
.fs-options-col label{align-items:flex-start;}
.fs-options-col label input{margin-top:3px;}

/* ---------- Grupos con título/subtítulo (Step 4: Clínico) ---------- */
.fs-group{
  border:1px solid var(--psmp-line-3);border-radius:var(--psmp-radius);
  padding:20px 20px 22px;margin-bottom:28px;background:#fafbfc;
}
.fs-group-title{
  font-size:14.5px;margin:0 0 8px;color:var(--psmp-primary);
  text-transform:uppercase;letter-spacing:.4px;
}
.fs-group-subtitle{font-size:12.5px;color:var(--psmp-text);margin:0 0 18px;line-height:1.5;}
.fs-group .fs-field{margin-top:18px;margin-bottom:0;}
.fs-group .fs-html-block{margin-top:18px;margin-bottom:0;}

.fs-html-block{font-size:13px;background:#eaf6fc;border:1px solid #b8e3f5;border-radius:var(--psmp-radius);padding:12px 14px;margin-bottom:16px;color:var(--psmp-text);}

/* ---------- Nav buttons ---------- */
.fs-nav{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:28px;border-top:1px solid var(--psmp-line-3);padding-top:20px;}
.fs-btn{
  padding:11px 26px;border-radius:var(--psmp-radius);border:none;font-size:14px;font-weight:bold;cursor:pointer;transition:.15s;min-width:140px;
}
.fs-btn-primary{background:var(--psmp-primary);color:#fff;}
.fs-btn-primary:hover{background:var(--psmp-accent);}
.fs-btn-secondary{background:#fff;color:var(--psmp-primary);border:1px solid var(--psmp-primary);}
.fs-btn-secondary:hover{background:#eaf6fc;}
.fs-btn:disabled{opacity:.5;cursor:not-allowed;}

.fs-submit-msg{display:none;padding:14px;border-radius:var(--psmp-radius);font-size:14px;margin-top:16px;}
.fs-submit-msg.success{display:block;background:#e6f4ea;color:#1e7e34;border:1px solid #b7e0c3;}
.fs-submit-msg.error{display:block;background:#fdecea;color:var(--psmp-error);border:1px solid #f5c6c0;}

/* ---------- Responsive ---------- */
/* Tablet: 2 columnas */
@media (max-width: 900px){
  .fs-step.fs-grid.active{grid-template-columns:repeat(2, 1fr);column-gap:18px;}
}
/* Mobile: 1 columna */
@media (max-width: 600px){
  .fs-step.fs-grid.active{grid-template-columns:1fr;}
  .fs-nav{flex-direction:column;gap:10px;}
  .fs-btn{width:100%;}
}
