/**
 * Marcela Celis Properties — Custom Styles
 *
 * DWMC-9:  Colores corporativos (arena/negro/blanco)
 * DWMC-10: Tipografias (Champagne & Limousines + Montserrat)
 * DWMC-11: Animaciones sutiles (fade-in, hover, scroll suave)
 *
 * Convenciones:
 *   Prefijo:     mcp-
 *   Metodologia: BEM (mcp-bloque__elemento--modificador)
 *   Sin IDs para estilos
 *   Sin !important excepto breakout full-width
 */

/* ==========================================================================
   0. CSS Custom Properties (DWMC-9)
   ========================================================================== */

:root {
	--mcp-arena: #CEC7B1;
	--mcp-arena-oscuro: #A89F8C;
	--mcp-negro: #000000;
	--mcp-blanco: #FFFFFF;
	--mcp-negro-suave: #111111;
	--mcp-fondo-tarjeta: #c4bda6;
	--mcp-arena-sutil: rgba(0, 0, 0, 0.12);
	--mcp-blanco-suave: rgba(0, 0, 0, 0.6);
	--mcp-font-display: 'Champagne & Limousines', sans-serif;
	--mcp-font-body: 'Montserrat', sans-serif;
	--mcp-transition: 0.3s ease;
}

/* ==========================================================================
   1. Global Resets & Base (DWMC-9)
   ========================================================================== */

html {
	scroll-behavior: smooth;
}

/* Anular margin-top que WordPress inyecta en elementos dentro de layouts constrained */
:root :where(.is-layout-constrained) > * {
	margin-block-start: 0;
}

body,
body * {
	font-family: var(--mcp-font-body);
}

body {
	background-color: var(--mcp-arena);
	color: var(--mcp-negro);
	font-weight: 400;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* ==========================================================================
   2. Typography Overrides (DWMC-10)
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
	font-family: var(--mcp-font-display);
	font-weight: 400;
	line-height: 1.2;
	color: var(--mcp-negro);
}

h1 {
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	letter-spacing: 0.2em;
}

h2 {
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	letter-spacing: 0.1em;
}

h3 {
	font-size: clamp(1.1rem, 2vw, 1.5rem);
	letter-spacing: 0.1em;
}

p, li, span, label, input, textarea, select, button {
	font-family: var(--mcp-font-body);
}

/* Navigation links — Montserrat uppercase con letter-spacing */
.wp-block-navigation a,
.wp-block-navigation-link a,
.wp-block-navigation__submenu-container a {
	font-family: var(--mcp-font-body);
	font-size: 0.95rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--mcp-blanco);
	text-decoration: none;
	transition: color var(--mcp-transition);
}

.wp-block-navigation a:hover,
.wp-block-navigation-link a:hover,
.wp-block-navigation__submenu-container a:hover {
	color: var(--mcp-arena);
	text-decoration: none;
}

/* Override theme parent nav underline */
.wp-block-navigation .wp-block-navigation-item a:where(:not(.wp-element-button)) {
	text-decoration: none;
	color: var(--mcp-blanco) !important;
}

.wp-block-navigation .wp-block-navigation-item a:where(:not(.wp-element-button)):hover {
	text-decoration: none;
	color: var(--mcp-arena) !important;
}

/* ==========================================================================
   3. Color Application (DWMC-9)
   ========================================================================== */

/* Arena for accent elements */
.has-accent-1-color {
	color: var(--mcp-arena);
}

.has-accent-1-background-color {
	background-color: var(--mcp-arena);
}

/* Links: negro by default, muted on hover */
a {
	color: var(--mcp-negro);
	text-decoration: none;
	transition: color var(--mcp-transition);
}

a:hover {
	color: rgba(0, 0, 0, 0.6);
}

/* Separator / HR elements in arena sutil */
hr,
.wp-block-separator {
	border-color: var(--mcp-arena-sutil);
}

/* ==========================================================================
   4. Buttons — Outlined luxury style (DWMC-9 + DWMC-10)
   ========================================================================== */

.wp-block-button__link,
.mcp-btn {
	display: inline-block;
	font-family: var(--mcp-font-body);
	font-size: 0.95rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--mcp-negro);
	background-color: transparent;
	border: 1px solid var(--mcp-negro);
	padding: 1rem 2.5rem;
	cursor: pointer;
	transition: background-color var(--mcp-transition),
	            color var(--mcp-transition),
	            border-color var(--mcp-transition);
}

.wp-block-button__link:hover,
.mcp-btn:hover {
	background-color: var(--mcp-negro);
	color: var(--mcp-arena);
	border-color: var(--mcp-negro);
}

/* Buttons inside slider/CTA (over photos) keep white style */
.mcp-slider__content .mcp-btn,
.mcp-cta-mid__content .mcp-btn {
	color: var(--mcp-arena);
	border-color: var(--mcp-arena);
}

.mcp-slider__content .mcp-btn:hover,
.mcp-cta-mid__content .mcp-btn:hover {
	background-color: var(--mcp-arena);
	color: var(--mcp-negro);
	border-color: var(--mcp-arena);
}

/* Header is fixed — first block (slider) fills full viewport from top */
.wp-block-post-content,
.entry-content {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

main {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Remove any gap between main content and footer */
main + .mcp-footer,
main + .wp-block-template-part > .mcp-footer,
.wp-block-template-part:has(.mcp-footer) {
	margin-top: 0 !important;
}

/* Offset anchor scrolling so fixed header doesn't cover section titles */
[id] {
	scroll-margin-top: 80px;
}

/* ==========================================================================
   5. Breakout Full-Width (theme override)
   ========================================================================== */

.entry-content > .mcp-full-width,
.wp-block-post-content > .mcp-full-width {
	max-width: none !important;
	width: auto;
	margin-left: calc( -1 * var(--wp--style--root--padding-left, 1.5rem) ) !important;
	margin-right: calc( -1 * var(--wp--style--root--padding-right, 1.5rem) ) !important;
}

/* wp:html blocks get wrapped in .wp-block-html — breakout the wrapper too */
.entry-content > .wp-block-html,
.wp-block-post-content > .wp-block-html {
	max-width: none !important;
	width: auto;
	margin-left: calc( -1 * var(--wp--style--root--padding-left, 1.5rem) ) !important;
	margin-right: calc( -1 * var(--wp--style--root--padding-right, 1.5rem) ) !important;
}

/* ==========================================================================
   6. Animations — Fade-in Up + Hero (DWMC-11)
   IntersectionObserver driven. No jQuery. No external libs.
   Patron: opacity 0→1 + translateY 60→0, once:true, stagger i*0.15
   ========================================================================== */

/* --- Scroll animations (whileInView) --- */
.mcp-animate {
	opacity: 0;
	transform: translateY(60px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

.mcp-animate.mcp-visible {
	opacity: 1;
	transform: translateY(0);
}

/* From-left variant */
.mcp-animate--from-left {
	transform: translateX(-40px);
}

.mcp-animate--from-left.mcp-visible {
	transform: translateX(0);
}

/* Stagger manejado por JS (animations.js) — estas clases quedan
   en el HTML como referencias semanticas pero sin efecto CSS. */

/* --- Hero animations (on page load, no scroll) ---
   html.mcp-js se inyecta via inline script en <head> ANTES del primer paint,
   garantizando que los elementos empiezan ocultos sin ningun flash. */
/* Solo el primer slide anima al cargar — los demás entran sin animacion */
html.mcp-js .mcp-slider__slide:first-child .mcp-slider__content > * {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 1s ease, transform 1s ease;
}

html.mcp-js .mcp-slider__slide:first-child .mcp-slider__content > *.mcp-hero-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ==========================================================================
   7. Animations — Card Hover (DWMC-11)
   ========================================================================== */

.mcp-card {
	background-color: var(--mcp-fondo-tarjeta);
	border: 1px solid transparent;
	padding: 2.5rem 2rem;
	transition: border-color var(--mcp-transition),
	            box-shadow var(--mcp-transition),
	            transform 0.2s ease;
}

.mcp-card:hover {
	border-color: var(--mcp-arena);
	box-shadow: 0 8px 30px rgba(206, 199, 177, 0.08);
	transform: translateY(-4px);
}

.mcp-card__number {
	font-family: var(--mcp-font-display);
	color: var(--mcp-arena);
	font-size: 2rem;
	display: block;
	margin-bottom: 1rem;
}

.mcp-card__title {
	font-family: var(--mcp-font-display);
	color: var(--mcp-negro);
	font-size: 1.1rem;
	letter-spacing: 0.1em;
	margin-bottom: 0.75rem;
}

.mcp-card__desc {
	font-family: var(--mcp-font-body);
	color: var(--mcp-blanco-suave);
	font-size: 0.95rem;
	line-height: 1.7;
}

/* ==========================================================================
   8. Animations — Link/Nav Hover Transitions (DWMC-11)
   ========================================================================== */

.site-header .wp-block-navigation-link a {
	transition: color var(--mcp-transition);
}

/* Image hover zoom (subtle) */
.mcp-img-hover {
	overflow: hidden;
	border-radius: 8px;
}

.mcp-img-hover img {
	transition: transform 0.5s ease;
}

.mcp-img-hover:hover img {
	transform: scale(1.03);
}

/* ==========================================================================
   9. Header — Fixed + Scroll Behavior + Nav
   ========================================================================== */

.mcp-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	padding: 1.5rem 2rem;
	background-color: transparent;
	border-bottom: none;
	transition: background-color 0.5s ease, padding 0.5s ease, backdrop-filter 0.5s ease;
}

/* Estado con scroll > 50px */
.mcp-header--scrolled {
	background-color: rgba(10, 10, 10, 0.95);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	padding-top: 1rem;
	padding-bottom: 1rem;
}

/* Logo */
.mcp-header .wp-block-site-logo {
	flex-shrink: 0;
	line-height: 0;
}

.mcp-header .wp-block-site-logo a {
	display: block;
}

.mcp-header .wp-block-site-logo img {
	display: block;
	width: 160px;
	height: auto;
}

/* Navegacion */
.mcp-nav {
	display: flex;
	align-items: center;
	gap: 2rem;
}

/* Social icons — hidden on desktop, shown inside mobile overlay */
.mcp-nav__social {
	display: none;
}

.mcp-nav__link {
	position: relative;
	font-family: var(--mcp-font-body);
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-decoration: none;
	color: rgba(255, 255, 255, 0.7);
	transition: color 0.3s ease;
}

/* Subrayado animado */
.mcp-nav__link::after {
	content: '';
	position: absolute;
	bottom: -4px;
	left: 0;
	width: 0;
	height: 1px;
	background-color: var(--mcp-arena);
	transition: width 0.3s ease;
}

.mcp-nav__link:hover,
.mcp-nav__link.is-active {
	color: var(--mcp-arena);
}

.mcp-nav__link:hover::after,
.mcp-nav__link.is-active::after {
	width: 100%;
}

/* ── Hamburger toggle — hidden on desktop ──────────────────────────── */
.mcp-nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0;
	background: none;
	border: none;
	cursor: pointer;
	z-index: 201;
	-webkit-tap-highlight-color: transparent;
}

.mcp-nav-toggle__bar {
	display: block;
	width: 22px;
	height: 1.5px;
	background-color: var(--mcp-blanco);
	border-radius: 2px;
	transition: transform 0.35s ease, opacity 0.25s ease;
	transform-origin: center;
}

/* X animation when open */
.mcp-nav-toggle.is-open .mcp-nav-toggle__bar:nth-child(1) {
	transform: translateY(6.5px) rotate(45deg);
}

.mcp-nav-toggle.is-open .mcp-nav-toggle__bar:nth-child(2) {
	opacity: 0;
}

.mcp-nav-toggle.is-open .mcp-nav-toggle__bar:nth-child(3) {
	transform: translateY(-6.5px) rotate(-45deg);
}

/* ==========================================================================
   10. Footer (DWMC-2 / Seccion 7)
   ========================================================================== */

.mcp-footer {
	background-color: var(--mcp-negro) !important;
	color: rgba(255, 255, 255, 0.7);
	padding: 4.5rem 2rem 0;
	margin-top: 0;
}

.mcp-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 3rem;
	padding-bottom: 3rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* ── Col 1: Brand ────────────────────────────────────────────────────── */

.mcp-footer__brand {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.mcp-footer__logo {
	width: 240px;
	height: auto;
	display: block;
}

.mcp-footer__tagline {
	font-size: 0.9rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.5);
	margin: 0;
}

.mcp-footer__social {
	display: flex;
	gap: 1rem;
	margin-top: 0.25rem;
}

.mcp-footer__social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: rgba(255, 255, 255, 0.6);
	transition: border-color 0.3s ease, color 0.3s ease, background 0.3s ease;
}

.mcp-footer__social a:hover {
	border-color: var(--mcp-arena);
	color: var(--mcp-arena);
	background: rgba(206, 199, 177, 0.1);
}

/* ── Cols 2-4 ────────────────────────────────────────────────────────── */

.mcp-footer__heading {
	font-family: var(--mcp-font-body);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--mcp-arena);
	margin: 0 0 1.5rem;
}

