/* ==========================================================================
   FanProject — sistema visual
   Tokens de color, tipografía y espaciado viven en theme.json.
   Aquí: composición editorial, componentes y estados.
   ========================================================================== */

:root {
	--fp-negro: var(--wp--preset--color--negro);
	--fp-blanco: var(--wp--preset--color--blanco);
	--fp-verde: var(--wp--preset--color--verde);
	--fp-gris: var(--wp--preset--color--gris-texto);
	--fp-gris-osc: var(--wp--preset--color--gris-oscuro);
	--fp-linea: var(--wp--preset--color--linea);
	--fp-linea-osc: var(--wp--preset--color--linea-oscura);
	--fp-superficie: var(--wp--preset--color--superficie);
	--fp-r-sm: var(--wp--custom--radius--sm);
	--fp-r-md: var(--wp--custom--radius--md);
	--fp-ease: var(--wp--custom--ease);
	--fp-gap: clamp(1rem, 2.5vw, 2rem);
	--fp-section: var(--wp--preset--spacing--70);
	--fp-header-h: 72px;
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--fp-header-h) + 1rem); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "cv11", "ss01"; }
::selection { background: var(--fp-verde); color: var(--fp-negro); }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.fp-main > .wp-block-post-content > * { margin-block-start: 0; }

:where(a, button, summary, input, select, textarea):focus-visible {
	outline: 2px solid var(--fp-verde);
	outline-offset: 3px;
	border-radius: 2px;
}

.fp-visually-hidden {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}


/* ---------------------------------------------------------------- Header */
.fp-header-wrap {
	position: sticky; top: 0; z-index: 100;
	/* Fondo sólido: backdrop-filter crearía un bloque contenedor y el menú móvil
	   (position: fixed) quedaría atrapado dentro de la cabecera. */
	background: var(--fp-blanco);
	border-bottom: 1px solid transparent;
	transition: border-color .3s var(--fp-ease);
}
.admin-bar .fp-header-wrap { top: var(--wp-admin--admin-bar--height, 0); }
.fp-header-wrap.is-scrolled { border-bottom-color: var(--fp-linea); }
.fp-header { padding-block: 0; }
.fp-header__bar { min-height: var(--fp-header-h); gap: var(--fp-gap); }
.fp-header__actions { gap: clamp(.75rem, 2vw, 2rem); }
.fp-logo img { display: block; height: auto; }
.fp-header__cta .wp-block-button__link { padding: .7rem 1.1rem; }

.fp-nav .wp-block-navigation-item__content { text-decoration: none; position: relative; padding-block: .35rem; }
.fp-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px; background: var(--fp-verde);
	transition: right .35s var(--fp-ease);
}
.fp-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover::after,
.fp-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current="page"]::after { right: 0; }
.fp-nav .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed; inset: 0; z-index: 100000; width: auto; height: 100dvh;
	background: var(--fp-blanco); color: var(--fp-negro);
	padding: 1.25rem clamp(1rem, 4vw, 3rem);
	overflow-y: auto;
}
.admin-bar .fp-nav .wp-block-navigation__responsive-container.is-menu-open { top: var(--wp-admin--admin-bar--height, 0); }
.fp-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; padding-top: 3rem; }
.fp-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start; }
.fp-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; width: 100%; }
.fp-nav .wp-block-navigation__responsive-container-open,
.fp-nav .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.fp-nav .wp-block-navigation__responsive-container-close { top: 1rem; right: clamp(1rem, 4vw, 3rem); }
.fp-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: .25rem; margin-top: 3rem;
}
.fp-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 2.25rem; letter-spacing: -.03em; font-weight: 500;
}

@media (max-width: 781px) {
	.fp-header .fp-header__cta { display: none !important; }
}

/* Selector de idioma */
.fp-lang { display: flex; align-items: center; gap: .15rem; list-style: none; margin: 0; padding: 0; font-size: var(--wp--preset--font-size--caption); font-weight: 500; letter-spacing: .04em; }
.fp-lang li + li::before { content: "/"; color: var(--fp-gris); margin-right: .15rem; }
.fp-lang a, .fp-lang span { text-decoration: none; padding: .35rem .2rem; color: var(--fp-gris); }
.fp-lang a:hover { color: currentColor; }
.fp-lang [aria-current="true"] { color: currentColor; }
.fp-lang abbr { text-decoration: none; border: 0; }
.has-negro-background-color .fp-lang a, .has-negro-background-color .fp-lang span { color: var(--fp-gris-osc); }
.has-negro-background-color .fp-lang [aria-current="true"] { color: var(--fp-blanco); }

/* Firma FanProject (SVG en contornos; hereda el color del texto) */
.fp-brand__link { display: block; color: inherit; line-height: 0; }
.fp-brand__link svg { display: block; width: 100%; height: auto; }
.fp-brand__link:focus-visible { outline-offset: 6px; }
.has-negro-background-color .fp-brand__link { color: var(--fp-blanco); }
@media (max-width: 480px) { .fp-header .fp-brand__link { width: 124px !important; } }

