/*
 * GSM Sections — secciones de página fieles al Figma "Grupo GSM" (1440 px).
 * Hero de página, explorador de ciclos, CTA en caja, características, FAQ, hero y horario de ciclo.
 *
 * Contenedor: 1170 px (márgenes de 135 px a 1440). Títulos de sección 40 px / 700.
 */

:root {
	--gsm-primary: #0042D6;
	--gsm-primary-hover: #0034AD;
	--gsm-secondary: #31D2AE;
	--gsm-secondary-hover: #22BF9C;
	--gsm-ink: #1F2330;
	--gsm-dark: #3A3D43;
	--gsm-text: #656567;
	--gsm-bg-soft: #EEF3FF;
	--gsm-line: #E4E7EC;
	--gsm-line-blue: #D6E2F9;
	--gsm-ease: cubic-bezier(.22, .8, .24, 1);
	--gsm-container: 1170px;
}

/* ---------- Base de las secciones ---------- */
:where(.gsm-page-hero, .gsm-explorer, .gsm-cta, .gsm-features, .gsm-faq, .gsm-ciclo-hero, .gsm-horario) {
	font-family: 'Montserrat', sans-serif;
	box-sizing: border-box;
}

:where(.gsm-page-hero, .gsm-explorer, .gsm-cta, .gsm-features, .gsm-faq, .gsm-ciclo-hero, .gsm-horario) *,
:where(.gsm-page-hero, .gsm-explorer, .gsm-cta, .gsm-features, .gsm-faq, .gsm-ciclo-hero, .gsm-horario) *::before,
:where(.gsm-page-hero, .gsm-explorer, .gsm-cta, .gsm-features, .gsm-faq, .gsm-ciclo-hero, .gsm-horario) *::after {
	box-sizing: inherit;
}

.gsm-explorer :where(p, ul, ol, dl, dd, h1, h2, h3, figure),
.gsm-cta :where(p, ul, h2, h3),
.gsm-features :where(p, h2, h3),
.gsm-faq :where(p, h2, h3),
.gsm-ciclo-hero :where(p, ul, ol, dl, dd, h1),
.gsm-horario :where(p, ul, dl, dd, h2, figure),
.gsm-page-hero :where(p, h1, h2) {
	margin: 0;
	padding: 0;
}

.gsm-features,
.gsm-faq,
.gsm-horario,
.gsm-cta,
.gsm-explorer {
	width: min(100% - 40px, var(--gsm-container));
	margin-inline: auto;
}

/* ---------- Títulos en tres partes ---------- */
.gsm-title.gsm-title {
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.01em;
	color: var(--gsm-ink);
	text-align: center;
	text-wrap: balance;
}

.gsm-title .gsm-title__hl {
	color: var(--gsm-primary);
}

.gsm-title.gsm-title--hero {
	font-size: 48px;
	font-weight: 800;
	color: #2B2F3A;
}

.gsm-title.gsm-title--section {
	font-size: 40px;
}

.gsm-title.gsm-title--cta {
	font-size: 40px;
	color: var(--gsm-primary);
}

.gsm-section-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
}

.gsm-section-head .gsm-section-head__subtitle {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--gsm-text);
}

/* ============================================================
 * Hero de página (claro)
 * ============================================================ */
/* Contenido centrado en vertical con 93 px mínimos arriba y abajo (Figma: 358 px con título de 1 línea, 369 con 2). */
.gsm-page-hero {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 358px;
	padding: 93px 20px;
	text-align: center;
	background: radial-gradient(ellipse 60% 80% at 50% 35%, #E8EEFF 0%, #DFE7FF 45%, #D6E0FF 100%);
}

.gsm-page-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 17px;
	max-width: 640px;
}

.gsm-page-hero .gsm-page-hero__subtitle {
	max-width: 598px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--gsm-text);
}

/* ============================================================
 * Explorador de ciclos
 * ============================================================ */
.gsm-explorer {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* Pestañas de etapa: pill blanca 416×60 que se monta 30 px sobre el hero. */
.gsm-explorer__tabs {
	display: inline-flex;
	gap: 6px;
	margin-top: -30px;
	/* 6 + 1 de borde = 7: en Figma el trazo va por dentro y la pastilla mide 60 (62 en Solucionarios). */
	padding: 6px;
	background: #FFFFFF;
	border: 1px solid #DCE5FA;
	border-radius: 999px;
	box-shadow: 0 10px 28px -12px rgba(0, 52, 173, .28);
}

.gsm-explorer .gsm-seg {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 28px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	color: var(--gsm-ink);
	text-decoration: none;
	border-radius: 999px;
	transition: background-color .3s var(--gsm-ease), color .3s var(--gsm-ease), box-shadow .3s var(--gsm-ease);
}

.gsm-explorer .gsm-seg.is-active {
	color: #FFFFFF;
	background: var(--gsm-primary);
	box-shadow: 0 6px 14px -6px rgba(0, 66, 214, .55);
}

/* Filtros */
.gsm-explorer__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: center;
	gap: 20px 52px;
	margin-top: 28px;
}

.gsm-filter {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	margin: 0;
}

.gsm-explorer .gsm-filter__label {
	font-size: 12px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #4A4F5C;
}

.gsm-filter__chips {
	display: flex;
	gap: 8px;
}

.gsm-explorer .gsm-chip-btn {
	display: inline-flex;
	flex: none;
	align-items: center;
	min-height: 38px;
	padding: 0 20px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	color: var(--gsm-ink);
	text-decoration: none;
	background: #FFFFFF;
	border: 1px solid var(--gsm-line-blue);
	border-radius: 999px;
	transition: background-color .25s var(--gsm-ease), color .25s var(--gsm-ease), border-color .25s var(--gsm-ease), transform .12s ease;
}

.gsm-explorer .gsm-chip-btn.is-active {
	color: #FFFFFF;
	background: var(--gsm-primary);
	border-color: var(--gsm-primary);
}

.gsm-select {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.gsm-explorer .gsm-select select {
	appearance: none;
	-webkit-appearance: none;
	display: block;
	width: auto;
	/* El select mide lo que la opción elegida ("Todas" = 119 px como en el Figma). */
	field-sizing: content;
	min-width: 119px;
	min-height: 38px;
	margin: 0;
	padding: 0 44px 0 15px;
	font-family: 'Montserrat', sans-serif;
	font-size: 13px;
	font-weight: 700;
	line-height: 36px;
	color: var(--gsm-primary);
	background: var(--gsm-bg-soft);
	border: 1px solid var(--gsm-primary);
	border-radius: 999px;
	box-shadow: none;
	cursor: pointer;
	transition: background-color .25s var(--gsm-ease), box-shadow .25s var(--gsm-ease);
}

.gsm-select .gsm-select__icon {
	position: absolute;
	right: 14px;
	width: 20px;
	height: 20px;
	color: var(--gsm-primary);
	pointer-events: none;
	transition: transform .25s var(--gsm-ease);
}

.gsm-explorer .gsm-filter__submit {
	margin-top: 6px;
	padding: 6px 14px;
	font: 700 13px/1 'Montserrat', sans-serif;
	color: #FFFFFF;
	background: var(--gsm-primary);
	border: 0;
	border-radius: 999px;
}

/* Foco visible y estados */
.gsm-explorer .gsm-seg:focus-visible,
.gsm-explorer .gsm-chip-btn:focus-visible,
.gsm-explorer .gsm-select select:focus-visible,
.gsm-explorer .gsm-explorer__reset:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 2px;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-explorer .gsm-seg:not(.is-active):hover {
		color: var(--gsm-primary);
		background: var(--gsm-bg-soft);
	}

	.gsm-explorer .gsm-chip-btn:not(.is-active):hover {
		color: var(--gsm-primary);
		border-color: #A8C2FF;
		background: #F6F9FF;
	}

	.gsm-explorer .gsm-select select:hover {
		background: #E3EBFF;
	}
}

.gsm-explorer .gsm-chip-btn:active,
.gsm-explorer .gsm-seg:active {
	transform: scale(.96);
}

/* Contador */
.gsm-explorer .gsm-explorer__count {
	margin-top: 40px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--gsm-text);
}

.gsm-explorer__count strong {
	font-weight: 700;
	color: var(--gsm-ink);
}

/* Grilla 3 × 360 con 44 px de separación y 40 px entre filas */
.gsm-explorer .gsm-explorer__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px 44px;
	width: 100%;
	margin-top: 40px;
	list-style: none;
}

.gsm-explorer__item {
	min-width: 0;
}

.gsm-explorer__item[hidden] {
	display: none;
}

/* Sin resultados */
.gsm-explorer__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	width: 100%;
	margin-top: 40px;
	padding: 48px 24px;
	text-align: center;
	background: var(--gsm-bg-soft);
	border: 1px dashed #A8C2FF;
	border-radius: 20px;
}

.gsm-explorer__empty[hidden] {
	display: none;
}

.gsm-explorer .gsm-explorer__empty-title {
	font-size: 20px;
	font-weight: 700;
	color: var(--gsm-ink);
}

.gsm-explorer .gsm-explorer__empty-text {
	max-width: 440px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--gsm-text);
}

.gsm-explorer .gsm-explorer__reset,
.gsm-explorer .gsm-explorer__reset:hover {
	margin-top: 8px;
	padding: 10px 22px;
	font-size: 14px;
	font-weight: 700;
	color: var(--gsm-primary);
	text-decoration: none;
	border: 1px solid var(--gsm-primary);
	border-radius: 999px;
}

/* ============================================================
 * CTA en caja
 * ============================================================ */
/* Caja de 352 px con el contenido centrado en vertical (Figma: título de 1 línea a 73 px, de 2 líneas a 48 px). */
.gsm-cta__box {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 352px;
	overflow: hidden;
	isolation: isolate;
	padding: 48px 40px;
	text-align: center;
	border-radius: 40px;
}

.gsm-cta--light .gsm-cta__box {
	background: var(--gsm-bg-soft);
	border: 1px solid #DCE5F5;
}

.gsm-cta--primary .gsm-cta__box {
	background: var(--gsm-primary);
}

.gsm-cta__circle {
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	background: rgba(49, 210, 174, .3);
	pointer-events: none;
	transition: transform 1.2s var(--gsm-ease);
}

.gsm-cta__circle--a {
	top: 90px;
	right: -134px;
	width: 265px;
	height: 266px;
}

.gsm-cta__circle--b {
	top: 224px;
	right: 18px;
	width: 241px;
	height: 241px;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-cta__box:hover .gsm-cta__circle--a {
		transform: translate(-10px, -8px);
	}

	.gsm-cta__box:hover .gsm-cta__circle--b {
		transform: translate(8px, -6px);
	}
}

/* 880 px: el título más largo del diseño ("¿Ninguna te queda cerca? Estudia virtual", 863 px) va en una línea. */
.gsm-cta__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 880px;
	margin: 0 auto;
}

.gsm-cta--primary .gsm-title.gsm-title--cta,
.gsm-cta--primary .gsm-title--cta .gsm-title__hl {
	color: #FFFFFF;
}

.gsm-cta.gsm-cta--hl-secondary .gsm-title--cta .gsm-title__hl {
	color: var(--gsm-secondary);
}

.gsm-cta--has-checks .gsm-cta__box {
	justify-content: flex-start;
	padding: 73px 40px 19px;
}

.gsm-cta .gsm-cta__text {
	max-width: 584px;
	margin-top: 20px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--gsm-primary);
}

.gsm-cta--primary .gsm-cta__text {
	color: #FFFFFF;
}

.gsm-cta__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px 32px;
	margin-top: 40px;
}

.gsm-cta .gsm-cta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 52px;
	padding: 12px 32px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	border-radius: 999px;
	transition: background-color .3s var(--gsm-ease), color .3s var(--gsm-ease), border-color .3s var(--gsm-ease), box-shadow .3s var(--gsm-ease), transform .12s ease;
}

.gsm-cta__btn .gsm-icon--whatsapp {
	width: 24px;
	height: 24px;
}

.gsm-cta__btn .gsm-icon--phone,
.gsm-cta__btn .gsm-icon--download {
	width: 18px;
	height: 18px;
}

.gsm-cta__btn .gsm-icon--arrow {
	width: 12px;
	height: 12px;
}

.gsm-cta .gsm-cta__btn--accent,
.gsm-cta .gsm-cta__btn--accent:hover,
.gsm-cta .gsm-cta__btn--accent:focus {
	color: var(--gsm-primary);
	background: var(--gsm-secondary);
	border: 2px solid var(--gsm-secondary);
}

.gsm-cta--light .gsm-cta__btn--outline,
.gsm-cta--light .gsm-cta__btn--outline:focus {
	color: var(--gsm-primary);
	background: transparent;
	border: 2px solid var(--gsm-primary);
}

.gsm-cta--primary .gsm-cta__btn--outline,
.gsm-cta--primary .gsm-cta__btn--outline:focus {
	color: #FFFFFF;
	background: transparent;
	border: 2px solid #FFFFFF;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-cta .gsm-cta__btn--accent:hover {
		background: var(--gsm-secondary-hover);
		border-color: var(--gsm-secondary-hover);
		box-shadow: 0 10px 22px -10px rgba(34, 191, 156, .8);
	}

	.gsm-cta--light .gsm-cta__btn--outline:hover {
		color: #FFFFFF;
		background: var(--gsm-primary);
	}

	.gsm-cta--primary .gsm-cta__btn--outline:hover {
		color: var(--gsm-primary);
		background: #FFFFFF;
	}
}

.gsm-cta .gsm-cta__btn:active {
	transform: scale(.97);
}

.gsm-cta .gsm-cta__btn:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 3px;
}

.gsm-cta--primary .gsm-cta__btn:focus-visible {
	outline-color: #FFFFFF;
}

.gsm-cta .gsm-cta__checks {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 52px;
	width: min(100%, 828px);
	margin-top: 40px;
	padding-top: 13px;
	list-style: none;
	border-top: 1px solid rgba(0, 66, 214, .2);
}

.gsm-cta__checks li {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	color: var(--gsm-primary);
}

.gsm-cta--primary .gsm-cta__checks {
	border-top-color: rgba(255, 255, 255, .35);
}

.gsm-cta--primary .gsm-cta__checks li {
	color: #EEF3FF;
}

.gsm-cta__checks .gsm-icon {
	width: 16px;
	height: 16px;
	color: var(--gsm-secondary);
}

/* ============================================================
 * Características (4 × 260×169)
 * ============================================================ */
.gsm-features {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
}

.gsm-features__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 43px;
	width: 100%;
}

.gsm-feature {
	display: flex;
	flex-direction: column;
	min-height: 169px;
	padding: 26px;
	background: var(--gsm-bg-soft);
	border: 1px solid #E0E9FC;
	border-radius: 12px;
	transition: transform .32s var(--gsm-ease), border-color .32s var(--gsm-ease), box-shadow .32s var(--gsm-ease);
}

.gsm-feature__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	color: #FFFFFF;
	background: var(--gsm-primary);
	border-radius: 8px;
	transition: transform .32s var(--gsm-ease);
}

.gsm-feature__icon .gsm-icon {
	width: 20px;
	height: 20px;
}

.gsm-features .gsm-feature__title {
	margin-top: 9px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--gsm-ink);
}

.gsm-features .gsm-feature__text {
	margin-top: 9px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--gsm-text);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-feature:hover {
		transform: translateY(-3px);
		border-color: #A8C2FF;
		box-shadow: 0 14px 28px -18px rgba(0, 52, 173, .35);
	}

	.gsm-feature:hover .gsm-feature__icon {
		transform: rotate(-6deg) scale(1.06);
	}
}

/* ============================================================
 * Preguntas frecuentes (lista 760 px)
 * ============================================================ */
.gsm-faq {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 36px;
	interpolate-size: allow-keywords;
}

.gsm-faq__list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: min(100%, 760px);
}

.gsm-faq__item {
	background: #F2F6FF;
	border: 1px solid #E6ECF8;
	border-radius: 12px;
	transition: background-color .25s ease, border-color .25s ease;
}

.gsm-faq__item[open] {
	background: var(--gsm-bg-soft);
}

.gsm-faq .gsm-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 13px 17px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.35;
	color: #2B3440;
	list-style: none;
	cursor: pointer;
}

.gsm-faq__q::-webkit-details-marker {
	display: none;
}

.gsm-faq__item[open] .gsm-faq__q {
	font-weight: 700;
}

.gsm-faq__icon {
	position: relative;
	flex: none;
	width: 12px;
	height: 12px;
}

.gsm-faq__icon::before,
.gsm-faq__icon::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 1.5px;
	background: currentColor;
	border-radius: 2px;
	transition: transform .3s var(--gsm-ease);
}

.gsm-faq__icon::after {
	transform: rotate(90deg);
}

.gsm-faq__item[open] .gsm-faq__icon::after {
	transform: rotate(0deg);
}

.gsm-faq .gsm-faq__a {
	padding: 0 17px 15px;
	font-size: 13.7px;
	font-weight: 500;
	line-height: 1.45;
	color: #555555;
}

.gsm-faq__a p {
	margin: 0;
}

.gsm-faq .gsm-faq__a a {
	color: #1347C2;
	text-decoration: underline;
}

/* Apertura animada donde el navegador lo soporta (::details-content). */
.gsm-faq__item::details-content {
	block-size: 0;
	overflow: hidden;
	transition: block-size .35s var(--gsm-ease), content-visibility .35s allow-discrete;
}

.gsm-faq__item[open]::details-content {
	block-size: auto;
}

.gsm-faq .gsm-faq__q:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: -3px;
	border-radius: 12px;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-faq__item:not([open]):hover {
		border-color: #A8C2FF;
	}
}

/* ============================================================
 * Hero de ciclo (azul)
 * ============================================================ */
.gsm-ciclo-hero {
	position: relative;
}

.gsm-ciclo-hero__bg {
	padding: 39px 20px 112px;
	color: #FFFFFF;
	background:
		radial-gradient(ellipse 34% 58% at 50% 56%, rgba(96, 135, 225, .85) 0%, rgba(62, 104, 214, .55) 45%, rgba(0, 51, 166, 0) 100%),
		#0033A6;
}

