/* =========================================================================
   ÁLAVA DIGITAL · base.css
   Sistema de diseño. Aquí mandan los colores, la tipografía y los estilos
   de todos los módulos. Edita las variables de :root para reajustar la marca
   en toda la web de golpe.
   ========================================================================= */

:root {

	/* ---- Colores corporativos (extraídos del logo) ------------------- */
	--ad-verde:           #54604C;  /* principal: títulos y texto fuerte   */
	--ad-verde-osc:       #3F4838;  /* hover / acentos oscuros             */
	--ad-verde-prof:      #3B4534;  /* hero oscuro                         */
	--ad-crema:           #F4F6E9;  /* fondo de marca                      */
	--ad-hoja:            #C1DEAE;  /* verde hoja claro                    */
	--ad-amarillo:        #E7E8A6;  /* amarillo hoja                       */
	--ad-amarillo-claro:  #F2F5C8;  /* amarillo suave                      */
	--ad-texto:           #3A4232;  /* texto de párrafo                    */
	--ad-blanco:          #FFFFFF;

	/* ---- Tipografía -------------------------------------------------- */
	--ad-font-titulo: "Playfair Display", Georgia, "Times New Roman", serif;
	--ad-font-texto:  "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;

	/* ---- Escala y ritmo --------------------------------------------- */
	--ad-radio:        14px;
	--ad-radio-sm:     8px;
	--ad-gap:          1.5rem;
	--ad-seccion-y:    clamp(2.5rem, 6vw, 5rem);
	--ad-max:          1140px;
	--ad-sombra:       0 10px 30px rgba(63, 72, 56, 0.12);
	--ad-sombra-suave: 0 8px 22px rgba(59, 69, 52, 0.07);
	--ad-transicion:   180ms ease;
}

/* =========================================================================
   Contenedor común de módulos
   ========================================================================= */
.ad-modulo {
	font-family: var(--ad-font-texto);
	color: var(--ad-texto);
	font-weight: 400;
	line-height: 1.6;
	box-sizing: border-box;
}
.ad-modulo *,
.ad-modulo *::before,
.ad-modulo *::after {
	box-sizing: border-box;
}

.ad-contenedor {
	width: 100%;
	max-width: var(--ad-max);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 2rem);
}

/* ---- Tipografía de módulo ----------------------------------------- */
.ad-modulo h1,
.ad-modulo h2,
.ad-modulo h3 {
	font-family: var(--ad-font-titulo);
	color: var(--ad-verde);
	font-weight: 700;
	line-height: 1.12;
	margin: 0 0 0.5em;
}
.ad-modulo h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
.ad-modulo h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); }
.ad-modulo h3 { font-size: clamp(1.3rem, 2.5vw, 1.6rem); }
.ad-modulo p  { margin: 0 0 1rem; }

/* Antetítulo: la sans espaciada del logo ("negocios rurales") */
.ad-eyebrow {
	font-family: var(--ad-font-texto);
	font-weight: 500;
	font-size: 0.78rem;
	letter-spacing: 0.32em;
	text-transform: lowercase;
	color: var(--ad-verde);
	opacity: 0.85;
	margin: 0 0 0.9rem;
}

/* =========================================================================
   Componente: Botón
   ========================================================================= */
.ad-boton {
	display: inline-block;
	font-family: var(--ad-font-texto);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1;
	text-decoration: none;
	padding: 0.95em 1.8em;
	border-radius: 30px;
	border: 2px solid var(--ad-verde);
	cursor: pointer;
	transition: background var(--ad-transicion), color var(--ad-transicion),
		border-color var(--ad-transicion), transform var(--ad-transicion),
		box-shadow var(--ad-transicion);
}
.ad-boton:hover,
.ad-boton:focus-visible {
	transform: translateY(-2px);
	box-shadow: var(--ad-sombra);
}
/* Primario: relleno verde */
.ad-boton--primario {
	background: var(--ad-verde);
	color: var(--ad-crema);
}
.ad-boton--primario:hover,
.ad-boton--primario:focus-visible {
	background: var(--ad-verde-osc);
	border-color: var(--ad-verde-osc);
	color: var(--ad-crema);
}
/* Secundario: contorno */
.ad-boton--secundario {
	background: transparent;
	color: var(--ad-verde);
}
.ad-boton--secundario:hover,
.ad-boton--secundario:focus-visible {
	background: var(--ad-verde);
	color: var(--ad-crema);
}
/* Amarillo: para fondos oscuros (hero) */
.ad-boton--amarillo {
	background: var(--ad-amarillo);
	border-color: var(--ad-amarillo);
	color: #2F3A28;
}
.ad-boton--amarillo:hover,
.ad-boton--amarillo:focus-visible {
	background: var(--ad-crema);
	border-color: var(--ad-crema);
	color: var(--ad-verde-osc);
}

