:root {
/*text-shadow: 1px 1px 5px #000;*/
	--azul: #183b89;
	--azul-obscuro: #374f84;
	--dorado: #b69859;
}

html {
  min-height: 100vh; /* Establece la altura del html al 100% del viewport */
  box-sizing: border-box; /* Asegura que el padding y borde se incluyan en el cálculo del tamaño */
  scroll-behavior: smooth;	/* Scroll suave */
}

body {
  min-height: 100vh; /* Establece la altura mínima del cuerpo al 100% del viewport */
  margin: 0; /* Elimina el margen predeterminado del body */
  box-sizing: border-box; /* Asegura que el padding y borde se incluyan en el cálculo del tamaño */
}

footer, nav {
	background-color: var(--azul);
	color: white;
	padding: 1rem;
}   

footer {
	text-align: justify;
	text-justify: inter-word;
} 

footer * {
	color: #e2e2e3 !important;
} 

a {
	text-decoration: none !important;
	text-shadow: none;
}

/* TITULOS - inicio */

.section-title{
  font-size:1.8rem;
  color:#183b89;
  font-weight:600;
}
/* TITULOS - fin */

#categorias > div:first-child .flip-card-front,#categorias > div:nth-child(6) .flip-card-front{
	border: .03em solid #d2d2d2;
	border-radius: 15px;
	background-size: contain;
	background-repeat: no-repeat;
}

.banner-container {
	background-image: url('../img/banner.jpg');
	background-position: bottom;
	background-repeat: no-repeat;
	font-size: xx-large;
	/*margin-top: 70px;*/
	background-size: cover;
	/*text-shadow: 0 0 3px #343a40, 0 0 3px #27416c;*/
}

.banner-text {
	text-align: center;
	font-size: xx-large;
	text-shadow: 0 0 5px #fff, 0 0 3px #27416c;
}

.nav-item > .nav-link {
  color: #ffffff; 
}

.nav-item > .nav-link:hover {
  color: var(--dorado);
}

.titulo-pagina {
	background-color: var(--azul);
}

.flip-card {
background-color: transparent;
perspective: 1000px;
}
.flip-card-inner {
position: relative;
width: 100%;
height: 250px;
text-align: center;
transition: transform 0.8s;
transform-style: preserve-3d;
}
.flip-card:hover .flip-card-inner {
transform: rotateY(180deg);
}
.flip-card-front, .flip-card-back {
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
border-radius: 15px;
overflow: hidden;
}
.flip-card-front {
background-size: cover;
background-position: center;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
}
.flip-card-back {
	background-color: var(--dorado);
	color: white;
	transform: rotateY(180deg);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 1rem;
}
.btn-outline-light:hover {
background-color: var(--dorado);
color: #000;
}

#actividadesAccordion .flip-card-front {
	background-color: var(--azul-obscuro);
}

.logo_areasc {
	width: 25px;
	margin-right: 15px;
}

.logo_sociales {
	transform: rotate(20deg);
}

/* Inicia acordeón */

.accordion-button {
  padding: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  transition: background-color 0.3s ease;
}
.accordion-button:not(.collapsed) {
  /*background-color: var(--dorado) !important;
	color: #000 !important;
  */
  background-color: #fff !important;
  color: #000 !important;
  /*color: var(--dorado) !important;*/
  font-weight: bold;
}
.accordion-body {
  	min-height: 60vh;

	border: 0px !important;
  	border-style: solid !important;
	border-color: var(--dorado) !important;
	border-top-width: 0.07em !important;
}

.accordion-item {
	border: 0px !important;
	border-style: solid !important;
	border-color: var(--dorado) !important;
	border-bottom-width: 2px !important;
}

.sombreado {
	text-shadow: 1px 1px 5px #000;
}

/*.flip-card {
  height: 300px;
}
.flip-card-front h3 {
  background-color: rgba(0,0,0,0.5);
  padding: 0.5rem;
  border-radius: 10px;
}*/

