/**
 * Dhamma Vihāra — content types.
 *
 * PITFALL 38. `.elementor-kit-N a` beats any single-class selector inside a
 * shortcode. Every link below therefore carries two classes
 * (.dv-tarjeta a.dv-tarjeta__enlace), never one. Do not simplify these.
 *
 * COLOURS. Nothing here hard-codes the accent. The values come from the
 * Elementor kit's global colours, read through CSS custom properties with a
 * fallback, so changing the accent is one edit in the kit — not a hunt through
 * this file. The fallbacks are Hábito (#8A4A10 / #33200F) on cream #FBF7F2.
 */

:root {
	--dv-accent: var(--e-global-color-primary, #8A4A10);
	--dv-deep:   var(--e-global-color-secondary, #33200F);
	--dv-cream:  var(--e-global-color-accent, #FBF7F2);
	--dv-cream-2: #F3EBE1;
	--dv-muted:  color-mix(in srgb, var(--dv-deep) 62%, var(--dv-cream));
	--dv-rule:   color-mix(in srgb, var(--dv-deep) 14%, transparent);
	--dv-serif:  "Literata", Georgia, serif;
	--dv-sans:   "Montserrat", "Helvetica Neue", Arial, sans-serif;
}

/* ------------------------------------------------------------------ listado */

.dv-listado { margin-block: 0; }

.dv-listado .dv-listado__titulo {
	font-family: var(--dv-serif);
	color: var(--dv-deep);
	margin: 0 0 24px;
}

.dv-listado__rejilla {
	display: grid;
	/* auto-fill por la misma razón que arriba: una sola actividad próxima no
	   debe ocupar el ancho completo. */
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 24px;
	align-items: stretch;
}

/* ----------------------------------------------------------------- tarjetas */

.dv-listado .dv-tarjeta,
.dv-destacado .dv-tarjeta {
	display: flex;
	flex-direction: column;
	background: var(--dv-cream);
	border: 1px solid var(--dv-rule);
	border-radius: 2px;
	overflow: hidden;
	height: 100%;
}

/* PITFALL 37: div.elementor-shortcode sits between the widget and this output.
   Bring it into the flex chain or nothing stretches to full height. */
.elementor-widget-shortcode .elementor-shortcode,
.elementor-widget-shortcode .elementor-widget-container {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.dv-tarjeta .dv-tarjeta__imagen { aspect-ratio: 3 / 1; overflow: hidden; }
.dv-tarjeta .dv-tarjeta__imagen--cartel { aspect-ratio: 8 / 9; }
.dv-tarjeta .dv-tarjeta__img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dv-tarjeta .dv-tarjeta__cuerpo { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 6px; }

.dv-tarjeta .dv-tarjeta__fecha {
	font-family: var(--dv-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--dv-accent);
	margin: 0;
}

.dv-tarjeta .dv-tarjeta__titulo {
	font-family: var(--dv-serif);
	font-size: clamp(20px, 2.4vw, 24px);
	line-height: 1.2;
	font-weight: 600;
	color: var(--dv-deep);
	margin: 0;
	text-wrap: balance;
}

.dv-tarjeta a.dv-tarjeta__enlace { color: inherit; text-decoration: none; }
.dv-tarjeta a.dv-tarjeta__enlace:hover { color: var(--dv-accent); }

.dv-tarjeta .dv-tarjeta__maestros,
.dv-tarjeta .dv-tarjeta__resumen {
	font-family: var(--dv-sans);
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--dv-muted);
	margin: 0;
}

.dv-tarjeta--pasado { opacity: .78; }
.dv-tarjeta--pasado .dv-tarjeta__fecha { color: var(--dv-muted); }

/* Cancelada. No basta con atenuar la tarjeta: en el archivo de lo pasado todas
   están atenuadas. Hace falta decirlo con palabras y tachar la fecha, porque la
   fecha es lo que el lector usa para concluir que aquello ocurrió. */
.dv-tarjeta--cancelado { opacity: .85; }
.dv-tarjeta .dv-tarjeta__estado {
	align-self: flex-start;
	font-family: var(--dv-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--dv-deep);
	background: color-mix(in srgb, var(--dv-accent) 14%, transparent);
	border: 1px solid color-mix(in srgb, var(--dv-accent) 45%, transparent);
	border-radius: 3px;
	padding: 3px 8px;
	margin: 0 0 2px;
}
.dv-tarjeta--cancelado .dv-tarjeta__fecha {
	text-decoration: line-through;
	color: var(--dv-muted);
}

/* ------------------------------------------------------------------- aviso */

/* ---------------------------------------------------------------- aviso */
/* Cinta sólida bajo la cabecera, como la de iebh.org (16 sep 2026, Angel).
   Medida allí, no inventada: 36 px de alto, a sangre, fondo del color primario
   del sitio, texto crema, Montserrat 14, centrado; el rótulo a 12 con 1.2 px de
   espaciado. Lo único que cambia entre los dos sitios es el color, y sale del
   kit — aquí Hábito, allí granate. */

/* La cinta va un tono más claro que Hábito (Angel, 16 sep 2026). No puede
   heredar --dv-accent: esa variable también pinta las funciones de los maestros
   y otros rótulos, y allí el tono debe seguir siendo el de la marca. #9E5A1C
   mide 5.01:1 contra la crema — holgado para 14 px; el siguiente escalón baja
   a 4.61 y queda al filo. */
.dv-aviso {
	background: var(--dv-aviso-bg, #9E5A1C);
	color: var(--dv-cream);
	font-family: var(--dv-sans);
	font-size: 14px;
	line-height: 1.4;
	text-align: center;
	padding: 8px 16px;
	/* a sangre aunque viva dentro de un contenedor de Elementor */
	width: 100vw;
	margin-inline: calc(50% - 50vw);
}

.dv-aviso .dv-aviso__linea { margin: 0; }

.dv-aviso a.dv-aviso__enlace {
	color: var(--dv-cream);
	text-decoration: none;
	display: inline;
}
.dv-aviso a.dv-aviso__enlace:hover .dv-aviso__titulo { text-decoration: underline; }

.dv-aviso .dv-aviso__etiqueta {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--dv-cream);
	margin-right: 6px;
}
.dv-aviso .dv-aviso__fecha  { font-variant-numeric: tabular-nums; opacity: .85; }
.dv-aviso .dv-aviso__titulo { font-weight: 400; }
.dv-aviso .dv-aviso__sep    { opacity: .5; margin: 0 10px; }

@media (max-width: 600px) {
	.dv-aviso { font-size: 13px; padding: 7px 12px; }
	.dv-aviso .dv-aviso__etiqueta { display: block; margin: 0 0 2px; }
}

/* -------------------------------------------------------------- calendario */

.dv-calendario .dv-calendario__anio {
	font-family: var(--dv-serif);
	font-size: clamp(34px, 6vw, 56px);
	color: var(--dv-accent);
	margin: 0 0 8px;
	font-variant-numeric: tabular-nums;
}

.dv-calendario .dv-calendario__mes { border-top: 1px solid var(--dv-rule); padding-block: 18px; }

.dv-calendario .dv-calendario__mes-titulo {
	font-family: var(--dv-sans);
	font-size: 11px; font-weight: 600; letter-spacing: .16em;
	text-transform: uppercase; color: var(--dv-muted);
	margin: 0 0 10px;
}

.dv-calendario .dv-calendario__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }

.dv-calendario .dv-calendario__item {
	display: grid;
	grid-template-columns: minmax(170px, 210px) 1fr;
	gap: 6px 20px;
	align-items: baseline;
}

.dv-calendario .dv-calendario__fecha {
	font-family: var(--dv-sans); font-size: 12.5px;
	color: var(--dv-muted); font-variant-numeric: tabular-nums;
}

.dv-calendario a.dv-calendario__enlace {
	font-family: var(--dv-serif);
	font-size: 17px;
	color: var(--dv-deep);
	text-decoration: none;
	border-bottom: 1px solid transparent;
}
.dv-calendario a.dv-calendario__enlace:hover { border-bottom-color: var(--dv-accent); color: var(--dv-accent); }

.dv-calendario .dv-calendario__item--evento a.dv-calendario__enlace { font-style: italic; }
.dv-calendario .dv-calendario__item--pasado { opacity: .6; }

/* El formato en la propia línea. Un año entero de títulos no dice a cuál se
   puede uno apuntar tres días y a cuál se asiste una tarde. */
.dv-calendario .dv-calendario__texto {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px;
}
.dv-calendario .dv-calendario__formato {
	font-family: var(--dv-sans); font-size: 10.5px; font-weight: 600;
	letter-spacing: .08em; text-transform: uppercase; color: var(--dv-muted);
	border: 1px solid var(--dv-rule); border-radius: 3px; padding: 2px 7px;
}
.dv-calendario .dv-calendario__cancelado {
	font-family: var(--dv-sans); font-size: 10.5px; font-weight: 600;
	letter-spacing: .08em; text-transform: uppercase; color: var(--dv-deep);
	background: color-mix(in srgb, var(--dv-accent) 14%, transparent);
	border: 1px solid color-mix(in srgb, var(--dv-accent) 45%, transparent);
	border-radius: 3px; padding: 2px 7px;
}
.dv-calendario .dv-calendario__item--cancelado .dv-calendario__fecha { text-decoration: line-through; }
.dv-calendario .dv-calendario__item--cancelado a.dv-calendario__enlace { color: var(--dv-muted); }

@media (max-width: 600px) {
	.dv-calendario .dv-calendario__item { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------- maestros */

.dv-maestros .dv-maestros__titulo { font-family: var(--dv-serif); color: var(--dv-deep); margin: 0 0 24px; }

/* auto-fill, NO auto-fit (16 sep 2026). Con auto-fit las pistas vacías se
   colapsan a cero y el único elemento de una fila se estira a todo el ancho:
   el grupo «Guías» tiene una sola persona y su retrato circular ocupaba la
   pantalla entera. Nadie lo había visto porque en la página Acerca los grupos
   siempre traen seis o más. auto-fill conserva las pistas y el retrato se
   queda del tamaño de los demás. */
.dv-maestros__rejilla {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 28px 24px;
}

.dv-maestro .dv-maestro__retrato {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 50%;
	margin-bottom: 14px;
	background: var(--dv-cream-2);
}
.dv-maestro .dv-maestro__img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dv-maestro .dv-maestro__retrato--monograma {
	display: grid; place-items: center;
	background: var(--dv-accent);
}
.dv-maestro .dv-maestro__retrato--monograma span {
	font-family: var(--dv-serif); font-size: 40px; color: var(--dv-cream);
}

.dv-maestro .dv-maestro__nombre {
	font-family: var(--dv-serif); font-size: 18px; font-weight: 600;
	color: var(--dv-deep); margin: 0 0 4px; text-wrap: balance;
}
.dv-maestro a.dv-maestro__enlace { color: inherit; text-decoration: none; }
.dv-maestro a.dv-maestro__enlace:hover { color: var(--dv-accent); }

.dv-maestro .dv-maestro__bio {
	font-family: var(--dv-sans); font-size: 13px; line-height: 1.55;
	color: var(--dv-muted); margin: 0;
}

/* ------------------------------------------------------------- actividades */

.dv-actividades .dv-actividades__titulo {
	font-family: var(--dv-sans); font-size: 11px; font-weight: 600;
	letter-spacing: .16em; text-transform: uppercase; color: var(--dv-muted);
	margin: 0 0 14px;
}
.dv-actividades .dv-actividades__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.dv-actividades .dv-actividades__item {
	display: grid; grid-template-columns: minmax(150px, 190px) 1fr; gap: 4px 18px; align-items: baseline;
	padding-bottom: 9px; border-bottom: 1px solid var(--dv-rule);
}
.dv-actividades .dv-actividades__fecha {
	font-family: var(--dv-sans); font-size: 12px; color: var(--dv-muted); font-variant-numeric: tabular-nums;
}
.dv-actividades a.dv-actividades__enlace {
	font-family: var(--dv-serif); font-size: 16px; color: var(--dv-deep); text-decoration: none;
}
.dv-actividades a.dv-actividades__enlace:hover { color: var(--dv-accent); }

@media (max-width: 600px) {
	.dv-actividades .dv-actividades__item { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Plantillas de ficha (single-dv_*.php)
   --------------------------------------------------------------------------
   PITFALL 38, aplicado sistemáticamente. `.elementor-kit-8 a` tiene
   especificidad 0,1,1 y empata con `.dv-volver a`, que perdería por orden de
   carga. TODO lo de abajo va prefijado con `.dv` — la clase que lleva el
   <main> — de modo que cualquier selector queda en 0,2,x y gana sin depender
   del orden. No quitar el prefijo.

   Los colores salen del kit de Elementor (véase la cabecera del archivo).
   ========================================================================== */

.dv .dv-envoltura {
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 24px;
	padding-block: 48px 72px;
	color: var(--dv-deep);
}

/* ------------------------------------------------------------- cabeceras */

.dv .dv-antetitulo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0 0 14px;
	font-family: var(--dv-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
}

.dv .dv-codigo { color: var(--dv-muted); }
.dv .dv-antetitulo a { color: inherit; text-decoration: none; }
.dv .dv-antetitulo a:hover { color: var(--dv-accent); }

.dv .dv-estado {
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 11px;
	letter-spacing: 1px;
	background: color-mix(in srgb, var(--dv-accent) 12%, transparent);
	color: var(--dv-accent);
}
.dv .dv-estado--en_curso { background: var(--dv-accent); color: var(--dv-cream); }
.dv .dv-estado--finalizado { background: transparent; color: var(--dv-muted); border: 1px solid var(--dv-rule); }
.dv .dv-estado--sin_fecha { background: transparent; color: var(--dv-muted); border: 1px dashed var(--dv-rule); }

.dv .dv-titulo {
	font-family: var(--dv-serif);
	font-size: clamp(30px, 4vw, 46px);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -0.5px;
	margin: 0 0 12px;
	color: var(--dv-deep);
}

.dv .dv-actividad__maestros,
.dv .dv-evento__maestros {
	font-family: var(--dv-sans);
	font-size: 15px;
	margin: 0 0 10px;
	color: var(--dv-muted);
}
.dv .dv-actividad__maestros a,
.dv .dv-evento__maestros a { color: var(--dv-accent); text-decoration: none; }
.dv .dv-actividad__maestros a:hover,
.dv .dv-evento__maestros a:hover { text-decoration: underline; }

.dv .dv-entradilla {
	font-family: var(--dv-serif);
	font-size: 20px;
	line-height: 1.55;
	color: var(--dv-muted);
	margin: 0;
	max-width: 62ch;
}

/* ---------------------------------------------------------------- imagen */

/* La imagen va en la columna principal, encima del texto. Una fotografía
   apaisada se recorta a banda 3:1; un cartel conserva su proporción entera,
   porque recortarlo le quitaría el título. */

.dv .dv-actividad__imagen,
.dv .dv-evento__imagen {
	margin: 0 0 32px;
	aspect-ratio: 3 / 1;
	overflow: hidden;
	border-radius: 2px;
}
.dv .dv-actividad__imagen img,
.dv .dv-evento__imagen img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dv .dv-actividad__imagen--cartel,
.dv .dv-evento__imagen--cartel { aspect-ratio: auto; max-width: 520px; }
.dv .dv-actividad__imagen--cartel img,
.dv .dv-evento__imagen--cartel img { height: auto; object-fit: contain; }

.dv .dv-actividad__cartel,
.dv .dv-evento__cartel { margin: 0 0 24px; }
.dv .dv-actividad__cartel img,
.dv .dv-evento__cartel img { width: 100%; height: auto; display: block; border-radius: 2px; }

/* ----------------------------------------------------------------- cuerpo */

.dv .dv-actividad__cuerpo,
.dv .dv-evento__cuerpo,
.dv .dv-maestro__cuerpo {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 64px;
	margin-top: 40px;
	align-items: start;
}
.dv .dv-maestro__cuerpo { grid-template-columns: 300px minmax(0, 1fr); }

.dv .dv-prosa { font-family: var(--dv-serif); font-size: 18px; line-height: 1.65; max-width: 62ch; }
.dv .dv-prosa p { margin: 0 0 1.1em; }
.dv .dv-prosa a { color: var(--dv-accent); }

.dv .dv-seccion { margin-top: 40px; }
.dv .dv-seccion__titulo {
	font-family: var(--dv-sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--dv-accent);
	margin: 0 0 14px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--dv-rule);
}

/* ------------------------------------------------------------------ ficha */

.dv .dv-ficha {
	background: var(--dv-cream-2);
	border: 1px solid var(--dv-rule);
	border-radius: 2px;
	padding: 24px 24px 26px;
	margin-bottom: 24px;
}

.dv .dv-ficha__titulo {
	font-family: var(--dv-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: var(--dv-muted);
	margin: 0 0 14px;
}

.dv .dv-datos { margin: 0; display: grid; gap: 14px; }
.dv .dv-datos__par { display: grid; gap: 2px; }
.dv .dv-datos dt {
	font-family: var(--dv-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--dv-muted);
}
.dv .dv-datos dd {
	margin: 0;
	font-family: var(--dv-serif);
	font-size: 16px;
	line-height: 1.45;
	color: var(--dv-deep);
}
.dv .dv-datos dd a { color: var(--dv-accent); text-decoration: none; }
.dv .dv-datos dd a:hover { text-decoration: underline; }

.dv .dv-zona { display: block; font-size: 13px; color: var(--dv-muted); }
.dv .dv-nota { font-size: 13px; line-height: 1.5; color: var(--dv-muted); margin: 14px 0 0; }

/* ----------------------------------------------------------------- botones */

.dv a.dv-boton {
	display: block;
	margin-top: 18px;
	padding: 13px 18px;
	background: var(--dv-accent);
	color: var(--dv-cream);
	font-family: var(--dv-sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	border-radius: 2px;
	border: 1px solid var(--dv-accent);
}
.dv a.dv-boton:hover { background: var(--dv-deep); border-color: var(--dv-deep); color: var(--dv-cream); }

.dv a.dv-boton--secundario { background: transparent; color: var(--dv-accent); }
.dv a.dv-boton--secundario:hover { background: var(--dv-accent); color: var(--dv-cream); }

/* El botón de WhatsApp lleva icono. Se queda en la paleta del sitio en vez
   del verde de la marca: es una vía de contacto más, no un anuncio. */
.dv a.dv-boton--wa {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
}

.dv a.dv-boton--wa svg {
	width: 17px;
	height: 17px;
	flex: 0 0 17px;
	display: block;
}

/* ------------------------------------------------------------- retratos */

.dv .dv-retrato { display: block; overflow: hidden; border-radius: 2px; background: var(--dv-cream-2); }
.dv .dv-retrato img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dv .dv-retrato--mini { width: 46px; height: 46px; border-radius: 50%; flex: 0 0 46px; }
.dv .dv-retrato--grande { margin: 0 0 24px; aspect-ratio: 4 / 5; }

.dv .dv-retrato__iniciales {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-family: var(--dv-serif);
	font-size: 20px;
	color: var(--dv-muted);
}

.dv a.dv-mini {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 7px 0;
	color: var(--dv-deep);
	text-decoration: none;
}
.dv a.dv-mini:hover .dv-mini__nombre { color: var(--dv-accent); text-decoration: underline; }
.dv .dv-mini__nombre { font-family: var(--dv-serif); font-size: 15px; line-height: 1.3; }

/* ------------------------------------------------------------------ vídeo */

.dv .dv-video { position: relative; aspect-ratio: 16 / 9; margin: 0; }
.dv .dv-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 2px; }

/* ---------------------------------------------------------------- maestro */

.dv .dv-maestro__nombre { font-family: var(--dv-serif); font-size: 19px; color: var(--dv-muted); margin: 0 0 8px; }

.dv .dv-maestro__fallecimiento {
	font-family: var(--dv-sans);
	font-size: 13px;
	letter-spacing: .4px;
	color: var(--dv-muted);
	margin: 0 0 14px;
	padding-left: 12px;
	border-left: 2px solid var(--dv-rule);
}

.dv .dv-enlaces { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.dv .dv-enlaces .dv-enlaces__item { font-family: var(--dv-serif); font-size: 15px; }
.dv .dv-enlaces a.dv-enlaces__enlace { color: var(--dv-accent); text-decoration: none; border-bottom: 1px solid transparent; }
.dv .dv-enlaces a.dv-enlaces__enlace:hover { border-bottom-color: var(--dv-accent); }

/* ----------------------------------------------------------------- volver */

.dv .dv-volver {
	margin: 56px 0 0;
	padding-top: 20px;
	border-top: 1px solid var(--dv-rule);
	font-family: var(--dv-sans);
	font-size: 13px;
	color: var(--dv-muted);
	line-height: 1.9;
}
.dv .dv-volver a { color: var(--dv-accent); text-decoration: none; }
.dv .dv-volver a:hover { text-decoration: underline; }

/* -------------------------------------------------------------- responsive */

@media (max-width: 1024px) {
	.dv .dv-actividad__cuerpo,
	.dv .dv-evento__cuerpo,
	.dv .dv-maestro__cuerpo { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.dv .dv-maestro__lateral { max-width: 340px; }
}

@media (max-width: 767px) {
	.dv .dv-envoltura { padding-inline: 18px; padding-block: 32px 52px; }
	.dv .dv-entradilla { font-size: 18px; }
	.dv .dv-prosa { font-size: 17px; }
	.dv .dv-actividad__imagen,
	.dv .dv-evento__imagen { aspect-ratio: 16 / 9; }
}

/* ------------------------------------------------------------------ agenda */
/* El archivo de /agenda/. Reutiliza .dv-listado__rejilla y .dv-tarjeta de los
   shortcodes; aquí sólo va lo que el archivo añade por encima. */

.dv .dv-agenda__cabecera {
	max-width: 760px;
	margin: 0 auto 40px;
	text-align: center;
}
.dv .dv-agenda__titulo {
	font-family: var(--dv-serif);
	font-weight: 600;
	font-size: clamp(32px, 5vw, 48px);
	line-height: 1.1;
	margin: 6px 0 12px;
	color: var(--dv-deep);
}
.dv .dv-agenda__filtros {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 22px;
}
.dv .dv-agenda__filtros a.dv-filtro {
	font-family: var(--dv-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 7px 14px;
	border: 1px solid color-mix(in srgb, var(--dv-accent) 35%, transparent);
	border-radius: 999px;
	color: var(--dv-accent);
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}
.dv .dv-agenda__filtros a.dv-filtro:hover {
	background: color-mix(in srgb, var(--dv-accent) 10%, transparent);
}
.dv .dv-agenda__filtros a.dv-filtro--activo {
	background: var(--dv-accent);
	border-color: var(--dv-accent);
	color: #fff;
}
.dv .dv-agenda__celda--borrador { position: relative; }
.dv .dv-agenda__celda--borrador .dv-tarjeta {
	outline: 1px dashed color-mix(in srgb, var(--dv-accent) 45%, transparent);
	outline-offset: 4px;
}
.dv .dv-borrador {
	font-family: var(--dv-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--dv-accent);
	margin: 0 0 6px;
}
.dv .dv-agenda__vacio {
	text-align: center;
	max-width: 520px;
	margin: 48px auto;
}

/* La celda envuelve la tarjeta para poder marcarla como borrador, y por tanto
   es ella la que recibe el estiramiento de la rejilla. Sin esto la tarjeta no
   llega al fondo y las filas quedan desiguales. */
.dv .dv-agenda__celda { display: flex; flex-direction: column; }
.dv .dv-agenda__celda > .dv-tarjeta { flex: 1 1 auto; }

/* ------------------------------------------------- archivo de maestros */
.dv .dv-maestros__celda { display: flex; flex-direction: column; }
.dv .dv-maestros__celda > .dv-maestro { flex: 1 1 auto; }
.dv .dv-maestros--pendiente { border-top: 1px dashed var(--dv-rule); padding-top: 28px; margin-top: 36px; }
.dv .dv-maestros--pendiente .dv-nota { text-align: center; margin-bottom: 20px; }
.dv .dv-maestros + .dv-maestros { margin-top: 44px; }

/* Actividad cancelada. Llamativa sin ser una alarma: el visitante ha llegado
   buscando algo que ya no ocurre y lo primero que necesita es enterarse. */
.dv .dv-cancelado {
	font-family: var(--dv-sans);
	font-size: 14px;
	line-height: 1.5;
	color: var(--dv-deep);
	background: color-mix(in srgb, var(--dv-accent) 12%, transparent);
	border-left: 3px solid var(--dv-accent);
	padding: 14px 16px;
	margin: 0 0 24px;
}
.dv .dv-cancelado strong { font-weight: 600; }

/* La función, en la ficha y no en un encabezado de sección. Discreta: es un
   dato de la persona, no un título. */
.dv .dv-maestro__funcion {
	font-family: var(--dv-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--dv-accent);
	margin: 0 0 6px;
}
.dv .dv-maestro__vida {
	font-family: var(--dv-serif);
	font-size: 14px;
	color: var(--dv-deep);
	opacity: .66;
	margin: 0 0 6px;
}
.dv .dv-maestros__pendiente { text-align: center; margin-top: 32px; }