/* =========================================================================
   Componente: Hero
   ========================================================================= */
.ad-hero {
	background: var(--ad-crema);
	padding-block: var(--ad-seccion-y);
	border-radius: var(--ad-radio);
	text-align: center;
}
.ad-hero__inner {
	max-width: 760px;
	margin-inline: auto;
}
.ad-hero h1 { margin-bottom: 0.3em; }
.ad-hero__sub {
	font-size: clamp(1.05rem, 2vw, 1.25rem);
	color: var(--ad-texto);
	margin-bottom: 1.8rem;
}
.ad-hero .ad-boton { margin-top: 0.5rem; }

/* ---- Hero oscuro (variante de marca, fondo verde + acuarela) ------ */
.ad-hero--oscuro {
	position: relative;
	overflow: hidden;
	background: var(--ad-verde-prof);
	border-radius: 0;
}
.ad-hero--oscuro::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(closest-side at 86% 16%, rgba(193, 222, 174, 0.55), transparent 68%),
		radial-gradient(closest-side at 95% 26%, rgba(231, 232, 166, 0.50), transparent 66%),
		radial-gradient(closest-side at 6% 92%,  rgba(193, 222, 174, 0.32), transparent 70%);
}
.ad-hero--oscuro .ad-hero__inner {
	position: relative;
	z-index: 1;
}
.ad-hero--oscuro h1 { color: var(--ad-crema); }
.ad-hero--oscuro .ad-hero__sub { color: rgba(244, 246, 233, 0.85); }
.ad-hero--oscuro .ad-eyebrow {
	color: var(--ad-amarillo);
	opacity: 1;
}

/* =========================================================================
   Componente: Servicios (rejilla de tarjetas)
   ========================================================================= */
.ad-servicios {
	padding-block: var(--ad-seccion-y);
}
.ad-servicios__titulo {
	text-align: center;
	font-family: var(--ad-font-texto);
	font-weight: 500;
	font-size: 0.8rem;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--ad-verde);
	opacity: 0.7;
	margin: 0 0 2rem;
}
.ad-tarjetas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--ad-gap);
}
.ad-tarjeta {
	display: flex;
	flex-direction: column;
	background: var(--ad-blanco);
	border: 1px solid rgba(84, 96, 76, 0.15);
	border-top: 4px solid transparent;
	border-image: linear-gradient(90deg, var(--ad-hoja), var(--ad-amarillo)) 1;
	border-radius: var(--ad-radio);
	padding: 2rem 1.7rem;
	box-shadow: var(--ad-sombra-suave);
	transition: transform var(--ad-transicion), box-shadow var(--ad-transicion);
}
.ad-tarjeta:hover {
	transform: translateY(-4px);
	box-shadow: var(--ad-sombra);
}
.ad-tarjeta h3 { margin-bottom: 0.4em; }
.ad-tarjeta__cuerpo { flex: 1 1 auto; }
.ad-tarjeta__cuerpo p:last-child { margin-bottom: 0; }
.ad-tarjeta--link {
	text-decoration: none;
	color: inherit;
}
.ad-tarjeta--link:hover,
.ad-tarjeta--link:focus-visible { color: inherit; }
.ad-tarjeta__cta {
	display: inline-block;
	margin-top: 1rem;
	font-family: var(--ad-font-texto);
	font-weight: 600;
	color: var(--ad-verde);
	transition: transform var(--ad-transicion), color var(--ad-transicion);
}
.ad-tarjeta--link:hover .ad-tarjeta__cta {
	transform: translateX(3px);
	color: var(--ad-verde-osc);
}