.mcp-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.mcp-footer__links li {
	margin: 0;
}

.mcp-footer__links a,
.mcp-footer__links span {
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.55);
	text-decoration: none;
	transition: color 0.3s ease;
	letter-spacing: 0.02em;
}

.mcp-footer__links a:hover {
	color: #fff;
}

/* Contact column with icons */
.mcp-footer__links--contact li {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
}

.mcp-footer__links--contact svg {
	flex-shrink: 0;
	margin-top: 3px;
	color: rgba(255, 255, 255, 0.35);
}

/* ── Bottom bar ──────────────────────────────────────────────────────── */

.mcp-footer__bottom {
	max-width: 1200px;
	margin: 0 auto;
	padding: 1.5rem 0;
	text-align: center;
}

.mcp-footer__bottom p {
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.3);
	letter-spacing: 0.08em;
	margin: 0;
}

/* ==========================================================================
   11. Hero Slider (DWMC-12, DWMC-15, DWMC-16)
   ========================================================================== */

.mcp-slider {
	position: relative;
	height: 100vh;
	min-height: 600px;
	overflow: hidden;
	background-color: var(--mcp-negro);
}

.mcp-slider__track {
	position: relative;
	width: 100%;
	height: 100%;
}

.mcp-slider__slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transition: opacity 1.2s ease;
	z-index: 1;
}

.mcp-slider__slide--active {
	opacity: 1;
	z-index: 2;
}

.mcp-slider__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.45) 0%,
		rgba(0, 0, 0, 0.7) 100%
	);
	z-index: 1;
}

.mcp-slider__content {
	position: relative;
	z-index: 2;
	text-align: center;
	max-width: 900px;
	padding: 2rem;
}

.mcp-slider__tag {
	font-family: var(--mcp-font-body);
	font-size: 1rem;
	color: var(--mcp-arena);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	margin-bottom: 1.5rem;
	display: block;
}

.mcp-slider__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(2rem, 5vw, 4rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.2em;
	line-height: 1.15;
	margin-bottom: 1.5rem;
}

.mcp-slider__subtitle {
	font-family: var(--mcp-font-body);
	font-size: clamp(0.9rem, 1.5vw, 1.05rem);
	color: rgba(255, 255, 255, 0.65);
	line-height: 1.8;
	max-width: 600px;
	margin: 0 auto 2.5rem;
}

.mcp-slider__dots {
	position: absolute;
	bottom: 2.5rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 10;
	display: flex;
	gap: 0.75rem;
}

.mcp-slider__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 1px solid var(--mcp-arena);
	background: transparent;
	cursor: pointer;
	padding: 0;
	transition: background-color var(--mcp-transition);
}

.mcp-slider__dot--active,
.mcp-slider__dot:hover {
	background-color: var(--mcp-arena);
}

/* ==========================================================================
   12. About / Sobre Mi (DWMC-13, DWMC-17)
   ========================================================================== */

.mcp-about {
	padding: 6rem 2rem;
	background-color: var(--mcp-arena);
}

.mcp-about__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	align-items: center;
}

.mcp-about__image {
	overflow: hidden;
	border-radius: 8px;
}

.mcp-about__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 400px;
	transition: transform 0.5s ease;
}

.mcp-about__image:hover img {
	transform: scale(1.03);
}

.mcp-about__content {
	padding: 2rem 0;
}

.mcp-about__eyebrow {
	font-family: var(--mcp-font-body);
	font-size: 1rem;
	color: var(--mcp-negro);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	margin-bottom: 1.5rem;
	display: block;
}

.mcp-about__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	color: var(--mcp-negro);
	letter-spacing: 0.12em;
	margin-bottom: 1.5rem;
	line-height: 1.2;
}

.mcp-about__text {
	font-family: var(--mcp-font-body);
	color: var(--mcp-blanco-suave);
	font-size: 1rem;
	line-height: 1.8;
	margin-bottom: 2rem;
}

.mcp-about__quote {
	position: relative;
	font-family: var(--mcp-font-display);
	font-size: clamp(1.15rem, 1.9vw, 1.5rem);
	line-height: 1.5;
	color: var(--mcp-negro);
	letter-spacing: 0.04em;
	margin: 0.5rem 0 2.5rem;
	padding: 1.25rem 0 1.25rem 1.5rem;
	border-left: 2px solid var(--mcp-negro);
	font-style: italic;
}

.mcp-about__quote::before {
	content: '\201C';
	position: absolute;
	top: -0.5rem;
	left: 1rem;
	font-size: 2.5rem;
	color: var(--mcp-negro);
	opacity: 0.25;
	font-style: normal;
}

/* ==========================================================================
   13. Metrics / Metricas de Confianza (DWMC-18)
   ========================================================================== */

.mcp-metrics {
	padding: 3rem 2rem 2rem;
	background-color: var(--mcp-fondo-tarjeta);
}

.mcp-metrics__inner {
	max-width: 1000px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.5rem;
}

.mcp-metric {
	position: relative;
	padding: 2.5rem 2rem;
	text-align: center;
	background-color: rgba(255, 255, 255, 0.25);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 8px;
	cursor: default;
	transition: border-color 0.4s ease, background-color 0.4s ease;
}

.mcp-metric:hover {
	border-color: rgba(0, 0, 0, 0.15);
	background-color: rgba(255, 255, 255, 0.4);
}

/* Top border that animates from left to right on hover */
.mcp-metric::before {
	content: '';
	position: absolute;
	top: -1px;
	left: -1px;
	width: 0;
	height: 3px;
	background-color: var(--mcp-negro, #000);
	border-radius: 8px 8px 0 0;
	transition: width 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.mcp-metric:hover::before {
	width: calc(100% + 2px);
}

.mcp-metric__value {
	font-family: var(--mcp-font-display);
	color: var(--mcp-negro);
	font-size: clamp(2.8rem, 5vw, 4.5rem);
	display: block;
	margin-bottom: 1rem;
	line-height: 1;
	font-weight: 400;
	letter-spacing: 0.02em;
	transition: transform 0.3s ease;
}

.mcp-metric:hover .mcp-metric__value {
	transform: translateY(-3px);
}

.mcp-metric__label {
	font-family: var(--mcp-font-body);
	color: rgba(0, 0, 0, 0.5);
	font-size: 0.85rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	transition: color 0.3s ease;
}

.mcp-metric:hover .mcp-metric__label {
	color: rgba(0, 0, 0, 0.75);
}

/* ==========================================================================
   14. CTA Intermedio / Parallax (DWMC-14, DWMC-19, DWMC-20)
   ========================================================================== */

.mcp-cta-mid {
	position: relative;
	min-height: 50vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	background-color: var(--mcp-negro-suave);
	border-top: 1px solid var(--mcp-arena-sutil);
	padding: 5rem 0 6rem;
	overflow: hidden;
}

.mcp-cta-mid__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.45) 0%,
		rgba(0, 0, 0, 0.4) 50%,
		rgba(0, 0, 0, 0.45) 80%,
		#CEC7B1 100%
	);
}

.mcp-cta-mid__content {
	position: relative;
	z-index: 1;
	text-align: center;
	padding: 2rem;
	width: 100%;
	max-width: 1300px;
	box-sizing: border-box;
}

.mcp-cta-mid__eyebrow {
	display: block;
	font-family: var(--mcp-font-body);
	font-size: 1rem;
	letter-spacing: 0.3em;
	color: var(--mcp-arena);
	margin-bottom: 0.75rem;
}

.mcp-cta-mid__quote {
	font-family: var(--mcp-font-display);
	color: var(--mcp-blanco);
	font-size: clamp(1.8rem, 4.5vw, 3.5rem);
	letter-spacing: 0.15em;
	margin-bottom: 3rem;
	line-height: 1.2;
}

.mcp-cta-mid__view-all {
	margin-top: 2.5rem;
	display: inline-block;
}

/* ==========================================================================
   15. Contact Section / Formulario (DWMC-16)
   ========================================================================== */

/* Full-width override for shortcode wrapper containing the contact section.
   WordPress core injects inline max-width + margin:auto on .wp-block-shortcode
   children of .is-layout-constrained via wp_style_engine.
   Strategy: :has() for modern browsers + id-based fallback that doesn't need :has(). */
.wp-block-post-content .wp-block-shortcode:has(.mcp-contact-split),
.entry-content .wp-block-shortcode:has(.mcp-contact-split),
.is-layout-constrained > .wp-block-shortcode:has(.mcp-contact-split) {
	display: block !important;
	max-width: none !important;
	width: auto !important;
	margin-left: calc( -1 * var(--wp--style--root--padding-left, 1.5rem) ) !important;
	margin-right: calc( -1 * var(--wp--style--root--padding-right, 1.5rem) ) !important;
	float: none !important;
}

/* Fallback: target #mcp-contacto's parent .wp-block-shortcode via JS-injected class.
   Also reset any WP inline styles via specificity escalation on the section itself. */
#mcp-contacto {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Section wrapper — explicit block to prevent parent grid/flex from splitting header + body.
   The !important on display+width ensures WP layout engine cannot override via inline styles. */
.mcp-contact-split {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	margin-top: 4rem;
	box-sizing: border-box;
}

/* Centered header row — title + subtitle (full-width single column) */
.mcp-contact-split__header {
	display: block;
	width: 100%;
	background-color: var(--mcp-arena);
	text-align: center;
	padding: 4rem 2rem 3rem;
	box-sizing: border-box;
}

.mcp-contact-split__header .mcp-contact__title {
	margin-bottom: 0.75rem;
}

.mcp-contact-split__header .mcp-contact__subtitle {
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 0;
}

/* 50/50 body grid — image LEFT | form RIGHT.
   Explicit !important on grid properties to survive WP inline style injection. */
.mcp-contact-split__body {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	grid-template-rows: auto;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

/* Image column — left side */
.mcp-contact-split__image {
	position: relative;
	overflow: hidden;
	min-height: 500px;
	border-radius: 16px;
	margin: 1rem;
	grid-column: 1;
	grid-row: 1;
}

.mcp-contact-split__image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 70% center;
	image-rendering: high-quality;
	display: block;
	transform: rotate(180deg);
}

/* Form column — right side */
.mcp-contact-split__form {
	background-color: var(--mcp-arena);
	padding: 3rem 4rem 4rem;
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	gap: 1.25rem;
	grid-column: 2;
	grid-row: 1;
	box-sizing: border-box;
}

/* Contact info cards (below form) */
.mcp-contact__cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	margin-top: 2rem;
}

.mcp-contact__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6rem;
	padding: 1.25rem 0.75rem;
	background: rgba(0, 0, 0, 0.04);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 8px;
	text-decoration: none;
	text-align: center;
	transition: border-color var(--mcp-transition), background-color var(--mcp-transition), transform 0.3s ease;
}

.mcp-contact__card:hover {
	border-color: var(--mcp-negro);
	background: rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

.mcp-contact__card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--mcp-negro);
	color: var(--mcp-arena);
}

.mcp-contact__card-icon svg {
	width: 22px;
	height: 22px;
}

.mcp-contact__card-label {
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: rgba(0, 0, 0, 0.55);
	text-transform: uppercase;
}


/* Legacy centered contact (kept for other pages) */
.mcp-contact {
	padding: 6rem 2rem;
	background-color: var(--mcp-arena);
}

.mcp-contact__inner {
	max-width: 800px;
	margin: 0 auto;
	text-align: center;
}

.mcp-contact__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	color: var(--mcp-negro);
	letter-spacing: 0.12em;
	margin-bottom: 1rem;
	line-height: 1.2;
}

.mcp-contact__subtitle {
	font-family: var(--mcp-font-body);
	color: var(--mcp-blanco-suave);
	font-size: 1rem;
	margin-bottom: 3rem;
}

/* Contact channels */
.mcp-contact__channels {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	gap: 1.5rem;
	margin-bottom: 3rem;
}

