/* ==========================================================================
   1. Variables de diseño
   ========================================================================== */

:root {
  /* Paleta corporativa */
  --color-primary:        #F8C111;
  --color-primary-hover:  #e3b10e;
  --color-secondary:      #5B7674;
  --color-secondary-hover:rgb(79, 100, 98);
  --color-dark:           #212529;
  --color-muted:          #999999; /* Gris — hover de botón primario */
  --color-white:          #ffffff;
  --color-primary-tint:   #ffe387c5; /* tinte del color principal */
  --color-secondary-tint: #6f8786ac; /* tinte del color secundario */

  /* Cabecera */
  --header-min-height: clamp(76px, 10vw, 110px);
  --logo-height: clamp(60px, 8vw, 90px);

  /* Carrusel */
  --slider-height: 540px;
}


/* ==========================================================================
   2. Cabecera y logo
   ========================================================================== */

header,
header .container {
  min-height: var(--header-min-height);
  display: flex;
  align-items: center;
}

header .logo {
  position: static; /* dejamos que flex lo centre */
  height: var(--logo-height);
  width: auto;
}

/* Imagen decorativa de cabecera oculta en pantallas pequeñas */
@media screen and (max-width: 1007px) {
  header .container {
    background-image: none;
  }
}

@media screen and (max-width: 575px) {
  header .container {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }
}


/* ==========================================================================
   3. Enlaces
   ========================================================================== */

a,
footer a {
  color: var(--color-primary);
}

.panel-inicio a:hover,
.panel-inicio a:focus,
footer a:hover,
footer a:focus {
  color: var(--color-primary);
  text-decoration: underline;
}


/* ==========================================================================
   4. Botones
   ========================================================================== */

.btn-primary,
.btn-primary.disabled,
.btn-primary:disabled {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
}

.btn-primary.disabled,
.btn-primary:disabled {
  opacity: 0.7;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary.focus,
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: var(--color-white);
  background-color: var(--color-muted);
  border-color: var(--color-muted);
}


/* ==========================================================================
   5. Navegación
   ========================================================================== */

/* --- Menú principal: estado activo / abierto ----------------------------- */
.navbar-light .navbar-nav .nav-link {
  color: var(--color-dark);
  transition: color 0.15s, box-shadow 0.15s;
}

/* --- Menú principal: evitar saltos de texto sin provocar desbordes -------- */

/* A partir del ancho en el que el menú se muestra horizontalmente */
@media (min-width: 850px) {
  #navbarSupportedContent .navbar-nav {
    flex-wrap: nowrap;
  }

  #navbarSupportedContent .navbar-nav > .nav-item {
    flex: 0 0 auto;
  }

  #navbarSupportedContent .navbar-nav > .nav-item > .nav-link {
    white-space: nowrap;
  }
}

/* Escritorio muy amplio: tamaño normal */
@media (min-width: 1450px) {
  #navbarSupportedContent .navbar-nav > .nav-item > .nav-link {
    font-size: inherit;
  }
}

/* Escritorio amplio/intermedio */
@media (min-width: 1250px) and (max-width: 1449.98px) {
  #navbarSupportedContent .navbar-nav > .nav-item > .nav-link {
    font-size: 0.85rem;
  }
}

/* Escritorio intermedio */
@media (min-width: 1150px) and (max-width: 1249.98px) {
  #navbarSupportedContent .navbar-nav > .nav-item > .nav-link {
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    font-size: 0.75rem;
  }
}

/* Escritorio estrecho */
@media (min-width: 1050px) and (max-width: 1149.98px) {
  #navbarSupportedContent .navbar-nav > .nav-item > .nav-link {
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    font-size: 0.70rem;
  }
}

/* Punto más delicado antes del cambio a móvil/tablet */
@media (min-width: 850px) and (max-width: 1049.98px) {
  #navbarSupportedContent .navbar-nav > .nav-item > .nav-link {
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    font-size: 0.65rem;
  }
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .show > .nav-link,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .nav-link.active {
  background-color: transparent;
  color: var(--color-primary);
  box-shadow: inset 0 -3px 0 var(--color-primary);
}