/* =========================================================================
   Componente: Sección genérica
   ========================================================================= */
.ad-seccion { padding-block: var(--ad-seccion-y); }
.ad-seccion--center { text-align: center; }
.ad-seccion--center .ad-seccion__inner {
	max-width: 760px;
	margin-inline: auto;
}
.ad-seccion--crema    { background: var(--ad-crema); }
.ad-seccion--blanco   { background: var(--ad-blanco); }
.ad-seccion--amarillo { background: var(--ad-amarillo-claro); }
.ad-seccion__cuerpo {
	font-size: 1.05rem;
	margin-bottom: 2.25rem;
}
.ad-seccion__cuerpo > p:last-child { margin-bottom: 0; }

/* =========================================================================
   Componente: Colaboradores (banda de logos)
   ========================================================================= */
.ad-colaboradores { padding-block: var(--ad-seccion-y); }
.ad-colaboradores__titulo {
	text-align: center;
	font-family: var(--ad-font-texto);
	font-weight: 500;
	font-size: 0.8rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ad-verde);
	opacity: 0.7;
	margin: 0 0 2rem;
}
.ad-colaboradores__grid {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(1.5rem, 5vw, 3.5rem);
}
.ad-logo { display: inline-flex; align-items: center; }
.ad-logo__img {
	max-height: 64px;
	width: auto;
	filter: grayscale(100%);
	opacity: 0.65;
	transition: filter var(--ad-transicion), opacity var(--ad-transicion),
		transform var(--ad-transicion);
}
.ad-logo:hover .ad-logo__img,
.ad-logo:focus-visible .ad-logo__img {
	filter: grayscale(0%);
	opacity: 1;
	transform: scale(1.05);
}

/* =========================================================================
   Accesibilidad y responsive
   ========================================================================= */
.ad-modulo a:focus-visible,
.ad-modulo button:focus-visible {
	outline: 3px solid var(--ad-amarillo);
	outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	.ad-modulo *,
	.ad-modulo *::before,
	.ad-modulo *::after { transition: none !important; }
}

/* =========================================================================
   Componente: Cabecera
   ========================================================================= */
.ad-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background: var(--ad-crema);
	border-bottom: 1px solid rgba(84, 96, 76, 0.15);
}
.ad-header__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 0.7rem;
	max-width: 100%; /* cabecera a todo el ancho */
}
/* Logo: altura forzada para ganarle a Elementor/tema */
.ad-header .ad-header__logo img {
	display: block;
	height: 90px !important;
	width: auto !important;
	max-width: none !important;
}
.ad-header__nav {
	display: flex;
	align-items: center;
	gap: 1.4rem;
}
.ad-header .ad-header__link {
	font-family: var(--ad-font-texto);
	font-weight: 500;
	font-size: 0.95rem;
	color: var(--ad-verde);
	text-decoration: none;
	white-space: nowrap; /* que no se parta en dos líneas */
	transition: color var(--ad-transicion);
}
.ad-header__link:hover,
.ad-header__link:focus-visible { color: var(--ad-verde-osc); }
.ad-header__cta {
	font-family: var(--ad-font-texto);
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--ad-crema);
	background: var(--ad-verde);
	padding: 0.6em 1.1em;
	border-radius: var(--ad-radio-sm);
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--ad-transicion);
}
.ad-header__cta:hover,
.ad-header__cta:focus-visible {
	background: var(--ad-verde-osc);
	color: var(--ad-crema);
}

/* Botón hamburguesa (forzado contra los estilos de Elementor) */
.ad-header .ad-header__toggle {
	display: none !important;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0 !important;
	background: none !important;
	background-color: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
}
.ad-header .ad-header__bars,
.ad-header .ad-header__bars::before,
.ad-header .ad-header__bars::after {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--ad-verde) !important;
	transition: transform var(--ad-transicion), opacity var(--ad-transicion);
}
.ad-header .ad-header__bars { position: relative; }
.ad-header .ad-header__bars::before,
.ad-header .ad-header__bars::after { content: ""; position: absolute; left: 0; }
.ad-header .ad-header__bars::before { top: -7px; }
.ad-header .ad-header__bars::after  { top: 7px; }
.ad-header .ad-header__toggle[aria-expanded="true"] .ad-header__bars {
	background: transparent !important;
}
.ad-header .ad-header__toggle[aria-expanded="true"] .ad-header__bars::before {
	transform: translateY(7px) rotate(45deg);
}
.ad-header .ad-header__toggle[aria-expanded="true"] .ad-header__bars::after {
	transform: translateY(-7px) rotate(-45deg);
}

