/* ==========================================================================
   2. AJUSTES DE ACCESIBILIDAD (A11y & Contrast)
   ========================================================================== */

/* Lector de pantalla (Solo lectura) */
.sr-only {
   position: absolute;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border-width: 0;
}

/* Subrayado de seguridad AA */
.underline-aa\! {
   text-decoration: underline !important;
   font-weight: 700 !important;
}

/* Colores de Texto con Contraste Garantizado */
.text-grey-aa\! {
   color: var(--text-grey-aa) !important;
}

.text-complementary-aa\! {
   color: var(--comp-dark) !important;
}

.text-ust-dark-aa\! {
   color: var(--ust-darker) !important;
}

/* Fondos con Contraste Garantizado */
.bg-ip-dark\! {
   background-color: var(--ip-dark) !important;
}

.bg-complementary-aa\! {
   background-color: var(--comp-dark) !important;
}

/* ==========================================================================
   3. PREVENCIÓN DE CLS Y RENDIMIENTO (Layout Stability)
   ========================================================================== */

/* Estabilidad de Imágenes y Sliders */
.slider--main {
   min-height: 300px;
   width: 100%;
}

.home .access .cover-img,
.home .modulo-destacado .cover-img,
.home .modulo-vinculacion-medios .cover-img,
.modulo-destacado img,
[data-module=slider].slider--main .slider__figure img {
   width: 100%;
   height: auto;
   aspect-ratio: 16 / 9;
   display: block;
   object-fit: cover;
   background-color: #f3f3f3;
}

/* Optimización de Renderizado */
section.content-section.min-h-\[400px\] {
   content-visibility: auto;
}

/* ==========================================================================
   4. ESTILOS ESPECÍFICOS DE COMPONENTES
   ========================================================================== */

/* Navegación y Botones */
.carreras-nav .carreras-nav-list>li>a:not(:hover):not(.admision--btn) {
   background-color: #00ad96 !important;
}

.mobile-search-deployer {
   background-color: #00695b !important;
}

.mobile-search-deployer:hover {
   background-color: #00ad96 !important;
}

.admision-stripe h2 a {
   text-decoration: underline;
   text-decoration-thickness: 2px;
   text-underline-offset: 2px;
   font-weight: 500;
}

.admision--btn:not(:hover) {
   color: #FFF;
   background: linear-gradient(to bottom, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.06)), #ff6f43 !important;
}

/* Enlaces y Elementos de Interfaz */
a.archive-link.link-rollover-complementario:not(:hover),
.simple-experto__autor a:not(:hover),
.button-ghost--complementario {
   color: #bf5548 !important;
   border-color: #bf5548;
}

a.mobile-archive-link {
   color: #99463b !important;
   font-weight: 600 !important;
   background: hsla(0, 0%, 0%, 0.01);
   padding: 0.4em 0.8em;
   border-radius: 4px;
   display: inline-block;
}

/* Footer y Detalles */
.footer-nav-items .sub-menu a:not(:hover),
.footer-disclaimer {
   color: #FFF !important;
}

article em,
.event-info-place,
.simple-editorial__meta a {
   color: #767676 !important;
}

/* Ajustes de Formularios y Filtros */
.inline-filters:has(.sr-only) {
   flex-direction: column;
   width: 100%;
   justify-content: flex-end;
}

.inline-filters .select,
.inline-filters select {
   background-origin: border-box;
}

.search-box.flex {
   /* align-items: flex-start !important; */
}

/* Media Queries de Componentes */
@media (max-width: 1024px) {

   .button:not(.big),
   .download-form-deployer:not(.big),
   .form-control__submit:not(.big) {
      font-size: 12px;
   }
}

@media (max-width: 767px) {
   .search-box.flex {
      min-height: 700px;
   }

   .hide-on-device,
   .no-device .only-on-device {
      display: none !important;
   }
}

@media only screen and (min-width: 851px) {
   .home .access h3+p {
      min-height: 4.5em;
   }
}

.gallery {
   margin: 0 !important;
}

.gallery .elastic-img {
   object-fit: cover;
   height: 100% !important;
}

.button.auxiliar-regular {
   background: #bfb540 !important;
   color: #fff;
   text-shadow: 0 1px 1px rgba(0,0,0,.45);
   box-shadow: inset 0 0 0 3em #bfb540;
}

.button.button.auxiliar-regular:hover{
   background: #ccc466 !important;
   box-shadow: inset 0 0 0 3em #ccc466;
}

.event .event-info .event-info-title.event-link>a {
   color: #008272 !important;
}

.mobile-logo-holder {
   margin: 0 auto !important;
   font-size: 14px !important;
}

@media only screen and (max-width: 851px) {
   #main-header+.admision-stripe {
      margin-top: 3.75rem !important;
   }
}