
:root {
  --crimson-color: #44459c;
  --crimson-color-dark: #393885;
  --lavanda-underline: rgba(214, 214, 255, 0.6);
  --lavanda-soft: #d4d4f4;
  --chalk-gray: #f0f0f0;
  --text-gray: #444;
  --transition-fast: all 0.2s ease;
  --transition-normal: all 0.3s ease;
}

/* ===== TIPOGRAFÍA BASE: CRIMSON TEXT ===== */
.crimson-text {
  font-family: 'Crimson Text', serif !important;
  font-style: italic !important;
  letter-spacing: 0.4px;
  line-height: 1.4;
/* color: inherit; ← se define desde el contexto para mayor control */
  margin: 0;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
}

/* ===== ENLACES CRIMSON ===== */
.crimson-link {
  font-family: 'Crimson Text', serif !important;
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0.4px;
  font-size: 1.20rem;
  line-height: 1.6;
  color: var(--crimson-color);
  background: transparent;
  text-decoration: none;
  display: inline;
  cursor: pointer;
  position: relative;
  transition: var(--transition-normal);
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
}


/* ===== TEXTO BASTARDILLA (ANÁLOGO A CRIMSON-LINK, SIN ENLACE) ===== */
.bastardilla {
  font-family: 'Crimson Text', serif !important;
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0.4px;
  font-size: 1.20rem;
  line-height: 1.6;
  background: transparent;
  display: inline;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
}


/* ===== SUBRAYADO VISUAL CRIMSON-LINK ===== */
.crimson-link.underlined {
  border-bottom: 1px dotted var(--crimson-color);
}

.crimson-link.underlined::after {
  content: none !important;
}

.crimson-link.underlined:hover {
  color: crimson;
  border-bottom-color: #44459c;
  transform: translateY(-1px);
}

/* ===== EFECTO LAVANDA PUNTEADO (solo para crimson-link normal) ===== */
.crimson-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0.12em;
  width: 100%;
  height: 1px;
  background-image: linear-gradient(90deg, var(--lavanda-underline) 50%, transparent 50%);
  background-size: 4px 1px;
  transition: var(--transition-normal);
}

.crimson-link:hover {
  color: var(--crimson-color-dark);
  transform: translateY(-1px);
}

.crimson-link:hover::after {
  background-image: linear-gradient(90deg, var(--lavanda-soft) 50%, transparent 50%);
  background-size: 6px 1px;
}

/* ===== VARIANTES GRIS ===== */
.crimson-link.gray {
  color: var(--text-gray);
  background: var(--chalk-gray);
  padding: 0.15em 0.3em;
  border-radius: 3px;
}

.crimson-link.underlined.gray {
  color: var(--text-gray);
  background-color: var(--chalk-gray);
  border-bottom-color: #999;
  padding: 0.15em 0.3em;
  border-radius: 3px;
}
.crimson-link.underlined.gray:hover {
  color: #333;
  border-bottom-color: #666;
}

/* ===== UTILITARIAS DE TAMAÑO ===== */
.crimson-text.size-085 { font-size: 0.85em !important; }
.crimson-text.size-090 { font-size: 0.90em !important; }
.crimson-text.size-095 { font-size: 0.95em !important; }
.crimson-text.size-100 { font-size: 1.00em !important; }
.crimson-text.size-105 { font-size: 1.05em !important; }
.crimson-text.size-110 { font-size: 1.10em !important; }
.crimson-text.size-115 { font-size: 1.15em !important; }
.crimson-text.size-120 { font-size: 1.20em !important; }
.crimson-text.size-125 { font-size: 1.25em !important; }
.crimson-text.size-130 { font-size: 1.30em !important; }
.crimson-text.size-135 { font-size: 1.35em !important; }
.crimson-text.size-140 { font-size: 1.40em !important; }
.crimson-text.size-145 { font-size: 1.45em !important; }
.crimson-text.size-150 { font-size: 1.50em !important; }

/* ===== VARIANTES DE PESO ===== */
.crimson-text.weight-normal { font-weight: 400 !important; }
.crimson-text.weight-bold   { font-weight: 600 !important; }

/* ===== RESPONSIVIDAD EN MÓVILES ===== */
@media (max-width: 576px) {
  .crimson-text.size-110 { font-size: 1.05rem !important; }
  .crimson-text.size-115 { font-size: 1.00rem !important; }
  .crimson-text.size-120 { font-size: 1.05rem !important; }
  .crimson-link {
    color: var(--crimson-color) !important;
  }
}