/* Cabecera en móvil */
@media (max-width: 860px) {
	.ad-header .ad-header__toggle { display: inline-flex !important; }
	.ad-header__nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		background: var(--ad-crema);
		border-bottom: 1px solid rgba(84, 96, 76, 0.15);
		padding: 0.5rem 1.25rem 1.25rem;
		box-shadow: var(--ad-sombra);
		display: none;
	}
	.ad-header__nav.is-open { display: flex; }
	.ad-header__link {
		padding-block: 0.85rem;
		border-bottom: 1px solid rgba(84, 96, 76, 0.1);
	}
	.ad-header__cta { margin-top: 0.9rem; text-align: center; }
}

/* =========================================================================
   Componente: Pie
   ========================================================================= */
.ad-footer {
	background: var(--ad-verde);
	color: var(--ad-crema);
}
.ad-footer__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1.5rem;
	padding-block: 2.5rem;
}
.ad-footer__wm {
	font-family: var(--ad-font-titulo);
	font-weight: 700;
	letter-spacing: 0.12em;
	font-size: 1.4rem;
	margin: 0;
	color: var(--ad-crema);
}
.ad-footer__tag {
	font-family: var(--ad-font-texto);
	font-weight: 400;
	letter-spacing: 0.28em;
	font-size: 0.75rem;
	margin: 0.35rem 0 0;
	opacity: 0.8;
}
.ad-footer__legal {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
}
.ad-footer__legal a {
	color: var(--ad-crema);
	text-decoration: none;
	font-size: 0.9rem;
	opacity: 0.85;
	transition: opacity var(--ad-transicion);
}
.ad-footer__legal a:hover,
.ad-footer__legal a:focus-visible { opacity: 1; text-decoration: underline; }
.ad-footer__copy {
	margin: 0;
	text-align: center;
	font-size: 0.8rem;
	color: var(--ad-crema);
	opacity: 0.7;
	border-top: 1px solid rgba(244, 246, 233, 0.18);
	padding: 1.2rem 1rem;
}

/* =========================================================================
   Páginas de servicio (checklist, dolores, programa, stats)
   ========================================================================= */
.ad-lista-checks {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: 820px;
	text-align: left;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 0.85rem 2rem;
}
.ad-lista-checks li {
	position: relative;
	padding-left: 2.1rem;
	font-size: 1.05rem;
	line-height: 1.5;
}
.ad-lista-checks li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	top: 0.05em;
	width: 1.4rem;
	height: 1.4rem;
	line-height: 1.4rem;
	text-align: center;
	border-radius: 50%;
	background: var(--ad-hoja);
	color: var(--ad-verde-osc);
	font-size: 0.85rem;
	font-weight: 700;
}

.ad-dolores {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--ad-gap);
}
.ad-dolor {
	background: var(--ad-blanco);
	border: 1px solid rgba(84, 96, 76, 0.15);
	border-radius: var(--ad-radio);
	padding: 1.6rem;
	box-shadow: var(--ad-sombra-suave);
	text-align: left;
}
.ad-dolor__q {
	font-family: var(--ad-font-titulo);
	font-weight: 700;
	color: var(--ad-verde);
	font-size: 1.15rem;
	margin: 0 0 0.5rem;
}
.ad-dolor__a { margin: 0; font-size: 0.98rem; }