/* --- Items de dropdown: hover / focus ------------------------------------ */
.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--color-secondary);
}

/* Excepción: dropdowns del menú principal usan un resaltado granate suave
   (en lugar del fondo oscuro general definido arriba), coherente con el
   subrayado granate del menú padre. */
#navbarSupportedContent .dropdown-item:hover,
#navbarSupportedContent .dropdown-item:focus {
  background-color: var(--color-primary-tint);
  color: var(--color-primary);
}

/* --- Nav pills (pestañas tipo pill) -------------------------------------- */
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link,
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  background-color: var(--color-secondary);
}

/* --- Menú lateral: paso actual ------------------------------------------- */
.sidebar-list li a.currentStep {
  background-color: var(--color-secondary);
}

/* --- Selector de idioma en zona de login --------------------------------- */
.nav-idioma-login ul li ul li a:hover {
  color: var(--color-white);
}


/* ==========================================================================
   6. Carrusel
   ========================================================================== */

.slider {
  position: relative; /* ancla los controles */
}

.carousel-item {
  min-height: var(--slider-height);
  background-size: cover;
}

.carousel-control-prev,
.carousel-control-next {
  position: absolute;
  top: 50%;
  transform: translateY(calc(-50% + 27px)); /* navbar tiene una altura por defecto de 54px */
  height: 48px;
  bottom: auto;
  max-height: none;
  width: 6%;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  width: 48px;
  height: 48px;
  background-color: rgba(0, 0, 0, 0.45);
  border-radius: 50%;
  background-size: 50% 50%;
  background-position: center;
  background-repeat: no-repeat;
  transition: background-color 0.2s;
}

.carousel-control-prev:hover .carousel-control-prev-icon,
.carousel-control-next:hover .carousel-control-next-icon,
.carousel-control-prev:focus .carousel-control-prev-icon,
.carousel-control-next:focus .carousel-control-next-icon {
  background-color: rgba(0, 0, 0, 0.75);
}


/* ==========================================================================
   7. Jumbotron de inicio
   ========================================================================== */

.jumbotron.inicio {
  padding: 0px !important;   /* !important necesario para sobreescribir Bootstrap */
  min-height: 500px;
}

/* Contenido textual oculto visualmente (se conserva en el DOM) */
.jumbotron.inicio .container {
  visibility: hidden;
}


/* ==========================================================================
   8. Action bar (barra superior de acciones)
   ========================================================================== */

.action-bar {
  background-color: var(--color-primary);
}

.action-bar a:link,
.action-bar a:visited {
  color: var(--color-white);
  opacity: 0.9;
  text-decoration: none;
  transition: opacity 0.15s ease-in-out;
}

.action-bar a:hover,
.action-bar a:focus-visible,
.action-bar a:active {
  color: var(--color-white);
  opacity: 1;
}

.action-bar a:focus-visible {
  text-decoration: underline;
}

/* Suprimir el outline azul del navegador al clicar con ratón;
   mantenemos el subrayado como indicador en hover y en focus por teclado. */
.action-bar a:focus:not(:focus-visible) {
  outline: none;
}

/* Dropdowns dentro de la action bar (login e idiomas):
   fondo blanco, texto oscuro, hover granate suave, sin subrayados. */
#ActionBar_liIniciarSesion .dropdown-item,
#ActionBar_panelIdiomas .dropdown-item {
  background-color: var(--color-white);
  color: var(--color-dark);
  text-decoration: none;
}

#ActionBar_liIniciarSesion .dropdown-item:hover,
#ActionBar_liIniciarSesion .dropdown-item:focus,
#ActionBar_panelIdiomas .dropdown-item:hover,
#ActionBar_panelIdiomas .dropdown-item:focus {
  background-color: var(--color-primary-tint);
  color: var(--color-primary);
  text-decoration: none;
}


