/**
 * Modal «Política de Tratamiento de Datos» (biblioteca pública).
 * Hoja aparte para evitar conflictos/caché con style.css muy grande duplicado.
 */

#politica-overlay {
  z-index: 110;
}

.modal.modal--quienes.modal--politica {
  max-width: min(980px, 100vw - 2rem);
}

.modal.modal--quienes.modal--politica .modal-header h3 {
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--brand-blue, #1a2a3c);
  line-height: 1.2;
  letter-spacing: -0.02em;
}

@media (max-width: 600px) {
  .modal.modal--quienes.modal--politica .modal-header h3 {
    font-size: 1.35rem;
  }
}

.politica-modal__lead {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  background: linear-gradient(135deg, rgba(207, 46, 46, 0.08) 0%, rgba(26, 42, 60, 0.05) 100%);
  border: 1px solid rgba(207, 46, 46, 0.22);
  border-radius: 12px;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: #475569;
}

.politica-modal__toc-card {
  margin: 0 0 1.25rem;
  padding: 1rem 1.15rem 1.05rem;
  background: linear-gradient(160deg, #fdf2f2 0%, #ffffff 50%, #f8fafc 100%);
  border: 0.5px solid var(--color-border-tertiary, #d7dce2);
  border-left: 4px solid #cf2e2e;
  border-radius: 12px;
  box-shadow: 0 2px 14px rgba(26, 42, 60, 0.07);
}

.politica-modal__toc-title {
  margin: 0 0 0.65rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #64748b;
}

.politica-modal__toc {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 14px;
  line-height: 1.45;
}

.politica-modal__toc li {
  margin: 0 0 0.45rem;
  padding-left: 1rem;
  position: relative;
}

.politica-modal__toc li:last-child {
  margin-bottom: 0;
}

.politica-modal__toc li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 0.55em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #cf2e2e;
  opacity: 0.75;
}

.politica-modal__toc a {
  color: #cf2e2e;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.politica-modal__toc a:hover,
.politica-modal__toc a:focus-visible {
  color: #a82424;
  border-bottom-color: rgba(207, 46, 46, 0.45);
}

.politica-modal__body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 6px;
  scroll-behavior: smooth;
}

.politica-modal__content {
  margin: 0;
  padding: 0 0 0.25rem;
  white-space: normal;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.65;
  color: #334155;
}

.politica-modal__content p {
  margin: 0 0 0.85rem;
}

.politica-modal__content p strong {
  color: #1a2a3c;
  font-size: inherit;
}

.politica-modal__content > p[id^="politica-"] {
  margin-top: 1.6rem;
  margin-bottom: 0.6rem;
  padding: 0.5rem 0.85rem;
  border-left: 3px solid #cf2e2e;
  background: linear-gradient(90deg, rgba(207, 46, 46, 0.1) 0%, transparent 92%);
  border-radius: 0 10px 10px 0;
}

.politica-modal__content > p[id^="politica-"] strong {
  color: var(--brand-blue, #1a2a3c);
  font-size: 0.97rem;
  font-weight: 700;
  line-height: 1.35;
}

.politica-modal__contacto {
  margin-top: 1.75rem;
  margin-bottom: 0 !important;
  padding: 1.1rem 1.25rem;
  background: #fdf2f2;
  border: 0.5px solid rgba(207, 46, 46, 0.22);
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.65;
  color: var(--color-text-secondary, #475569);
}

.politica-modal__contacto a {
  color: #cf2e2e;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(207, 46, 46, 0.3);
}

.politica-modal__contacto a:hover,
.politica-modal__contacto a:focus-visible {
  color: #a82424;
  border-bottom-color: rgba(207, 46, 46, 0.5);
}