/* Finaliza acordeón */

/* =========================
   BOTÓN SCROLL TOP
   ========================= */

#btnScrollTop {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--dorado); /* Azul UNAM */
  color: #ffffff;
  border: none;
  cursor: pointer;
  /*display: none;*/
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  z-index: 999;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
  transition: all 0.3s ease;

    display: flex; /* NO none */
  opacity: 0;
  pointer-events: none;
  z-index: 2000;
}

#btnScrollTop.show {
  opacity: 1;
  pointer-events: auto;
}

#btnScrollTop:hover {
  background-color: var(--dorado); /* Dorado institucional */
  transform: translateY(-3px);
}

/* En móviles */
@media (max-width: 768px) {
  #btnScrollTop {
    width: 42px;
    height: 42px;
    bottom: 20px;
    right: 20px;
    display: inline;
  }
}

/* =========================
   FIN - BOTÓN SCROLL TOP
   ========================= */

/* =========================
   OBJETIVOS – CARDS
   ========================= */

.objetivo-card {
  border-left: 6px solid var(--dorado) !important;
  padding: 1rem;
}

.objetivo-img img {
  /*max-width: 70px;*/
  margin: 0 auto;
}

/* Texto */
.objetivo-text {
  padding: 0.5rem 1rem;
  text-align: justify;
}

.objetivo-text h5 {
  font-weight: 600;
  color: #183b89;
}

/* Ajustes móviles */
@media (max-width: 767px) {
  .objetivo-card {
    text-align: center;
  }

  .objetivo-text {
    padding-top: 1rem;
  }
}
/* =========================
   FIN - OBJETIVOS – CARDS
   ========================= */

/* =========================
   TÍTULOS CABECERA
   ========================= */

.hero-title {
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  /*color: #ffffff;*/
  margin-bottom: 0.5rem;
  text-shadow: 0 2px 4px rgba(0,0,0,0.25);
}

/* Subtítulo */
.hero-subtitle {
  font-size: clamp(1.2rem, 3vw, 1.6rem);
  font-weight: 400;
  /*color: #ffffff;*/
  margin-bottom: 0.25rem;
}

/* Frase clave */
.hero-tagline {
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--dorado); /* Dorado UNAM */
  margin-bottom: 1rem;
}

/* Institución */
.hero-institution {
  font-size: 0.95rem;
  opacity: 0.85;
  letter-spacing: 0.05em;
}

/* ELIMINAMOS sombras excesivas */
.hero-title,
.hero-subtitle,
.hero-tagline,
.hero-institution {
  text-shadow: none;
}

/* =========================
   FIN - TÍTULOS CABECERA
   ========================= */

/*
.subnav-pilep a i {
  margin-right: 0.4rem;
  color: #b69859;
}*/


/*.subnav-pilep {
  background-color: #f5f7fb;
  padding: 1rem 0;
  display: flex;
  justify-content: center;
  gap: 1rem;
  border-bottom: 1px solid #ddd;
}

.subnav-pilep a {
  background-color: transparent;
  color: #183b89;
  padding: 0.6rem 1.4rem;
  border-radius: 30px;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.3s ease;
}

.subnav-pilep a.active {
  background-color: #183b89;
  color: #ffffff;
  box-shadow: 0 4px 10px rgba(24,59,137,0.3);
}

.subnav-pilep a:hover:not(.active) {
  background-color: rgba(24,59,137,0.1);
}*/


/*.subnav-pilep {
  background-color: #183b89;
  padding: 1rem;
  display: flex;
  justify-content: center;
  gap: 1rem;
}

.subnav-pilep a {
  color: #ffffff;
  padding: 0.6rem 1.2rem;
  text-decoration: none;
  font-weight: 500;
  border-bottom: 3px solid transparent;
  transition: all 0.3s ease;
}

.subnav-pilep a.active,
.subnav-pilep a:hover {
  border-bottom: 3px solid #b69859;
}

--*/