.gsm-ciclo-hero__inner {
	width: min(100%, var(--gsm-container));
	margin: 0 auto;
}

.gsm-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
}

.gsm-breadcrumb li {
	display: inline-flex;
	align-items: center;
	color: #FFFFFF;
}

.gsm-breadcrumb li + li::before {
	content: '›';
	margin: 0 8px;
	color: rgba(255, 255, 255, .8);
}

.gsm-breadcrumb a,
.gsm-breadcrumb a:hover {
	color: #FFFFFF;
	text-decoration: none;
}

.gsm-breadcrumb a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gsm-breadcrumb li[aria-current] {
	font-weight: 700;
	color: var(--gsm-secondary);
}

.gsm-ciclo-hero__center {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 58px;
	text-align: center;
}

.gsm-ciclo-hero .gsm-ciclo-hero__chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	list-style: none;
}

.gsm-hero-chip {
	display: inline-flex;
	align-items: center;
	min-height: 27px;
	padding: 0 12px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	color: #FFFFFF;
	border: 1px solid rgba(255, 255, 255, .75);
	border-radius: 999px;
}

.gsm-hero-chip--accent {
	color: var(--gsm-secondary);
	border-color: var(--gsm-secondary);
}

.gsm-ciclo-hero .gsm-ciclo-hero__title {
	margin-top: 35px;
	font-family: 'Montserrat', sans-serif;
	font-size: 48px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -.01em;
	color: #FFFFFF;
	text-wrap: balance;
}

.gsm-ciclo-hero .gsm-ciclo-hero__desc {
	max-width: 560px;
	margin-top: 16px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.65;
	color: rgba(255, 255, 255, .92);
}

.gsm-ciclo-hero__desc p {
	margin: 0;
}

.gsm-ciclo-hero .gsm-ciclo-hero__stats {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	width: min(100% - 40px, var(--gsm-container));
	margin: -46px auto 0;
}

.gsm-stat-card {
	min-width: 165px;
	padding: 24px 20px;
	background: #FFFFFF;
	border: 1px solid var(--gsm-line);
	border-radius: 12px;
	box-shadow: 0 14px 30px -18px rgba(0, 30, 100, .35);
	transition: transform .32s var(--gsm-ease), box-shadow .32s var(--gsm-ease);
}

.gsm-stat-card dt {
	font-size: 11px;
	font-weight: 500;
	line-height: 15px;
	letter-spacing: .06em;
	text-align: center;
	text-transform: uppercase;
	color: var(--gsm-text);
}

.gsm-ciclo-hero .gsm-stat-card dd {
	margin-top: 8px;
	font-size: 16px;
	font-weight: 700;
	line-height: 22px;
	text-align: center;
	white-space: nowrap;
	color: var(--gsm-ink);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-stat-card:hover {
		transform: translateY(-3px);
		box-shadow: 0 20px 36px -18px rgba(0, 30, 100, .45);
	}
}

/* ============================================================
 * Horario de ciclo (imagen 849×478 + tarjetas 293×224)
 * ============================================================ */
.gsm-horario {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
}

.gsm-horario .gsm-title--section {
	color: var(--gsm-primary);
}

.gsm-horario__layout {
	display: grid;
	grid-template-columns: minmax(0, 849fr) minmax(0, 293fr);
	gap: 28px;
	width: 100%;
}

.gsm-horario--no-image .gsm-horario__layout {
	grid-template-columns: minmax(0, 620px);
	justify-content: center;
}

.gsm-horario .gsm-horario__media {
	align-self: start;
	overflow: hidden;
	background: #FFFFFF;
	border: 1px solid #D3DFF7;
	border-radius: 20px;
}

.gsm-horario .gsm-horario__img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	border-radius: 0;
}

.gsm-horario__side {
	display: grid;
	/* La tarjeta de sedes crece (p. ej. al abrir "+ N sedes más") sin estirar la de días y horas. */
	grid-template-rows: auto 1fr;
	gap: 30px;
}

.gsm-horario--no-image .gsm-horario__side {
	grid-template-rows: none;
	grid-template-columns: 1fr 1fr;
}

.gsm-horario .gsm-info-card {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
	margin: 0;
	padding: 30px 32px;
	background: #FFFFFF;
	border: 1px solid #D3DFF7;
	border-radius: 16px;
	box-shadow: 0 10px 30px -22px rgba(0, 52, 173, .35);
}

.gsm-info-card__row dt,
.gsm-horario .gsm-info-card__label {
	font-size: 11px;
	font-weight: 500;
	line-height: 15px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--gsm-text);
}

.gsm-horario .gsm-info-card__row dd {
	margin-top: 4px;
	font-size: 16px;
	font-weight: 700;
	line-height: 22px;
	color: #2B2F3A;
}

.gsm-horario .gsm-checklist {
	display: flex;
	flex-direction: column;
	gap: 12px;
	list-style: none;
}

.gsm-checklist li {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: 15px;
	font-weight: 500;
	line-height: 20px;
	color: var(--gsm-dark);
}

.gsm-checklist .gsm-icon {
	width: 16px;
	height: 16px;
	color: var(--gsm-secondary);
}

/* Tarjeta "Dónde se dicta" (reemplaza a Beneficios): sedes con pin y zona, nota de híbrido o ventajas de virtual. */
.gsm-horario .gsm-info-card--donde {
	justify-content: flex-start;
	gap: 14px;
}

.gsm-horario .gsm-donde__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gsm-horario .gsm-donde__sede {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 2px 8px;
	margin-inline: -8px;
	padding: 6px 8px;
	color: var(--gsm-dark);
	text-decoration: none;
	border-radius: 8px;
	transition: background-color .2s ease, color .2s ease;
}

.gsm-horario .gsm-donde__sede .gsm-icon {
	flex: none;
	align-self: center;
	width: 10px;
	height: 12px;
	color: var(--gsm-secondary);
}

.gsm-horario .gsm-donde__name {
	font-size: 15px;
	font-weight: 600;
	line-height: 20px;
}

.gsm-horario .gsm-donde__zona {
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	color: var(--gsm-text);
}

.gsm-horario .gsm-donde__more {
	align-self: flex-start;
	margin: 4px 0 0;
	padding: 0;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	line-height: 18px;
	color: var(--gsm-primary);
	background: none;
	border: 0;
	border-radius: 4px;
	cursor: pointer;
}

.gsm-horario .gsm-donde__more[hidden],
.gsm-horario .gsm-donde__list [hidden] {
	display: none;
}

.gsm-horario .gsm-donde__link {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 8px;
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	color: var(--gsm-primary);
	text-decoration: none;
}

.gsm-horario .gsm-donde__link .gsm-icon {
	flex: none;
	width: 18px;
	height: 18px;
	color: #25D366;
}

.gsm-horario .gsm-donde__note {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding-top: 12px;
	font-size: 13px;
	font-weight: 600;
	line-height: 18px;
	color: var(--gsm-primary);
	border-top: 1px solid #E3EAF9;
}

.gsm-horario .gsm-donde__note .gsm-icon {
	flex: none;
	width: 16px;
	height: 16px;
}

.gsm-horario .gsm-donde__sede:focus-visible,
.gsm-horario .gsm-donde__link:focus-visible,
.gsm-horario .gsm-donde__more:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 2px;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-horario .gsm-donde__sede:hover {
		color: var(--gsm-primary);
		background: #F2F6FF;
	}

	.gsm-horario .gsm-donde__link:hover span,
	.gsm-horario .gsm-donde__more:hover {
		text-decoration: underline;
	}
}

/* ============================================================
 * Responsive
 * ============================================================ */
@media (max-width: 1024px) {
	.gsm-title.gsm-title--hero,
	.gsm-ciclo-hero .gsm-ciclo-hero__title {
		font-size: 40px;
	}

	.gsm-title.gsm-title--section,
	.gsm-title.gsm-title--cta {
		font-size: 34px;
	}

	.gsm-explorer .gsm-explorer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 24px;
	}

	.gsm-features__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}

	.gsm-horario__layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	.gsm-horario__side {
		grid-template-rows: none;
		grid-template-columns: 1fr 1fr;
		gap: 20px;
	}
}

@media (max-width: 767px) {
	.gsm-page-hero {
		min-height: 0;
		padding: 64px 20px 70px;
	}

	.gsm-title.gsm-title--hero,
	.gsm-ciclo-hero .gsm-ciclo-hero__title {
		font-size: 32px;
	}

	.gsm-title.gsm-title--section,
	.gsm-title.gsm-title--cta {
		font-size: 28px;
	}

	.gsm-page-hero .gsm-page-hero__subtitle,
	.gsm-ciclo-hero .gsm-ciclo-hero__desc {
		font-size: 15px;
	}

	/* Pestañas a lo ancho */
	.gsm-explorer__tabs {
		display: flex;
		width: 100%;
		max-width: 416px;
	}

	.gsm-explorer .gsm-seg {
		flex: 1 1 0;
		padding: 0 12px;
		font-size: 14px;
	}

	/* Filtros apilados; chips en fila desplazable */
	/* nowrap: con wrap, en columna cada línea toma el ancho del contenido y los chips desbordan. */
	.gsm-explorer__filters {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		width: 100%;
		gap: 18px;
	}

	.gsm-filter {
		width: 100%;
	}

	.gsm-filter__chips {
		overflow-x: auto;
		margin: 0 -20px;
		padding: 2px 20px 6px;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
		-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20px, #000 calc(100% - 28px), transparent 100%);
		mask-image: linear-gradient(90deg, transparent 0, #000 20px, #000 calc(100% - 28px), transparent 100%);
	}

	.gsm-filter__chips::-webkit-scrollbar {
		display: none;
	}

	.gsm-explorer .gsm-chip-btn {
		scroll-snap-align: start;
	}

	.gsm-select,
	.gsm-explorer .gsm-select select {
		width: 100%;
	}

	.gsm-explorer .gsm-explorer__count {
		margin-top: 28px;
	}

	.gsm-explorer .gsm-explorer__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
		margin-top: 20px;
	}

	.gsm-cta__box {
		min-height: 0;
		padding: 48px 20px 56px;
		border-radius: 28px;
	}

	.gsm-cta .gsm-cta__text {
		font-size: 15px;
	}

	.gsm-cta__actions {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		max-width: 360px;
		margin-top: 28px;
	}

	.gsm-cta__circle--a {
		top: auto;
		bottom: -120px;
		right: -120px;
		width: 220px;
		height: 220px;
	}

	.gsm-cta__circle--b {
		top: auto;
		bottom: -140px;
		right: 40px;
		width: 200px;
		height: 200px;
	}

	.gsm-cta .gsm-cta__checks {
		gap: 8px 20px;
		margin-top: 32px;
	}

	.gsm-features {
		gap: 28px;
	}

	.gsm-ciclo-hero__bg {
		padding: 24px 20px 88px;
	}

	.gsm-ciclo-hero__center {
		margin-top: 36px;
	}

	.gsm-ciclo-hero .gsm-ciclo-hero__title {
		margin-top: 24px;
	}

	.gsm-ciclo-hero .gsm-ciclo-hero__stats {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
		margin-top: -52px;
	}

	.gsm-stat-card {
		min-width: 0;
		padding: 16px 4px;
	}

	.gsm-stat-card dt {
		font-size: 9px;
		letter-spacing: .04em;
	}

	.gsm-ciclo-hero .gsm-stat-card dd {
		font-size: 12px;
		line-height: 17px;
		letter-spacing: -.01em;
		white-space: normal;
	}

	.gsm-horario__side,
	.gsm-horario--no-image .gsm-horario__side {
		grid-template-columns: minmax(0, 1fr);
	}

	.gsm-horario .gsm-info-card {
		padding: 24px;
	}
}

@media (max-width: 560px) {
	.gsm-features__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}

	.gsm-feature {
		min-height: 0;
	}
}

/* ============================================================
 * Sedes: explorador por zona (Figma "Sedes": pastilla 880×60, grilla 3 × 360 con 32 px, ancho 1144)
 * Reutiliza .gsm-explorer (pestañas, grilla y estado vacío).
 * ============================================================ */
.gsm-explorer.gsm-sedes {
	--gsm-container: 1144px;
}

/* Contenedor de los .screen-reader-text (absolutos): si no, escapan del scroll de la pastilla y ensanchan la página. */
.gsm-sedes .gsm-seg {
	position: relative;
}

/* En un inline-flex el espacio entre el nombre y el número no se pinta: margen equivalente a un espacio. */
.gsm-sedes .gsm-seg__count {
	margin-left: .28em;
}

.gsm-sedes .gsm-explorer__grid {
	gap: 32px;
	margin-top: 67px;
}

.gsm-explorer .screen-reader-text,
.gsm-footer .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
	word-wrap: normal !important;
}

/* La pastilla de 6 zonas no entra bajo ~960 px: se desplaza en horizontal (la activa queda a la vista). */
@media (max-width: 960px) {
	.gsm-sedes .gsm-explorer__tabs,
	.gsm-docentes .gsm-explorer__tabs,
	.gsm-solucionarios .gsm-explorer__tabs {
		display: flex;
		width: auto;
		max-width: 100%;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}

	.gsm-sedes .gsm-explorer__tabs::-webkit-scrollbar,
	.gsm-docentes .gsm-explorer__tabs::-webkit-scrollbar,
	.gsm-solucionarios .gsm-explorer__tabs::-webkit-scrollbar {
		display: none;
	}

	.gsm-explorer.gsm-sedes .gsm-seg,
	.gsm-explorer.gsm-docentes .gsm-seg,
	.gsm-explorer.gsm-solucionarios .gsm-seg {
		flex: none;
		padding: 0 20px;
		scroll-snap-align: center;
	}
}

@media (max-width: 767px) {
	.gsm-sedes .gsm-explorer__grid {
		gap: 20px;
		margin-top: 32px;
	}

	.gsm-explorer.gsm-sedes .gsm-seg {
		min-height: 42px;
		padding: 0 16px;
		font-size: 14px;
	}
}

/* ============================================================
 * Docentes: bloques por área (Figma "Docentes": tarjeta 1184 px, padding 44, grupos por curso y grilla 4 × 212 con 40 px)
 * ============================================================ */
.gsm-explorer.gsm-docentes {
	--gsm-container: 1184px;
}

.gsm-docentes__areas {
	display: flex;
	flex-direction: column;
	gap: 100px;
	width: 100%;
	margin-top: 71px;
}

.gsm-area {
	display: flex;
	flex-direction: column;
	padding: 43px 107px;
	background: var(--gsm-bg-soft);
	border: 1px solid #DAE6EE;
	border-radius: 32px;
	box-shadow: 0 24px 48px -30px rgba(0, 30, 100, .22);
}

.gsm-area[hidden] {
	display: none;
}

.gsm-docentes .gsm-area__title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 0 0 26px;
	font-family: 'Montserrat', sans-serif;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: -.01em;
	text-align: center;
	color: var(--gsm-ink);
}

.gsm-area__title .gsm-icon {
	flex: none;
	width: 42px;
	height: 42px;
	padding: 4px;
	color: var(--gsm-primary);
}

.gsm-area__group {
	display: flex;
	flex-direction: column;
	gap: 26px;
}

.gsm-area__group + .gsm-area__group {
	margin-top: 40px;
}

/* Chip del curso entre dos líneas (84×38, líneas a 21 px). */
.gsm-docentes .gsm-area__curso {
	display: flex;
	align-items: center;
	gap: 21px;
	margin: 0;
	font-family: 'Montserrat', sans-serif;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--gsm-primary);
}

.gsm-area__curso::before,
.gsm-area__curso::after {
	content: '';
	flex: 1 1 0;
	height: 1px;
	background: rgba(0, 66, 214, .5);
}

.gsm-area__curso span {
	display: inline-flex;
	flex: none;
	align-items: center;
	min-height: 38px;
	padding: 0 15px;
	white-space: nowrap;
	border: 1px solid var(--gsm-primary);
	border-radius: 999px;
}

.gsm-docentes .gsm-area__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gsm-area__grid > li {
	min-width: 0;
	margin: 0;
}

@media (max-width: 1024px) {
	.gsm-docentes__areas {
		gap: 56px;
		margin-top: 56px;
	}

	.gsm-area {
		padding: 35px 31px;
		border-radius: 28px;
	}

	.gsm-docentes .gsm-area__title {
		font-size: 32px;
	}

	.gsm-area__title .gsm-icon {
		width: 36px;
		height: 36px;
	}

	.gsm-docentes .gsm-area__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 24px;
	}

	.gsm-area__group + .gsm-area__group {
		margin-top: 32px;
	}
}

@media (max-width: 767px) {
	.gsm-docentes__areas {
		gap: 32px;
		margin-top: 32px;
	}

	.gsm-area {
		padding: 27px 15px 23px;
		border-radius: 24px;
	}

	.gsm-docentes .gsm-area__title {
		gap: 8px;
		margin-bottom: 20px;
		font-size: 26px;
	}

	.gsm-area__title .gsm-icon {
		width: 30px;
		height: 30px;
	}

	.gsm-area__group {
		gap: 18px;
	}

	.gsm-area__group + .gsm-area__group {
		margin-top: 28px;
	}

	.gsm-docentes .gsm-area__curso {
		gap: 12px;
	}

	.gsm-docentes .gsm-area__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.gsm-cta--has-checks .gsm-cta__box {
		padding: 48px 20px 24px;
	}

	.gsm-explorer.gsm-docentes .gsm-seg {
		min-height: 42px;
		padding: 0 16px;
		font-size: 14px;
	}
}

/* ============================================================
 * Solucionarios: pastilla con contador (544×62) y bloques por año (1184 px, cabecera 124, filas de 120)
 * ============================================================ */
.gsm-explorer.gsm-solucionarios {
	--gsm-container: 1184px;
}

.gsm-explorer.gsm-solucionarios .gsm-seg {
	position: relative;
	gap: 8px;
	min-height: 48px;
	padding: 0 20px;
}

