@charset "UTF-8";

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; }
body { min-width: 320px; min-height: 100vh; line-height: 1.5; -webkit-font-smoothing: antialiased; }
img, picture, video, canvas, svg { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; }
ul, ol { list-style: none; padding: 0; }
p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
table { border-collapse: collapse; border-spacing: 0; }
a { text-decoration: none; color: inherit; transition: color 0.2s ease; }

body { background-color: white;  color: var(--color-principal);}

:root {
	--max-width: 1600px;
	--padding: 1.5rem;
	--color-luz: rgb(255,255,255);
	--color-principal:rgb(71,104,140);
	--color-secundario: rgb(171,194,209); 
}

.montserrat,
body {
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}

.archivo,
h1, h2, header p, .button {
	font-family: "Archivo", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
	font-variation-settings: "wdth" 125;
	text-transform: uppercase;
}

h2 {text-align: center;}

h2 span { border-bottom: 4px solid; }

strong { font-weight: 600; }

header, section, footer { width: min(100%, var(--max-width)); }

header {
	display: flex;
	flex-direction: column;
	background-color: var(--color-principal); /* Fallback */
	background-image: linear-gradient(to bottom, var(--color-principal), var(--color-secundario));
}

header > div {
	padding: var(--padding);
	text-align: center;
}

header > :nth-child(1) img {
	width: min(90%, 420px);
	margin-right: auto;
	margin-left: auto;
}

header > :nth-child(2) {
	color: var(--color-luz);
	padding-top: 0;
	letter-spacing: 0.25em;
}

.aviso { background-color: var(--color-principal); color: var(--color-luz);}

.aviso h1 { text-align: center;}

.aviso h2 { 
	font-family: "Montserrat", sans-serif;
	font-weight: 500;
	margin-top: var(--padding);
	text-align: inherit;
	font-size: 1.25rem;
}

.aviso main { padding: var(--padding);}

.aviso main ul {
	list-style: disc;
	padding-left: 1.5rem;
	margin-top: 1rem;
}

@counter-style romano {
	system: extends lower-roman;
	suffix: ") ";
}

.aviso main ol {
	list-style: lower-roman;
	list-style: romano;
	padding-left: 2.5rem;
	margin-top: 1rem;
}

.aviso main li { margin-top: 0.5rem;}

.aviso main li::marker { color: currentColor;}

.aviso .note { margin-top: calc(var(--padding)*1.5); font-style: italic; font-weight: 500;}

p { margin-top: 1rem; }

ul, ol { margin-top: 0.75rem; }

li { margin-top: 0.75rem;}

#Hero {
	display: flex;
	flex-direction: column;
}

#Hero img { width: 100%;}

#Hero > :nth-child(2), #Hero > :nth-child(3) {
	padding: var(--padding);
	text-align: center;
}

#Hero > :nth-child(3) img {
	-webkit-mask-image: url('pix/right_borders-mask.svg');
	mask-image: url('pix/right_borders-mask.svg');
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

.button {
	display: inline-block;
	color: var(--color-luz);
	background-color: var(--color-principal);
	height: 3rem;
	line-height: 2rem;
	padding: 0.5rem 1.25rem;
	border-radius: 1.5rem;
	text-transform: inherit;
	letter-spacing: inherit;
	margin-top: var(--padding);
	margin-left: 1rem;
	margin-right: 1rem;
}

#Tagline {
	display: flex;
	flex-direction: column;
	padding: var(--padding);
	color: var(--color-luz);
	font-style: italic;
	font-weight: 500;
	font-size: 1.25rem;
	text-align: center;
	background-color: var(--color-principal); /* Fallback */
	background-image: linear-gradient(to right, var(--color-principal), var(--color-secundario));
}

#Tagline img {
	width: 20%;
	margin-left: auto;
	margin-right: auto;
}

#Servicios, #Contacto { padding: var(--padding); }

.list {
	margin-top: var(--padding);
	margin-bottom: var(--padding);
	display: flex;
	flex-direction: column;
	gap: var(--padding);
}