.mcp-contact__channel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	border: 1px solid var(--mcp-arena-sutil);
	padding: 1.5rem 2rem;
	text-decoration: none;
	min-width: 200px;
	transition: border-color var(--mcp-transition), background-color var(--mcp-transition);
}

.mcp-contact__channel:hover {
	border-color: var(--mcp-negro);
	background-color: rgba(0, 0, 0, 0.06);
}

.mcp-contact__channel-label {
	font-family: var(--mcp-font-body);
	font-size: 0.95rem;
	letter-spacing: 0.2em;
	color: var(--mcp-negro);
	text-transform: uppercase;
}

.mcp-contact__channel-value {
	font-family: var(--mcp-font-body);
	font-size: 0.95rem;
	color: var(--mcp-negro);
}

/* Lead form styling */
.mcp-lead-form {
	text-align: left;
	background: rgba(0, 0, 0, 0.06);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 10px;
	padding: 2rem 2rem 1.75rem;
}

.mcp-lead-form *,
.mcp-lead-form *::before,
.mcp-lead-form *::after {
	box-sizing: border-box;
}

.mcp-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.mcp-form__row .mcp-form__field {
	margin-bottom: 0;
	min-width: 0; /* prevent grid blowout */
}

.mcp-form__field {
	margin-bottom: 1.25rem;
}

.mcp-form__field label {
	display: block;
	font-family: var(--mcp-font-body);
	font-size: 0.8rem;
	font-weight: 600;
	color: rgba(0, 0, 0, 0.55);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-bottom: 0.45rem;
}

.mcp-form__field input,
.mcp-form__field textarea,
.mcp-form__field select {
	border-radius: 6px;
	width: 100%;
	background-color: rgba(255, 255, 255, 0.7);
	border: 1px solid rgba(0, 0, 0, 0.15);
	border-radius: 4px;
	color: var(--mcp-negro);
	font-family: var(--mcp-font-body);
	font-size: 0.95rem;
	padding: 0.75rem 0.9rem;
	transition: border-color var(--mcp-transition), background-color var(--mcp-transition), box-shadow 0.3s ease;
}

.mcp-form__field input::placeholder,
.mcp-form__field textarea::placeholder {
	color: rgba(0, 0, 0, 0.3);
}

.mcp-form__field input:focus,
.mcp-form__field textarea:focus,
.mcp-form__field select:focus {
	outline: none;
	border-color: var(--mcp-negro);
	background-color: #fff;
	box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05);
}

.mcp-form__field select {
	appearance: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23000000' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	padding-right: 2.5rem;
}

.mcp-form__field select option {
	background-color: #fff;
	color: var(--mcp-negro);
}

.mcp-lead-form .mcp-btn {
	display: block;
	width: 100%;
	text-align: center;
	margin-top: 0.25rem;
}

/* Form wrapper (shortcode output) */
.mcp-lead-form-wrap {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 2rem 6rem;
	background-color: var(--mcp-arena);
}

/* HoneyPot field — off-screen, not display:none */
.mcp-hp-field {
	position: absolute;
	left: -9999px;
	top: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
}

/* Success message */
.mcp-form__success {
	text-align: center;
	padding: 3rem 2rem;
	border: 1px solid var(--mcp-arena);
}

.mcp-form__success-title {
	font-family: var(--mcp-font-display);
	color: var(--mcp-negro);
	font-size: 1.5rem;
	letter-spacing: 0.15em;
	margin-bottom: 1rem;
}

.mcp-form__success-text {
	font-family: var(--mcp-font-body);
	color: var(--mcp-blanco-suave);
	font-size: 1rem;
}

/* ==========================================================================
   15b. Testimonios
   ========================================================================== */

.mcp-testimonials {
	padding: 3rem 2rem 5rem;
	background-color: var(--mcp-fondo-tarjeta);
}

.mcp-testimonials__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.mcp-testimonials__header {
	text-align: center;
	margin-bottom: 4rem;
}

.mcp-testimonials__eyebrow {
	font-family: var(--mcp-font-body);
	font-size: 1rem;
	letter-spacing: 0.25em;
	color: var(--mcp-negro);
	text-transform: uppercase;
	display: block;
	margin-bottom: 1rem;
}

.mcp-testimonials__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	color: var(--mcp-negro);
	letter-spacing: 0.12em;
	margin: 0;
	line-height: 1.2;
}

.mcp-testimonials__grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 2rem;
	padding-bottom: 0.5rem;
}

/* Fila superior: 3 tarjetas ocupan 2 columnas cada una */
.mcp-testimonials__grid .mcp-testimonial:nth-child(1) { grid-column: 1 / span 2; }
.mcp-testimonials__grid .mcp-testimonial:nth-child(2) { grid-column: 3 / span 2; }
.mcp-testimonials__grid .mcp-testimonial:nth-child(3) { grid-column: 5 / span 2; }

/* Fila inferior: 2 tarjetas centradas — piramide invertida */
.mcp-testimonials__grid .mcp-testimonial:nth-child(4) { grid-column: 2 / span 2; }
.mcp-testimonials__grid .mcp-testimonial:nth-child(5) { grid-column: 4 / span 2; }

/* Animacion mas smooth para testimonios: ease-out, translateY reducido, duracion larga */
.mcp-testimonial.mcp-animate {
	transform: translateY(30px);
	transition: opacity 0.9s cubic-bezier(0, 0, 0.2, 1), transform 0.9s cubic-bezier(0, 0, 0.2, 1);
}

.mcp-testimonial {
	position: relative;
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2));
	border: 1px solid rgba(0, 0, 0, 0.06);
	border-radius: 10px;
	padding: 2.5rem 2rem 2rem;
	margin: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
	transition: box-shadow 0.4s ease, border-color 0.4s ease, background 0.4s ease;
}

.mcp-testimonial:hover {
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.10), 0 0 0 1px rgba(206, 199, 177, 0.3);
	border-color: rgba(206, 199, 177, 0.6);
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.35));
}

