/*
 * !important inventory (keep only when fighting WP core / global styles):
 * 1. Nav — gap, submenu position/open state, item padding (core Navigation + hover/click).
 * 2. Buttons — .wp-block-button__link colors/borders (theme.json / preset !important).
 * 3. Footer — .foot-top align-items (core .wp-block-columns { align-items: initial !important }).
 * Prefer specificity for theme↔theme cascade; do not expand nav !important without a repro.
 */
.site-header,
header.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	display: block;
	width: 100%;
	max-width: none;
	padding: 20px 0;
	background: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid transparent;
	transition: border-color 0.3s ease, padding 0.3s ease;
	box-sizing: border-box;
}

.site-header__inner {
	max-width: var(--page-width, 1372px);
	margin: 0 auto;
	width: 100%;
	padding: 0 var(--page-gutter, 32px);
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.site-header.scrolled {
	border-bottom: 1px solid var(--line);
	padding: 14px 0;
}

.site-header .logo {
	display: block;
	flex: none;
}

.site-header .logo,
.site-header .logo-mark {
	color: var(--ink);
}

.site-header .logo-mark {
	width: 150px;
	height: auto;
	display: block;
}

.site-header .logo-mark-stack {
	position: relative;
	display: block;
	width: 150px;
	line-height: 0;
}

.site-header .logo-mark-stack .logo-mark--full {
	position: relative;
	z-index: 1;
	width: 150px;
	height: auto;
	opacity: 1;
	transition: opacity 1.2s ease;
}

.site-header .logo-mark-stack .logo-mark--mwm {
	position: absolute;
	left: 0;
	top: 50%;
	z-index: 2;
	width: auto;
	height: 100%;
	max-height: 100%;
	transform: translateY(-50%);
	opacity: 0;
	pointer-events: none;
	transition: opacity 1.2s ease;
}

.site-header .logo-mark-stack.is-mwm .logo-mark--full {
	opacity: 0;
}

.site-header .logo-mark-stack.is-mwm .logo-mark--mwm {
	opacity: 1;
}

.site-header .wp-block-site-logo img {
	width: 150px;
	height: auto;
	filter: none;
}

@media (max-width: 480px) {
	.site-header .logo-mark,
	.site-header .logo-mark-stack,
	.site-header .logo-mark-stack .logo-mark--full,
	.site-header .wp-block-site-logo img {
		width: 130px;
	}
}

.site-header .wp-block-navigation {
	flex: none;
}

.site-header .wp-block-navigation .wp-block-navigation-item {
	list-style: none;
}

.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content {
	display: flex;
	position: static;
	width: auto;
	background: transparent;
	padding: 0;
}

.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
	display: block;
	position: static;
	pointer-events: none;
}

.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content,
.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) a,
.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item.has-child,
.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-submenu {
	pointer-events: auto;
}

.site-header__nav {
	display: flex;
	align-items: center;
	gap: 28px;
	flex-wrap: nowrap;
	margin-left: auto;
	overflow: visible;
}

.site-header .wp-block-navigation,
.site-header .wp-block-navigation__responsive-container,
.site-header .wp-block-navigation__container {
	overflow: visible;
}

.site-header__nav .wp-block-navigation__container {
	display: flex;
	align-items: center;
	gap: 28px !important;
}

/* CTA = last menu item, highlighted (not a separate buttons block). */
.site-header__nav .wp-block-navigation-item.nav-item--cta > .wp-block-navigation-item__content,
.site-header__nav .wp-block-navigation-item.nav-item-cta > .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--btn-min-height, 48px);
	padding: var(--btn-padding-y, 12px) var(--btn-padding-x, 24px);
	margin: 0;
	border: var(--btn-border-width, 2.5px) solid var(--blue);
	border-radius: var(--btn-radius, 8px);
	background: var(--blue);
	color: #fff;
	font-size: var(--btn-font-size, 16px);
	font-weight: var(--btn-font-weight, 500);
	line-height: var(--btn-line-height, 24px);
	letter-spacing: -0.01em;
	text-decoration: none;
	box-shadow: none;
}

.site-header__nav .wp-block-navigation-item.nav-item--cta > .wp-block-navigation-item__content::after,
.site-header__nav .wp-block-navigation-item.nav-item-cta > .wp-block-navigation-item__content::after {
	display: none;
}

.site-header__nav .wp-block-navigation-item.nav-item--cta > .wp-block-navigation-item__content:hover,
.site-header__nav .wp-block-navigation-item.nav-item--cta > .wp-block-navigation-item__content:focus-visible,
.site-header__nav .wp-block-navigation-item.nav-item-cta > .wp-block-navigation-item__content:hover,
.site-header__nav .wp-block-navigation-item.nav-item-cta > .wp-block-navigation-item__content:focus-visible {
	background: transparent;
	color: var(--blue-deep);
	border-color: var(--blue);
}

/* Stale separate CTA cluster — hide when present in DB markup. */
.site-header__ctas,
.site-header .nav-ctas {
	display: none;
}


/* Ítems top-level: misma altura/baseline; chevron forma parte del ítem Servicios */
.site-header__nav .wp-block-navigation__container > .wp-block-navigation-item,
.site-header__nav .wp-block-navigation__container > .wp-block-navigation-submenu {
	display: flex;
	align-items: center;
	gap: 5px;
	margin: 0;
	padding: 0;
}

.site-header__nav .wp-block-navigation-item__content {
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	letter-spacing: -0.01em;
	padding: 0 0 2px;
	margin: 0;
	display: inline-flex;
	align-items: center;
	position: relative;
}

.site-header__nav .wp-block-navigation-item__content:hover::after {
	width: 100%;
}

.site-header__nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: var(--blue);
	border-radius: 2px;
	transition: width 0.25s ease;
}

/* Submenú Servicios (desktop) */
.site-header__nav .wp-block-navigation-item.has-child,
.site-header__nav .wp-block-navigation-submenu {
	position: relative;
}

.site-header__nav .wp-block-navigation-item.has-child > .wp-block-navigation-item__content,
.site-header__nav .wp-block-navigation-submenu > .wp-block-navigation-item__content {
	padding-right: 0;
}

/*
 * Servicios: no underline hover. The open state is signaled by the
 * submenu panel border-top, not a dynamic line under the label.
 */
.site-header__nav .wp-block-navigation-item.has-child > .wp-block-navigation-item__content::after,
.site-header__nav .wp-block-navigation-submenu > .wp-block-navigation-item__content::after,
.site-header__nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation-item__content::after,
.site-header__nav .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation-item__content::after,
.site-header__nav .wp-block-navigation-submenu:hover > .wp-block-navigation-item__content::after,
.site-header__nav .wp-block-navigation-submenu:focus-within > .wp-block-navigation-item__content::after {
	content: none;
	display: none;
	width: 0;
}

/*
 * Chevron inline alineado al centro (sin padding fantasma ni clip).
 * El toggle permanece en el DOM para aria-expanded / open-on-click.
 */
.site-header__nav .wp-block-navigation-item.has-child > .wp-block-navigation-submenu__toggle,
.site-header__nav .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle,
.site-header__nav .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-icon,
.site-header__nav .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon {
	position: static;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 10px;
	height: 10px;
	min-width: 10px;
	min-height: 10px;
	margin: 0 0 2px;
	padding: 0;
	border: 0;
	appearance: none;
	background: transparent;
	color: inherit;
	line-height: 0;
	cursor: pointer;
	clip: auto;
	overflow: visible;
	white-space: normal;
	flex: none;
	align-self: center;
}

.site-header__nav .wp-block-navigation-submenu__toggle svg,
.site-header__nav .wp-block-navigation__submenu-icon svg {
	width: 10px;
	height: 10px;
	display: block;
}

/* Anclado bajo «Servicios». Accent = border-top of the panel (not parent underline). */
.site-header__nav .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation .has-child > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation-submenu > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation-submenu__container {
	position: absolute;
	top: 100% !important;
	right: auto !important;
	bottom: auto !important;
	left: 0 !important;
	transform: none;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0 !important; /* do not inherit top-level nav 28px gap */
	row-gap: 0 !important;
	min-width: 260px;
	width: max-content;
	height: 0;
	margin: 0;
	padding: 8px !important; /* equal top/bottom/left/right */
	list-style: none;
	background: #fff;
	border: 1px solid var(--line);
	border-top: 2px solid var(--blue) !important;
	border-top-left-radius: 0 !important;
	border-top-right-radius: 0 !important;
	border-bottom-left-radius: 14px;
	border-bottom-right-radius: 14px;
	box-shadow: 0 16px 40px -12px rgba(16, 21, 23, 0.18);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	overflow: hidden;
	transition: opacity 0.15s ease, visibility 0.15s ease;
	z-index: 120;
}

.site-header__nav .wp-block-navigation__submenu-container::before,
.site-header__nav .wp-block-navigation-submenu__container::before {
	content: none;
	display: none;
}

/* !important: core navigation / open-on-hover-click can keep opacity:0 after theme hover rules. */
.site-header__nav .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child:hover > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child:focus-within > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child.is-submenu-open > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"]) > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation-item.has-child.is-submenu-open > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation-submenu.is-submenu-open > .wp-block-navigation__submenu-container,
.site-header__nav .wp-block-navigation-item.has-child:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"]) > .wp-block-navigation__submenu-container {
	top: 100% !important;
	right: auto !important;
	bottom: auto !important;
	left: 0 !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	height: auto !important;
	overflow: visible !important;
	transform: none !important;
}

.site-header__nav .wp-block-navigation__submenu-container > .wp-block-navigation-item,
.site-header__nav .wp-block-navigation-submenu__container > .wp-block-navigation-item {
	margin: 0;
	padding: 0;
	width: 100%;
}

.site-header__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.site-header__nav .wp-block-navigation-submenu__container .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	width: 100%;
	box-sizing: border-box;
	padding: 10px 14px !important; /* equal vertical padding */
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	border-radius: 10px;
	white-space: nowrap;
}

.site-header__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after,
.site-header__nav .wp-block-navigation-submenu__container .wp-block-navigation-item__content::after {
	display: none;
}

.site-header__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.site-header__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible,
.site-header__nav .wp-block-navigation-submenu__container .wp-block-navigation-item__content:hover,
.site-header__nav .wp-block-navigation-submenu__container .wp-block-navigation-item__content:focus-visible {
	background: var(--bg-soft);
	color: var(--blue-deep);
}

/*
 * Safety: Contacto is a nav item, never a chrome button.
 * Covers stale DB markup (.btn-pill "Contacto") until template-part sync.
 */