/* ---------------------------------------------------------------- Secciones */
.fp-section { padding-block: var(--fp-section); position: relative; }
.fp-section.has-negro-background-color { --fp-gris: var(--fp-gris-osc); --fp-linea: var(--fp-linea-osc); }
.fp-section.has-negro-background-color a:not(.wp-block-button__link) { color: var(--fp-blanco); }
.fp-section > * + *,
.fp-section.is-layout-constrained > * + * { margin-block-start: var(--wp--preset--spacing--50); }
/* Composición editorial: todo alineado a la izquierda de la retícula de 1320px
   (el layout "constrained" de WordPress centraría los bloques más estrechos). */
.fp-section.is-layout-constrained > :not(.alignfull):not(.alignwide) {
	margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size, 1320px)) / 2)) !important;
	margin-right: auto !important;
}
.fp-section + .fp-section:not(.has-background) { border-top: 1px solid var(--fp-linea); }
.fp-section.has-background + .fp-section:not(.has-background),
.fp-hero + .fp-section { border-top: 0; }
.fp-section.has-superficie-background-color + .fp-section:not(.has-background) { border-top: 0; }

.fp-eyebrow {
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
	color: var(--fp-gris); margin: 0;
}
.fp-lead { max-width: 58ch; line-height: 1.5; letter-spacing: -.01em; }
.fp-measure { max-width: 62ch; }
.fp-section__head { display: grid; gap: var(--wp--preset--spacing--30); max-width: 56rem; }
.fp-section__head > * { margin: 0; }
.fp-section__head .wp-block-heading { max-width: 20ch; }
.fp-statement { max-width: 22ch; text-wrap: balance; }
.wp-block-heading { text-wrap: balance; }
p { text-wrap: pretty; }

.fp-link { margin: 0; font-size: var(--wp--preset--font-size--small); font-weight: 500; }
.fp-link a { text-decoration: none; display: inline-flex; gap: .4rem; align-items: center; border-bottom: 1px solid currentColor; padding-bottom: .15rem; transition: border-color .25s var(--fp-ease), color .25s; }
.fp-link a:hover { border-bottom-color: var(--fp-verde); }

/* Split editorial 4/8 */
.fp-split { display: grid; gap: var(--wp--preset--spacing--40); }
.fp-split__aside, .fp-split__body { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--30); }
.fp-split__aside > *, .fp-split__body > * { margin: 0; }
@media (min-width: 900px) {
	.fp-split { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--fp-gap); }
	.fp-split__aside { grid-column: 1 / span 4; position: sticky; top: calc(var(--fp-header-h) + 2rem); align-self: start; }
	.fp-split__body { grid-column: 5 / span 8; }
	.fp-split__aside .wp-block-heading { max-width: 14ch; }
}

.fp-columns-2 { display: grid; gap: var(--wp--preset--spacing--50); }
@media (min-width: 900px) { .fp-columns-2 { grid-template-columns: 1fr 1fr; column-gap: var(--fp-gap); } }
.fp-columns-2 > *, .fp-panel > * { margin: 0; }
.fp-panel { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--30); }
.fp-columns-2--panels .fp-panel { background: var(--fp-blanco); border-radius: var(--fp-r-md); padding: clamp(1.5rem, 4vw, 3rem); }

