/* ------------------------------------------------------------------
   Variables. El verde del diseño (#3F8F58) no alcanza contraste AA con
   texto blanco (3.9:1); se usa #2E7D46 (5.1:1).
------------------------------------------------------------------- */
:root {
	--st-verde: #2e7d46;
	--st-verde-oscuro: #1f5c33;
	--st-verde-claro: #e3efe6;
	--st-texto: #1b1b1b;
	--st-gris: #4a4a4a;
	--st-blanco: #fff;
	--st-govco: #3366cc;
	--st-radio: 22px;
	--st-sombra: 0 6px 18px rgba(0, 0, 0, 0.14);
	--st-fuente: "Poppins", "Helvetica Neue", Arial, sans-serif;
}

body.sharrys-tech,
body.sharrys-tech .fusion-main-menu > ul > li > a,
body.sharrys-tech h1,
body.sharrys-tech h2,
body.sharrys-tech h3,
body.sharrys-tech .fusion-button {
	font-family: var(--st-fuente);
}

.st-contenedor {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px 24px;
	max-width: 1248px;
	margin: 0 auto;
	padding: 0 24px;
}

/* Foco visible en todo el sitio (WCAG 2.4.7). */
body.sharrys-tech a:focus-visible,
body.sharrys-tech button:focus-visible,
body.sharrys-tech input:focus-visible,
body.sharrys-tech [tabindex]:focus-visible {
	outline: 3px solid #ffbf47;
	outline-offset: 2px;
}

.st-saltar {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	padding: 12px 20px;
	background: var(--st-blanco);
	color: var(--st-verde-oscuro);
	font-weight: 600;
}

.st-saltar:focus {
	left: 8px;
	top: 8px;
}

/* ------------------------------------------------------------------
   Barra GOV.CO y barra de utilidades
------------------------------------------------------------------- */
.st-govco {
	background: var(--st-govco);
	padding: 8px 0;
}

.st-govco a {
	display: inline-flex;
}

.st-govco img {
	display: block;
	height: 30px;
	width: auto;
	min-width: 110px;
	max-width: none;
}

.st-govco--pie .st-contenedor {
	gap: 24px;
	padding-top: 10px;
	padding-bottom: 10px;
}

.st-utilidades {
	background: var(--st-verde);
	color: var(--st-blanco);
	font-size: 0.875rem;
	padding: 6px 0;
}

.st-utilidades__emergencia {
	margin: 0;
	margin-right: auto;
	font-weight: 600;
}

.st-utilidades a,
.st-utilidades button {
	color: var(--st-blanco);
	font: inherit;
}

.st-buscar {
	display: flex;
	gap: 4px;
}

.st-buscar input[type="search"] {
	width: 150px;
	height: 32px;
	padding: 0 10px;
	border: 1px solid var(--st-blanco);
	border-radius: 6px;
	background: var(--st-blanco);
	color: var(--st-texto);
}

.st-buscar button,
.st-a11y button,
.st-a11y a {
	min-height: 32px;
	padding: 4px 10px;
	border: 1px solid var(--st-blanco);
	border-radius: 6px;
	background: transparent;
	cursor: pointer;
	text-decoration: none;
	line-height: 1.4;
}

.st-buscar button:hover,
.st-a11y button:hover,
.st-a11y a:hover,
.st-a11y button[aria-pressed="true"] {
	background: var(--st-blanco);
	color: var(--st-verde-oscuro);
}

