/* ==========================================================================
   ET25 Tte. 1º Fray Luis Beltrán - Hoja de estilos única

   Reemplaza a bootstrap.min.css (95 KB), templatemo-style.css y fonts.css.
   Contiene solo las reglas que el sitio usa realmente:
     1. Tipografía
     2. Base (reinicio)
     3. Rejilla y menú (extraído de Bootstrap 4 alpha 2)
     4. Componentes del sitio
     5. Utilidades (reemplazan a los atributos align, width, style, etc.)
     6. Adaptación a pantallas chicas
   ========================================================================== */


/* 1. TIPOGRAFÍA
   Open Sans 300 y 400, solo subconjuntos latin y latin-ext (alcanzan para español).
   -------------------------------------------------------------------------- */
@font-face {
	font-family: 'Open Sans';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: local('Open Sans Light'), local('OpenSans-Light'),
		url(https://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN_r8OXOhpOqc.woff2) format('woff2');
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Open Sans';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: local('Open Sans Light'), local('OpenSans-Light'),
		url(https://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN_r8OUuhp.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Open Sans';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: local('Open Sans Regular'), local('OpenSans-Regular'),
		url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFW50bbck.woff2) format('woff2');
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Open Sans';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: local('Open Sans Regular'), local('OpenSans-Regular'),
		url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVZ0b.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* 2. BASE
   -------------------------------------------------------------------------- */
html {
	box-sizing: border-box;
	font-size: 16px;
	font-family: sans-serif;
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: transparent;
}

*, ::before, ::after { box-sizing: inherit; }

body {
	margin: 0;
	background-color: #fff;
	color: #151515;
	font-family: 'Open Sans', Helvetica, Arial, sans-serif;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.5;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .5rem;
	font-family: inherit;
	font-weight: 500;
	line-height: 1.1;
	color: inherit;
}
h1 { font-size: 2.5rem; }
h2 { font-size: 2.2rem; }
h3 { font-size: 1.65rem; }
h4 { font-size: 1.4rem; line-height: 1.6; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1rem; }

p {
	margin: 0 0 1rem;
	line-height: 1.9;
}

ul, ol { margin: 0 0 1rem; }
ol ol, ol ul, ul ol, ul ul { margin-bottom: 0; }

a {
	color: #0275d8;
	text-decoration: none;
	background-color: transparent;
	touch-action: manipulation;
}
a, button { transition: all .3s ease; }
a:hover, a:focus {
	color: #014c8c;
	text-decoration: none;
	outline: none;
}
/* Mejora de accesibilidad: foco visible solo al navegar con teclado */
a:focus-visible {
	outline: 2px solid #cc9900;
	outline-offset: 2px;
}

b, strong { font-weight: 700; }
small { font-size: .7em; font-weight: 400; }
img { border: 0; vertical-align: middle; }
iframe { border: 0; }

hr {
	height: 0;
	margin: 1rem 0;
	border: 0;
	border-top: 1px solid #ccc;
	box-sizing: content-box;
}

button {
	margin: 0;
	border-radius: 0;
	font: inherit;
	line-height: inherit;
	color: inherit;
	text-transform: none;
	overflow: visible;
	cursor: pointer;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
	background-color: transparent;
}
td { padding: 0; }


/* 3. REJILLA Y MENÚ (Bootstrap 4 alpha 2, solo lo usado)
   -------------------------------------------------------------------------- */
.container-fluid {
	margin-left: auto;
	margin-right: auto;
	max-width: 1390px;
	padding-left: .9375rem;
	padding-right: .9375rem;
	overflow-x: hidden;
}

.container-fluid::after,
.row::after,
.navbar::after {
	content: "";
	display: table;
	clear: both;
}

.row {
	margin-left: -.9375rem;
	margin-right: -.9375rem;
}

.col-xs-12,
.col-sm-6, .col-sm-12,
.col-md-3, .col-md-4, .col-md-6, .col-md-8, .col-md-12,
.col-lg-3, .col-lg-4, .col-lg-6, .col-lg-8, .col-lg-9, .col-lg-12,
.col-xl-3, .col-xl-4, .col-xl-6, .col-xl-9, .col-xl-12 {
	position: relative;
	min-height: 1px;
	padding-left: .9375rem;
	padding-right: .9375rem;
}

.col-xs-12 { float: left; width: 100%; }

@media (min-width: 544px) {
	.col-sm-6, .col-sm-12 { float: left; }
	.col-sm-6  { width: 50%; }
	.col-sm-12 { width: 100%; }
}

@media (min-width: 768px) {
	.col-md-3, .col-md-4, .col-md-6, .col-md-8, .col-md-12 { float: left; }
	.col-md-3  { width: 25%; }
	.col-md-4  { width: 33.333333%; }
	.col-md-6  { width: 50%; }
	.col-md-8  { width: 66.666667%; }
	.col-md-12 { width: 100%; }
	.col-md-offset-2 { margin-left: 16.666667%; }
}

@media (min-width: 992px) {
	.col-lg-3, .col-lg-4, .col-lg-6, .col-lg-8, .col-lg-9, .col-lg-12 { float: left; }
	.col-lg-3  { width: 25%; }
	.col-lg-4  { width: 33.333333%; }
	.col-lg-6  { width: 50%; }
	.col-lg-8  { width: 66.666667%; }
	.col-lg-9  { width: 75%; }
	.col-lg-12 { width: 100%; }
	.col-lg-offset-2 { margin-left: 16.666667%; }
}

@media (min-width: 1200px) {
	.col-xl-3, .col-xl-4, .col-xl-6, .col-xl-9, .col-xl-12 { float: left; }
	.col-xl-3  { width: 25%; }
	.col-xl-4  { width: 33.333333%; }
	.col-xl-6  { width: 50%; }
	.col-xl-9  { width: 75%; }
	.col-xl-12 { width: 100%; }
}

.img-fluid {
	display: block;
	max-width: 100%;
	height: auto;
}

/* Menú desplegable (lo activa bootstrap.min.js) */
.collapse { display: none; }
.collapse.in { display: block; }
.collapsing {
	position: relative;
	height: 0;
	overflow: hidden;
	transition: height .35s ease;
}

.nav {
	margin-bottom: 0;
	padding-left: 0;
	list-style: none;
}
.nav-link { display: inline-block; }
.nav-link:hover, .nav-link:focus { text-decoration: none; }

.navbar {
	position: relative;
	padding: .5rem 1rem;
}
.navbar-brand {
	float: left;
	margin-right: 1rem;
	padding-top: .25rem;
	padding-bottom: .25rem;
	font-size: 1.25rem;
}
.navbar-brand > img { display: block; }
.navbar-nav .nav-item { float: left; }
.navbar-nav .nav-item + .nav-item { margin-left: 1rem; }
.navbar-nav .nav-link {
	display: block;
	padding: 10px 40px;
	border-radius: 6px;
	color: #cc9900;
}
.navbar-toggler {
	padding: .5rem .75rem;
	border: 1px solid transparent;
	border-radius: .25rem;
	background: transparent;
	font-size: 1.25rem;
	line-height: 1;
}

.media { margin-top: 15px; }
.media:first-child { margin-top: 0; }
.media, .media-body { overflow: hidden; }
.media-body {
	width: 10000px;
	padding-bottom: 25px;
	border-bottom: 1px solid #ccc;
}
.media-body, .media-left {
	display: table-cell;
	vertical-align: top;
}
.media-left { padding-right: 25px; }
.media-middle { vertical-align: middle; }
.media-object { display: block; }
.media-heading { margin-top: 0; margin-bottom: 5px; }

@media (min-width: 544px) {
	.navbar { border-radius: .25rem; }
}
@media (min-width: 768px) {
	.navbar-toggleable-sm { display: block !important; }
	.hidden-md-up { display: none !important; }
}


/* 4. COMPONENTES DEL SITIO
   -------------------------------------------------------------------------- */

/* Encabezado y menú principal */
.tm-header { background-color: black; }
.tm-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100px;
}
.tm-site-name {
	display: block;
	color: #cc9900;
	font-size: 2.6rem;
	font-weight: 400;
}
.tm-main-nav { font-size: 1.2rem; }
.nav-item.active .nav-link,
.nav-link:hover,
.nav-link:focus {
	background-color: #cc9900;
	color: white;
}

/* Banner de cada página: la imagen se elige con la clase b-img-XX */
[class^="b-img-"] {
	height: 300px;
	background-position: center;
	background-repeat: no-repeat;
}
.b-img-e0   { background-image: url('../img/cabeza/e0.webp'); }
.b-img-e1   { background-image: url('../img/cabeza/e1.webp'); }
.b-img-e2   { background-image: url('../img/cabeza/e2.webp'); }
.b-img-e3   { background-image: url('../img/cabeza/e3.webp'); }
.b-img-e4   { background-image: url('../img/cabeza/e4.webp'); }
.b-img-e41  { background-image: url('../img/cabeza/e41.webp'); }
.b-img-e42  { background-image: url('../img/cabeza/e42.webp'); }
.b-img-e43  { background-image: url('../img/cabeza/e43.webp'); }
.b-img-e44  { background-image: url('../img/cabeza/e44.webp'); }
.b-img-e5   { background-image: url('../img/cabeza/e5.webp'); }
.b-img-e6   { background-image: url('../img/cabeza/e6.webp'); }
.b-img-e6x  { background-image: url('../img/cabeza/e6x.webp'); }
.b-img-p0   { background-image: url('../img/cabeza/p0.webp'); }
.b-img-p1   { background-image: url('../img/cabeza/p1.webp'); }
.b-img-t0   { background-image: url('../img/cabeza/t0.webp'); }
.b-img-t1   { background-image: url('../img/cabeza/t1.webp'); }
.b-img-t2   { background-image: url('../img/cabeza/t2.webp'); }
.b-img-t3   { background-image: url('../img/cabeza/t3.webp'); }
.b-img-ta0  { background-image: url('../img/cabeza/ta0.webp'); }
.b-img-ta103 { background-image: url('../img/cabeza/ta103.webp'); }
.b-img-ta104 { background-image: url('../img/cabeza/ta104.webp'); }
.b-img-ta106 { background-image: url('../img/cabeza/ta106.webp'); }
.b-img-ta301 { background-image: url('../img/cabeza/ta301.webp'); }
.b-img-ta302 { background-image: url('../img/cabeza/ta302.webp'); }
.b-img-ta303 { background-image: url('../img/cabeza/ta303.webp'); }
.b-img-taE  { background-image: url('../img/cabeza/taE.webp'); }
/* Páginas que comparten la misma imagen */
.b-img-e45, .b-img-e46 { background-image: url('../img/cabeza/xx.webp'); }
.b-img-ta101, .b-img-ta102, .b-img-ta105, .b-img-ta107 { background-image: url('../img/cabeza/ta102.webp'); }
.b-img-novedad, .b-img-video { background-image: url('../img/cabeza/nov.webp'); }

/* Secciones y textos */
.tm-section {
	padding-top: 0;
	padding-bottom: 50px;
	background-color: white;
}
.tm-gold-text {
	margin-bottom: 26px;
	color: #cc9900;
}
/* .tm-title va después de .tm-gold-text: si un título tiene ambas, gana el margen de .tm-title */
.tm-title {
	margin-bottom: 1rem;
	line-height: 1.4;
}
.tm-subtitle {
	max-width: 800px;
	margin: 0 auto 80px;
	font-size: 1.4rem;
}
.tm-content-box {
	max-width: 310px;
	margin: 0 auto;
}
.tm-overflow-auto { overflow: auto; }
.tm-small-font { font-size: 1rem; }
.tm-media-description { margin-bottom: 0; }
.tm-related-post { margin-bottom: 40px; }
.tm-related-post:last-child { margin-bottom: 0; }
.tm-2-col-right { padding-left: 20px; }
.tm-img-post { margin-bottom: 30px; }
.texto-text { text-align: justify; }

.tm-text-link {
	color: #006699;
	line-height: 2.8;
	text-decoration: underline;
}

/* Botones */
.tm-btn,
.slidesjs-navigation {
	display: inline-block;
	padding: 10px 30px;
	border: none;
	border-radius: 5px;
	background-color: #cc9900;
	color: white;
}
.tm-btn:hover, .tm-btn:focus,
.slidesjs-navigation:hover, .slidesjs-navigation:focus {
	background-color: #906E09;
	color: white;
	outline: none;
}
.tm-btn-gray { background-color: #666666; }
.tm-btn-gray:hover, .tm-btn-gray:focus { background-color: #515050; }
.slidesjs-navigation { margin: 1px; }

/* Bloques de novedades */
.nov, .nov1, .nov2 {
	padding-top: 18px;
	border-bottom: 2px solid #cc9900;
}
.nov  { background-color: #f7f7f7; color: black; }
.nov1 { color: #070707; }
.nov2 { background-color: #cc9900; color: white; }

.plano { border-top: 2px solid #cc9900; }
.img-nov img {
	border: 2px solid #cc9900;
	border-radius: 10px;
}
.float img {
	float: left;
	margin: 20px 20px 20px 0;
}

/* Cuadros de color */
.t-tabla {
	padding: 1px;
	color: white;
}
.tm-autor-bg {
	padding: 1px;
	border: 1px solid #ccc;
	border-radius: 10px;
	background-color: #000;
	color: white;
}
.tm-gray-bg {
	padding: 30px 20px 20px;
	background-color: #ccc;
	color: black;
}

/* Pie de página */
.tm-footer {
	padding-top: 40px;
	padding-bottom: 20px;
	background-color: #191919;
	background-image: url('../img/classic-pattern-bg.png');
	color: #c6c6c6;
	font-size: 1rem;
}
.tm-footer-links-container { padding-left: 10px; }
.tm-footer-content-box-title { margin-bottom: 30px; }
.tm-footer-thumbnail { margin-bottom: 5px; }
.tm-footer-link {
	color: #cccc66;
	line-height: 2.8;
	text-decoration: underline;
}
.tm-footer-link:hover, .tm-footer-link:focus {
	color: #cccc66;
	text-decoration: none;
}
.ppa:hover { height: 35px; }

/* Ventana emergente (solo con CSS, usa :target) */
.modalDialog {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 99999;
	background: rgba(0, 0, 0, .8);
	font-family: Arial, Helvetica, sans-serif;
	opacity: 0;
	pointer-events: none;
	transition: opacity 400ms ease-in;
}
.modalDialog:target {
	opacity: 1;
	pointer-events: auto;
}
.modalDialog > div {
	position: relative;
	width: 350px;
	margin: 2% auto;
	padding: 5px 5px 2px 10px;
	border-radius: 10px;
	background: linear-gradient(#fff, #999);
}
.close {
	position: absolute;
	top: -10px;
	right: -12px;
	width: 24px;
	border-radius: 12px;
	background: #606061;
	box-shadow: 1px 1px 3px #000;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 25px;
	text-align: center;
	text-decoration: none;
	text-shadow: 0 1px 0 #fff;
	opacity: .2;
}
.close:hover {
	background: #00d9ff;
	color: #000;
	cursor: pointer;
	opacity: .5;
}

/* Mapa y video */
.google-map {
	width: 100%;
	height: 600px;
	margin-top: 40px;
}
.video-responsive {
	position: relative;
	height: 0;
	padding-top: 30px;
	padding-bottom: 56.25%;
	overflow: hidden;
}
.video-responsive iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* Galería (SlidesJS) */
.slides, .slides img { width: 100%; }
.slides .active { background: #cc9900; }


/* 5. UTILIDADES
   Reemplazan a los atributos HTML obsoletos (align, width, bgcolor, style...)
   -------------------------------------------------------------------------- */
.centrado  { text-align: center; }
.derecha   { text-align: right; }
.izquierda { text-align: left; }
/* El antiguo atributo align también movía las imágenes en bloque (img-fluid) */
.derecha .img-fluid { margin-left: auto; }
.centrado .img-fluid, .celdas-centro td .img-fluid { margin-left: auto; margin-right: auto; }
.arriba    { vertical-align: top; }
.text-uppercase { text-transform: uppercase; }

.dorado, .dorado:hover, .dorado:focus { color: #cc9900; }
.blanco { color: #fff; }
.fondo-dorado { background-color: #cc9900; }
.fondo-blanco { background-color: #fff; }
.fondo-claro  { background-color: #cbae57; }

.img-der { float: right; }
.ancho-50  { width: 50%; }
.ancho-80  { width: 80%; }
.ancho-90  { width: 90%; }
.ancho-100 { width: 100%; }

/* Tablas con borde dorado (antes: border, bordercolor, cellpadding, cellspacing) */
.tabla {
	width: 100%;
	border: 2px solid #cc9900;
}
.tabla td { border: 1px solid #cc9900; }
.tabla-grueso { border-width: 3px; }
.tabla-600 { width: 600px; }
.tabla-600 td { width: 200px; }
.tabla-85 { width: 85%; }
.tabla-50 { width: 50%; }
.tabla-90 { width: 90%; }
.tabla-95 { width: 95%; }
.tabla-80 { width: 80%; }
.tabla-60 { width: 60%; }
.tabla-centrada { margin-left: auto; margin-right: auto; }
.celdas-centro td { text-align: center; }
.espaciador { width: 5%; }
.celda-12 { width: 12%; }


/* Márgenes (se declaran antes de la sección 6 para que las pantallas chicas las modifiquen) */
.tm-margin-b-15 { margin-bottom: 15px; }
.tm-margin-b-20 { margin-bottom: 20px; }
.tm-margin-b-30 { margin-bottom: 30px; }
.tm-margin-b-40 { margin-bottom: 40px; }
.tm-margin-t-big { margin-top: 90px; }
.tm-margin-t-mid { margin-top: 60px; }

/* 6. ADAPTACIÓN A PANTALLAS CHICAS
   -------------------------------------------------------------------------- */
@media (max-width: 1390px) {
	.container-fluid {
		padding-left: 5%;
		padding-right: 5%;
	}
}

@media (max-width: 1199px) {
	.container-fluid {
		padding-left: 4%;
		padding-right: 4%;
	}
	.tm-2-col-left { padding-right: 0; }
	.tm-2-col-right { padding-left: 0; }
	.tm-text-link { line-height: 2.2; }
}

@media (max-width: 991px) {
	#tmNavbar .navbar-nav .nav-link { padding: 10px 25px; }
	.tm-section {
		padding-top: 50px;
		padding-bottom: 60px;
	}
	.tm-subtitle { margin-bottom: 40px; }
	.tm-content-box { margin-bottom: 50px; }
	.tm-text-link { line-height: 2.4; }
	.tm-2-col-left, .tm-2-col-right {
		max-width: 660px;
		margin: 0 auto;
	}
	.tm-margin-t-big { margin-top: 30px; }
	.media { max-width: 100%; }
	.media-left {
		display: table-cell;
		margin-bottom: 0;
	}
	.tm-footer-content-box { margin-bottom: 40px; }

	/* Reordena columnas: las de "down" pasan abajo */
	.tm-2-rows-md-swap {
		display: flex;
		flex-direction: column;
	}
	.tm-2-rows-md-down-1 { order: 1; }
	.tm-2-rows-md-down-2 {
		order: 2;
		margin-top: 30px;
		margin-bottom: 0;
	}
}

@media (max-width: 897px) {
	.tm-btn {
		padding: 10px 15px;
		font-size: 1rem;
	}
}

@media (max-width: 767px) {
	.tm-main-nav {
		position: fixed;
		top: 21px;
		right: 0;
		z-index: 1000;
	}
	#tmNavbar {
		border-radius: 6px;
		background: white;
	}
	#tmNavbar .navbar-nav .nav-item { float: none; }
	#tmNavbar .navbar-nav .nav-item + .nav-item { margin-left: 0; }
	#tmNavbar .navbar-nav .nav-link { padding: 10px 35px; }
	.navbar-toggler {
		display: block;
		margin-left: auto;
		margin-right: 0;
		border-color: #cc9900;
		background: white;
		color: #cc9900;
	}
	.navbar-toggler:focus { outline: none; }
	.tm-margin-b-40 { margin-bottom: 25px; }
	.tm-gray-bg, .tm-autor-bg { padding: 20px 20px 10px; }
	.tm-footer { padding-bottom: 15px; }
	.tm-sm-m-b { margin-bottom: 20px; }
}

@media (max-width: 543px) {
	.tm-footer-links-container { padding-left: 0; }
	.tm-xs-m-t { margin-top: 20px; }
	.tm-btn { padding: 10px 30px; }
}

@media (max-width: 510px) {
	.media { max-width: 240px; }
	.media-left {
		display: block;
		margin-bottom: 20px;
	}
	.tm-section {
		padding-top: 10%;
		padding-bottom: 10%;
	}
	.tm-subtitle { margin-bottom: 20px; }
	.tm-margin-b-40 { margin-bottom: 15px; }
	.tm-content-box { margin-bottom: 40px; }
	.tm-margin-t-mid { margin-top: 30px; }
	.tm-footer-content-box-title { margin-bottom: 15px; }
}

@media print {
	.navbar { display: none; }
	img, tr { page-break-inside: avoid; }
	img { max-width: 100% !important; }
}