/* ---------------------------------------------------------------- Hero */
.fp-hero { padding-block: clamp(3.5rem, 10vw, 9rem) clamp(3rem, 7vw, 6rem); }
.fp-hero > * { margin-block-start: 0; }
.fp-hero .fp-eyebrow { margin-bottom: clamp(1.5rem, 4vw, 3rem); }
.fp-display {
	max-width: 17ch; margin: 0;
	font-weight: 500; line-height: .98 !important; letter-spacing: -.045em !important;
}
.fp-hero .fp-display::after,
.fp-cta__title::after {
	content: ""; display: inline-block; vertical-align: baseline;
	width: .55em; height: .085em; margin-left: .12em; border-radius: 99px;
	background: var(--fp-verde);
	transform-origin: left center;
	animation: fp-stroke 1s .35s var(--fp-ease) both;
}
@keyframes fp-stroke { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.fp-hero .fp-lead { margin-top: clamp(1.5rem, 3vw, 2.5rem); color: var(--fp-gris); }
.fp-hero__actions { margin-top: clamp(2rem, 4vw, 3rem); gap: 1.5rem; align-items: center; }
.fp-hero__meta {
	margin-top: clamp(3rem, 8vw, 7rem) !important; padding-top: 1.25rem; border-top: 1px solid var(--fp-linea);
	font-size: var(--wp--preset--font-size--caption); letter-spacing: .06em; text-transform: uppercase; color: var(--fp-gris);
}
.fp-hero--compact { padding-bottom: clamp(2rem, 5vw, 4rem); }
.fp-hero--case .fp-display { max-width: 19ch; font-size: var(--wp--preset--font-size--titulo-xl) !important; }
.fp-hero--case .fp-hero__meta { margin-top: 2rem !important; border-top: 0; padding-top: 0; order: -1; }
.fp-hero--case { display: flex; flex-direction: column; }
.fp-hero--case .fp-eyebrow { margin-bottom: .5rem; }
.fp-hero--case .fp-hero__meta { order: 0; margin: 0 0 clamp(1.5rem, 4vw, 3rem) !important; }
.fp-hero--case .fp-eyebrow { order: -2; }
.fp-hero--case .fp-hero__meta { order: -1; }

/* Botón estilo enlace */
.wp-block-button.is-style-link .wp-block-button__link {
	background: transparent; color: currentColor; padding: .25rem 0; border-radius: 0;
	border-bottom: 1px solid currentColor;
}
.wp-block-button.is-style-link .wp-block-button__link:hover { background: transparent; color: currentColor; border-bottom-color: var(--fp-verde); }
.wp-block-button__link { transition: background-color .25s var(--fp-ease), color .25s var(--fp-ease), transform .25s var(--fp-ease); }
.wp-block-button:not(.is-style-link) .wp-block-button__link:active { transform: translateY(1px); }
.has-negro-background-color .wp-block-button:not(.is-style-link) .wp-block-button__link:hover { background: var(--fp-blanco); color: var(--fp-negro); }

/* ---------------------------------------------------------------- Filas numeradas */
.fp-rows { display: grid; }
.fp-rows > .fp-row { margin: 0; }
.fp-row {
	display: grid; gap: .75rem var(--fp-gap);
	padding-block: clamp(1.5rem, 3vw, 2.25rem);
	border-top: 1px solid var(--fp-linea);
}
.fp-row:last-child { border-bottom: 1px solid var(--fp-linea); }
.fp-row > *, .fp-row__body > * { margin: 0; }
.fp-row__num { font-size: var(--wp--preset--font-size--caption); letter-spacing: .08em; text-transform: uppercase; color: var(--fp-gris); padding-top: .4rem; }
.fp-row__title { font-size: var(--wp--preset--font-size--titulo-md); }
.fp-row__body { display: flex; flex-direction: column; gap: .75rem; }
.fp-row__text { color: var(--fp-gris); max-width: 52ch; }
@media (min-width: 900px) {
	.fp-row { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; }
	.fp-row__num { grid-column: 1 / span 3; }
	.fp-row__title { grid-column: 4 / span 4; }
	.fp-row__body { grid-column: 8 / span 5; }
	.fp-split__body .fp-row__num { grid-column: 1 / span 1; }
	.fp-split__body .fp-row__title { grid-column: 2 / span 5; }
	.fp-split__body .fp-row__body { grid-column: 7 / span 6; }
	.fp-rows--compact .fp-row__title { grid-column: 1 / span 5; }
	.fp-rows--compact .fp-row__body { grid-column: 6 / span 7; }
}
.fp-rows--compact .fp-row { padding-block: 1.25rem; }
.fp-rows--compact .fp-row__title { font-size: var(--wp--preset--font-size--lead); }
.fp-rows--tree .fp-row__num { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0; text-transform: none; color: var(--fp-verde); font-size: 1rem; }
.fp-rows--principles .fp-row__title { font-size: var(--wp--preset--font-size--titulo-lg); letter-spacing: -.035em; }
@media (min-width: 900px) {
	.fp-rows--principles .fp-row__num { grid-column: 1 / span 1; }
	.fp-rows--principles .fp-row__title { grid-column: 2 / span 7; }
	.fp-rows--principles .fp-row__body { grid-column: 9 / span 4; padding-top: .6rem; }
}

/* ---------------------------------------------------------------- Lista gigante (servicios) */
.fp-index { border-top: 1px solid var(--fp-linea); }
.fp-index > * { margin: 0; }
.fp-index__item {
	position: relative; display: grid; gap: .5rem var(--fp-gap);
	padding-block: clamp(1.5rem, 4vw, 3rem); border-bottom: 1px solid var(--fp-linea);
}
.fp-index__item > * { margin: 0; }
.fp-index__num { font-size: var(--wp--preset--font-size--caption); color: var(--fp-gris); letter-spacing: .08em; padding-top: .8em; }
.fp-index__title { font-size: var(--wp--preset--font-size--titulo-xl) !important; letter-spacing: -.045em !important; line-height: 1 !important; }
.fp-index__title a { text-decoration: none; }
.fp-index__title a::after { content: ""; position: absolute; inset: 0; }
.fp-index__text { color: var(--fp-gris); max-width: 46ch; }
.fp-index__more { font-size: var(--wp--preset--font-size--small); font-weight: 500; }
.fp-index__title, .fp-index__more { transition: transform .45s var(--fp-ease), color .3s; }
.fp-index__item:hover .fp-index__title { transform: translateX(.35em); }
.fp-index__item:hover .fp-index__more { color: var(--fp-negro); }
.fp-index__item::before {
	content: ""; position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%;
	background: var(--fp-verde); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--fp-ease);
}
.fp-index__item:hover::before, .fp-index__item:focus-within::before { transform: scaleX(1); }
@media (min-width: 900px) {
	.fp-index__item { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; }
	.fp-index__num { grid-column: 1 / span 1; }
	.fp-index__title { grid-column: 2 / span 6; }
	.fp-index__text { grid-column: 8 / span 5; padding-top: .6rem; }
	.fp-index__more { grid-column: 8 / span 5; }
}