/* Quote icon */
.mcp-testimonial__quote-icon {
	margin-bottom: 0.75rem;
	color: var(--mcp-negro, #000);
	line-height: 1;
}

.mcp-testimonial__text {
	font-family: var(--mcp-font-body);
	color: rgba(0, 0, 0, 0.6);
	font-size: 0.95rem;
	line-height: 1.85;
	font-style: italic;
	margin-bottom: 1.75rem;
	flex-grow: 1;
}

.mcp-testimonial__footer {
	padding-top: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

/* Gold accent line above the name */
.mcp-testimonial__accent {
	width: 30px;
	height: 2px;
	background-color: var(--mcp-arena, #CEC7B1);
	margin-bottom: 0.75rem;
	transition: width 0.4s ease;
}

.mcp-testimonial:hover .mcp-testimonial__accent {
	width: 50px;
}

.mcp-testimonial__name {
	font-family: var(--mcp-font-display);
	color: var(--mcp-negro);
	font-size: 1rem;
	letter-spacing: 0.08em;
	font-style: normal;
	font-weight: 400;
}

.mcp-testimonial__role {
	font-family: var(--mcp-font-body);
	color: rgba(0, 0, 0, 0.4);
	font-size: 0.8rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Carousel nav — hidden on desktop; only mobile carousel toggles --visible to flex */
.mcp-testimonials__carousel-nav {
	display: none;
}

/* ==========================================================================
   16. Utility Classes
   ========================================================================== */

.mcp-text-arena { color: var(--mcp-arena); }
.mcp-text-blanco { color: var(--mcp-blanco); }
.mcp-text-blanco-suave { color: var(--mcp-blanco-suave); }
.mcp-bg-negro { background-color: var(--mcp-negro); }
.mcp-bg-arena { background-color: var(--mcp-arena); }
.mcp-bg-negro-suave { background-color: var(--mcp-negro-suave); }

.mcp-font-display { font-family: var(--mcp-font-display); }
.mcp-font-body { font-family: var(--mcp-font-body); }

.mcp-uppercase {
	text-transform: uppercase;
	letter-spacing: 0.15em;
}

/* ==========================================================================
   17. Responsive (mobile-first)
   ========================================================================== */

/* Tablet: 768-1024px */
@media (max-width: 1024px) {
	.mcp-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.mcp-split {
		grid-template-columns: 1fr;
	}

	/* Show hamburger on tablet too — 5 links are tight */
	.mcp-nav-toggle {
		display: flex;
	}

	.mcp-nav {
		position: fixed;
		top: 0;
		left: 0;
		width: 100vw;
		height: 100dvh;
		z-index: 200;
		background-color: #000000;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 0;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.4s ease, visibility 0.4s ease;
	}

	.mcp-nav.is-open {
		opacity: 1;
		visibility: visible;
	}

	.mcp-nav__link {
		font-size: 1.1rem;
		letter-spacing: 0.25em;
		color: rgba(255, 255, 255, 0.7);
		padding: 1rem 2rem;
		min-height: 44px;
		display: flex;
		align-items: center;
		opacity: 0;
		transform: translateY(15px);
		transition: color 0.3s ease, opacity 0.4s ease, transform 0.4s ease;
	}

	.mcp-nav.is-open .mcp-nav__link {
		opacity: 1;
		transform: translateY(0);
	}

	.mcp-nav.is-open .mcp-nav__link:nth-child(1) { transition-delay: 0.08s; }
	.mcp-nav.is-open .mcp-nav__link:nth-child(2) { transition-delay: 0.14s; }
	.mcp-nav.is-open .mcp-nav__link:nth-child(3) { transition-delay: 0.20s; }
	.mcp-nav.is-open .mcp-nav__link:nth-child(4) { transition-delay: 0.26s; }
	.mcp-nav.is-open .mcp-nav__link:nth-child(5) { transition-delay: 0.32s; }

	.mcp-nav__link:hover,
	.mcp-nav__link.is-active {
		color: var(--mcp-arena);
	}

	.mcp-nav__link::after {
		display: none;
	}

	body.mcp-nav-open {
		overflow: hidden;
	}

	.mcp-nav__social {
		display: flex;
		gap: 1.5rem;
		margin-top: 2.5rem;
		opacity: 0;
		transform: translateY(15px);
		transition: opacity 0.4s ease, transform 0.4s ease;
	}

	.mcp-nav.is-open .mcp-nav__social {
		opacity: 1;
		transform: translateY(0);
		transition-delay: 0.38s;
	}

	.mcp-nav__social-link {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		color: rgba(255, 255, 255, 0.5);
		transition: color 0.3s ease;
	}

	.mcp-nav__social-link:hover {
		color: var(--mcp-arena);
	}

	.mcp-about__inner {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.mcp-about__image img {
		min-height: 300px;
	}

	/* Testimonials: 2 columns on tablet — reset piramide */
	.mcp-testimonials__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.mcp-testimonials__grid .mcp-testimonial:nth-child(1),
	.mcp-testimonials__grid .mcp-testimonial:nth-child(2),
	.mcp-testimonials__grid .mcp-testimonial:nth-child(3),
	.mcp-testimonials__grid .mcp-testimonial:nth-child(4),
	.mcp-testimonials__grid .mcp-testimonial:nth-child(5) {
		grid-column: span 1;
	}

	/* Metrics: 3 cols fit fine on tablet */
	.mcp-metrics__inner {
		grid-template-columns: repeat(3, 1fr);
	}

	/* Contact split */
	.mcp-contact-split__header {
		padding: 3rem 2rem 2rem;
	}

	.mcp-contact-split__form {
		padding: 2.5rem 2.5rem 3rem;
	}
}

/* Mobile: <768px */
@media (max-width: 768px) {
	.mcp-grid {
		grid-template-columns: 1fr;
	}

	.mcp-hero__columns {
		grid-template-columns: 1fr;
	}

	.mcp-hero__col--bordered {
		border-left: none;
		border-right: none;
		border-top: 1px solid var(--mcp-arena);
		border-bottom: 1px solid var(--mcp-arena);
		padding: 2rem 0;
	}

	/* Disable parallax on mobile (iOS issues) */
	.mcp-parallax,
	.mcp-cta-mid {
		background-attachment: scroll;
	}

	/* ── Header — mobile-specific refinements ────────────────────────── */
	.mcp-header {
		padding: 0.85rem 1.25rem;
	}

	.mcp-header .wp-block-site-logo img {
		width: 120px;
	}

	/* ── Slider ──────────────────────────────────────────────────────── */
	.mcp-slider {
		min-height: 100svh;
	}

	.mcp-slider__content {
		padding: 2rem 1.5rem;
	}

	.mcp-slider__tag {
		font-size: 0.85rem;
		letter-spacing: 0.2em;
	}

	.mcp-slider__title {
		letter-spacing: 0.1em;
	}

	.mcp-slider__subtitle {
		font-size: 0.9rem;
	}

	.mcp-slider__dots {
		bottom: 2rem;
	}

	.mcp-slider__dot {
		width: 12px;
		height: 12px;
	}

	/* ── About ───────────────────────────────────────────────────────── */
	.mcp-about {
		padding: 3.5rem 1.25rem;
	}

	.mcp-about__inner {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.mcp-about__image img {
		min-height: 250px;
	}

	.mcp-about__content {
		padding: 0;
	}

	/* ── Metrics ─────────────────────────────────────────────────────── */
	.mcp-metrics {
		padding: 2.5rem 1.25rem 2rem;
	}

	.mcp-metrics__inner {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.mcp-metric {
		padding: 2rem 1.5rem;
	}

	.mcp-metric__value {
		font-size: clamp(2.2rem, 8vw, 3rem);
	}

	/* ── Testimonials: single column on mobile ───────────────────────── */
	.mcp-testimonials {
		padding: 3rem clamp(30px, 5vw, 50px) 3.5rem;
		box-sizing: border-box;
	}

	.mcp-testimonials__inner {
		max-width: 100%;
		margin: 0 auto;
		padding: 0;
	}

	.mcp-testimonials__header {
		margin-bottom: 2.5rem;
		text-align: center;
	}

	.mcp-testimonials__grid {
		grid-template-columns: 1fr;
		gap: 1.25rem;
		max-width: 420px;
		margin: 0 auto;
	}

	.mcp-testimonials__grid .mcp-testimonial:nth-child(1),
	.mcp-testimonials__grid .mcp-testimonial:nth-child(2),
	.mcp-testimonials__grid .mcp-testimonial:nth-child(3),
	.mcp-testimonials__grid .mcp-testimonial:nth-child(4),
	.mcp-testimonials__grid .mcp-testimonial:nth-child(5) {
		grid-column: 1;
	}

	.mcp-testimonial {
		padding: 1.75rem 1.5rem 1.5rem;
	}

	/* ── Testimonials Mobile Carousel ─────────────────────────────── */
	.mcp-testimonials__grid--carousel {
		display: block;
		position: relative;
		margin: 0 auto;
		padding-bottom: 0.5rem;
		cursor: grab;
		-webkit-user-select: none;
		user-select: none;
	}

	.mcp-testimonials__grid--carousel.mcp-testimonials__grid--dragging {
		cursor: grabbing;
	}

	.mcp-testimonials__grid--carousel .mcp-testimonial {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		width: 100%;
		box-sizing: border-box;
		opacity: 0;
		transform: none;
		pointer-events: none;
		transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.mcp-testimonials__grid--carousel .mcp-testimonials__card--active {
		position: relative;
		opacity: 1;
		transform: none;
		pointer-events: auto;
		margin-bottom: 0;
		border-radius: 12px;
		box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
	}

	.mcp-testimonials__grid--carousel .mcp-testimonials__card--exit {
		opacity: 0;
		pointer-events: none;
	}

	/* Navigation: dots only */
	.mcp-testimonials__carousel-nav {
		display: none;
		justify-content: center;
		gap: 8px;
		margin-top: 1.75rem;
		padding-bottom: 0.5rem;
	}

	.mcp-testimonials__carousel-nav--visible {
		display: flex;
	}

	.mcp-testimonials__dot {
		width: 8px;
		height: 8px;
		border-radius: 50%;
		border: none;
		background: rgba(0, 0, 0, 0.15);
		cursor: pointer;
		padding: 0;
		transition: all 0.35s ease;
	}

	.mcp-testimonials__dot--active {
		width: 24px;
		border-radius: 4px;
		background: var(--mcp-arena, #CEC7B1);
	}

	/* ── CTA ─────────────────────────────────────────────────────────── */
	.mcp-cta-mid {
		min-height: 40vh;
		padding: 4rem 0 5rem;
	}

	.mcp-cta-mid__content {
		padding: 2rem 0;
	}

	/* ── Contact ─────────────────────────────────────────────────────── */
	.mcp-contact-split {
		margin-top: 2rem;
	}

	.mcp-contact-split__header {
		padding: 2.5rem 1.25rem 2rem;
	}

	.mcp-contact-split__body {
		grid-template-columns: 1fr !important;
	}

	.mcp-contact-split__image {
		grid-column: 1;
		grid-row: 1;
	}

	.mcp-contact-split__form {
		grid-column: 1;
		grid-row: 2;
	}

	.mcp-contact-split__image {
		min-height: 250px;
		order: -1;
	}

	.mcp-contact-split__form {
		padding: 2rem 1.25rem 2.5rem;
	}

	.mcp-contact__title {
		font-size: clamp(1.6rem, 5vw, 2rem);
	}

	.mcp-contact__cards {
		grid-template-columns: repeat(4, 1fr);
		gap: 0.5rem;
	}

	.mcp-contact__card {
		padding: 0.75rem 0.25rem;
	}

	.mcp-contact__card-icon {
		width: 40px;
		height: 40px;
	}

	.mcp-contact__card-icon svg {
		width: 18px;
		height: 18px;
	}

	.mcp-contact__card-label {
		font-size: 0.6rem;
		letter-spacing: 0.1em;
	}

	/* Contact form */
	.mcp-lead-form {
		padding: 1.5rem 1.25rem 1.25rem;
	}

	.mcp-form__row {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.mcp-form__row .mcp-form__field {
		margin-bottom: 1.25rem;
	}

	.mcp-contact {
		padding: 3.5rem 1.25rem;
	}

	/* ── Buttons ─────────────────────────────────────────────────────── */
	.wp-block-button__link,
	.mcp-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 0.75rem 2rem;
		font-size: 0.85rem;
		min-height: 44px;
		line-height: 1;
	}

	/* ── Footer ──────────────────────────────────────────────────────── */
	.mcp-footer {
		padding: 3rem 1.25rem 0;
	}

	.mcp-footer__inner {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}

	.mcp-footer__brand {
		align-items: center;
		text-align: center;
	}

	.mcp-footer__social {
		justify-content: center;
	}

	.mcp-footer__links a,
	.mcp-footer__links span {
		font-size: 0.85rem;
		word-break: break-all;
	}

}

@media (min-width: 641px) and (max-width: 1024px) {
	.mcp-footer__inner {
		grid-template-columns: 1fr 1fr;
		gap: 2.5rem;
	}

	.mcp-footer__brand {
		grid-column: 1 / -1;
	}
}

/* ==========================================================================
   18. Accessibility — prefers-reduced-motion
   ========================================================================== */

/* ==========================================================================
   19. Servicios Page (DWMC-33, DWMC-34, DWMC-35, DWMC-36)
   ========================================================================== */

/* ── Hero ────────────────────────────────────────────────────────────────── */
.mcp-serv-hero {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background-color: var(--mcp-negro);
}

.mcp-serv-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	transition: transform 8s ease-out;
}

.mcp-serv-hero:hover .mcp-serv-hero__bg {
	transform: scale(1.04);
}

.mcp-serv-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.45) 0%,
		rgba(0, 0, 0, 0.7) 100%
	);
}

.mcp-serv-hero__content {
	position: relative;
	z-index: 2;
	text-align: center;
	padding: 2rem;
	max-width: 900px;
}

.mcp-serv-hero__line {
	width: 60px;
	height: 1px;
	background-color: var(--mcp-arena);
	margin: 0 auto 2rem;
	opacity: 0;
	transform: scaleX(0);
	transition: opacity 0.8s ease, transform 0.8s ease;
	transition-delay: 0.3s;
}

.mcp-serv-hero__eyebrow {
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	letter-spacing: 0.4em;
	color: var(--mcp-arena);
	text-transform: uppercase;
	margin-bottom: 1.5rem;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.8s ease, transform 0.8s ease;
	transition-delay: 0.5s;
}

.mcp-serv-hero__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(2rem, 5vw, 4rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.2em;
	line-height: 1.15;
	margin-bottom: 1.5rem;
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 1s ease, transform 1s ease;
	transition-delay: 0.7s;
}

.mcp-serv-hero__subtitle {
	font-family: var(--mcp-font-body);
	font-size: clamp(0.9rem, 1.5vw, 1.05rem);
	color: rgba(255, 255, 255, 0.65);
	line-height: 1.8;
	max-width: 600px;
	margin: 0 auto 2rem;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.8s ease, transform 0.8s ease;
	transition-delay: 0.9s;
}

.mcp-serv-hero__scroll {
	position: absolute;
	bottom: 2.5rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	color: var(--mcp-arena);
	font-size: 0.65rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
}

.mcp-serv-hero__scroll-line {
	width: 1px;
	height: 40px;
	background: linear-gradient(to bottom, var(--mcp-arena), transparent);
	animation: mcp-scroll-pulse 2s ease-in-out infinite;
}

@keyframes mcp-scroll-pulse {
	0%, 100% { opacity: 1; transform: scaleY(1); }
	50% { opacity: 0.3; transform: scaleY(0.6); }
}

/* Activate hero animations when visible */
.mcp-serv-hero.mcp-visible .mcp-serv-hero__line {
	opacity: 1;
	transform: scaleX(1);
}

.mcp-serv-hero.mcp-visible .mcp-serv-hero__eyebrow,
.mcp-serv-hero.mcp-visible .mcp-serv-hero__title,
.mcp-serv-hero.mcp-visible .mcp-serv-hero__subtitle {
	opacity: 1;
	transform: translateY(0);
}

/* ── Intro / Valor Añadido ───────────────────────────────────────────────── */
.mcp-serv-intro {
	padding: 7rem 2rem;
	background-color: var(--mcp-arena);
}

.mcp-serv-intro__inner {
	max-width: 800px;
	margin: 0 auto;
	text-align: center;
}

.mcp-serv-intro__eyebrow {
	font-family: var(--mcp-font-body);
	font-size: 0.7rem;
	letter-spacing: 0.35em;
	color: var(--mcp-negro);
	text-transform: uppercase;
	margin-bottom: 1rem;
	opacity: 0.6;
}

.mcp-serv-intro__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.6rem, 3.5vw, 2.5rem);
	color: var(--mcp-negro);
	letter-spacing: 0.15em;
	margin-bottom: 2.5rem;
	line-height: 1.3;
}

.mcp-serv-intro__divider {
	width: 80px;
	height: 1px;
	background-color: var(--mcp-negro);
	margin: 0 auto 2.5rem;
	opacity: 0.25;
}

.mcp-serv-intro__text {
	font-family: var(--mcp-font-body);
	font-size: clamp(0.9rem, 1.3vw, 1rem);
	color: var(--mcp-blanco-suave);
	line-height: 2;
	max-width: 680px;
	margin: 0 auto;
}

/* ── Service Modules (Venta + Renta) ─────────────────────────────────────── */
.mcp-serv-module {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 80vh;
	align-items: stretch;
}

/* --reverse removed: module 02 uses natural DOM order (content left, image right) */

.mcp-serv-module__image {
	position: relative;
	overflow: hidden;
	min-height: 500px;
	font-size: 0;
	line-height: 0;
	background-color: #1a1a1a;
}

.mcp-serv-module__image img {
	display: block;
	position: absolute;
	inset: -10px;
	width: calc(100% + 20px);
	height: calc(100% + 20px);
	object-fit: cover;
	object-position: center center;
	transition: transform 0.8s ease;
}

.mcp-serv-module__image:hover img {
	transform: scale(1.05);
}

.mcp-serv-module__image-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.mcp-serv-module--venta .mcp-serv-module__image-overlay {
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.4) 0%, transparent 60%);
}

.mcp-serv-module--renta .mcp-serv-module__image-overlay {
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.4) 0%, transparent 60%);
}

.mcp-serv-module--renta .mcp-serv-module__image img {
	object-position: center 40%;
}

.mcp-serv-module__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 5rem 4rem;
	background-color: var(--mcp-negro);
}

.mcp-serv-module--renta .mcp-serv-module__content {
	background-color: var(--mcp-negro-suave);
}

.mcp-serv-module__number {
	font-family: var(--mcp-font-display);
	font-size: clamp(3rem, 6vw, 5rem);
	color: rgba(206, 199, 177, 0.12);
	line-height: 1;
	margin-bottom: 1rem;
}

.mcp-serv-module__eyebrow {
	font-family: var(--mcp-font-body);
	font-size: 0.65rem;
	letter-spacing: 0.4em;
	color: var(--mcp-arena);
	text-transform: uppercase;
	margin-bottom: 1rem;
}