.ad-programa {
	display: grid;
	gap: 1rem;
	max-width: 840px;
	margin-inline: auto;
	text-align: left;
}
.ad-programa__item {
	display: flex;
	gap: 1.1rem;
	background: var(--ad-blanco);
	border: 1px solid rgba(84, 96, 76, 0.15);
	border-radius: var(--ad-radio);
	padding: 1.3rem 1.5rem;
	box-shadow: var(--ad-sombra-suave);
}
.ad-programa__num {
	flex: 0 0 auto;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: var(--ad-verde);
	color: var(--ad-crema);
	font-family: var(--ad-font-titulo);
	font-weight: 700;
	font-size: 1.05rem;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ad-programa__cont { flex: 1 1 auto; }
.ad-programa__cont h3 { margin: 0 0 0.3rem; font-size: 1.15rem; }
.ad-programa__cont p  { margin: 0 0 0.7rem; font-size: 0.97rem; }
.ad-programa__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.ad-programa__tag {
	font-size: 0.72rem;
	font-weight: 500;
	color: var(--ad-verde-osc);
	background: var(--ad-amarillo-claro);
	padding: 0.25rem 0.65rem;
	border-radius: 20px;
}

.ad-stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2.5rem;
	margin: 1.8rem 0 0;
}
.ad-stat { text-align: center; }
.ad-stat__num {
	font-family: var(--ad-font-titulo);
	font-weight: 800;
	color: var(--ad-verde);
	font-size: 2.4rem;
	line-height: 1;
}
.ad-stat__lab {
	font-size: 0.85rem;
	color: var(--ad-texto);
	opacity: 0.8;
	margin-top: 0.35rem;
	max-width: 170px;
}
.ad-cta-final { margin-top: 1.8rem; }

/* =========================================================================
   Pasos (proceso numerado) y Prensa
   ========================================================================= */
.ad-pasos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--ad-gap);
	text-align: left;
}
.ad-paso {
	background: var(--ad-blanco);
	border: 1px solid rgba(84, 96, 76, 0.15);
	border-radius: var(--ad-radio);
	padding: 1.6rem;
	box-shadow: var(--ad-sombra-suave);
}
.ad-paso__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: var(--ad-amarillo);
	color: var(--ad-verde-osc);
	font-family: var(--ad-font-titulo);
	font-weight: 700;
	margin-bottom: 0.8rem;
}
.ad-paso h3 { margin: 0 0 0.4rem; font-size: 1.1rem; }
.ad-paso p  { margin: 0; font-size: 0.95rem; }

.ad-prensa {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--ad-gap);
	text-align: left;
}
.ad-prensa__item {
	display: flex;
	flex-direction: column;
	background: var(--ad-blanco);
	border: 1px solid rgba(84, 96, 76, 0.15);
	border-radius: var(--ad-radio);
	padding: 1.6rem;
	box-shadow: var(--ad-sombra-suave);
}
.ad-prensa__meta {
	display: flex;
	gap: 0.6rem;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 0.8rem;
}
.ad-prensa__tipo {
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ad-verde-osc);
	background: var(--ad-amarillo-claro);
	padding: 0.2rem 0.6rem;
	border-radius: 20px;
}
.ad-prensa__medio,
.ad-prensa__anio { font-size: 0.8rem; color: var(--ad-texto); opacity: 0.7; }
.ad-prensa__item h3 {
	font-family: var(--ad-font-titulo);
	font-weight: 700;
	color: var(--ad-verde);
	font-size: 1.05rem;
	margin: 0 0 1rem;
	flex: 1 1 auto;
}
.ad-prensa__item a {
	margin-top: auto;
	font-weight: 600;
	color: var(--ad-verde);
	text-decoration: none;
}
.ad-prensa__item a:hover,
.ad-prensa__item a:focus-visible { color: var(--ad-verde-osc); }

/* =========================================================================
   Directorio de negocios, galería y alumnado
   ========================================================================= */