/* Burbuja del contador: celeste; en la pestaña activa, blanca translúcida. */
.gsm-seg__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 31px;
	height: 20px;
	padding: 0 8px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: lining-nums;
	color: var(--gsm-ink);
	background: #E3EBFD;
	border-radius: 999px;
	transition: background-color .3s var(--gsm-ease), color .3s var(--gsm-ease);
}

.gsm-seg.is-active .gsm-seg__badge {
	color: #FFFFFF;
	background: rgba(255, 255, 255, .2);
}

.gsm-solucionarios__years {
	display: flex;
	flex-direction: column;
	gap: 52px;
	width: 100%;
	margin-top: 40px;
}

.gsm-year {
	overflow: hidden;
	background: var(--gsm-bg-soft);
	border: 1px solid #DAE6EE;
	border-radius: 32px;
	box-shadow: 0 24px 48px -30px rgba(0, 30, 100, .22);
}

.gsm-year[hidden],
.gsm-year__item[hidden],
.gsm-year__more[hidden] {
	display: none;
}

.gsm-year__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 34px 20px 16px;
	text-align: center;
}

.gsm-solucionarios .gsm-year__title {
	margin: 0;
	font-family: 'Montserrat', sans-serif;
	font-size: 40px;
	font-weight: 800;
	line-height: 1.22;
	letter-spacing: -.01em;
	color: var(--gsm-primary);
}

.gsm-solucionarios .gsm-year__count {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 20px;
	color: var(--gsm-text);
}

.gsm-solucionarios .gsm-year__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gsm-year__item {
	margin: 0;
}

/* "Ver los N exámenes": solo con JS (sin JS se listan todas las filas). */
.gsm-year__more {
	display: flex;
	justify-content: center;
	padding: 20px 24px 24px;
	border-top: 1px solid #D5E0FB;
}

.gsm-solucionarios:not(.has-js) .gsm-year__more,
.gsm-solucionarios.has-js:not(.is-enhanced) [data-extra] {
	display: none;
}

.gsm-solucionarios .gsm-year__more-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 41px;
	margin: 0;
	padding: 0 18px 0 22px;
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	color: var(--gsm-primary);
	background: #FFFFFF;
	border: 1px solid var(--gsm-primary);
	border-radius: 999px;
	box-shadow: none;
	cursor: pointer;
	transition: background-color .25s var(--gsm-ease), color .25s var(--gsm-ease), transform .12s ease;
}

.gsm-year__more-btn .gsm-icon {
	width: 20px;
	height: 20px;
	transition: transform .3s var(--gsm-ease);
}

.gsm-year__more-btn[aria-expanded="true"] .gsm-icon {
	transform: rotate(180deg);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-solucionarios .gsm-year__more-btn:hover {
		color: #FFFFFF;
		background: var(--gsm-primary);
	}
}

.gsm-solucionarios .gsm-year__more-btn:focus {
	color: var(--gsm-primary);
	background: #FFFFFF;
}

.gsm-solucionarios .gsm-year__more-btn:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 2px;
}

.gsm-solucionarios .gsm-year__more-btn:active {
	transform: scale(.97);
}

@media (max-width: 1024px) {
	.gsm-solucionarios__years {
		gap: 40px;
	}
}

@media (max-width: 767px) {
	.gsm-solucionarios__years {
		gap: 28px;
		margin-top: 32px;
	}

	.gsm-year {
		border-radius: 24px;
	}

	.gsm-year__head {
		padding: 24px 16px 14px;
	}

	.gsm-solucionarios .gsm-year__title {
		font-size: 32px;
	}

	.gsm-solucionarios .gsm-year__count {
		font-size: 15px;
	}

	.gsm-explorer.gsm-solucionarios .gsm-seg {
		min-height: 42px;
		padding: 0 14px;
		font-size: 14px;
	}
}

/* ============================================================
 * Nosotros (Figma 4:91): hero azul genérico, cifras, línea de tiempo, misión y visión, valores, zonas con mapa.
 * Ancho de contenido 1328 px (56 px de margen a 1440).
 * ============================================================ */
.gsm-hero-azul {
	box-sizing: border-box;
	padding: 39px 20px 76px;
	font-family: 'Montserrat', sans-serif;
	color: #FFFFFF;
	background:
		radial-gradient(ellipse 34% 58% at 50% 56%, rgba(96, 135, 225, .85) 0%, rgba(62, 104, 214, .55) 45%, rgba(0, 51, 166, 0) 100%),
		#0033A6;
}

.gsm-hero-azul *,
.gsm-hero-azul *::before,
.gsm-hero-azul *::after {
	box-sizing: border-box;
}

.gsm-hero-azul :where(p, h1, ul) {
	margin: 0;
	padding: 0;
}

.gsm-hero-azul__inner {
	width: min(100%, var(--gsm-container));
	margin: 0 auto;
}

.gsm-hero-azul__center {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 21px;
	text-align: center;
}

.gsm-hero-azul .gsm-hero-azul__chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	list-style: none;
}

.gsm-hero-azul .gsm-hero-azul__title {
	margin-top: 35px;
	font-family: 'Montserrat', sans-serif;
	font-size: 48px;
	font-weight: 800;
	line-height: 1.22;
	letter-spacing: -.01em;
	color: #FFFFFF;
	text-wrap: balance;
}

.gsm-hero-azul .gsm-hero-azul__text {
	max-width: 550px;
	margin-top: 16px;
	font-size: 16px;
	font-weight: 500;
	line-height: 27px;
	color: rgba(255, 255, 255, .92);
}

.gsm-hero-azul__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px 20px;
	margin-top: 21px;
}

.gsm-hero-btn .gsm-icon--pin {
	width: 16px;
	height: 20px;
}

/* Cifras: tarjeta 1328×127 montada 28 px sobre el hero. */
.gsm-cifras {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	width: min(100% - 40px, 1328px);
	margin-inline: auto;
	font-family: 'Montserrat', sans-serif;
}

.gsm-cifras--overlap {
	margin-top: -28px;
}

.gsm-cifras .gsm-cifras__list {
	display: grid;
	grid-auto-columns: minmax(0, 1fr);
	grid-auto-flow: column;
	margin: 0;
	padding: 32px 25px;
	background: var(--gsm-bg-soft);
	border: 1px solid #D6E2F9;
	border-radius: 20px;
	box-shadow: 0 18px 40px -24px rgba(0, 30, 100, .28);
}

.gsm-cifras__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0 12px;
	text-align: center;
	border-right: 1px solid #D6E2F9;
}

.gsm-cifras__item:last-child {
	border-right: 0;
}

.gsm-cifras .gsm-cifras__valor {
	font-size: 36px;
	font-weight: 800;
	line-height: 44px;
	color: var(--gsm-primary);
}

.gsm-cifras .gsm-cifras__texto {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 17px;
	color: var(--gsm-text);
}

/* Línea de tiempo: hitos sobre una línea de 2 px que une los puntos. */
.gsm-timeline {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 56px;
	box-sizing: border-box;
	width: min(100% - 40px, 1328px);
	margin-inline: auto;
	font-family: 'Montserrat', sans-serif;
}

.gsm-timeline .gsm-section-head {
	gap: 10px;
}

.gsm-timeline :where(p, h2, h3, ol) {
	margin: 0;
	padding: 0;
}

.gsm-timeline .gsm-section-head .gsm-section-head__subtitle {
	line-height: 19px;
}

.gsm-timeline .gsm-timeline__list {
	--gsm-gap: 24px;
	position: relative;
	display: grid;
	grid-template-columns: repeat(var(--gsm-steps, 5), minmax(0, 1fr));
	gap: var(--gsm-gap);
	width: 100%;
	list-style: none;
}

/* De centro a centro del primer y último punto. */
.gsm-timeline__list::before {
	content: '';
	position: absolute;
	top: 9px;
	left: calc((100% - (var(--gsm-steps, 5) - 1) * var(--gsm-gap)) / var(--gsm-steps, 5) / 2);
	right: calc((100% - (var(--gsm-steps, 5) - 1) * var(--gsm-gap)) / var(--gsm-steps, 5) / 2);
	height: 2px;
	background: #D6E2F9;
	border-radius: 2px;
}

.gsm-timeline__item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 0;
	padding-top: 34px;
	text-align: center;
}

.gsm-timeline__dot {
	position: absolute;
	top: -4px;
	left: 50%;
	width: 28px;
	height: 28px;
	margin-left: -14px;
	background: rgba(0, 66, 214, .12);
	border-radius: 50%;
	transition: transform .35s var(--gsm-ease);
}

.gsm-timeline__dot::after {
	content: '';
	position: absolute;
	inset: 4px;
	background: var(--gsm-primary);
	border-radius: 50%;
	box-shadow: 0 4px 10px -2px rgba(0, 66, 214, .5);
}

.gsm-timeline__item.is-current .gsm-timeline__dot {
	background: rgba(49, 210, 174, .2);
}

.gsm-timeline__item.is-current .gsm-timeline__dot::after {
	background: var(--gsm-secondary);
	box-shadow: 0 4px 10px -2px rgba(49, 210, 174, .65);
}

.gsm-timeline .gsm-timeline__year {
	font-size: 22px;
	font-weight: 800;
	line-height: 27px;
	color: var(--gsm-primary);
}

.gsm-timeline .gsm-timeline__title {
	margin-top: 14px;
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 20px;
	color: var(--gsm-ink);
}

.gsm-timeline .gsm-timeline__text {
	max-width: 247px;
	margin-top: 13px;
	font-size: 13px;
	font-weight: 500;
	line-height: 21px;
	color: var(--gsm-text);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-timeline__item:hover .gsm-timeline__dot {
		transform: scale(1.15);
	}
}

/* Misión y visión: banda 1328×293 en degradado con círculo decorativo. */
.gsm-mv {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	box-sizing: border-box;
	width: min(100% - 40px, 1328px);
	margin-inline: auto;
	padding: 64px;
	font-family: 'Montserrat', sans-serif;
	color: #FFFFFF;
	background: linear-gradient(100deg, #051A6C 0%, #08299B 30%, #0A39CC 58%, #1A5BFF 100%);
	border-radius: 24px;
}

.gsm-mv__circle {
	position: absolute;
	z-index: -1;
	top: -120px;
	right: -120px;
	width: 380px;
	height: 380px;
	background: rgba(255, 255, 255, .07);
	border-radius: 50%;
	pointer-events: none;
}

.gsm-mv__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px 56px;
}

.gsm-mv :where(p, h2) {
	margin: 0;
	padding: 0;
}

.gsm-mv .gsm-mv__label {
	font-size: 12px;
	font-weight: 700;
	line-height: 16px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gsm-secondary);
}

.gsm-mv .gsm-mv__title {
	margin-top: 14px;
	font-family: 'Montserrat', sans-serif;
	font-size: 26px;
	font-weight: 700;
	line-height: 35px;
	color: #FFFFFF;
	text-wrap: balance;
}

.gsm-mv .gsm-mv__text {
	margin-top: 13px;
	font-size: 15px;
	font-weight: 500;
	line-height: 26px;
	color: rgba(255, 255, 255, .85);
}

/* Valores: gsm_features con encabezado lateral (Figma: tarjetas 317×206 con 20 px). */
.gsm-features.gsm-features--side {
	--gsm-container: 1328px;
	align-items: stretch;
	gap: 32px;
}

.gsm-features__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px 32px;
}

.gsm-features--side .gsm-title.gsm-title--section {
	font-size: 32px;
	line-height: 1.22;
	text-align: left;
}

.gsm-features .gsm-features__subtitle {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 18px;
	color: var(--gsm-text);
}

.gsm-features--side .gsm-features__grid {
	gap: 20px;
}

.gsm-features--side .gsm-feature {
	min-height: 206px;
	padding: 28px;
	border-color: #D6E2F9;
	border-radius: 16px;
}

.gsm-features--side .gsm-feature__title {
	margin-top: 12px;
	font-size: 17px;
	line-height: 21px;
}

.gsm-features--side .gsm-feature__text {
	margin-top: 12px;
	font-size: 14px;
	line-height: 21px;
}

/* Zonas y mapa: columna 484 + mapa 780×520 con 64 px. */
.gsm-zonas {
	display: grid;
	grid-template-columns: minmax(0, 484fr) minmax(0, 780fr);
	align-items: start;
	gap: 40px 64px;
	box-sizing: border-box;
	width: min(100% - 40px, 1328px);
	margin-inline: auto;
	font-family: 'Montserrat', sans-serif;
}

.gsm-zonas :where(p, h2, ul, li) {
	margin: 0;
	padding: 0;
}

.gsm-title.gsm-title--zonas {
	font-size: 40px;
	line-height: 1.22;
	text-align: left;
}

.gsm-zonas .gsm-zonas__intro {
	margin-top: 10px;
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	color: var(--gsm-text);
}

.gsm-zonas .gsm-zonas__list {
	margin-top: 28px;
	list-style: none;
	border-top: 1px solid #DDE5F3;
}

.gsm-zonas__list li {
	border-bottom: 1px solid #DDE5F3;
}

.gsm-zonas .gsm-zonas__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 57px;
	padding: 8px 4px;
	text-decoration: none;
	border-radius: 8px;
	transition: background-color .25s var(--gsm-ease);
}

.gsm-zonas__name {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 12px;
	font-size: 17px;
	font-weight: 700;
	line-height: 21px;
	color: var(--gsm-ink);
	transition: color .25s var(--gsm-ease);
}

.gsm-zonas__name .gsm-icon {
	width: 15px;
	height: 18px;
	color: var(--gsm-secondary);
}

.gsm-zonas__meta {
	min-width: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 17px;
	text-align: right;
	color: var(--gsm-text);
}

.gsm-zonas .gsm-zonas__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 46px;
	margin-top: 28px;
	padding: 0 28px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	color: #FFFFFF;
	text-decoration: none;
	background: var(--gsm-primary);
	border-radius: 999px;
	transition: background-color .25s var(--gsm-ease), box-shadow .25s var(--gsm-ease), transform .12s ease;
}

.gsm-zonas__btn .gsm-icon {
	width: 12px;
	height: 12px;
	color: var(--gsm-secondary);
	transition: transform .3s var(--gsm-ease);
}

.gsm-zonas__map-wrap {
	position: relative;
	height: 520px;
	margin-top: 2px;
	overflow: hidden;
	isolation: isolate;
	background: #F4F4F5;
	border: 1px solid #D3DFF7;
	border-radius: 20px;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-zonas .gsm-zonas__row:hover {
		background: #F6F9FF;
	}

	.gsm-zonas .gsm-zonas__row:hover .gsm-zonas__name {
		color: var(--gsm-primary);
	}

	.gsm-zonas .gsm-zonas__btn:hover {
		color: #FFFFFF;
		background: var(--gsm-primary-hover);
		box-shadow: 0 10px 22px -12px rgba(0, 66, 214, .6);
	}

	.gsm-zonas .gsm-zonas__btn:hover .gsm-icon {
		transform: translate(2px, -2px);
	}
}

.gsm-zonas .gsm-zonas__btn:active {
	transform: scale(.97);
}

.gsm-zonas :where(a):focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 2px;
}

/* ============================================================
 * Contacto (Figma 159:2): formulario 760×605 + canales de 400 px, 24 px entre ambos.
 * El formulario es el de Elementor Pro con la clase gsm-form; estos estilos no dependen del CSS de Elementor.
 * ============================================================ */
.gsm-contacto.e-con {
	--display: flex;
	--flex-direction: row;
	--flex-wrap: nowrap;
	--align-items: flex-start;
	--justify-content: center;
	--gap: 24px;
	--row-gap: 24px;
	--column-gap: 24px;
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
	box-sizing: border-box;
	width: min(100% - 40px, 1184px);
	max-width: none;
	margin-inline: auto;
}

.gsm-contacto > .gsm-form-card.e-con {
	--display: flex;
	--flex-direction: column;
	--gap: 0px;
	--row-gap: 0px;
	--padding-top: 35px;
	--padding-bottom: 42px;
	--padding-left: 42px;
	--padding-right: 42px;
	flex: 1 1 760px;
	max-width: 760px;
	min-width: 0;
	background: #FFFFFF;
	border: 1px solid #D6E1F9;
	border-radius: 30px;
	box-shadow: 0 30px 60px -40px rgba(0, 30, 100, .35);
}

.gsm-contacto > .elementor-widget-gsm_canales {
	flex: 0 0 400px;
	max-width: 400px;
}

/* Figma: la tarjeta del formulario empieza 3 px más abajo que la columna de canales. */
.gsm-contacto > .gsm-form-card.e-con {
	margin-top: 3px;
}

.gsm-form-card__head h2 {
	margin: 0;
	font-family: 'Montserrat', sans-serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 29px;
	color: #2B2F3A;
}

.gsm-form-card__head p {
	margin: 4px 0 0;
	font-family: 'Montserrat', sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 15px;
	color: var(--gsm-text);
}

.gsm-form-card .gsm-form-card__head {
	margin-bottom: 32px;
}

/* Campos: etiqueta 12/700, campo 32 px celeste con borde, 52 px entre columnas y 32 entre filas. */
.gsm-form .elementor-form {
	font-family: 'Montserrat', sans-serif;
}

.gsm-form .elementor-form .elementor-form-fields-wrapper {
	margin-right: -26px;
	margin-left: -26px;
	margin-bottom: -32px;
}

.gsm-form .elementor-form .elementor-field-group {
	align-items: stretch;
	margin-bottom: 32px;
	padding-right: 26px;
	padding-left: 26px;
}

.gsm-form .elementor-form .elementor-field-group > .elementor-field-label {
	padding-bottom: 12px;
	font-family: 'Montserrat', sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 15px;
	color: #6E6E70;
}

.gsm-form .elementor-form .elementor-field-textual,
.gsm-form .elementor-form .elementor-select-wrapper select {
	min-height: 32px;
	padding: 6px 12px;
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 18px;
	color: var(--gsm-ink);
	background: var(--gsm-bg-soft);
	border: 1px solid #CEDCF8;
	border-radius: 6px;
	box-shadow: none;
	transition: border-color .2s var(--gsm-ease), box-shadow .2s var(--gsm-ease), background-color .2s var(--gsm-ease);
}