.mcp-serv-module__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.4rem, 2.5vw, 2rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.12em;
	line-height: 1.3;
	margin-bottom: 2rem;
}

.mcp-serv-module__line {
	width: 50px;
	height: 1px;
	background-color: var(--mcp-arena);
	margin-bottom: 2rem;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.8s ease;
	transition-delay: 0.3s;
}

.mcp-serv-module.mcp-visible .mcp-serv-module__line {
	transform: scaleX(1);
}

.mcp-serv-module__text {
	font-family: var(--mcp-font-body);
	font-size: clamp(0.85rem, 1.2vw, 0.95rem);
	color: rgba(255, 255, 255, 0.65);
	line-height: 2;
	margin-bottom: 2.5rem;
}

.mcp-serv-module__features {
	list-style: none;
	padding: 0;
	margin: 0 0 2.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.mcp-serv-module__feature {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--mcp-font-body);
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.55);
	letter-spacing: 0.05em;
}

.mcp-serv-module__feature::before {
	content: '';
	width: 20px;
	height: 1px;
	background-color: var(--mcp-arena);
	flex-shrink: 0;
}

.mcp-serv-module__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--mcp-arena);
	text-decoration: none;
	padding: 0.75rem 0;
	border-bottom: 1px solid rgba(206, 199, 177, 0.3);
	transition: border-color var(--mcp-transition), gap var(--mcp-transition);
	min-height: 44px;
}

.mcp-serv-module__cta:hover {
	border-color: var(--mcp-arena);
	gap: 1rem;
	color: var(--mcp-blanco);
	background-color: rgba(206, 199, 177, 0.12);
}

.mcp-serv-module__cta-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background-color: var(--mcp-arena);
	position: relative;
	transition: width var(--mcp-transition);
}

.mcp-serv-module__cta-arrow::after {
	content: '';
	position: absolute;
	right: 0;
	top: 50%;
	width: 6px;
	height: 6px;
	border-right: 1px solid var(--mcp-arena);
	border-top: 1px solid var(--mcp-arena);
	transform: translateY(-50%) rotate(45deg);
}

.mcp-serv-module__cta:hover .mcp-serv-module__cta-arrow {
	width: 30px;
}

/* ── Stats Strip ─────────────────────────────────────────────────────────── */
.mcp-serv-stats {
	background-color: var(--mcp-arena);
	padding: 4rem 2rem;
}

.mcp-serv-stats__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
}

.mcp-serv-stat {
	text-align: center;
	padding: 1.5rem 1rem;
	position: relative;
}

.mcp-serv-stat:not(:last-child)::after {
	content: '';
	position: absolute;
	right: 0;
	top: 20%;
	height: 60%;
	width: 1px;
	background-color: rgba(0, 0, 0, 0.12);
}

.mcp-serv-stat__value {
	font-family: var(--mcp-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	color: var(--mcp-negro);
	line-height: 1;
	margin-bottom: 0.5rem;
}

.mcp-serv-stat__label {
	font-family: var(--mcp-font-body);
	font-size: 0.65rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--mcp-blanco-suave);
}

/* ── CTA Final ───────────────────────────────────────────────────────────── */
.mcp-serv-cta {
	position: relative;
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.mcp-serv-cta__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	opacity: 0.35;
}

.mcp-serv-cta__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0.5) 0%,
		rgba(0, 0, 0, 0.75) 100%
	);
}

.mcp-serv-cta__content {
	position: relative;
	z-index: 2;
	text-align: center;
	padding: 3rem 2rem;
	max-width: 700px;
}

.mcp-serv-cta__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.5rem, 3.5vw, 2.5rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.15em;
	line-height: 1.3;
	margin-bottom: 1.5rem;
}

.mcp-serv-cta__text {
	font-family: var(--mcp-font-body);
	font-size: clamp(0.85rem, 1.2vw, 0.95rem);
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.8;
	margin-bottom: 2.5rem;
}

.mcp-serv-cta__buttons {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.mcp-btn--outline {
	background-color: transparent;
	color: var(--mcp-arena);
	border: 1px solid var(--mcp-arena);
}

.mcp-btn--outline:hover {
	background-color: var(--mcp-arena);
	color: var(--mcp-negro);
}

/* CTA final — both buttons same outline style */
.mcp-serv-cta__buttons .mcp-btn {
	background-color: transparent;
	color: var(--mcp-arena);
	border: 1px solid var(--mcp-arena);
}

.mcp-serv-cta__buttons .mcp-btn:hover {
	background-color: var(--mcp-arena);
	color: var(--mcp-negro);
	border-color: var(--mcp-arena);
}

/* ── Servicios Responsive ────────────────────────────────────────────────── */

/* Tablet */
@media (max-width: 1024px) {
	.mcp-serv-module {
		grid-template-columns: 1fr;
		min-height: auto;
	}

	.mcp-serv-module--renta .mcp-serv-module__image {
		order: -1;
	}

	.mcp-serv-module__image {
		min-height: 400px;
	}

	.mcp-serv-module__content {
		padding: 4rem 3rem;
	}

	.mcp-serv-stats__inner {
		grid-template-columns: repeat(2, 1fr);
	}

	.mcp-serv-stat:nth-child(2)::after {
		display: none;
	}
}

/* Mobile */
@media (max-width: 768px) {
	.mcp-serv-hero {
		min-height: 100svh;
	}

	.mcp-serv-hero__bg,
	.mcp-serv-cta__bg {
		background-attachment: scroll;
	}

	.mcp-serv-hero__content {
		padding: 1.5rem;
		max-width: 100%;
	}

	.mcp-serv-hero__title {
		letter-spacing: 0.1em;
	}

	.mcp-serv-intro {
		padding: 4rem 1.5rem;
	}

	.mcp-serv-module__image {
		min-height: 300px;
	}

	.mcp-serv-module__content {
		padding: 3rem 1.5rem;
	}

	.mcp-serv-module__number {
		font-size: 3rem;
	}

	.mcp-serv-stats__inner {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}

	.mcp-serv-stat:not(:last-child)::after {
		display: none;
	}

	.mcp-serv-stat {
		padding: 1rem;
		border: 1px solid rgba(0, 0, 0, 0.08);
		border-radius: 8px;
	}

	.mcp-serv-cta {
		min-height: 50vh;
	}

	.mcp-serv-cta__buttons {
		flex-direction: column;
		align-items: center;
	}

	.mcp-serv-cta__buttons .mcp-btn {
		width: 100%;
		max-width: 280px;
	}
}

/* ── Servicios animation helpers ─────────────────────────────────────────── */
.mcp-animate--from-left {
	opacity: 0;
	transform: translateX(-40px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}

.mcp-animate--from-right {
	opacity: 0;
	transform: translateX(40px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}

.mcp-animate--from-left.mcp-visible,
.mcp-animate--from-right.mcp-visible {
	opacity: 1;
	transform: translateX(0);
}

.mcp-animate--scale {
	opacity: 0;
	transform: scale(0.95);
	transition: opacity 0.8s ease, transform 0.8s ease;
}

.mcp-animate--scale.mcp-visible {
	opacity: 1;
	transform: scale(1);
}

/* Stagger delays for child elements */
.mcp-stagger > *:nth-child(1) { transition-delay: 0s; }
.mcp-stagger > *:nth-child(2) { transition-delay: 0.1s; }
.mcp-stagger > *:nth-child(3) { transition-delay: 0.2s; }
.mcp-stagger > *:nth-child(4) { transition-delay: 0.3s; }
.mcp-stagger > *:nth-child(5) { transition-delay: 0.4s; }
.mcp-stagger > *:nth-child(6) { transition-delay: 0.5s; }

/* ==========================================================================
   20. Nosotros Page
   ========================================================================== */

/* ── Hero Banner ──────────────────────────────────────────────────────────── */
.mcp-nosotros-hero {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	background-color: var(--mcp-negro);
}

.mcp-nosotros-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.45) 0%,
		rgba(0, 0, 0, 0.7) 100%
	);
}

.mcp-nosotros-hero__content {
	position: relative;
	z-index: 1;
	text-align: center;
	padding: 2rem;
	max-width: 900px;
}

.mcp-nosotros-hero__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(2rem, 5vw, 4rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.2em;
	line-height: 1.15;
	margin-bottom: 1.5rem;
}

.mcp-nosotros-hero__subtitle {
	font-family: var(--mcp-font-body);
	font-size: clamp(0.9rem, 1.5vw, 1.05rem);
	color: rgba(255, 255, 255, 0.65);
	line-height: 1.8;
	max-width: 600px;
	margin: 0 auto 2rem;
}

.mcp-nosotros-hero__scroll {
	position: absolute;
	bottom: 2.5rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	color: var(--mcp-arena);
	font-size: 0.65rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
}

.mcp-nosotros-hero__scroll-line {
	width: 1px;
	height: 40px;
	background: linear-gradient(to bottom, var(--mcp-arena), transparent);
	animation: mcp-scroll-pulse 2s ease-in-out infinite;
}

/* ── Bio Section ──────────────────────────────────────────────────────────── */
.mcp-nosotros-bio {
	padding: 7rem 2rem;
	background-color: var(--mcp-negro);
}

.mcp-nosotros-bio__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 5rem;
	align-items: center;
}

.mcp-nosotros-bio__image {
	position: relative;
}

.mcp-nosotros-bio__image-frame {
	overflow: hidden;
	border-radius: 4px;
	position: relative;
	z-index: 1;
}

.mcp-nosotros-bio__image-frame img {
	width: 100%;
	height: auto;
	display: block;
	min-height: 500px;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.mcp-nosotros-bio__image:hover .mcp-nosotros-bio__image-frame img {
	transform: scale(1.03);
}

.mcp-nosotros-bio__image-accent {
	position: absolute;
	top: -15px;
	left: -15px;
	width: 100%;
	height: 100%;
	border: 1px solid var(--mcp-arena);
	border-radius: 4px;
	z-index: 0;
	transition: transform 0.4s ease;
}

.mcp-nosotros-bio__image:hover .mcp-nosotros-bio__image-accent {
	transform: translate(-5px, -5px);
}

.mcp-nosotros-bio__eyebrow {
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	color: var(--mcp-arena);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	display: block;
	margin-bottom: 1.5rem;
}

.mcp-nosotros-bio__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.1em;
	line-height: 1.2;
	margin-bottom: 1.5rem;
}

.mcp-nosotros-bio__divider {
	width: 50px;
	height: 1px;
	background-color: var(--mcp-arena);
	margin-bottom: 2rem;
}

.mcp-nosotros-bio__text {
	font-family: var(--mcp-font-body);
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.95rem;
	line-height: 1.9;
	margin-bottom: 1.5rem;
}

.mcp-nosotros-bio__text--accent {
	color: var(--mcp-arena);
	font-style: italic;
	font-size: 1.05rem;
	line-height: 1.8;
	border-left: 2px solid var(--mcp-arena);
	padding-left: 1.5rem;
	margin-top: 2rem;
}

/* ── Values / Philosophy ──────────────────────────────────────────────────── */
.mcp-nosotros-values {
	padding: 7rem 2rem;
	background-color: var(--mcp-arena);
}

.mcp-nosotros-values__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.mcp-nosotros-values__header {
	text-align: center;
	margin-bottom: 4rem;
}

.mcp-nosotros-values__eyebrow {
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	color: var(--mcp-negro);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	display: block;
	margin-bottom: 1rem;
	opacity: 0.6;
}

.mcp-nosotros-values__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	color: var(--mcp-negro);
	letter-spacing: 0.1em;
}

.mcp-nosotros-values__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
}

.mcp-nosotros-value {
	background-color: rgba(255, 255, 255, 0.3);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 6px;
	padding: 2.5rem 2rem;
	text-align: center;
	transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
	cursor: default;
}

.mcp-nosotros-value:hover {
	border-color: rgba(0, 0, 0, 0.2);
	transform: translateY(-6px);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
}

.mcp-nosotros-value__icon {
	width: 64px;
	height: 64px;
	margin: 0 auto 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(0, 0, 0, 0.15);
	border-radius: 50%;
	color: var(--mcp-negro);
	transition: border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}

.mcp-nosotros-value:hover .mcp-nosotros-value__icon {
	background-color: var(--mcp-negro);
	border-color: var(--mcp-negro);
	color: var(--mcp-arena);
}

.mcp-nosotros-value__title {
	font-family: var(--mcp-font-display);
	font-size: 1rem;
	color: var(--mcp-negro);
	letter-spacing: 0.15em;
	margin-bottom: 1rem;
}