/* ---------------------------------------------------------------- Sistema (cadena) */
.fp-chain { display: grid; gap: 0; counter-reset: fp-chain; }
.fp-chain > * { margin: 0; }
.fp-chain__item { position: relative; padding: 1.5rem 0; border-top: 1px solid var(--fp-linea); counter-increment: fp-chain; }
.fp-chain__item > * { margin: 0; }
.fp-chain__title { font-size: var(--wp--preset--font-size--titulo-lg) !important; letter-spacing: -.04em !important; display: flex; align-items: baseline; gap: .75rem; }
.fp-chain__title::before { content: counter(fp-chain, decimal-leading-zero); font-size: var(--wp--preset--font-size--caption); letter-spacing: .08em; color: var(--fp-gris); font-weight: 400; }
.fp-chain__text { color: var(--fp-gris); margin-top: .75rem !important; max-width: 30ch; }
@media (min-width: 1000px) {
	.fp-chain { grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 0; }
	.fp-chain__item { padding: 2rem 1.5rem 0 0; }
	.fp-chain__title { font-size: clamp(1.75rem, 2.6vw, 2.75rem) !important; flex-direction: column; gap: 1rem; }
	.fp-chain__item:not(:last-child)::after {
		content: "→"; position: absolute; right: 1rem; top: 2.9rem; color: var(--fp-verde); font-size: 1.5rem;
	}
	.fp-chain__item::before {
		content: ""; position: absolute; top: -1px; left: 0; height: 2px; width: 0; background: var(--fp-verde);
		transition: width .8s var(--fp-ease);
	}
	.fp-chain.is-in .fp-chain__item::before { width: 100%; }
	.fp-chain.is-in .fp-chain__item:nth-child(2)::before { transition-delay: .15s; }
	.fp-chain.is-in .fp-chain__item:nth-child(3)::before { transition-delay: .3s; }
	.fp-chain.is-in .fp-chain__item:nth-child(4)::before { transition-delay: .45s; }
	.fp-chain.is-in .fp-chain__item:nth-child(5)::before { transition-delay: .6s; }
}
.fp-chain--compact .fp-chain__title { font-size: var(--wp--preset--font-size--titulo-md) !important; }
.fp-system .fp-section__head .wp-block-heading { max-width: 18ch; }

.fp-inline-chain { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem .75rem; font-weight: 500; }
.fp-inline-chain li { display: inline-flex; align-items: center; gap: .75rem; }
.fp-inline-chain li:not(:last-child)::after { content: "→"; color: var(--fp-verde); }

