/* ==============================================
   ACORDEÓN EDUCATIVO UTU - DISEÑO MEJORADO Y CORREGIDO
   ============================================== */

/* Variables específicas del acordeón */
:root {
  --accordion-border-radius: 16px;
  --accordion-padding: 1.5rem;
  --accordion-gap: 1rem;
  --accordion-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --accordion-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  --accordion-icon-size: 20px;
}

/* ==============================================
   Contenedor Principal
   ============================================== */
.contenedor-acordeon {
  width: 100% !important;
  max-width: 1200px !important;
  margin: 2rem auto !important;
  padding: 1rem !important;
  box-sizing: border-box !important;
}

.contenedor-acordeon.siempre-visible {
  display: block !important;
}

/* ==============================================
   Acordeón Base
   ============================================== */
.acordeon {
  border-radius: var(--accordion-border-radius) !important;
  padding: var(--accordion-padding) !important;
  width: 100% !important;
  box-sizing: border-box !important;
  position: relative !important;
  overflow: hidden !important;
  transition: var(--accordion-transition) !important;
}

/* Modo Claro */
[data-bs-theme="claro"] .acordeon {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
  box-shadow: 
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
  border: 1px solid rgba(15, 76, 129, 0.1) !important;
}

/* Modo Oscuro */
[data-bs-theme="oscuro"] .acordeon {
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%) !important;
  box-shadow: 
    0 4px 6px -1px rgba(0, 0, 0, 0.3),
    0 2px 4px -1px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(96, 165, 250, 0.2) !important;
}

/* ==============================================
   Título Principal del Acordeón
   ============================================== */
.h1-acordeon {
  font-size: clamp(1.5rem, 3vw, 2rem) !important;
  font-weight: 700 !important;
  text-align: center !important;
  margin-bottom: 2rem !important;
  padding-bottom: 1rem !important;
  position: relative !important;
  letter-spacing: -0.02em !important;
  line-height: 1.3 !important;
}

/* Línea decorativa bajo el título */
.h1-acordeon::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 80px !important;
  height: 4px !important;
  border-radius: 2px !important;
  background: linear-gradient(90deg, var(--accent-blue) 0%, var(--accent-yellow) 100%) !important;
}

/* Colores del título */
[data-bs-theme="claro"] .h1-acordeon {
  color: #0f172a !important;
}

[data-bs-theme="oscuro"] .h1-acordeon {
  color: #f8fafc !important;
}

/* ==============================================
   Secciones del Acordeón
   ============================================== */
.acordeon section {
  margin: 0 0 var(--accordion-gap) 0 !important;
  position: relative !important;
}

/* ==============================================
   Encabezados de Sección
   ============================================== */
.acordeon section > h3 {
  margin: 0 !important;
  position: relative !important;
}

/* ==============================================
   Botones del Acordeón
   ============================================== */
.titulo-acordeon {
  width: 100% !important;
  padding: 1.25rem 1.5rem !important;
  font-size: clamp(1rem, 2vw, 1.125rem) !important;
  font-weight: 600 !important;
  text-align: left !important;
  border-radius: 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  cursor: pointer !important;
  border: 2px solid transparent !important;
  position: relative !important;
  overflow: hidden !important;
  transition: var(--accordion-transition) !important;
  letter-spacing: -0.01em !important;
}

/* Icono/Flecha del botón */
.titulo-acordeon::after {
  content: '' !important;
  width: var(--accordion-icon-size) !important;
  height: var(--accordion-icon-size) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  transition: transform 0.3s ease !important;
  flex-shrink: 0 !important;
  opacity: 0.8 !important;
}

.titulo-acordeon[aria-expanded="true"]::after {
  transform: rotate(180deg) !important;
}

/* Estilos Modo Claro */
[data-bs-theme="claro"] .titulo-acordeon {
  background: linear-gradient(135deg, #0f4c81 0%, #1e40af 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(15, 76, 129, 0.2) !important;
}

[data-bs-theme="claro"] .titulo-acordeon:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 20px rgba(15, 76, 129, 0.3) !important;
}