.gsm-form .elementor-form .elementor-select-wrapper select {
	height: 32px;
	padding-right: 40px;
	cursor: pointer;
}

.gsm-form .elementor-form .elementor-select-wrapper .select-caret-down-wrapper {
	display: none;
}

/* Chevron del Figma (20 px, azul) en lugar de la flecha rellena de Elementor. */
.gsm-form .elementor-form .elementor-select-wrapper::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 10px;
	width: 20px;
	height: 20px;
	margin-top: -10px;
	background: var(--gsm-primary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 13.3a1 1 0 0 1-.64-.23l-4-3.33a1 1 0 1 1 1.28-1.54L10 11 13.36 8.3a1 1 0 0 1 1.41.15 1 1 0 0 1-.14 1.4l-4 3.22a1 1 0 0 1-.63.23Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 13.3a1 1 0 0 1-.64-.23l-4-3.33a1 1 0 1 1 1.28-1.54L10 11 13.36 8.3a1 1 0 0 1 1.41.15 1 1 0 0 1-.14 1.4l-4 3.22a1 1 0 0 1-.63.23Z'/%3E%3C/svg%3E") center / contain no-repeat;
	pointer-events: none;
}

.gsm-form .elementor-form textarea.elementor-field-textual {
	height: 64px;
	min-height: 64px;
	resize: vertical;
}

.gsm-form .elementor-form .elementor-field-textual::placeholder {
	color: #9AA3B5;
}

.gsm-form .elementor-form .elementor-field-textual:hover,
.gsm-form .elementor-form .elementor-select-wrapper select:hover {
	border-color: #A8C2FF;
}

.gsm-form .elementor-form .elementor-field-textual:focus,
.gsm-form .elementor-form .elementor-select-wrapper select:focus {
	background: #FFFFFF;
	border-color: var(--gsm-primary);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(0, 66, 214, .15);
}

.gsm-form .elementor-form .elementor-field-group.elementor-error .elementor-field-textual,
.gsm-form .elementor-form .elementor-field-group.elementor-error select {
	border-color: #D93B3B;
}

.gsm-form .elementor-form .elementor-message,
.gsm-form .elementor-form .elementor-error .elementor-message {
	margin-top: 6px;
	font-family: 'Montserrat', sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
}

/* Fila final: aviso de privacidad (12/18) y botón 217×52. */
.gsm-form .elementor-form .elementor-field-type-html {
	align-self: center;
	font-family: 'Montserrat', sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 18px;
	color: var(--gsm-text);
}

.gsm-form .elementor-field-type-html a {
	font-weight: 600;
	color: var(--gsm-primary);
	text-decoration: none;
}

.gsm-form .elementor-field-type-html a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gsm-form .elementor-form .e-form__buttons {
	justify-content: flex-end;
}

.gsm-form .elementor-form .elementor-button {
	min-height: 52px;
	padding: 0 32px;
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	color: #FFFFFF;
	background: var(--gsm-primary);
	border: 0;
	border-radius: 999px;
	transition: background-color .25s var(--gsm-ease), box-shadow .25s var(--gsm-ease), transform .12s ease;
}

.gsm-form .elementor-form .elementor-button .elementor-button-text::after {
	content: '';
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-left: 9px;
	vertical-align: -1px;
	background: var(--gsm-secondary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M13 12.625V1H1.375M13 1L1 13'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M13 12.625V1H1.375M13 1L1 13'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .3s var(--gsm-ease);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-form .elementor-form .elementor-button:hover {
		color: #FFFFFF;
		background: var(--gsm-primary-hover);
		box-shadow: 0 10px 22px -12px rgba(0, 66, 214, .6);
	}

	.gsm-form .elementor-form .elementor-button:hover .elementor-button-text::after {
		transform: translate(2px, -2px);
	}
}

.gsm-form .elementor-form .elementor-button:active {
	transform: scale(.97);
}

.gsm-form .elementor-form .elementor-button:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 3px;
}

/* Canales: WhatsApp 400×228, correo 400×94 y redes 400×193 con 46 px entre tarjetas. */
.gsm-canales {
	display: flex;
	flex-direction: column;
	gap: 46px;
	width: 100%;
	font-family: 'Montserrat', sans-serif;
}

.gsm-canales :where(p, h2, ul, li) {
	margin: 0;
	padding: 0;
}

.gsm-canal {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	box-sizing: border-box;
	border-radius: 20px;
}

.gsm-canal--wa {
	padding: 28px;
	color: #FFFFFF;
	background: #0B3BD1;
}

.gsm-canal__circle {
	position: absolute;
	z-index: -1;
	top: 108px;
	left: 260px;
	width: 200px;
	height: 200px;
	background: rgba(49, 210, 174, .22);
	border-radius: 50%;
	pointer-events: none;
}

.gsm-canales .gsm-canal__eyebrow {
	font-size: 12px;
	font-weight: 700;
	line-height: 15px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gsm-secondary);
}

.gsm-canales .gsm-canal__title {
	margin-top: 14px;
	font-family: 'Montserrat', sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 27px;
	color: #FFFFFF;
}

.gsm-canales .gsm-canal__text {
	margin-top: 14px;
	font-size: 14px;
	font-weight: 500;
	line-height: 21px;
	color: rgba(255, 255, 255, .88);
}

.gsm-canales .gsm-canal__wa-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	margin-top: 14px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	color: #0B2A7A;
	text-decoration: none;
	background: #35D399;
	border-radius: 999px;
	transition: background-color .25s var(--gsm-ease), box-shadow .25s var(--gsm-ease), transform .12s ease;
}

.gsm-canal__wa-btn .gsm-icon {
	width: 18px;
	height: 18px;
}

.gsm-canales .gsm-canal--mail {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 22px;
	text-decoration: none;
	background: #FFFFFF;
	border: 1px solid #D6E1F8;
	transition: border-color .25s var(--gsm-ease), box-shadow .25s var(--gsm-ease), transform .25s var(--gsm-ease);
}

.gsm-canal__icon {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	color: var(--gsm-primary);
	background: #F0F5FF;
	border-radius: 12px;
}

.gsm-canal__icon .gsm-icon {
	width: 22px;
	height: 22px;
}

.gsm-canal__mail-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.gsm-canal__mail-label {
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	color: var(--gsm-text);
}

.gsm-canal__mail-value {
	font-size: 16px;
	font-weight: 700;
	line-height: 20px;
	color: var(--gsm-primary);
	overflow-wrap: anywhere;
}

.gsm-canal--social {
	padding: 22px;
	background: #FFFFFF;
	border: 1px solid #D6E1F8;
}

.gsm-canales .gsm-canal__social-title {
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 20px;
	color: var(--gsm-ink);
}

.gsm-canales .gsm-canal__social-text {
	margin-top: 2px;
	font-size: 12px;
	font-weight: 500;
	line-height: 15px;
	color: var(--gsm-text);
}

.gsm-canales .gsm-canal__social-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px 8px;
	margin-top: 14px;
	list-style: none;
}

.gsm-canales .gsm-canal__social-list a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 43px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	color: var(--gsm-ink);
	text-decoration: none;
	background: #F2F6FF;
	border: 1px solid #D6E1F8;
	border-radius: 10px;
	transition: background-color .25s var(--gsm-ease), color .25s var(--gsm-ease), border-color .25s var(--gsm-ease);
}

/* Ícono de cada red (18 px, en el azul de la marca; blanco al pasar el mouse) */
.gsm-canales .gsm-canal__social-list .gsm-icon {
	flex: none;
	width: 18px;
	height: 18px;
	color: var(--gsm-primary);
	transition: color .25s var(--gsm-ease);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-canales .gsm-canal__social-list a:hover .gsm-icon {
		color: currentColor;
	}

	.gsm-canales .gsm-canal__wa-btn:hover {
		color: #0B2A7A;
		background: #2CC48C;
		box-shadow: 0 10px 22px -12px rgba(0, 0, 0, .45);
	}

	.gsm-canales .gsm-canal--mail:hover {
		border-color: #A8C2FF;
		box-shadow: 0 14px 28px -20px rgba(0, 52, 173, .35);
		transform: translateY(-2px);
	}

	.gsm-canales .gsm-canal__social-list a:hover {
		color: #FFFFFF;
		background: var(--gsm-primary);
		border-color: var(--gsm-primary);
	}
}

.gsm-canales :where(a):active {
	transform: scale(.98);
}

.gsm-canales :where(a):focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 2px;
}

@media (max-width: 1024px) {
	.gsm-hero-azul .gsm-hero-azul__title {
		font-size: 40px;
	}

	.gsm-cifras .gsm-cifras__valor {
		font-size: 32px;
	}

	/* Línea de tiempo vertical. */
	.gsm-timeline .gsm-timeline__list {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
		max-width: 560px;
	}

	.gsm-timeline__list::before {
		top: 10px;
		bottom: 10px;
		left: 13px;
		right: auto;
		width: 2px;
		height: auto;
	}

	.gsm-timeline__item {
		align-items: flex-start;
		padding: 0 0 0 48px;
		text-align: left;
	}

	.gsm-timeline__dot {
		top: -2px;
		left: 0;
		margin-left: 0;
	}

	.gsm-timeline .gsm-timeline__title {
		margin-top: 6px;
	}

	.gsm-timeline .gsm-timeline__text {
		max-width: none;
		margin-top: 6px;
	}

	.gsm-mv {
		padding: 48px 40px;
	}

	.gsm-features--side .gsm-features__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gsm-zonas {
		grid-template-columns: minmax(0, 1fr);
	}

	.gsm-zonas__map-wrap {
		height: 420px;
		margin-top: 0;
	}

	.gsm-contacto.e-con {
		--flex-direction: column;
		--align-items: stretch;
		--gap: 32px;
		--row-gap: 32px;
	}

	.gsm-contacto > .gsm-form-card.e-con,
	.gsm-contacto > .elementor-widget-gsm_canales {
		flex: 1 1 auto;
		width: 100%;
		max-width: none;
		margin-top: 0;
	}

	.gsm-canales {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}

	.gsm-canal--wa {
		grid-row: span 2;
	}
}

@media (max-width: 767px) {
	.gsm-hero-azul {
		padding: 24px 20px 64px;
	}

	.gsm-hero-azul .gsm-hero-azul__title {
		margin-top: 24px;
		font-size: 32px;
	}

	.gsm-hero-azul .gsm-hero-azul__text {
		font-size: 15px;
		line-height: 25px;
	}

	.gsm-hero-azul__actions {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		max-width: 360px;
	}

	.gsm-cifras .gsm-cifras__list {
		grid-auto-flow: row;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding: 8px 12px;
	}

	.gsm-cifras__item {
		padding: 16px 8px;
		border-right: 0;
	}

	.gsm-cifras__item:nth-child(odd) {
		border-right: 1px solid #D6E2F9;
	}

	.gsm-cifras__item:nth-child(n + 3) {
		border-top: 1px solid #D6E2F9;
	}

	.gsm-cifras .gsm-cifras__valor {
		font-size: 28px;
		line-height: 36px;
	}

	.gsm-cifras .gsm-cifras__texto {
		font-size: 12px;
		line-height: 16px;
	}

	.gsm-timeline {
		gap: 36px;
	}

	.gsm-mv {
		padding: 40px 24px;
		border-radius: 20px;
	}

	.gsm-mv__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.gsm-mv .gsm-mv__title {
		font-size: 22px;
		line-height: 30px;
	}

	.gsm-mv .gsm-mv__text {
		font-size: 14px;
		line-height: 23px;
	}

	.gsm-features--side .gsm-title.gsm-title--section {
		font-size: 28px;
	}

	.gsm-features--side .gsm-features__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}

	.gsm-features--side .gsm-feature {
		min-height: 0;
		padding: 24px;
	}

	.gsm-title.gsm-title--zonas {
		font-size: 30px;
	}

	.gsm-zonas .gsm-zonas__row {
		flex-wrap: wrap;
		gap: 4px 12px;
		padding: 12px 4px;
	}

	.gsm-zonas__meta {
		width: 100%;
		padding-left: 27px;
		text-align: left;
	}

	.gsm-zonas__map-wrap {
		height: 320px;
	}

	.gsm-contacto > .gsm-form-card.e-con {
		--padding-top: 28px;
		--padding-bottom: 28px;
		--padding-left: 20px;
		--padding-right: 20px;
		border-radius: 24px;
	}

	.gsm-form .elementor-form .elementor-form-fields-wrapper {
		margin-bottom: -20px;
	}

	.gsm-form .elementor-form .elementor-field-group {
		width: 100%;
		max-width: 100%;
		flex-basis: 100%;
		margin-bottom: 20px;
	}

	.gsm-form .elementor-form .e-form__buttons,
	.gsm-form .elementor-form .elementor-button {
		width: 100%;
	}

	.gsm-canales {
		display: flex;
		gap: 20px;
	}
}

/* ============================================================
 * Blog (Figma 334:1025): filtros centrados (buscador 272×38 y categorías 144×38), grilla 3 × 360 (1160 px).
 * ============================================================ */
.gsm-blog {
	box-sizing: border-box;
	width: min(100% - 40px, 1160px);
	margin-inline: auto;
	font-family: 'Montserrat', sans-serif;
}

.gsm-blog *,
.gsm-blog *::before,
.gsm-blog *::after {
	box-sizing: border-box;
}

.gsm-blog :where(p, ul, li, form) {
	margin: 0;
	padding: 0;
}

.gsm-blog__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: center;
	gap: 16px 32px;
}

.gsm-blog__field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.gsm-blog .gsm-blog__label {
	font-size: 12px;
	font-weight: 600;
	line-height: 15px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #4A4F5C;
}

.gsm-blog__search {
	position: relative;
	display: flex;
	align-items: center;
	width: 272px;
	max-width: 100%;
}

.gsm-blog .gsm-blog__search input {
	width: 100%;
	height: 38px;
	margin: 0;
	padding: 0 18px 0 44px;
	font-family: 'Montserrat', sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 36px;
	color: var(--gsm-ink);
	background: #FFFFFF;
	border: 1px solid #D6E2F9;
	border-radius: 999px;
	box-shadow: 0 6px 16px -12px rgba(0, 30, 100, .35);
	transition: border-color .2s var(--gsm-ease), box-shadow .2s var(--gsm-ease);
}

.gsm-blog .gsm-blog__search input::placeholder {
	color: #3A3D43;
	opacity: 1;
}

.gsm-blog .gsm-blog__search input::-webkit-search-cancel-button {
	cursor: pointer;
}

.gsm-blog .gsm-blog__search-btn {
	position: absolute;
	left: 14px;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin: 0;
	padding: 0;
	color: var(--gsm-primary);
	background: transparent;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
}

.gsm-blog__search-btn svg {
	width: 16px;
	height: 16px;
}

.gsm-blog__select {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.gsm-blog .gsm-blog__select select {
	appearance: none;
	-webkit-appearance: none;
	min-width: 144px;
	height: 38px;
	margin: 0;
	padding: 0 48px 0 21px;
	font-family: 'Montserrat', sans-serif;
	font-size: 13px;
	font-weight: 700;
	line-height: 36px;
	color: var(--gsm-ink);
	background: #FFFFFF;
	border: 1px solid #D6E2F9;
	border-radius: 999px;
	box-shadow: 0 6px 16px -12px rgba(0, 30, 100, .35);
	cursor: pointer;
	transition: border-color .2s var(--gsm-ease), box-shadow .2s var(--gsm-ease);
}

.gsm-blog__chevron {
	position: absolute;
	right: 21px;
	width: 20px;
	height: 20px;
	color: var(--gsm-ink);
	pointer-events: none;
}

.gsm-blog .gsm-blog__search input:hover,
.gsm-blog .gsm-blog__select select:hover {
	border-color: #A8C2FF;
}

.gsm-blog .gsm-blog__search input:focus,
.gsm-blog .gsm-blog__select select:focus {
	border-color: var(--gsm-primary);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(0, 66, 214, .15);
}

.gsm-blog .gsm-blog__search-btn:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 1px;
}

.gsm-blog .gsm-blog__submit {
	height: 38px;
	padding: 0 18px;
	font: 700 13px/1 'Montserrat', sans-serif;
	color: #FFFFFF;
	background: var(--gsm-primary);
	border: 0;
	border-radius: 999px;
}

/* Grilla 3 × 360 con 40 px entre columnas y 60 entre filas (el Figma tiene 117 solo en la primera: inconsistencia #18). */
.gsm-blog__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 60px 40px;
	margin: 44px 0 0;
	padding: 0;
	list-style: none;
}

.gsm-blog__grid > li {
	min-width: 0;
	margin: 0;
}

.gsm-blog__empty {
	margin-top: 44px;
}

/* Paginación (sin diseño en el Figma): pastillas de 40 px con el sistema visual. */
.gsm-pager {
	margin: 56px 0 16px;
}

.gsm-pager ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gsm-pager .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	color: var(--gsm-ink);
	text-decoration: none;
	background: #FFFFFF;
	border: 1px solid #D6E2F9;
	border-radius: 999px;
	transition: background-color .2s var(--gsm-ease), color .2s var(--gsm-ease), border-color .2s var(--gsm-ease);
}

.gsm-pager .page-numbers.current {
	color: #FFFFFF;
	background: var(--gsm-primary);
	border-color: var(--gsm-primary);
}

.gsm-pager .page-numbers.dots {
	min-width: 24px;
	padding: 0;
	background: transparent;
	border: 0;
}

.gsm-pager .gsm-icon {
	width: 20px;
	height: 20px;
}

.gsm-pager .gsm-pager__prev {
	transform: rotate(90deg);
}

.gsm-pager .gsm-pager__next {
	transform: rotate(-90deg);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-pager a.page-numbers:hover {
		color: var(--gsm-primary);
		background: var(--gsm-bg-soft);
		border-color: #A8C2FF;
	}
}

