/*
 * CRA Villas del Tajo · estilos de los bloques del plugin.
 * Colores tomados del escudo. Tipografías alojadas en el propio servidor (sin Google).
 */

@font-face {
	font-family: "Bricolage Grotesque";
	src: url("../fonts/bricolage-grotesque-latin.woff2") format("woff2");
	font-weight: 200 800;
	font-display: swap;
}
@font-face {
	font-family: "Figtree";
	src: url("../fonts/figtree-latin.woff2") format("woff2");
	font-weight: 300 900;
	font-display: swap;
}

:root {
	--cra-cielo: #84cff3;
	--cra-albaricoque: #fdd2a8;
	--cra-prado: #6dbb86;
	--cra-rosa: #fad4c5;
	--cra-verde: #02703a;
	--cra-verde-oscuro: #014d28;
	--cra-tierra: #2e2925;
	--cra-texto-suave: #4e443e;
	--cra-gris: #6b5f57;
	--cra-linea: #efe6df;
	--cra-crema: #fff6ef;
	--cra-cielo-claro: #e6f4fc;
	--cra-tinta-cielo: #0c3a52;
	--cra-tinta-albaricoque: #6a3410;
	--cra-tinta-prado: #0b3a1d;
	--cra-tinta-rosa: #7a2e1c;
	--cra-titulos: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
	--cra-texto: "Figtree", "Segoe UI", system-ui, sans-serif;
	--cra-radio: 26px;
}