.site-header .nav-ctas > a.btn-pill[href*="contacto"],
.site-header .site-header__ctas > a.btn-pill[href*="contacto"],
.mobile-menu-ctas > a.btn-pill[href*="contacto"] {
	display: none;
}

.site-header .btn-pill-accent {
	text-decoration: none;
	line-height: var(--btn-line-height, 24px);
	letter-spacing: -0.01em;
	min-height: var(--btn-min-height, 48px);
	padding: var(--btn-padding-y, 12px) var(--btn-padding-x, 24px);
	font-size: var(--btn-font-size, 16px);
	font-weight: var(--btn-font-weight, 500);
	border-radius: var(--btn-radius, 8px);
}

.site-header .btn-pill-accent .wp-block-button__link {
	min-height: var(--btn-min-height, 48px);
	padding: var(--btn-padding-y, 12px) var(--btn-padding-x, 24px);
	font-size: var(--btn-font-size, 16px);
	font-weight: var(--btn-font-weight, 500);
	border-radius: var(--btn-radius, 8px);
}

@media (max-width: 860px) {
	.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}

	.site-header .wp-block-navigation__responsive-container-open {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.site-header__nav {
		gap: 0;
	}

	/* The off-canvas panel reuses the desktop menu markup, which right-aligns
	   items (items-justified-right -> align-items:flex-end on this column flex).
	   Left un-fixed, each <li> shrinks to its own width and sits at the right
	   edge, so a submenu anchored with left:0 to that <li> lands off-screen. */
	.wp-block-navigation__responsive-container-content {
		align-items: stretch !important;
	}

	.wp-block-navigation__responsive-dialog .wp-block-navigation__container {
		align-items: stretch !important;
	}

	.wp-block-navigation__responsive-dialog .wp-block-navigation__container > .wp-block-navigation-item,
	.wp-block-navigation__responsive-dialog .wp-block-navigation__container > .wp-block-navigation-submenu {
		width: 100% !important;
	}
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: var(--blue) !important;
	color: #fff !important;
	border: var(--btn-border-width, 2.5px) solid var(--blue) !important;
	border-radius: var(--btn-radius, 8px) !important;
	box-shadow: none;
	font-weight: var(--btn-font-weight, 500);
	font-size: var(--btn-font-size, 16px);
	line-height: var(--btn-line-height, 24px);
	letter-spacing: -0.01em;
	min-height: var(--btn-min-height, 48px);
	padding: var(--btn-padding-y, 12px) var(--btn-padding-x, 24px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: none;
}

/* Class on wrapper must not paint a second button around the link. */
.wp-block-button.btn-pill-accent,
.wp-block-button.btn-solid {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
	box-shadow: none !important;
	display: inline-block;
	width: auto;
	height: auto;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:focus-visible {
	background: transparent !important;
	border-color: var(--blue) !important;
	color: var(--blue) !important;
	box-shadow: none !important;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: var(--blue) !important;
	border: var(--btn-border-width, 2.5px) solid var(--blue) !important;
	border-radius: var(--btn-radius, 8px) !important;
	box-shadow: none;
	font-weight: var(--btn-font-weight, 500);
	font-size: var(--btn-font-size, 16px);
	line-height: var(--btn-line-height, 24px);
	letter-spacing: -0.01em;
	min-height: var(--btn-min-height, 48px);
	padding: var(--btn-padding-y, 12px) var(--btn-padding-x, 24px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	transition: none;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
	background: var(--blue) !important;
	border-color: var(--blue) !important;
	color: #fff !important;
	box-shadow: none !important;
}

.wp-block-button.btn-onlight .wp-block-button__link {
	background: #fff !important;
	color: var(--blue-deep) !important;
}

.wp-block-button.btn-onlight .wp-block-button__link:hover,
.wp-block-button.btn-onlight .wp-block-button__link:focus-visible {
	background: var(--bg-soft) !important;
	color: var(--blue-deep) !important;
}

.section-cases {
	padding-top: var(--section-padding-y, 104px);
	padding-bottom: var(--section-padding-y, 104px);
}

.hero:has(.hero-visual--cutout) {
	padding-bottom: var(--section-padding-y, 104px);
}

.hero:has(.hero-visual--cutout) .hero-wrap {
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	align-items: center;
	gap: clamp(24px, 4vw, 56px);
}

.hero:has(.hero-visual--cutout) .hero-copy {
	align-self: center;
	padding-bottom: 0;
}

.hero-visual--cutout {
	position: relative;
	z-index: 2;
	width: min(665px, 100%);
	max-width: 665px;
	margin-left: auto;
	margin-right: 0;
	margin-bottom: 0;
	margin-top: 30px;
	align-self: center;
	justify-self: end;
}

.hero-visual--cutout .hero-visual__photo {
	object-fit: contain;
	object-position: center center;
	filter: drop-shadow(0 18px 40px rgba(16, 21, 23, .18));
}

.clients {
	position: relative;
	z-index: 1;
	background: var(--bg-soft);
	padding: var(--section-padding-y) 0;
	margin-top: 0;
	overflow: hidden;
}

@media (max-width: 900px) {
	.hero:has(.hero-visual--cutout) {
		padding-bottom: var(--section-padding-y-mobile, 72px);
	}

	.hero:has(.hero-visual--cutout) .hero-wrap {
		grid-template-columns: 1fr;
		align-items: stretch;
	}

	.hero-visual--cutout {
		width: min(665px, 100%);
		max-width: 100%;
		margin: 54px auto 0;
		justify-self: center;
	}
}

.clients > .wrap {
	padding-bottom: 0;
}

.clients .section-head {
	margin-bottom: 52px;
}

.section-cases .cases-carousel {
	margin-top: 0;
}

.cases-nav {
	display: flex;
	align-items: center;
	gap: 10px;
}

.cases-nav--bottom {
	justify-content: flex-end;
	margin-top: 28px;
}

.cases-nav button,
.site-footer .footer-quote__arrow,
.back-to-top {
	width: 48px;
	height: 48px;
	min-width: 48px;
	min-height: 48px;
	margin: 0;
	padding: 0;
	border: var(--btn-border-width, 1.5px) solid var(--blue);
	border-radius: 50%;
	background: var(--blue);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: none;
	transition: none;
}

/* Own background so it stays visible over the blue footer gradient, not just on white. */
.back-to-top {
	background: #fff;
	color: var(--blue);
	box-shadow: 0 4px 16px rgba(15, 23, 42, .18);
}

.cases-nav button:hover,
.cases-nav button:focus-visible,
.site-footer .footer-quote__arrow:hover,
.site-footer .footer-quote__arrow:focus-visible,
.back-to-top:hover,
.back-to-top:focus-visible {
	background: transparent;
	border-color: var(--blue);
	color: var(--blue);
	box-shadow: none;
}

.back-to-top:hover,
.back-to-top:focus-visible {
	background: var(--blue);
	color: #fff;
	box-shadow: 0 4px 16px rgba(15, 23, 42, .18);
}

.cases-nav button:focus-visible,
.site-footer .footer-quote__arrow:focus-visible,
.back-to-top:focus-visible {
	outline: 3px solid var(--blue);
	outline-offset: 3px;
}

.cases-nav button svg,
.site-footer .footer-quote__arrow svg,
.back-to-top svg,
.back-to-top img {
	width: 20px;
	height: 20px;
	display: block;
}

.cases-nav button svg path,
.site-footer .footer-quote__arrow svg path,
.back-to-top svg path {
	stroke: currentColor;
}

.cases-nav button.mw-icon-arrow--prev svg,
.site-footer .footer-quote__arrow--prev svg,
.site-footer .footer-quote__arrow.mw-icon-arrow--prev svg {
	transform: rotate(-90deg);
}

.cases-nav button.mw-icon-arrow--next svg,
.site-footer .footer-quote__arrow--next svg,
.site-footer .footer-quote__arrow.mw-icon-arrow--next svg {
	transform: rotate(90deg);
}

.cases-nav button.mw-icon-arrow:not(:has(svg)):not(:has(img))::before,
.site-footer .footer-quote__arrow:not(:has(svg)):not(:has(img))::before,
.back-to-top:not(:has(svg)):not(:has(img))::before {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	background-color: currentColor;
	-webkit-mask: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 15V5M10 5L5 10M10 5l5 5' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 15V5M10 5L5 10M10 5l5 5' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.cases-nav button.mw-icon-arrow--prev:not(:has(svg)):not(:has(img))::before,
.site-footer .footer-quote__arrow--prev:not(:has(svg)):not(:has(img))::before,
.site-footer .footer-quote__arrow.mw-icon-arrow--prev:not(:has(svg)):not(:has(img))::before {
	transform: rotate(-90deg);
}

.cases-nav button.mw-icon-arrow--next:not(:has(svg)):not(:has(img))::before,
.site-footer .footer-quote__arrow--next:not(:has(svg)):not(:has(img))::before,
.site-footer .footer-quote__arrow.mw-icon-arrow--next:not(:has(svg)):not(:has(img))::before {
	transform: rotate(90deg);
}

.site-footer .footer-quote__arrow[hidden] {
	display: none;
}

@media (max-width: 600px) {
	.cases-nav button,
	.site-footer .footer-quote__arrow {
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
	}
}

.mowomo-logo-marquee {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
	margin-bottom: 0;
}

.mowomo-logo-marquee > .credential {
	display: inline-block;
	width: auto;
	max-width: 100%;
	flex: 0 0 auto;
	align-self: center;
	box-sizing: border-box;
	text-align: center;
}

.mowomo-logo-marquee .partner-note,
.mowomo-logo-marquee .partner-row,
.mowomo-logo-marquee .marquee-wrap {
	display: none;
}

/* Secciones de bloques que no usan <section> */
.section-timeline,
.section-why:not(.section-why--nosotros),
.section-blog,
.section-contact,
.section-team {
	padding-top: var(--section-padding-y, 104px);
	padding-bottom: var(--section-padding-y, 104px);
	padding-left: 0;
	padding-right: 0;
}

/* Nosotros why: home rhythm + extra air (padding set in theme.css, no !important). */
.section-why.section-why--nosotros {
	padding-left: 0;
	padding-right: 0;
}

.contact-cta {
	scroll-margin-top: 96px;
	padding: clamp(56px, 7vw, 88px) 0;
	background: var(--bg-soft, #f5f7fc);
	border-block: 1px solid var(--line);
}

/* Servicios: Cómo orientarte + CTA as contiguous bands (different fills, no seam gap). */
.page-servicios .services-orient + .contact-cta,
.page-servicios .wp-block-post-content > .services-orient + .contact-cta {
	margin-block-start: 0;
	margin-top: 0;
	border-top: 0;
}

/*
 * WP flow layout can leave a residual white seam between adjacent HTML bands.
 * Pull the CTA flush against Cómo orientarte.
 */
.page-servicios .wp-block-post-content.is-layout-flow > .services-orient + .contact-cta {
	margin-block-start: -1rem;
}

.contact-cta__inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	max-width: 42rem;
	margin-inline: auto;
	text-align: left;
}

.contact-cta__eyebrow {
	margin: 0;
}

.contact-cta__heading {
	font-family: "Space Grotesk", sans-serif;
	font-weight: 600;
	font-size: var(--type-section-title, clamp(28px, 3.5vw, 40px));
	line-height: 1.15;
	letter-spacing: -0.02em;
	margin: 0;
	color: var(--ink);
	text-wrap: balance;
}

.contact-cta__support {
	margin: 0;
	font-size: var(--type-lede, 18px);
	line-height: 1.6;
	color: var(--ink-70);
}

.contact-cta__button {
	display: inline-flex;
	margin-top: 8px;
	white-space: nowrap;
}

@media (max-width: 860px) {
	.contact-cta {
		padding: var(--section-padding-y-mobile, 72px) 0;
	}

	.contact-cta__heading {
		font-size: var(--type-section-title-compact, clamp(24px, 3vw, 36px));
	}

	.contact-cta__support {
		font-size: var(--type-body, 16px);
	}
}

/*
 * Horizontal padding owned by inner .wrap.
 */
.contact-wrap,
.section-blog-archive,
.section-author-posts,
.section-author-charlas,
.section-casos-archive,
.single-proyecto-content,
.section-single-post,
.page-hero {
	padding-left: 0;
	padding-right: 0;
}

.page-servicios .page-hero + .services-page-section {
	padding-top: 0;
}

.page-nosotros .wp-block-post-content {
	max-width: none;
	margin: 0;
	padding: 0;
}

.page-servicios .wp-block-post-content {
	max-width: none;
	margin: 0;
	padding: 0;
}

.page-servicio .wp-block-post-content {
	max-width: none;
	margin: 0;
	padding: 0;
}

.wp-block-group.section-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	margin-bottom: 52px;
	flex-wrap: wrap;
}

.wrap > .section-head:not(:first-child) {
	margin-top: var(--section-head-gap, 64px);
}

.section-why > .section-head {
	margin-top: 0;
}

.section-head--cases,
.wp-block-group.section-head--cases {
	flex-direction: column;
	align-items: stretch;
	gap: 28px;
}

.section-head--cases .section-head__row,
.wp-block-group.section-head--cases .section-head__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	width: 100%;
}

.section-head--left,
.wp-block-group.section-head--left {
	align-items: flex-start;
	text-align: left;
}

.section-head--left .section-head__row,
.wp-block-group.section-head--left .section-head__row {
	align-items: flex-start;
	justify-content: flex-start;
	text-align: left;
}

.section-head--left h2,
.section-head--left p,
.wp-block-group.section-head--left h2,
.wp-block-group.section-head--left p {
	text-align: left;
}

.section-head--cases .cases-nav,
.wp-block-group.section-head--cases .cases-nav {
	align-self: flex-end;
}

.wp-block-group.section-head h2,
.wp-block-post-content .section-head h2 {
	font-family: "Space Grotesk", sans-serif;
	font-size: var(--type-section-title, clamp(28px, 3.5vw, 40px));
	max-width: 620px;
	line-height: 1.15;
}

h2,
h2.wp-block-heading {
	font-family: "Space Grotesk", sans-serif;
	font-size: var(--type-section-title, clamp(28px, 3.5vw, 40px));
	line-height: 1.15;
}

h3,
h3.wp-block-heading {
	font-family: "Space Grotesk", sans-serif;
	font-size: var(--type-card-title, clamp(18px, 1.4vw, 22px));
	line-height: 1.25;
}

/* Compact headings only in long-form post bodies (not Nosotros / Servicios patterns). */
.single-post .section-single-post .wp-block-post-content h2,
.single-post .section-single-post .wp-block-post-content h2.wp-block-heading,
.page-legal-main .wp-block-post-content h2,
.page-legal-main .wp-block-post-content h2.wp-block-heading,
.legal-page h2 {
	font-size: clamp(20px, 2.4vw, 26px);
	line-height: 1.25;
}

/* Marketing pages: keep home type tokens + Space Grotesk inside post-content. */
.page-nosotros .wp-block-post-content .page-hero h1,
.page-servicios .wp-block-post-content .page-hero h1,
.page-servicio .wp-block-post-content .page-hero h1,
.page-tecnologias .wp-block-post-content .page-hero h1,
.page-tecnologia .wp-block-post-content .page-hero h1,
.page-contacto .wp-block-post-content .page-hero h1 {
	font-family: "Space Grotesk", sans-serif;
	font-size: var(--type-page-hero, clamp(40px, 6.5vw, 64px));
	line-height: 1.08;
	color: var(--ink);
	max-width: 600px;
}

.page-nosotros .wp-block-post-content .eyebrow,
.page-servicios .wp-block-post-content .eyebrow,
.page-servicio .wp-block-post-content .eyebrow,
.page-contacto .wp-block-post-content .eyebrow,
.page-nosotros .wp-block-post-content .m-card .tag {
	font-family: "Space Grotesk", sans-serif;
}

.page-nosotros .wp-block-post-content .m-card h3,
.page-nosotros .wp-block-post-content .manifesto-col h3,
.page-nosotros .wp-block-post-content .team-card h3 {
	font-family: "Space Grotesk", sans-serif;
}

.wp-block-group.section-head p {
	max-width: 360px;
	color: var(--ink-70);
	font-size: var(--type-body, 16px);
	line-height: 1.6;
	margin: 0;
	border-left: 4px solid var(--blue);
	border-right: 4px solid var(--blue);
	padding-inline: 12px;
}

.go,
.wp-block-group.section-head .go,
.wp-block-group.section-head .btn-ghost,
.cases-nav .btn-ghost,
.hero-actions .btn-ghost,
.post .go,
.team-link,
.services-index__item .go,
.services-orient__rec .go {
	font-family: "Inter", sans-serif;
	font-weight: var(--btn-font-weight, 500);
	font-size: var(--btn-font-size, 16px);
	line-height: var(--btn-line-height, 24px);
	letter-spacing: -0.01em;
	color: var(--blue-deep);
	margin: 0;
	white-space: nowrap;
	text-decoration: none;
	transition: none;
	position: relative;
	padding-bottom: 3px;
	display: inline-flex;
	align-items: center;
}

/* Underline animado (mismo patrón que el menú superior) — respaldo si theme.css se resetea */
.go::after,
.post .go::after,
.service .go::after,
.team-link::after,
.wp-block-group.section-head .go::after,
.wp-block-group.section-head .btn-ghost::after,
.cases-nav .btn-ghost::after,
.services-index__item .go::after,
.services-orient__rec .go::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: var(--blue);
	border-radius: 2px;
	transition: width 0.25s ease;
}

.go:hover::after,
.go:focus-visible::after,
.post .go:hover::after,
.post .go:focus-visible::after,
.service:hover .go::after,
.service:focus-within .go::after,
.service .go:hover::after,
.service .go:focus-visible::after,
.team-card:hover .team-link::after,
.team-card:focus-visible .team-link::after,
.wp-block-group.section-head .go:hover::after,
.wp-block-group.section-head .go:focus-visible::after,
.wp-block-group.section-head .btn-ghost:hover::after,
.wp-block-group.section-head .btn-ghost:focus-visible::after,
.cases-nav .btn-ghost:hover::after,
.cases-nav .btn-ghost:focus-visible::after,
.services-index__item .go:hover::after,
.services-index__item .go:focus-visible::after,
.services-orient__rec .go:hover::after,
.services-orient__rec .go:focus-visible::after {
	width: 100%;
}

/* Team + control: same solid chrome as header CTA (.nav-item--cta); square corners. */
.team-card__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 24px;
	height: 24px;
	margin-inline-start: auto;
	flex-shrink: 0;
	border: var(--btn-border-width, 2.5px) solid var(--blue);
	border-radius: 0;
	background: var(--blue);
	padding: 0;
	font-family: "Inter", sans-serif;
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	color: #fff;
	text-decoration: none;
	box-shadow: none;
	transition: none;
}
.team-card__more::after {
	display: none;
}
.team-card:hover .team-card__more,
.team-card:focus-visible .team-card__more {
	background: transparent;
	color: var(--blue-deep);
	border-color: var(--blue);
}
.team-card h3,
.team-card .team-role {
	text-decoration: none;
}

