/* =========================================================
   Trabajos Multicéntricos – v1.0.0
   Todo se controla con variables CSS (--ttw-* / --b-*)
   Breakpoints: tablet ≤1024px · mobile ≤767px
   ======================================================= */

.ttw-scope,
.ttw-scope *,
.ttw-scope *::before,
.ttw-scope *::after { box-sizing: border-box; }

/* ---------- BLOQUE DE AÑO ---------- */
.ttw-year {
	font-family: var(--ttw-font, inherit);
	color: var(--ttw-text, #002c6f);
	margin: 0 0 var(--ttw-block-gap, 64px);
}

.ttw-year__head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 var(--ttw-head-gap, 28px);
}

.ttw-year__cal {
	flex: 0 0 auto;
	display: block;
	width: var(--ttw-cal-d, 44px);
	color: var(--ttw-primary, #0b73f4);
	line-height: 0;
}
.ttw-year__cal svg { display: block; width: 100%; height: auto; }

.ttw-year .ttw-year__label {
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: var(--ttw-year-d, 40px);
	font-weight: var(--ttw-year-w, 800);
	line-height: 1;
	letter-spacing: -0.01em;
	text-transform: none;
	color: var(--ttw-text, #002c6f);
}

.ttw-year__line {
	position: relative;
	flex: 1 1 auto;
	min-width: 24px;
	height: var(--ttw-line, 2px);
	margin-left: 4px;
	margin-right: 4px;
	background: var(--ttw-primary, #0b73f4);
}
.ttw-year__line::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -4px;
	width: 9px;
	height: 9px;
	border: var(--ttw-line, 2px) solid var(--ttw-primary, #0b73f4);
	border-radius: 50%;
	background: var(--ttw-dot-bg, #fff);
	transform: translateY(-50%);
}

/* WPBakery a veces envuelve los hijos: anulamos márgenes extra */
.ttw-year__list > .wpb_content_element,
.ttw-year__list > .vc_element { margin-bottom: 0; }

/* ---------- TARJETA ---------- */
.ttw-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 0 0 var(--ttw-card-gap, 28px);
	padding: var(--ttw-pad-d, 22px 36px);
	background: var(--ttw-card-bg, #fff);
	border: var(--ttw-border, 2px) solid var(--ttw-card-border, var(--ttw-primary, #0b73f4));
	border-radius: var(--ttw-radius, 10px);
}
.ttw-year__list > .ttw-card:last-child,
.ttw-year__list > .vc_element:last-child .ttw-card { margin-bottom: 0; }

.ttw-card__body { flex: 1 1 auto; min-width: 0; }

.ttw-year .ttw-card__title {
	margin: 0 0 0.45em;
	padding: 0;
	font-family: inherit;
	font-size: var(--ttw-title-d, 18px);
	font-weight: var(--ttw-title-w, 700);
	line-height: var(--ttw-title-lh, 1.3);
	letter-spacing: 0;
	text-transform: none;
	color: var(--ttw-text, #002c6f);
}
.ttw-year .ttw-card__title:only-child { margin-bottom: 0; }

.ttw-year .ttw-card__author {
	margin: 0;
	padding: 0;
	font-size: var(--ttw-author-d, 16px);
	font-weight: var(--ttw-author-w, 600);
	line-height: 1.35;
	color: var(--ttw-text, #002c6f);
}

.ttw-card__actions {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: var(--ttw-btn-gap, 16px);
}

/* Botones circulares */
.ttw-scope .ttw-ibtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--ttw-btn-d, 42px);
	height: var(--ttw-btn-d, 42px);
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ttw-icon-bg, #ddf2fb);
	color: var(--ttw-primary, #0b73f4);
	text-decoration: none;
	box-shadow: none;
	line-height: 0;
	transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.ttw-ibtn svg { display: block; width: 100%; height: 100%; }
.ttw-scope .ttw-ibtn:hover,
.ttw-scope .ttw-ibtn:focus-visible {
	background: var(--ttw-icon-hover-bg, var(--ttw-primary, #0b73f4));
	color: var(--ttw-icon-hover, #fff);
	transform: translateY(-2px);
}
.ttw-ibtn:focus-visible { outline: 2px solid var(--ttw-primary, #0b73f4); outline-offset: 3px; }

/* ---------- BOTONES SUELTOS ---------- */
.ttw-bw { display: flex; margin: 0 0 var(--b-mb, 0); }
.ttw-bw--left   { justify-content: flex-start; }
.ttw-bw--center { justify-content: center; }
.ttw-bw--right  { justify-content: flex-end; }
.ttw-bw--inline {
	display: inline-flex;
	vertical-align: middle;
	margin: 0 24px var(--b-mb, 16px) 0;
}

.ttw-scope .ttw-btn {
	display: inline-flex;
	align-items: center;
	min-width: var(--b-minw, 0);
	max-width: 100%;
	font-family: var(--b-font, inherit);
	line-height: 1.2;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.ttw-scope .ttw-btn:hover { transform: translateY(-2px); }
.ttw-btn:focus-visible { outline: 2px solid var(--ttw-primary, #0b73f4); outline-offset: 3px; }
.ttw-btn__ic { flex: 0 0 auto; display: block; line-height: 0; }
.ttw-btn__ic svg { display: block; width: 100%; height: auto; }

/* Sólido (REGLAMENTO) */
.ttw-scope .ttw-btn--solid {
	justify-content: center;
	gap: var(--b-gap, 0.9em);
	padding: var(--b-pad, 18px 36px);
	border: 0;
	border-radius: var(--b-radius, 8px);
	background: var(--b-bg, var(--ttw-primary, #0b73f4));
	color: var(--b-color, #fff);
	font-size: var(--b-fs, 22px);
	font-weight: var(--b-fw, 600);
	letter-spacing: var(--b-ls, 0.02em);
	text-transform: var(--b-tt, uppercase);
}
.ttw-scope .ttw-btn--solid:hover,
.ttw-scope .ttw-btn--solid:focus-visible {
	background: var(--b-bg-h, var(--b-bg, #0a5fd0));
	color: var(--b-color-h, var(--b-color, #fff));
	filter: var(--b-filter-h, brightness(0.93));
}
.ttw-btn__ic--doc { width: var(--b-ic1, 1.6em); }
.ttw-btn__ic--dl  { width: var(--b-ic2, 1.1em); margin-left: 0.35em; }

/* Outline (mail) */
.ttw-scope .ttw-btn--outline {
	gap: var(--b-gap, 22px);
	padding: var(--b-pad, 16px 34px);
	border: var(--b-bw, 2px) solid var(--b-border, var(--ttw-primary, #0b73f4));
	border-radius: var(--b-radius, 8px);
	background: var(--b-bg, transparent);
	color: var(--b-color, var(--ttw-primary, #0b73f4));
	text-align: left;
}
.ttw-scope .ttw-btn--outline:hover,
.ttw-scope .ttw-btn--outline:focus-visible {
	background: var(--b-bg-h, rgba(11, 115, 244, 0.07));
	color: var(--b-color, var(--ttw-primary, #0b73f4));
}
.ttw-btn__ic--mail { width: var(--b-ic, 52px); color: var(--b-icon, var(--ttw-primary, #0b73f4)); }
.ttw-btn__lines { display: flex; flex-direction: column; min-width: 0; }
.ttw-btn__l1 {
	font-size: var(--b-fs1, 20px);
	font-weight: var(--b-fw1, 500);
	line-height: 1.2;
}
.ttw-btn__l2 {
	font-size: var(--b-fs2, 20px);
	font-weight: var(--b-fw2, 700);
	line-height: 1.2;
	color: var(--b-color2, inherit);
	overflow-wrap: anywhere;
}

/* =========================================================
   TABLET ≤1024
   ======================================================= */
@media (max-width: 1024px) {
	.ttw-year .ttw-year__label { font-size: var(--ttw-year-t, 34px); }
	.ttw-year .ttw-card__title { font-size: var(--ttw-title-t, 17px); }
	.ttw-year .ttw-card__author { font-size: var(--ttw-author-t, 15px); }
	.ttw-card { padding: var(--ttw-pad-t, var(--ttw-pad-d, 20px 28px)); }
}

/* =========================================================
   MOBILE ≤767
   ======================================================= */
@media (max-width: 767px) {
	.ttw-year { margin-bottom: calc(var(--ttw-block-gap, 64px) * 0.7); }
	.ttw-year__head { gap: 12px; margin-bottom: calc(var(--ttw-head-gap, 28px) * 0.75); }
	.ttw-year__cal { width: var(--ttw-cal-m, 34px); }
	.ttw-year .ttw-year__label { font-size: var(--ttw-year-m, 28px); }
	.ttw-year .ttw-card__title { font-size: var(--ttw-title-m, 16px); }
	.ttw-year .ttw-card__author { font-size: var(--ttw-author-m, 14px); }
	.ttw-hide-br-m .ttw-br { display: none; }

	.ttw-card {
		gap: 16px;
		padding: var(--ttw-pad-m, 18px 20px);
		margin-bottom: calc(var(--ttw-card-gap, 28px) * 0.7);
	}
	.ttw-scope .ttw-ibtn { width: var(--ttw-btn-m, 38px); height: var(--ttw-btn-m, 38px); }

	.ttw-mbtn-below .ttw-card { flex-direction: column; align-items: flex-start; }
	.ttw-mbtn-below .ttw-card__actions { align-self: flex-start; }

	/* Botones sueltos */
	.ttw-scope .ttw-btn--solid {
		font-size: var(--b-fs-m, 18px);
		padding: var(--b-pad-m, 14px 22px);
	}
	.ttw-scope .ttw-btn--outline {
		gap: var(--b-gap, 16px);
		padding: var(--b-pad-m, 14px 20px);
	}
	.ttw-btn__ic--mail { width: calc(var(--b-ic, 52px) * 0.8); }
	.ttw-btn__l1 { font-size: var(--b-fs1-m, 16px); }
	.ttw-btn__l2 { font-size: var(--b-fs2-m, 16px); }

	.ttw-bw--mfull,
	.ttw-bw--mfull.ttw-bw--inline { display: flex; margin-right: 0; width: 100%; }
	.ttw-bw--mfull .ttw-btn { width: 100%; min-width: 0; }
	.ttw-bw--mfull .ttw-btn--outline { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	.ttw-scope .ttw-ibtn,
	.ttw-scope .ttw-btn { transition: none; }
	.ttw-scope .ttw-ibtn:hover,
	.ttw-scope .ttw-btn:hover { transform: none; }
}
