/*
 * Plantilla UVigo 2.0.0 (cassiopeia_uvigo) - CAN Academic Services
 * CSS común de las webs de la Universidade de Vigo (antes, repetido en el user.css de cada web). Lo propio de cada web
 * va en su user.css, que se carga después y no viene en el paquete. Especificación: 02 Especificacion/plantilla-uvigo-2.0.0.md
 */

/* Variables */
:root {
    --uvigo-color: #073349;
    --medium-neutral-color: #809098;
    --light-neutral-color: #eeeeee;
    --lightest-color: #ffffff;
    --entity-color: #61bf1a;
    --dark-color: #000203;
    --cassiopeia-font-family-body: 'Roboto', 'Roboto Fallback', sans-serif;
    --body-font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    /* Títulos también en Roboto (antes, sin esta variable, usaban la fuente del sistema) */
    --cassiopeia-font-family-headings: 'Roboto', 'Roboto Fallback', sans-serif;
}

/* Fonts */
/* Sustituta de Roboto mientras carga: Arial (o su equivalente en Linux) ajustada a las medidas de Roboto (medidas en el
   navegador, 28/10/2026: misma altura de línea y línea base; ancho ±0,3 %), para que el cambio de fuente no mueva el texto */
@font-face {
    font-family: 'Roboto Fallback';
    src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
    size-adjust: 100.13%;
    ascent-override: 94.88%;
    descent-override: 24.97%;
    line-gap-override: 0%;
}

/* Roboto: los mismos archivos que el portal de la UVigo (roboto-v18, tema «uvigo» de www.uvigo.gal, descargados el
   28/10/2026) para las variantes que tiene el portal: 100, 100 cursiva, 300, 400, 500 y 700. Cursivas de 300, 400 y 500:
   el portal no las tiene (el navegador las inclinaría); se usan las de roboto-v47, con las mismas medidas. */
@font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 100;
    src: url('../fonts/roboto-v18-latin-100.woff2') format('woff2');
}

@font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: italic;
    font-weight: 100;
    src: url('../fonts/roboto-v18-latin-100italic.woff2') format('woff2');
}

@font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 300;
    src: url('../fonts/roboto-v18-latin-300.woff2') format('woff2');
}

@font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: italic;
    font-weight: 300;
    src: url('../fonts/roboto-v47-latin-300italic.woff2') format('woff2');
}

@font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/roboto-v18-latin-regular.woff2') format('woff2');
}

@font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/roboto-v47-latin-italic.woff2') format('woff2');
}

@font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 500;
    src: url('../fonts/roboto-v18-latin-500.woff2') format('woff2');
}

@font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: italic;
    font-weight: 500;
    src: url('../fonts/roboto-v47-latin-500italic.woff2') format('woff2');
}

@font-face {
    font-display: swap;
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/roboto-v18-latin-700.woff2') format('woff2');
}

body {
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
}

/* General */
a {
    color: var(--uvigo-color);
}

a:hover {
    color: var(--dark-color);
}

b,strong {
    font-weight: 500;
}

small {
    font-size: .75rem;
}

/* Tipografía del contenido como en las páginas interiores del portal de la UVigo (www.uvigo.gal, tema «uvigo», página
   guardada el 28/10/2026 en E:\Webs UVIGO\Recursos\Portal UVigo): párrafos en Roboto Light, resto del texto en Regular,
   títulos h1-h6 con la fuente, tamaño, interlineado, color y espaciado del portal. Márgenes, los nuestros. */
p {
    font-weight: 300;
    color: #000;
    line-height: 22px;
}

h1, h2, h3, h4, h5, h6 {
    letter-spacing: 1px;
}

/* Headings */
h1 {
	font-weight: 100;
	font-size: 50px;
	line-height: 1.1;
	color: var(--uvigo-color);
	margin-bottom: 0.75em;
}

h2 {
	font-weight: 100;
	font-size: 30px;
	line-height: 40px;
	color: var(--uvigo-color);
	margin: 0.65em 0;
}

h3 {
	font-weight: 300;
	font-size: 22px;
	line-height: 28px;
	color: var(--uvigo-color);
	margin: 0.65em 0;
}

h4 {
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	color: var(--uvigo-color);
}

h5 {
	font-weight: 700;
	font-size: 16px;
	line-height: 22px;
	color: #000;
}

h6 {
	font-weight: 500;
	font-size: 12px;
	line-height: 16px;
	color: #000;
}

.accordion-item h2 {
	font-weight: 100;
	margin: 0;
}

/* Header */
header.container-header {
    background-color: transparent;
    background-image: none;
	border-bottom: 1px solid var(--light-neutral-color);		
}

header.container-header .grid-child {
    padding: 0 0.5em;
}

.top-bar {
    background-color: var(--uvigo-color);
    /*padding: 1em 0 0.25em;*/
	padding: 0.9em 0 0.9em;
}

.top-bar .container {
    display: flex;
    justify-content: space-between;
    /* Mismas medidas que la cabecera (.container-header .grid-child de Cassiopeia: máximo 1320 px, centrado y 0.5em a
       cada lado), no las del .container de Bootstrap (1140 px entre 1200 y 1399 de ancho, 12 px a los lados): así el logo
       de la UVigo y los idiomas quedan alineados con el logo de la web y el menú a cualquier ancho (29/10/2026) */
    max-width: 1320px;
    padding-left: 0.5em;
    padding-right: 0.5em;
}

.top-bar a {
	font-size: .75rem;
    font-weight: 400;
	text-transform: uppercase;
    text-decoration: none;
}

.header-logo-right {
    align-self: center;
}

.navbar-brand {
	margin:  1rem 0;
}

/* Mod Language */
div.mod-languages li {
    margin: 0 0.1rem;
    padding: 0.1em 0;	
}

.mod-languages a {
	/*color: var(--medium-neutral-color);*/
	font-size: .8rem;
	margin:0;
}

div.mod-languages ul li.lang-active {
    border: 1px solid var(--light-neutral-color);
	background-color: var(--uvigo-color);
}

/* Menu principal */
.container-header .navbar-toggler {
    color: var(--uvigo-color);
}

.container-header nav {
    margin-top: 0;
}

.container-header .container-nav {
    flex-wrap: wrap;
    justify-content: end;
    padding: 0;
}

.container-header .mod-menu {
    justify-content: end; 	
}

.container-header .mod-menu > li > a {
    color: var(--uvigo-color);
    /* Mismo aspecto que los elementos con submenú (botones .mm-toggler): tamaño heredado del menú, no 16px (28/10/2026) */
    font-weight: 400;
	padding: 0.5em;
	/*border-top: 10px solid var(--light-neutral-color);*/
	text-transform: uppercase;
    display: flex;
    align-items: center;
    height: 100%;
}