.st-a11y {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.st-redes {
	display: flex;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.st-redes a {
	text-decoration: underline;
}

/* ------------------------------------------------------------------
   Cabecera principal
------------------------------------------------------------------- */
.st-cabecera {
	position: relative;
	z-index: 1000;
	background: var(--st-blanco);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.st-cabecera .st-contenedor {
	flex-wrap: nowrap;
	justify-content: space-between;
	min-height: 96px;
	max-width: 1400px;
}

.st-logo {
	flex: 0 0 auto;
	color: var(--st-verde-oscuro);
	font-weight: 700;
	text-decoration: none;
}

.st-logo img {
	display: block;
	width: auto;
	max-width: 220px;
	max-height: 76px;
}

.st-menu {
	display: flex;
	align-items: center;
	gap: 12px;
}

.st-menu ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.st-menu__lista {
	display: flex;
	align-items: center;
	gap: 2px;
}

.st-menu__lista li {
	position: relative;
}

.st-menu__lista > li {
	display: flex;
	align-items: center;
}

.st-menu__lista a {
	display: block;
	padding: 10px 6px;
	color: var(--st-texto);
	font-size: 15px;
	line-height: 1.25;
	text-decoration: none;
}

.st-menu__lista > li > a {
	max-width: 200px;
	text-align: center;
}

.st-menu__lista a:hover,
.st-menu__lista .current-menu-item > a,
.st-menu__lista .current-menu-ancestor > a {
	color: var(--st-verde);
	text-decoration: underline;
}

.st-menu__abrir {
	flex: 0 0 auto;
	width: 18px;
	height: 32px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.st-menu__abrir::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	border-right: 2px solid var(--st-verde);
	border-bottom: 2px solid var(--st-verde);
	transform: rotate(45deg) translateY(-3px);
}

.st-menu__lista .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1001;
	min-width: 260px;
	max-height: 75vh;
	overflow-y: auto;
	padding: 8px 0;
	border-top: 3px solid var(--st-verde);
	border-radius: 0 0 10px 10px;
	background: var(--st-blanco);
	box-shadow: var(--st-sombra);
}

.st-menu__lista > li:last-child > .sub-menu,
.st-menu__lista > li:nth-last-child(2) > .sub-menu {
	left: auto;
	right: 0;
}

.st-menu__lista .sub-menu a {
	padding: 9px 16px;
	font-size: 0.875rem;
}

.st-menu__lista .sub-menu .sub-menu {
	position: static;
	display: block;
	max-height: none;
	padding: 0 0 0 14px;
	border: 0;
	box-shadow: none;
}

.st-menu__lista .sub-menu .st-menu__abrir {
	display: none;
}

.st-menu__lista li:hover > .sub-menu,
.st-menu__lista li:focus-within > .sub-menu,
.st-menu__lista li.st-abierto > .sub-menu {
	display: block;
}

.st-cita {
	flex: 0 0 auto;
	padding: 10px 22px;
	border-radius: 8px;
	background: var(--st-verde);
	color: var(--st-blanco);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.st-cita:hover,
.st-cita:focus {
	background: var(--st-verde-oscuro);
	color: var(--st-blanco);
}

.st-menu-boton {
	display: none;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 8px 14px;
	border: 2px solid var(--st-verde);
	border-radius: 8px;
	background: var(--st-blanco);
	color: var(--st-verde-oscuro);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.st-menu-boton__icono,
.st-menu-boton__icono::before,
.st-menu-boton__icono::after {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--st-verde-oscuro);
}

.st-menu-boton__icono {
	position: relative;
}

.st-menu-boton__icono::before,
.st-menu-boton__icono::after {
	content: "";
	position: absolute;
	left: 0;
}

.st-menu-boton__icono::before {
	top: -6px;
}

.st-menu-boton__icono::after {
	top: 6px;
}

@media (max-width: 1100px) {
	.st-menu-boton {
		display: inline-flex;
	}

	.st-menu {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		max-height: 80vh;
		overflow-y: auto;
		padding: 12px 24px 20px;
		background: var(--st-blanco);
		box-shadow: var(--st-sombra);
	}

	.st-menu--abierto {
		display: flex;
	}

	.st-menu__lista {
		flex-direction: column;
		align-items: stretch;
	}

	.st-menu__lista > li {
		flex-wrap: wrap;
		border-bottom: 1px solid #dfe7e1;
	}

	.st-menu__lista > li > a {
		flex: 1;
		max-width: none;
		padding: 14px 0;
		text-align: left;
	}

	.st-menu__abrir {
		width: 44px;
		height: 44px;
	}

	.st-menu__lista .sub-menu {
		position: static;
		flex: 1 1 100%;
		max-height: none;
		border: 0;
		box-shadow: none;
	}

	.st-menu__lista li:hover > .sub-menu {
		display: none;
	}

	.st-menu__lista li.st-abierto > .sub-menu,
	.st-menu__lista .sub-menu .sub-menu {
		display: block;
	}

	.st-cita {
		margin-top: 12px;
		text-align: center;
	}
}

/* ------------------------------------------------------------------
   Pie de página
------------------------------------------------------------------- */
.st-pie__contenido {
	background: var(--st-verde);
	color: var(--st-blanco);
	font-size: 0.9375rem;
}

.sharrys-tech .st-pie__contenido p,
.sharrys-tech .st-pie__contenido li,
.sharrys-tech .st-pie__contenido strong,
.sharrys-tech .st-pie__contenido a,
.sharrys-tech .st-pie__titulo h2 {
	color: var(--st-blanco);
}

body.sharrys-tech #wrapper .st-pie__titulo h2 {
	color: var(--st-blanco);
	font-size: 1.125rem !important;
	font-weight: 700;
	line-height: 1.3 !important;
}

.st-pie__contenido p {
	margin-bottom: 8px;
}

.st-govco__co {
	color: var(--st-blanco);
	font-size: 1.25rem;
	font-weight: 700;
	text-decoration: none;
}

.st-govco__co span {
	font-size: 0.8125rem;
	font-weight: 400;
}

.sharrys-tech .st-pie__contenido a {
	text-decoration: underline;
}

.sharrys-tech .st-pie__contenido ul {
	margin: 0;
	padding-left: 18px;
}

.sharrys-tech .st-pie__contenido li {
	margin-bottom: 6px;
}

/* ------------------------------------------------------------------
   Alto contraste (botón "Contraste")
------------------------------------------------------------------- */
/* ------------------------------------------------------------------
   Móvil y preferencias del usuario
------------------------------------------------------------------- */
@media (max-width: 800px) {
	.st-utilidades__emergencia {
		width: 100%;
	}

	.st-buscar {
		flex: 1 1 100%;
	}

	.st-buscar input[type="search"] {
		flex: 1;
		width: auto;
	}

	.sharrys-tech .st-acceso.fusion-button {
		min-height: 64px;
	}

	.sharrys-tech .st-cifras__tarjeta .fusion-counters-box {
		grid-template-columns: repeat(2, 1fr);
	}

	.sharrys-tech .st-noticias__lista .fusion-posts-container {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sharrys-tech * {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}


/* ==================================================================
   Portal Laravel
=================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--st-blanco);
	color: var(--st-texto);
	font-family: var(--st-fuente);
	font-size: 1rem;
	line-height: 1.6;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--st-verde-oscuro);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

#main:focus {
	outline: none;
}

.p-contenedor {
	max-width: 1248px;
	margin: 0 auto;
	padding: 0 24px;
}

.p-seccion {
	padding: 56px 0;
}

.p-seccion--clara {
	background: var(--st-verde-claro);
}

.p-titulo {
	margin: 0 0 12px;
	color: var(--st-verde);
	font-size: clamp(1.75rem, 3vw, 2.75rem);
	font-weight: 700;
	line-height: 1.15;
}

.p-titulo--centro {
	margin-bottom: 32px;
	text-align: center;
}

.p-boton {
	display: inline-block;
	min-height: 44px;
	padding: 10px 26px;
	border: 2px solid var(--st-verde);
	border-radius: 8px;
	background: var(--st-verde);
	color: var(--st-blanco);
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.p-boton:hover,
.p-boton:focus {
	border-color: var(--st-verde-oscuro);
	background: var(--st-verde-oscuro);
	color: var(--st-blanco);
}

.p-boton--borde {
	border-color: var(--st-blanco);
	background: rgba(0, 0, 0, 0.35);
}

.p-boton--borde-verde {
	background: var(--st-blanco);
	color: var(--st-verde-oscuro);
}

.p-boton--bloque {
	display: block;
	margin-top: auto;
	padding: 8px 16px;
	text-align: center;
}

/* Portada */
.p-hero {
	position: relative;
	padding: 140px 0;
	background: var(--st-verde-oscuro) center / cover no-repeat;
	color: var(--st-blanco);
	text-align: center;
}

.p-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.p-hero .p-contenedor {
	position: relative;
}

.p-hero h1 {
	margin: 0 0 16px;
	font-size: clamp(2rem, 5vw, 4.25rem);
	font-weight: 700;
	line-height: 1.1;
}

.p-hero p {
	max-width: 660px;
	margin: 0 auto 28px;
	font-size: clamp(1rem, 1.4vw, 1.1875rem);
}

.p-hero__botones {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
}

.p-accesos,
.p-cifras,
.p-tarjetas,
.p-sitios,
.p-resultados {
	margin: 0;
	padding: 0;
	list-style: none;
}

.p-accesos {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	margin-top: 24px;
}

.p-accesos a {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 96px;
	padding: 16px 18px;
	border: 2px solid var(--st-verde);
	border-radius: 14px;
	color: var(--st-verde-oscuro);
	font-weight: 600;
	line-height: 1.25;
	text-decoration: none;
}

.p-accesos svg {
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	fill: none;
	stroke: var(--st-verde);
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.p-accesos a:hover,
.p-accesos a:focus {
	background: var(--st-verde);
	color: var(--st-blanco);
}

.p-accesos a:hover svg,
.p-accesos a:focus svg {
	stroke: var(--st-blanco);
}

.p-cifras {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px 16px;
	margin-top: 48px;
	padding: 56px 24px;
	overflow: hidden;
	border-radius: var(--st-radio);
	background: var(--st-verde-oscuro) center / cover no-repeat;
	color: var(--st-blanco);
	text-align: center;
}

.p-cifras::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(31, 92, 51, 0.82);
}

.p-cifras li {
	position: relative;
}

.p-cifras strong {
	display: block;
	font-size: 3.5rem;
	line-height: 1.1;
}

.p-cifras span {
	font-weight: 600;
}

.p-tarjetas {
	display: grid;
	gap: 24px;
	margin-top: 24px;
}

.p-tarjetas--3 {
	grid-template-columns: repeat(3, 1fr);
}

.p-tarjetas--4 {
	grid-template-columns: repeat(4, 1fr);
}

.p-tarjeta {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: var(--st-radio);
	background: var(--st-blanco);
	box-shadow: var(--st-sombra);
}

.p-tarjeta > img {
	display: block;
	width: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
}

.p-tarjeta--servicio h3 {
	margin: 0;
	padding: 18px 14px 22px;
	font-size: 1.25rem;
	line-height: 1.2;
	text-align: center;
}

.p-tarjeta__cuerpo {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 8px;
	padding: 22px 26px 26px;
}

.p-tarjeta__cuerpo h2,
.p-tarjeta__cuerpo h3 {
	margin: 0;
	font-size: 1.125rem;
	line-height: 1.3;
}

.p-tarjeta__cuerpo h2 a,
.p-tarjeta__cuerpo h3 a {
	color: var(--st-texto);
	text-decoration: none;
}

.p-tarjeta__cuerpo h2 a:hover,
.p-tarjeta__cuerpo h3 a:hover {
	color: var(--st-verde);
	text-decoration: underline;
}

.p-tarjeta__cuerpo time,
.p-tarjeta__cuerpo p,
.p-meta,
.p-resultados time {
	margin: 0;
	color: var(--st-gris);
	font-size: 0.875rem;
}

.p-vermas {
	margin: 24px 0 0;
	text-align: right;
}

.p-vermas a {
	font-weight: 700;
	text-decoration: none;
}

.p-vermas a:hover {
	text-decoration: underline;
}

.p-sitios {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	align-items: center;
	gap: 24px;
	margin-top: 32px;
}

.p-sitios img {
	display: block;
	max-height: 90px;
	margin: 0 auto;
	object-fit: contain;
}

/* Páginas interiores */
.p-migas {
	margin-bottom: 16px;
	color: var(--st-gris);
	font-size: 0.875rem;
}

.p-meta {
	margin-bottom: 24px;
}

.p-contenido {
	overflow-wrap: anywhere;
}

.p-contenido iframe {
	max-width: 100%;
}

.p-contenido table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
}

.p-contenido th,
.p-contenido td {
	padding: 8px 12px;
	border: 1px solid #cfd8d2;
	text-align: left;
	vertical-align: top;
}

.p-contenido th {
	background: var(--st-verde-claro);
}

/* Compatibilidad con la maquetación que traen las páginas hechas en Avada. */
.p-contenido .fusion-fullwidth {
	padding: 0 !important;
	margin: 0 0 24px !important;
}

.p-contenido .fusion-builder-row {
	display: flex;
	flex-wrap: wrap;
	gap: 24px 4%;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.p-contenido .fusion-layout-column {
	flex: 1 1 100%;
	min-width: 0;
	margin: 0 !important;
}

.p-contenido .fusion_builder_column_1_2 { flex-basis: 48%; }
.p-contenido .fusion_builder_column_1_3 { flex-basis: 30.66%; }
.p-contenido .fusion_builder_column_2_3 { flex-basis: 65.33%; }
.p-contenido .fusion_builder_column_1_4 { flex-basis: 22%; }
.p-contenido .fusion_builder_column_3_4 { flex-basis: 74%; }
.p-contenido .fusion_builder_column_1_5 { flex-basis: 16.8%; }
.p-contenido .fusion_builder_column_2_5 { flex-basis: 37.6%; }
.p-contenido .fusion_builder_column_3_5 { flex-basis: 58.4%; }

.p-contenido .fusion-button {
	display: inline-block;
	margin: 4px 0;
	padding: 10px 22px;
	border-radius: 8px;
	background: var(--st-verde);
	color: var(--st-blanco);
	font-weight: 600;
	text-decoration: none;
}

.p-contenido .fusion-button:hover,
.p-contenido .fusion-button:focus {
	background: var(--st-verde-oscuro);
}

.p-contenido .fusion-button .fusion-button-text {
	color: inherit;
}

.p-contenido .fusion-clearfix::after {
	content: "";
	display: table;
	clear: both;
}

.p-buscador {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 16px 0 24px;
}

.p-buscador input {
	flex: 1 1 260px;
	min-height: 44px;
	padding: 8px 12px;
	border: 2px solid var(--st-verde);
	border-radius: 8px;
	font: inherit;
}

.p-resultados li {
	padding: 12px 0;
	border-bottom: 1px solid #dfe7e1;
}

.p-resultados time {
	display: block;
}

.p-paginacion {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 32px;
}

/* Pie */
.p-pie {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	padding-top: 56px;
	padding-bottom: 40px;
}

.p-pie h2 {
	margin: 0 0 10px;
	color: var(--st-blanco);
	font-size: 1.125rem;
}

.st-pie__contenido p,
.st-pie__contenido li,
.st-pie__contenido a {
	color: var(--st-blanco);
}

.st-pie__contenido p {
	margin: 0 0 8px;
}

@media (max-width: 1000px) {
	.p-accesos {
		grid-template-columns: repeat(2, 1fr);
	}

	.p-tarjetas--3,
	.p-tarjetas--4,
	.p-cifras,
	.p-pie {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.p-hero {
		padding: 80px 0;
	}

	.p-accesos,
	.p-tarjetas--3,
	.p-tarjetas--4,
	.p-pie {
		grid-template-columns: 1fr;
	}

	.p-contenido .fusion-layout-column {
		flex-basis: 100% !important;
	}
}

/* ==================================================================
   Menú de la barra verde
=================================================================== */
.st-utilidades {
	position: relative;
	z-index: 1002;
}

.st-utilidades .st-contenedor {
	max-width: 1400px;
}

.st-menu-sup .st-menu__lista > li > a {
	max-width: none;
	padding: 6px 4px 6px 10px;
	color: var(--st-blanco);
	font-size: 0.875rem;
	font-weight: 600;
	white-space: nowrap;
}

.st-menu-sup .st-menu__lista > li > a:hover {
	color: var(--st-blanco);
}

.st-menu-sup .st-menu__lista > li > .st-menu__abrir::before {
	border-color: var(--st-blanco);
}

.st-menu-sup .st-menu__lista > li > .sub-menu {
	left: auto;
	right: 0;
}

.st-menu__lista--movil {
	display: none;
}

@media (max-width: 1100px) {
	.st-menu-sup {
		display: none;
	}

	.st-menu__lista--movil {
		display: flex;
	}
}

/* ==================================================================
   Panel de accesibilidad
=================================================================== */
.a11y {
	--a11y-ancho: 300px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 15px;
	line-height: 1.3;
}

.a11y__abrir {
	position: fixed;
	top: 50%;
	right: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 56px;
	padding: 0;
	border: 2px solid #fff;
	border-right: 0;
	border-radius: 12px 0 0 12px;
	background: var(--st-verde-oscuro);
	box-shadow: -3px 0 16px rgba(0, 0, 0, 0.25);
	cursor: pointer;
	transform: translateY(-50%);
}

.a11y__abrir svg {
	width: 30px;
	height: 30px;
	fill: none;
	stroke: #fff;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.a11y__abrir circle {
	fill: #fff;
	stroke: none;
}

.a11y__panel {
	position: fixed;
	top: 12px;
	right: 0;
	bottom: 12px;
	z-index: 99998;
	display: flex;
	flex-direction: column;
	width: var(--a11y-ancho);
	max-width: calc(100vw - 16px);
	overflow: hidden;
	border-radius: 16px 0 0 16px;
	background: #fff;
	color: #1a1a1a;
	box-shadow: -6px 0 32px rgba(0, 0, 0, 0.3);
}

.a11y__panel[hidden] {
	display: none;
}

.a11y--abierto .a11y__abrir {
	right: var(--a11y-ancho);
}

.a11y__cabecera {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	background: var(--st-verde-oscuro);
	color: #fff;
}

.a11y__titulo {
	margin: 0;
}

.a11y__titulo strong,
.a11y__titulo span {
	display: block;
	color: #fff;
}

.a11y__titulo strong {
	font-size: 18px;
}

.a11y__titulo span {
	font-size: 12px;
}

.a11y__cerrar {
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}

.a11y__cuerpo {
	flex: 1;
	overflow-y: auto;
	padding: 4px 16px 16px;
}

.a11y__cuerpo h2 {
	margin: 16px 0 10px;
	padding-top: 14px;
	border-top: 1px solid #dcdcdc;
	color: #4a4a4a;
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.a11y__cuerpo h2:first-child {
	padding-top: 0;
	border-top: 0;
}

.a11y__texto {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 8px;
}

.a11y__texto output {
	padding: 8px 10px;
	border-radius: 8px;
	background: var(--st-verde-claro);
	color: var(--st-verde-oscuro);
	font-weight: 700;
}

.a11y__rejilla {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.a11y__texto button,
.a11y__rejilla button,
.a11y__restablecer {
	min-height: 44px;
	padding: 8px 6px;
	border: 2px solid #d9dcd9;
	border-radius: 12px;
	background: #f4f6f4;
	color: #1a1a1a;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.a11y__rejilla button {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	min-height: 68px;
}

.a11y__rejilla button span {
	font-size: 20px;
	line-height: 1;
}

.a11y__texto button:hover,
.a11y__rejilla button:hover,
.a11y__restablecer:hover {
	border-color: var(--st-verde);
}

.a11y__rejilla button[aria-pressed="true"] {
	border-color: var(--st-verde-oscuro);
	background: var(--st-verde-oscuro);
	color: #fff;
}

.a11y__texto button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.a11y__restablecer {
	width: 100%;
	margin-top: 16px;
}

.a11y__pie {
	margin: 14px 0 0;
	color: #4a4a4a;
	font-size: 12px;
	text-align: center;
}

.a11y__pie a,
.a11y__pie span {
	display: block;
	margin-bottom: 4px;
}

.a11y button:focus-visible,
.a11y a:focus-visible {
	outline: 3px solid #ffbf47;
	outline-offset: 2px;
}

.a11y__guia {
	position: fixed;
	left: 0;
	right: 0;
	z-index: 99997;
	display: none;
	height: 12px;
	margin-top: -6px;
	background: rgba(255, 191, 71, 0.55);
	border-top: 2px solid #1a1a1a;
	border-bottom: 2px solid #1a1a1a;
	pointer-events: none;
}

/* --- Efectos de cada ajuste (el panel no se ve afectado por los filtros) --- */
html.a11y-contraste {
	background: #000;
}

html.a11y-contraste body,
html.a11y-contraste body *:not(.a11y):not(.a11y *) {
	background-color: #000 !important;
	background-image: none !important;
	border-color: #fff !important;
	color: #fff !important;
	box-shadow: none !important;
}

html.a11y-contraste body a:not(.a11y *),
html.a11y-contraste body a:not(.a11y *) * {
	color: #ffff00 !important;
}

html.a11y-contraste body svg:not(.a11y *) {
	stroke: #fff !important;
}

html.a11y-claro body,
html.a11y-claro body *:not(.a11y):not(.a11y *) {
	background-color: #fff !important;
	background-image: none !important;
	border-color: #000 !important;
	color: #000 !important;
	box-shadow: none !important;
}

html.a11y-claro body a:not(.a11y *),
html.a11y-claro body a:not(.a11y *) * {
	color: #00289c !important;
	text-decoration: underline !important;
}

html.a11y-claro body svg:not(.a11y *) {
	stroke: #000 !important;
}

html.a11y-grises body > *:not(.a11y):not(.a11y__guia) {
	filter: grayscale(1);
}

html.a11y-invertir body > *:not(.a11y):not(.a11y__guia) {
	filter: invert(1) hue-rotate(180deg);
}

html.a11y-invertir body > *:not(.a11y) img {
	filter: invert(1) hue-rotate(180deg);
}

html.a11y-invertir {
	background: #000;
}

html.a11y-dislexia body *:not(.a11y):not(.a11y *) {
	font-family: "OpenDyslexic", "Comic Sans MS", Verdana, Arial, sans-serif !important;
}

html.a11y-espaciado body *:not(.a11y):not(.a11y *) {
	letter-spacing: 0.12em !important;
	word-spacing: 0.16em !important;
	line-height: 1.8 !important;
}

html.a11y-subrayar body a:not(.a11y *) {
	text-decoration: underline !important;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 3px;
}

html.a11y-guia .a11y__guia {
	display: block;
}

html.a11y-cursor,
html.a11y-cursor * {
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 11h-7l4 8-3 1.500-4-8-5 5z' fill='%23000' stroke='%23fff' stroke-width='1.500'/%3E%3C/svg%3E") 6 2, auto !important;
}

html.a11y-animaciones *,
html.a11y-animaciones *::before,
html.a11y-animaciones *::after {
	animation: none !important;
	transition: none !important;
	scroll-behavior: auto !important;
}

html.a11y-foco *:focus {
	outline: 4px solid #ff6a00 !important;
	outline-offset: 3px !important;
}

html.a11y-titulos body :is(h1, h2, h3, h4, h5, h6):not(.a11y *) {
	outline: 3px dashed #c2410c !important;
	outline-offset: 4px;
}

@media (max-width: 480px) {
	.a11y {
		--a11y-ancho: 280px;
	}
}

/* Barra verde en una sola línea en escritorio */
@media (min-width: 1101px) {
	.st-utilidades .st-contenedor {
		flex-wrap: nowrap;
		gap: 16px;
	}

	.st-utilidades__emergencia {
		flex: 0 1 auto;
		min-width: 0;
		font-size: 0.8125rem;
		line-height: 1.3;
	}

	.st-menu-sup {
		flex: 0 0 auto;
	}

	.st-menu-sup .st-menu__lista > li > a {
		font-size: 0.8125rem;
	}

	.st-utilidades .st-buscar {
		flex: 0 0 auto;
	}

	.st-utilidades .st-buscar input[type="search"] {
		width: 120px;
	}
}

/* Deja libre el borde derecho, donde va el botón flotante de accesibilidad. */
.st-cabecera .st-contenedor,
.st-utilidades .st-contenedor {
	padding-right: 64px;
}

/* ==================================================================
   Cabecera v3: barra verde con menús de ley y redes; buscador en la blanca
=================================================================== */
.st-utilidades .st-contenedor {
	justify-content: space-between;
	position: relative;
}

.st-menu-sup {
	flex: 1 1 auto;
}

.st-menu-sup .st-menu__lista {
	gap: 18px;
}

.st-menu__grupo {
	display: block;
	padding: 10px 6px;
	color: var(--st-texto);
	font-size: 15px;
	line-height: 1.25;
	cursor: default;
}

.st-menu-sup .st-menu__lista > li > .st-menu__grupo {
	padding: 6px 4px 6px 10px;
	color: var(--st-blanco);
	font-size: 0.8125rem;
	font-weight: 600;
	white-space: nowrap;
}

.st-menu__lista .sub-menu .st-menu__grupo {
	padding: 9px 16px 2px;
	color: var(--st-verde-oscuro);
	font-size: 0.875rem;
	font-weight: 700;
}

.st-menu-sup .st-menu__lista > li > .sub-menu {
	left: 0;
	right: auto;
}

/* Menú amplio en columnas (Transparencia). */
.st-menu__lista > li.st-mega {
	position: static;
}

.st-menu__lista > li.st-mega > .sub-menu {
	left: 24px;
	right: 24px;
	columns: 3 280px;
	column-gap: 28px;
	max-height: 78vh;
	padding: 16px 12px;
}

.st-menu__lista > li.st-mega > .sub-menu > li {
	break-inside: avoid;
	margin-bottom: 6px;
}

.st-menu__lista > li.st-mega > .sub-menu > li > a,
.st-menu__lista > li.st-mega > .sub-menu > li > .st-menu__grupo {
	color: var(--st-verde-oscuro);
	font-weight: 700;
}

.st-menu__lista > li.st-mega .sub-menu .sub-menu a {
	padding: 5px 16px;
	font-size: 0.8125rem;
}

.st-redes {
	flex: 0 0 auto;
	align-items: center;
	gap: 8px;
}

.st-redes a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--st-blanco);
}

.st-redes svg {
	width: 20px;
	height: 20px;
	fill: var(--st-verde-oscuro);
}

.st-redes__texto {
	font-size: 0.8125rem;
	font-weight: 600;
}

.st-logo img {
	max-width: 180px;
	max-height: 84px;
}

.st-buscar-boton {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 8px 12px;
	border: 2px solid var(--st-verde);
	border-radius: 8px;
	background: var(--st-blanco);
	color: var(--st-verde-oscuro);
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

.st-buscar-boton svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
}

.st-buscar-boton:hover,
.st-buscar-boton[aria-expanded="true"] {
	background: var(--st-verde);
	color: var(--st-blanco);
}

.st-buscar-panel {
	border-top: 1px solid #dfe7e1;
	background: var(--st-verde-claro);
}

.st-buscar-panel[hidden] {
	display: none;
}

.st-buscar-panel .st-buscar {
	min-height: 0;
	padding-top: 14px;
	padding-bottom: 14px;
	justify-content: flex-start;
	gap: 12px;
}

.st-buscar-panel label {
	font-weight: 600;
}

.st-buscar-panel input[type="search"] {
	flex: 1 1 240px;
	width: auto;
	height: 44px;
	border: 2px solid var(--st-verde);
}

/* Accesos rápidos con descripción */
.p-accesos {
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.p-accesos strong,
.p-accesos small {
	display: block;
}

.p-accesos small {
	margin-top: 2px;
	font-size: 0.8125rem;
	font-weight: 400;
}

.p-tarjeta--servicio h3 a {
	color: var(--st-texto);
	text-decoration: none;
}

.p-tarjeta--servicio h3 a:hover {
	color: var(--st-verde);
	text-decoration: underline;
}

@media (max-width: 1100px) {
	.st-utilidades .st-contenedor {
		justify-content: flex-end;
	}

	.st-menu__grupo {
		flex: 1;
		padding: 14px 0;
	}

	.st-menu__lista > li.st-mega > .sub-menu {
		columns: auto;
		padding: 0 0 8px;
	}

	.st-buscar-boton {
		margin-top: 12px;
		justify-content: center;
	}
}

@media (min-width: 1001px) {
	.p-accesos {
		grid-template-columns: repeat(3, 1fr);
	}
}

.st-logo img {
	max-height: 76px;
}

.st-utilidades {
	padding: 2px 0;
}

/* Contenido heredado de Avada: tablas con alto fijo y listas con ícono. */
.p-contenido table,
.p-contenido tr,
.p-contenido td,
.p-contenido th {
	height: auto !important;
}

.p-contenido .fusion-checklist {
	margin: 12px 0 24px;
	padding: 0;
	list-style: none;
}

.p-contenido .fusion-checklist .fusion-li-item {
	margin-bottom: 10px;
}

.p-contenido .fusion-checklist .icon-wrapper {
	display: none;
}

.p-contenido .fusion-checklist .fusion-li-item-content {
	margin-left: 0 !important;
	color: var(--st-texto) !important;
}

.p-contenido .fusion-checklist p {
	margin: 0;
}

.p-contenido .fusion-imageframe img {
	max-width: 100%;
	height: auto;
}

/* ==================================================================
   Formularios
=================================================================== */
.p-formulario {
	max-width: 760px;
	margin: 24px 0;
	padding: 24px;
	border: 1px solid #cfd8d2;
	border-radius: 14px;
	background: var(--st-blanco);
}

.p-formulario__nota {
	color: var(--st-gris);
	font-size: 0.875rem;
}

.p-campo {
	margin: 0 0 18px;
	padding: 0;
	border: 0;
}

.p-campo > label,
.p-campo > legend {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.p-campo input:not([type="checkbox"]):not([type="radio"]),
.p-campo select,
.p-campo textarea {
	width: 100%;
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid #6b776f;
	border-radius: 8px;
	background: var(--st-blanco);
	color: var(--st-texto);
	font: inherit;
}

.p-campo [aria-invalid="true"] {
	border: 2px solid #b3261e;
}

.p-campo small {
	display: block;
	margin-top: 4px;
	color: var(--st-gris);
}

.p-check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 6px;
	font-weight: 400;
}

.p-check input {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin-top: 3px;
}

.p-campo__error {
	margin: 6px 0 0;
	color: #b3261e;
	font-weight: 600;
}

.p-aviso {
	margin: 0 0 16px;
	padding: 14px 18px;
	border-left: 5px solid var(--st-gris);
	border-radius: 8px;
	background: #f1f3f1;
}

.p-aviso--ok {
	border-color: var(--st-verde);
	background: var(--st-verde-claro);
}

.p-aviso--error {
	border-color: #b3261e;
	background: #fdecea;
}

.p-aviso ul {
	margin: 6px 0 0;
	padding-left: 20px;
}

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

.p-campo > label.p-check {
	font-weight: 400;
}

/* ==================================================================
   Pie de página (contenido completo)
=================================================================== */
.p-pie {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 32px 40px;
}

.p-pie h2 {
	margin: 0 0 18px;
	font-size: 1rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.p-pie h2:not(:first-child) {
	margin-top: 28px;
}

.p-pie h3 {
	margin: 16px 0 6px;
	color: var(--st-blanco);
	font-size: 0.9375rem;
}

.p-pie h2 + h3 {
	margin-top: 0;
}

.p-pie__lista {
	margin: 0;
	padding: 0;
	list-style: none;
}

.st-pie__contenido .p-pie__item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 12px;
	overflow-wrap: anywhere;
}

.p-pie__item svg {
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	margin-top: 3px;
	fill: none;
	stroke: var(--st-blanco);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.p-pie__item svg.p-pie__relleno {
	fill: var(--st-blanco);
	stroke: none;
}

.p-pie__mapa {
	display: block;
	width: 100%;
	height: 190px;
	border: 2px solid var(--st-blanco);
	border-radius: 10px;
	background: var(--st-verde-claro);
}

.p-pie__inferior {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding-top: 18px;
	padding-bottom: 18px;
	color: var(--st-blanco);
	text-align: center;
}

.p-pie__inferior p {
	margin: 0;
	font-size: 0.875rem;
}

.p-pie__logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 16px 48px;
	margin-bottom: 8px;
}

.p-pie__sello {
	color: var(--st-blanco);
	font-size: 1.125rem;
	text-decoration: none;
}

.p-pie__autor {
	opacity: 0.9;
}

@media (max-width: 1000px) {
	.p-pie {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.p-pie {
		grid-template-columns: 1fr;
	}
}

.st-pie__contenido .p-pie__lista {
	padding-left: 0;
}

.p-pie__mapa + p {
	margin: 8px 0 16px;
}

/* ==================================================================
   Bloques del constructor visual
=================================================================== */
.b-seccion {
	padding: 48px 0;
}

.b-seccion--clara {
	background: var(--st-verde-claro);
}

.b-contenedor {
	max-width: 1248px;
	margin: 0 auto;
	padding: 0 24px;
}

.b-fila {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin: 0 0 24px;
}

/* Columnas o tarjetas puestas fuera de un contenedor: se centran igual que el resto. */
.p-pagina--constructor > .b-fila,
.p-pagina--constructor > .p-tarjetas,
.c-lienzo-cuerpo > .b-fila,
.c-lienzo-cuerpo > .p-tarjetas,
.b-seccion > .b-fila,
.b-seccion > .p-tarjetas {
	max-width: 1248px;
	margin-right: auto;
	margin-left: auto;
	padding-right: 24px;
	padding-left: 24px;
}

.b-col > img { display: block; width: 100%; height: auto; border-radius: var(--st-radio); }

.b-col {
	flex: 1 1 220px;
	min-width: 0;
	min-height: 40px;
}

.b-espacio {
	height: 48px;
}

.b-separador {
	margin: 32px 0;
	border: 0;
	border-top: 2px solid var(--st-verde-claro);
}

.b-titulo {
	color: var(--st-verde);
}

.b-documentos {
	padding: 0;
	list-style: none;
}

.b-documentos li {
	padding: 10px 0 10px 32px;
	border-bottom: 1px solid #dfe7e1;
	background: no-repeat left center / 20px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232e7d46' stroke-width='2'%3E%3Cpath d='M7 3h8l4 4v14H7zM15 3v4h4'/%3E%3C/svg%3E");
}

.b-tabla {
	width: 100%;
	border-collapse: collapse;
}

.b-tabla th,
.b-tabla td {
	padding: 10px 12px;
	border: 1px solid #cfd8d2;
	text-align: left;
}

.b-tabla th {
	background: var(--st-verde-claro);
}

.p-pagina--constructor .p-contenido > :first-child {
	margin-top: 0;
}

.p-hero .p-hero__titulo {
	margin: 0 0 16px;
	color: var(--st-blanco);
	font-size: clamp(2rem, 5vw, 4.25rem);
	font-weight: 700;
	line-height: 1.1;
}

.b-incrustado {
	margin: 24px auto;
	max-width: 1248px;
	padding: 48px 24px;
	border: 2px dashed var(--st-verde);
	border-radius: 14px;
	background: var(--st-verde-claro);
	color: var(--st-verde-oscuro);
	font-weight: 600;
	text-align: center;
}

/* Lienzo del constructor: margen alrededor del contenido. */
.c-lienzo-cuerpo {
	min-height: 100vh;
	margin: 0;
	background: #fff;
}

/* Barra de edición (solo con sesión iniciada) */
.p-edicion {
	position: sticky;
	top: 0;
	z-index: 100000;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	min-height: 40px;
	padding: 4px 16px;
	background: #1d2327;
	color: #fff;
	font: 14px/1.3 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

.p-edicion a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	border-radius: 6px;
	color: #fff;
	text-decoration: none;
}

.p-edicion a:hover {
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
}

.p-edicion .p-edicion__principal {
	background: var(--st-verde);
	font-weight: 700;
}

.p-edicion .p-edicion__principal:hover {
	background: var(--st-verde-oscuro);
}

.p-edicion svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.p-edicion__usuario {
	margin-left: auto;
	opacity: 0.75;
}

/* ==================================================================
   Lengua de señas en el menú: video arriba del desplegable
=================================================================== */
.st-menu__lista .st-con-senas > .sub-menu {
	min-width: 300px;
}

.st-menu__lista .st-senas-item {
	padding: 4px 12px 10px;
	border-bottom: 1px solid #dfe7e1;
	margin-bottom: 4px;
}

.st-senas-item video {
	display: block;
	width: 100%;
	max-width: 320px;
	height: auto;
	aspect-ratio: 16 / 9;
	border-radius: 8px;
	background: #e9ecea;
	object-fit: cover;
}

.st-senas-item--pendiente p {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 320px;
	margin: 0;
	padding: 0 16px;
	aspect-ratio: 16 / 9;
	border: 2px dashed #b9c9be;
	border-radius: 8px;
	background: var(--st-verde-claro);
	color: var(--st-verde-oscuro);
	font-size: 0.875rem;
	font-weight: 600;
	text-align: center;
}

/* En el menú de Transparencia (columnas) el video ocupa la primera columna completa. */
.st-menu__lista > li.st-mega > .sub-menu > .st-senas-item {
	break-inside: avoid;
}

/* ==================================================================
   Botón flotante de WhatsApp (agenda de citas)
   Colores oscurecidos frente al diseño original para que el texto
   blanco cumpla el contraste AA.
=================================================================== */
.p-whatsapp {
	--circulo: 58px;
	--alto: 62px;
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 10px;
	height: var(--alto);
	padding: 0 18px 0 calc(var(--circulo) + 18px);
	border-radius: 999px;
	background: linear-gradient(135deg, #2e7d46, #1f5c33);
	box-shadow: 0 10px 24px rgba(31, 92, 51, 0.35);
	color: #fff;
	font-family: var(--st-fuente);
	text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	animation: p-wa-entrada 0.6s ease-out both;
}

.p-whatsapp:hover,
.p-whatsapp:focus-visible {
	color: #fff;
	transform: translateY(-3px);
	box-shadow: 0 14px 28px rgba(31, 92, 51, 0.45);
}

.p-whatsapp__anillo {
	position: absolute;
	left: 3px;
	top: 50%;
	width: calc(var(--circulo) + 6px);
	height: calc(var(--circulo) + 6px);
	border-radius: 50%;
	background: #5cc26a;
	transform: translateY(-50%);
}

.p-whatsapp__doctora {
	position: absolute;
	left: 6px;
	bottom: calc((var(--alto) - var(--circulo)) / 2);
	width: var(--circulo);
	height: auto;
	max-width: none;
	pointer-events: none;
	filter: drop-shadow(0 3px 4px rgba(0, 0, 0, 0.12));
	transform-origin: 50% 100%;
	transition: transform 0.3s ease;
}

.p-whatsapp:hover .p-whatsapp__doctora {
	transform: scale(1.04) rotate(-2deg);
}

.p-whatsapp__texto {
	display: flex;
	flex-direction: column;
	line-height: 1.05;
}

.p-whatsapp__texto small {
	font-size: 11px;
	font-weight: 600;
}

.p-whatsapp__texto strong {
	font-size: 17px;
	font-weight: 800;
	white-space: nowrap;
}

.p-whatsapp__icono {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	fill: #fff;
}

.p-whatsapp::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	animation: p-wa-pulso 2.4s infinite;
	pointer-events: none;
}

@keyframes p-wa-pulso {
	0% { box-shadow: 0 0 0 0 rgba(46, 125, 70, 0.5); }
	70% { box-shadow: 0 0 0 12px rgba(46, 125, 70, 0); }
	100% { box-shadow: 0 0 0 0 rgba(46, 125, 70, 0); }
}

@keyframes p-wa-entrada {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}

/* En el celular queda solo el círculo con la doctora y el ícono, para no tapar el contenido. */
@media (max-width: 600px) {
	.p-whatsapp {
		--circulo: 50px;
		--alto: 54px;
		right: 12px;
		bottom: 12px;
		padding: 0 12px 0 calc(var(--circulo) + 12px);
	}

	.p-whatsapp__texto {
		display: none;
	}

	.p-whatsapp__icono {
		width: 24px;
		height: 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.p-whatsapp,
	.p-whatsapp::after {
		animation: none;
	}
}

/* En la vista de alto contraste el botón conserva su fondo propio. */
html.a11y-contraste .p-whatsapp,
html.a11y-claro .p-whatsapp {
	background: #000 !important;
	color: #fff !important;
	border: 2px solid #fff !important;
}

/* ==================================================================
   Slider (bloque del constructor)
   Diseños: data-diseno = centrado | izquierda | tarjeta | dividido
   Alto: data-alto = pequeno | mediano | grande | pantalla
   Efecto: data-efecto = desvanecer | deslizar
=================================================================== */
.p-slider {
	position: relative;
	overflow: hidden;
	background: var(--st-verde-oscuro);
	color: var(--st-blanco);
}

.p-slider__pista {
	position: relative;
	height: 520px;
}

.p-slider[data-alto="pequeno"] .p-slider__pista { height: 380px; }
.p-slider[data-alto="grande"] .p-slider__pista { height: 680px; }
.p-slider[data-alto="pantalla"] .p-slider__pista { height: calc(100vh - 200px); min-height: 480px; }

.p-slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	background: var(--st-verde-oscuro) center / cover no-repeat;
}

/* Antes de que cargue el script (o sin él) solo se ve la primera. */
.p-slider:not(.p-slider--listo) .p-slide:not(:first-child) { display: none; }

.p-slider--listo .p-slide {
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.8s ease, transform 0.8s ease, visibility 0.8s;
}

.p-slider--listo .p-slide.is-activa {
	opacity: 1;
	visibility: visible;
	z-index: 1;
}

.p-slider--listo[data-efecto="deslizar"] .p-slide { opacity: 1; transform: translateX(100%); }
.p-slider--listo[data-efecto="deslizar"] .p-slide.is-activa { transform: translateX(0); }
.p-slider--listo[data-efecto="deslizar"] .p-slide.is-previa { visibility: visible; transform: translateX(-100%); }

.p-slide::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.p-slide__contenido {
	position: relative;
	width: 100%;
	max-width: 1248px;
	margin: 0 auto;
	padding: 0 72px;
	text-align: center;
}

.p-slide__titulo {
	margin: 0 0 14px;
	color: var(--st-blanco);
	font-size: clamp(1.9rem, 4.5vw, 3.75rem);
	font-weight: 700;
	line-height: 1.1;
}

.p-slide__contenido p {
	max-width: 680px;
	margin: 0 auto 24px;
	color: var(--st-blanco);
	font-size: clamp(1rem, 1.4vw, 1.1875rem);
}

.p-slide__botones {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

/* Diseño: texto a la izquierda con degradado */
.p-slider[data-diseno="izquierda"] .p-slide::before {
	background: linear-gradient(90deg, rgba(20, 60, 33, 0.92) 0%, rgba(20, 60, 33, 0.6) 45%, rgba(0, 0, 0, 0) 75%);
}
.p-slider[data-diseno="izquierda"] .p-slide__contenido { text-align: left; }
.p-slider[data-diseno="izquierda"] .p-slide__contenido > * { max-width: 560px; margin-left: 0; }
.p-slider[data-diseno="izquierda"] .p-slide__botones { justify-content: flex-start; }

/* Diseño: tarjeta blanca sobre la imagen */
.p-slider[data-diseno="tarjeta"] .p-slide::before { background: rgba(0, 0, 0, 0.1); }
.p-slider[data-diseno="tarjeta"] .p-slide__contenido {
	max-width: 560px;
	margin: 0 0 0 max(24px, calc((100% - 1248px) / 2 + 24px));
	padding: 32px;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
	text-align: left;
}
.p-slider[data-diseno="tarjeta"] .p-slide__titulo { color: var(--st-verde-oscuro); font-size: clamp(1.6rem, 3vw, 2.5rem); }
.p-slider[data-diseno="tarjeta"] .p-slide__contenido p { margin-left: 0; color: var(--st-texto); }
.p-slider[data-diseno="tarjeta"] .p-slide__botones { justify-content: flex-start; }

/* Diseño: dividido, texto sobre verde e imagen a la derecha */
.p-slider[data-diseno="dividido"] .p-slide {
	background-color: var(--st-verde-oscuro);
	background-position: right center;
	background-size: 50% 100%;
}
.p-slider[data-diseno="dividido"] .p-slide::before { display: none; }
.p-slider[data-diseno="dividido"] .p-slide__contenido { text-align: left; }
.p-slider[data-diseno="dividido"] .p-slide__contenido > * { max-width: 46%; margin-left: 0; }
.p-slider[data-diseno="dividido"] .p-slide__botones { justify-content: flex-start; }

/* Imagen completa (sin recortes): js/slider.js fija el alto según la imagen. */
.p-slider.p-slider--completa .p-slider__pista {
	width: 100%;
	min-height: 0;
	max-height: none;
	transition: height 0.4s ease;
}
.p-slider.p-slider--completa .p-slide { background-size: contain; }
/* Las diapositivas con texto usan la foto de fondo a todo el alto. */
.p-slider.p-slider--completa .p-slide:not(.p-slide--sin-texto) { background-size: cover; }

/* Diapositivas solo con imagen: sin velo oscuro ni caja de contenido. */
.p-slide.p-slide--sin-texto::before,
.p-slide:not(:has(.p-slide__contenido))::before { display: none; }
.p-slide--sin-texto .p-slide__contenido { display: none; }

/* Controles */
.p-slider__flecha {
	position: absolute;
	top: 50%;
	z-index: 3;
	width: 48px;
	height: 48px;
	border: 2px solid rgba(255, 255, 255, 0.85);
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.35);
	color: #fff;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
}
.p-slider__flecha:hover { background: var(--st-verde); }
.p-slider__flecha--previa { left: 16px; }
.p-slider__flecha--siguiente { right: 16px; }

.p-slider__controles {
	position: absolute;
	left: 50%;
	bottom: 18px;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 12px;
	transform: translateX(-50%);
}

.p-slider__puntos { display: flex; gap: 8px; }

.p-slider__punto {
	width: 14px;
	height: 14px;
	padding: 0;
	border: 2px solid #fff;
	border-radius: 999px;
	background: transparent;
	cursor: pointer;
	transition: width 0.3s;
}
.p-slider__punto[aria-current="true"] { width: 34px; background: #fff; }

.p-slider__pausa {
	width: 34px;
	height: 34px;
	border: 2px solid #fff;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.35);
	color: #fff;
	font-size: 12px;
	cursor: pointer;
}

@media (max-width: 760px) {
	.p-slider .p-slider__pista { height: 460px; }
	.p-slide__titulo { font-size: clamp(1.5rem, 7vw, 2rem); }
	/* Controles debajo de la imagen para no taparla. */
	.p-slider--listo .p-slider__controles {
		position: static;
		justify-content: center;
		padding: 10px 0;
		transform: none;
	}
	.p-slide__contenido { padding: 0 24px 40px; }
	.p-slider__flecha { display: none; }
	.p-slider[data-diseno="dividido"] .p-slide { background-size: cover; }
	.p-slider[data-diseno="dividido"] .p-slide::before { display: block; }
	.p-slider[data-diseno="dividido"] .p-slide__contenido > * { max-width: none; }
	.p-slider[data-diseno="tarjeta"] .p-slide__contenido { margin: 0 16px; padding: 22px; }
}

@media (prefers-reduced-motion: reduce) {
	.p-slider--listo .p-slide { transition: none; }
}

/* En el constructor se ven todas las diapositivas una debajo de otra para poder editarlas. */
.c-lienzo-cuerpo .p-slider__pista { height: auto !important; }
.c-lienzo-cuerpo .p-slide {
	position: relative;
	display: flex !important;
	min-height: 360px;
	margin-bottom: 6px;
	counter-increment: diapositiva;
}
.c-lienzo-cuerpo .p-slide::after {
	content: "Diapositiva " counter(diapositiva);
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 3px 10px;
	border-radius: 6px;
	background: #ffbf47;
	color: #000;
	font: 600 12px/1.4 Arial, sans-serif;
}
.c-lienzo-cuerpo .p-slider { counter-reset: diapositiva; }

/* ==================================================================
   Noticias, redes e infografías (bloques del constructor)
=================================================================== */
.b-titulo-linea {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 20px;
	color: var(--st-verde);
	font-size: clamp(1.5rem, 2.4vw, 2.25rem);
	font-weight: 700;
}

.b-titulo-linea::after {
	content: "";
	flex: 1;
	border-top: 2px dotted var(--st-verde);
	opacity: 0.6;
}

.b-tres {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px;
	align-items: start;
}

.p-destacada {
	overflow: hidden;
	border-radius: var(--st-radio);
	background: var(--st-blanco);
	box-shadow: var(--st-sombra);
}

.p-destacada > img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.p-destacada__cuerpo {
	padding: 22px 24px 24px;
}

.p-destacada__cuerpo h3 {
	margin: 0 0 6px;
	font-size: 1.375rem;
	line-height: 1.25;
}

.p-destacada__cuerpo h3 a {
	color: var(--st-verde-oscuro);
	text-decoration: none;
}

.p-destacada__cuerpo h3 a:hover {
	text-decoration: underline;
}

.p-destacada__cuerpo time {
	color: var(--st-gris);
	font-size: 0.875rem;
}

.p-destacada .p-boton--bloque {
	margin-top: 12px;
}

.b-facebook {
	overflow: hidden;
	border-radius: var(--st-radio);
	background: var(--st-blanco);
	box-shadow: var(--st-sombra);
}

.b-facebook iframe {
	display: block;
	width: 100%;
	max-width: 500px;
	height: 620px;
	margin: 0 auto;
	border: 0;
}

/* Infografías: el mismo slider, mostrando la imagen completa. */
.p-slider[data-diseno="infografia"] {
	border-radius: var(--st-radio);
	background: var(--st-verde-claro);
	box-shadow: var(--st-sombra);
}

.p-slider[data-diseno="infografia"] .p-slider__pista {
	height: auto;
	aspect-ratio: 4 / 5;
}

.p-slider[data-diseno="infografia"] .p-slide {
	align-items: stretch;
	background: var(--st-verde-claro);
}

.p-slider[data-diseno="infografia"] .p-slide::before {
	display: none;
}

.p-slider[data-diseno="infografia"] .p-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.p-slider[data-diseno="infografia"] .p-slider__flecha {
	width: 42px;
	height: 42px;
	border-radius: 8px;
	background: var(--st-verde);
}

.p-slider[data-diseno="infografia"] .p-slider__punto {
	border-color: var(--st-verde-oscuro);
}

.p-slider[data-diseno="infografia"] .p-slider__punto[aria-current="true"] {
	background: var(--st-verde-oscuro);
}

.p-slider[data-diseno="infografia"] .p-slider__pausa {
	border-color: var(--st-verde-oscuro);
	background: var(--st-blanco);
	color: var(--st-verde-oscuro);
}

.b-video {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-radius: var(--st-radio);
	background: #000;
}

.b-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

@media (max-width: 1000px) {
	.b-tres {
		grid-template-columns: 1fr;
	}
}

.c-lienzo-cuerpo .p-slider[data-diseno="infografia"] .p-slide {
	min-height: 0;
	aspect-ratio: 4 / 5;
}

.b-video__vacio {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	margin: 0;
	padding: 20px;
	color: #fff;
	text-align: center;
}

/* ===================================================================
   Carrusel de tarjetas (servicios). Lo activa js/carrusel.js cuando
   hay más tarjetas de las que caben.
=================================================================== */
.p-carrusel {
	position: relative;
	margin-top: 24px;
	padding: 0 56px;
}

.p-carrusel__ventana {
	overflow: hidden;
	/* Espacio para que no se corte la sombra de las tarjetas. */
	margin: -12px -8px;
	padding: 12px 8px;
}

.p-carrusel .p-carrusel__pista {
	display: flex;
	gap: 24px;
	margin: 0;
	transition: transform 0.6s ease;
}

.p-carrusel .p-carrusel__pista > * {
	flex: 0 0 calc((100% - 24px * (var(--p-por-vista, 3) - 1)) / var(--p-por-vista, 3));
	min-width: 0;
}

.p-carrusel__flecha {
	position: absolute;
	top: calc(50% - 24px);
	width: 44px;
	height: 44px;
	border: 2px solid var(--st-verde);
	border-radius: 50%;
	background: var(--st-blanco);
	color: var(--st-verde);
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
}
.p-carrusel__flecha:hover { background: var(--st-verde); color: var(--st-blanco); }
.p-carrusel__flecha--previa { left: 0; }
.p-carrusel__flecha--siguiente { right: 0; }

.p-carrusel__controles {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 22px;
}
.p-carrusel__puntos { display: flex; gap: 8px; }
.p-carrusel__punto {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 2px solid var(--st-verde);
	border-radius: 999px;
	background: transparent;
	cursor: pointer;
	transition: width 0.3s ease;
}
.p-carrusel__punto[aria-current="true"] { width: 30px; background: var(--st-verde); }
.p-carrusel__pausa {
	width: 34px;
	height: 34px;
	border: 2px solid var(--st-verde);
	border-radius: 50%;
	background: var(--st-blanco);
	color: var(--st-verde);
	font-size: 11px;
	cursor: pointer;
}
.p-carrusel__flecha:focus-visible,
.p-carrusel__punto:focus-visible,
.p-carrusel__pausa:focus-visible { outline: 3px solid #ffbf47; outline-offset: 2px; }

@media (max-width: 640px) {
	.p-carrusel { padding: 0; }
	.p-carrusel__flecha { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.p-carrusel .p-carrusel__pista { transition: none; }
}