.wp-block-group.section-head .go:hover,
.wp-block-group.section-head .btn-ghost:hover,
.cases-nav .btn-ghost:hover,
.hero-actions .btn-ghost:hover,
.post .go:hover {
	color: var(--blue-deep);
	opacity: 1;
}

.service .go {
	font-size: 16px;
	position: relative;
	padding-bottom: 3px;
	display: inline-flex;
	align-items: center;
}

.hero .wp-block-columns.hero-wrap {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: 40px;
	align-items: center;
}

@media (max-width: 900px) {
	.hero .wp-block-columns.hero-wrap {
		grid-template-columns: 1fr;
	}
}

.hero-wrap > .wp-block-template-part {
	min-width: 0;
}

.hero .wp-block-image.hero-visual--photo,
.hero .wp-block-image.hero-visual--photo img {
	border-radius: 28px;
	box-shadow: none;
}

.services-grid.wp-block-columns:not(.services-grid--zigzag) {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}

.services-grid.services-grid--zigzag {
	display: flex;
	flex-direction: column;
	grid-template-columns: none;
	gap: 16px;
	align-items: stretch;
}

.services-grid.services-grid--zigzag > .service {
	width: 75%;
	max-width: 75%;
	flex-shrink: 0;
	margin: 0;
	align-self: flex-start;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 18px;
	padding: 18px 22px;
	border-radius: 12px;
}

.services-grid.services-grid--zigzag > .service:nth-child(even) {
	flex-direction: row-reverse;
	align-self: flex-end;
	margin: 0;
}

.services-grid.services-grid--zigzag .service-visual {
	flex: 0 0 36%;
	width: 36%;
	max-width: 260px;
	height: 160px;
	aspect-ratio: auto;
	margin-bottom: 0;
	border-radius: 10px;
}

.services-grid.services-grid--zigzag .service:hover .service-visual {
	transform: none;
}

.services-grid.services-grid--zigzag .service-body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	text-align: left;
}

.services-grid.services-grid--zigzag > .service:nth-child(even) .service-body {
	align-items: flex-end;
	text-align: right;
}