.gsm-pager a.page-numbers:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 2px;
}

/* ============================================================
 * Single Post (Figma 334:1026): hero 1440×460 con la foto teñida, tarjeta de lectura 779 px y relacionados.
 * ============================================================ */
.gsm-post-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 460px;
	padding: 60px 20px;
	font-family: 'Montserrat', sans-serif;
	text-align: center;
	color: #FFFFFF;
	background:
		linear-gradient(180deg, rgba(2, 24, 80, .93) 0%, rgba(4, 38, 120, .9) 45%, rgba(10, 68, 205, .94) 100%),
		var(--gsm-post-bg, none) center / cover no-repeat,
		#0033A6;
}

/* Sin "li" en el reset: el chip (li.gsm-hero-chip) conserva su padding. */
.gsm-post-hero :where(h1, ul) {
	margin: 0;
	padding: 0;
}

.gsm-post-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 980px;
}

.gsm-post-hero .gsm-post-hero__title {
	font-family: 'Montserrat', sans-serif;
	font-size: 40px;
	font-weight: 800;
	line-height: 58px;
	letter-spacing: -.01em;
	color: #FFFFFF;
	text-wrap: balance;
}

.gsm-post-hero .gsm-post-hero__chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 30px;
	list-style: none;
}

.gsm-post-hero .gsm-hero-chip--link,
.gsm-post-hero .gsm-hero-chip--link:hover {
	color: #FFFFFF;
	text-decoration: none;
	transition: background-color .2s var(--gsm-ease);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-post-hero .gsm-hero-chip--link:hover {
		background: rgba(255, 255, 255, .14);
	}
}

.gsm-post-hero .gsm-hero-chip--link:focus-visible {
	outline: 3px solid #FFFFFF;
	outline-offset: 2px;
}

/* Tarjeta de lectura: contenedor de Elementor con la clase gsm-post-card (779 px, 34/61 de padding). */
.gsm-post-card.e-con {
	--width: min(100% - 40px, 779px);
	--padding-top: 34px;
	--padding-bottom: 34px;
	--padding-left: 61px;
	--padding-right: 61px;
	--gap: 0px;
	--row-gap: 0px;
	align-self: center;
	margin-inline: auto;
	background: #FFFFFF;
	border: 1px solid #DCE5F5;
	border-radius: 20px;
	box-shadow: 0 30px 60px -40px rgba(0, 30, 100, .3);
}

.gsm-post-meta {
	font-family: 'Montserrat', sans-serif;
}

.gsm-post-meta :where(p, figure) {
	margin: 0;
	padding: 0;
}

.gsm-post-meta .gsm-post-meta__author {
	display: flex;
	align-items: center;
	gap: 8px;
	padding-bottom: 8px;
	font-size: 12px;
	font-weight: 700;
	line-height: 20px;
	color: var(--gsm-ink);
	border-bottom: 1px solid #D6E2F9;
}

.gsm-post-meta__author img {
	flex: none;
	width: 20px;
	height: 20px;
	background: #E4E7EC;
	border-radius: 50%;
}

.gsm-post-meta .gsm-post-meta__figure {
	margin-top: 12px;
}

.gsm-post-meta .gsm-post-meta__img {
	display: block;
	width: 100%;
	height: auto;
	max-width: none;
	aspect-ratio: 657 / 362;
	object-fit: cover;
	border-radius: 16px;
}

/* Contenido de la entrada (widget "Contenido de la entrada" con la clase gsm-post-content): 14/27, justificado. */
.gsm-post-content {
	margin-top: 24px;
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 27px;
	color: var(--gsm-text);
	text-align: justify;
	-webkit-hyphens: auto;
	hyphens: auto;
	overflow-wrap: break-word;
}

.gsm-post-content :where(p, ul, ol, blockquote, figure, table) {
	margin: 0 0 27px;
}

.gsm-post-content :where(h2, h3, h4) {
	margin: 27px 0 0;
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	line-height: 27px;
	text-align: left;
	-webkit-hyphens: manual;
	hyphens: manual;
	color: var(--gsm-ink);
}

.gsm-post-content h2 {
	font-size: 17px;
}

.gsm-post-content :where(h3, h4) {
	font-size: 15px;
}

.gsm-post-content :where(h2, h3, h4) + :where(p, ul, ol) {
	margin-top: 0;
}

.gsm-post-content :where(ul, ol) {
	padding-left: 22px;
	text-align: left;
}

.gsm-post-content li {
	margin: 0;
	padding-left: 2px;
}

.gsm-post-content li::marker {
	font-weight: 700;
	color: var(--gsm-primary);
}

.gsm-post-content a {
	font-weight: 600;
	color: var(--gsm-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gsm-post-content blockquote {
	padding: 4px 0 4px 18px;
	font-style: italic;
	color: var(--gsm-ink);
	border-left: 3px solid var(--gsm-secondary);
}

.gsm-post-content img {
	height: auto;
	border-radius: 12px;
}

.gsm-post-content strong {
	font-weight: 700;
	color: var(--gsm-ink);
}

.gsm-post-content > :last-child,
.gsm-post-content .elementor-widget-container > :last-child {
	margin-bottom: 0;
}

/* Relacionados: etiqueta 12/700 a 20 px de las cards (grilla 3 × 360 del blog). */
.gsm-related {
	box-sizing: border-box;
	width: min(100% - 40px, 1160px);
	margin-inline: auto;
	font-family: 'Montserrat', sans-serif;
}

.gsm-related .gsm-related__label {
	margin: 0;
	font-family: 'Montserrat', sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 15px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--gsm-text);
}

.gsm-related .gsm-related__grid {
	margin-top: 20px;
}

@media (max-width: 1024px) {
	.gsm-blog__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 24px;
	}

	.gsm-post-hero {
		min-height: 380px;
	}

	.gsm-post-hero .gsm-post-hero__title {
		font-size: 34px;
		line-height: 46px;
	}
}

@media (max-width: 767px) {
	.gsm-blog__filters {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 16px;
	}

	.gsm-blog__search,
	.gsm-blog .gsm-blog__select select {
		width: 100%;
	}

	.gsm-blog__select {
		display: flex;
	}

	.gsm-blog__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
		margin-top: 32px;
	}

	.gsm-pager {
		margin-top: 40px;
	}

	.gsm-post-hero {
		min-height: 300px;
		padding: 48px 20px;
	}

	.gsm-post-hero .gsm-post-hero__title {
		font-size: 26px;
		line-height: 34px;
	}

	.gsm-post-hero .gsm-post-hero__chips {
		margin-top: 20px;
	}

	.gsm-post-card.e-con {
		--padding-top: 24px;
		--padding-bottom: 28px;
		--padding-left: 20px;
		--padding-right: 20px;
		border-radius: 16px;
	}

	.gsm-post-content {
		font-size: 15px;
		line-height: 26px;
		text-align: left;
	}
}

/* ============================================================
 * Página 404 (sin diseño en el Figma): fondo del hero claro, círculos del CTA, "404" 160/800 y accesos rápidos.
 * ============================================================ */
.gsm-404 {
	box-sizing: border-box;
	font-family: 'Montserrat', sans-serif;
}

.gsm-404 *,
.gsm-404 *::before,
.gsm-404 *::after {
	box-sizing: border-box;
}

.gsm-404 :where(p, h1, h2, ul, li) {
	margin: 0;
	padding: 0;
}

.gsm-404__hero {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	overflow: hidden;
	isolation: isolate;
	padding: 88px 20px 104px;
	text-align: center;
	background: radial-gradient(ellipse 60% 80% at 50% 35%, #E8EEFF 0%, #DFE7FF 45%, #D6E0FF 100%);
}

.gsm-404__circle {
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	background: rgba(49, 210, 174, .3);
	pointer-events: none;
}

.gsm-404__circle--a {
	top: 64px;
	right: -110px;
	width: 265px;
	height: 266px;
}

.gsm-404__circle--b {
	bottom: -120px;
	right: 90px;
	width: 241px;
	height: 241px;
}

.gsm-404 .gsm-404__code {
	font-size: 160px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.04em;
	color: var(--gsm-primary);
	background: linear-gradient(180deg, #0042D6 0%, #3A6BE0 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.gsm-404 .gsm-404__title {
	margin-top: 12px;
	font-family: 'Montserrat', sans-serif;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--gsm-ink);
	text-wrap: balance;
}

.gsm-404 .gsm-404__text {
	max-width: 560px;
	margin-top: 16px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--gsm-text);
}

.gsm-404__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px 20px;
	margin-top: 32px;
}

.gsm-404 .gsm-404__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 52px;
	padding: 0 32px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	border-radius: 999px;
	transition: background-color .25s var(--gsm-ease), box-shadow .25s var(--gsm-ease), transform .12s ease;
}

.gsm-404 .gsm-404__btn--primary,
.gsm-404 .gsm-404__btn--primary:hover {
	color: #FFFFFF;
	background: var(--gsm-primary);
}

.gsm-404__btn--primary .gsm-icon {
	width: 12px;
	height: 12px;
	color: var(--gsm-secondary);
}

.gsm-404 .gsm-404__btn--accent,
.gsm-404 .gsm-404__btn--accent:hover {
	color: var(--gsm-primary);
	background: var(--gsm-secondary);
}

.gsm-404__btn--accent .gsm-icon {
	width: 22px;
	height: 22px;
}

.gsm-404__links {
	width: min(100% - 40px, var(--gsm-container));
	margin: 56px auto 24px;
}

.gsm-404 .gsm-404__links-title {
	font-family: 'Montserrat', sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	color: var(--gsm-ink);
}

.gsm-404__links ul {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin-top: 24px;
	list-style: none;
}

.gsm-404 .gsm-404__link {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	text-decoration: none;
	background: var(--gsm-bg-soft);
	border: 1px solid #E0E9FC;
	border-radius: 16px;
	transition: transform .3s var(--gsm-ease), border-color .3s var(--gsm-ease), box-shadow .3s var(--gsm-ease);
}

.gsm-404__link-icon {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: #FFFFFF;
	background: var(--gsm-primary);
	border-radius: 10px;
}

.gsm-404__link-icon .gsm-icon {
	width: 22px;
	height: 22px;
}

.gsm-404__link-label {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--gsm-ink);
}

.gsm-404__link .gsm-404__link-arrow {
	width: 12px;
	height: 12px;
	margin-left: auto;
	color: var(--gsm-primary);
	transition: transform .3s var(--gsm-ease);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-404 .gsm-404__btn--primary:hover {
		background: var(--gsm-primary-hover);
		box-shadow: 0 10px 22px -12px rgba(0, 66, 214, .6);
	}

	.gsm-404 .gsm-404__btn--accent:hover {
		background: var(--gsm-secondary-hover);
	}

	.gsm-404 .gsm-404__link:hover {
		border-color: #A8C2FF;
		box-shadow: 0 14px 28px -18px rgba(0, 52, 173, .35);
		transform: translateY(-3px);
	}

	.gsm-404 .gsm-404__link:hover .gsm-404__link-arrow {
		transform: translate(2px, -2px);
	}
}

.gsm-404 .gsm-404__btn:active,
.gsm-404 .gsm-404__link:active {
	transform: scale(.97);
}

.gsm-404 :where(a):focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 3px;
}

/* ============================================================
 * Libro de Reclamaciones (sin diseño en el Figma): tarjeta blanca de Contacto, secciones numeradas del formato oficial.
 * ============================================================ */
.gsm-lr {
	box-sizing: border-box;
	width: min(100% - 40px, 960px);
	margin-inline: auto;
	font-family: 'Montserrat', sans-serif;
}

.gsm-lr *,
.gsm-lr *::before,
.gsm-lr *::after {
	box-sizing: border-box;
}

.gsm-lr :where(p, h2, dl, dt, dd, ul, fieldset, legend) {
	margin: 0;
	padding: 0;
}

.gsm-lr fieldset {
	min-width: 0;
	border: 0;
}

.gsm-lr__card {
	padding: 40px 48px 44px;
	background: #FFFFFF;
	border: 1px solid #D6E1F9;
	border-radius: 30px;
	box-shadow: 0 30px 60px -40px rgba(0, 30, 100, .35);
}

.gsm-lr__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px 32px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--gsm-line);
}

.gsm-lr .gsm-lr__eyebrow {
	font-size: 11px;
	font-weight: 700;
	line-height: 15px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gsm-primary);
}

.gsm-lr .gsm-lr__razon {
	margin-top: 6px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--gsm-ink);
}

.gsm-lr .gsm-lr__dato {
	margin-top: 2px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--gsm-text);
}

.gsm-lr .gsm-lr__hoja {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.gsm-lr__hoja > div {
	padding: 10px 16px;
	background: var(--gsm-bg-soft);
	border-radius: 12px;
}

.gsm-lr__hoja dt {
	font-size: 11px;
	font-weight: 600;
	line-height: 15px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--gsm-text);
}

.gsm-lr__hoja dd {
	margin-top: 2px;
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	color: var(--gsm-ink);
}

.gsm-lr .gsm-lr__notice {
	margin-top: 20px;
	padding: 14px 16px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--gsm-text);
	background: #F6F9FF;
	border-left: 3px solid var(--gsm-secondary);
	border-radius: 8px;
}

.gsm-lr .gsm-lr__alert {
	margin-top: 20px;
	padding: 12px 16px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
	color: #B42318;
	background: #FDECEC;
	border: 1px solid #F5C2C0;
	border-radius: 10px;
}

.gsm-lr__form {
	margin-top: 28px;
}

.gsm-lr__section + .gsm-lr__section {
	margin-top: 32px;
	padding-top: 28px;
	border-top: 1px solid var(--gsm-line);
}

/* legend flotante: así no se dibuja sobre el borde superior del fieldset. */
.gsm-lr .gsm-lr__legend {
	float: left;
	width: 100%;
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 20px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--gsm-ink);
}

.gsm-lr__num {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	font-size: 14px;
	font-weight: 700;
	color: #FFFFFF;
	background: var(--gsm-primary);
	border-radius: 50%;
}

.gsm-lr__grid {
	clear: both;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 24px;
}

.gsm-lr__field {
	min-width: 0;
}

.gsm-lr__field--w100 {
	grid-column: 1 / -1;
}

.gsm-lr .gsm-lr__label {
	display: block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 700;
	line-height: 15px;
	color: #6E6E70;
}

.gsm-lr__req {
	color: var(--gsm-primary);
}

/* Clase doble: el reset de Hello (input[type="text"], 0-1-1) ganaba y dejaba borde #666 y radio 3 px. */
.gsm-lr.gsm-lr :where(input[type="text"], input[type="tel"], input[type="email"], select, textarea) {
	display: block;
	width: 100%;
	min-height: 42px;
	margin: 0;
	padding: 9px 14px;
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 22px;
	color: var(--gsm-ink);
	background: var(--gsm-bg-soft);
	border: 1px solid #CEDCF8;
	border-radius: 8px;
	box-shadow: none;
	transition: border-color .2s var(--gsm-ease), box-shadow .2s var(--gsm-ease), background-color .2s var(--gsm-ease);
}

.gsm-lr textarea {
	min-height: 110px;
	resize: vertical;
}

.gsm-lr.gsm-lr :where(input, select, textarea)::placeholder {
	color: #9AA3B5;
}

.gsm-lr.gsm-lr :where(input[type="text"], input[type="tel"], input[type="email"], select, textarea):hover {
	border-color: #A8C2FF;
}

.gsm-lr.gsm-lr :where(input[type="text"], input[type="tel"], input[type="email"], select, textarea):focus {
	background: #FFFFFF;
	border-color: var(--gsm-primary);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(0, 66, 214, .15);
}

.gsm-lr__select {
	position: relative;
}

.gsm-lr__select select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 42px;
	cursor: pointer;
}

.gsm-lr__select .gsm-icon {
	position: absolute;
	top: 50%;
	right: 12px;
	width: 20px;
	height: 20px;
	margin-top: -10px;
	color: var(--gsm-primary);
	pointer-events: none;
}

.gsm-lr.gsm-lr .has-error :where(input, select, textarea) {
	border-color: #D93B3B;
}

.gsm-lr .gsm-lr__error {
	margin-top: 6px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	color: #B42318;
}

.gsm-lr .gsm-lr__help {
	margin-top: 6px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--gsm-text);
}

.gsm-lr .gsm-lr__check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--gsm-ink);
	cursor: pointer;
}

.gsm-lr__check input,
.gsm-lr__radio input {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	accent-color: var(--gsm-primary);
}

.gsm-lr__check a {
	font-weight: 600;
	color: var(--gsm-primary);
}

/* Reclamo / Queja como tarjetas seleccionables. */
.gsm-lr .gsm-lr__tipos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 16px;
}

.gsm-lr__tipos > legend {
	float: left;
	grid-column: 1 / -1;
	width: 100%;
}

.gsm-lr__tipo {
	position: relative;
	display: block;
	cursor: pointer;
}

.gsm-lr__tipo input {
	position: absolute;
	top: 18px;
	left: 18px;
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--gsm-primary);
}

.gsm-lr__tipo-box {
	display: flex;
	flex-direction: column;
	gap: 4px;
	height: 100%;
	padding: 15px 18px 16px 46px;
	background: #FFFFFF;
	border: 1.5px solid #CEDCF8;
	border-radius: 14px;
	transition: border-color .2s var(--gsm-ease), background-color .2s var(--gsm-ease), box-shadow .2s var(--gsm-ease);
}

.gsm-lr__tipo-name {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--gsm-ink);
}

.gsm-lr__tipo-desc {
	font-size: 13px;
	font-weight: 500;
	line-height: 1.45;
	color: var(--gsm-text);
}

.gsm-lr__tipo input:checked + .gsm-lr__tipo-box {
	background: var(--gsm-bg-soft);
	border-color: var(--gsm-primary);
	box-shadow: 0 0 0 3px rgba(0, 66, 214, .12);
}

.gsm-lr__tipo input:focus-visible + .gsm-lr__tipo-box {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 2px;
}