.metismenu.mod-menu .metismenu-item {
    margin: 0 0.4em;
    padding: 0;
}

.metismenu.mod-menu .metismenu-item > li > a {
    /*padding: 0 0.75em;*/
}

.metismenu.mod-menu .metismenu-item.active {
    background-color: var(--light-neutral-color);
}

/* Tamaño del menú de la cabecera como el del portal de la UVigo (16 px; Cassiopeia pone 1.1rem), también en el submenú
   para que no quede mayor que el primer nivel (28/10/2026) */
.container-header .metismenu.mod-menu .metismenu-item {
    font-size: 1rem;
}

/* Al pasar el ratón: fondo azul y letra blanca, en los elementos con submenú (botones) y en los enlaces directos del
   primer nivel (antes solo los botones; la regla de enlaces estaba comentada porque afectaba también al submenú) */
.metismenu.mod-menu .metismenu-item button:hover,
.metismenu.mod-menu > .metismenu-item.level-1 > a:hover {
	background-color: var(--uvigo-color);
    color: var(--lightest-color);
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}

.metismenu.mod-menu .mm-toggler {
    color: var(--uvigo-color);
	text-transform: uppercase;
    user-select: none;
    box-shadow: none;
    background: 0 0;
    border: none;
    align-items: center;
    height: 100%;
    padding: 0.5em;
    display: flex;
    position: relative
}

.metismenu.mod-menu .mm-toggler::after {
    display: none;
}

.metismenu.mod-menu .metismenu-item > ul {
    padding: .5rem 1rem;
}

.metismenu.mod-menu .metismenu-item > ul > li {
    margin: .5rem 0;
}

.navbar-toggler {
    border-radius: 0;
}

/* Component */
.container-top-a,
.container-component {
    padding: 0 0.5em;
}

/* Breadcrumbs */
ol.breadcrumb {
	background-color: var(--lightest-color);
	font-size: 0.8rem;
    padding: .5rem 0 !important;
 	text-transform: uppercase;
}

.breadcrumb .icon-location {
    display: none;
}

/* Lists: como las listas «arrow-list» del portal (relleno, interlineado y posición de la flecha tal cual). 29/10/2026 */
ul.list-peak {
    padding-left: 0;
}
ul.list-peak li {
    display: inline-block;
    line-height: 22px;
    list-style: none;
    padding: 7.5px 15px 7.5px 40px;
    position: relative;
    width: 100%;
}
/* Lista dentro de otra: el mismo paso de 37 px entre todas las líneas (arriba le faltaba el relleno del elemento;
   abajo sobraba el del elemento que la contiene) */
ul.list-peak li > ul.list-peak {
    margin: 7.5px 0 -7.5px;
}

/* Flecha de las listas como la del portal (ElegantIcons arrow_carrot-right, 20 px, #073349) */
ul.list-peak li::before {
    content: "\35";
    color: #073349;
    font-family: "ElegantIcons";
    font-size: 20px;
    font-weight: normal;
    left: 10px;
    line-height: 1;
    position: absolute;
    top: 6.5px;
}

/* Buttons */
.btn {
	border-radius: 0;
	margin-bottom: 3em;
}	

.btn-light {
	text-align: start;
	border-radius: 0;
	margin-bottom: 0;
}

.btn-primary {
    --btn-color: #fff;
    --btn-bg: var(--uvigo-color);
    --btn-border-color: var(--uvigo-color);
    --btn-hover-color: #fff;
    --btn-hover-bg: #67767e;
    --btn-hover-border-color: #67767e;
    --btn-focus-shadow-rgb: 7,51,73;
    --btn-active-color: #fff;
    --btn-active-bg: #67767e;
    --btn-active-border-color: #67767e;
    --btn-active-shadow: inset 0 3px 5px #00000020;
    --btn-disabled-color: #fff;
    --btn-disabled-bg: var(--uvigo-color);
    --btn-disabled-border-color: var(--uvigo-color);
}

.btn-primary {
	background-color: var(--uvigo-color);
	border-color: var(--uvigo-color);
}

/* Una vez pulsado, como el portal, vuelve al color UVigo; Cassiopeia lo dejaba violeta (--cassiopeia-color-hover) */
.btn-primary:focus {
	background-color: var(--uvigo-color);
	border-color: var(--uvigo-color);
}

/* El #809098 del portal da 3,30:1 con texto blanco; #67767e es el mismo tono, también del portal (.btn-info:hover), con 4,70:1 */
.btn-primary:hover {
	background-color: #67767e !important;
	border-color: #67767e;
}

.btn-outline-primary {
    --btn-color: var(--uvigo-color);
    --btn-border-color: var(--uvigo-color);
    --btn-hover-color: #fff;
    --btn-hover-bg: var(--uvigo-color);
    --btn-hover-border-color: var(--uvigo-color);
    --btn-focus-shadow-rgb: 7,51,73;
    --btn-active-color: #fff;
    --btn-active-bg: var(--uvigo-color);
    --btn-active-border-color: var(--uvigo-color);
    --btn-active-shadow: inset 0 3px 5px #00000020;
    --btn-disabled-color: var(--uvigo-color);
    --btn-disabled-bg: transparent;
    --btn-disabled-border-color: var(--uvigo-color);
    --gradient: none;
}

/* Botones que son enlaces, como los del portal de la UVigo: en mayúsculas y con la flecha fina dentro, a la izquierda. btn-no-icon quita la flecha */
a.btn-primary,
a.btn-outline-primary {
	position: relative;
	padding: .875rem 1.5rem .875rem 2.5rem;
	font-size: 16px;
	line-height: 1;
	text-align: left;
	text-transform: uppercase;
	white-space: normal;
}

a.btn-primary.btn-sm,
a.btn-outline-primary.btn-sm {
	padding: .625rem 1.25rem .625rem 2.5rem;
	font-size: 14px;
}

a.btn-primary::before,
a.btn-outline-primary::before {
	content: "\35";
	position: absolute;
	/* 1 px por encima del centro: el dibujo de la flecha de ElegantIcons queda bajo en su caja; así se centra con las mayúsculas del texto (el portal sube 2 px; Maco, 03/11/2026) */
	top: calc(50% - 1px);
	left: 10px;
	transform: translateY(-50%);
	font-family: "ElegantIcons";
	font-size: 20px;
	font-style: normal;
	font-weight: normal;
	line-height: 1;
	text-transform: none;
}

a.btn.btn-no-icon::before {
	content: none;
}

/* Header list */
.header-list {
    font-size: 1rem;
    font-weight: 400;
    color: #666;
    text-transform: uppercase;
}

/* Graylight Block */
.graylight {
    background-color: var(--light-neutral-color);
	padding: 1em 1em 2em 1em;
	margin-top: 3em;
}