/* ============================= */
/* NAV - inicio */
/* ============================= */

/* ============================= */
/* WRAPPER con efecto fade */
/* ============================= */

.subnav-wrapper {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: #f5f7fb;
  border-bottom: 1px solid #ddd;
}

/* Efecto fade derecho */
.subnav-wrapper::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 100%;
  pointer-events: none;
  background: linear-gradient(
    to left,
    #f5f7fb 0%,
    rgba(245,247,251,0) 100%
  );
  display: none;
}


/* Subnav base */
.subnav-pilep {
  background-color: #f5f7fb;
  padding: 1rem 0;
  display: flex;
  justify-content: center;
  gap: 1rem;
  border-bottom: 1px solid #ddd;
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* Links */
.subnav-link {
  background-color: transparent;
  color: #183b89;
  padding: 0.6rem 1.4rem;
  border-radius: 30px;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.3s ease;
}

/* Hover */
.subnav-link:hover {
  background-color: rgba(24,59,137,0.1);
}

/* Activo */
.subnav-link.active {
  background-color: #183b89;
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(24,59,137,0.3);
  transform: translateY(-2px);
}

/* Animación sutil */
.subnav-link {
  transition: all 0.35s cubic-bezier(.4,0,.2,1);
}

/* Espacio visual */
.pilep-section {
  /*min-height: 100vh;*/
  padding-top: 80px;
}

.pilep-section p {
  text-align: justify;
}

/* ============================= */
/* MÓVIL */
/* ============================= */

@media (max-width: 768px) {

  .subnav-pilep {
    overflow-x: auto;
    justify-content: flex-start;
    scroll-snap-type: x mandatory;
  }

  .subnav-link {
    scroll-snap-align: start;
  }

  /* Mostrar fade sólo en móvil */
  .subnav-wrapper::after {
    display: block;
  }

  /* Ocultar scrollbar */
  .subnav-pilep::-webkit-scrollbar {
    display: none;
  }

  .subnav-pilep {
    scrollbar-width: none;
  }
}

/* ============================= */
/* NAV - fin */
/* ============================= */


/* ============================= */
/* RUTAS DE INFORMACIÓN - inicio */
/* ============================= */

.ruta-card{
  border:none;
  border-radius:14px;
  transition:.35s;
  box-shadow:0 3px 10px rgba(0,0,0,0.05);
}

.ruta-card:hover{
  transform:translateY(-6px);
  box-shadow:0 12px 30px rgba(0,0,0,0.1);
}

.ruta-card:hover svg{
    transform:scale(1.1);
    transition:0.3s ease;
}

.ruta-card:hover circle.foco, .ruta-card:hover line.foco {
  stroke:#b69859;
  fill:#b69859;
}

.ruta-card circle.foco {
  fill:#183b89;
}

/* ICONOS */

.pilep-icon{
  width:60px;
  height:60px;
  margin:auto;
  margin-bottom:15px;
  color:#183b89;
}

.pilep-icon-sm svg{
width:36px;
height:36px;
}

.pilep-icon svg{
  width:100%;
  height:100%;

  fill:none;
  stroke:#183b89;
  stroke-width:1.5;
}

.icon-wrapper{

background:#f5f7fb;

width:80px;
height:80px;

border-radius:50%;

display:flex;
align-items:center;
justify-content:center;

margin:auto;
}

/* BOTON */
.btn-ruta{
  border:1px solid #183b89;
  color:#183b89;
  border-radius:25px;
  padding:6px 18px;
}

.btn-ruta:hover{
  background:#183b89;
  color:white;
}

/* PROGRAMAS */
.card-programa{
  border:none;
  border-left:4px solid #b69859;
  box-shadow:0 3px 10px rgba(0,0,0,0.05);
}

.programa-title{
  color:#183b89;
  font-weight:600;
}

/* ============================= */
/* RUTAS DE INFORMACIÓN - fin    */
/* ============================= */