.manifesto-grid.wp-block-columns,
.blog-grid,
ul.blog-grid.wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	list-style: none;
	margin: 0;
	padding: 0;
}

#nosotros .m-card .tag,
.page-nosotros .m-card .tag,
.section-why .m-card .tag {
	font-size: var(--type-panel-title, clamp(24px, 2.8vw, 32px));
}

#nosotros .manifesto-grid,
.page-nosotros .manifesto-grid,
.section-why .manifesto-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	width: 100%;
	box-sizing: border-box;
}

.section-why--nosotros .manifesto-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 36px;
	width: 100%;
	box-sizing: border-box;
}

@media (max-width: 1100px) {
	#nosotros .manifesto-grid,
	.page-nosotros .manifesto-grid,
	.section-why .manifesto-grid,
	.section-why--nosotros .manifesto-grid,
	.manifesto-grid.wp-block-columns {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}
}

@media (max-width: 720px) {
	#nosotros .manifesto-grid,
	.page-nosotros .manifesto-grid,
	.section-why .manifesto-grid,
	.manifesto-grid.wp-block-columns {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.section-why--nosotros .manifesto-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}

/* Timeline: intro inherits standard .section-head; counter stays centered */
.section-timeline > .wrap > .impact-stat + .section-head--cases,
.section-timeline > .wrap > .impact-stat + .wp-block-group.section-head--cases,
.section-timeline > .wrap > .wp-block-mowomo-stat-counter.impact-stat + .section-head--cases,
.section-timeline > .wrap > .wp-block-mowomo-stat-counter.impact-stat + .wp-block-group.section-head--cases,
#nosotros > .wrap > .impact-stat + .section-head--cases,
#nosotros > .wrap > .impact-stat + .wp-block-group.section-head--cases,
#nosotros > .wrap > .wp-block-mowomo-stat-counter.impact-stat + .section-head--cases,
#nosotros > .wrap > .wp-block-mowomo-stat-counter.impact-stat + .wp-block-group.section-head--cases,
.section-why--nosotros > .wrap > .impact-stat + .section-head--cases,
.section-why--nosotros > .wrap > .impact-stat + .wp-block-group.section-head--cases {
	margin-top: 0;
}

#nosotros .timeline,
#nosotros .wp-block-mowomo-timeline.timeline,
.section-timeline .timeline,
.section-timeline .wp-block-mowomo-timeline.timeline {
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

/*
 * Nosotros: vertical zigzag timeline.
 * Central axis; odd items left, even items right. Stacks to one side on narrow screens.
 * Base rules live in theme.css; this keeps wrap-width + page rhythm intact.
 */
.page-nosotros .section-timeline--page .timeline.timeline--zigzag,
.page-nosotros .timeline.timeline--zigzag {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: none;
	overflow: visible;
	padding-block: 32px;
	margin-bottom: var(--section-head-gap, 64px);
}

#nosotros .impact-stat,
#nosotros .wp-block-mowomo-stat-counter.impact-stat,
.section-timeline .impact-stat,
.section-timeline .wp-block-mowomo-stat-counter.impact-stat {
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	margin-top: var(--section-head-gap);
	margin-bottom: 128px;
	text-align: center;
}

/* Nosotros: counter is last in its section — section padding owns the rhythm. */
.page-nosotros .section-timeline--page .impact-stat,
.page-nosotros .section-timeline--page .wp-block-mowomo-stat-counter.impact-stat {
	margin-bottom: 0;
}

.blog-grid .post,
ul.blog-grid .post {
	text-decoration: none;
	color: inherit;
}

.blog-grid.wp-block-post-template > li,
ul.blog-grid.wp-block-post-template > li {
	list-style: none;
	margin: 0;
}

.blog-grid.wp-block-post-template > li > .post,
ul.blog-grid.wp-block-post-template > li > a.post,
ul.blog-grid.wp-block-post-template > li > article.post {
	height: 100%;
}

.section-blog-archive {
	padding-top: 0;
}

.section-single-post {
	padding-top: 0;
}

.single-post .section-single-post .wp-block-post-content {
	font-size: var(--type-body, 16px);
	line-height: 1.7;
	color: var(--ink-70);
}

.single-post .section-single-post .wp-block-post-content h2,
.single-post .section-single-post .wp-block-post-content h3,
.single-post .section-single-post .wp-block-post-content h4 {
	color: var(--ink);
	margin-top: 1.6em;
	margin-bottom: 0.6em;
}

.single-post .section-single-post .wp-block-post-content p.lede,
.single-post .section-single-post .wp-block-post-content .lede {
	font-size: var(--type-lede, 18px);
	line-height: 1.6;
	color: var(--ink-70);
}

/* Editorial quote in long-form: same chrome as .case-testimonial (guide). */
.single-post .section-single-post .wp-block-post-content .wp-block-quote {
	margin: 1.6em 0 0;
	padding: 0 0 0 1.25rem;
	border: 0;
	border-left: 3px solid var(--blue);
	border-radius: 0;
	background: transparent;
	font-family: "Inter", sans-serif;
	font-size: clamp(1.05rem, 1.8vw, 1.25rem);
	font-weight: 500;
	line-height: 1.55;
	color: var(--ink);
}

.single-post .section-single-post .wp-block-post-content .wp-block-quote p {
	margin: 0;
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
}

.single-post .section-single-post .wp-block-post-content .wp-block-quote cite {
	display: block;
	margin-top: 12px;
	font-size: 14px;
	font-weight: 500;
	font-style: normal;
	line-height: 1.4;
	color: var(--ink-50);
}

.single-post .section-single-post .wp-block-post-content figcaption {
	margin-top: 10px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--ink-50);
}

/* Body links + textual CTAs (.go →) inside post content.
   Exclude design-system buttons (class may sit on <a> or wrapper) and .go. */
.single-post .section-single-post .wp-block-post-content a:not(.go):not(.btn-solid):not(.btn-outline):not(.btn-ghost):not(.btn-onlight):not(.btn-pill-accent):not(.wp-block-button__link):not(.wp-element-button) {
	color: var(--blue-deep);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.single-post .section-single-post .wp-block-post-content a:not(.go):not(.btn-solid):not(.btn-outline):not(.btn-ghost):not(.btn-onlight):not(.btn-pill-accent):not(.wp-block-button__link):not(.wp-element-button):hover,
.single-post .section-single-post .wp-block-post-content a:not(.go):not(.btn-solid):not(.btn-outline):not(.btn-ghost):not(.btn-onlight):not(.btn-pill-accent):not(.wp-block-button__link):not(.wp-element-button):focus-visible {
	color: var(--blue);
}

.single-post .section-single-post .wp-block-post-content a.go {
	text-decoration: none;
	font-weight: var(--btn-font-weight, 500);
}

.single-post .section-single-post .wp-block-post-content a.btn-solid,
.single-post .section-single-post .wp-block-post-content a.btn-outline,
.single-post .section-single-post .wp-block-post-content .wp-block-button__link,
.single-post .section-single-post .wp-block-post-content .wp-element-button {
	text-decoration: none;
}

.single-post .section-single-post .wp-block-post-content .hero-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
}

.archive-blog .page-hero {
	padding-left: 0;
	padding-right: 0;
}

.archive-blog .page-hero .wrap {
	max-width: var(--page-width, 1372px);
	margin: 0 auto;
	padding: 0 var(--page-gutter, 32px);
	box-sizing: border-box;
}

/*
 * Query Pagination — editorial styles live in theme.css (.pagination).
 * Kill core/block flex gaps that fight the design-system rhythm.
 */
.wp-block-query-pagination.pagination,
nav.wp-block-query-pagination.pagination {
	gap: 20px 32px;
}

@media (max-width: 480px) {
	.wp-block-query-pagination.pagination,
	nav.wp-block-query-pagination.pagination {
		gap: 16px 24px;
	}
}

.wp-block-query-pagination .wp-block-query-pagination-previous,
.wp-block-query-pagination .wp-block-query-pagination-next {
	text-decoration: none;
}

.wp-block-query-pagination .page-numbers {
	text-decoration: none;
}

/*
 * Single post: centered reading column (breadcrumb, meta, title, body).
 * Hero mesh stays full-bleed; the .wrap is the editorial measure.
 */
.single-post .page-hero {
	padding-left: 0;
	padding-right: 0;
}

.single-post .page-hero .wrap {
	max-width: var(--post-column, var(--measure, 760px));
	margin: 0 auto;
	padding: 0 var(--page-gutter, 32px);
	box-sizing: border-box;
	position: relative;
	z-index: 2;
	width: 100%;
}

.single-post .page-hero > .hero-mesh,
.single-post .page-hero .hero-mesh {
	max-width: none;
	width: auto;
	height: 900px;
	margin: 0;
	inset: -10% -10% auto -10%;
	left: -10%;
	right: -10%;
	pointer-events: none;
	z-index: 0;
}

/* Author + date + category: one compact row, never stretched. */
.single-post .page-hero .meta,
.single-post .page-hero .meta.is-layout-flow,
.single-post .page-hero .meta.is-layout-flex {
	font-family: "Inter", sans-serif;
	font-size: 14px;
	color: var(--ink-50);
	display: flex !important;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	column-gap: 12px;
	row-gap: 8px;
	min-width: 0;
	width: fit-content;
	max-width: 100%;
	margin-bottom: 20px;
	/* Kill WP flow layout gap — it drops date/category below the author. */
	gap: 12px;
}

.single-post .page-hero .meta > *,
.single-post .page-hero .meta.is-layout-flow > *,
.single-post .page-hero .meta.is-layout-flex > * {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

.single-post .page-hero .meta__facts {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	column-gap: 10px;
	row-gap: 4px;
	min-width: 0;
	flex: 0 0 auto;
	width: auto;
	margin: 0;
}

.single-post .page-hero .meta .dot {
	width: 4px;
	height: 4px;
	background: var(--blue);
	border-radius: 50%;
	flex: none;
}

.single-post .page-hero .meta .meta__date,
.single-post .page-hero .meta .wp-block-post-date {
	display: inline-flex;
	align-items: center;
	flex: none;
	white-space: nowrap;
	font-family: "Inter", sans-serif;
	font-size: 14px;
	line-height: 1.35;
	color: var(--ink-50);
	margin: 0;
}

.single-post .page-hero .meta a {
	color: var(--ink-50);
	text-decoration: none;
}

.single-post .page-hero .meta a:hover {
	color: var(--blue-deep);
}

/* Category terms use editorial .mw-tag styles (theme.css), even if DB template lacks .mw-tags. */
.single-post .page-hero .meta .wp-block-post-terms,
.single-post .page-hero .meta .wp-block-post-terms.mw-tags,
.single-post .page-hero .meta .taxonomy-category,
.single-post .page-hero .meta .post-category {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	min-width: 0;
	max-width: 100%;
	margin: 0;
}

.single-post .page-hero .meta .wp-block-post-terms a,
.single-post .page-hero .meta .taxonomy-category a,
.single-post .page-hero .meta .post-category a,
.single-post .page-hero .meta a.mw-tag {
	display: inline-block;
	padding: 6px 12px;
	border-radius: var(--radius-tag, 4px);
	border: 0;
	background: var(--bg-soft);
	font-family: "Inter", sans-serif;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.35;
	color: var(--ink);
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
	min-width: 0;
}

.single-post .page-hero .meta .wp-block-post-terms a:hover,
.single-post .page-hero .meta .wp-block-post-terms a:focus-visible,
.single-post .page-hero .meta .taxonomy-category a:hover,
.single-post .page-hero .meta .taxonomy-category a:focus-visible,
.single-post .page-hero .meta .post-category a:hover,
.single-post .page-hero .meta .post-category a:focus-visible,
.single-post .page-hero .meta a.mw-tag:hover,
.single-post .page-hero .meta a.mw-tag:focus-visible {
	color: var(--ink-deep);
	background: var(--bg-soft-2);
}

/* Dot separator is obsolete once categories are tags. */
.single-post .page-hero .meta__facts > .dot {
	display: none;
}

.single-post .page-hero .meta .wp-block-post-terms .wp-block-post-terms__separator {
	display: none;
}

/* Single-post hero H1: full width of the centered post column. */
.single-post .page-hero h1,
.single-post .page-hero .wp-block-post-title,
.single-post .page-hero .wp-block-post-title.has-3-xl-font-size {
	font-family: "Space Grotesk", sans-serif;
	font-size: var(--type-page-title, clamp(36px, 5vw, 52px));
	line-height: 1.08;
	max-width: none;
	width: 100%;
	color: var(--ink);
}

.single-post .section-single-post {
	padding-left: 0;
	padding-right: 0;
	width: 100%;
	box-sizing: border-box;
}

/*
 * Reading column: same centered measure as the hero wrap
 * (breadcrumb / meta / title / featured / body share one axis).
 */
.single-post .section-single-post .wrap,
.single-post .section-single-post .section-single-post__reading {
	max-width: var(--post-column, var(--measure, 760px));
	margin: 0 auto;
	padding: 0 var(--page-gutter, 32px);
	box-sizing: border-box;
	width: 100%;
}

.single-post .section-single-post .section-single-post__reading > .wp-block-post-featured-image,
.single-post .section-single-post .section-single-post__reading > .wp-block-post-content {
	max-width: none;
	width: 100%;
	box-sizing: border-box;
}

/* Tags + comments: same reading column, editorial (no forum/card chrome). */
.single-post .single-post-footer__heading,
.single-post .single-post-tags .single-post-footer__heading,
.single-post .single-post-comments .wp-block-comments-title {
	font-family: "Space Grotesk", sans-serif;
	font-size: var(--type-section-title, clamp(22px, 3vw, 28px));
	font-weight: 600;
	line-height: 1.25;
	color: var(--ink);
	margin: 0 0 16px;
}

.single-post .single-post-tags {
	margin-top: var(--wp--preset--spacing--xl, 40px);
	padding-top: 28px;
	border-top: 1px solid var(--line);
}

.single-post .single-post-tags:not(:has(a)) {
	display: none;
}

.single-post .single-post-tags .mw-tags,
.single-post .single-post-tags .wp-block-post-terms {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}

.single-post .single-post-tags .wp-block-post-terms .wp-block-post-terms__separator {
	display: none;
}

.single-post .single-post-comments {
	margin-top: var(--wp--preset--spacing--xl, 40px);
	padding-top: 28px;
	border-top: 1px solid var(--line);
}

.single-post .single-post-comment {
	margin: 0 0 28px;
	padding: 0 0 28px;
	border-bottom: 1px solid var(--line);
}

.single-post .single-post-comment:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: 0;
}

.single-post .single-post-comment__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

.single-post .single-post-comment__avatar,
.single-post .single-post-comment__avatar img {
	width: 40px;
	height: 40px;
	border-radius: var(--radius-avatar, 4px);
	object-fit: cover;
	flex-shrink: 0;
}

.single-post .single-post-comment__author,
.single-post .single-post-comment__author a {
	font-family: "Inter", sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	text-decoration: none;
}

.single-post .single-post-comment__author a:hover,
.single-post .single-post-comment__author a:focus-visible {
	color: var(--blue-deep);
}

.single-post .single-post-comment__byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	font-family: "Inter", sans-serif;
	font-size: 13px;
	color: var(--ink-50);
}

