/* PPF Articulos - frontend.
 * Colors and fonts come from the Elementor Global Styles (Site Settings), so
 * changing them there changes the notes too. The fallbacks are the current values. */
.pa-article,
.pa-list,
.pa-home,
.pa-grid {
	--pa-primary: var(--e-global-color-primary, #002e47);
	--pa-secondary: var(--e-global-color-secondary, #e75269);
	--pa-text: var(--e-global-color-text, #323232);
	--pa-accent: var(--e-global-color-accent, #01c9c7);
	--pa-muted: #6b7684;
	--pa-line: #e3e8ee;
	--pa-font: var(--e-global-typography-text-font-family, "Lato"), system-ui, sans-serif;
	--pa-font-head: var(--e-global-typography-primary-font-family, "Lato"), system-ui, sans-serif;
	--pa-w-head: var(--e-global-typography-primary-font-weight, 600);
	--pa-w-strong: var(--e-global-typography-accent-font-weight, 700);
	font-family: var(--pa-font);
	color: var(--pa-text);
}

/* Own <main> (not the theme's .site-main, which is capped at 1140px) so the header banner is full width. */
.pa-main {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}
.pa-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
	padding-left: 24px;
	padding-right: 24px;
}
.pa-wrap--wide {
	max-width: 1240px;
}

/* ---- Header banner (single article and listing page) ---- */
.pa-hero {
	position: relative;
	padding: clamp(72px, 10vw, 120px) 0 clamp(48px, 7vw, 80px);
	background: linear-gradient(135deg, var(--pa-primary), var(--pa-accent));
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	color: #fff;
}
.pa-hero--img {
	background-image: linear-gradient(rgba(0, 46, 71, .72), rgba(0, 46, 71, .6)), var(--pa-hero-img);
}
@supports (background: color-mix(in srgb, red 50%, blue)) {
	.pa-hero--img {
		background-image:
			linear-gradient(color-mix(in srgb, var(--pa-primary) 74%, transparent), color-mix(in srgb, var(--pa-primary) 58%, transparent)),
			var(--pa-hero-img);
	}
}
.pa-hero--list {
	padding: clamp(56px, 8vw, 96px) 0 clamp(40px, 6vw, 64px);
}
.pa-hero__kicker {
	margin: 0 0 14px;
	font-size: 14px;
	font-weight: var(--pa-w-strong);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pa-accent);
}
.pa-hero__title {
	margin: 0;
	font-family: var(--pa-font-head);
	font-weight: var(--pa-w-head);
	font-size: clamp(32px, 5.2vw, 54px);
	line-height: 1.1;
	color: #fff;
}
.pa-hero__subtitle {
	margin: 18px 0 0;
	font-size: clamp(18px, 2.4vw, 24px);
	line-height: 1.4;
	color: rgba(255, 255, 255, .9);
}
.pa-hero__byline {
	margin: 26px 0 0;
	font-size: 15px;
	color: rgba(255, 255, 255, .82);
}

/* ---- Single article body ---- */
.pa-body {
	padding-top: 56px;
	padding-bottom: 96px;
}
.pa-body__content {
	font-size: 19px;
	line-height: 1.8;
}
.pa-body__content h2 {
	margin: 2em 0 .6em;
	font-family: var(--pa-font-head);
	font-weight: var(--pa-w-head);
	font-size: clamp(24px, 3vw, 32px);
	line-height: 1.25;
	color: var(--pa-primary);
}
.pa-body__content p {
	margin: 0 0 1.2em;
}
.pa-body__content a {
	color: var(--pa-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
	overflow-wrap: anywhere;
}
.pa-body__content a:hover {
	color: var(--pa-secondary);
}
.pa-body__content sup a {
	text-decoration: none;
	font-weight: var(--pa-w-strong);
}
.pa-body__content .pa-notes {
	margin-top: 2.5em;
	padding-top: 1.2em;
	border-top: 1px solid var(--pa-line);
	font-size: 15px;
	line-height: 1.6;
	color: var(--pa-muted);
}
.pa-body__content .pa-notes ol,
.pa-body__content .pa-notes ul {
	margin: 0;
	padding-left: 1.4em;
}
.pa-body__content .pa-notes li {
	margin-bottom: .5em;
}
.pa-author {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-top: 48px;
	padding: 22px 26px;
	border-left: 4px solid var(--pa-secondary);
	border-radius: 0 12px 12px 0;
	background: #f6f8fa;
}
.pa-author strong {
	font-family: var(--pa-font-head);
	font-weight: var(--pa-w-head);
	font-size: 19px;
	color: var(--pa-primary);
}
.pa-author span {
	font-size: 15px;
	color: var(--pa-muted);
}

/* ---- Single note: header image on its own, text block below it ---- */
.pa-article .pa-figure {
	margin: 0 0 32px;
}
.pa-article .pa-figure img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 720px;
	margin: 0 auto;
	border-radius: 12px;
}
.pa-note-head {
	padding: clamp(32px, 5vw, 56px) 0 8px;
}
.pa-note-head__kicker {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: var(--pa-w-strong);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #08a3a1;
}
.pa-note-head__title {
	margin: 0;
	font-family: var(--pa-font-head);
	font-weight: var(--pa-w-head);
	font-size: clamp(30px, 4.6vw, 48px);
	line-height: 1.12;
	color: var(--pa-primary);
}
.pa-note-head__subtitle {
	margin: 16px 0 0;
	font-size: clamp(18px, 2.2vw, 23px);
	line-height: 1.4;
	color: var(--pa-muted);
}
.pa-note-head__byline {
	margin: 20px 0 0;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--pa-line);
	font-size: 15px;
	color: var(--pa-muted);
}
.pa-note-head + .pa-body {
	padding-top: 32px;
}

/* Downloadable PDFs: after the text, before the videos */
.pa-downloads {
	margin-top: 40px;
}
.pa-downloads__title {
	margin: 0 0 14px;
	font-family: var(--pa-font-head);
	font-weight: var(--pa-w-head);
	font-size: 22px;
	line-height: 1.25;
	color: var(--pa-primary);
}
.pa-downloads__list {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pa-article .pa-download {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 18px;
	border: 1px solid var(--pa-line);
	border-radius: 12px;
	background: #fff;
	color: var(--pa-primary);
	text-decoration: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.pa-article .pa-download:hover,
.pa-article .pa-download:focus-visible {
	border-color: var(--pa-accent);
	box-shadow: 0 6px 20px rgba(0, 46, 71, .08);
	color: var(--pa-primary);
}
.pa-download__icon {
	display: grid;
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	place-items: center;
	border-radius: 10px;
	background: color-mix(in srgb, var(--pa-secondary) 12%, #fff);
	color: var(--pa-secondary);
}
.pa-download__text {
	flex: 1 1 auto;
	min-width: 0;
}
.pa-download__name {
	display: block;
	font-family: var(--pa-font-head);
	font-weight: var(--pa-w-head);
	font-size: 17px;
	line-height: 1.3;
	overflow-wrap: anywhere;
}
.pa-download__meta {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	color: var(--pa-muted);
}
.pa-download__cta {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: var(--pa-w-strong);
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #08a3a1;
}
@media (max-width: 520px) {
	.pa-download__cta span {
		display: none;
	}
}

/* Embedded videos, after the text */
.pa-videos {
	display: grid;
	gap: 24px;
	margin-top: 40px;
}
.pa-video {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 14px;
	background: #000;
}
.pa-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ---- Listing page ---- */
.pa-list__body {
	padding-top: 72px;
	padding-bottom: 140px;
}

/* ---- Card grid ---- */
.pa-grid {
	display: grid;
	gap: 32px;
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	grid-template-columns: repeat(var(--pa-cols, 3), minmax(0, 1fr));
}
.pa-grid.pa-cols-1 { --pa-cols: 1; max-width: 1000px; }
.pa-grid.pa-cols-2 { --pa-cols: 2; }
.pa-grid.pa-cols-3 { --pa-cols: 3; }
.pa-grid.pa-cols-4 { --pa-cols: 4; }
@media (max-width: 960px) {
	.pa-grid.pa-cols-3,
	.pa-grid.pa-cols-4 { --pa-cols: 2; }
}
@media (max-width: 600px) {
	.pa-grid.pa-cols-2,
	.pa-grid.pa-cols-3,
	.pa-grid.pa-cols-4 { --pa-cols: 1; }
}
.pa-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--pa-line);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 24px rgba(0, 46, 71, .06);
}
.pa-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, var(--pa-primary), var(--pa-accent));
	overflow: hidden;
}
/* The image always fills its box: center center, cover, no leftover space. */
.pa-card .pa-card__media img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center center;
}
.pa-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	padding: 24px 26px 26px;
}
.pa-card__kicker {
	font-size: 12px;
	font-weight: var(--pa-w-strong);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pa-accent);
}
.pa-card__title {
	margin: 0;
	font-family: var(--pa-font-head);
	font-weight: var(--pa-w-head);
	font-size: 23px;
	line-height: 1.25;
}
.pa-card__title a {
	color: var(--pa-primary);
	text-decoration: none;
}
.pa-card__title a:hover {
	color: var(--pa-secondary);
}
.pa-card__excerpt {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
}
.pa-card__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 16px;
	margin-top: auto;
	padding-top: 14px;
}
.pa-card__meta {
	font-size: 14px;
	color: var(--pa-muted);
}
/* A single note is shown as a wide horizontal card. */
.pa-grid.pa-cols-1 .pa-card {
	flex-direction: row;
}
.pa-grid.pa-cols-1 .pa-card__media {
	flex: 0 0 46%;
	aspect-ratio: auto;
	min-height: 320px;
}
.pa-grid.pa-cols-1 .pa-card__body {
	justify-content: center;
	padding: 36px 40px;
}
.pa-grid.pa-cols-1 .pa-card__title {
	font-size: clamp(24px, 3vw, 32px);
}
@media (max-width: 760px) {
	.pa-grid.pa-cols-1 .pa-card {
		flex-direction: column;
	}
	.pa-grid.pa-cols-1 .pa-card__media {
		flex: none;
		aspect-ratio: 16 / 9;
		min-height: 0;
	}
	.pa-grid.pa-cols-1 .pa-card__body {
		padding: 24px 26px 26px;
	}
}
.pa-empty {
	color: var(--pa-muted);
}

/* ---- Home block ([ppf_articulos_home]) ---- */
.pa-home {
	box-sizing: border-box;
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 80px 24px;
	text-align: center;
}
.pa-home__title {
	margin: 0 0 44px;
	font-family: var(--pa-font-head);
	font-weight: var(--pa-w-head);
	font-size: clamp(30px, 5vw, 44px);
	line-height: 1.15;
	color: var(--pa-primary);
}
.pa-home .pa-grid {
	text-align: left;
}
.pa-home__more {
	margin: 44px 0 0;
}
.pa-btn {
	display: inline-block;
	padding: 14px 32px;
	border-radius: 25px;
	background: var(--pa-accent);
	color: #fff;
	font-family: var(--pa-font);
	font-weight: var(--pa-w-strong);
	letter-spacing: .02em;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform .2s ease, filter .2s ease;
}
.pa-btn--sm {
	padding: 10px 22px;
	font-size: 14px;
}
.pa-btn:hover,
.pa-btn:focus {
	color: #fff;
	filter: brightness(.92);
	transform: scale(1.05);
}