.gsm-lr__radio-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 24px;
	min-height: 42px;
	align-items: center;
}

.gsm-lr .gsm-lr__radio {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--gsm-ink);
	cursor: pointer;
}

/* Datos del apoderado: solo si marca "Soy menor de edad" (sin JS se muestran siempre). */
.gsm-lr__form.has-js:not(.is-menor) [data-menor-field] {
	display: none;
}

.gsm-lr__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.gsm-lr .gsm-lr__legal {
	margin-top: 24px;
	padding-left: 18px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--gsm-text);
}

.gsm-lr__field--w100 + .gsm-lr__legal {
	margin-top: 20px;
}

.gsm-lr__form > .gsm-lr__field--w100 {
	margin-top: 32px;
	padding-top: 28px;
	border-top: 1px solid var(--gsm-line);
}

.gsm-lr__actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 28px;
}

.gsm-lr .gsm-lr__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 52px;
	padding: 0 32px;
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color .25s var(--gsm-ease), color .25s var(--gsm-ease), box-shadow .25s var(--gsm-ease), transform .12s ease;
}

.gsm-lr .gsm-lr__btn--primary {
	color: #FFFFFF;
	background: var(--gsm-primary);
	border: 0;
}

.gsm-lr__btn--primary .gsm-icon {
	width: 12px;
	height: 12px;
	color: var(--gsm-secondary);
}

.gsm-lr .gsm-lr__btn--outline,
.gsm-lr .gsm-lr__btn--outline:hover {
	color: var(--gsm-primary);
	background: transparent;
	border: 2px solid var(--gsm-primary);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-lr .gsm-lr__btn--primary:hover {
		color: #FFFFFF;
		background: var(--gsm-primary-hover);
		box-shadow: 0 10px 22px -12px rgba(0, 66, 214, .6);
	}

	.gsm-lr .gsm-lr__btn--outline:hover {
		color: #FFFFFF;
		background: var(--gsm-primary);
	}

	.gsm-lr__tipo:hover .gsm-lr__tipo-box {
		border-color: #A8C2FF;
	}
}

.gsm-lr .gsm-lr__btn:active {
	transform: scale(.97);
}

.gsm-lr .gsm-lr__btn:focus-visible,
.gsm-lr :where(a):focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 3px;
}

/* Confirmación */
.gsm-lr__done {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 16px 0 8px;
	text-align: center;
}

.gsm-lr__done-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-bottom: 16px;
	color: #FFFFFF;
	background: var(--gsm-secondary);
	border-radius: 50%;
	box-shadow: 0 12px 24px -12px rgba(49, 210, 174, .8);
}

.gsm-lr__done-icon .gsm-icon {
	width: 34px;
	height: 34px;
}

.gsm-lr .gsm-lr__done-title {
	margin-top: 6px;
	font-family: 'Montserrat', sans-serif;
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .01em;
	color: var(--gsm-primary);
}

.gsm-lr .gsm-lr__done-text {
	max-width: 560px;
	margin-top: 14px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--gsm-text);
}

.gsm-lr__done-text strong {
	color: var(--gsm-ink);
}

.gsm-lr .gsm-lr__done-note {
	max-width: 520px;
	margin: 10px 0 24px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--gsm-text);
}

/* Textos legales (Política de Privacidad): índice y anclas bajo el header fijo. */
.gsm-post-content.gsm-legal {
	text-align: left;
}

.gsm-legal :where(h2, h3) {
	scroll-margin-top: 110px;
}

.gsm-legal .gsm-legal__toc {
	margin: 0 0 32px;
	padding: 20px 24px;
	background: #F6F9FF;
	border: 1px solid #E0E9FC;
	border-radius: 14px;
}

.gsm-legal .gsm-legal__toc-title {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--gsm-ink);
}

/* Los títulos ya llevan su número: la lista no numera. */
.gsm-legal .gsm-legal__toc ol {
	margin: 0;
	padding: 0;
	list-style: none;
	columns: 2;
	column-gap: 32px;
}

.gsm-legal .gsm-legal__toc a {
	font-weight: 600;
	text-decoration: none;
}

.gsm-legal .gsm-legal__toc a:hover {
	text-decoration: underline;
}

.gsm-legal .gsm-legal__nota {
	padding: 14px 16px;
	font-size: 13px;
	line-height: 1.6;
	background: #FFF8E6;
	border-left: 3px solid #F5B800;
	border-radius: 8px;
}

@media (max-width: 1024px) {
	.gsm-404__links ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.gsm-404__hero {
		padding: 56px 20px 72px;
	}

	.gsm-404 .gsm-404__code {
		font-size: 112px;
	}

	.gsm-404 .gsm-404__title {
		font-size: 28px;
	}

	.gsm-404 .gsm-404__text {
		font-size: 15px;
	}

	.gsm-404__actions {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		max-width: 360px;
	}

	.gsm-404__circle--a {
		top: auto;
		bottom: -110px;
		right: -110px;
		width: 200px;
		height: 200px;
	}

	.gsm-404__circle--b {
		bottom: -140px;
		right: 50px;
		width: 180px;
		height: 180px;
	}

	.gsm-404__links ul {
		gap: 12px;
	}

	.gsm-404 .gsm-404__link {
		padding: 14px;
		gap: 10px;
	}

	.gsm-404__link-icon {
		width: 38px;
		height: 38px;
	}

	.gsm-404__link-label {
		font-size: 14px;
	}

	.gsm-lr__card {
		padding: 28px 20px 32px;
		border-radius: 24px;
	}

	.gsm-lr__grid,
	.gsm-lr .gsm-lr__tipos {
		grid-template-columns: minmax(0, 1fr);
	}

	.gsm-lr .gsm-lr__legend {
		font-size: 16px;
		align-items: flex-start;
	}

	.gsm-lr__actions .gsm-lr__btn {
		width: 100%;
	}

	.gsm-lr .gsm-lr__done-title {
		font-size: 26px;
	}

	.gsm-legal .gsm-legal__toc ol {
		columns: 1;
	}
}

/* ============================================================
 * Hero del detalle de sede (Figma "Single Sede": azul 1440×428, foto 534×313)
 * ============================================================ */
.gsm-sede-hero {
	box-sizing: border-box;
	padding: 37px 20px 38px;
	font-family: 'Montserrat', sans-serif;
	color: #FFFFFF;
	background:
		radial-gradient(ellipse 36% 46% at 47% 50%, rgba(96, 135, 225, .85) 0%, rgba(62, 104, 214, .55) 45%, rgba(0, 50, 164, 0) 100%),
		#0032A4;
}

.gsm-sede-hero *,
.gsm-sede-hero *::before,
.gsm-sede-hero *::after {
	box-sizing: border-box;
}

.gsm-sede-hero :where(p, h1, figure, figcaption) {
	margin: 0;
	padding: 0;
}

.gsm-sede-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 534px);
	align-items: start;
	column-gap: 40px;
	width: min(100%, 1176px);
	margin: 0 auto;
}

.gsm-sede-hero--no-image .gsm-sede-hero__inner {
	grid-template-columns: minmax(0, 1fr);
}

.gsm-sede-hero__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding-top: 2px;
}

.gsm-breadcrumb.gsm-breadcrumb--sede ol {
	font-size: 13px;
}

.gsm-sede-hero .gsm-sede-hero__title {
	margin-top: 66px;
	font-family: 'Montserrat', sans-serif;
	font-size: 48px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -.01em;
	color: #FFFFFF;
	text-wrap: balance;
}

.gsm-sede-hero .gsm-sede-hero__address {
	display: flex;
	align-items: flex-start;
	gap: 4px;
	margin-top: 12px;
	font-size: 18px;
	font-weight: 500;
	line-height: 22px;
	color: var(--gsm-bg-soft);
}

/* Pin 20×20 arriba y texto 3 px más abajo, como en el Figma. */
.gsm-sede-hero__address .gsm-icon {
	flex: none;
	width: 20px;
	height: 20px;
	color: var(--gsm-secondary);
}

.gsm-sede-hero__address span {
	padding-top: 3px;
}

.gsm-sede-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 20px;
	margin-top: 40px;
}

:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 52px;
	padding: 12px 32px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	border-radius: 999px;
	transition: background-color .3s var(--gsm-ease), color .3s var(--gsm-ease), border-color .3s var(--gsm-ease), box-shadow .3s var(--gsm-ease), transform .12s ease;
}

.gsm-hero-btn .gsm-icon--whatsapp {
	width: 24px;
	height: 24px;
}

.gsm-hero-btn .gsm-icon--arrow {
	width: 12px;
	height: 12px;
}

:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn--accent,
:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn--accent:hover,
:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn--accent:focus {
	color: var(--gsm-primary);
	background: var(--gsm-secondary);
	border: 2px solid var(--gsm-secondary);
}

:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn--outline,
:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn--outline:focus {
	padding-inline: 32px 34px;
	color: #FFFFFF;
	background: transparent;
	border: 2px solid #FFFFFF;
}

@media (hover: hover) and (pointer: fine) {
	:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn--accent:hover {
		background: var(--gsm-secondary-hover);
		border-color: var(--gsm-secondary-hover);
		box-shadow: 0 10px 22px -10px rgba(34, 191, 156, .8);
	}

	:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn--outline:hover {
		color: var(--gsm-primary);
		background: #FFFFFF;
	}

	:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn:hover .gsm-icon--arrow {
		transform: translate(2px, -2px);
	}
}

.gsm-hero-btn .gsm-icon--arrow {
	transition: transform .3s var(--gsm-ease);
}

:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn:active {
	transform: scale(.97);
}

:is(.gsm-sede-hero, .gsm-hero-azul) .gsm-hero-btn:focus-visible,
.gsm-sede-hero .gsm-breadcrumb a:focus-visible {
	outline: 3px solid #FFFFFF;
	outline-offset: 3px;
}

.gsm-sede-hero__media {
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

.gsm-sede-hero .gsm-sede-hero__img {
	display: block;
	width: 100%;
	height: auto;
	max-width: none;
	aspect-ratio: 534 / 313;
	object-fit: cover;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .45);
	border-radius: 16px;
}

.gsm-sede-hero .gsm-sede-hero__ref {
	font-size: 16px;
	font-style: normal;
	font-weight: 500;
	line-height: 20px;
	color: #FFFFFF;
}

.gsm-sede-hero__ref strong {
	font-weight: 700;
}

/* ============================================================
 * Ubicación de la sede (Figma: título 36 px, mapa 691×433 + tarjeta 433×431, 52 px entre ambos)
 * ============================================================ */
.gsm-ubicacion {
	box-sizing: border-box;
	width: min(100% - 40px, 1176px);
	margin-inline: auto;
	font-family: 'Montserrat', sans-serif;
}

.gsm-ubicacion *,
.gsm-ubicacion *::before,
.gsm-ubicacion *::after {
	box-sizing: border-box;
}

.gsm-ubicacion :where(p, h2, h3, ul, li, dl, dd) {
	margin: 0;
	padding: 0;
}

.gsm-title.gsm-title--ubicacion {
	font-size: 36px;
	text-align: left;
	color: #2B2F3A;
}

.gsm-ubicacion__layout {
	display: grid;
	grid-template-columns: minmax(0, 691fr) minmax(0, 433fr);
	align-items: start;
	gap: 52px;
	margin-top: 32px;
}

.gsm-ubicacion__map-wrap {
	position: relative;
	min-height: 433px;
	overflow: hidden;
	isolation: isolate;
	background: #F4F4F5;
	border: 1px solid #D3DFF7;
	border-radius: 16px;
}

.gsm-map {
	position: absolute;
	inset: 0;
	z-index: 0;
	font-family: 'Montserrat', sans-serif;
	background: #F4F4F5;
}

.gsm-map__placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 24px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	color: #555555;
}

.gsm-map__placeholder .gsm-icon {
	width: 24px;
	height: 28px;
	color: var(--gsm-primary);
	opacity: .55;
}

.gsm-map.is-ready .gsm-map__placeholder {
	display: none;
}

/* Botón "Abrir en Google Maps" (193×41, 17 px de los bordes). */
.gsm-ubicacion .gsm-map__open {
	position: absolute;
	right: 17px;
	bottom: 17px;
	z-index: 1000;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 41px;
	padding: 0 16px 0 17px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	color: var(--gsm-primary);
	text-decoration: none;
	background: #FFFFFF;
	border: 1px solid #C9D8FA;
	border-radius: 999px;
	box-shadow: 0 8px 18px -8px rgba(0, 30, 100, .3);
	transition: background-color .25s var(--gsm-ease), color .25s var(--gsm-ease), border-color .25s var(--gsm-ease), transform .12s ease;
}

.gsm-map__open .gsm-icon--arrow {
	width: 8px;
	height: 8px;
	transition: transform .3s var(--gsm-ease);
}

/* Leaflet con la marca */
.gsm-map .leaflet-container,
.gsm-map.leaflet-container {
	font-family: 'Montserrat', sans-serif;
	background: #EEF1F6;
}

.gsm-map .leaflet-tile-pane {
	filter: saturate(.85);
}

.gsm-map__marker {
	background: none;
	border: 0;
}

.gsm-map__marker svg {
	position: relative;
	display: block;
	width: 32px;
	height: 42px;
	filter: drop-shadow(0 6px 6px rgba(0, 30, 100, .3));
}

.gsm-map__pulse {
	position: absolute;
	left: 50%;
	bottom: -6px;
	width: 28px;
	height: 12px;
	margin-left: -14px;
	background: rgba(49, 210, 174, .45);
	border-radius: 50%;
	animation: gsm-map-pulse 2.2s var(--gsm-ease) infinite;
}

@keyframes gsm-map-pulse {
	0% { transform: scale(.6); opacity: .9; }
	100% { transform: scale(2.2); opacity: 0; }
}

.gsm-map .leaflet-bar {
	overflow: hidden;
	border: 1px solid #D3DFF7;
	border-radius: 12px;
	box-shadow: 0 8px 18px -10px rgba(0, 30, 100, .35);
}

.gsm-map .leaflet-bar a,
.gsm-map .leaflet-bar a:hover {
	width: 34px;
	height: 34px;
	font: 600 18px/34px 'Montserrat', sans-serif;
	color: var(--gsm-primary);
	text-decoration: none;
	border-bottom-color: #E4E7EC;
}

.gsm-map .leaflet-bar a:hover {
	background: var(--gsm-bg-soft);
}

.gsm-map .leaflet-control-attribution {
	font-size: 10px;
	background: rgba(255, 255, 255, .8);
	border-top-right-radius: 8px;
}

.gsm-map .leaflet-control-attribution a {
	color: var(--gsm-primary);
}

.gsm-map__popup .leaflet-popup-content-wrapper {
	border-radius: 12px;
	box-shadow: 0 14px 30px -14px rgba(0, 30, 100, .45);
}

.gsm-map__popup .leaflet-popup-content {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 12px 16px;
	font-family: 'Montserrat', sans-serif;
	line-height: 1.35;
}

.gsm-map__popup-title {
	font-size: 14px;
	font-weight: 700;
	color: var(--gsm-ink);
}

.gsm-map__popup-text {
	font-size: 12px;
	font-weight: 500;
	color: var(--gsm-text);
}

.gsm-map__popup .gsm-map__popup-link {
	margin-top: 4px;
	font-size: 12px;
	font-weight: 700;
	color: var(--gsm-primary);
	text-decoration: none;
}

/* Tarjeta de horario y contacto */
.gsm-ubicacion__card {
	display: flex;
	flex-direction: column;
	padding: 28px;
	background: #FFFFFF;
	border: 1px solid #D6E2F9;
	border-radius: 20px;
	box-shadow: 0 24px 44px -28px rgba(0, 52, 173, .3);
}

.gsm-ubicacion .gsm-ubicacion__card-title {
	font-size: 18px;
	font-weight: 700;
	line-height: 22px;
	color: #2B2F3A;
}

.gsm-ubicacion .gsm-hours {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 18px;
}

.gsm-hours__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 37px;
	padding: 10px 0;
	font-size: 14px;
	line-height: 17px;
}

.gsm-hours__row:not(:last-child) {
	min-height: 38px;
	border-bottom: 1px solid #EEF0F4;
}

.gsm-hours__row dt {
	font-weight: 500;
	color: var(--gsm-text);
}

.gsm-ubicacion .gsm-hours__row dd {
	font-weight: 700;
	text-align: right;
	white-space: nowrap;
	color: #2B2F3A;
}

.gsm-ubicacion .gsm-hours__row.is-closed dd {
	font-weight: 500;
	color: var(--gsm-text);
}

.gsm-ubicacion .gsm-hours__text {
	margin-top: 18px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--gsm-text);
}

.gsm-ubicacion .gsm-ubicacion__contacts {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-top: 18px;
	list-style: none;
}

.gsm-ubicacion .gsm-contact-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 8px 20px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	color: var(--gsm-primary);
	text-decoration: none;
	overflow-wrap: anywhere;
	background: #FFFFFF;
	border: 1.5px solid var(--gsm-primary);
	border-radius: 25px;
	transition: background-color .25s var(--gsm-ease), color .25s var(--gsm-ease), box-shadow .25s var(--gsm-ease), transform .12s ease;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-ubicacion .gsm-contact-btn:hover {
		color: #FFFFFF;
		background: var(--gsm-primary);
		box-shadow: 0 10px 22px -12px rgba(0, 66, 214, .6);
	}

	.gsm-ubicacion .gsm-map__open:hover {
		color: #FFFFFF;
		background: var(--gsm-primary);
		border-color: var(--gsm-primary);
	}

	.gsm-ubicacion .gsm-map__open:hover .gsm-icon--arrow {
		transform: translate(2px, -2px);
	}
}

.gsm-ubicacion .gsm-contact-btn:active,
.gsm-ubicacion .gsm-map__open:active {
	transform: scale(.97);
}

.gsm-ubicacion .gsm-contact-btn:focus-visible,
.gsm-ubicacion .gsm-map__open:focus-visible,
.gsm-map .leaflet-bar a:focus-visible,
.gsm-map .leaflet-marker-icon:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 2px;
}