/* ---------------------------------------------------------------- Pasos */
.fp-steps { display: grid; gap: var(--wp--preset--spacing--40) var(--fp-gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
.fp-steps > * { margin: 0; }
.fp-step { display: flex; flex-direction: column; gap: .75rem; padding-top: 1.25rem; border-top: 2px solid var(--fp-verde); }
.fp-step > * { margin: 0; }
.fp-step__num { font-size: var(--wp--preset--font-size--caption); color: var(--fp-gris); letter-spacing: .08em; }
.fp-step__title { font-size: var(--wp--preset--font-size--titulo-md); }
.fp-step__text { color: var(--fp-gris); font-size: .95rem; }
@media (min-width: 1000px) { .fp-steps--4 { grid-template-columns: repeat(4, 1fr); } }

/* ---------------------------------------------------------------- Tarjetas simples */
.fp-grid { display: grid; gap: var(--fp-gap); }
.fp-grid > * { margin: 0; }
@media (min-width: 700px) { .fp-grid--2, .fp-grid--4, .fp-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .fp-grid--3 { grid-template-columns: repeat(3, 1fr); } .fp-grid--4 { grid-template-columns: repeat(4, 1fr); } }
.fp-card {
	display: flex; flex-direction: column; gap: .75rem;
	padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--fp-linea); border-radius: var(--fp-r-md);
	background: var(--fp-blanco);
}
.fp-card > * { margin: 0; }
.fp-card__title { font-size: var(--wp--preset--font-size--lead); }
.fp-card__text { color: var(--fp-gris); }
.fp-card .fp-link { margin-top: auto; padding-top: .5rem; }
.fp-grid--chooser .fp-card:last-child { background: var(--fp-negro); color: var(--fp-blanco); border-color: var(--fp-negro); --fp-gris: var(--fp-gris-osc); }
.fp-grid--chooser .fp-card:last-child .fp-link a { color: var(--fp-blanco); border-bottom-color: var(--fp-verde); }
.fp-grid--outcome .fp-card { border-radius: 0; border-width: 2px 0 0; border-color: var(--fp-verde); padding-inline: 0; }
.fp-grid--outcome .fp-card__title { font-size: var(--wp--preset--font-size--titulo-lg); letter-spacing: -.035em; }

/* ---------------------------------------------------------------- Etiquetas */
.fp-tags { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.fp-tags li { font-size: var(--wp--preset--font-size--small); font-weight: 500; padding: .45rem .85rem; border: 1px solid var(--fp-linea); border-radius: 99px; line-height: 1.3; }
.fp-questions { list-style: none; padding: 0; margin: 0; }
.fp-questions li { font-size: var(--wp--preset--font-size--titulo-md); letter-spacing: -.02em; padding-block: .75rem; border-top: 1px solid var(--fp-linea); }
.fp-badge { display: inline-block; align-self: flex-start; font-size: var(--wp--preset--font-size--caption); font-weight: 500; letter-spacing: .06em; text-transform: uppercase; padding: .3rem .6rem; border: 1px solid currentColor; border-radius: 4px; }
.fp-callout { padding-left: 1rem; border-left: 2px solid var(--fp-verde); font-weight: 500; }

/* ---------------------------------------------------------------- Proyectos */
.fp-work-list { display: grid; gap: clamp(3rem, 7vw, 6rem); }
.fp-work-list > * { margin: 0; }
.fp-work { position: relative; display: grid; gap: clamp(1.25rem, 3vw, 2rem); }
.fp-work > *, .fp-work__body > * { margin: 0; }
.fp-work__cover { position: relative; overflow: hidden; border-radius: var(--fp-r-md); background: var(--fp-negro); color: var(--fp-blanco); aspect-ratio: 16 / 9; }
.fp-work__cover > * { margin: 0; height: 100%; }
.fp-work__cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--fp-ease); }
.fp-work__cover-inner { box-sizing: border-box; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(1.25rem, 4vw, 3.5rem); transition: transform 1.2s var(--fp-ease); }
.fp-work__cover-inner > * { margin: 0; }
.fp-work__cover-name { font-size: clamp(2rem, 6.5vw, 6rem); font-weight: 500; letter-spacing: -.05em; line-height: .95; max-width: 12ch; }
.fp-work__cover-name::after { content: ""; display: block; width: clamp(3rem, 8vw, 7rem); height: clamp(4px, .6vw, 9px); border-radius: 99px; background: var(--fp-verde); margin-top: clamp(1rem, 2.5vw, 2rem); transform-origin: left; transition: transform .8s var(--fp-ease); }
.fp-work.is-linked:hover .fp-work__cover-inner, .fp-work.is-linked:hover .fp-work__cover img { transform: scale(1.025); }
.fp-work.is-linked:hover .fp-work__cover-name::after { transform: scaleX(1.6); }
.fp-work:not(.is-linked) .fp-work__cover { background: var(--fp-superficie); color: var(--fp-negro); }
.fp-work__body { display: flex; flex-direction: column; gap: .75rem; }
.fp-work__meta { font-size: var(--wp--preset--font-size--caption); letter-spacing: .08em; text-transform: uppercase; color: var(--fp-gris); }
.fp-work__title { font-size: var(--wp--preset--font-size--titulo-lg); max-width: 24ch; }
.fp-work__title a { text-decoration: none; }
.fp-work__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.fp-work__desc { color: var(--fp-gris); max-width: 60ch; }
.fp-work__services { font-size: var(--wp--preset--font-size--small); font-weight: 500; }
.fp-work__more { font-size: var(--wp--preset--font-size--small); font-weight: 500; }
.fp-work.is-linked .fp-work__more { display: inline-flex; align-self: flex-start; border-bottom: 1px solid currentColor; padding-bottom: .15rem; }
.fp-work.is-linked:hover .fp-work__more { border-bottom-color: var(--fp-verde); }
.fp-work:not(.is-linked) .fp-work__more { color: var(--fp-gris); }
@media (min-width: 900px) {
	.fp-work--md { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--fp-gap); align-items: end; }
	.fp-work--md .fp-work__cover { grid-column: 1 / span 7; aspect-ratio: 4 / 3; }
	.fp-work--md .fp-work__body { grid-column: 8 / span 5; }
	.fp-work--md .fp-work__title { font-size: var(--wp--preset--font-size--titulo-md); }
	.fp-work--md .fp-work__cover-inner > * { margin: 0; }