/* Colores por escuela */
.cra-bg-cielo { background-color: var(--cra-cielo); color: var(--cra-tinta-cielo); }
.cra-bg-albaricoque { background-color: var(--cra-albaricoque); color: var(--cra-tinta-albaricoque); }
.cra-bg-prado { background-color: var(--cra-prado); color: var(--cra-tinta-prado); }
.cra-bg-rosa { background-color: var(--cra-rosa); color: var(--cra-tinta-rosa); }
.cra-bg-tierra { background-color: var(--cra-tierra); color: #fff; }
.cra-text-cielo { color: #0b5f8a; }
.cra-text-albaricoque { color: #a2440f; }
.cra-text-prado { color: var(--cra-verde); }
.cra-text-rosa { color: var(--cra-tinta-rosa); }

/* Texto solo para lectores de pantalla (por si el tema no lo define) */
.cra-resources .screen-reader-text,
.cra-docs .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Piezas comunes */
.cra-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--cra-texto);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #b4521a;
}
.cra-mark { flex: none; }
.cra-kicker {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.cra-pill {
	display: inline-block;
	padding: 6px 14px;
	border-radius: 999px;
	font-weight: 800;
	font-size: 14px;
	text-decoration: none;
}
.cra-button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--cra-verde);
	color: #fff;
	font-weight: 800;
	text-decoration: none;
	padding: 14px 24px;
	border-radius: 999px;
}
.cra-button:hover, .cra-button:focus { background: var(--cra-verde-oscuro); color: #fff; }
.cra-button--small { padding: 9px 16px; font-size: 15px; }
.cra-link { font-weight: 800; color: var(--cra-verde); }
.cra-empty { color: var(--cra-gris); }
.cra-grid { display: grid; gap: 20px; list-style: none; margin: 0; padding: 0; }
.cra-grid--3 { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }

.cra-triangle a:focus-visible,
.cra-school:focus-visible,
.cra-project:focus-visible,
.cra-pill:focus-visible,
.cra-button:focus-visible {
	outline: 3px solid #f08a3c;
	outline-offset: 3px;
}

/* Triángulo del escudo */
.cra-triangle {
	position: relative;
	width: 100%;
	max-width: 600px;
	aspect-ratio: 1 / 0.9;
	margin-inline: auto;
	font-family: var(--cra-titulos);
}
.cra-triangle__part {
	position: absolute;
	inset: 0;
	text-decoration: none;
	background-image: var(--cra-foto, none);
	background-size: cover;
	background-position: center;
	transition: filter 0.2s ease;
}
.cra-triangle__part:hover { filter: brightness(1.05) saturate(1.1); }
.cra-triangle__part--izq { clip-path: polygon(0 0, 49.2% 0, 49.2% 57%, 25.2% 50.5%); }
.cra-triangle__part--der { clip-path: polygon(50.8% 0, 100% 0, 74.8% 50.5%, 50.8% 57%); }
.cra-triangle__part--abajo { clip-path: polygon(26.4% 53%, 50% 59.4%, 73.6% 53%, 50% 100%); }
.cra-triangle__label {
	position: absolute;
	font-weight: 800;
	font-size: clamp(17px, 2.2vw, 26px);
	line-height: 1.05;
}
/* Con foto, la etiqueta lleva fondo para que se lea siempre */
.cra-triangle__part[style] .cra-triangle__label {
	background: rgba(255, 255, 255, 0.9);
	padding: 6px 10px;
	border-radius: 10px;
}
.cra-triangle__part--izq .cra-triangle__label { left: 9%; top: 7%; max-width: 32%; }
.cra-triangle__part--der .cra-triangle__label { right: 11%; top: 7%; max-width: 30%; text-align: right; }
.cra-triangle__part--abajo .cra-triangle__label { left: 34%; top: 66%; width: 32%; text-align: center; }
.cra-triangle__logo {
	position: absolute;
	left: 40%;
	top: 27%;
	width: 20%;
	aspect-ratio: 1 / 1;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 12px 34px rgba(46, 41, 37, 0.18);
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}
.cra-triangle__logo img { width: 72%; height: 72%; object-fit: contain; }

/* Tarjetas de escuela */
.cra-school {
	position: relative;
	overflow: hidden;
	min-height: 280px;
	padding: 28px;
	border-radius: 30px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 16px;
	text-decoration: none;
	font-family: var(--cra-texto);
}
.cra-school__photo {
	position: absolute;
	right: 0;
	top: 0;
	width: 62%;
	height: 70%;
	clip-path: polygon(0 0, 100% 0, 100% 100%);
	background-color: rgba(255, 255, 255, 0.4);
	background-size: cover;
	background-position: center;
}
.cra-school__kicker, .cra-school__body { position: relative; }
.cra-school__kicker { font-size: 13px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.cra-school__body { display: flex; flex-direction: column; gap: 6px; }
.cra-school__name { font-family: var(--cra-titulos); font-weight: 800; font-size: 30px; line-height: 1.05; color: var(--cra-tierra); }
.cra-school__address { font-size: 15px; }
.cra-school__more { margin-top: 6px; font-weight: 800; }

/* Aviso */
.cra-notice {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
	padding: 16px 22px;
	border: 2px solid var(--cra-tierra);
	border-radius: 22px;
	background: #fff;
	font-family: var(--cra-texto);
}
.cra-notice + .cra-notice { margin-top: 12px; }
.cra-notice .cra-pill { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.cra-notice__text { flex: 1 1 300px; display: flex; flex-direction: column; gap: 2px; font-size: 18px; }

/* Agenda de actividades */
.cra-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.cra-agenda { display: flex; flex-direction: column; font-family: var(--cra-texto); }
.cra-agenda__item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px 26px;
	padding: 24px 0;
	border-bottom: 1px solid var(--cra-linea);
}
.cra-agenda__item:last-child { border-bottom: 0; }
.cra-agenda__date {
	width: 84px;
	flex: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 12px 0;
	border-radius: 20px;
}
.cra-agenda__day { font-family: var(--cra-titulos); font-weight: 800; font-size: 34px; line-height: 1; }
.cra-agenda__month { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; }
.cra-agenda__body { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.cra-agenda__body p { margin: 0; color: var(--cra-texto-suave); line-height: 1.55; }
.cra-agenda__title { margin: 0; font-family: var(--cra-titulos); font-weight: 700; font-size: 26px; line-height: 1.15; }
.cra-agenda__title a { color: var(--cra-tierra); text-decoration: none; }
.cra-agenda__title a:hover { text-decoration: underline; }
.cra-agenda__img { width: 180px; height: 120px; object-fit: cover; border-radius: 20px; flex: none; }

/* Proyectos */
.cra-project {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #fff;
	border-radius: var(--cra-radio);
	text-decoration: none;
	color: var(--cra-tierra);
	font-family: var(--cra-texto);
}
.cra-project__photo {
	display: block;
	height: 190px;
	clip-path: polygon(0 0, 100% 0, 100% 78%, 50% 100%, 0 78%);
}
.cra-project__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cra-project__body { padding: 14px 26px 28px; display: flex; flex-direction: column; gap: 10px; }
.cra-project__title { font-family: var(--cra-titulos); font-size: 26px; font-weight: 800; }
.cra-project__text { color: var(--cra-texto-suave); line-height: 1.55; }

/* Documentos */
.cra-docs { font-family: var(--cra-texto); margin-bottom: 32px; }
.cra-docs__title { font-family: var(--cra-titulos); font-weight: 800; font-size: 24px; margin: 0 0 10px; }
.cra-docs__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--cra-linea); }
.cra-docs__item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 20px;
	padding: 14px 0;
	border-bottom: 1px solid var(--cra-linea);
}
.cra-docs__name { font-weight: 700; }
.cra-docs__course { font-weight: 600; font-size: 14px; color: var(--cra-gris); margin-left: 6px; }
.cra-docs__info { font-weight: 600; opacity: 0.85; }
.cra-docs__pending { font-size: 14px; color: var(--cra-gris); }