@media (max-width: 1024px) {
	.gsm-sede-hero__inner {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 36px;
	}

	.gsm-sede-hero .gsm-sede-hero__title {
		margin-top: 40px;
		font-size: 40px;
	}

	.gsm-sede-hero__media {
		max-width: 640px;
	}

	.gsm-sede-hero {
		padding-bottom: 48px;
	}

	.gsm-title.gsm-title--ubicacion {
		font-size: 32px;
	}

	.gsm-ubicacion__layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}

	.gsm-ubicacion__map-wrap {
		min-height: 380px;
	}
}

@media (max-width: 767px) {
	.gsm-sede-hero {
		padding: 24px 20px 40px;
	}

	.gsm-sede-hero .gsm-sede-hero__title {
		margin-top: 28px;
		font-size: 32px;
	}

	.gsm-sede-hero .gsm-sede-hero__address {
		font-size: 16px;
	}

	.gsm-sede-hero__actions {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		margin-top: 28px;
	}

	.gsm-sede-hero__inner {
		row-gap: 28px;
	}

	.gsm-sede-hero__media {
		gap: 14px;
	}

	.gsm-sede-hero .gsm-sede-hero__ref {
		font-size: 15px;
	}

	.gsm-title.gsm-title--ubicacion {
		font-size: 28px;
	}

	.gsm-ubicacion__layout {
		margin-top: 20px;
	}

	.gsm-ubicacion__map-wrap {
		min-height: 300px;
	}

	.gsm-ubicacion__card {
		padding: 24px 20px;
	}

	.gsm-ubicacion .gsm-contact-btn {
		padding-inline: 12px;
		font-size: 14px;
	}

	.gsm-ubicacion .gsm-contact-btn--mail {
		font-size: 13px;
	}
}

/* ============================================================
 * Footer global (Figma: tarjeta azul 1348×425 a 46 px de los bordes, contenido 1217 px)
 * Vive aquí y no en el CSS de Elementor: si post-{id}.css falla, el footer se ve igual.
 * ============================================================ */
/* Respaldo del contenedor de Elementor (sin padding ni gap aunque falte su CSS). */
.elementor-location-footer .gsm-footer-wrap.e-con {
	--display: flex;
	--flex-direction: column;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
}

.gsm-footer {
	box-sizing: border-box;
	padding: 24px;
	font-family: 'Montserrat', sans-serif;
	background: #FFFFFF;
}

.gsm-footer *,
.gsm-footer *::before,
.gsm-footer *::after {
	box-sizing: inherit;
}

.gsm-footer :where(p, ul, li, nav) {
	margin: 0;
	padding: 0;
}

.gsm-footer__card {
	max-width: 100%;
	margin: 0 auto;
	padding: 49px 66px 25px 65px;
	color: #FFFFFF;
	background: var(--gsm-primary);
	border-radius: 20px;
}

/* Fila superior: logo 235×87 y lema alineados por abajo; línea verde a 37 px. */
.gsm-footer__top {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	padding-bottom: 37px;
	border-bottom: 1px solid var(--gsm-secondary);
}

.gsm-footer .gsm-footer__logo {
	display: block;
	flex: none;
	width: 235px;
	border-radius: 6px;
}

.gsm-footer .gsm-footer__logo img {
	display: block;
	width: 100%;
	height: auto;
	max-width: none;
}

.gsm-footer .gsm-footer__tagline {
	max-width: 320px;
	margin-bottom: -1px;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.22;
	text-align: right;
	text-transform: uppercase;
	color: var(--gsm-bg-soft);
}

/* Fila media: menú + contacto a la izquierda, Libro de Reclamaciones a la derecha. */
.gsm-footer__mid {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 32px;
	padding: 39px 0 40px;
	border-bottom: 1px solid var(--gsm-secondary);
}

.gsm-footer__main {
	display: flex;
	flex-direction: column;
	gap: 65px;
	min-width: 0;
}

.gsm-footer .gsm-footer__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	list-style: none;
}

.gsm-footer .gsm-footer__menu li {
	display: flex;
}

.gsm-footer .gsm-footer__menu a {
	position: relative;
	display: inline-block;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.22;
	text-transform: uppercase;
	color: #FFFFFF;
	text-decoration: none;
	transition: color .25s var(--gsm-ease);
}

.gsm-footer .gsm-footer__menu a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -4px;
	height: 2px;
	background: var(--gsm-secondary);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s var(--gsm-ease);
}

.gsm-footer .gsm-footer__menu .current-menu-item > a {
	color: var(--gsm-secondary);
}

.gsm-footer .gsm-footer__contact {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 56px;
	list-style: none;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.22;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gsm-bg-soft);
}

.gsm-footer .gsm-footer__contact-value {
	font-weight: 700;
	color: var(--gsm-bg-soft);
	text-decoration: none;
	overflow-wrap: anywhere;
	text-decoration-color: transparent;
	text-underline-offset: 4px;
	transition: color .25s var(--gsm-ease), text-decoration-color .25s var(--gsm-ease);
}

/* Libro de Reclamaciones + enlace de privacidad (más discreto: 11 px, blanco al 70 %). */
.gsm-footer__legal {
	display: flex;
	flex: none;
	flex-direction: column;
	align-items: flex-end;
	gap: 12px;
}

.gsm-footer .gsm-footer__privacy {
	font-size: 12px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: .02em;
	color: #FFFFFF;
	text-underline-offset: 3px;
	transition: color .2s ease, text-decoration-color .2s ease;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-footer .gsm-footer__privacy:hover {
		color: #FFFFFF;
		text-decoration-color: currentColor;
	}
}

/* Badge Libro de Reclamaciones: 185×53, borde blanco, radio 8. */
.gsm-footer .gsm-footer__libro {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 14px;
	min-width: 185px;
	min-height: 53px;
	padding: 0 10px 0 12px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.22;
	color: #FFFFFF;
	text-decoration: none;
	border: 1px solid #FFFFFF;
	border-radius: 8px;
	transition: background-color .25s var(--gsm-ease), border-color .25s var(--gsm-ease), transform .12s ease;
}

.gsm-footer .gsm-footer__libro img {
	display: block;
	flex: none;
	width: 54px;
	height: 22px;
	max-width: none;
	margin-left: 1px;
}

/* Fila inferior: derechos | redes | créditos. */
.gsm-footer__bottom {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 16px;
	padding-top: 22px;
}

.gsm-footer .gsm-footer__copy,
.gsm-footer .gsm-footer__credit {
	font-size: 10px;
	font-weight: 500;
	line-height: 1.22;
	color: rgba(255, 255, 255, .5);
}

.gsm-footer__copy {
	grid-column: 1;
}

.gsm-footer__credit {
	grid-column: 3;
	text-align: right;
}

.gsm-footer .gsm-footer__credit :where(a, strong) {
	font-weight: 700;
	color: rgba(255, 255, 255, .5);
	text-decoration: none;
	transition: color .25s var(--gsm-ease);
}

/* Tamaño y separación editables desde el widget (Estilo › Redes sociales). */
.gsm-footer .gsm-footer__social {
	grid-column: 2;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--gsm-footer-social-gap, 22px);
	list-style: none;
}

.gsm-footer .gsm-footer__social a {
	display: block;
	width: var(--gsm-footer-social-size, 25px);
	height: var(--gsm-footer-social-size, 25px);
	border-radius: 50%;
	transition: transform .25s var(--gsm-ease), box-shadow .25s var(--gsm-ease);
}

.gsm-footer .gsm-footer__social img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
}

/* Estados */
.gsm-footer :where(a):focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 3px;
}

.gsm-footer .gsm-footer__menu a:focus-visible {
	border-radius: 2px;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-footer .gsm-footer__menu a:hover {
		color: #FFFFFF;
	}

	.gsm-footer .gsm-footer__menu a:hover::after {
		transform: scaleX(1);
	}

	.gsm-footer .gsm-footer__contact-value:hover {
		color: #FFFFFF;
		text-decoration: underline;
		text-decoration-color: var(--gsm-secondary);
	}

	.gsm-footer a.gsm-footer__libro:hover {
		color: #FFFFFF;
		background: rgba(255, 255, 255, .12);
		border-color: var(--gsm-secondary);
	}

	.gsm-footer .gsm-footer__social a:hover {
		transform: translateY(-2px);
		box-shadow: 0 0 0 3px rgba(49, 210, 174, .55);
	}

	.gsm-footer .gsm-footer__credit a:hover {
		color: #FFFFFF;
	}
}

.gsm-footer a.gsm-footer__libro:active,
.gsm-footer .gsm-footer__social a:active {
	transform: scale(.96);
}

@media (max-width: 1200px) {
	.gsm-footer {
		padding: 40px 24px;
	}

	.gsm-footer__card {
		padding: 44px 40px 25px;
	}
}

@media (max-width: 1024px) {
	.gsm-footer__mid {
		flex-direction: column;
		gap: 32px;
	}

	.gsm-footer__legal {
		align-items: flex-start;
	}

	.gsm-footer__main {
		gap: 32px;
	}

	.gsm-footer .gsm-footer__menu {
		gap: 14px 24px;
	}
}

@media (max-width: 767px) {
	.gsm-footer {
		padding: 32px 16px 16px;
	}

	.gsm-footer__card {
		padding: 36px 24px 24px;
	}

	.gsm-footer__top {
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
		padding-bottom: 28px;
	}

	.gsm-footer .gsm-footer__logo {
		width: 190px;
	}

	.gsm-footer .gsm-footer__tagline {
		max-width: 280px;
		font-size: 18px;
		text-align: left;
	}

	.gsm-footer__mid {
		gap: 52px;
		padding: 28px 0;
	}

	.gsm-footer__main {
		gap: 52px;
	}

	.gsm-footer .gsm-footer__menu {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px 20px;
	}

	.gsm-footer .gsm-footer__menu a {
		font-size: 15px;
	}

	.gsm-footer .gsm-footer__contact {
		flex-direction: column;
		gap: 16px;
		letter-spacing: .12em;
	}

	.gsm-footer .gsm-footer__contact li {
		display: flex;
		flex-direction: column;
		gap: 4px;
	}

	.gsm-footer__bottom {
		grid-template-columns: minmax(0, 1fr);
		justify-items: center;
		gap: 14px;
		padding-top: 24px;
		text-align: center;
	}

	.gsm-footer__copy,
	.gsm-footer__credit,
	.gsm-footer .gsm-footer__social {
		grid-column: 1;
	}

	.gsm-footer .gsm-footer__social {
		order: -1;
	}

	.gsm-footer__credit {
		text-align: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gsm-explorer *,
	.gsm-cta *,
	.gsm-feature,
	.gsm-feature *,
	.gsm-faq *,
	.gsm-stat-card,
	.gsm-footer *,
	.gsm-404 *,
	.gsm-lr *,
	.gsm-blog *,
	.gsm-pager *,
	.gsm-timeline *,
	.gsm-zonas *,
	.gsm-canales *,
	.gsm-form *,
	.gsm-sedes *,
	.gsm-sede-hero *,
	.gsm-ubicacion * {
		transition: none !important;
		animation: none !important;
	}

	.gsm-faq__item::details-content {
		transition: none;
	}
}

/* ============================================================
 * HOME (Figma "Home V3", nodo 373:1175)
 * Ancho y espacio entre secciones: variables --gsm-home-ancho y --gsm-home-espacio (Ajustes GSM → Diseño del Home,
 * publicadas por inc/home.php). Solo las usa el contenedor raíz .gsm-home de la portada.
 * ============================================================ */
.e-con.gsm-home {
	--gsm-container: var(--gsm-home-ancho, 1184px);
	/* En móvil Elementor pone wrap en las columnas: el slider (alto por aspect-ratio) quedaría en 0 px. */
	--flex-wrap: nowrap;
	flex-wrap: nowrap;
	--row-gap: var(--gsm-home-espacio, 100px);
	--column-gap: 0px;
	--gap: var(--gsm-home-espacio, 100px) 0px;
	row-gap: var(--gsm-home-espacio, 100px);
}

/* Bloques de Elementor (cabecera + Loop Carousel de Sedes y Docentes) al ancho del Home. */
.gsm-home .e-con.gsm-home-block {
	--flex-wrap: nowrap;
	flex-wrap: nowrap;
	width: min(100% - 40px, var(--gsm-container));
	max-width: none;
	margin-inline: auto;
}

:where(.gsm-hero-slider, .gsm-testimonios, .gsm-banner, .gsm-section-head--home, .gsm-video-modal) {
	font-family: 'Montserrat', sans-serif;
	box-sizing: border-box;
}

:where(.gsm-hero-slider, .gsm-testimonios, .gsm-banner, .gsm-section-head--home, .gsm-video-modal) *,
:where(.gsm-hero-slider, .gsm-testimonios, .gsm-banner, .gsm-section-head--home, .gsm-video-modal) *::before,
:where(.gsm-hero-slider, .gsm-testimonios, .gsm-banner, .gsm-section-head--home, .gsm-video-modal) *::after {
	box-sizing: inherit;
}

.gsm-section-head--home :where(h1, h2, h3, p),
.gsm-testimonios :where(ul, p),
.gsm-cifras--band :where(dl, dd) {
	margin: 0;
	padding: 0;
}

/* ---------- Cabecera de sección: título 48/700, subtítulo 16/500 y enlace 16/600 ---------- */
.gsm-title.gsm-title--home {
	font-size: 48px;
	color: var(--gsm-dark);
}

.gsm-section-head.gsm-section-head--home {
	gap: 8px;
}

/* Con enlace, el Figma separa 16 px título, subtítulo y enlace. */
.gsm-section-head.gsm-section-head--home:has(.gsm-section-head__link) {
	gap: 16px;
}

.gsm-section-head--home .gsm-section-head__link,
.gsm-section-head--home .gsm-section-head__link:hover,
.gsm-section-head--home .gsm-section-head__link:focus {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-size: 16px;
	font-weight: 600;
	line-height: 20px;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--gsm-primary);
	text-decoration: none;
}

.gsm-section-head__link span {
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat;
	transition: background-size .3s var(--gsm-ease);
}

.gsm-section-head__link .gsm-icon {
	width: 13px;
	height: 13px;
	color: var(--gsm-secondary);
	transition: transform .3s var(--gsm-ease);
}

.gsm-section-head__link:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 4px;
	border-radius: 4px;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-section-head__link:hover span {
		background-size: 100% 1.5px;
	}

	.gsm-section-head__link:hover .gsm-icon {
		transform: translate(2px, -2px);
	}
}

/* ---------- Slider principal (16:9) ---------- */
.gsm-hero-slider {
	position: relative;
	overflow: hidden;
	background: #0033A6;
	isolation: isolate;
}

.gsm-hero-slider__viewport {
	position: relative;
	aspect-ratio: 16 / 9;
	max-height: var(--gsm-hero-max-h, none);
	touch-action: pan-y;
}

.gsm-hero-slider__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--gsm-hero-fade, .8s) ease, visibility 0s linear var(--gsm-hero-fade, .8s);
}

.gsm-hero-slider__slide.is-active {
	z-index: 1;
	opacity: 1;
	visibility: visible;
	transition: opacity var(--gsm-hero-fade, .8s) ease;
}

.gsm-hero-slider__slide picture,
.gsm-hero-slider__link {
	display: block;
	width: 100%;
	height: 100%;
}

.gsm-hero-slider .gsm-hero-slider__img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	border-radius: 0;
	-webkit-user-drag: none;
	user-select: none;
}

.gsm-hero-slider__link:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: -6px;
}

/* Degradado blanco inferior (en el Figma: 60 de 580 px) */
.gsm-hero-slider--fade::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	z-index: 2;
	height: clamp(24px, 7.5%, 72px);
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #FFFFFF);
	pointer-events: none;
}

/* Flechas: círculos blancos de 54 px (los del carrusel del Figma Home V3), centrados en vertical; 40 px en móvil. */
.gsm-hero-slider .gsm-hero-slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	margin: 0;
	padding: 0;
	color: #0042D6;
	background: rgba(255, 255, 255, .92);
	border: 1px solid #AFC2FF;
	border-radius: 50%;
	box-shadow: 0 4px 14px -4px rgba(0, 30, 110, .35);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .12s ease;
}

.gsm-hero-slider .gsm-hero-slider__arrow[hidden] {
	display: none;
}

.gsm-hero-slider__arrow--prev {
	left: clamp(12px, 2.5vw, 40px);
}

.gsm-hero-slider__arrow--next {
	right: clamp(12px, 2.5vw, 40px);
}

.gsm-hero-slider__arrow .gsm-icon {
	width: 18px;
	height: 18px;
}

.gsm-hero-slider .gsm-hero-slider__arrow:active {
	transform: translateY(-50%) scale(.92);
}

.gsm-hero-slider .gsm-hero-slider__arrow:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 3px;
}

.gsm-hero-slider__nav {
	position: absolute;
	left: 50%;
	bottom: clamp(10px, 6.5%, 56px);
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 6px;
	transform: translateX(-50%);
}

.gsm-hero-slider__dots {
	display: flex;
	align-items: center;
}

/* Punto de 6 px (activo de 10 px en verde) con área táctil de 14 × 24. */
.gsm-hero-slider .gsm-hero-slider__dot {
	position: relative;
	display: block;
	width: 14px;
	height: 24px;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	cursor: pointer;
}

.gsm-hero-slider__dot::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 6px;
	height: 6px;
	background: #C0D0FF;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	transition: width .35s var(--gsm-ease), height .35s var(--gsm-ease), background-color .35s ease;
}

.gsm-hero-slider__dot.is-active::before {
	width: 10px;
	height: 10px;
	background: var(--gsm-secondary);
}

.gsm-hero-slider .gsm-hero-slider__pause {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin: 0;
	padding: 0;
	color: #FFFFFF;
	background: rgba(0, 30, 110, .35);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	transition: background-color .25s ease;
}

.gsm-hero-slider__pause .gsm-icon {
	width: 10px;
	height: 10px;
}