/* ==========================================================================
   9. Pie de página
   ========================================================================== */

footer .logo-pie {
  width: 80%;
  height: auto;
}

/* Calendario del pie */
footer .calendario {
  max-width: 260px;
}

footer .calendario .calendar {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0.35rem;
}

footer .calendario .calendar th {
  padding: 0 0 0.35rem;
  text-align: center;
  font-weight: 600;
  color: var(--color-secondary);
  text-transform: capitalize;
  font-size: 0.8rem;
  letter-spacing: 0.02em;
}

footer .calendario .calendar td {
  width: 14.28%;
  height: 2.05rem;
  padding: 0;
  text-align: center;
  vertical-align: middle;
  font-size: 0.85rem;
  line-height: 1;
  color: var(--color-muted);
  border-radius: 0.35rem;
}

/* Día vacío */
footer .calendario .calendar .cal-empty {
  color: transparent;
  pointer-events: none;
}

/* Día actual */
footer .calendario .calendar .cal-today {
  color: var(--color-primary);
  font-weight: 700;
  background-color: var(--color-primary-tint);
  border-radius: 4px;
}

/* Día con evento */
footer .calendario .calendar .cal-event {
  background-color: var(--color-primary-soft);
}

footer .calendario .calendar .cal-event a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 2.05rem;
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: none;
  border-radius: 0.35rem;
  transition:
    background-color 0.15s ease-in-out,
    color 0.15s ease-in-out,
    transform 0.15s ease-in-out;
}

footer .calendario .calendar .cal-event a:hover,
footer .calendario .calendar .cal-event a:focus-visible {
  color: var(--color-white);
  background-color: var(--color-primary);
  text-decoration: none;
  transform: translateY(-1px);
}

/* Accesibilidad: foco visible solo en enlaces del calendario */
footer .calendario .calendar .cal-event a:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* Evita el outline al hacer click con ratón */
footer .calendario .calendar .cal-event a:focus:not(:focus-visible) {
  outline: none;
}


/* ==========================================================================
   10. Validaciones
   ========================================================================== */

.validation-summary-errors {
  border-left: 5px solid var(--color-secondary);
}


/* ==========================================================================
   11. Títulos de panel
   ========================================================================== */

/* Títulos de los paneles de inicio y del pie */
.panel-inicio h5,
footer h5 {
  display: block;
  position: relative;
  left: 0 !important;
  text-indent: 0 !important;
  text-align: left;
  font-weight: 600;
  color: var(--color-secondary);
  margin: 0 0 0.4rem 0 !important;
  padding-left: 0 !important;
}

.panel-inicio h5 a,
footer h5 a {
  color: var(--color-secondary);
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* Si el HTML trae glyphicons decorativos antes del título, los ocultamos
   para que el texto quede alineado exactamente con la barra inferior. */
.panel-inicio h5 .glyphicon,
footer h5 .glyphicon {
  display: none;
}

/* Reaprovechamos el <hr> existente como barra de marca */
.panel-inicio hr,
footer hr {
  height: 3px;
  width: 40px;
  background-color: var(--color-primary);
  border: none;
  border-top: none; /* Bootstrap aplica border-top por defecto */
  opacity: 1;
  margin: 0 0 1rem 0;
}

.panel-inicio-sin-datos .sin-datos-panel {
  color: var(--color-primary);
  opacity: 0.22;
}

.panel-inicio-sin-datos {
  text-align: center;
  padding: 1rem 0;
}


/* ==========================================================================
   12. Portal Orienta
   ========================================================================== */

#cphPagina_panelPortalOrienta > div {
  position: relative !important;
  padding: 60px 20px !important;
  overflow: hidden;
}

#cphPagina_panelPortalOrienta > div::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  z-index: 1;
}

#cphPagina_panelPortalOrienta > div > * {
  position: relative;
  z-index: 2;
}

#cphPagina_panelPortalOrienta .btn-primary {
  margin-top: 1rem;
  padding: 0.6rem 2rem;
}