.ad-filtros {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin: 0 0 2rem;
}
.ad-filtro {
	font-family: var(--ad-font-texto);
	font-weight: 500;
	font-size: 0.85rem;
	color: var(--ad-verde);
	background: transparent;
	border: 1px solid rgba(84, 96, 76, 0.3);
	border-radius: 30px;
	padding: 0.45rem 1.1rem;
	cursor: pointer;
	transition: background var(--ad-transicion), color var(--ad-transicion), border-color var(--ad-transicion);
}
.ad-filtro:hover { background: var(--ad-hoja); }
.ad-filtro.is-active {
	background: var(--ad-verde);
	color: var(--ad-crema);
	border-color: var(--ad-verde);
}
.ad-directorio {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--ad-gap);
	text-align: left;
}
.ad-negocio {
	display: flex;
	flex-direction: column;
	background: var(--ad-blanco);
	border: 1px solid rgba(84, 96, 76, 0.15);
	border-radius: var(--ad-radio);
	padding: 1.4rem;
	box-shadow: var(--ad-sombra-suave);
}
.ad-negocio[hidden] { display: none; }
.ad-negocio h3 { font-size: 1.1rem; margin: 0 0 0.6rem; }
.ad-negocio__cuad {
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--ad-verde-osc);
	background: var(--ad-amarillo-claro);
	padding: 0.2rem 0.6rem;
	border-radius: 20px;
	align-self: flex-start;
	margin-bottom: 0.9rem;
}
.ad-negocio a {
	margin-top: auto;
	font-weight: 600;
	color: var(--ad-verde);
	text-decoration: none;
}
.ad-negocio a:hover { color: var(--ad-verde-osc); }

.ad-galeria {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--ad-gap);
}
.ad-galeria figure {
	margin: 0;
	background: var(--ad-blanco);
	border: 1px solid rgba(84, 96, 76, 0.15);
	border-radius: var(--ad-radio);
	overflow: hidden;
	box-shadow: var(--ad-sombra-suave);
}
.ad-galeria img { display: block; width: 100%; height: auto; }
.ad-galeria figcaption {
	padding: 0.9rem 1.1rem;
	font-weight: 500;
	color: var(--ad-verde);
	font-size: 0.95rem;
	text-align: left;
}

.ad-alumnos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1rem;
	text-align: left;
}
.ad-alumno {
	background: var(--ad-blanco);
	border: 1px solid rgba(84, 96, 76, 0.15);
	border-radius: var(--ad-radio);
	padding: 1.2rem;
	box-shadow: var(--ad-sombra-suave);
}
.ad-alumno h3 { font-size: 1.02rem; margin: 0 0 0.3rem; }
.ad-alumno__meta { font-size: 0.82rem; color: var(--ad-texto); opacity: 0.75; margin: 0; }
.ad-alumno__ano {
	display: inline-block;
	margin-top: 0.6rem;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--ad-verde-osc);
	background: var(--ad-amarillo-claro);
	padding: 0.15rem 0.55rem;
	border-radius: 20px;
}

/* =========================================================================
   Blog (listado de entradas)
   ========================================================================= */
.ad-blog {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: var(--ad-gap);
	text-align: left;
}
.ad-post {
	display: flex;
	flex-direction: column;
	background: var(--ad-blanco);
	border: 1px solid rgba(84, 96, 76, 0.15);
	border-radius: var(--ad-radio);
	overflow: hidden;
	box-shadow: var(--ad-sombra-suave);
	transition: transform var(--ad-transicion), box-shadow var(--ad-transicion);
}
.ad-post:hover { transform: translateY(-4px); box-shadow: var(--ad-sombra); }
.ad-post__img { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--ad-hoja); }
.ad-post__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ad-post__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 1.4rem 1.5rem; }
.ad-post__fecha {
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ad-verde);
	opacity: 0.7;
	margin: 0 0 0.5rem;
}
.ad-post__body h3 { font-size: 1.2rem; line-height: 1.2; margin: 0 0 0.6rem; }
.ad-post__body h3 a { color: var(--ad-verde); text-decoration: none; }
.ad-post__body h3 a:hover { color: var(--ad-verde-osc); }
.ad-post__ext { font-size: 0.95rem; margin: 0 0 1rem; flex: 1 1 auto; }
.ad-post__mas { font-weight: 600; color: var(--ad-verde); text-decoration: none; }
.ad-post__mas:hover { color: var(--ad-verde-osc); }

.ad-paginacion {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 2.5rem;
}
.ad-paginacion .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.4rem;
	height: 2.4rem;
	padding: 0 0.6rem;
	border-radius: var(--ad-radio-sm);
	border: 1px solid rgba(84, 96, 76, 0.25);
	color: var(--ad-verde);
	text-decoration: none;
	font-weight: 500;
}
.ad-paginacion .page-numbers.current { background: var(--ad-verde); color: var(--ad-crema); border-color: var(--ad-verde); }
.ad-paginacion a.page-numbers:hover { background: var(--ad-hoja); }