.fp-work__cover-name { font-size: clamp(2rem, 4vw, 4rem); }
	.fp-work--lg .fp-work__body, .fp-work--xl .fp-work__body {
		display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--fp-gap); row-gap: .75rem;
	}
	.fp-work--lg .fp-work__body > *, .fp-work--xl .fp-work__body > * { grid-column: 1 / span 6; }
	.fp-work--lg .fp-work__desc, .fp-work--xl .fp-work__desc,
	.fp-work--lg .fp-work__services, .fp-work--xl .fp-work__services,
	.fp-work--lg .fp-work__more, .fp-work--xl .fp-work__more { grid-column: 8 / span 5; }
	.fp-work--lg .fp-work__meta, .fp-work--xl .fp-work__meta { grid-row: 1; }
	.fp-work--lg .fp-work__title, .fp-work--xl .fp-work__title { grid-row: 2 / span 3; }
	.fp-work--lg .fp-work__desc, .fp-work--xl .fp-work__desc { grid-row: 2; padding-top: .5rem; }
	.fp-work--lg .fp-work__services, .fp-work--xl .fp-work__services { grid-row: 3; }
	.fp-work--lg .fp-work__more, .fp-work--xl .fp-work__more { grid-row: 4; justify-self: start; align-self: start; }
	.fp-work--lg .fp-badge, .fp-work--xl .fp-badge { grid-row: 1; grid-column: 8 / span 5; justify-self: start; }
	.fp-work--xl .fp-work__cover { aspect-ratio: 16 / 8; }
	.fp-work-list--duo { grid-template-columns: 1fr 1fr; column-gap: var(--fp-gap); }
	.fp-work-list--duo .fp-work--md { grid-template-columns: 1fr; }
	.fp-work-list--duo .fp-work--md > * { grid-column: auto; }
}
.fp-work.is-hidden { display: none; }

.fp-work-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; }
.fp-work-toolbar > * { margin: 0; }
.fp-filters { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.fp-filters button {
	font: inherit; font-size: var(--wp--preset--font-size--caption); font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
	padding: .55rem .9rem; border-radius: 99px; border: 1px solid var(--fp-linea); background: transparent; color: inherit; cursor: pointer;
	transition: background-color .2s, border-color .2s;
}
.fp-filters button:hover { border-color: var(--fp-negro); }
.fp-filters button[aria-pressed="true"] { background: var(--fp-negro); color: var(--fp-blanco); border-color: var(--fp-negro); }

/* ---------------------------------------------------------------- Caso de estudio */
.fp-facts { display: grid; gap: 0 var(--fp-gap); margin-top: clamp(2.5rem, 6vw, 5rem) !important; border-top: 1px solid var(--fp-linea); }
.fp-facts > * { margin: 0; }
.fp-fact { padding-block: 1rem; border-bottom: 1px solid var(--fp-linea); display: grid; gap: .25rem; }
.fp-fact > * { margin: 0; }
.fp-fact__label { font-size: var(--wp--preset--font-size--caption); letter-spacing: .08em; text-transform: uppercase; color: var(--fp-gris); }
.fp-fact__value { font-weight: 500; }
@media (min-width: 900px) {
	.fp-facts { grid-template-columns: 1fr 1fr 1fr 2fr .6fr; }
	.fp-fact { border-bottom: 0; padding-top: 1.25rem; }
}
.fp-case-cover { padding-top: 0; }
.fp-media {
	position: relative; display: flex; align-items: flex-end; border-radius: var(--fp-r-md);
	background: var(--fp-superficie); padding: 1.25rem; overflow: hidden;
}
.fp-media > * { margin: 0; }
.fp-media--wide { aspect-ratio: 16 / 9; }
.fp-media--square { aspect-ratio: 4 / 5; }
.fp-media--tablet { aspect-ratio: 3 / 4; }
.fp-media--phone { aspect-ratio: 9 / 19; }
.fp-media__label { font-size: var(--wp--preset--font-size--caption); letter-spacing: .06em; text-transform: uppercase; color: var(--fp-gris); }
.fp-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fp-media-grid { display: grid; gap: var(--fp-gap); }
@media (min-width: 700px) { .fp-media-grid { grid-template-columns: repeat(3, 1fr); } }
.fp-media-devices { display: grid; gap: var(--fp-gap); align-items: end; grid-template-columns: 1fr; }
@media (min-width: 700px) { .fp-media-devices { grid-template-columns: 6fr 2.4fr 1.2fr; } }
.fp-learned .fp-statement { max-width: 18ch; }

/* ---------------------------------------------------------------- FAQ */
.fp-faq .wp-block-details { margin: 0; }
.fp-faq .wp-block-details:last-child { border-bottom: 1px solid var(--fp-linea); }
.fp-faq summary {
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 1.5rem;
	font-size: var(--wp--preset--font-size--lead); font-weight: 500; letter-spacing: -.015em; line-height: 1.35;
}
.fp-faq summary::-webkit-details-marker { display: none; }
.fp-faq summary::after {
	content: "+"; flex: none; width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%;
	border: 1px solid var(--fp-linea); font-weight: 400; transition: transform .3s var(--fp-ease), background-color .2s;
}
.fp-faq details[open] summary::after { transform: rotate(45deg); background: var(--fp-verde); border-color: var(--fp-verde); }
.fp-faq details > p { color: var(--fp-gris); max-width: 62ch; margin-top: 1rem; }

/* ---------------------------------------------------------------- CTA final */
.fp-cta { padding-block: clamp(5rem, 13vw, 11rem); }
.fp-cta > * { margin-block-start: 0; }
.fp-cta .fp-eyebrow { color: var(--fp-verde); margin-bottom: 2rem; }
.fp-cta__title { max-width: 16ch; margin: 0; line-height: .98 !important; letter-spacing: -.045em !important; }
.fp-cta .fp-lead { margin-top: 2rem; color: var(--fp-gris-osc); }
.fp-cta__actions { margin-top: 2.5rem; }
.fp-cta__actions .wp-block-button__link { font-size: 1rem; padding: 1.1rem 1.75rem; }
.fp-cta__micro { margin-top: clamp(3rem, 7vw, 6rem) !important; padding-top: 1.25rem; border-top: 1px solid var(--fp-linea-osc); font-size: var(--wp--preset--font-size--caption); letter-spacing: .06em; text-transform: uppercase; color: var(--fp-gris-osc); }
.fp-cta__email { margin-top: 1.5rem; }
.fp-cta__email a { color: var(--fp-blanco); }

/* ---------------------------------------------------------------- Contacto + formulario */
.fp-form-layout { display: grid; gap: var(--wp--preset--spacing--60); }
.fp-form-layout > * { margin: 0; }
.fp-form-layout__aside { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--30); }
.fp-form-layout__aside > * { margin: 0; }
.fp-form-layout__aside > .fp-eyebrow { display: none; }
@media (min-width: 1000px) {
	.fp-form-layout { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--fp-gap); align-items: start; }
	.fp-form-layout__aside { grid-column: 1 / span 4; position: sticky; top: calc(var(--fp-header-h) + 2rem); }
	.fp-form-layout__form { grid-column: 6 / span 7; }
}
.fp-contact { margin-top: 1rem !important; padding-top: 1.5rem; border-top: 1px solid var(--fp-linea); display: grid; gap: 1rem; }
.fp-contact > * { margin: 0; }
.fp-contact__title { font-size: var(--wp--preset--font-size--lead); }
.fp-contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.fp-contact-list span { display: block; font-size: var(--wp--preset--font-size--caption); letter-spacing: .08em; text-transform: uppercase; color: var(--fp-gris); }
.fp-contact-list a { font-weight: 500; }