.list > div {
	border-radius: 16px;
	overflow: hidden;
	background-color: color-mix(in srgb, var(--color-secundario) 50%, transparent);
}

.list h3 {
	background-color: var(--color-principal);
	color: var(--color-luz);
	text-align: center;
	padding: 0.5rem;
}

.list img { width: 100%; }

.list p {
	padding: 0.75rem;
	margin-top: 0.25rem;
	text-align: center;
}

#Contacto {
	text-align: center;
	margin-bottom: var(--padding);
}

#Contacto a {
	display:  inline-block;
	margin-top: var(--padding);
	font-size: 1.25rem;
	font-weight: 500;
	height: 2rem;
	padding-left: 3rem;
	padding-right: 0.5rem;
	background-image: url("pix/contacto.svg");
	background-size: 2rem;
	background-repeat: no-repeat;
	background-position-x: 0.5rem
}

#Contacto a:last-child { background-position-y: bottom; }

.link-contacto,
.link-contacto:visited {
	color: inherit;
	text-decoration: none;
	-webkit-text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}

/* Enlaces que iOS genera solo al detectar teléfonos, fechas o direcciones */
a[x-apple-data-detectors] {
	color: inherit !important;
	text-decoration: none !important;
	font: inherit !important;
}

.wa-flotante {
	position: fixed;
	right: 1.25rem;
	bottom: 3.25rem;
	z-index: 1000;
	width: 4rem;
	height: 4rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: #25D366;
	color: #fff;
	font-size: 2rem;
	text-decoration: none;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
	transition: transform 0.2s ease;
	background-image: url(pix/ico-whatsapp.svg);
	background-size: 70%;
	background-repeat: no-repeat;
	background-position: center;
}

.wa-flotante:hover {
	transform: scale(1.08);
}

#Video {
	width: min(92vw, 1100px);
	max-width: none;
	margin: auto; /* el reset * { margin: 0 } quita el centrado del dialog */
	padding: 0;
	border: 0;
	background: transparent;
	overflow: visible;
}

#Video::backdrop {
	background-color: rgba(10, 20, 35, 0.85);
	backdrop-filter: blur(4px);
}

#Video[open] { animation: aparecer 0.25s ease; }

@keyframes aparecer {
	from { opacity: 0; transform: scale(0.96); }
	to { opacity: 1; transform: scale(1); }
}

#Video .video {
	position: relative;
	aspect-ratio: 16 / 9;
	max-height: 85vh;
	margin: 0 auto;
	background-color: black;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

#Video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

#Video .cerrar {
	position: absolute;
	top: -3rem;
	right: 0;
	width: 2.5rem;
	height: 2.5rem;
	border: 0;
	border-radius: 50%;
	background-color: var(--color-luz);
	color: var(--color-principal);
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}

footer > div { padding: var(--padding); }

footer > :nth-child(1) {
	color: var(--color-luz);
	background-color: var(--color-principal);
	text-align: center;
}

footer > :nth-child(1) a {
	display: block;
	width: 260px;
	height: 80px;
	margin-top: var(--padding);
	margin-left: auto;
	margin-right: auto;
	background-image: url('pix/iter-colegios.svg');
	background-size: 260px auto;
	background-repeat: no-repeat;
	background-position-x: center;
}

footer > :nth-child(1) a:first-of-type { margin-top: 0; }

footer > :nth-child(1) a > span { display: none; }

footer a.alamos { background-position-y: -80px; }
footer a.kidu { background-position-y: -160px; }
footer a.fontanar { background-position-y: -240px; }

footer > :nth-child(2) {
	background-color: var(--color-secundario);
}

footer > :nth-child(2) p {
	text-align: center;
	margin-top: 0;
}

footer > :nth-child(2) a {
	font-weight: 500;
	margin-left: 0.75rem;
}