.single-post .single-post-comment__byline a {
	color: var(--ink-50);
	text-decoration: none;
}

.single-post .single-post-comment__byline a:hover,
.single-post .single-post-comment__byline a:focus-visible {
	color: var(--blue-deep);
}

.single-post .single-post-comment__content {
	font-family: "Inter", sans-serif;
	font-size: 16px;
	line-height: 1.65;
	color: var(--ink-70);
}

.single-post .single-post-comment__content p:last-child {
	margin-bottom: 0;
}

.single-post .single-post-comment__reply,
.single-post .single-post-comment__reply a {
	display: inline-block;
	margin-top: 10px;
	font-family: "Inter", sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: var(--blue-deep);
	text-decoration: none;
}

.single-post .single-post-comment__reply a:hover,
.single-post .single-post-comment__reply a:focus-visible {
	text-decoration: underline;
}

.single-post .single-post-comments .wp-block-comments-pagination {
	margin: 8px 0 28px;
	font-family: "Inter", sans-serif;
	font-size: 14px;
}

.single-post .single-post-comments__form,
.single-post .single-post-comments .comment-respond {
	margin-top: 8px;
}

.single-post .single-post-comments .comment-reply-title,
.single-post .single-post-comments .comment-form-title {
	font-family: "Space Grotesk", sans-serif;
	font-size: clamp(20px, 2.5vw, 24px);
	font-weight: 600;
	margin: 0 0 16px;
	color: var(--ink);
}

.single-post .single-post-comments .comment-form label {
	font-family: "Inter", sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: var(--ink);
}

.single-post .single-post-comments .comment-form input[type="text"],
.single-post .single-post-comments .comment-form input[type="email"],
.single-post .single-post-comments .comment-form input[type="url"],
.single-post .single-post-comments .comment-form textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin-top: 6px;
	padding: 12px 14px;
	border: 1px solid var(--line);
	border-radius: 0;
	background: var(--bg, #fff);
	font-family: "Inter", sans-serif;
	font-size: 15px;
	line-height: 1.5;
	color: var(--ink);
}

.single-post .single-post-comments .comment-form input:focus,
.single-post .single-post-comments .comment-form textarea:focus {
	outline: 2px solid var(--blue);
	outline-offset: 1px;
	border-color: var(--blue);
}

.single-post .single-post-comments .comment-form .form-submit {
	margin-top: 16px;
	margin-bottom: 0;
}

.single-post .single-post-comments .comment-form .submit,
.single-post .single-post-comments .comment-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 20px;
	border: 0;
	border-radius: 0;
	background: var(--blue);
	color: #fff;
	font-family: "Inter", sans-serif;
	font-size: var(--btn-font-size, 15px);
	font-weight: var(--btn-font-weight, 600);
	cursor: pointer;
}

.single-post .single-post-comments .comment-form .submit:hover,
.single-post .single-post-comments .comment-form input[type="submit"]:hover {
	background: var(--blue-deep);
}

.single-post .single-post-comments .comment-form .required {
	color: var(--blue-deep);
}

.single-post .single-post-comments .comment-notes,
.single-post .single-post-comments .logged-in-as {
	font-family: "Inter", sans-serif;
	font-size: 13px;
	color: var(--ink-50);
	margin: 0 0 16px;
}

/* Keep media inside the reading measure (HTML width attrs must not expand layout). */
.single-post .section-single-post .section-single-post__reading img {
	max-width: 100%;
	height: auto;
}

.single-post .section-single-post .section-single-post__reading .wp-block-image,
.single-post .section-single-post .section-single-post__reading figure {
	max-width: 100%;
}

.single-post .section-single-post .section-single-post__reading .wp-block-column {
	min-width: 0;
}

.single-post .section-single-post .wp-block-post-featured-image {
	margin-bottom: var(--wp--preset--spacing--xl, 40px);
}

.single-post .section-single-post .wp-block-post-featured-image img {
	border-radius: 0;
	display: block;
	width: 100%;
	height: auto;
}

.site-footer {
	padding: 0;
	border-top: none;
}

/*
 * Consistent margin between page content and footer.
 * Home keeps its own rhythm via .site-footer__inner (quote) padding.
 * Other templates: gap on main; last section bottom padding is zeroed
 * so it does not stack with this gap.
 * Exceptions: .section-why and .contact-cta keep their own bottom padding
 * (canonical banner band from patterns/contact-cta.php).
 */
body:not(.home):not(.front-page):not(.page-home):not(.page-legal) main,
body.home.blog main {
	padding-bottom: var(--content-footer-gap, var(--section-padding-y, 104px));
	box-sizing: border-box;
}

body:not(.home):not(.front-page):not(.page-home):not(.page-legal) main > :last-child:not(.section-why):not(.contact-cta),
body:not(.home):not(.front-page):not(.page-home):not(.page-legal) main .wp-block-post-content > :last-child:not(.section-why):not(.contact-cta),
body.home.blog main > :last-child:not(.contact-cta) {
	padding-bottom: 0;
}

/* Why / contact-cta own their bottom padding — avoid stacking with main footer gap. */
.page-nosotros:has(.wp-block-post-content > .section-why:last-child),
body:not(.home):not(.front-page):not(.page-home):not(.page-legal):has(main > .contact-cta:last-child),
body:not(.home):not(.front-page):not(.page-home):not(.page-legal):has(.wp-block-post-content > .contact-cta:last-child),
body.home.blog:has(main > .contact-cta:last-child) {
	--content-footer-gap: 0px;
	--content-footer-gap-mobile: 0px;
}

/*
 * WP root layout applies --wp--style--block-gap between .wp-site-blocks
 * siblings (header / main / footer). Zeroing footer margin-block-start is not
 * enough: the same 24px remains as a collapsed adjoining margin after main.
 * Offset by -block-gap so the canonical contact-cta band meets the footer;
 * the banner's own padding and border-block stay intact.
 */