.mcp-nosotros-value__line {
	width: 30px;
	height: 1px;
	background-color: var(--mcp-negro);
	margin: 0 auto 1rem;
	opacity: 0.3;
	transition: width 0.3s ease, opacity 0.3s ease;
}

.mcp-nosotros-value:hover .mcp-nosotros-value__line {
	width: 50px;
	opacity: 0.6;
}

.mcp-nosotros-value__text {
	font-family: var(--mcp-font-body);
	font-size: 0.85rem;
	color: rgba(0, 0, 0, 0.6);
	line-height: 1.7;
}

/* ── Markets ──────────────────────────────────────────────────────────────── */
.mcp-nosotros-markets {
	padding: 7rem 2rem;
	background-color: var(--mcp-negro);
}

.mcp-nosotros-markets__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.mcp-nosotros-markets__header {
	text-align: center;
	margin-bottom: 4rem;
}

.mcp-nosotros-markets__eyebrow {
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	color: var(--mcp-arena);
	letter-spacing: 0.3em;
	display: block;
	margin-bottom: 1rem;
}

.mcp-nosotros-markets__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.1em;
	margin-bottom: 1rem;
}

.mcp-nosotros-markets__subtitle {
	font-family: var(--mcp-font-body);
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.5);
	max-width: 600px;
	margin: 0 auto;
}

/* ── Markets Carousel ────────────────────────────────────────────────────── */
.mcp-nosotros-markets__carousel {
	position: relative;
	max-width: 1000px;
	margin: 0 auto;
}

.mcp-nosotros-markets__track {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 4px;
	overflow: hidden;
}

.mcp-nosotros-market {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	visibility: hidden;
	transform: translateX(40px);
	transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1),
	            transform 0.8s cubic-bezier(0.4, 0, 0.2, 1),
	            visibility 0s 0.8s;
}

.mcp-nosotros-market--active {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
	transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1),
	            transform 0.8s cubic-bezier(0.4, 0, 0.2, 1),
	            visibility 0s 0s;
	z-index: 2;
}

/* Exit directions */
.mcp-nosotros-market--exit-next {
	opacity: 0;
	visibility: visible;
	transform: translateX(-40px);
	transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1),
	            transform 0.8s cubic-bezier(0.4, 0, 0.2, 1),
	            visibility 0s 0.8s;
	z-index: 1;
}

.mcp-nosotros-market--exit-prev {
	opacity: 0;
	visibility: visible;
	transform: translateX(40px);
	transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1),
	            transform 0.8s cubic-bezier(0.4, 0, 0.2, 1),
	            visibility 0s 0.8s;
	z-index: 1;
}

/* Enter setup (before becoming active) */
.mcp-nosotros-market--enter-next {
	transform: translateX(40px);
	transition: none;
}

.mcp-nosotros-market--enter-prev {
	transform: translateX(-40px);
	transition: none;
}

.mcp-nosotros-market__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(0, 0, 0, 0.8) 0%,
		rgba(0, 0, 0, 0.1) 50%,
		transparent 100%
	);
}

.mcp-nosotros-market__content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 2.5rem 3rem;
	z-index: 1;
}

.mcp-nosotros-market__name {
	display: block;
	font-family: var(--mcp-font-display);
	font-size: clamp(2rem, 4vw, 3.5rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.15em;
	margin-bottom: 0.35rem;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.4);
}

.mcp-nosotros-market__type {
	display: block;
	font-family: var(--mcp-font-body);
	font-size: 0.8rem;
	color: var(--mcp-arena);
	letter-spacing: 0.25em;
	text-transform: uppercase;
}

/* ── Arrow nav ────────────────────────────────────────────────────────────── */
.mcp-nosotros-markets__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(0, 0, 0, 0.35);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: var(--mcp-blanco);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.35s ease;
	opacity: 0;
	padding: 0;
}

.mcp-nosotros-markets__carousel:hover .mcp-nosotros-markets__arrow {
	opacity: 1;
}

.mcp-nosotros-markets__arrow:hover {
	background: rgba(206, 199, 177, 0.2);
	border-color: var(--mcp-arena);
	color: var(--mcp-arena);
}

.mcp-nosotros-markets__arrow:active {
	transform: translateY(-50%) scale(0.92);
}

.mcp-nosotros-markets__arrow--prev {
	left: 1rem;
}

.mcp-nosotros-markets__arrow--next {
	right: 1rem;
}

/* ── Dots nav ────────────────────────────────────────────────────────────── */
.mcp-nosotros-markets__nav {
	display: flex;
	justify-content: center;
	padding-top: 1.75rem;
}

.mcp-nosotros-markets__dots {
	display: flex;
	gap: 0.75rem;
	align-items: center;
}

.mcp-nosotros-markets__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	border: 1px solid rgba(206, 199, 177, 0.4);
	background: transparent;
	cursor: pointer;
	padding: 0;
	transition: all 0.4s ease;
}

.mcp-nosotros-markets__dot:hover {
	border-color: var(--mcp-arena);
	background: rgba(206, 199, 177, 0.3);
}

.mcp-nosotros-markets__dot--active {
	width: 28px;
	border-radius: 4px;
	background: var(--mcp-arena);
	border-color: var(--mcp-arena);
}

.mcp-nosotros-markets__dot--active:hover {
	background: var(--mcp-arena);
}

/* ── Journey / Timeline ───────────────────────────────────────────────────── */
.mcp-nosotros-journey {
	padding: 7rem 2rem;
	background-color: var(--mcp-arena);
}

.mcp-nosotros-journey__inner {
	max-width: 900px;
	margin: 0 auto;
}

.mcp-nosotros-journey__header {
	text-align: center;
	margin-bottom: 4rem;
}

.mcp-nosotros-journey__eyebrow {
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	color: var(--mcp-negro);
	letter-spacing: 0.3em;
	display: block;
	margin-bottom: 1rem;
	opacity: 0.6;
}

.mcp-nosotros-journey__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	color: var(--mcp-negro);
	letter-spacing: 0.1em;
}

.mcp-nosotros-timeline {
	position: relative;
	padding: 2rem 0;
}

.mcp-nosotros-timeline__line {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 1px;
	background-color: rgba(0, 0, 0, 0.15);
	transform: translateX(-50%);
}

.mcp-nosotros-timeline__item {
	position: relative;
	display: flex;
	justify-content: flex-end;
	padding-right: calc(50% + 40px);
	padding-bottom: 3rem;
}

.mcp-nosotros-timeline__item--right {
	justify-content: flex-start;
	padding-right: 0;
	padding-left: calc(50% + 40px);
}

.mcp-nosotros-timeline__dot {
	position: absolute;
	left: 50%;
	top: 0;
	width: 14px;
	height: 14px;
	background-color: var(--mcp-arena);
	border: 3px solid var(--mcp-negro);
	border-radius: 50%;
	transform: translateX(-50%);
	z-index: 1;
	transition: background-color 0.3s ease, transform 0.3s ease;
}

.mcp-nosotros-timeline__item:hover .mcp-nosotros-timeline__dot {
	background-color: var(--mcp-negro);
	border-color: var(--mcp-arena);
	transform: translateX(-50%) scale(1.3);
}

.mcp-nosotros-timeline__card {
	background-color: rgba(255, 255, 255, 0.35);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 6px;
	padding: 2rem;
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.mcp-nosotros-timeline__item:hover .mcp-nosotros-timeline__card {
	border-color: rgba(0, 0, 0, 0.2);
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.06);
}

.mcp-nosotros-timeline__year {
	display: block;
	font-family: var(--mcp-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	color: var(--mcp-negro);
	letter-spacing: 0.05em;
	line-height: 1;
	margin-bottom: 0.75rem;
	opacity: 0.2;
}

.mcp-nosotros-timeline__item:hover .mcp-nosotros-timeline__year {
	opacity: 0.5;
}

.mcp-nosotros-timeline__heading {
	font-family: var(--mcp-font-display);
	font-size: 0.95rem;
	color: var(--mcp-negro);
	letter-spacing: 0.15em;
	margin-bottom: 0.75rem;
}

.mcp-nosotros-timeline__text {
	font-family: var(--mcp-font-body);
	font-size: 0.85rem;
	color: rgba(0, 0, 0, 0.6);
	line-height: 1.7;
}

/* ── Testimonials Carousel ────────────────────────────────────────────────── */
.mcp-nosotros-testimonials {
	padding: 7rem 2rem;
	background-color: var(--mcp-negro);
}

.mcp-nosotros-testimonials__inner {
	max-width: 800px;
	margin: 0 auto;
}

.mcp-nosotros-testimonials__header {
	text-align: center;
	margin-bottom: 4rem;
}

.mcp-nosotros-testimonials__eyebrow {
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	color: var(--mcp-arena);
	letter-spacing: 0.3em;
	display: block;
	margin-bottom: 1rem;
}

.mcp-nosotros-testimonials__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.1em;
}

.mcp-nosotros-carousel {
	position: relative;
}

.mcp-nosotros-carousel__track {
	position: relative;
	min-height: 300px;
	overflow: hidden;
}

.mcp-nosotros-carousel__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.6s ease, transform 0.6s ease;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 2rem;
	margin: 0;
	border: none;
	pointer-events: none;
}

.mcp-nosotros-carousel__slide--active {
	opacity: 1;
	transform: translateY(0);
	position: relative;
	pointer-events: auto;
}

.mcp-nosotros-carousel__quote-mark {
	color: var(--mcp-arena);
	margin-bottom: 1.5rem;
}

.mcp-nosotros-carousel__text {
	font-family: var(--mcp-font-body);
	font-size: 1.05rem;
	color: rgba(255, 255, 255, 0.75);
	line-height: 1.9;
	font-style: italic;
	max-width: 650px;
	margin: 0 auto 2rem;
}

.mcp-nosotros-carousel__author {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
}

.mcp-nosotros-carousel__author-line {
	width: 30px;
	height: 1px;
	background-color: var(--mcp-arena);
	margin-bottom: 0.5rem;
}

.mcp-nosotros-carousel__name {
	font-family: var(--mcp-font-display);
	font-size: 1.1rem;
	color: var(--mcp-arena);
	letter-spacing: 0.1em;
	font-style: normal;
}

.mcp-nosotros-carousel__role {
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.4);
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.mcp-nosotros-carousel__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	margin-top: 2rem;
}

.mcp-nosotros-carousel__arrow {
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 50%;
	color: var(--mcp-blanco);
	cursor: pointer;
	transition: border-color 0.3s ease, color 0.3s ease, transform 0.2s ease;
	padding: 0;
}

.mcp-nosotros-carousel__arrow:hover {
	border-color: var(--mcp-arena);
	color: var(--mcp-arena);
	transform: scale(1.05);
}

.mcp-nosotros-carousel__dots {
	display: flex;
	gap: 0.75rem;
	align-items: center;
}

.mcp-nosotros-carousel__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.2);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: background-color 0.3s ease, transform 0.2s ease;
}

.mcp-nosotros-carousel__dot--active {
	background-color: var(--mcp-arena);
	transform: scale(1.2);
}

.mcp-nosotros-carousel__dot:hover {
	background-color: var(--mcp-arena);
}

/* ── CTA Section ──────────────────────────────────────────────────────────── */
.mcp-nosotros-cta {
	position: relative;
	min-height: 50vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	background-color: var(--mcp-negro-suave);
}

.mcp-nosotros-cta__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.65) 0%,
		rgba(0, 0, 0, 0.55) 50%,
		rgba(0, 0, 0, 0.7) 100%
	);
}

.mcp-nosotros-cta__content {
	position: relative;
	z-index: 1;
	text-align: center;
	padding: 5rem 2rem;
	max-width: 700px;
}

.mcp-nosotros-cta__eyebrow {
	display: block;
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	color: var(--mcp-arena);
	letter-spacing: 0.3em;
	margin-bottom: 1.5rem;
}

.mcp-nosotros-cta__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.75rem, 4vw, 3rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.1em;
	line-height: 1.2;
	margin-bottom: 1.5rem;
}

.mcp-nosotros-cta__text {
	font-family: var(--mcp-font-body);
	font-size: 0.95rem;
	color: rgba(255, 255, 255, 0.65);
	line-height: 1.7;
	margin-bottom: 2.5rem;
}

.mcp-nosotros-cta__buttons {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
}

.mcp-btn--outline {
	background-color: transparent;
	border: 1px solid var(--mcp-arena);
	color: var(--mcp-arena);
}

.mcp-btn--outline:hover {
	background-color: var(--mcp-arena);
	color: var(--mcp-negro);
}