.fp-form, .fp-form *, .fp-form *::before, .fp-form *::after { box-sizing: border-box; }
.fp-form { display: grid; gap: 1.5rem; background: var(--fp-superficie); border-radius: var(--fp-r-md); padding: clamp(1.25rem, 4vw, 3rem); }
.fp-form__row { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .fp-form__row--2 { grid-template-columns: 1fr 1fr; } }
.fp-field { display: grid; gap: .5rem; border: 0; margin: 0; padding: 0; min-width: 0; }
.fp-field > label, .fp-field > legend { font-size: var(--wp--preset--font-size--small); font-weight: 500; padding: 0; }
.fp-field .fp-req { color: var(--fp-gris); font-weight: 400; }
.fp-field input[type="text"], .fp-field input[type="email"], .fp-field input[type="tel"], .fp-field input[type="url"],
.fp-field select, .fp-field textarea {
	font: inherit; font-size: 1rem; width: 100%; color: var(--fp-negro);
	background: var(--fp-blanco); border: 1px solid #CFCFCF; border-radius: var(--fp-r-sm);
	padding: .8rem .9rem; min-height: 48px; transition: border-color .2s, box-shadow .2s;
}
.fp-field textarea { min-height: 150px; resize: vertical; }
.fp-field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 2.5rem; }
.fp-field :is(input, select, textarea):focus { border-color: var(--fp-negro); box-shadow: 0 0 0 3px rgba(34, 197, 94, .35); outline: none; }
.fp-field :is(input, select, textarea)[aria-invalid="true"] { border-color: #B42318; }
.fp-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.fp-option { position: relative; }
.fp-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fp-option label {
	display: inline-flex; align-items: center; gap: .5rem; cursor: pointer; font-size: var(--wp--preset--font-size--small);
	padding: .6rem .95rem; border: 1px solid #CFCFCF; border-radius: 99px; background: var(--fp-blanco); min-height: 44px;
	transition: border-color .2s, background-color .2s;
}
.fp-option label::before { content: ""; width: .6rem; height: .6rem; border-radius: 50%; border: 1px solid currentColor; flex: none; }
.fp-option input[type="checkbox"] + label::before { border-radius: 2px; }
.fp-option input:checked + label { border-color: var(--fp-negro); background: var(--fp-negro); color: var(--fp-blanco); }
.fp-option input:checked + label::before { background: var(--fp-verde); border-color: var(--fp-verde); }
.fp-option input:focus-visible + label { outline: 2px solid var(--fp-verde); outline-offset: 2px; }
.fp-field__hint { font-size: var(--wp--preset--font-size--caption); color: var(--fp-gris); margin: 0; }
.fp-consent { display: flex; gap: .75rem; align-items: flex-start; font-size: var(--wp--preset--font-size--small); }
.fp-consent input { width: 1.15rem; height: 1.15rem; margin-top: .15rem; accent-color: var(--fp-negro); flex: none; }
.fp-form__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.fp-form__submit button {
	font: inherit; font-size: 1rem; font-weight: 500; cursor: pointer; border: 0; border-radius: var(--fp-r-sm);
	background: var(--fp-verde); color: var(--fp-negro); padding: 1rem 1.75rem; min-height: 52px;
	transition: background-color .25s var(--fp-ease), color .25s var(--fp-ease);
}
.fp-form__submit button:hover { background: var(--fp-negro); color: var(--fp-blanco); }
.fp-form__submit button[disabled] { opacity: .6; cursor: progress; }
.fp-form__note { margin: 0; font-size: var(--wp--preset--font-size--caption); color: var(--fp-gris); }
.fp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fp-notice { border-radius: var(--fp-r-md); padding: 1.25rem 1.5rem; display: grid; gap: .35rem; }
.fp-notice > * { margin: 0; }
.fp-notice strong { font-size: var(--wp--preset--font-size--lead); font-weight: 500; }
.fp-notice--ok { background: var(--fp-negro); color: var(--fp-blanco); border-left: 4px solid var(--fp-verde); }
.fp-notice--error { background: #FEF3F2; color: #7A271A; border-left: 4px solid #B42318; }
.fp-notice ul { margin: .25rem 0 0; padding-left: 1.1rem; }

/* ---------------------------------------------------------------- Footer */
.fp-footer-wrap { margin-top: 0; }
.fp-footer { padding-block: clamp(3.5rem, 8vw, 6rem) 2rem; border-top: 1px solid var(--fp-linea-osc); }
.fp-footer a { color: var(--fp-blanco); text-decoration: none; }
.fp-footer a:hover { color: var(--fp-verde); }
.fp-footer__top { display: grid; gap: var(--wp--preset--spacing--60); }
.fp-footer__top > *, .fp-footer__brand > *, .fp-footer__col > * { margin: 0; }
.fp-footer__brand { display: grid; gap: 1.25rem; align-content: start; }
.fp-footer__brand .fp-logo img { background: var(--fp-blanco); padding: .6rem .75rem; border-radius: var(--fp-r-sm); box-sizing: content-box; }
.fp-footer__descriptor { color: var(--fp-gris-osc); max-width: 24ch; font-size: var(--wp--preset--font-size--lead); line-height: 1.35; }
.fp-footer__cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem var(--fp-gap); }
.fp-footer__cols > * { margin: 0; }
.fp-footer__col { display: grid; gap: .9rem; align-content: start; }
.fp-footer__col:has(> .fp-footer__title:only-child) { display: none; }
.fp-footer__title { font-size: var(--wp--preset--font-size--caption); letter-spacing: .08em; text-transform: uppercase; color: var(--fp-gris-osc); }
.fp-footer__list, .fp-footer__legal, .fp-footer .fp-enlaces { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; font-size: var(--wp--preset--font-size--small); }
.fp-footer__text { font-size: var(--wp--preset--font-size--small); }
.fp-footer__bottom {
	margin-top: clamp(3rem, 8vw, 6rem) !important; padding-top: 1.5rem; border-top: 1px solid var(--fp-linea-osc);
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; font-size: var(--wp--preset--font-size--caption); color: var(--fp-gris-osc);
}
.fp-footer__bottom > * { margin: 0; }
.fp-footer__legal { display: flex; gap: 1.5rem; font-size: inherit; }
.fp-footer__legal a { color: var(--fp-gris-osc); }
@media (min-width: 700px) { .fp-footer__cols { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) {
	.fp-footer__top { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--fp-gap); }
	.fp-footer__brand { grid-column: 1 / span 4; }
	.fp-footer__cols { grid-column: 6 / span 7; grid-template-columns: repeat(5, 1fr); }
}

/* ---------------------------------------------------------------- Páginas de texto */
.fp-legal { padding-block: var(--fp-section); }
.fp-legal > * + * { margin-block-start: var(--wp--preset--spacing--30); }

/* ---------------------------------------------------------------- Movimiento */
.fp-js .fp-reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--fp-ease), transform .9s var(--fp-ease); }
.fp-js .fp-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; }
	.fp-js .fp-reveal { opacity: 1; transform: none; }
}

@media print {
	.fp-header-wrap, .fp-footer-wrap, .fp-cta { display: none; }
}