/* Tabs */
.nav.nav-tabs {
    background-color: #ffffff;
  /*  border: 1px solid #dfe3e7; */
	border: 0;
  /*  border-bottom: 0; */
  /*border-radius: .25rem .25rem 0 0;*/
    margin: 0;
	justify-content: center;
	padding: 0;
  /*  box-shadow: inset 0 1px #fff,0 2px 3px -3px #00000026,inset 0 -4px #0000000d,1px 1px 4px #0000001a */
    box-shadow: none;
}

.nav.nav-tabs .nav-item {
    margin-bottom: 0;
    margin-left: 0;
}

.nav.nav-tabs .nav-item:first-of-type .nav-link.active {
    border-radius: 0;
    box-shadow: none;
}

.nav.nav-tabs .nav-item:first-of-type .nav-link {
    box-shadow: none;
}

.nav.nav-tabs .nav-item:last-of-type .nav-link {
    box-shadow: none;
}

.nav.nav-tabs .nav-item:last-of-type .nav-link.active {
    box-shadow: none;
}

.nav.nav-tabs .nav-link {
    color: var(--cassiopeia-color-primary);
    border: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    padding: .75em 2em;
    position: relative;
    box-shadow: -1px 0 #0000000d;
    text-transform: uppercase;
}

.nav.nav-tabs .nav-link.active {
    background-color: #ffffff;
    background-image: none;
    border-left: 0;
    border-right: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    box-shadow: none;
}

.nav.nav-tabs .nav-link.active:after {
    content: "";
    background-color: var(--cassiopeia-color-primary);
    opacity: .8;
    height: 5px;
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0
}

.nav-tabs+.tab-content {
    background: #fff;
    /*border: 1px solid #dfe3e7;*/
	border-top: 1px solid var(--medium-neutral-color);
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    padding: 15px;
    box-shadow: none;
}

/* Grid */
 .site-grid {
    padding-bottom: 3rem;
}

/* Card */
.card {
    border-radius: 0;
}

h2.card-header,
h3.card-header {
    margin-top: 0;
}

/* Avatares */
.avatar {
	height: 150px;
	width: 150px;
	border-radius: 50%;
	margin: 1rem 1rem 0;
}

.img-thumbnail {
    background-color: var(--body-bg);
    border: 0;
    border-radius: var(--border-radius);
    max-width: 100%;
    height: auto;
    padding: .25rem;
}

/* Blog */
.item-content a {
	text-decoration: none;
}

.item-content p {
	display: none;
}

.com-content-category-blog__item h2 {
	font-family: 'Roboto', 'Roboto Fallback', sans-serif;
	font-size: 1em;
}

/* Enlace desactivado */
.isDisabled {
	color: currentColor;
	cursor: not-allowed;
	opacity: 0.5;
	text-decoration: none;
	pointer-events: none;
}

/* Carrusel: pie de foto con fondo, a la izquierda; flechas mayores y zona de las flechas más estrecha */
.carousel-caption {
	background-color: rgba(0, 0, 0, 0.5);
	text-align: left;
	padding-left: 0.75rem;
	padding-right: 0.75rem;
}

.carousel-caption h1,
.carousel-caption h2,
.carousel-caption h3,
.carousel-caption p {
	color: #fff;
}

.carousel-caption > :last-child {
	margin-bottom: 0;
}

.carousel-control-prev,
.carousel-control-next {
	width: 5%;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
	width: 3rem;
	height: 3rem;
}

/* Carrusel del módulo Banners (html/mod_banners/carrusel.php): imagen de 540 px recortada; pie en panel blanco, abajo en móvil y a la izquierda desde 768 px */
.carrusel-uvigo .carousel-item {
	height: 540px;
	background-color: #ccc;
}

.carrusel-uvigo .carousel-item > a {
	display: block;
	height: 100%;
}

.carrusel-uvigo .carousel-item img {
	height: 100%;
	object-fit: cover;
}

.carrusel-uvigo .carousel-caption {
	top: auto;
	right: 0;
	bottom: 0;
	left: 0;
	height: 310px;
	padding: 20px 15px 5px;
	overflow-y: auto;
	background-color: rgba(255, 255, 255, 0.9);
	color: var(--uvigo-color);
}

.carrusel-uvigo .carousel-caption h1,
.carrusel-uvigo .carousel-caption h2,
.carrusel-uvigo .carousel-caption h3 {
	margin-top: 0;
	color: var(--uvigo-color);
}

.carrusel-uvigo .carousel-caption p {
	color: #000;
}

.carrusel-uvigo .carousel-caption .btn {
	margin-bottom: 0;
}

.carrusel-uvigo .carousel-control-prev,
.carrusel-uvigo .carousel-control-next {
	bottom: 310px;
	opacity: 1;
}

/* Los tres botones: sin fondo, icono blanco opaco con contorno negro, que se distingue sobre imágenes claras y oscuras; con el foco de teclado, además, un anillo blanco y negro */
.carrusel-uvigo .carousel-control-prev-icon,
.carrusel-uvigo .carousel-control-next-icon,
.carrusel-pausa-icon {
	/* Cuatro sombras sin difuminar: un contorno continuo de 1 px; difuminado, sobre blanco solo llegaba a 3:1 a tramos (medido) */
	filter: drop-shadow(1px 0 0 #000) drop-shadow(-1px 0 0 #000) drop-shadow(0 1px 0 #000) drop-shadow(0 -1px 0 #000);
}

.carrusel-uvigo .carousel-control-prev:focus-visible .carousel-control-prev-icon,
.carrusel-uvigo .carousel-control-next:focus-visible .carousel-control-next-icon,
.carrusel-pausa:focus-visible .carrusel-pausa-icon {
	outline: 2px solid #fff;
	box-shadow: 0 0 0 4px #000;
}

/* Botón de pausa: en el medio, a la altura de las flechas */
.carrusel-pausa {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 310px;
	left: 0;
	z-index: 1;
	width: 3rem;
	height: 3rem;
	margin: auto;
	padding: 0;
	border: 0;
	background: none;
}

.carrusel-pausa:focus-visible {
	outline: 0;
}

.carrusel-pausa-icon {
	display: block;
	width: 100%;
	height: 100%;
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M5 3.5h2v9H5zM9 3.5h2v9H9z'/%3e%3c/svg%3e");
	background-position: 50%;
	background-repeat: no-repeat;
	background-size: 100% 100%;
}

.carrusel-pausa--parado .carrusel-pausa-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M5.5 3.5l6 4.5-6 4.5z'/%3e%3c/svg%3e");
}