/* Light button for dark CTA backgrounds */
.mcp-nosotros-cta .mcp-btn:not(.mcp-btn--outline) {
	background-color: var(--mcp-arena);
	color: var(--mcp-negro);
	border-color: var(--mcp-arena);
}

.mcp-nosotros-cta .mcp-btn:not(.mcp-btn--outline):hover {
	background-color: var(--mcp-blanco);
	border-color: var(--mcp-blanco);
}

/* ── Bio — Long form (3 actos) ─────────────────────────────────────────── */
.mcp-nosotros-bio--long .mcp-nosotros-bio__inner {
	align-items: stretch;
	gap: 6rem;
}

.mcp-nosotros-bio--long .mcp-nosotros-bio__image {
	position: relative;
	align-self: stretch;
	height: 100%;
}

.mcp-nosotros-bio__image-sticky {
	position: sticky;
	top: 7rem;
}

.mcp-nosotros-bio__act {
	margin-top: 3.5rem;
	padding-top: 2.5rem;
	border-top: 1px solid rgba(206, 199, 177, 0.18);
}

.mcp-nosotros-bio__act:first-of-type {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.mcp-nosotros-bio__act-label {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--mcp-arena);
	margin-bottom: 1.75rem;
}

.mcp-nosotros-bio__act-num {
	font-family: var(--mcp-font-display);
	font-size: 1.1rem;
	letter-spacing: 0.05em;
	color: var(--mcp-arena);
	border: 1px solid rgba(206, 199, 177, 0.5);
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background-color: rgba(206, 199, 177, 0.06);
}

.mcp-nosotros-bio__pullquote {
	position: relative;
	font-family: var(--mcp-font-display);
	font-size: clamp(1.4rem, 2.3vw, 2rem);
	line-height: 1.4;
	color: var(--mcp-blanco);
	letter-spacing: 0.05em;
	text-align: center;
	margin: 2.5rem 0;
	padding: 2.5rem 1.5rem;
	border-top: 1px solid rgba(206, 199, 177, 0.3);
	border-bottom: 1px solid rgba(206, 199, 177, 0.3);
}

.mcp-nosotros-bio__pullquote-mark {
	display: block;
	font-family: var(--mcp-font-display);
	font-size: 4rem;
	line-height: 0.5;
	color: var(--mcp-arena);
	margin-bottom: 0.75rem;
	opacity: 0.6;
}

/* ── Focus Section (Áreas de comercialización) ──────────────────────── */
.mcp-nosotros-focus {
	padding: 7rem 2rem;
	background-color: var(--mcp-blanco);
	position: relative;
	overflow: hidden;
}

.mcp-nosotros-focus::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 80px;
	height: 1px;
	background-color: var(--mcp-arena);
}

.mcp-nosotros-focus__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.mcp-nosotros-focus__header {
	text-align: center;
	margin-bottom: 4.5rem;
}

.mcp-nosotros-focus__eyebrow {
	display: block;
	font-family: var(--mcp-font-body);
	font-size: 0.75rem;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--mcp-arena);
	margin-bottom: 1.25rem;
}

.mcp-nosotros-focus__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.75rem, 3.2vw, 2.75rem);
	color: var(--mcp-negro);
	letter-spacing: 0.1em;
	margin-bottom: 1.5rem;
}

.mcp-nosotros-focus__subtitle {
	font-family: var(--mcp-font-body);
	font-size: 0.95rem;
	line-height: 1.8;
	color: rgba(0, 0, 0, 0.65);
	max-width: 720px;
	margin: 0 auto;
}

.mcp-nosotros-focus__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

.mcp-nosotros-focus-card {
	position: relative;
	background-color: var(--mcp-negro);
	color: var(--mcp-blanco);
	padding: 3.5rem 2.25rem 2.75rem;
	border: 1px solid var(--mcp-negro);
	transition: transform 0.5s ease, box-shadow 0.5s ease;
	overflow: hidden;
}

.mcp-nosotros-focus-card::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background-color: var(--mcp-arena);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.6s ease;
}

.mcp-nosotros-focus-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 25px 45px -20px rgba(0, 0, 0, 0.35);
}

.mcp-nosotros-focus-card:hover::after {
	transform: scaleX(1);
}

.mcp-nosotros-focus-card__number {
	position: absolute;
	top: 1.25rem;
	right: 1.5rem;
	font-family: var(--mcp-font-display);
	font-size: 0.9rem;
	letter-spacing: 0.2em;
	color: var(--mcp-arena);
	opacity: 0.7;
}

.mcp-nosotros-focus-card__icon {
	color: var(--mcp-arena);
	margin-bottom: 1.75rem;
	display: inline-block;
}

.mcp-nosotros-focus-card__title {
	font-family: var(--mcp-font-display);
	font-size: 1.25rem;
	letter-spacing: 0.15em;
	color: var(--mcp-blanco);
	margin-bottom: 1rem;
	line-height: 1.3;
}

.mcp-nosotros-focus-card__line {
	width: 36px;
	height: 1px;
	background-color: var(--mcp-arena);
	margin-bottom: 1.25rem;
}

.mcp-nosotros-focus-card__text {
	font-family: var(--mcp-font-body);
	font-size: 0.9rem;
	line-height: 1.85;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
}

/* ── Closing Poetic Section ─────────────────────────────────────────── */
.mcp-nosotros-closing {
	padding: 7rem 2rem;
	background-color: var(--mcp-arena);
	position: relative;
	text-align: center;
}

.mcp-nosotros-closing__inner {
	max-width: 880px;
	margin: 0 auto;
}

.mcp-nosotros-closing__ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	color: var(--mcp-negro);
	margin-bottom: 2.5rem;
	opacity: 0.55;
}

.mcp-nosotros-closing__ornament-line {
	display: block;
	width: 60px;
	height: 1px;
	background-color: var(--mcp-negro);
}

.mcp-nosotros-closing__lead {
	font-family: var(--mcp-font-body);
	font-size: clamp(1rem, 1.6vw, 1.15rem);
	color: rgba(0, 0, 0, 0.7);
	letter-spacing: 0.04em;
	line-height: 1.6;
	margin-bottom: 1.25rem;
	font-style: italic;
}

.mcp-nosotros-closing__main {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.85rem, 4vw, 3.25rem);
	color: var(--mcp-negro);
	letter-spacing: 0.06em;
	line-height: 1.25;
	margin-bottom: 2rem;
	font-weight: 400;
}

.mcp-nosotros-closing__tail {
	font-family: var(--mcp-font-body);
	font-size: clamp(0.95rem, 1.4vw, 1.05rem);
	color: rgba(0, 0, 0, 0.65);
	line-height: 1.8;
	max-width: 640px;
	margin: 0 auto;
}

/* ── Nosotros Responsive — Tablet ─────────────────────────────────────────── */
@media (max-width: 1024px) {
	.mcp-nosotros-bio__inner {
		grid-template-columns: 1fr;
		gap: 3rem;
	}

	.mcp-nosotros-bio__image-frame img {
		min-height: 400px;
	}

	.mcp-nosotros-values__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.mcp-nosotros-markets__track {
		aspect-ratio: 16 / 10;
	}

	.mcp-nosotros-bio--long .mcp-nosotros-bio__inner {
		gap: 3rem;
	}

	.mcp-nosotros-bio__image-sticky {
		position: static;
	}

	.mcp-nosotros-focus__grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		max-width: 540px;
		margin: 0 auto;
	}
}

/* ── Nosotros Responsive — Mobile ─────────────────────────────────────────── */
@media (max-width: 768px) {
	.mcp-nosotros-hero {
		min-height: 100svh;
		background-attachment: scroll;
	}

	.mcp-nosotros-hero__title {
		letter-spacing: 0.1em;
	}

	.mcp-nosotros-bio {
		padding: 4rem 1.25rem;
	}

	.mcp-nosotros-bio__inner {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}

	.mcp-nosotros-bio__image-frame img {
		min-height: 350px;
	}

	.mcp-nosotros-bio__image-accent {
		display: none;
	}

	.mcp-nosotros-values {
		padding: 4rem 1.25rem;
	}

	.mcp-nosotros-values__grid {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.mcp-nosotros-value {
		padding: 2rem 1.5rem;
	}

	.mcp-nosotros-markets {
		padding: 4rem 1.25rem;
	}

	.mcp-nosotros-markets__track {
		aspect-ratio: 3 / 4;
		border-radius: 2px;
	}

	.mcp-nosotros-market__content {
		padding: 2rem 1.5rem;
	}

	.mcp-nosotros-market__name {
		font-size: clamp(1.75rem, 8vw, 2.5rem);
	}

	.mcp-nosotros-markets__arrow {
		opacity: 1;
		width: 40px;
		height: 40px;
		background: rgba(0, 0, 0, 0.45);
	}

	.mcp-nosotros-markets__arrow--prev {
		left: 0.5rem;
	}

	.mcp-nosotros-markets__arrow--next {
		right: 0.5rem;
	}

	.mcp-nosotros-journey {
		padding: 4rem 1.25rem;
	}

	/* Timeline — stack vertically on mobile */
	.mcp-nosotros-timeline__line {
		left: 20px;
	}

	.mcp-nosotros-timeline__item,
	.mcp-nosotros-timeline__item--right {
		padding-left: 55px;
		padding-right: 0;
		justify-content: flex-start;
	}

	.mcp-nosotros-timeline__dot {
		left: 20px;
	}

	.mcp-nosotros-testimonials {
		padding: 4rem 1.25rem;
	}

	.mcp-nosotros-carousel__track {
		min-height: auto;
	}

	.mcp-nosotros-carousel__text {
		font-size: 0.95rem;
	}

	.mcp-nosotros-carousel__arrow {
		width: 44px;
		height: 44px;
	}

	.mcp-nosotros-cta {
		background-attachment: scroll;
		min-height: 40vh;
	}

	.mcp-nosotros-cta__content {
		padding: 3rem 1.25rem;
	}

	.mcp-nosotros-cta__buttons {
		flex-direction: column;
		align-items: center;
	}

	.mcp-nosotros-bio__act {
		margin-top: 2.5rem;
		padding-top: 2rem;
	}

	.mcp-nosotros-bio__pullquote {
		font-size: 1.25rem;
		padding: 2rem 0.75rem;
		margin: 2rem 0;
	}

	.mcp-nosotros-focus {
		padding: 4rem 1.25rem;
	}

	.mcp-nosotros-focus__header {
		margin-bottom: 3rem;
	}

	.mcp-nosotros-focus-card {
		padding: 2.75rem 1.75rem 2.25rem;
	}

	.mcp-nosotros-closing {
		padding: 4.5rem 1.5rem;
	}

	.mcp-nosotros-closing__ornament-line {
		width: 40px;
	}
}

/* ==========================================================================
   21. Contacto Page (DWMC-7)
   ========================================================================== */

/* ── Hero Banner ──────────────────────────────────────────────────────────── */
.mcp-contacto-hero {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--mcp-negro);
	overflow: hidden;
}

.mcp-contacto-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	transition: transform 8s ease-out;
}

.mcp-contacto-hero:hover .mcp-contacto-hero__bg {
	transform: scale(1.03);
}

.mcp-contacto-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.45) 0%,
		rgba(0, 0, 0, 0.7) 100%
	);
}

.mcp-contacto-hero__content {
	position: relative;
	z-index: 1;
	text-align: center;
	padding: 2rem;
	max-width: 900px;
}

.mcp-contacto-hero__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(2rem, 5vw, 4rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.2em;
	line-height: 1.15;
	margin-bottom: 1.5rem;
}

.mcp-contacto-hero__subtitle {
	font-family: var(--mcp-font-body);
	font-size: clamp(0.9rem, 1.5vw, 1.05rem);
	color: rgba(255, 255, 255, 0.65);
	line-height: 1.8;
	max-width: 600px;
	margin: 0 auto 2rem;
}

.mcp-contacto-hero__scroll {
	position: absolute;
	bottom: 2.5rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	color: var(--mcp-arena);
	font-size: 0.65rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
}

.mcp-contacto-hero__scroll-line {
	display: block;
	width: 1px;
	height: 40px;
	background: var(--mcp-arena);
	animation: mcp-scroll-pulse 2s ease-in-out infinite;
}

/* ── Intro Section ────────────────────────────────────────────────────────── */
.mcp-contacto-intro {
	background-color: var(--mcp-negro);
	padding: 6rem 2rem;
	text-align: center;
}

.mcp-contacto-intro__inner {
	max-width: 800px;
	margin: 0 auto;
}