.gsm-hero-slider__pause .gsm-icon--play,
.gsm-hero-slider__pause.is-paused .gsm-icon--pause {
	display: none;
}

.gsm-hero-slider__pause.is-paused .gsm-icon--play {
	display: block;
}

.gsm-hero-slider .gsm-hero-slider__dot:focus-visible,
.gsm-hero-slider .gsm-hero-slider__pause:focus-visible {
	outline: 2px solid #FFFFFF;
	outline-offset: 1px;
	border-radius: 6px;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-hero-slider__dot:not(.is-active):hover::before {
		background: #FFFFFF;
	}

	.gsm-hero-slider .gsm-hero-slider__pause:hover {
		background: rgba(0, 30, 110, .6);
	}

	.gsm-hero-slider .gsm-hero-slider__arrow:hover {
		color: #FFFFFF;
		background: #0042D6;
		border-color: #0042D6;
	}
}

/* Alto de pantalla en desktop: header + slider llenan la primera pantalla. --gsm-hero-top = distancia del slider al inicio
   de la página (102 px del header; gsm-home.js la mide, p. ej. con la barra de administración). Entre 480 px y su 16:9. */
@media (min-width: 1025px) {
	.gsm-hero-slider--screen {
		container-type: inline-size;
	}

	.gsm-hero-slider--screen .gsm-hero-slider__viewport {
		aspect-ratio: auto;
		height: clamp(480px, calc(100vh - var(--gsm-hero-top, 102px)), 56.25cqw);
		height: clamp(480px, calc(100svh - var(--gsm-hero-top, 102px)), 56.25cqw);
	}
}

@media (max-width: 767px) {
	.gsm-hero-slider .gsm-hero-slider__arrow {
		width: 40px;
		height: 40px;
	}

	.gsm-hero-slider__arrow .gsm-icon {
		width: 15px;
		height: 15px;
	}

	.gsm-hero-slider--mobile .gsm-hero-slider__viewport {
		aspect-ratio: var(--gsm-hero-ratio-m, 4 / 5);
	}
}

/* ---------- Ciclos del Home: pestañas + logos de universidad + grilla 3 × 373 ---------- */
.gsm-explorer.gsm-explorer--home {
	z-index: auto;
}

.gsm-home-ciclos__filters {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 32px;
	width: 100%;
	margin-top: var(--gsm-head-gap, 64px);
}

.gsm-explorer--home .gsm-explorer__tabs {
	margin-top: 0;
}

.gsm-unis {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 24px;
}

/* Logo 158 × 60 (borde #A8C2FF de 1 px, radio 8). Activo: borde y anillo azules; los demás se atenúan. */
.gsm-explorer .gsm-uni {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 158px;
	height: 60px;
	padding: 6px 8px;
	text-decoration: none;
	background: #FFFFFF;
	border: 1px solid #A8C2FF;
	border-radius: 8px;
	box-shadow: 0 12px 24px -12px rgba(20, 36, 80, .22);
	transition:
		border-color .3s var(--gsm-ease),
		box-shadow .3s var(--gsm-ease),
		transform .3s var(--gsm-ease),
		opacity .3s ease,
		filter .3s ease;
}

.gsm-uni .gsm-uni__logo.gsm-uni__logo {
	display: block;
	width: auto;
	max-width: 142px;
	height: auto;
	max-height: 45px;
	object-fit: contain;
}

.gsm-uni__name {
	font-size: 15px;
	font-weight: 800;
	letter-spacing: .04em;
	color: var(--gsm-primary);
}

.gsm-explorer .gsm-uni.is-active {
	border-color: var(--gsm-primary);
	box-shadow: 0 0 0 1px var(--gsm-primary), 0 14px 26px -12px rgba(0, 66, 214, .45);
}

.gsm-unis:has(.is-active) .gsm-uni:not(.is-active) {
	opacity: .55;
	filter: grayscale(.7);
}

.gsm-explorer .gsm-uni:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 3px;
}

.gsm-explorer .gsm-uni:active {
	transform: scale(.97);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-explorer .gsm-uni:hover {
		border-color: #6F95FF;
		opacity: 1;
		filter: none;
		transform: translateY(-2px);
	}
}

.gsm-home-ciclos__results {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
}

.gsm-home-ciclos__results[hidden] {
	display: none;
}

.gsm-explorer--home .gsm-explorer__grid {
	gap: 32px;
	margin-top: 64px;
}

.gsm-home-ciclos__more {
	margin-top: 33px;
}

.gsm-home-ciclos__more[hidden] {
	display: none;
}

/* "Cargar más": 152 × 36, contorno azul y chevron */
.gsm-explorer .gsm-more-btn,
.gsm-explorer .gsm-more-btn:hover,
.gsm-explorer .gsm-more-btn:focus {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 36px;
	padding: 0 19px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	color: var(--gsm-primary);
	text-decoration: none;
	background: #FFFFFF;
	border: 1px solid var(--gsm-primary);
	border-radius: 999px;
	box-shadow: 0 10px 22px -10px rgba(0, 66, 214, .32);
	transition: background-color .25s ease, color .25s ease, box-shadow .25s ease, transform .12s ease;
}

.gsm-more-btn .gsm-icon {
	width: 14px;
	height: 14px;
	transition: transform .3s var(--gsm-ease);
}

.gsm-explorer .gsm-more-btn:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 3px;
}

.gsm-explorer .gsm-more-btn:active {
	transform: scale(.96);
}

@media (hover: hover) and (pointer: fine) {
	.gsm-explorer .gsm-more-btn:hover {
		color: #FFFFFF;
		background: var(--gsm-primary);
	}

	.gsm-more-btn:hover .gsm-icon {
		transform: translateY(2px);
	}
}

.gsm-explorer--home .gsm-explorer__empty {
	margin-top: 64px;
}

/* ---------- Cifras en banda (1440 × 144) ---------- */
.gsm-cifras.gsm-cifras--band {
	width: 100%;
	overflow: hidden;
	background: var(--gsm-bg-soft);
}

.gsm-cifras--band .gsm-cifras__list.gsm-cifras__list {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	grid-auto-flow: row; /* la tarjeta de Nosotros fluye en columnas */
	gap: 16px 64px;
	min-height: 144px;
	padding: 30px 20px;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.gsm-cifras--band .gsm-cifras__item {
	gap: 2px;
	padding: 0;
	border: 0;
}

.gsm-cifras--band .gsm-cifras__valor.gsm-cifras__valor {
	font-size: 48px;
	font-weight: 700;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}

.gsm-cifras--band .gsm-cifras__texto.gsm-cifras__texto {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--gsm-dark);
}

.gsm-cifras__circle {
	position: absolute;
	width: 240px;
	height: 240px;
	background: rgba(49, 210, 174, .3);
	border-radius: 50%;
	pointer-events: none;
}

.gsm-cifras__circle--a {
	top: -72px;
	right: -60px;
}

.gsm-cifras__circle--b {
	top: 58px;
	right: 69px;
}

/* ---------- Banner de imagen ---------- */
.gsm-banner {
	width: 100%;
	line-height: 0;
}

.gsm-banner picture,
.gsm-banner__link {
	display: block;
}

.gsm-banner .gsm-banner__img {
	display: block;
	width: 100%;
	height: auto;
	max-width: none;
	border-radius: 0;
	transition: filter .3s ease;
}

.gsm-banner__link:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: -6px;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-banner__link:hover .gsm-banner__img {
		filter: brightness(1.05) saturate(1.05);
	}
}

/* ---------- Testimonios: 4 × 262 × 387 con 45 px, bordes desvanecidos ---------- */
.gsm-testimonios {
	--t-gap: 45px;
	--t-per: 4;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--gsm-head-gap, 84px);
	width: min(100% - 40px, var(--gsm-container));
	margin-inline: auto;
}

.gsm-testimonios__carousel {
	position: relative;
	width: 100%;
}

/* Sin JS: fila desplazable con imanes. Con JS (.is-enhanced) la cinta se mueve sola. */
.gsm-testimonios__viewport {
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 32px, #000 calc(100% - 64px), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 32px, #000 calc(100% - 64px), transparent 100%);
}

.gsm-testimonios__viewport::-webkit-scrollbar {
	display: none;
}

/* Sin imanes en modo cinta: al mover una tarjeta al final, el imán desplazaría el viewport hasta ella. */
.is-enhanced .gsm-testimonios__viewport {
	overflow: hidden;
	scroll-snap-type: none;
	touch-action: pan-y;
}

.is-enhanced .gsm-testimonio {
	scroll-snap-align: none;
}

.gsm-testimonios .gsm-testimonios__track {
	display: flex;
	gap: var(--t-gap);
	list-style: none;
	transition: transform .6s var(--gsm-ease);
}

.gsm-testimonio {
	flex: 0 0 calc((100% - (var(--t-per) - 1) * var(--t-gap)) / var(--t-per));
	min-width: 0;
	scroll-snap-align: start;
}

.gsm-testimonios .gsm-testimonio__card {
	position: relative;
	display: block;
	aspect-ratio: 262 / 387;
	overflow: hidden;
	color: var(--gsm-primary);
	text-decoration: none;
	background: var(--gsm-bg-soft);
	border: 1px solid #A8C2FF;
	border-radius: 20px;
	-webkit-user-drag: none;
	user-select: none;
	transition: border-color .3s var(--gsm-ease), box-shadow .3s var(--gsm-ease);
}

.gsm-testimonio__card .gsm-testimonio__poster,
.gsm-testimonio__card .gsm-testimonio__clip {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	border-radius: 0;
	-webkit-user-drag: none;
}

.gsm-testimonio__card .gsm-testimonio__poster {
	transition: transform .5s var(--gsm-ease);
}

/* El clip aparece cuando de verdad está reproduciendo (si el navegador lo niega, queda la portada). */
.gsm-testimonio__clip {
	opacity: 0;
	transition: opacity .45s ease;
}

.gsm-testimonio.is-playing .gsm-testimonio__clip {
	opacity: 1;
}

/* Triángulo de play: azul y con contorno sobre la tarjeta vacía (Figma); blanco con sombra sobre una portada. */
.gsm-testimonio__play {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	width: 42px;
	height: 48px;
	transform: translate(-40%, -50%);
	transition: opacity .3s ease, transform .3s var(--gsm-ease);
}

.gsm-testimonio:not(.gsm-testimonio--empty) .gsm-testimonio__play {
	color: #FFFFFF;
	filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .45));
}

.gsm-testimonio.is-playing .gsm-testimonio__play {
	opacity: 0;
}

.gsm-testimonio__badge {
	position: absolute;
	left: 12px;
	bottom: 12px;
	z-index: 2;
	padding: 5px 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	color: var(--gsm-primary);
	background: #FFFFFF;
	border-radius: 999px;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .3s ease, transform .3s var(--gsm-ease);
}

.gsm-testimonios .gsm-testimonio__card:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: -3px;
}

.gsm-testimonio__card:focus-visible .gsm-testimonio__badge {
	opacity: 1;
	transform: none;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-testimonios .gsm-testimonio__card:hover {
		border-color: var(--gsm-primary);
		box-shadow: inset 0 0 0 1px var(--gsm-primary);
	}

	.gsm-testimonio__card:hover .gsm-testimonio__poster {
		transform: scale(1.04);
	}

	.gsm-testimonio__card:hover .gsm-testimonio__play {
		opacity: 1;
		transform: translate(-40%, -50%) scale(1.08);
	}

	.gsm-testimonio__card:hover .gsm-testimonio__badge {
		opacity: 1;
		transform: none;
	}
}

/* Pausa accesible: visible solo con el teclado. */
.gsm-testimonios .gsm-testimonios__pause {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 3;
	padding: 8px 14px;
	font-size: 13px;
	font-weight: 700;
	color: #FFFFFF;
	background: var(--gsm-primary);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	clip-path: inset(50%);
	opacity: 0;
}

.gsm-testimonios .gsm-testimonios__pause:focus-visible {
	clip-path: none;
	opacity: 1;
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 2px;
}

/* ---------- Popup del video ---------- */
html:has(.gsm-video-modal[open]) {
	overflow: hidden;
}

.gsm-video-modal {
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	color: #FFFFFF;
	background: transparent;
	border: 0;
	overflow: hidden;
}

.gsm-video-modal[open] {
	display: flex;
	align-items: center;
	justify-content: center;
	animation: gsm-modal-in .3s var(--gsm-ease);
}

.gsm-video-modal::backdrop {
	background: rgba(8, 18, 48, .86);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

.gsm-video-modal__box {
	position: relative;
	height: min(84vh, 800px);
	max-width: calc(100vw - 32px);
	aspect-ratio: 9 / 16;
}

.gsm-video-modal[data-platform="instagram"] .gsm-video-modal__box {
	aspect-ratio: 9 / 18;
}

.gsm-video-modal__frame {
	position: absolute;
	inset: 0;
	overflow: hidden;
	background: #000000;
	border-radius: 20px;
	box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .6);
}

.gsm-video-modal[data-platform="instagram"] .gsm-video-modal__frame {
	background: #FFFFFF;
}

.gsm-video-modal__frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.gsm-video-modal .gsm-video-modal__close {
	position: absolute;
	top: 0;
	right: -60px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	color: var(--gsm-dark);
	background: #FFFFFF;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	transition: transform .2s ease, background-color .2s ease;
}

.gsm-video-modal__close svg {
	width: 16px;
	height: 16px;
}

.gsm-video-modal .gsm-video-modal__ext,
.gsm-video-modal .gsm-video-modal__ext:hover {
	position: absolute;
	left: 50%;
	bottom: -40px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: #FFFFFF;
	white-space: nowrap;
	text-decoration: none;
	transform: translateX(-50%);
}

.gsm-video-modal__ext .gsm-icon {
	width: 11px;
	height: 11px;
	color: var(--gsm-secondary);
}

.gsm-video-modal .gsm-video-modal__close:focus-visible,
.gsm-video-modal .gsm-video-modal__ext:focus-visible {
	outline: 3px solid var(--gsm-secondary);
	outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
	.gsm-video-modal .gsm-video-modal__close:hover {
		transform: rotate(90deg);
	}

	.gsm-video-modal .gsm-video-modal__ext:hover span {
		text-decoration: underline;
	}
}

@keyframes gsm-modal-in {
	from {
		opacity: 0;
		transform: scale(.96);
	}
}

/* ---------- Home: tablet ---------- */
@media (max-width: 1024px) {
	.gsm-title.gsm-title--home {
		font-size: 40px;
	}

	/* 2 × 2: en una fila no caben y 3 + 1 queda cojo. */
	.gsm-cifras--band .gsm-cifras__list.gsm-cifras__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 40px;
		max-width: 720px;
		margin-inline: auto;
		padding: 36px 20px;
	}

	.gsm-cifras--band .gsm-cifras__valor.gsm-cifras__valor {
		font-size: 40px;
	}

	.gsm-cifras__circle--a {
		top: auto;
		bottom: -150px;
		right: -110px;
	}

	.gsm-cifras__circle--b {
		display: none;
	}

	.gsm-testimonios {
		--t-gap: 24px;
		--t-per: 3;
	}
}

/* ---------- Home: móvil ---------- */
@media (max-width: 767px) {
	.gsm-title.gsm-title--home {
		font-size: 30px;
	}

	.gsm-section-head--home .gsm-section-head__subtitle {
		font-size: 15px;
	}

	.gsm-section-head--home .gsm-section-head__link,
	.gsm-section-head--home .gsm-section-head__link:hover,
	.gsm-section-head--home .gsm-section-head__link:focus {
		font-size: 14px;
	}

	.gsm-home-ciclos__filters {
		gap: 20px;
	}

	.gsm-unis {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		width: 100%;
		max-width: 416px;
	}

	.gsm-explorer .gsm-uni {
		width: 100%;
		height: 56px;
	}

	.gsm-uni .gsm-uni__logo.gsm-uni__logo {
		max-width: 100%;
		max-height: 40px;
	}

	.gsm-explorer--home .gsm-explorer__grid {
		gap: 20px;
		margin-top: 32px;
	}

	.gsm-home-ciclos__more {
		margin-top: 28px;
	}

	.gsm-explorer--home .gsm-explorer__empty {
		margin-top: 32px;
	}

	.gsm-cifras--band .gsm-cifras__list.gsm-cifras__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 16px;
		padding: 32px 20px;
	}

	.gsm-cifras--band .gsm-cifras__valor.gsm-cifras__valor {
		font-size: 36px;
	}

	.gsm-cifras--band .gsm-cifras__texto.gsm-cifras__texto {
		font-size: 14px;
		line-height: 1.35;
	}

	.gsm-cifras__circle--a {
		top: auto;
		bottom: -150px;
		right: -110px;
	}

	.gsm-testimonios {
		--t-gap: 16px;
	}

	.gsm-testimonio {
		flex-basis: 58%;
	}

	.gsm-testimonios__viewport {
		-webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), transparent 100%);
		mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), transparent 100%);
	}

	.gsm-video-modal__box {
		width: 100vw;
		height: 100dvh;
		max-width: none;
		aspect-ratio: auto;
	}

	.gsm-video-modal[data-platform="instagram"] .gsm-video-modal__box {
		aspect-ratio: auto;
	}

	.gsm-video-modal__frame {
		inset: 0 0 56px;
		border-radius: 0;
	}

	.gsm-video-modal .gsm-video-modal__close {
		top: 12px;
		right: 12px;
		z-index: 2;
		box-shadow: 0 6px 18px -6px rgba(0, 0, 0, .5);
	}

	.gsm-video-modal .gsm-video-modal__ext,
	.gsm-video-modal .gsm-video-modal__ext:hover {
		bottom: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gsm-hero-slider *,
	.gsm-unis *,
	.gsm-uni,
	.gsm-more-btn,
	.gsm-more-btn *,
	.gsm-section-head__link *,
	.gsm-testimonios *,
	.gsm-banner *,
	.gsm-video-modal,
	.gsm-video-modal * {
		transition: none !important;
		animation: none !important;
	}
}
