/*
Theme Name:   Sagrado Corazón Child
Theme URI:    http://iescjanta.edu.pe/
Description:  Child theme de Astra para I.E. Sagrado Corazón de Jesús — Anta, Cusco. Versión basada en Sagrado Corazón Master Pro v9.8.
Author:       Desarrollo Institucional
Author URI:   http://iescjanta.edu.pe/
Template:     astra
Version:      2.0.0
Text Domain:  sagrado-corazon
*/

/* ══════════════════════════════════════════════════════════════════════════════
 * ESTILOS HEREDADOS DE SAGRADO CORAZÓN MASTER PRO v9.8
 * (Importados al child theme — no tocar page.php ni single.php)
 * ══════════════════════════════════════════════════════════════════════════════ */


/* ── Reset base ───────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }

/* ── Menú desplegable ─────────────────────────────────────────────────────── */
.scj-nav-item { position: relative; }
.scj-dropdown {
    /* Invisible por defecto — se usa opacity+visibility en vez de display:none  */
    /* para poder aplicar transition y evitar el "parpadeo" al moverse al submenú */
    display: block;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    position: absolute;
    top: 100%;           /* Sin gap — el padding-top crea el área de puente */
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    min-width: 200px;
    background: #ffffff;
    box-shadow: 0 10px 40px rgba(0,0,0,.13);
    border-radius: .75rem;
    padding: .5rem 0;
    padding-top: 8px;    /* Puente invisible: el cursor puede cruzar sin perder hover */
    z-index: 200;
    border-top: 3px solid #cc0000;
    transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
/* Una línea de puente invisible encima del dropdown para no perder el hover */
.scj-dropdown::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 0;
    right: 0;
    height: 8px;
}
.scj-nav-item:hover .scj-dropdown,
.scj-nav-item:focus-within .scj-dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}
.scj-dropdown a {
    display: block;
    padding: .55rem 1.25rem;
    font-size: .875rem;
    font-weight: 600;
    color: #0c2340;
    white-space: nowrap;
    transition: background .12s, color .12s;
    text-decoration: none;
}
.scj-dropdown a:hover { background: #f5f7fa; color: #cc0000; }

/* ── Link activo del menú ─────────────────────────────────────────────────── */
.scj-nav-link { position: relative; text-decoration: none !important; }
.scj-nav-link.is-active { color: #cc0000 !important; }
.scj-nav-link.is-active::after {
    content: '';
    position: absolute;
    bottom: -4px; left: 0; right: 0;
    height: 2px;
    background: #cc0000;
    border-radius: 2px;
}

/* ── Animación scroll-trigger ─────────────────────────────────────────────── */
.scroll-trigger { opacity: 0; transform: translateY(20px); transition: opacity .55s ease, transform .55s ease; }
.scroll-trigger.active { opacity: 1; transform: translateY(0); }

/* ── Slider ───────────────────────────────────────────────────────────────── */
.slider-item { transition: opacity 1s ease; }
.slider-item img { transition: transform 8s ease; }
.slider-item.zoom-active img { transform: scale(1.05); }

/* ── Cards ────────────────────────────────────────────────────────────────── */
.acceso-card { transition: border-color .2s, box-shadow .2s, transform .2s; }
.acceso-card:hover { border-color: #cc0000 !important; box-shadow: 0 4px 18px rgba(204,0,0,.1); transform: translateY(-2px); }
.noticia-card { transition: box-shadow .2s, transform .2s; }
.noticia-card:hover { box-shadow: 0 12px 40px rgba(0,0,0,.12); transform: translateY(-3px); }

/* ── Utilitarias ──────────────────────────────────────────────────────────── */
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
img.img-cover { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ── Dots del slider ──────────────────────────────────────────────────────── */
.slider-dot {
    display: inline-block;
    height: 10px; width: 10px;
    border-radius: 999px;
    border: none; cursor: pointer; padding: 0;
    background: rgba(255,255,255,.4);
    transition: width .3s ease, background .3s ease;
}
.slider-dot.dot-active { background: #ffffff !important; width: 28px !important; }

/* ── Bloque nombre en navbar ─────────────────────────────────────────────── */
#scj-nombre-bloque { display: flex; flex-direction: column; line-height: 1.3; }

/* ── Logo en footer ───────────────────────────────────────────────────────── */
footer .custom-logo-link { display: inline-flex !important; }
footer .custom-logo-link img {
    height: 52px !important; width: auto !important;
    max-width: 56px !important; object-fit: contain !important;
}

/*
 * NOTA: Los estilos del logo en navbar (.scj-nombre-ie, .scj-eslogan-ie,
 * tamaño del logo) se generan DINÁMICAMENTE desde el Customizer y se
 * inyectan vía wp_head prioridad 99, garantizando que sean los últimos
 * en cargarse y no sean sobreescritos por nada.
 */

/* ════════════════════════════════════════════════════════════════════════════
   FOOTER — Estilos base (valores por defecto del Customizer)
   Los valores dinámicos se sobreescriben desde wp_head prioridad 99.
════════════════════════════════════════════════════════════════════════════ */

#scj-footer {
    background: #0c2340;
    color: rgba(255,255,255,.6);
}

/* Grid de 4 columnas */
.scj-footer-inner {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1.2fr 1fr;
    gap: 2.5rem;
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
}
@media (max-width: 1024px) {
    .scj-footer-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
}
@media (max-width: 640px) {
    .scj-footer-inner { grid-template-columns: 1fr; }
}

/* Col 1 */
.scj-footer-logo-wrap {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    margin-bottom: 1.1rem;
}
.scj-footer-logo-wrap .custom-logo-link {
    display: flex !important;
    align-items: flex-start !important;
    flex-shrink: 0;
}
.scj-footer-logo-wrap .custom-logo-link img {
    height: 60px !important;
    width: auto !important;
    max-width: 65px !important;
    object-fit: contain !important;
    margin-top: 2px;
}
.scj-footer-nombre-bloque {
    display: flex;
    flex-direction: column;
}
.scj-footer-nombre {
    color: #ffffff;
    font-weight: 800;
    font-size: .875rem;
    line-height: 1.3;
    display: block;
}
.scj-footer-eslogan {
    font-size: .82rem;
    color: rgba(255,255,255,.5);
    line-height: 1.55;
    margin-top: .35rem;
    margin-bottom: 0;
}
.scj-footer-redes {
    display: flex;
    gap: .6rem;
}
.scj-footer-social-btn {
    width: 36px; height: 36px;
    background: rgba(255,255,255,.1);
    border-radius: .5rem;
    display: flex; align-items: center; justify-content: center;
    color: rgba(255,255,255,.7);
    text-decoration: none;
    font-size: 1rem;
    transition: background .15s, color .15s;
}
.scj-footer-social-btn:hover { background: #cc0000; color: #fff; }

/* Encabezados de columna */
.scj-footer-heading {
    color: #ffffff;
    font-weight: 700;
    font-size: .9rem;
    margin: 0 0 .65rem;
    padding: 0;
}
.scj-footer-divider {
    height: 1px;
    background: rgba(255,255,255,.1);
    margin-bottom: .9rem;
}

/* Lista de enlaces */
.scj-footer-links {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    flex-direction: column;
    gap: .4rem;
}
.scj-footer-links li a,
.scj-footer-links li a span {
    color: rgba(255,255,255,.5);
    text-decoration: none;
    font-size: .84rem;
    transition: color .15s;
    display: block;
}
.scj-footer-links li a:hover,
.scj-footer-links li a span:hover { color: #ffffff; }

/* Lista de contacto */
.scj-footer-contact {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    flex-direction: column;
    gap: .65rem;
    font-size: .82rem;
    line-height: 1.5;
    color: rgba(255,255,255,.55);
}
.scj-footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
}
.scj-footer-icon {
    color: #cc0000;
    font-size: 1rem;
    margin-top: .1rem;
    flex-shrink: 0;
}
.scj-footer-link {
    color: rgba(255,255,255,.55);
    text-decoration: none;
    transition: color .15s;
}
.scj-footer-link:hover { color: #fff; }

/* Plataforma */
.scj-footer-plataforma-desc {
    font-size: .82rem;
    color: rgba(255,255,255,.5);
    line-height: 1.65;
    margin-bottom: 1rem;
}
.scj-footer-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: #cc0000;
    color: #ffffff;
    font-size: .85rem;
    font-weight: 700;
    padding: .65rem 1.2rem;
    border-radius: .5rem;
    text-decoration: none;
    transition: background .15s;
}
.scj-footer-btn:hover { background: #aa0000; }

/* Copyright */
.scj-footer-copyright-bar {
    border-top: 1px solid rgba(255,255,255,.08);
    padding: 1rem 1.5rem;
    text-align: center;
}
.scj-footer-copyright {
    font-size: .75rem;
    color: rgba(255,255,255,.25);
    margin: 0;
}

/* ════════════════════════════════════════════════════════════════════════════
   CONTENIDO DE PÁGINAS Y ENTRADAS (page.php / single.php)
   Estilos para el área de contenido del editor de WordPress.
════════════════════════════════════════════════════════════════════════════ */

.scj-page-content p           { margin-bottom: 1.4rem; }
.scj-page-content h1,
.scj-page-content h2,
.scj-page-content h3,
.scj-page-content h4,
.scj-page-content h5,
.scj-page-content h6          { color: #0c2340; font-weight: 800; line-height: 1.3; margin: 2rem 0 .75rem; }
.scj-page-content h2          { font-size: 1.6rem; }
.scj-page-content h3          { font-size: 1.3rem; }
.scj-page-content h4          { font-size: 1.1rem; }
.scj-page-content a           { color: #cc0000; text-decoration: underline; }
.scj-page-content a:hover     { color: #aa0000; }
.scj-page-content ul,
.scj-page-content ol          { padding-left: 1.5rem; margin-bottom: 1.4rem; }
.scj-page-content ul          { list-style: disc; }
.scj-page-content ol          { list-style: decimal; }
.scj-page-content li          { margin-bottom: .4rem; line-height: 1.7; }
.scj-page-content blockquote  {
    border-left: 4px solid #cc0000;
    margin: 1.5rem 0;
    padding: 1rem 1.5rem;
    background: #f8f9fa;
    border-radius: 0 .5rem .5rem 0;
    font-style: italic;
    color: #6b7280;
}
.scj-page-content img         { max-width: 100%; height: auto; border-radius: .75rem; margin: 1rem 0; }
.scj-page-content table       { width: 100%; border-collapse: collapse; margin-bottom: 1.4rem; font-size: .9rem; }
.scj-page-content th          { background: #0c2340; color: #fff; padding: .65rem 1rem; text-align: left; font-weight: 700; }
.scj-page-content td          { padding: .6rem 1rem; border-bottom: 1px solid #f0f0f0; }
.scj-page-content tr:nth-child(even) td { background: #f8f9fa; }
.scj-page-content hr          { border: none; border-top: 2px solid #f0f0f0; margin: 2rem 0; }
.scj-page-content pre,
.scj-page-content code        { background: #f1f5f9; border-radius: .4rem; font-family: monospace; font-size: .9em; padding: .15rem .4rem; }
.scj-page-content pre         { padding: 1rem 1.25rem; overflow-x: auto; margin-bottom: 1.4rem; }

/* Banner de imagen en page.php / single.php */
.scj-page-banner img          { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ════════════════════════════════════════════════════════════════════════════
   BANNER DE PÁGINAS INTERNAS (page.php / single.php)
════════════════════════════════════════════════════════════════════════════ */

/* Título del banner */
.scj-page-banner-titulo {
    font-size: clamp(1.8rem, 4vw, 3rem);
    line-height: 1.15;
    text-shadow: 0 2px 12px rgba(0,0,0,.4);
}

/* Subtítulo del banner */
.scj-page-banner-subtitulo {
    font-size: 1.05rem;
    line-height: 1.7;
}

/* Imagen de fondo posicionada */
.scj-page-banner img.img-cover {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   LAYOUTS DE PÁGINA Y SIDEBAR
════════════════════════════════════════════════════════════════════════════ */

/* ── Layout por defecto ── */
.scj-layout-default  { max-width: 56rem;  margin-left: auto; margin-right: auto; }
.scj-layout-wide     { max-width: 80rem;  margin-left: auto; margin-right: auto; }
.scj-layout-full     { max-width: 100%;   }

/* ── Layouts con sidebar ── */
.scj-layout-sidebar-right,
.scj-layout-sidebar-left {
    display: grid;
    gap: 3rem;
    align-items: start;
    max-width: 80rem;
    margin-left: auto;
    margin-right: auto;
}
.scj-layout-sidebar-right { grid-template-columns: 1fr 300px; }
.scj-layout-sidebar-left  { grid-template-columns: 300px 1fr; }

@media (max-width: 1024px) {
    .scj-layout-sidebar-right,
    .scj-layout-sidebar-left {
        grid-template-columns: 1fr;
    }
    .scj-layout-sidebar-left .scj-sidebar { order: 2; }
}

/* ── Sidebar ── */
.scj-sidebar { position: sticky; top: 100px; }

/* Widgets del sidebar */
.scj-widget {
    background: #f8fafc;
    border-radius: .75rem;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
    border: 1px solid #f0f0f0;
}
.scj-widget-titulo {
    font-size: .9rem;
    font-weight: 800;
    color: #0c2340;
    margin: 0 0 .85rem;
    padding-bottom: .65rem;
    border-bottom: 2px solid #cc0000;
}

/* Widgets nativos de WordPress dentro del sidebar */
.scj-widget ul { list-style: none; margin: 0; padding: 0; }
.scj-widget ul li {
    padding: .4rem 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: .85rem;
    color: #374151;
}
.scj-widget ul li:last-child { border-bottom: none; }
.scj-widget ul li a { color: #0c2340; text-decoration: none; transition: color .15s; }
.scj-widget ul li a:hover { color: #cc0000; }
.scj-widget img { max-width: 100%; border-radius: .5rem; }
.scj-widget p  { font-size: .85rem; color: #6b7280; line-height: 1.65; margin-bottom: .6rem; }
.scj-widget p:last-child { margin-bottom: 0; }

/* ── Panel del editor Gutenberg (editor-sidebar.js) ─────────────────────── */
.scj-editor-panel .components-panel__body-title button { color: #cc0000 !important; }

/* ════════════════════════════════════════════════════════════════════════════
   FIX CRÍTICO: Logo navbar — máxima especificidad
   Previene que plugins (AIP, FullCalendar, etc.) rompan el tamaño del logo.
   Se aplica en TODAS las páginas sin excepción.
════════════════════════════════════════════════════════════════════════════ */

/* Contenedor del logo — siempre flex, sin desbordamiento */
nav#scj-navbar a.custom-logo-link,
nav#scj-navbar .custom-logo-link {
    display:        flex   !important;
    align-items:    center !important;
    flex-shrink:    0      !important;
    overflow:       hidden !important;
    line-height:    1      !important;
    text-decoration:none   !important;
}

/* Imagen del logo — tamaño fijo, nunca desborda */
nav#scj-navbar a.custom-logo-link img,
nav#scj-navbar .custom-logo-link img,
nav#scj-navbar .custom-logo-link img.custom-logo {
    display:    block           !important;
    height:     56px            !important;
    width:      auto            !important;
    max-height: 56px            !important;
    max-width:  70px            !important;
    min-height: unset           !important;
    min-width:  unset           !important;
    object-fit: contain         !important;
    margin:     0               !important;
    padding:    0               !important;
    border:     none            !important;
    box-shadow: none            !important;
    transform:  none            !important;
}

/* Bloque de texto del nombre — nunca se sale de la navbar */
nav#scj-navbar #scj-nombre-bloque,
nav#scj-navbar .scj-nombre-ie,
nav#scj-navbar .scj-eslogan-ie {
    overflow:    hidden     !important;
    white-space: nowrap     !important;
    max-width:   260px      !important;
}

/* Altura fija de la navbar — ningún plugin puede expandirla */
nav#scj-navbar {
    min-height: unset  !important;
    max-height: 80px   !important;
    height:     80px   !important;
    overflow:   visible !important; /* para los dropdowns */
}

/* Solo la barra interna respeta los 80px — NO el menú móvil */
nav#scj-navbar > div:first-child {
    height:     80px !important;
    max-height: 80px !important;
}

/* Breadcrumb del banner de páginas — hover con CSS (sin handlers inline) */
.scj-breadcrumb-link { color: rgba(255,255,255,.5); text-decoration: none; transition: color .15s; }
.scj-breadcrumb-link:hover { color: #ffffff; }

/* Subítems del acordeón móvil — hover con CSS (sin handlers inline) */
.scj-mob-sub a:hover { color: #cc0000 !important; }

/* Menú móvil: posicionado absolutamente, altura libre, fondo sólido garantizado */
@media (max-width: 1023px) {
    #scj-mobile-menu {
        position:   absolute !important;
        top:        80px     !important;
        left:       0        !important;
        right:      0        !important;
        width:      100%     !important;
        height:     auto     !important;
        max-height: none     !important;
        background: #ffffff  !important;
        z-index:    100      !important;
        box-shadow: 0 8px 24px rgba(0,0,0,.15) !important;
        overflow:   visible  !important;
    }
}

/* ════════════════════════════════════════════════════════════════════════════
   FIX FULLCALENDAR / PLUGIN AIP
   Garantiza que el calendario no sea comprimido por los contenedores del theme.
════════════════════════════════════════════════════════════════════════════ */

/* El contenedor de FullCalendar ocupa todo el ancho disponible */
.fc,
.fc-view-harness,
.fc-view-harness-active,
.fc-scrollgrid,
.fc-scrollgrid table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

/* Las celdas del calendario respetan el ancho del grid */
.fc .fc-scrollgrid-section,
.fc .fc-scrollgrid-section table,
.fc .fc-scrollgrid-section-liquid {
    width: 100% !important;
}

/* Eventos — no comprimir texto innecesariamente */
.fc-event-title,
.fc-event-time,
.fc-daygrid-event-dot {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* Leyenda de colores (fc-list-event-dot / custom legend) */
.aip-leyenda,
.fc-list-table,
.reserva-aip-leyenda {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
}

/* Si el theme aplica max-width al contenedor del shortcode, sobreescribir */
.entry-content .fc,
.scj-page-content .fc,
#primary .fc,
.ast-article-single .fc,
.site-content .fc {
    width: 100% !important;
    max-width: 100% !important;
}

/* Cuando el layout es full o wide, el calendario ocupa todo */
.scj-layout-full .fc,
.scj-layout-wide .fc {
    max-width: 100% !important;
}

/* Asegurar que el wrapper del plugin AIP no tenga restricciones */
#reserva-aip-wrapper,
#aip-calendar-wrapper,
.aip-reserva-container,
[id*="reserva"],
[class*="reserva-aip"] {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important; /* scroll horizontal en móvil */
}

/* ════════════════════════════════════════════════════════════════════════════
   FIX FULLCALENDAR (Plugin AIP / Aula TIC)
   Aísla completamente los estilos de FullCalendar del CSS del theme.
   Tailwind resetea table/td/th globalmente — esto los restaura para .fc
════════════════════════════════════════════════════════════════════════════ */

/* ── Contenedor raíz de FullCalendar ── */
.fc {
    width:     100%   !important;
    max-width: none   !important;
    min-width: 0      !important;
    box-sizing: border-box !important;
}

/* ── Tabla del calendario — restaurar comportamiento nativo ── */
.fc table {
    width:           100%          !important;
    max-width:       none          !important;
    border-collapse: separate      !important;
    border-spacing:  0             !important;
    table-layout:    fixed         !important;
    display:         table         !important;
    box-sizing:      border-box    !important;
}

/* ── Celdas de cabecera (LUN, MAR, MIÉ...) ── */
.fc th,
.fc thead th,
.fc-col-header-cell {
    display:    table-cell  !important;
    width:      auto        !important;
    max-width:  none        !important;
    padding:    8px 4px     !important;
    text-align: center      !important;
    font-weight: 600        !important;
    font-size:  .8rem       !important;
    color:      #374151     !important;
    background: #f8fafc     !important;
    border:     1px solid #e5e7eb !important;
    box-sizing: border-box  !important;
}

/* ── Celdas de días ── */
.fc td,
.fc-daygrid-day {
    display:   table-cell !important;
    width:     auto       !important;
    max-width: none       !important;
    min-width: 0          !important;
    padding:   0          !important;
    border:    1px solid #e5e7eb !important;
    box-sizing: border-box !important;
    vertical-align: top   !important;
}

/* ── Filas de semanas ── */
.fc tr,
.fc-daygrid-body tr {
    display: table-row !important;
    width:   auto      !important;
}

/* ── Cuerpo del daygrid ── */
.fc-daygrid-body,
.fc-scrollgrid-sync-table {
    width:     100% !important;
    max-width: none !important;
    min-width: 0    !important;
}

/* ── Número de día ── */
.fc-daygrid-day-number {
    padding:     4px 6px  !important;
    font-size:   .85rem   !important;
    color:       #6b7280  !important;
    font-weight: 500      !important;
    text-decoration: none !important;
}

/* ── Día actual (círculo rojo/guinda) ── */
.fc-day-today {
    background: rgba(204,0,0,.05) !important;
}
.fc-day-today .fc-daygrid-day-number {
    background:  #8b1a2a   !important;
    color:       #fff      !important;
    border-radius: 50%     !important;
    width:       26px      !important;
    height:      26px      !important;
    display:     flex      !important;
    align-items: center    !important;
    justify-content: center !important;
    font-weight: 700       !important;
}

/* ── Eventos ── */
.fc-event,
.fc-daygrid-event {
    border-radius: 4px    !important;
    padding:       2px 5px !important;
    font-size:     .75rem  !important;
    margin:        1px 2px !important;
    overflow:      hidden  !important;
    cursor:        pointer !important;
}

/* ── Barra de navegación del calendario ── */
.fc-toolbar {
    display:         flex         !important;
    align-items:     center       !important;
    justify-content: space-between !important;
    flex-wrap:       wrap         !important;
    gap:             8px          !important;
    margin-bottom:   1.25rem      !important;
    padding:         0            !important;
}
.fc-toolbar-title {
    font-size:   1.1rem  !important;
    font-weight: 700     !important;
    color:       #0c2340 !important;
}

/* ── Botones del toolbar (Mes, Semana, Agenda, Hoy, ‹ ›) ── */
.fc-button,
.fc-button-primary {
    background:    #fff          !important;
    border:        1px solid #d1d5db !important;
    color:         #374151       !important;
    border-radius: 6px           !important;
    padding:       5px 12px      !important;
    font-size:     .82rem        !important;
    font-weight:   600           !important;
    cursor:        pointer       !important;
    transition:    all .15s      !important;
    box-shadow:    none          !important;
    text-transform: none         !important;
}
.fc-button:hover,
.fc-button-primary:hover {
    background: #f3f4f6 !important;
    border-color: #9ca3af !important;
}
.fc-button-active,
.fc-button-primary:not(:disabled).fc-button-active {
    background:   #8b1a2a !important;
    border-color: #8b1a2a !important;
    color:        #fff    !important;
}

/* ── Leyenda de aulas (AIP · Aula CIST) ── */
.fc-legend,
.aip-leyenda {
    display:     flex        !important;
    align-items: center      !important;
    gap:         1rem        !important;
    font-size:   .82rem      !important;
    font-weight: 600         !important;
    margin-bottom: .75rem    !important;
    flex-wrap:   wrap        !important;
}

/* ── Scrollgrid (contenedor exterior de la tabla) ── */
.fc-scrollgrid {
    border:    1px solid #e5e7eb !important;
    width:     100%              !important;
    max-width: none              !important;
}
.fc-scrollgrid-section > td {
    border: none !important;
}

/* ── Resetear cualquier max-width del contenedor padre ── */
.fc-view-harness,
.fc-view-harness-active {
    width:     100% !important;
    max-width: none !important;
    height:    auto !important;
    min-height: 400px !important;
}