[data-bs-theme="claro"] .titulo-acordeon[aria-expanded="true"] {
  background: linear-gradient(135deg, #ca8a04 0%, #d97706 100%) !important;
  box-shadow: 0 4px 12px rgba(202, 138, 4, 0.3) !important;
}

/* Estilos Modo Oscuro */
[data-bs-theme="oscuro"] .titulo-acordeon {
  background: linear-gradient(135deg, #1e40af 0%, #2563eb 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(30, 64, 175, 0.3) !important;
}

[data-bs-theme="oscuro"] .titulo-acordeon:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 20px rgba(30, 64, 175, 0.4) !important;
}

[data-bs-theme="oscuro"] .titulo-acordeon[aria-expanded="true"] {
  background: linear-gradient(135deg, #fcd34d 0%, #fde68a 100%) !important;
  color: #0f172a !important;
  box-shadow: 0 4px 12px rgba(252, 211, 77, 0.3) !important;
}

/* Estados Focus para accesibilidad */
.titulo-acordeon:focus-visible {
  outline: 3px solid var(--focus-outline) !important;
  outline-offset: 3px !important;
}

/* ==============================================
   Bloques de Contenido Expandibles
   ============================================== */
.bloque {
  overflow: hidden !important;
  max-height: 0 !important;
  opacity: 0 !important;
  transform: translateY(-10px) !important;
  transition: 
    max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.3s ease,
    transform 0.3s ease,
    padding 0.3s ease !important;
  margin-bottom: 0 !important;
}

.bloque.activo {
  max-height: 2000px !important;
  opacity: 1 !important;
  transform: translateY(0) !important;
  padding: 1.5rem !important;
  margin-bottom: var(--accordion-gap) !important;
  border-radius: 12px !important;
  animation: slideDown 0.4s ease forwards !important;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Estilos del bloque activo - Modo Claro */
[data-bs-theme="claro"] .bloque.activo {
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%) !important;
  border-left: 4px solid #0f4c81 !important;
  box-shadow: 
    inset 0 2px 8px rgba(15, 76, 129, 0.05),
    0 1px 3px rgba(0, 0, 0, 0.05) !important;
}

/* Estilos del bloque activo - Modo Oscuro */
[data-bs-theme="oscuro"] .bloque.activo {
  background: linear-gradient(135deg, #1e293b 0%, #334155 100%) !important;
  border-left: 4px solid #60a5fa !important;
  box-shadow: 
    inset 0 2px 8px rgba(96, 165, 250, 0.1),
    0 1px 3px rgba(0, 0, 0, 0.2) !important;
}

/* ==============================================
   Contenido del Acordeón - MEJORADO
   ============================================== */
.contenido-acordeon {
  font-size: clamp(0.9rem, 1.5vw, 1rem) !important;
  line-height: 1.7 !important;
  animation: fadeIn 0.5s ease !important;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.contenido-acordeon p {
  margin: 0 0 1.2rem 0 !important;
  padding: 0 !important;
  text-align: justify !important;
  hyphens: auto !important;
  font-size: clamp(0.9rem, 1.5vw, 1rem) !important;
  line-height: 1.7 !important;
}

.contenido-acordeon p:last-child {
  margin-bottom: 0 !important;
}

/* Títulos dentro del contenido */
.contenido-acordeon h4 {
  font-size: clamp(1.1rem, 2vw, 1.25rem) !important;
  font-weight: 700 !important;
  margin: 1.5rem 0 1rem 0 !important;
  padding: 0 !important;
  line-height: 1.4 !important;
}

.contenido-acordeon h5 {
  font-size: clamp(1rem, 1.8vw, 1.125rem) !important;
  font-weight: 600 !important;
  margin: 1.2rem 0 0.8rem 0 !important;
  padding: 0 !important;
  line-height: 1.4 !important;
}

.contenido-acordeon h6 {
  font-size: clamp(0.95rem, 1.6vw, 1rem) !important;
  font-weight: 600 !important;
  margin: 1rem 0 0.6rem 0 !important;
  padding: 0 !important;
  line-height: 1.4 !important;
}

/* Listas */
.contenido-acordeon ul {
  margin: 1rem 0 1.5rem 0 !important;
  padding: 0 0 0 1.5rem !important;
  list-style-type: none !important;
}

.contenido-acordeon li {
  margin: 0 0 0.8rem 0 !important;
  padding: 0.5rem 0 0.5rem 1.5rem !important;
  font-size: clamp(0.9rem, 1.5vw, 1rem) !important;
  font-weight: 400 !important;
  font-style: normal !important;
  letter-spacing: 0.01em !important;
  word-spacing: 0.05em !important;
  line-height: 1.6 !important;
  list-style: none !important;
  position: relative !important;
}

.contenido-acordeon li::before {
  content: '•' !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.5rem !important;
  font-weight: bold !important;
  font-size: 1.2em !important;
}

/* Colores del contenido - Modo Claro */
[data-bs-theme="claro"] .contenido-acordeon {
  color: #334155 !important;
}

[data-bs-theme="claro"] .contenido-acordeon p {
  color: #1e293b !important;
}

[data-bs-theme="claro"] .contenido-acordeon strong {
  color: #0f172a !important;
  font-weight: 700 !important;
}

[data-bs-theme="claro"] .contenido-acordeon h4,
[data-bs-theme="claro"] .contenido-acordeon h5,
[data-bs-theme="claro"] .contenido-acordeon h6 {
  color: #0f4c81 !important;
}

[data-bs-theme="claro"] .contenido-acordeon li {
  color: #334155 !important;
}

[data-bs-theme="claro"] .contenido-acordeon li::before {
  color: #0f4c81 !important;
}

/* Colores del contenido - Modo Oscuro */
[data-bs-theme="oscuro"] .contenido-acordeon {
  color: #cbd5e1 !important;
}

[data-bs-theme="oscuro"] .contenido-acordeon p {
  color: #e2e8f0 !important;
}

[data-bs-theme="oscuro"] .contenido-acordeon strong {
  color: #f8fafc !important;
  font-weight: 700 !important;
}

[data-bs-theme="oscuro"] .contenido-acordeon h4,
[data-bs-theme="oscuro"] .contenido-acordeon h5,
[data-bs-theme="oscuro"] .contenido-acordeon h6 {
  color: #60a5fa !important;
}

[data-bs-theme="oscuro"] .contenido-acordeon li {
  color: #cbd5e1 !important;
}

[data-bs-theme="oscuro"] .contenido-acordeon li::before {
  color: #60a5fa !important;
}

/* ==============================================
   Enlaces dentro del acordeón
   ============================================== */
.contenido-acordeon a {
  color: inherit !important;
  text-decoration: underline !important;
  text-decoration-color: currentColor !important;
  text-underline-offset: 2px !important;
  transition: var(--accordion-transition) !important;
  font-weight: 500 !important;
}

[data-bs-theme="claro"] .contenido-acordeon a {
  color: #0f4c81 !important;
}

[data-bs-theme="claro"] .contenido-acordeon a:hover {
  color: #1e40af !important;
  text-decoration-thickness: 2px !important;
}

[data-bs-theme="oscuro"] .contenido-acordeon a {
  color: #60a5fa !important;
}

[data-bs-theme="oscuro"] .contenido-acordeon a:hover {
  color: #93c5fd !important;
  text-decoration-thickness: 2px !important;
}

/* ==============================================
   Responsive Design - MEJORADO
   ============================================== */

/* Tablets */
@media (max-width: 768px) {
  .contenedor-acordeon {
    padding: 0.75rem !important;
    margin: 1rem auto !important;
  }
  
  .acordeon {
    padding: 1rem !important;
    border-radius: 12px !important;
  }
  
  .h1-acordeon {
    font-size: clamp(1.25rem, 4vw, 1.5rem) !important;
    margin-bottom: 1.5rem !important;
  }
  
  .titulo-acordeon {
    padding: 1rem 1.25rem !important;
    font-size: clamp(0.95rem, 2.5vw, 1rem) !important;
    border-radius: 10px !important;
  }
  
  .titulo-acordeon::after {
    width: 18px !important;
    height: 18px !important;
  }
  
  .bloque.activo {
    padding: 1.25rem !important;
  }
  
  .contenido-acordeon {
    font-size: clamp(0.875rem, 2vw, 0.95rem) !important;
  }
  
  .contenido-acordeon h4 {
    font-size: clamp(1rem, 2.5vw, 1.15rem) !important;
  }
  
  .contenido-acordeon h5 {
    font-size: clamp(0.95rem, 2.2vw, 1.05rem) !important;
  }
  
  .contenido-acordeon h6 {
    font-size: clamp(0.9rem, 2vw, 0.95rem) !important;
  }
}

/* Móviles pequeños */
@media (max-width: 480px) {
  .contenedor-acordeon {
    padding: 0.5rem !important;
    margin: 0.5rem auto !important;
  }
  
  .acordeon {
    padding: 0.75rem !important;
    border-radius: 8px !important;
  }
  
  .h1-acordeon {
    font-size: clamp(1.125rem, 5vw, 1.375rem) !important;
    padding-bottom: 0.75rem !important;
    margin-bottom: 1.25rem !important;
  }
  
  .h1-acordeon::after {
    width: 60px !important;
    height: 3px !important;
  }
  
  .titulo-acordeon {
    padding: 0.875rem 1rem !important;
    font-size: clamp(0.875rem, 3vw, 0.95rem) !important;
    border-radius: 8px !important;
    min-height: 48px !important; /* Área táctil mínima */
  }
  
  .titulo-acordeon::after {
    width: 16px !important;
    height: 16px !important;
  }
  
  .bloque.activo {
    padding: 1rem !important;
    border-radius: 8px !important;
  }
  
  .contenido-acordeon {
    font-size: clamp(0.825rem, 2.5vw, 0.9rem) !important;
    line-height: 1.6 !important;
  }
  
  .contenido-acordeon p {
    text-align: left !important; /* Mejor legibilidad en móvil */
    margin-bottom: 1rem !important;
  }
  
  .contenido-acordeon h4 {
    font-size: clamp(0.95rem, 3vw, 1.1rem) !important;
    margin: 1.25rem 0 0.75rem 0 !important;
  }
  
  .contenido-acordeon h5 {
    font-size: clamp(0.9rem, 2.8vw, 1rem) !important;
    margin: 1rem 0 0.6rem 0 !important;
  }
  
  .contenido-acordeon h6 {
    font-size: clamp(0.85rem, 2.5vw, 0.9rem) !important;
    margin: 0.875rem 0 0.5rem 0 !important;
  }
  
  .contenido-acordeon ul {
    padding-left: 1.25rem !important;
  }
  
  .contenido-acordeon li {
    padding: 0.375rem 0 0.375rem 1.25rem !important;
    margin-bottom: 0.6rem !important;
  }
}

/* Móviles muy pequeños */
@media (max-width: 320px) {
  .acordeon {
    padding: 0.5rem !important;
  }
  
  .titulo-acordeon {
    padding: 0.75rem 0.875rem !important;
    font-size: 0.825rem !important;
  }
  
  .bloque.activo {
    padding: 0.75rem !important;
  }
  
  .contenido-acordeon {
    font-size: 0.8rem !important;
  }
  
  .contenido-acordeon ul {
    padding-left: 1rem !important;
  }
  
  .contenido-acordeon li {
    padding-left: 1rem !important;
  }
}

/* ==============================================
   Mejoras de Accesibilidad
   ============================================== */

/* Indicador visual de foco */
*:focus-visible {
  outline: 3px solid var(--focus-outline) !important;
  outline-offset: 2px !important;
}

/* Estado hover mejorado para desktop */
@media (hover: hover) {
  .titulo-acordeon {
    position: relative !important;
    overflow: hidden !important;
  }
  
  .titulo-acordeon:hover {
    transform: translateY(-2px) !important;
  }
}

/* Reducir movimiento para usuarios sensibles */
@media (prefers-reduced-motion: reduce) {
  .acordeon,
  .titulo-acordeon,
  .bloque,
  .contenido-acordeon {
    animation: none !important;
    transition: none !important;
  }
  
  .titulo-acordeon::after {
    transition: none !important;
  }
  
  .bloque.activo {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Alto contraste */
@media (prefers-contrast: high) {
  [data-bs-theme="claro"] .titulo-acordeon {
    border: 2px solid #0f172a !important;
  }
  
  [data-bs-theme="oscuro"] .titulo-acordeon {
    border: 2px solid #f8fafc !important;
  }
  
  .bloque.activo {
    border: 2px solid currentColor !important;
  }
}

/* ==============================================
   Mejoras de Rendimiento
   ============================================== */

.acordeon {
  will-change: transform !important;
  backface-visibility: hidden !important;
  perspective: 1000px !important;
}

.titulo-acordeon {
  will-change: transform, box-shadow !important;
  backface-visibility: hidden !important;
}

.bloque {
  will-change: max-height, opacity, transform !important;
}

/* ==============================================
   Print Styles
   ============================================== */

@media print {
  .acordeon {
    background: white !important;
    box-shadow: none !important;
    border: 1px solid #ccc !important;
  }
  
  .titulo-acordeon {
    background: #f5f5f5 !important;
    color: #000 !important;
    box-shadow: none !important;
  }
  
  .bloque {
    max-height: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  
  .contenido-acordeon {
    color: #000 !important;
  }
}