/*--------------------------------------------------------------
# Botones
--------------------------------------------------------------*/

/* Estilos base para todos los botones (tipografía alineada con .body-XS en fonts-sizes.css) */
.boton {
	padding: 12px 20px;
	border: none;
	border-radius: 9999px;
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
	font-family: var(--font-body);
	font-weight: 600 !important;
	font-size: 14px;
	line-height: 100%;
	/* 5% de interletraje respecto al tamaño de fuente (em). */
	letter-spacing: 0.05em;
	text-transform: uppercase;
	position: relative;
	padding-right: 48px;
}

@media (min-width: 992px) {
	.boton {
		font-size: 16px;
		line-height: 140%;
	}
}

/* Móvil / touch: min-height 48px. !important anula display:block de otras hojas (.home-landing, etc.) */
@media (max-width: 991px) {
	.boton {
		box-sizing: border-box;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: flex-start;
		min-height: 48px;
		padding: 0 48px 0 20px;
		line-height: 1.25;
	}

	/* CTA a 100%: texto centrado en horizontal; eje Y con align-items en .boton */
	.home-landing .boton:not(.boton-card):not(.boton-play),
	.nosotros-adn__cta .boton,
	.nosotros-cta__accion .boton,
	.nosotros-equipo__cta .boton {
		justify-content: center;
	}

	.boton-categoria {
		min-height: 48px;
		display: inline-flex !important;
		align-items: center !important;
		line-height: 1.25;
	}
}

/* Variante: Primary - Background y borde del mismo color */
.boton.primary {
	border: 1px solid;
}

/* Primary Dark - Fondo secondary-100, texto blanco; hover accent-100 y texto negro */
.boton.primary.dark {
	background-color: var(--secondary-100);
	border-color: var(--secondary-100);
	color: var(--white-100);
}

.boton.primary.dark::after {
	content: '';
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	mask-image: url('../img/svg/arrow.svg');
	mask-repeat: no-repeat;
	mask-size: contain;
	mask-position: center;
	background-color: var(--white-100);
	transition: transform 0.3s ease, background-color 0.3s ease;
}

.boton.primary.dark:hover {
	background-color: var(--accent-100);
	border-color: var(--accent-100);
	color: var(--black-100);
	opacity: 1;
}

.boton.primary.dark:hover::after {
	background-color: var(--black-100);
}

/* Primary Light - Fondo white-100, texto secondary-100; hover fondo gray-light-100, mismo texto */
.boton.primary.light {
	background-color: var(--white-100);
	border-color: var(--white-100);
	color: var(--secondary-100);
}

.boton.primary.light::after {
	content: '';
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	mask-image: url('../img/svg/arrow.svg');
	mask-repeat: no-repeat;
	mask-size: contain;
	mask-position: center;
	background-color: var(--secondary-100);
	transition: transform 0.3s ease, background-color 0.3s ease;
}

.boton.primary.light:hover {
	background-color: var(--gray-light-100);
	border-color: var(--gray-light-100);
	color: var(--secondary-100);
	opacity: 1;
}

/* Variante: Secondary - Solo borde, sin background */
.boton.secondary {
	background-color: transparent;
	border: 1px solid;
}

/* Secondary Dark - Border secondary-100, texto secondary-100 */
.boton.secondary.dark {
	border-color: var(--secondary-100);
	color: var(--secondary-100);
	background-color: transparent;
}

.boton.secondary.dark::after {
	content: '';
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	mask-image: url('../img/svg/arrow.svg');
	mask-repeat: no-repeat;
	mask-size: contain;
	mask-position: center;
	background-color: var(--secondary-100);
	transition: transform 0.3s ease, background-color 0.3s ease;
}

.boton.secondary.dark:hover {
	background-color: var(--secondary-100) !important;
	border-color: var(--secondary-100) !important;
	color: var(--white-100) !important;
	opacity: 1;
}

.boton.secondary.dark:hover::after {
	background-color: var(--white-100);
}

/* Secondary Light - Borde y texto white-100; hover fondo y borde blanco, texto secondary-100 */
.boton.secondary.light {
	background-color: transparent;
	border: 1px solid var(--white-100);
	color: var(--white-100);
}

