body {
  background-color: #f5f7fa;
  font-size: 14px;
  color: #212529;
}

h4 {
  font-weight: 600;
  letter-spacing: 0.5px;
}

.section {
  background-color: rgba(105, 27, 50, 0.5);
  color: #ffffff;
  padding: 8px;
  border-radius: 8px;
  font-weight: 600;
  margin-bottom: 10px;
}

.sectionP {
  background-color: rgba(187, 149, 91, 0.5);
  color: #ffffff;
  padding: 20px;
  border-radius: 8px;
  font-weight: 800;
  margin-bottom: 10px;
}

.table {
  background-color: #ffffff;
  border-collapse: separate !important;
  border-spacing: 0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  margin-bottom: 20px;
}

.table th {
  background-color: #f0f2f5;
  font-weight: 600;
  width: 25%;
}

.table th,
.table td {
  border: 1px solid #dee2e6;
  padding: 10px;
  vertical-align: middle;
}

/* esquinas redondeadas reales */
.table tr:first-child th:first-child {
  border-top-left-radius: 12px;
}
.table tr:first-child th:last-child {
  border-top-right-radius: 12px;
}
.table tr:last-child td:first-child {
  border-bottom-left-radius: 12px;
}
.table tr:last-child td:last-child {
  border-bottom-right-radius: 12px;
}

.form-control {
  border-radius: 8px;
  font-size: 14px;
  padding: 6px 10px;
}

.form-control:focus {
  box-shadow: 0 0 0 0.15rem rgba(13,110,253,.15);
}

#signature {
  border: 1px dashed #adb5bd;
  border-radius: 12px;
  background-color: #ffffff;
}

.btn {
  border-radius: 8px;
  font-size: 14px;
  padding: 8px;
}

/* CONTENEDOR: centra radio + texto */
.custom-radio {
  display: flex;
  align-items: center;      /* centrado vertical */
  justify-content: center;  /* centrado horizontal dentro del td */
  gap: 0.4em;
}

/* Radio */
.custom-radio .form-check-input {
  appearance: none;
  -webkit-appearance: none;
  width: 1.6em;
  height: 1.6em;
  border: 2px solid #bc955b;
  border-radius: 50%;
  background-color: #fff;
  position: relative;
  cursor: pointer;
  margin: 0; /* elimina offset Bootstrap */
}

.custom-radio:focus {
  box-shadow: 0 0 0 4px rgba(218,165,32,0.4);
}

/* Seleccionado */
.custom-radio .form-check-input:checked {
  background-color: #bc955b;
  box-shadow: 0 0 0 4px rgba(218,165,32,0.4);
}

.form-check-input:focus {
  box-shadow: 0 0 0 .25rem rgba(218,165,32,0.4);
}

/* Marca centrada */
.custom-radio .form-check-input:checked::after {
  color: #fff;
  font-weight: bold;
  font-size: 1.1em;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  line-height: 1;
  box-shadow: 0 0 0 4px rgba(218,165,32,0.4);
}

/* Texto */
.custom-radio .form-check-label {
  margin: 0;
  cursor: pointer;
  line-height: 1; /* evita desalineación */
}

.checkbox-lg {
  appearance: none;
  -webkit-appearance: none;
  width: 1.6em;
  height: 1.6em;
  border: 2px solid #bc955b;
  border-radius: 4px;
  background-color: #fff;
  cursor: pointer;
  position: relative; /* CLAVE */
  transform: scale(1.4);
}

.checkbox-lg:checked {
  background-color: #bc955b;
}

.checkbox-lg:checked::after {
  content: "✓";
  color: #fff;
  font-weight: bold;
  font-size: 1.2em;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* centrado real */
  line-height: 1;
}

.is-valid { border: 1px solid #bc955b !important; }
.is-valid:focus { box-shadow: 0 0 4px 2px #bc955b !important; }
.is-valid:hover { border: 1px solid #691b32 !important; box-shadow: 0 0 4px 2px #691b32 !important; }
.form-control.is-valid .icon {
  color: red !important; /* Cambiar el color a rojo, por ejemplo */
}

.was-validated .form-control:valid, .form-control.is-valid {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%591b32' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
}