/* Diapositiva de vídeo: fondo del color UVigo; el vídeo, en 16:9 y sin recortar, centrado en su hueco */
.carrusel-uvigo .carrusel-video {
	background-color: var(--uvigo-color);
}

.carrusel-video__hueco {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.carrusel-video__hueco iframe {
	display: block;
	width: min(100%, 960px);
	aspect-ratio: 16 / 9;
	border: 0;
}

.carrusel-video--pie .carrusel-video__hueco {
	bottom: 310px;
}

@media (min-width: 768px) {
	.carrusel-video__hueco {
		right: calc(max(0px, (100% - 1352px) / 2) + 24px);
		left: calc(max(0px, (100% - 1352px) / 2) + 24px);
	}

	/* Con pie: desde el borde derecho del panel hasta el borde derecho de la rejilla */
	.carrusel-video--pie .carrusel-video__hueco {
		bottom: 0;
		left: calc(max(0px, (100% - 1352px) / 2) + 368px);
	}
}

/* Móvil: flechas del mismo tamaño que la pausa, sin aplastar en la franja del 5 % */
@media (max-width: 767.98px) {
	.carrusel-uvigo .carousel-control-prev,
	.carrusel-uvigo .carousel-control-next {
		width: 3rem;
	}

	/* Sin pie en ninguna diapositiva: la altura de la imagen cuando hay panel, y los botones centrados */
	.carrusel-uvigo--sin-pie .carousel-item {
		height: 230px;
	}

	.carrusel-uvigo--sin-pie .carousel-control-prev,
	.carrusel-uvigo--sin-pie .carousel-control-next,
	.carrusel-uvigo--sin-pie .carrusel-pausa {
		bottom: 0;
	}
}

/* Por debajo de 1440 px, las flechas se separan de los bordes de la pantalla; por encima ya lo están, centradas en su franja */
@media (max-width: 1439.98px) {
	.carrusel-uvigo .carousel-control-prev {
		left: 8px;
	}

	.carrusel-uvigo .carousel-control-next {
		right: 8px;
	}
}

/* Pantallas grandes con poco margen: botones más pequeños, con las flechas en el margen a la izquierda del panel */
@media (min-width: 992px) and (max-width: 1439.98px) {
	.carrusel-uvigo .carousel-control-prev,
	.carrusel-uvigo .carousel-control-next {
		width: 24px;
	}

	.carrusel-uvigo .carousel-control-prev-icon,
	.carrusel-uvigo .carousel-control-next-icon,
	.carrusel-pausa {
		width: 24px;
		height: 24px;
	}
}

@media (min-width: 768px) {
	.carrusel-uvigo .carousel-caption {
		top: 0;
		right: auto;
		/* borde izquierdo del contenido: la rejilla mide como mucho 1320 px, con 16 px de separación a cada lado y 8 px de relleno */
		left: calc(max(0px, (100% - 1352px) / 2) + 24px);
		/* con este ancho, el hueco del vídeo mide 960 px en pantallas grandes: un vídeo 16:9 llena los 540 px de alto */
		width: 344px;
		height: auto;
		padding: 30px 30px 0;
	}

	.carrusel-uvigo .carousel-control-prev,
	.carrusel-uvigo .carousel-control-next,
	.carrusel-pausa {
		bottom: 0;
	}
}

/* Limit width for some articles */
.limited-width .com-content-article__body div,
.limited-width .com-content-article__body p,
.limited-width .com-content-article figure {
    max-width: 50rem;
}

.limited-width .com-content-article h1 {
    max-width: 70rem;
}

/* Tables */

table.table {
	margin-bottom: 3em;
}
table.table {
    width: 100%;
    border-collapse: collapse;
}

table.table th,
table.table td {
    font-size: 1rem;
    line-height: 1.4;
}

table.table th {
    position: relative;
    padding: 1.5em 1.2em;
    font-weight: 400;
    color: var(--uvigo-color);
    text-transform: uppercase;
    letter-spacing: 1px;
    vertical-align: middle;
}

table.table td {
    padding: 1.2em;
    font-weight: 300;
    color: var(--dark-color);
    vertical-align: top;
    border-bottom: 1px solid var(--light-neutral-color);
}

@media (width <= 768px) {
    th {
		display: none;
	}
    td {
		display: block;
	}
    td::before {
		content: attr(data-label) ": ";
		font-weight: 700;
		text-transform: capitalize;
	}
    tr {
		border-top: 1px solid var(--medium-neutral-color);
	}	
}

/* Announcements */
.announcements-position {
    color: var(--uvigo-color);
 /*   background-color: var(--light-neutral-color); */
}

/* Dos posiciones seguidas no llevan el mismo fondo: con noticias detrás, avisos en gris; sin ellas, en blanco (después viene el pie gris) */
.announcements-position:has(+ .news-position) {
    background-color: var(--light-neutral-color);
}

.announcements-position .grid-child {
    padding: 1.75em 0.5em;
    width: 100%;
}

.announcements-position .announcements {
    flex: 1;
}

/* News module */
.news-position .grid-child {
    padding: 1.75em 0.5em;
}

.news-position .news {
    flex: 1;
}

/* Posiciones de portada de los centros: dos seguidas no llevan el mismo fondo */
/* Studies */
.studies-position {
    color: var(--uvigo-color);
	background-color: var(--light-neutral-color);
}

.studies-position .grid-child {
    padding: 1.75em 0.5em;
    width: 100%;
}

.studies-position .studies {
    flex: 1;
}

/* Direct Links module */
.direct-links-position .grid-child {
    padding: 1.75em 0.5em;
}

.direct-links-position .direct-links {
    flex: 1;
}

/* Equality */
.equality-position {
    color: var(--uvigo-color);
	background-color: var(--light-neutral-color);
}

.equality-position .grid-child {
    padding: 1.75em 0.5em;
    width: 100%;
}

.equality-position .equality {
    flex: 1;
}

/* Quality */
.quality-position {
    color: var(--uvigo-color);
	background-color: #c6d1d6;
}

.quality-position .grid-child {
    padding: 1.75em 0.5em;
    width: 100%;
}

.quality-position .quality {
    flex: 1;
}

/* Footer */
footer.footer {
	color: var(--uvigo-color);
    background-color: var(--light-neutral-color);
    background-image: none;
}

/* Sin franja blanca entre Calidade (centros) y el pie */
.quality-position + footer.footer {
    margin-top: 0;
}

/* Todo el texto del pie igual, como en el pie del portal (Roboto Light): los párrafos con el color del pie (la regla
   general de los párrafos los pone en negro) y las listas en Light (estaban en Regular). 29/10/2026 */
.footer p {
    color: inherit;
}
.footer ul.list-peak li {
    font-weight: 300;
}

.footer a {
	text-decoration: none;
}

.footer a:not(.btn):hover,
.footer a:not(.btn):focus,
.footer .btn-link:hover,
.footer .btn-link:focus {
    color: #000000;
	text-decoration: underline;
}

/* Social */

/* Iconos de las redes (cuarta columna del pie): el último pegado al margen derecho (antes, 6 px hacia dentro por su
   margen) y centrados en la primera línea de las listas del pie (relleno de 7,5 px + línea de 22 px: centro a 18,5 px;
   iconos de 28 px). Misma separación que antes entre iconos (12 px). 29/10/2026 */
.social-link-block {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: flex-end;
    padding-top: 4.5px;
}
.social-link-block .social-link {
    margin: 0;
}

.social-link {
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: 28px;
    display: inline-block;
    height: 28px;
    margin: 0 6px;
    opacity: 1;
    -webkit-transition: opacity .2s;
    -o-transition: opacity .2s;
    transition: opacity .2s;
    width: 28px
}

.social-link:hover {
    opacity: .7
}

.social-link.facebook {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' xml:space='preserve'%3E%3Cpath fill='%233c5a95' d='M21.722 7.972h-2.171c-1.701 0-2.019.816-2.019 1.991v2.614h4.052l-.54 4.094h-3.512v10.496H13.3V16.671H9.772v-4.094H13.3V9.562c0-3.499 2.144-5.407 5.269-5.407 1.493 0 2.779.11 3.153.166v3.651z'/%3E%3C/svg%3E")
}

.social-link.twitter {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='32' height='32' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9L389.2 48zm-24.8 373.8h39.1L151.1 88h-42l255.3 333.8z'/%3E%3C/svg%3E");
    background-size: 23px
}

.social-link.instagram {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' xml:space='preserve'%3E%3Cg fill='%230078b1'%3E%3Cpath d='M28.404 10.602v10.791c-.036.18-.079.358-.106.538a7.598 7.598 0 0 1-7.542 6.47c-3.204.006-6.409.013-9.614-.002-3.437-.016-6.515-2.477-7.298-5.817-.109-.464-.167-.94-.248-1.411V10.824c.031-.142.076-.281.091-.425.352-3.248 2.6-5.807 5.793-6.588l.902-.219h11.236c.103.036.202.088.309.106 2.95.515 4.964 2.172 6.009 4.973.23.617.316 1.286.468 1.931m-1.559 5.416c0-1.594.005-3.188-.001-4.781-.014-3.418-2.635-6.057-6.056-6.074a952.62 952.62 0 0 0-9.563 0c-3.417.017-6.041 2.661-6.051 6.084-.01 3.171-.01 6.34 0 9.509.01 3.395 2.601 6.033 6.007 6.071 3.225.034 6.45.039 9.674-.001 3.408-.042 5.978-2.684 5.989-6.082.005-1.576.001-3.151.001-4.726'/%3E%3Cpath d='M22.272 16.047c-.015 3.488-2.821 6.246-6.334 6.227-3.451-.02-6.229-2.864-6.211-6.362.02-3.413 2.874-6.214 6.32-6.199 3.474.014 6.242 2.83 6.225 6.334m-6.312 4.68c2.669.004 4.802-2.09 4.806-4.721a4.752 4.752 0 0 0-4.73-4.749c-2.626-.007-4.77 2.101-4.78 4.702-.013 2.628 2.095 4.763 4.704 4.768M22.687 10.612c-.837-.006-1.443-.638-1.433-1.496a1.43 1.43 0 0 1 1.44-1.442c.832-.005 1.471.638 1.467 1.478-.004.842-.634 1.465-1.474 1.46'/%3E%3C/g%3E%3C/svg%3E")
}

.social-link.youtube {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' xml:space='preserve'%3E%3Cpath fill='%23d01324' d='M30.372 23.219c-.35 1.63-1.647 2.828-3.21 3.011-3.693.416-7.436.416-11.161.416-3.727 0-7.468 0-11.161-.416-1.563-.183-2.861-1.381-3.227-3.011-.516-2.313-.516-4.841-.516-7.219 0-2.379 0-4.907.533-7.219.366-1.63 1.646-2.828 3.21-3.011 3.693-.416 7.435-.416 11.161-.416s7.468 0 11.161.416c1.562.183 2.86 1.381 3.227 3.011.515 2.312.515 4.84.515 7.219-.001 2.378-.001 4.906-.532 7.219m-8.483-8.117L13.373 9.78a1.048 1.048 0 0 0-1.081-.033 1.077 1.077 0 0 0-.549.932v10.645c0 .384.216.749.549.932.166.083.332.133.515.133.2 0 .399-.05.566-.166l8.516-5.322c.316-.184.499-.533.499-.898 0-.369-.183-.718-.499-.901'/%3E%3C/svg%3E")
}

.social-link.linkedin {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%230078b1' d='M24.4 24.5h-3.6v-5.6c0-1.3 0-3-1.9-3s-2.1 1.4-2.1 2.9v5.7h-3.6V13h3.4v1.6c.5-.9 1.6-1.9 3.4-1.9 3.6 0 4.3 2.4 4.3 5.5l.1 6.3zM9.3 11.4c-1.1 0-2.1-.9-2.1-2.1 0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1 0 1.2-.9 2.1-2.1 2.1zm1.8 13.1H7.6V13h3.6v11.5zM26.2 4H5.8C4.8 4 4 4.8 4 5.7v20.5c0 1 .8 1.7 1.8 1.7h20.5c1 0 1.8-.8 1.8-1.7V5.7C28 4.8 27.2 4 26.2 4z'/%3E%3C/svg%3E")
}

.social-link.appleu {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 69'%3E%3Cpath fill='%23f5f5f5' d='M27 31.4c6.1-2.4 11.7-4.6 17.2-6.8 1.8-.7 3.6-1.6 5.6-.7h.2c1.9.1 3.5-.8 4.5-2.3.2-.3.1-1.3-.2-1.6-1.4-1.4-3.1-2.5-5.1-1.9-1.6.5-3.5.9-3.7 3.2 0 .4-.8.9-1.3 1.1L25 29.9c-.5.2-1.3.4-1.7.2-7.3-2.8-14.6-5.7-21.8-8.6-.3-.1-.5-.3-1.1-.6 4.7-1.9 9.2-3.6 13.7-5.4L48 2.3c1.7-.7 3-.6 4.6.1 9.8 3.9 19.6 7.7 29.5 11.5 5.5 2.1 11 4.3 16.5 6.4.4.1.7.4 1.3.7-4.7 1.9-9.1 3.6-13.5 5.3-11.3 4.4-22.7 8.8-34 13.3-1.5.6-2.8.6-4.3 0-6.8-2.7-13.6-5.3-21.1-8.2zM75.9 35c-1-1.1-1.9-1.4-3.3-.8-6.8 2.7-13.7 5.4-20.5 8-.9.4-2.2.5-3.1.2-3.8-1.3-7.5-2.9-11.2-4.3-3.6-1.4-7.2-2.7-10.9-4.2v15c7.8 1 14.8 3.8 20.9 8.5 2.1 1.6 3.1 1.6 5 0 3.9-3.2 8.5-5.3 13.3-6.9 5.8-1.8 11.7-2.3 18.2-1.7-2.2-5.3-4.8-9.8-8.4-13.8zM28.6 55.5c-.1-1.7-1.6-2.4-3.3-2.3-1.6.1-2.7.9-2.7 2.5-.1 4.1 0 8.1 0 12.1h6.1c-.1-4.2.1-8.3-.1-12.3zm-4.2-6.8V35.4c-3.8 4-6.1 8.4-8.3 13.3h8.3z'/%3E%3C/svg%3E");
    background-size: 32px;
    width: 32px
}

.social-link.whatsapp {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%2325d366' d='M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E");
    background-size: 24px
}

.social-link.telegram {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%2308c' d='m446.7 98.6-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z'/%3E%3C/svg%3E");
    background-size: 24px
}

.social-link.light.facebook {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' xml:space='preserve'%3E%3Cpath fill='%23f5f5f5' d='M21.722 7.972h-2.171c-1.701 0-2.019.816-2.019 1.991v2.614h4.052l-.54 4.094h-3.512v10.496H13.3V16.671H9.772v-4.094H13.3V9.562c0-3.499 2.144-5.407 5.269-5.407 1.493 0 2.779.11 3.153.166v3.651z'/%3E%3C/svg%3E")
}

.social-link.light.twitter {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='32' height='32' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23f5f5f5' d='M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9L389.2 48zm-24.8 373.8h39.1L151.1 88h-42l255.3 333.8z'/%3E%3C/svg%3E");
    background-size: 23px
}

.social-link.light.instagram {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' xml:space='preserve'%3E%3Cg fill='%23f5f5f5'%3E%3Cpath d='M28.404 10.602v10.791c-.036.18-.079.358-.106.538a7.598 7.598 0 0 1-7.542 6.47c-3.204.006-6.409.013-9.614-.002-3.437-.016-6.515-2.477-7.298-5.817-.109-.464-.167-.94-.248-1.411V10.824c.031-.142.076-.281.091-.425.352-3.248 2.6-5.807 5.793-6.588l.902-.219h11.236c.103.036.202.088.309.106 2.95.515 4.964 2.172 6.009 4.973.23.617.316 1.286.468 1.931m-1.559 5.416c0-1.594.005-3.188-.001-4.781-.014-3.418-2.635-6.057-6.056-6.074a952.62 952.62 0 0 0-9.563 0c-3.417.017-6.041 2.661-6.051 6.084-.01 3.171-.01 6.34 0 9.509.01 3.395 2.601 6.033 6.007 6.071 3.225.034 6.45.039 9.674-.001 3.408-.042 5.978-2.684 5.989-6.082.005-1.576.001-3.151.001-4.726'/%3E%3Cpath d='M22.272 16.047c-.015 3.488-2.821 6.246-6.334 6.227-3.451-.02-6.229-2.864-6.211-6.362.02-3.413 2.874-6.214 6.32-6.199 3.474.014 6.242 2.83 6.225 6.334m-6.312 4.68c2.669.004 4.802-2.09 4.806-4.721a4.752 4.752 0 0 0-4.73-4.749c-2.626-.007-4.77 2.101-4.78 4.702-.013 2.628 2.095 4.763 4.704 4.768M22.687 10.612c-.837-.006-1.443-.638-1.433-1.496a1.43 1.43 0 0 1 1.44-1.442c.832-.005 1.471.638 1.467 1.478-.004.842-.634 1.465-1.474 1.46'/%3E%3C/g%3E%3C/svg%3E")
}

.social-link.light.youtube {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' xml:space='preserve'%3E%3Cpath fill='%23f5f5f5' d='M30.372 23.219c-.35 1.63-1.647 2.828-3.21 3.011-3.693.416-7.436.416-11.161.416-3.727 0-7.468 0-11.161-.416-1.563-.183-2.861-1.381-3.227-3.011-.516-2.313-.516-4.841-.516-7.219 0-2.379 0-4.907.533-7.219.366-1.63 1.646-2.828 3.21-3.011 3.693-.416 7.435-.416 11.161-.416s7.468 0 11.161.416c1.562.183 2.86 1.381 3.227 3.011.515 2.312.515 4.84.515 7.219-.001 2.378-.001 4.906-.532 7.219m-8.483-8.117L13.373 9.78a1.048 1.048 0 0 0-1.081-.033 1.077 1.077 0 0 0-.549.932v10.645c0 .384.216.749.549.932.166.083.332.133.515.133.2 0 .399-.05.566-.166l8.516-5.322c.316-.184.499-.533.499-.898 0-.369-.183-.718-.499-.901'/%3E%3C/svg%3E")
}

.social-link.light.linkedin {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23f5f5f5' d='M24.4 24.5h-3.6v-5.6c0-1.3 0-3-1.9-3s-2.1 1.4-2.1 2.9v5.7h-3.6V13h3.4v1.6c.5-.9 1.6-1.9 3.4-1.9 3.6 0 4.3 2.4 4.3 5.5l.1 6.3zM9.3 11.4c-1.1 0-2.1-.9-2.1-2.1 0-1.1.9-2.1 2.1-2.1 1.1 0 2.1.9 2.1 2.1 0 1.2-.9 2.1-2.1 2.1zm1.8 13.1H7.6V13h3.6v11.5zM26.2 4H5.8C4.8 4 4 4.8 4 5.7v20.5c0 1 .8 1.7 1.8 1.7h20.5c1 0 1.8-.8 1.8-1.7V5.7C28 4.8 27.2 4 26.2 4z'/%3E%3C/svg%3E")
}

.social-link.light.appleu {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 69'%3E%3Cpath fill='%23f5f5f5' d='M27 31.4c6.1-2.4 11.7-4.6 17.2-6.8 1.8-.7 3.6-1.6 5.6-.7h.2c1.9.1 3.5-.8 4.5-2.3.2-.3.1-1.3-.2-1.6-1.4-1.4-3.1-2.5-5.1-1.9-1.6.5-3.5.9-3.7 3.2 0 .4-.8.9-1.3 1.1L25 29.9c-.5.2-1.3.4-1.7.2-7.3-2.8-14.6-5.7-21.8-8.6-.3-.1-.5-.3-1.1-.6 4.7-1.9 9.2-3.6 13.7-5.4L48 2.3c1.7-.7 3-.6 4.6.1 9.8 3.9 19.6 7.7 29.5 11.5 5.5 2.1 11 4.3 16.5 6.4.4.1.7.4 1.3.7-4.7 1.9-9.1 3.6-13.5 5.3-11.3 4.4-22.7 8.8-34 13.3-1.5.6-2.8.6-4.3 0-6.8-2.7-13.6-5.3-21.1-8.2zM75.9 35c-1-1.1-1.9-1.4-3.3-.8-6.8 2.7-13.7 5.4-20.5 8-.9.4-2.2.5-3.1.2-3.8-1.3-7.5-2.9-11.2-4.3-3.6-1.4-7.2-2.7-10.9-4.2v15c7.8 1 14.8 3.8 20.9 8.5 2.1 1.6 3.1 1.6 5 0 3.9-3.2 8.5-5.3 13.3-6.9 5.8-1.8 11.7-2.3 18.2-1.7-2.2-5.3-4.8-9.8-8.4-13.8zM28.6 55.5c-.1-1.7-1.6-2.4-3.3-2.3-1.6.1-2.7.9-2.7 2.5-.1 4.1 0 8.1 0 12.1h6.1c-.1-4.2.1-8.3-.1-12.3zm-4.2-6.8V35.4c-3.8 4-6.1 8.4-8.3 13.3h8.3z'/%3E%3C/svg%3E")
}

.social-link.light.whatsapp {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23f5f5f5' d='M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E");
    background-size: 24px
}

.social-link.light.telegram {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23f5f5f5' d='m446.7 98.6-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z'/%3E%3C/svg%3E");
    background-size: 24px
}

/* Legal */
.legal {
    background-color: var(--uvigo-color);
    font-size: small;
    padding: 1.5em 1em 0.25em;
}

.legal .grid-child {
    justify-content: center;
}

.legal-menu {
    display: flex;
    list-style: none;
    gap: 1em;
    padding: 0;
}

.legal-menu li + li::before {
    color: var(--lightest-color);
    content: "|";
    margin-right: 1em;
}

.legal-menu a {
    color: var(--lightest-color);
    text-decoration: none;
}

@media (width >= 768px) {
    .legal .grid-child {
		justify-content: end;
	}
}

@media (width >= 992px) {
    /* Home video */
    .cut-top-bottom {
        height: 0;
        margin-top: 1.5rem;
        overflow: hidden;
        padding-bottom: 33%;
        position: relative;
    }

    .cut-top-bottom iframe {
        height: 150%;
        position: absolute;
        top: -100px;
    }
}

/* mod_articles_category */
.mod-articles-category {
	text-transform: uppercase;
}
/* Sin iconos en la lista de datos del módulo de artículos (Joomla los añade desde 5.4/6.x en autor, categoría y
   visitas; la plantilla no los mostraba). 29/10/2026 */
.mod-articles-item-content dl [class^="icon-"] {
    display: none;
}
/* Línea de autoría de las noticias (layouts/uvigo/autoria.php), como en las noticias del DUVI del portal
   (.author-section): Roboto Light 12 px, mayúsculas, elementos separados por «/». 28/10/2026. Gris #666 y no el #939393 del portal, que no llega al contraste de 4,5:1; #666 también lo usa el portal. 01/11/2026 */
.uvigo-autoria {
    padding: 1em 0;
    margin: 0;
    font-weight: 300;
    font-size: 12px;
    line-height: normal;
    letter-spacing: normal;
    color: #666;
    text-transform: uppercase;
}
.uvigo-autoria span + span::before {
    content: "/";
}
/* Avisos de portada como en el portal (bloque «Avisos» de uvigo.gal, 03/11/2026): fecha en Roboto Regular 16 px y azul, con 5 px debajo;
   título en Roboto Light 18 px, 30 px debajo y en gris, también el enlace: #666 y no el #939393 del portal, que no llega al contraste de 4,5:1. El estilo de autoría es solo para las noticias (Maco, 03/11/2026) */
.announcements .uvigo-autoria {
    padding: 0 0 5px;
    margin: 0;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.42857;
    color: #073349;
    text-transform: none;
}
.announcements .mod-articles-title {
    margin-bottom: 30px;
    font-weight: 300;
    font-size: 18px;
    line-height: 1.42857;
    color: #666;
}
.announcements .mod-articles-title a:not(:hover):not(:focus) {
    color: inherit;
}


/* Iconos de ElegantIcons, la fuente de iconos del portal de la UVigo (Elegant Themes, licencia MIT/GPL; en ../fonts). 29/10/2026 */
@font-face {
    font-family: "ElegantIcons";
    src: url("../fonts/ElegantIcons.woff") format("woff");
    font-display: swap;
}
/* Pie: el marcador de la dirección como el del lugar en la agenda del portal (icon_pin_alt), colgado a la izquierda
   del texto. El módulo sigue llevando el icono de Font Awesome (fa-map-marker); aquí se sustituye su dibujo. */
.footer p:has(> .fa-map-marker) {
    position: relative;
    margin-left: 26px;
    margin-top: 7.5px; /* primera línea a la altura de la del primer elemento de las listas (su relleno superior) */
}
.footer p > .fa-map-marker {
    position: absolute;
    left: -26px;
    top: -2.5px; /* su línea base, en la del texto (como en la agenda del portal, donde va en línea) */
    font-size: 20px;
    font-style: normal;
    line-height: 1;
}
.footer p > .fa-map-marker::before {
    content: "\e01d";
    font-family: "ElegantIcons";
    font-weight: normal;
}
/* 2.0.1: el teléfono del pie (<em class="fa fa-phone"> en el módulo), colgado como el marcador. ElegantIcons no tiene
   teléfono de contorno: su icon_phone (relleno) se dibuja solo con el borde, con el mismo grosor de línea que el marcador
   (1,5 px a 20 px, medido: trazo de 1,2 px). 30/10/2026 */
.footer p:has(> .fa-phone) {
    position: relative;
    margin-left: 26px;
}
.footer p > .fa-phone {
    position: absolute;
    left: -26px;
    top: -2.5px;
    font-size: 20px;
    font-style: normal;
    line-height: 1;
}
.footer p > .fa-phone::before {
    content: "\e090";
    color: transparent;
    font-family: "ElegantIcons";
    font-weight: normal;
    -webkit-text-stroke: 1.2px var(--uvigo-color);
}
/* Iconos de Font Awesome dentro de los artículos y módulos (<em class="fa fa-…"> o <i class="fa fa-…">): con el dibujo de
   ElegantIcons, la letra de iconos de la plantilla y del portal, y del mismo tamaño que el original de Font Awesome (1 em:
   medido, los dos dibujos ocupan lo mismo a igual tamaño). 02/11/2026, decisión de Maco: el pie lleva los suyos, más grandes
   (marcador y teléfono, más arriba); PDF, globo, gráfico de barras y teclado siguen con Font Awesome, porque ElegantIcons no
   tiene un dibujo equivalente. */
:is(em, i):is(.fa-clock, .fa-clock-o, .fa-map-marker, .fa-envelope, .fa-envelope-o, .fa-phone, .fa-external-link,
    .fa-check, .fa-times, .fa-question-circle, .fa-link, .fa-map-o, .fa-life-ring, .fa-compass, .fa-images, .fa-comments, .fa-cogs) {
    font-size: 1em;
    font-style: normal;
    vertical-align: baseline;
}
:is(em, i):is(.fa-clock, .fa-clock-o, .fa-map-marker, .fa-envelope, .fa-envelope-o, .fa-phone, .fa-external-link,
    .fa-check, .fa-times, .fa-question-circle, .fa-link, .fa-map-o, .fa-life-ring, .fa-compass, .fa-images, .fa-comments, .fa-cogs)::before {
    font-family: "ElegantIcons";
    font-weight: normal;
}
:is(em, i):is(.fa-clock, .fa-clock-o)::before { content: "\7d"; }          /* icon_clock_alt */
:is(em, i).fa-map-marker::before { content: "\e01d"; }                       /* icon_pin_alt */
:is(em, i):is(.fa-envelope, .fa-envelope-o)::before { content: "\e010"; }   /* icon_mail_alt */
:is(em, i).fa-external-link::before { content: "\e02b"; }                    /* icon_link_alt */
:is(em, i).fa-check::before { content: "\4e"; }                              /* icon_check */
:is(em, i).fa-times::before { content: "\4d"; }                              /* icon_close */
:is(em, i).fa-question-circle::before { content: "\e064"; }                  /* icon_question_alt */
:is(em, i).fa-link::before { content: "\e02c"; }                             /* icon_link */
:is(em, i).fa-map-o::before { content: "\e01f"; }                            /* icon_map_alt */
:is(em, i).fa-life-ring::before { content: "\e028"; }                        /* icon_lifesaver */
:is(em, i).fa-compass::before { content: "\e01c"; }                          /* icon_compass_alt */
:is(em, i).fa-images::before { content: "\e006"; }                           /* icon_images */
:is(em, i).fa-comments::before { content: "\77"; }                           /* icon_chat_alt */
:is(em, i).fa-cogs::before { content: "\e038"; }                             /* icon_cogs */
/* Edificio: ElegantIcons no tiene uno de contorno que se lea a tamaño de texto (con borde, las ventanas se tapan): el de
   Font Awesome en su versión de contorno (regular), en la línea del teléfono (Maco, 02/11/2026) */
:is(em, i).fa-building::before {
    content: "\f1ad";
    font-weight: 400;
}
/* Teléfono: como el del pie, icon_phone (relleno) dibujado solo con el borde, en el color del texto */
:is(em, i).fa-phone::before {
    content: "\e090";
    -webkit-text-fill-color: transparent; /* no color: transparent, que dejaría también el borde sin color */
    -webkit-text-stroke: 1px currentColor;
}
/* Pie alineado con el margen de la cabecera: el módulo (.moduletable.container-fluid) añadía su relleno al de las
   columnas de la rejilla, y la primera y la última columna quedaban 8 px hacia dentro del logo de la UVigo y de los
   idiomas. Sin ese relleno, el borde exterior de las columnas de los extremos coincide con el margen. 29/10/2026 */
.footer .moduletable.container-fluid {
    padding-left: 0;
    padding-right: 0;
}

/* Botón «volver arriba» (parámetro de la plantilla) como el del portal de la UVigo: cuadrado gris de 50 px, a 20 px de la
   derecha y 50 px de abajo, flecha de ElegantIcons (arrow_carrot-up) blanca de 48 px; al señalar, azul UVigo con borde
   blanco. Lo muestra y oculta el código de Cassiopeia (a partir de 20 px de desplazamiento). 30/10/2026 */
.back-to-top-link {
    background-color: #809098;
    border: 1px solid transparent;
    border-radius: 0;
    bottom: 50px;
    color: #fff;
    height: 50px;
    inset-inline-end: 20px;
    padding: 0;
    width: 50px;
}
.back-to-top-link .icon-arrow-up {
    display: none;
}
.back-to-top-link::before {
    bottom: 0;
    color: #fff;
    content: "\32";
    font-family: "ElegantIcons";
    font-size: 48px;
    font-weight: normal;
    left: 0;
    line-height: 1;
    position: absolute;
    right: 0;
    text-align: center;
    top: 0;
    /* el dibujo de la flecha no está centrado en su caja en la fuente (1 px a la derecha y 0,5 px abajo, medido):
       se centra en el cuadrado (en el portal queda descentrado) */
    transform: translate(-1px, -0.5px);
}
.back-to-top-link:hover,
.back-to-top-link:focus {
    background-color: #073349;
    border-color: #fff;
    color: #fff;
}

/* Foco de teclado común: contorno sólido del color UVigo (13,3:1 sobre blanco), blanco sobre los fondos oscuros. Sustituye al anillo violeta y al punteado de Cassiopeia y al del navegador. Las flechas y la pausa del carrusel tienen el suyo */
:focus-visible:not(.carousel-control-prev, .carousel-control-next, .carrusel-pausa) {
	outline: 2px solid var(--uvigo-color) !important;
	outline-offset: 2px !important;
	box-shadow: none !important;
}

/* Dentro de una caja que recorta lo que sobresale, el contorno va hacia dentro */
.accordion-button:focus-visible,
.page-link:focus-visible {
	outline-offset: -4px !important;
}

.container-topbar :focus-visible,
.legal :focus-visible {
	outline-color: #fff !important;
}

/* Flota sobre cualquier fondo: contorno de dos colores */
.back-to-top-link:focus-visible {
	outline-color: #fff !important;
	box-shadow: 0 0 0 4px var(--uvigo-color) !important;
}

/* Colores activos de Bootstrap, que en Cassiopeia son violetas */
.dropdown-menu {
	--dropdown-link-active-bg: var(--uvigo-color);
}

.nav-pills {
	--nav-pills-link-active-bg: var(--uvigo-color);
}

.pagination {
	--pagination-active-bg: var(--uvigo-color);
	--pagination-active-border-color: var(--uvigo-color);
}

.list-group {
	--list-group-active-bg: var(--uvigo-color);
	--list-group-active-border-color: var(--uvigo-color);
}

.progress,
.progress-stacked {
	--progress-bar-bg: var(--uvigo-color);
}

.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
	background-color: var(--uvigo-color);
	border-color: var(--uvigo-color);
}