.boton.secondary.light::after {
	content: '';
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	mask-image: url('../img/svg/arrow.svg');
	mask-repeat: no-repeat;
	mask-size: contain;
	mask-position: center;
	background-color: var(--white-100);
	transition: transform 0.3s ease, background-color 0.3s ease;
}

.boton.secondary.light:hover {
	background-color: var(--white-100);
	border-color: var(--white-100);
	color: var(--secondary-100);
	opacity: 1;
}

.boton.secondary.light:hover::after {
	background-color: var(--secondary-100);
}

/* Estados hover y active */
.boton:hover {
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

/* Hover - Rotar flecha 45º en todas las variantes */
.boton.primary.dark:hover::after,
.boton.primary.light:hover::after,
.boton.secondary.dark:hover::after,
.boton.secondary.light:hover::after {
	transform: translateY(-50%) rotate(45deg);
}

.boton:active {
	opacity: 0.8;
}

/*--------------------------------------------------------------
# Botón categoría (filtro noticias: sin flecha; «Todas» dark, resto light)
--------------------------------------------------------------*/

.boton-categoria {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 8px 20px;
	border: 1px solid var(--secondary-100);
	border-radius: 9999px;
	cursor: pointer;
	text-decoration: none;
	text-transform: uppercase;
	font-family: var(--font-body);
	font-style: normal;
	font-weight: var(--font-weight-regular, 400);
	font-size: 14px;
	line-height: 1.15;
	letter-spacing: 0.05em;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, opacity 0.3s ease;
}

.boton-categoria::after {
	content: none;
	display: none;
}

@media (min-width: 992px) {
	.boton-categoria {
		font-size: 16px;
		line-height: 1.15;
	}
}

.boton-categoria--todas {
	background-color: var(--secondary-100);
	border-color: var(--secondary-100);
	color: var(--white-100);
}

.boton-categoria--todas:hover {
	background-color: var(--accent-100);
	border-color: var(--accent-100);
	color: var(--black-100);
	opacity: 1;
}

.boton-categoria--light {
	background-color: var(--white-100);
	border-color: var(--white-100);
	color: var(--secondary-100);
}

.boton-categoria--light:not(.boton-categoria--actual) {
	border-color: var(--secondary-60, #75a7b7);
}

.boton-categoria--light:not(.boton-categoria--actual):hover {
	background-color: var(--gray-light-100);
	border-color: var(--secondary-60, #75a7b7);
	color: var(--secondary-100);
	opacity: 1;
}

.boton-categoria--actual {
	pointer-events: none;
	cursor: default;
	opacity: 1;
}

.boton-categoria--todas.boton-categoria--actual:hover {
	background-color: var(--secondary-100);
	border-color: var(--secondary-100);
	color: var(--white-100);
}

.boton-categoria--light.boton-categoria--actual:hover {
	background-color: var(--white-100);
	border-color: var(--white-100);
	color: var(--secondary-100);
}

.boton-categoria:active {
	opacity: 0.8;
}

/*--------------------------------------------------------------
# Boton Card - Círculo con flecha
--------------------------------------------------------------*/

.boton-card {
	width: var(--boton-card-size);
	height: var(--boton-card-size);
	border-radius: 50%;
	cursor: pointer;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.3s ease;
	position: relative;
	border: 1px solid;
	font-size: 0;
}

.boton-card::after {
	content: '';
	position: absolute;
	width: var(--boton-card-icon-size);
	height: var(--boton-card-icon-size);
	mask-image: url('../img/svg/arrow.svg');
	mask-repeat: no-repeat;
	mask-size: contain;
	mask-position: center;
	background-color: currentColor;
	-webkit-mask-image: url('../img/svg/arrow.svg');
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	-webkit-mask-position: center;
	transition: transform 0.3s ease;
}

.boton-card:hover::after {
	transform: rotate(45deg);
}

/* Boton Card - Base */
.boton-card.base {
	background-color: var(--primary-60);
	border-color: var(--primary-60);
	color: var(--secondary-100);
}

.boton-card.base:hover {
	background-color: var(--primary-60);
	border-color: var(--primary-60);
	color: var(--secondary-100);
}

/* Boton Card - Primary Dark (misma lógica que .boton.primary.dark) */
.boton-card.primary.dark {
	background-color: var(--secondary-100);
	border-color: var(--secondary-100);
	color: var(--white-100);
}

.boton-card.primary.dark:hover {
	background-color: var(--accent-100);
	border-color: var(--accent-100);
	color: var(--black-100);
}

/* Boton Card - Primary Light (misma lógica que .boton.primary.light) */
.boton-card.primary.light {
	background-color: var(--white-100);
	border-color: var(--white-100);
	color: var(--secondary-100);
}

.boton-card.primary.light:hover {
	background-color: var(--gray-light-100);
	border-color: var(--gray-light-100);
	color: var(--secondary-100);
}

/* Boton Card - Secondary Dark */
.boton-card.secondary.dark {
	background-color: transparent;
	border-color: var(--secondary-100);
	color: var(--secondary-100);
}

.boton-card.secondary.dark:hover {
	background-color: var(--secondary-100);
	border-color: var(--secondary-100);
	color: var(--white-100);
}

/* Boton Card - Secondary Light (misma lógica que .boton.secondary.light) */
.boton-card.secondary.light {
	background-color: transparent;
	border: 1px solid var(--white-100);
	color: var(--white-100);
}

.boton-card.secondary.light:hover {
	background-color: var(--white-100);
	border-color: var(--white-100);
	color: var(--secondary-100);
}

/*--------------------------------------------------------------
# Boton Play
--------------------------------------------------------------*/

.boton-play {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background-color: var(--primary-60);
	border: none;
	cursor: pointer;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.3s ease, opacity 0.3s ease;
	position: relative;
	padding: 0;
}

.boton-play svg {
	width: 40px;
	height: 40px;
	max-width: 40px;
	max-height: 40px;
	min-width: 40px;
	min-height: 40px;
	flex-shrink: 0;
	display: block;
	box-sizing: border-box;
	transform: scale(1);
	transition: transform 0.2s ease;
}

.boton-play svg path,
.boton-play svg polygon,
.boton-play svg circle {
	fill: var(--white-100);
	stroke: var(--white-100);
}

.boton-play:hover {
	opacity: 0.92;
}

.boton-play:hover svg,
.boton-play:focus-visible svg {
	transform: scale(0.9);
}

.boton-play:active {
	opacity: 0.88;
}

.boton-play:active svg {
	transform: scale(0.86);
}

@media (max-width: 991px) {
	.boton-play {
		width: 48px;
		height: 48px;
	}

	.boton-play svg {
		width: 20px;
		height: 20px;
		max-width: 20px;
		max-height: 20px;
		min-width: 20px;
		min-height: 20px;
	}
}

/* [hidden] debe prevalecer sobre display: inline-flex (normalize no usa !important) */
.boton-play[hidden] {
	display: none !important;
}

/*--------------------------------------------------------------
# Layout de la página de botones
--------------------------------------------------------------*/

.botones-section {
	margin: 3rem 0;
}

.botones-section h2 {
	margin-bottom: 2rem;
	font-family: var(--font-title);
}

.botones-section-light {
	background-color: var(--gray-100-light);
	padding: 2rem;
	border-radius: 8px;
}

.botones-section-dark {
	background-color: var(--secondary-100);
	padding: 2rem;
	border-radius: 8px;
}

.botones-section-dark h2 {
	color: var(--gray-100);
}

.botones-section-dark p {
	color: var(--gray-100);
	opacity: 0.8;
}

.botones-section-black {
	background-color: var(--black-100);
	padding: 2rem;
	border-radius: 8px;
}

.botones-section-black h2 {
	color: var(--gray-100);
}

.botones-section-black p {
	color: var(--gray-100);
	opacity: 0.8;
}

.botones-grid {
	display: flex;
	gap: 1.5rem;
	flex-wrap: wrap;
	align-items: center;
}

.botones-grid-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
}

.botones-column {
	display: flex;
	flex-direction: column;
}

.botones-column-content {
	padding: 2rem;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 150px;
}

.botones-column-with-bg {
	background-color: var(--black-100);
}

.botones-column-with-bg h2,
.botones-column-with-bg p {
	color: var(--gray-100);
}

.botones-pair {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
	justify-content: center;
}

@media (max-width: 767px) {
	.botones-grid-columns {
		grid-template-columns: 1fr;
	}
	
	.botones-pair {
		flex-direction: column;
		gap: 1rem;
	}
}