.wp-site-blocks > main:has(> .contact-cta:last-child) + .wp-block-template-part,
.wp-site-blocks > main:has(.wp-block-post-content > .contact-cta:last-child) + .wp-block-template-part,
.wp-site-blocks > main:has(.wp-block-post-content > .section-why:last-child) + .wp-block-template-part {
	margin-block-start: calc(0px - var(--wp--style--block-gap, 24px));
}

@media (max-width: 480px) {
	body:not(.home):not(.front-page):not(.page-home):not(.page-legal) main,
	body.home.blog main {
		padding-bottom: var(--content-footer-gap-mobile, var(--section-padding-y-mobile, 72px));
	}
}

.site-footer__inner {
	max-width: var(--page-width, 1372px);
	margin: 0 auto;
	padding: 0 var(--page-gutter, 32px);
	box-sizing: border-box;
}

body.home:not(.blog) .site-footer__inner,
body.front-page .site-footer__inner,
body.page-home .site-footer__inner {
	padding: 100px var(--page-gutter, 32px);
}

body.home.blog .site-footer__inner,
body.home.blog .site-footer .footer-quote,
body:not(.home):not(.front-page):not(.page-home) .site-footer__inner,
body:not(.home):not(.front-page):not(.page-home) .site-footer .footer-quote {
	display: none;
}

.site-footer .team-quote.footer-quote {
	margin-bottom: 0;
	border: none;
	border-left: none;
	background: transparent;
	padding: 0;
	text-align: left;
}

.site-footer .team-quote.footer-quote:focus {
	outline: none;
}

.site-footer .team-quote.footer-quote:focus-visible {
	outline: 2px solid var(--blue);
	outline-offset: 8px;
}

.site-footer .footer-quote__nav {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	max-width: 760px;
	margin: 0 auto;
}

.site-footer .footer-quote__content {
	flex: none;
	width: 100%;
	min-width: 0;
	order: 0;
	margin: 0 0 28px;
	text-align: left;
}

.site-footer .footer-quote__arrows {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 10px;
	margin: 0;
}

.site-footer .team-quote.footer-quote p {
	margin-left: 0;
	margin-right: 0;
	max-width: none;
	text-align: left;
}

.site-footer .team-quote.footer-quote .quote-who {
	justify-content: flex-start;
}

.site-footer .team-quote.footer-quote .quote-who .quote-meta,
.site-footer .team-quote.footer-quote .quote-who .meta {
	justify-content: flex-start;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: var(--ink-50);
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}

.site-footer .team-quote.footer-quote .quote-who .quote-who__name {
	font-weight: 700;
	font-size: var(--type-team-name);
	color: var(--ink);
}

.site-footer .team-quote.footer-quote .quote-who .quote-who__role {
	font-family: 'Inter', sans-serif;
	font-size: var(--type-team-role);
	font-weight: 400;
	color: var(--ink-50);
}

.site-footer .team-quote.footer-quote .quote-who .quote-date {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: var(--ink-50);
}

.site-footer .team-quote.footer-quote .quote-who .dot {
	width: 4px;
	height: 4px;
	background: var(--blue);
	border-radius: 50%;
	flex: none;
}

.site-footer .team-quote.footer-quote .quote-avatar {
	width: 50px;
	height: 50px;
}

.site-footer .footer-quote__arrow {
	flex: none;
}

.site-footer .footer-quote__arrow[hidden] {
	display: none;
}

@media (max-width: 600px) {
	.site-footer .footer-quote__nav {
		gap: 10px;
	}

	.site-footer .footer-quote__content {
		margin-bottom: 22px;
	}

	.site-footer .footer-quote__arrow {
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
	}
}

/* Gradient band: 64px vertical padding = previous 32px + 32px additional. */
.site-footer .foot-main,
.site-footer .wp-block-group.foot-main,
.foot-main {
	position: relative;
	border-top: none;
	padding-top: 64px;
	padding-bottom: 64px;
	padding-left: 0;
	padding-right: 0;
	width: 100%;
	background: var(--grad);
	color: #fff;
}

.foot-main__inner {
	max-width: var(--page-width, 1372px);
	margin: 0 auto;
	padding: 0 var(--page-gutter, 32px);
	box-sizing: border-box;
}

.foot-main .foot-addr {
	color: #fff;
}

.foot-menus {
	display: grid;
	grid-template-columns: repeat(2, minmax(140px, auto));
	gap: 48px;
	margin-left: auto;
	justify-items: start;
	align-items: start;
	align-content: start;
	text-align: left;
	--wp--style--block-gap: 0;
}

.foot-links,
.foot-legal {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	font-family: "Inter", sans-serif;
	text-align: left;
}

.foot-main .foot-links a,
.foot-main .foot-legal a,
.foot-main .foot-links .wp-block-navigation-item__content,
.foot-main .foot-legal .wp-block-navigation-item__content {
	font-family: "Inter", sans-serif;
	font-size: 16px;
	font-weight: 500;
	color: #fff;
	text-decoration: none;
	position: relative;
	padding-bottom: 2px;
	display: inline-flex;
	align-items: center;
}

.foot-main .foot-links a::after,
.foot-main .foot-legal a::after,
.foot-main .foot-links .wp-block-navigation-item__content::after,
.foot-main .foot-legal .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: #fff;
	border-radius: 2px;
	transition: width 0.25s ease;
}

.foot-main .foot-links a:hover::after,
.foot-main .foot-links a:focus-visible::after,
.foot-main .foot-legal a:hover::after,
.foot-main .foot-legal a:focus-visible::after,
.foot-main .foot-links .wp-block-navigation-item__content:hover::after,
.foot-main .foot-links .wp-block-navigation-item__content:focus-visible::after,
.foot-main .foot-legal .wp-block-navigation-item__content:hover::after,
.foot-main .foot-legal .wp-block-navigation-item__content:focus-visible::after {
	width: 100%;
}

.foot-main .foot-bottom {
	color: #fff;
}

.foot-main .foot-bottom > span {
	font-family: "Inter", sans-serif;
	font-size: 14px;
}

/* Explicit 32px icons — never set font-size on .foot-social a */
.site-footer .foot-main .wp-block-social-links.foot-social,
.site-footer .foot-main .wp-block-social-links.foot-social.has-small-icon-size,
.foot-main .wp-block-social-links.foot-social,
.foot-main .wp-block-social-links.foot-social.has-small-icon-size {
	font-size: 32px;
}

.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link svg,
.site-footer .foot-main .wp-block-social-links.foot-social.is-style-logos-only .wp-block-social-link.wp-social-link svg,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link svg,
.foot-main .wp-block-social-links.foot-social.is-style-logos-only .wp-block-social-link.wp-social-link svg {
	width: 32px;
	height: 32px;
}

.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link-anchor,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link-anchor {
	font-size: inherit;
}

.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link,
.site-footer .foot-main .wp-block-social-links.foot-social.has-icon-color .wp-block-social-link.wp-social-link,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link,
.foot-main .wp-block-social-links.foot-social.has-icon-color .wp-block-social-link.wp-social-link {
	background: transparent;
	color: #fff;
}

.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,
.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,
.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg path,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg path {
	color: inherit;
	fill: currentColor;
}

.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:hover,
.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:focus-within,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:hover,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:focus-within {
	color: var(--ink);
}

.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:hover .wp-block-social-link-anchor,
.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:hover .wp-block-social-link-anchor svg,
.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:hover .wp-block-social-link-anchor svg path,
.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:focus-within .wp-block-social-link-anchor,
.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:focus-within .wp-block-social-link-anchor svg,
.site-footer .foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:focus-within .wp-block-social-link-anchor svg path,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:hover .wp-block-social-link-anchor,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:hover .wp-block-social-link-anchor svg,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:hover .wp-block-social-link-anchor svg path,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:focus-within .wp-block-social-link-anchor,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:focus-within .wp-block-social-link-anchor svg,
.foot-main .wp-block-social-links.foot-social .wp-block-social-link.wp-social-link:focus-within .wp-block-social-link-anchor svg path {
	fill: currentColor;
	color: inherit;
}

.foot-main .foot-social a:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.foot-main .logo.foot {
	color: #fff;
}

.foot-main .logo.foot .logo-mark {
	width: 150px;
	filter: brightness(0) invert(1);
}

/* Only !important that must stay: WP .wp-block-columns { align-items: initial !important } */
.site-footer .wp-block-columns.foot-top,
.site-footer .wp-block-columns.foot-top.is-layout-flex,
.site-footer .wp-block-columns.are-vertically-aligned-top.foot-top,
.foot-main .wp-block-columns.foot-top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start !important;
	gap: 30px;
	margin-bottom: 40px;
}

.site-footer .wp-block-column.foot-brand,
.site-footer .wp-block-column.foot-menus,
.foot-main .wp-block-column.foot-brand,
.foot-main .wp-block-column.foot-menus {
	align-self: flex-start;
	justify-content: flex-start;
}

.site-footer .wp-block-column.foot-menus,
.foot-main .wp-block-column.foot-menus {
	display: grid;
	grid-template-columns: repeat(2, minmax(140px, auto));
	gap: 48px;
	margin-left: auto;
	justify-items: start;
	align-items: start;
	align-content: start;
	text-align: left;
	/* Kill WP flow layout block-gap margin on the 2nd nav (was pushing .foot-legal down 24px). */
	--wp--style--block-gap: 0;
}

.site-footer .foot-menus > .wp-block-navigation + .wp-block-navigation,
.foot-main .foot-menus > .wp-block-navigation + .wp-block-navigation {
	margin-block-start: 0;
	margin-top: 0;
}

.site-footer .foot-menus .wp-block-navigation,
.site-footer .foot-menus .wp-block-navigation.is-vertical,
.site-footer .foot-links,
.site-footer .foot-legal,
.foot-main .foot-menus .wp-block-navigation,
.foot-main .foot-menus .wp-block-navigation.is-vertical,
.foot-main .foot-links,
.foot-main .foot-legal,
.foot-main .foot-links .wp-block-navigation__container,
.foot-main .foot-legal .wp-block-navigation__container {
	align-items: flex-start;
	justify-content: flex-start;
}

.site-footer .foot-links {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	font-family: "Inter", sans-serif;
	text-align: left;
}

.site-footer .foot-links a,
.site-footer .foot-links .wp-block-navigation-item__content {
	font-family: "Inter", sans-serif;
	font-size: 16px;
	font-weight: 500;
	text-decoration: none;
	position: relative;
	padding-bottom: 2px;
	display: inline-flex;
	align-items: center;
}

.site-footer .foot-links a::after,
.site-footer .foot-links .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: #fff;
	border-radius: 2px;
	transition: width 0.25s ease;
}