.mcp-contacto-intro__eyebrow {
	display: block;
	font-family: var(--mcp-font-body);
	font-size: 0.7rem;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--mcp-arena);
	margin-bottom: 1.5rem;
}

.mcp-contacto-intro__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.12em;
	margin-bottom: 2rem;
}

.mcp-contacto-intro__divider {
	width: 60px;
	height: 1px;
	background: var(--mcp-arena);
	margin: 0 auto 2rem;
}

.mcp-contacto-intro__text {
	font-size: clamp(0.85rem, 1.2vw, 0.95rem);
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.9;
	max-width: 650px;
	margin: 0 auto;
}

/* ── Channels Section ─────────────────────────────────────────────────────── */
.mcp-contacto-channels {
	background-color: var(--mcp-arena);
	padding: 6rem 2rem;
}

.mcp-contacto-channels__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.mcp-contacto-channels__header {
	text-align: center;
	margin-bottom: 4rem;
}

.mcp-contacto-channels__eyebrow {
	display: block;
	font-family: var(--mcp-font-body);
	font-size: 0.7rem;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--mcp-arena-oscuro);
	margin-bottom: 1rem;
}

.mcp-contacto-channels__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	color: var(--mcp-negro);
	letter-spacing: 0.12em;
}

.mcp-contacto-channels__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
}

.mcp-contacto-channel {
	background: var(--mcp-blanco);
	border-radius: 16px;
	padding: 3rem 2rem;
	text-align: center;
	text-decoration: none;
	color: var(--mcp-negro);
	transition: transform var(--mcp-transition), box-shadow var(--mcp-transition);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
}

.mcp-contacto-channel:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.mcp-contacto-channel__icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--mcp-negro);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mcp-arena);
	transition: background var(--mcp-transition), color var(--mcp-transition);
}

.mcp-contacto-channel:hover .mcp-contacto-channel__icon {
	background: var(--mcp-arena);
	color: var(--mcp-negro);
}

.mcp-contacto-channel__label {
	font-family: var(--mcp-font-display);
	font-size: 0.85rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.mcp-contacto-channel__value {
	font-family: var(--mcp-font-body);
	font-size: 0.8rem;
	color: rgba(0, 0, 0, 0.5);
	line-height: 1.6;
}

/* ── FAQ Accordion ────────────────────────────────────────────────────────── */
.mcp-contacto-faq {
	background-color: var(--mcp-negro);
	padding: 6rem 2rem;
}

.mcp-contacto-faq__inner {
	max-width: 900px;
	margin: 0 auto;
}

.mcp-contacto-faq__header {
	text-align: center;
	margin-bottom: 4rem;
}

.mcp-contacto-faq__eyebrow {
	display: block;
	font-family: var(--mcp-font-body);
	font-size: 0.7rem;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--mcp-arena);
	margin-bottom: 1rem;
}

.mcp-contacto-faq__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.12em;
}

.mcp-contacto-faq__list {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.mcp-faq-item {
	border-bottom: 1px solid rgba(206, 199, 177, 0.15);
}

.mcp-faq-item:first-child {
	border-top: 1px solid rgba(206, 199, 177, 0.15);
}

.mcp-faq-item__question {
	width: 100%;
	background: none;
	border: none;
	padding: 1.75rem 3rem 1.75rem 0;
	text-align: left;
	cursor: pointer;
	font-family: var(--mcp-font-display);
	font-size: clamp(0.95rem, 1.5vw, 1.15rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.08em;
	position: relative;
	transition: color var(--mcp-transition);
}

.mcp-faq-item__question:hover {
	color: var(--mcp-arena);
}

.mcp-faq-item__question::after {
	content: '+';
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.5rem;
	font-weight: 300;
	color: var(--mcp-arena);
	transition: transform var(--mcp-transition);
}

.mcp-faq-item--open .mcp-faq-item__question::after {
	content: '−';
	transform: translateY(-50%);
}

.mcp-faq-item__answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s ease, padding 0.4s ease;
	padding: 0 0 0 0;
}

.mcp-faq-item--open .mcp-faq-item__answer {
	max-height: 300px;
	padding: 0 0 2rem 0;
}

.mcp-faq-item__text {
	font-family: var(--mcp-font-body);
	font-size: clamp(0.82rem, 1.1vw, 0.9rem);
	color: rgba(255, 255, 255, 0.55);
	line-height: 1.9;
}

/* ── Form Section (override for contacto page context) ────────────────────── */
.mcp-contacto-form-wrap {
	background-color: var(--mcp-arena);
	padding: 0;
}

/* ── CTA Bottom ───────────────────────────────────────────────────────────── */
.mcp-contacto-cta {
	position: relative;
	padding: 8rem 2rem;
	text-align: center;
	overflow: hidden;
	background-color: var(--mcp-negro);
}

.mcp-contacto-cta__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
}

.mcp-contacto-cta__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.45) 0%,
		rgba(0, 0, 0, 0.7) 100%
	);
}

.mcp-contacto-cta__content {
	position: relative;
	z-index: 1;
	max-width: 700px;
	margin: 0 auto;
}

.mcp-contacto-cta__title {
	font-family: var(--mcp-font-display);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	color: var(--mcp-blanco);
	letter-spacing: 0.12em;
	margin-bottom: 1.5rem;
}

.mcp-contacto-cta__text {
	font-family: var(--mcp-font-body);
	font-size: clamp(0.85rem, 1.2vw, 0.95rem);
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.8;
	margin-bottom: 2.5rem;
}

.mcp-contacto-cta__buttons {
	display: flex;
	gap: 1.5rem;
	justify-content: center;
	flex-wrap: wrap;
}

/* ── CTA Buttons (light on dark bg) ───────────────────────────────────────── */
.mcp-contacto-cta__buttons .mcp-btn {
	background-color: transparent;
	color: var(--mcp-arena);
	border: 1px solid var(--mcp-arena);
}

.mcp-contacto-cta__buttons .mcp-btn:hover {
	background-color: var(--mcp-arena);
	color: var(--mcp-negro);
	border-color: var(--mcp-arena);
}

.mcp-contacto-cta__buttons .mcp-btn:not(.mcp-btn--outline) {
	background-color: var(--mcp-arena);
	color: var(--mcp-negro);
	border-color: var(--mcp-arena);
}

.mcp-contacto-cta__buttons .mcp-btn:not(.mcp-btn--outline):hover {
	background-color: var(--mcp-blanco);
	border-color: var(--mcp-blanco);
}

/* ── Contacto Page Responsive ─────────────────────────────────────────────── */
@media (max-width: 767px) {
	.mcp-contacto-hero {
		min-height: 55vh;
	}

	.mcp-contacto-hero__bg {
		background-attachment: scroll;
	}

	.mcp-contacto-channels__grid {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.mcp-contacto-channel {
		padding: 2rem 1.5rem;
	}

	.mcp-contacto-intro,
	.mcp-contacto-faq,
	.mcp-contacto-cta {
		padding: 4rem 1.25rem;
	}

	.mcp-contacto-cta__bg {
		background-attachment: scroll;
	}

	.mcp-contacto-cta__buttons {
		flex-direction: column;
		align-items: center;
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	.mcp-contacto-channels__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.25rem;
	}
}

/* ==========================================================================
   18. Accessibility — reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.mcp-animate,
	.mcp-animate--from-left,
	.mcp-animate--from-right,
	.mcp-animate--scale,
	html.mcp-js .mcp-slider__slide:first-child .mcp-slider__content > * {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.mcp-serv-hero__line,
	.mcp-serv-hero__eyebrow,
	.mcp-serv-hero__title,
	.mcp-serv-hero__subtitle,
	.mcp-serv-hero__scroll,
	.mcp-serv-module__line {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.mcp-serv-hero__bg,
	.mcp-serv-module__image img {
		transition: none;
	}

	.mcp-serv-hero:hover .mcp-serv-hero__bg,
	.mcp-serv-module__image:hover img {
		transform: none;
	}

	@keyframes mcp-scroll-pulse {
		0%, 100% { opacity: 1; transform: none; }
	}

	.mcp-card {
		transition: none;
	}

	.mcp-card:hover {
		transform: none;
	}

	.mcp-img-hover img {
		transition: none;
	}

	.mcp-img-hover:hover img {
		transform: none;
	}

	.mcp-slider__slide {
		transition: none;
	}

	.mcp-about__image:hover img {
		transform: none;
	}

	/* Nosotros page */
	.mcp-nosotros-carousel__slide {
		transition: none;
		transform: none;
	}

	.mcp-nosotros-bio__image:hover .mcp-nosotros-bio__image-frame img,
	.mcp-nosotros-bio__image:hover .mcp-nosotros-bio__image-accent {
		transform: none;
	}

	.mcp-nosotros-value:hover,
	.mcp-nosotros-timeline__item:hover .mcp-nosotros-timeline__dot {
		transform: none;
	}

	/* Contacto page */
	.mcp-contacto-hero__bg {
		transition: none;
	}

	.mcp-contacto-hero:hover .mcp-contacto-hero__bg {
		transform: none;
	}

	.mcp-contacto-channel {
		transition: none;
	}

	.mcp-contacto-channel:hover {
		transform: none;
	}

	.mcp-faq-item__answer {
		transition: none;
	}

	html {
		scroll-behavior: auto;
	}

	/* WhatsApp FAB — disable animations */
	.mcp-fab-wa {
		animation: none;
	}

	.mcp-fab-wa__pulse {
		display: none;
	}
}

/* ==========================================================================
   22. Floating WhatsApp Button (DWMC-46)
   ========================================================================== */

.mcp-fab-wa {
	position: fixed;
	bottom: 2rem;
	right: 2rem;
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 0;
	background: #25D366;
	color: var(--mcp-blanco);
	border-radius: 3rem;
	padding: 0.875rem;
	text-decoration: none;
	box-shadow:
		0 4px 20px rgba(37, 211, 102, 0.35),
		0 2px 8px rgba(0, 0, 0, 0.15);
	transition:
		transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
		box-shadow var(--mcp-transition),
		gap var(--mcp-transition),
		padding var(--mcp-transition),
		background var(--mcp-transition);
	animation: mcp-fab-entrance 0.6s 1.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

/* Entrance animation — slide up + scale from invisible */
@keyframes mcp-fab-entrance {
	0% {
		opacity: 0;
		transform: translateY(2rem) scale(0.5);
	}
	100% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

/* Hover — expand to show label */
.mcp-fab-wa:hover,
.mcp-fab-wa:focus-visible {
	gap: 0.5rem;
	padding: 0.875rem 1.25rem 0.875rem 0.875rem;
	transform: scale(1.05);
	box-shadow:
		0 8px 30px rgba(37, 211, 102, 0.45),
		0 4px 12px rgba(0, 0, 0, 0.2);
	background: #1ebe5a;
	color: var(--mcp-blanco);
}

.mcp-fab-wa:focus-visible {
	outline: 2px solid var(--mcp-arena);
	outline-offset: 3px;
}

/* Icon */
.mcp-fab-wa__icon {
	flex-shrink: 0;
	display: block;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15));
}

/* Label — hidden by default, revealed on hover */
.mcp-fab-wa__label {
	font-family: var(--mcp-font-body);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	white-space: nowrap;
	max-width: 0;
	overflow: hidden;
	opacity: 0;
	transition:
		max-width 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
		opacity 0.25s ease;
}

.mcp-fab-wa:hover .mcp-fab-wa__label,
.mcp-fab-wa:focus-visible .mcp-fab-wa__label {
	max-width: 8rem;
	opacity: 1;
}

/* Pulse ring — subtle, elegant breathing effect */
.mcp-fab-wa__pulse {
	position: absolute;
	inset: -4px;
	border-radius: inherit;
	border: 2px solid rgba(37, 211, 102, 0.4);
	animation: mcp-fab-pulse 3s ease-in-out infinite 2.5s;
	pointer-events: none;
}

@keyframes mcp-fab-pulse {
	0%, 100% {
		opacity: 0;
		transform: scale(1);
	}
	50% {
		opacity: 1;
		transform: scale(1.15);
	}
}

/* Hide pulse on hover — the button itself provides feedback */
.mcp-fab-wa:hover .mcp-fab-wa__pulse {
	animation: none;
	opacity: 0;
}

/* ── Mobile adjustments ── */
@media (max-width: 600px) {
	.mcp-fab-wa {
		bottom: 1.25rem;
		right: 1.25rem;
		padding: 0.75rem;
	}

	/* Always show label on mobile for better UX */
	.mcp-fab-wa__label {
		max-width: 0;
		opacity: 0;
	}
}