/* ⬇ 360px and bigger | Phone — Portrait [360] */
@media screen and (min-width: 360px) {
	footer > :nth-child(2) a { display: inline-block; clear: all; margin-left: 0; }
}

/* ⬇ 480px and bigger | iPhone 4 — Landscape [480] */
@media screen and (min-width: 480px) {
	:root{--padding: 2.5rem;}
	.list { margin-bottom: 0; }
	footer > :nth-child(1) a { margin-top: calc(var(--padding)/2); }
}

/* ⬇ 568px and bigger | iPhone 5 — Landscape [568] */
@media screen and (min-width: 568px)  and (max-width: 767px) {
	#Hero > :nth-child(2), #Hero > :nth-child(3), #Tagline p, #Servicios { width: 500px; margin-left: auto; margin-right: auto; }
	#Tagline img { width: calc(var(--padding)*2); }
}

/* ⬇ 768px and bigger | iPad — Portrait [768] */
@media screen and (min-width: 768px) {
	header { flex-direction: row; background-image: linear-gradient(to right, var(--color-principal), var(--color-secundario)); align-items: center;}
	
	header > div { flex: 1 1 0; }
	header > :nth-child(1) img { margin-left: inherit; margin-right: inherit;}
	header > :nth-child(2) { padding-top: var(--padding); }
	header p {margin-top: 0; text-align: right;}  
	
	#Hero > :nth-child(3) img { max-width: 65%; margin-left: auto; margin-right: auto; }
	
	#Tagline { font-size: 1.5rem; flex-direction: row; padding-left: calc(var(--padding)*2.5); row; padding-right: calc(var(--padding)*2.5);}
	#Tagline img { width: 5rem; height: auto;}
	
	.list { flex-direction: row; flex-wrap: wrap;}
	
	.list > div {  flex: 0 0 calc(50% - (var(--padding)/2)); min-width: 0; }
	
	footer > :nth-child(1) {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 20px; /* opcional */
	}
	
	footer > :nth-child(1) a:first-child {
		grid-column: 1 / -1;
		justify-self: center;
	}
	
	footer > :nth-child(1) a {
		width: 216px;
		height: auto;
		margin-top: 0;
		aspect-ratio: 260 / 80;
		background-size: 100% auto;
	}
	
	footer a.alamos { background-position-y: 33.333%; }
	footer a.kidu { background-position-y: 66.666%; }
	footer a.fontanar { background-position-y: 100%; }
}

@media screen and (min-width: 768px) and (max-width: 899px) {
	.list h3 { min-height: calc(var(--padding)*1.75);display: flex;
		align-items: center; justify-content: center;}
}

/* ⬇ 1024px and bigger | Small Screen & iPad — Landscape [1024] */
@media screen and (min-width: 1024px) {
	:root{--padding: 3rem;}
	
	#Hero { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	#Hero > :nth-child(1) { grid-column: 1 / -1; }
	#Hero > :nth-child(2) { grid-column: 2; grid-row: 2; align-self: center; }
	#Hero > :nth-child(3) { grid-column: 1; grid-row: 2; align-self: center; }
	#Hero > :nth-child(3) img { max-width: 100%; }
	
	.list h3, .list p { padding: 1rem; }
	
	footer > div { padding: calc(var(--padding)*0.5);}
	footer > :nth-child(1) a { width: 260px;}
}

/* ⬇ 1200px */
@media screen and (min-width: 1200px) {
	header p { font-size: 1.5rem}
	
	#Tagline { font-size: 2rem; padding-left: calc(var(--padding)*3.5); row; padding-right: calc(var(--padding)*3.5);}
	
	.list > div {
		flex: 0 0 calc((100% - 2 * var(--padding)) / 3);
		min-width: 0;
	}
	.list h3, .list p { padding: 0.5rem; }
	
	footer > :nth-child(1) a {
		width: 260px;
	}
}

/* ⬇ 1600px */
@media screen and (min-width: 1600px) {
	html { background-color: lightgray;}
	body { width: var(--max-width); margin-left: auto; margin-right: auto;}
	
}