.site-footer .foot-links a:hover::after,
.site-footer .foot-links a:focus-visible::after,
.site-footer .foot-links .wp-block-navigation-item__content:hover::after,
.site-footer .foot-links .wp-block-navigation-item__content:focus-visible::after {
	width: 100%;
}

.site-footer .foot-legal {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	font-family: "Inter", sans-serif;
	text-align: left;
}

.site-footer .foot-legal a,
.site-footer .foot-legal .wp-block-navigation-item__content {
	font-family: "Inter", sans-serif;
	font-size: 16px;
	font-weight: 500;
	text-decoration: none;
	position: relative;
	padding-bottom: 2px;
	display: inline-flex;
	align-items: center;
}

.site-footer .foot-legal a::after,
.site-footer .foot-legal .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: #fff;
	border-radius: 2px;
	transition: width 0.25s ease;
}

.site-footer .foot-legal a:hover::after,
.site-footer .foot-legal a:focus-visible::after,
.site-footer .foot-legal .wp-block-navigation-item__content:hover::after,
.site-footer .foot-legal .wp-block-navigation-item__content:focus-visible::after {
	width: 100%;
}

.site-footer .foot-bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}

.site-footer .foot-bottom > span {
	font-family: "Inter", sans-serif;
	font-size: 14px;
}

.site-footer .foot-social {
	display: flex;
	gap: 16px;
	align-items: center;
}

.site-footer .foot-social a {
	text-decoration: none;
}

.site-footer .logo.foot {
	display: block;
	margin-bottom: 14px;
}

.site-footer .logo.foot .logo-mark {
	width: 150px;
	height: auto;
}

.cases-carousel .wp-block-post-template,
.cases-carousel ul.wp-block-post-template,
.cases-carousel .cases-scroll {
	display: flex;
	flex-wrap: nowrap;
	gap: 22px;
	overflow-x: auto;
	padding-bottom: 8px;
	list-style: none;
	margin: 0;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.cases-carousel .wp-block-post-template::-webkit-scrollbar,
.cases-carousel .cases-scroll::-webkit-scrollbar {
	display: none;
}

.cases-carousel .wp-block-post-template > li {
	flex: 0 0 290px;
	max-width: 290px;
	margin: 0;
	list-style: none;
}

.cases-carousel .case-card,
.cases-carousel .case-card.wp-block-mowomo-case-card-preview {
	scroll-snap-align: start;
}

.cases-carousel .case-card.wp-block-mowomo-case-card-preview {
	text-decoration: none;
	color: inherit;
}

.portfolio-grid.wp-block-query {
	display: block;
}

.portfolio-grid .wp-block-post-template,
.portfolio-grid ul.wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.portfolio-grid .wp-block-post-template > li {
	margin: 0;
	list-style: none;
	min-width: 0;
}

.portfolio-grid .case-card,
.portfolio-grid .case-card.wp-block-mowomo-case-card-preview {
	flex: none;
	width: 100%;
	max-width: none;
	text-decoration: none;
	color: inherit;
	display: block;
}

.portfolio-empty {
	margin: 48px 0 0;
	text-align: center;
}

.archive-casos .section-casos-archive > .wrap,
.archive-casos .section-casos-archive .wrap {
	max-width: var(--page-width, 1372px);
	margin: 0 auto;
	padding: 0 var(--page-gutter, 32px);
	box-sizing: border-box;
}

.archive-casos .page-hero {
	padding-left: 0;
	padding-right: 0;
}

.archive-casos .page-hero .wrap {
	max-width: var(--page-width, 1372px);
	margin: 0 auto;
	padding: 0 var(--page-gutter, 32px);
	box-sizing: border-box;
}

.archive-casos .section-casos-archive {
	padding-top: 0;
	/* Bottom gap owned by main --content-footer-gap */
	padding-bottom: 0;
}

.single-proyecto .page-hero {
	padding-left: 0;
	padding-right: 0;
}

.single-proyecto .page-hero .wrap,
.single-proyecto-content .wrap {
	max-width: var(--page-width, 1372px);
	margin: 0 auto;
	padding: 0 var(--page-gutter, 32px);
	box-sizing: border-box;
}

.single-proyecto-content {
	/* Bottom gap owned by main --content-footer-gap */
	padding-bottom: 0;
}

.portfolio-filter-empty[hidden] {
	display: none;
}

.portfolio-filter-empty:not([hidden]) {
	display: block;
	margin-top: 48px;
}

.page-hero h1,
.page-hero .wp-block-post-title,
.page-hero .wp-block-post-title.has-3-xl-font-size {
	font-family: "Space Grotesk", sans-serif;
	font-size: var(--type-page-hero, clamp(40px, 6.5vw, 64px));
	line-height: 1.08;
	max-width: 600px;
}

.page-hero .wp-block-post-excerpt.lede,
.page-hero .wp-block-post-excerpt.lede p {
	margin-top: 22px;
	max-width: 600px;
	font-size: var(--type-lede, 18px);
	line-height: 1.6;
	color: var(--ink-70);
}

.page-hero .case-hero-meta-wrap:has(.eyebrow) {
	margin-bottom: 0;
}

.needs-diagnostic .needs-diagnostic__tab {
	font-family: "Inter", sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.25;
}

.needs-diagnostic .needs-diagnostic__tab.is-active {
	background: var(--blue);
	border-color: var(--blue);
	color: #fff;
}

.needs-diagnostic .needs-diagnostic__tab.is-active:hover,
.needs-diagnostic .needs-diagnostic__tab.is-active:focus-visible {
	background: var(--blue-deep);
	border-color: var(--blue-deep);
	color: #fff;
}

.needs-diagnostic .needs-diagnostic__tab.is-active .needs-diagnostic__index {
	color: #fff;
}

.single-proyecto .breadcrumb.wp-block-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	font-family: "Inter", sans-serif;
	font-size: 12.5px;
	color: var(--ink-50);
	margin-bottom: 18px;
}

.single-proyecto .breadcrumb.wp-block-group a {
	color: var(--ink-50);
	text-decoration: none;
}

.single-proyecto .breadcrumb.wp-block-group a:hover {
	color: var(--blue-deep);
}

.single-proyecto .breadcrumb.wp-block-group span {
	margin: 0 8px;
}

.portfolio-grid .wp-block-post-template > li.is-hidden,
.portfolio-grid .wp-block-post-template > li:has(.case-card.is-hidden) {
	display: none;
}

@media (max-width: 900px) {
	.portfolio-grid .wp-block-post-template,
	.portfolio-grid ul.wp-block-post-template {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.portfolio-grid .wp-block-post-template,
	.portfolio-grid ul.wp-block-post-template {
		grid-template-columns: 1fr;
	}
}

.case-card.wp-block-group {
	overflow: hidden;
}

.case-tags a,
.case-tags span,
.wp-block-post-terms.case-tags a {
	font-family: "Inter", sans-serif;
	font-size: 12px;
	font-weight: 500;
	background: var(--bg-soft);
	padding: 5px 10px;
	border-radius: var(--radius-tag, 4px);
	color: var(--ink-70);
	display: inline-block;
	margin: 0 8px 8px 0;
	text-decoration: none;
	border: 0;
}

.case-tags span {
	margin: 0;
}

/* Case tech terms use canonical .mw-tags / theme.css (no tech-pills). */
.single-proyecto .case-tech-section .wp-block-post-terms.mw-tags a {
	margin: 0;
	font-size: 14px;
	padding: 6px 12px;
	color: var(--ink);
}

.mowomo-logo-marquee .partner-note {
	max-width: 780px;
	margin-bottom: 28px;
	color: var(--ink-70);
	line-height: 1.6;
}

.mowomo-logo-marquee .partner-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 28px;
}

.mowomo-logo-marquee .partner-pill {
	padding: 6px 12px;
	border-radius: var(--radius-tag, 4px);
	border: 0;
	background: var(--bg-soft);
	font-weight: 500;
	font-size: 14px;
	color: var(--ink);
}

.mowomo-logo-marquee .marquee-wrap {
	overflow: hidden;
}

.mowomo-block-placeholder {
	padding: 16px 20px;
	border: 1px dashed var(--line-strong);
	border-radius: 12px;
	color: var(--ink-50);
	font-size: 16px;
	background: var(--bg-soft);
}

/* ---------- Contact Form 7 (maps to canonical .mw-form in theme.css) ---------- */
.contact-form-card {
	border: 1px solid var(--line);
	border-radius: var(--btn-radius, 8px);
	padding: 32px;
	background: var(--paper, #fbfaf7);
}

.contact-layout.wp-block-columns {
	display: grid;
	grid-template-columns: 1.3fr 0.7fr;
	gap: 32px;
}

.contact-info-col {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.contact-form-card .wpcf7,
.contact-form-card .wpcf7-form {
	margin: 0;
}

/* CF7 form uses the same grid/controls as .mw-form / .contact-form */
.contact-form-card .wpcf7-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 20px;
}

.contact-form-card .wpcf7-form p {
	margin: 0;
}

.contact-form-card .wpcf7-form p:has(textarea),
.contact-form-card .wpcf7-form p:has(select),
.contact-form-card .wpcf7-form p:has(.wpcf7-submit),
.contact-form-card .wpcf7-form p:has(.btn-solid),
.contact-form-card .wpcf7-form p:has(.form-legal),
.contact-form-card .wpcf7-form p.form-legal,
.contact-form-card .wpcf7-form p.form-legal-note,
.contact-form-card .wpcf7-form p.full,
.contact-form-card .wpcf7-form label:has(textarea),
.contact-form-card .wpcf7-form label:has(select),
.contact-form-card .wpcf7-form .full {
	grid-column: 1 / -1;
}

/* RGPD acceptance — wrappers full-width; only the input is 18px */
.contact-form-card .wpcf7-form .form-legal .wpcf7-form-control-wrap,
.contact-form-card .wpcf7-form .form-legal .wpcf7-acceptance {
	display: block;
	width: 100%;
	max-width: 42em;
	height: auto;
	padding: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	appearance: none;
}

.contact-form-card .wpcf7-form .form-legal .wpcf7-list-item {
	display: block;
	margin: 0;
	width: 100%;
}

.contact-form-card .wpcf7-form .form-legal .wpcf7-list-item label,
.contact-form-card .wpcf7-form .form-legal__label {
	display: grid;
	grid-template-columns: 18px 1fr;
	column-gap: 10px;
	align-items: start;
	margin: 0;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.55;
	color: var(--ink-70);
	cursor: pointer;
}

.contact-form-card .wpcf7-form .form-legal input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	padding: 0;
	border: none;
	background: transparent;
	accent-color: var(--blue-deep);
	appearance: auto;
}