/* Recursos */
.cra-resources { font-family: var(--cra-texto); }
.cra-search { display: flex; flex-direction: column; gap: 6px; max-width: 480px; margin-bottom: 24px; font-weight: 700; }
.cra-search input {
	font: inherit;
	font-weight: 400;
	padding: 12px 16px;
	border: 2px solid var(--cra-linea);
	border-radius: 14px;
}
.cra-search input:focus { border-color: var(--cra-verde); outline: none; }
.cra-theme { margin-bottom: 28px; }
.cra-theme__title { display: flex; align-items: center; gap: 10px; font-family: var(--cra-titulos); font-weight: 800; font-size: 22px; margin: 0 0 8px; }
.cra-dot { width: 14px; height: 14px; border-radius: 4px; flex: none; }
.cra-theme__list { margin: 0; padding-left: 24px; display: grid; gap: 8px; }
.cra-theme__list a { font-weight: 700; color: var(--cra-verde); }
.cra-theme__list p { margin: 2px 0 0; color: var(--cra-texto-suave); }
.cra-theme__author { font-size: 14px; color: var(--cra-gris); }

/* Equipo */
.cra-team__person { display: flex; flex-direction: column; gap: 4px; font-family: var(--cra-texto); }
.cra-team__person img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--cra-radio); margin-bottom: 8px; }
.cra-team__name { font-family: var(--cra-titulos); font-weight: 800; font-size: 22px; }
.cra-team__role { color: var(--cra-gris); }

/* Fichas de temas */
.cra-themes { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; font-family: var(--cra-texto); }
.cra-themes__tile { display: flex; flex-direction: column; gap: 6px; padding: 22px; border-radius: 22px; text-decoration: none; }
.cra-themes__name { font-family: var(--cra-titulos); font-weight: 700; font-size: 21px; color: var(--cra-tierra); }

/*
 * Clases para widgets de Elementor (campo «Clases CSS» de la pestaña Avanzado).
 * Así la portada mantiene el estilo aunque cambien los ajustes globales.
 */
.cra-h1 .elementor-heading-title { font-family: var(--cra-titulos); font-weight: 800; font-size: clamp(40px, 6vw, 66px); line-height: 1; letter-spacing: -0.02em; color: var(--cra-tierra); }
.cra-h2 .elementor-heading-title { font-family: var(--cra-titulos); font-weight: 800; font-size: clamp(30px, 4vw, 44px); line-height: 1.08; color: var(--cra-tierra); }
.cra-label .elementor-heading-title { font-family: var(--cra-texto); font-size: 14px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cra-gris); }
.cra-lead, .cra-lead p { font-family: var(--cra-texto); font-size: 19px; line-height: 1.55; color: var(--cra-texto-suave); }
.cra-btn .elementor-button { font-family: var(--cra-texto); font-weight: 800; border-radius: 999px; padding: 15px 26px; background: var(--cra-verde); color: #fff; }
.cra-btn .elementor-button:hover { background: var(--cra-verde-oscuro); }
.cra-btn-outline .elementor-button { font-family: var(--cra-texto); font-weight: 800; border-radius: 999px; padding: 13px 24px; background: #fff; color: var(--cra-verde); border: 2px solid var(--cra-verde); }
.cra-access .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 14px; padding: 18px; background: #fff; border: 1px solid var(--cra-linea); border-radius: 18px; box-shadow: 0 8px 24px rgba(46, 41, 37, 0.06); text-align: left; }
.cra-access .elementor-icon-box-icon { margin: 0 !important; }
.cra-access .elementor-icon { width: 46px; height: 46px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 22px; }
.cra-access .elementor-icon-box-title { margin: 0; font-family: var(--cra-texto); font-size: 16px; font-weight: 700; color: var(--cra-tierra); }
.cra-access .elementor-icon-box-title a { color: inherit; }
.cra-access--albaricoque .elementor-icon { background: var(--cra-albaricoque); color: var(--cra-tinta-albaricoque); fill: var(--cra-tinta-albaricoque); }
.cra-access--cielo .elementor-icon { background: var(--cra-cielo); color: var(--cra-tinta-cielo); fill: var(--cra-tinta-cielo); }
.cra-access--prado .elementor-icon { background: var(--cra-prado); color: var(--cra-tinta-prado); fill: var(--cra-tinta-prado); }
.cra-access--rosa .elementor-icon { background: var(--cra-rosa); color: var(--cra-tinta-rosa); fill: var(--cra-tinta-rosa); }
.cra-access--gris .elementor-icon { background: #ece4dc; color: var(--cra-texto-suave); fill: var(--cra-texto-suave); }
.cra-band { display: flex; height: 10px; }
.cra-band span { flex: 1; }

@media (prefers-reduced-motion: reduce) {
	.cra-triangle__part { transition: none; }
}