.contact-form-card .wpcf7-form .form-legal .wpcf7-list-item-label {
	min-width: 0;
	font-weight: 400;
}

.contact-form-card .wpcf7-form .form-legal-note {
	font-size: 13px;
	line-height: 1.55;
	color: var(--ink-50);
	max-width: 42em;
}

.contact-form-card .wpcf7-form .form-legal a,
.contact-form-card .wpcf7-form .form-legal-note a,
.contact-form-card .form-legal-links a {
	color: var(--ink-70);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.contact-form-card .wpcf7-form .form-legal a:hover,
.contact-form-card .wpcf7-form .form-legal a:focus-visible,
.contact-form-card .wpcf7-form .form-legal-note a:hover,
.contact-form-card .wpcf7-form .form-legal-note a:focus-visible,
.contact-form-card .form-legal-links a:hover,
.contact-form-card .form-legal-links a:focus-visible {
	color: var(--blue-deep);
}

@media (max-width: 1100px) {
	.services-grid.wp-block-columns:not(.services-grid--zigzag) {
		grid-template-columns: repeat(2, 1fr);
	}

	.services-grid.services-grid--zigzag {
		gap: 14px;
	}

	.services-grid.services-grid--zigzag .service-visual {
		flex-basis: 34%;
		width: 34%;
		max-width: 220px;
		height: 148px;
	}
}

@media (max-width: 860px) {
	.site-header {
		padding: 16px 20px;
	}

	.site-header.scrolled {
		padding: 14px 20px;
	}

	.section-timeline,
	.section-why:not(.section-why--nosotros),
	.section-blog,
	.section-contact,
	.section-team {
		padding-top: var(--section-padding-y-mobile, 72px);
		padding-bottom: var(--section-padding-y-mobile, 72px);
	}

	.section-cases {
		padding-top: var(--section-padding-y-mobile, 72px);
		padding-bottom: var(--section-padding-y-mobile, 72px);
	}

	.clients {
		padding: var(--section-padding-y-mobile) 0;
	}

	.wp-block-group.section-head {
		flex-direction: column;
		align-items: flex-start;
		margin-bottom: 36px;
	}

	.section-head--cases .section-head__row,
	.wp-block-group.section-head--cases .section-head__row {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.services-grid.wp-block-columns:not(.services-grid--zigzag),
	.manifesto-grid.wp-block-columns,
	.blog-grid {
		grid-template-columns: 1fr;
	}

	.services-grid.services-grid--zigzag {
		gap: 12px;
	}

	.services-grid.services-grid--zigzag > .service,
	.services-grid.services-grid--zigzag > .service:nth-child(even) {
		width: 100%;
		max-width: 100%;
		margin: 0;
		align-self: stretch;
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		padding: 16px;
	}

	.services-grid.services-grid--zigzag .service-body,
	.services-grid.services-grid--zigzag > .service:nth-child(even) .service-body {
		align-items: flex-start;
		text-align: left;
	}

	.services-grid.services-grid--zigzag .service-visual {
		flex: none;
		width: 100%;
		max-width: none;
		height: 148px;
	}

	.contact-layout.wp-block-columns {
		grid-template-columns: 1fr;
	}

	.contact-form-card {
		padding: 24px 20px;
	}

	.contact-form-card .wpcf7-form {
		grid-template-columns: 1fr;
	}
}

/* ---------- Contact Form 7 controls = theme .mw-form tokens ---------- */

.contact-form-card .wpcf7-form label {
	display: block;
	font-family: "Inter", sans-serif;
	font-weight: 500;
	font-size: var(--type-eyebrow, 15px);
	letter-spacing: -0.01em;
	text-transform: none;
	color: var(--ink);
	margin-bottom: 8px;
}

.contact-form-card .wpcf7-form-control:not(.wpcf7-submit):not(.btn-solid):not(.wpcf7-acceptance) {
	width: 100%;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-tag, 4px);
	padding: 12px 14px;
	font-family: "Inter", sans-serif;
	font-size: var(--type-body, 16px);
	line-height: 1.5;
	color: var(--ink);
	background: var(--bg);
	box-sizing: border-box;
}

.contact-form-card .wpcf7-form-control:focus {
	outline: 2px solid var(--blue);
	outline-offset: 2px;
	border-color: var(--blue);
}

.contact-form-card .wpcf7-textarea {
	min-height: 140px;
	resize: vertical;
}

.contact-form-card .wpcf7-select {
	appearance: none;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--ink-50) 50%),
		linear-gradient(135deg, var(--ink-50) 50%, transparent 50%);
	background-position: calc(100% - 18px) calc(50% - 2px), calc(100% - 12px) calc(50% - 2px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	padding-right: 36px;
}

/* Submit inherits canonical .btn-solid (class added in cf7.php + form template). */
.contact-form-card .wpcf7-submit.btn-solid,
.contact-form-card input[type="submit"].btn-solid {
	width: auto;
	cursor: pointer;
}

.contact-form-card .wpcf7-not-valid-tip {
	font-size: 13px;
	color: #b42318;
	margin-top: 6px;
}

.contact-form-card .wpcf7-response-output {
	grid-column: 1 / -1;
	margin: 0;
	border-radius: var(--radius-tag, 4px);
	font-size: var(--type-body, 16px);
}

.case-gallery.case-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 32px;
}

.case-window--image {
	margin: 0;
	overflow: hidden;
	border-radius: 12px;
	border: 1px solid var(--line);
	background: var(--bg-soft);
}

.case-gallery-image {
	display: block;
	width: 100%;
	height: auto;
}

.case-body-text {
	max-width: var(--measure, 760px);
	font-size: 16px;
	line-height: 1.7;
	color: var(--ink-70);
	margin: 0 0 32px;
}

/* Hide leftover category eyebrows above titles (DB/pattern leftovers).
   Keep: Home hero kicker (.hero-copy > .eyebrow), info-card labels,
   tech-group labels, service titles (h3.eyebrow). */
.page-hero .wrap > .eyebrow,
.page-hero > .eyebrow,
.section-head .eyebrow,
.single-proyecto .page-hero > .eyebrow,
.single-proyecto .page-hero .wrap > p.eyebrow {
	display: none;
}

.hero-copy > .eyebrow.hero-eyebrow {
	display: block;
	margin: 0 0 24px;
	color: var(--blue);
	font-size: 15px;
}

/* Page shell vs reading measure.
   Block groups without an inner .wrap use the same box as .wrap
   (page-width + gutter inside). Prevents WP constrained recentering
   (h1 max-width) and stale contentSize values (e.g. 1180).
   HTML sections that nest .wrap stay full-bleed; .wrap owns the shell.
   Singles + legal → --measure (760). Nested reading columns keep their size. */
body:not(.single-post):not(.page-legal) .wp-block-group.page-hero.is-layout-constrained,
body:not(.single-post):not(.page-legal) .wp-block-group.contact-section.is-layout-constrained,
body:not(.single-post):not(.page-legal) .wp-block-group.contact-wrap.is-layout-constrained {
	max-width: var(--page-width, 1372px);
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--page-gutter, 32px);
	padding-right: var(--page-gutter, 32px);
	box-sizing: border-box;
	--wp--style--global--content-size: 100%;
	--wp--style--global--wide-size: 100%;
}

/* Sections that already nest .wrap: only sync contentSize, no extra gutter. */
.section-why.is-layout-constrained,
.section-blog-archive.is-layout-constrained,
.section-casos-archive.is-layout-constrained,
.section-author-posts.is-layout-constrained,
.section-author-charlas.is-layout-constrained,
.site-footer__inner.is-layout-constrained,
.foot-main__inner.is-layout-constrained,
.page-servicios .wp-block-group.is-layout-constrained:not(.contact-cta__inner):not(.page-hero):not(.contact-wrap),
.page-servicio .wp-block-group.is-layout-constrained:not(.contact-cta__inner):not(.case-testimonial-section):not(.case-tech-section):not(.info-card):not(.page-hero),
.page-nosotros .wp-block-group.is-layout-constrained:not(.contact-cta__inner):not(.page-hero) {
	--wp--style--global--content-size: var(--page-width, 1372px);
	--wp--style--global--wide-size: var(--page-width, 1372px);
}

/* Fill the shell; do not re-center narrower children (h1, lede, columns). */
body:not(.single-post):not(.page-legal) .wp-block-group.page-hero.is-layout-constrained > :where(:not(.alignfull)),
body:not(.single-post):not(.page-legal) .wp-block-group.contact-section.is-layout-constrained > :where(:not(.alignfull)) {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

/* CTA inner stays a nested reading column inside the contact-wrap shell. */
.wp-block-group.contact-wrap.is-layout-constrained > .contact-cta__inner {
	max-width: min(780px, 100%);
	margin-left: auto;
	margin-right: auto;
}

.single-post .wp-block-group.is-layout-constrained,
.single-post .wp-block-post-content.is-layout-constrained,
body.page-legal .wp-block-group.is-layout-constrained,
body.page-legal main.is-layout-constrained {
	--wp--style--global--content-size: var(--measure, 760px);
	--wp--style--global--wide-size: var(--measure, 760px);
}

.contact-cta__inner.is-layout-constrained,
.footer-quote.is-layout-constrained,
.case-testimonial-section.is-layout-constrained {
	--wp--style--global--content-size: var(--measure, 760px);
	--wp--style--global--wide-size: var(--measure, 760px);
}

.case-reto,
.case-solucion,
.case-results,
.case-testimonial-section {
	padding-top: 0;
	margin-bottom: 32px;
}

@media (max-width: 860px) {
	.case-gallery.case-gallery {
		grid-template-columns: 1fr;
	}
}

/* Legal pages — mismo respiro vertical que .page-hero (bajo header sticky).
   Excluded from main --content-footer-gap rules above; no !important needed. */
body.page-legal main.wp-block-group,
body.page-legal main {
	max-width: var(--measure, 760px);
	margin-inline: auto;
	padding-top: 160px;
	padding-bottom: 80px;
	padding-inline: 32px;
	box-sizing: border-box;
}

body.page-legal .wp-block-post-title {
	font-family: "Space Grotesk", sans-serif;
	font-size: var(--type-page-title, clamp(36px, 5vw, 52px));
	line-height: 1.15;
	color: var(--ink);
	margin: 0 0 28px;
}

body.page-legal .legal-page .legal-intro {
	font-family: "Inter", sans-serif;
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ink-50);
}

@media (max-width: 480px) {
	body.page-legal main.wp-block-group,
	body.page-legal main {
		padding-top: 128px;
		padding-bottom: 56px;
		padding-inline: 20px;
	}
}
