/* ==========================================================================
   Grupo Nivel 29 — estilos del tema
   Índice: 1 Tokens · 2 Base · 3 Tipografía · 4 Botones y enlaces · 5 Cabecera
   6 Hero · 7 Cifras · 8 Secciones · 9 Tarjetas · 10 Bandas · 11 Páginas
   12 Formulario · 13 Pie · 14 Animaciones · 15 Responsive
   ========================================================================== */

/* 1 · Tokens ------------------------------------------------------------- */
:root {
	--gn-crema: var(--wp--preset--color--crema, #F5F2EC);
	--gn-arena: var(--wp--preset--color--arena, #ECE7DF);
	--gn-tinta: var(--wp--preset--color--tinta, #1F201C);
	--gn-monte: var(--wp--preset--color--monte, #262A22);
	--gn-bronce: var(--wp--preset--color--bronce, #8E6A48);
	--gn-piedra: var(--wp--preset--color--piedra, #5F5A52);
	--gn-linea: var(--wp--preset--color--linea, #D8D0C3);
	--gn-card: #EFEBE4;
	--gn-serif: var(--wp--preset--font-family--serif);
	--gn-sans: var(--wp--preset--font-family--sans);
	--gn-max: 1320px;
	--gn-gutter: clamp(20px, 4.2vw, 64px);
	--gn-pad-x: max(var(--gn-gutter), calc((100% - var(--gn-max)) / 2));
	--gn-space: clamp(64px, 8vw, 120px);
	--gn-header: 84px;
	--gn-ease: cubic-bezier(.22, .61, .36, 1);
	--gn-ease-out: cubic-bezier(.16, 1, .3, 1);
	--gn-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M0 5h14.5M10.5 1l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E");
}

/* 2 · Base ---------------------------------------------------------------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--gn-header) + 16px); }
body { margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; font-optical-sizing: auto; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
::selection { background: var(--gn-bronce); color: #fff; }
:focus-visible { outline: 2px solid var(--gn-bronce); outline-offset: 3px; }
.gn-dark :focus-visible { outline-color: #fff; }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.wp-site-blocks { padding: 0; }
.gn-main, .gn-main > .wp-block-post-content { margin: 0; }
.gn-main p, .gn-footer p { margin: 0; }
figure.wp-block-image { margin: 0; }

/* 3 · Tipografía -------------------------------------------------------- */
.gn-eyebrow {
	font-family: var(--gn-sans); font-size: .6875rem; font-weight: 500;
	letter-spacing: .26em; text-transform: uppercase; color: var(--gn-bronce);
	margin: 0 0 1.15rem !important; line-height: 1.4;
}
.gn-dark .gn-eyebrow { color: rgba(255,255,255,.78); }
.gn-display {
	font-size: var(--wp--preset--font-size--xx-large); font-weight: 380; line-height: .98;
	letter-spacing: -.028em; margin: 0; text-wrap: balance;
}
.gn-title {
	font-size: var(--wp--preset--font-size--x-large); font-weight: 400; line-height: 1.06;
	letter-spacing: -.022em; margin: 0; text-wrap: balance;
}
.gn-title--sm { font-size: var(--wp--preset--font-size--large); }
.gn-title--page { font-size: clamp(2.4rem, 4.4vw, 4rem); }
.wp-block-separator.gn-rule {
	width: 42px; margin: 1.6rem 0; border: 0; border-top: 1px solid var(--gn-bronce);
	opacity: 1; height: 0; background: none;
}
.gn-dark .wp-block-separator.gn-rule { border-color: rgba(255,255,255,.6); }
.gn-quote {
	font-family: var(--gn-serif); font-style: italic; font-weight: 340;
	font-size: clamp(1.35rem, 1.9vw, 1.8rem); line-height: 1.22; letter-spacing: -.01em;
}
.gn-quote--line { border-left: 1px solid var(--gn-linea); padding: .4rem 0 .4rem clamp(1.5rem, 3vw, 3rem); }
.gn-quote--rule::after { content: ""; display: block; width: 32px; border-top: 1px solid var(--gn-bronce); margin-top: 1.2rem; }
.gn-words { list-style: none; margin: 0; padding: 0; font-family: var(--gn-sans); font-size: .625rem; letter-spacing: .3em; text-transform: uppercase; line-height: 2.25; }
.gn-words::after { content: ""; display: block; width: 26px; border-top: 1px solid currentColor; margin-top: .9rem; opacity: .8; }
.gn-words li { margin: 0; }
.gn-words--muted { color: var(--gn-piedra); opacity: .75; }
.gn-words--muted::after { display: none; }
.gn-words--dark { color: var(--gn-tinta); }
.gn-words--dark::after { display: none; }
.gn-dot { display: inline-block; width: 3px; height: 3px; border-radius: 50%; background: currentColor; margin: 0 .55em; vertical-align: middle; opacity: .7; }
.gn-index {
	font-family: var(--gn-serif); font-size: clamp(2.2rem, 3vw, 2.9rem); font-weight: 300;
	color: var(--gn-bronce); line-height: 1; letter-spacing: -.02em;
}
.gn-index::after { content: ""; display: block; width: 26px; border-top: 1px solid var(--gn-bronce); margin-top: .7rem; }

/* 4 · Botones y enlaces ------------------------------------------------- */
.wp-block-buttons { margin-top: 2rem; gap: 12px; }
.wp-block-button__link, .gn-form button[type="submit"] {
	display: inline-flex; align-items: center; gap: 1.1em; padding: 1.2em 2em;
	font-family: var(--gn-sans); font-size: .6875rem; font-weight: 500; letter-spacing: .2em;
	text-transform: uppercase; line-height: 1; border: 1px solid var(--gn-tinta); border-radius: 0;
	background: var(--gn-tinta); color: var(--gn-crema); cursor: pointer;
	transition: background-color .35s var(--gn-ease), color .35s var(--gn-ease), border-color .35s var(--gn-ease);
}
.wp-block-button__link::after, .gn-link a::after, .gn-link--fake::after, .gn-arrow, .gn-tile__link a::after {
	content: ""; display: inline-block; width: 15px; height: 9px; flex: none;
	background: currentColor; -webkit-mask: var(--gn-arrow) center / contain no-repeat; mask: var(--gn-arrow) center / contain no-repeat;
	transition: transform .4s var(--gn-ease-out);
}
.wp-block-button__link:hover, .wp-block-button__link:focus-visible { background: var(--gn-bronce); border-color: var(--gn-bronce); color: #fff; }
.wp-block-button__link:hover::after, .gn-link a:hover::after, .has-link:hover .gn-link--fake::after, .has-link:hover .gn-arrow, .gn-tile:hover .gn-tile__link a::after { transform: translateX(5px); }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--gn-tinta); border-color: rgba(142,106,72,.55); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--gn-tinta); color: var(--gn-crema); border-color: var(--gn-tinta); }
.gn-dark .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.7); }
.gn-dark .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--gn-tinta); border-color: #fff; }
.wp-block-button.is-style-gn-light > .wp-block-button__link { background: var(--gn-crema); color: var(--gn-tinta); border-color: var(--gn-crema); }
.wp-block-button.is-style-gn-light > .wp-block-button__link:hover { background: transparent; color: #fff; border-color: #fff; }

.gn-link, .gn-link--fake { font-family: var(--gn-sans); font-size: .6563rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
.gn-link a, .gn-link--fake { display: inline-flex; align-items: center; gap: .9em; color: inherit; text-decoration: none; }
.gn-link a { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; padding-bottom: 3px; transition: background-size .45s var(--gn-ease-out); }
.gn-link a:hover { background-size: calc(100% - 24px) 1px; }
.gn-link--small { font-size: .625rem; }
.gn-link--back a::after { transform: scaleX(-1); order: -1; }
.gn-link--back a:hover::after { transform: scaleX(-1) translateX(5px); }

/* 5 · Cabecera ---------------------------------------------------------- */
.gn-header {
	position: fixed; inset: 0 0 auto; z-index: 100; height: var(--gn-header);
	background: rgba(245,242,236,.55); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2);
	transition: height .45s var(--gn-ease), background-color .45s var(--gn-ease), box-shadow .45s var(--gn-ease), transform .5s var(--gn-ease);
}
.admin-bar .gn-header { top: 32px; }
.gn-header.is-scrolled { --gn-header: 68px; background: rgba(245,242,236,.94); box-shadow: 0 1px 0 rgba(31,32,28,.08); }
.gn-header.is-hidden { transform: translateY(-100%); }
.gn-header__bar { height: 100%; display: flex; align-items: center; gap: 2rem; padding-inline: var(--gn-pad-x); }
.gn-logo { line-height: 1; margin: 0; flex: none; }
.gn-logo a { display: grid; color: var(--gn-tinta); text-decoration: none; font-family: var(--gn-serif); text-transform: uppercase; }
.gn-logo__a { font-size: .95rem; letter-spacing: .04em; font-weight: 400; }
.gn-logo__b { font-size: 1.5rem; letter-spacing: .01em; font-weight: 400; margin-top: -.05em; }
.gn-logo__c { font-family: var(--gn-sans); font-size: .5rem; letter-spacing: .32em; margin-top: .35rem; color: var(--gn-piedra); }
.gn-header.is-scrolled .gn-logo__a { font-size: .85rem; }
.gn-header.is-scrolled .gn-logo__b { font-size: 1.3rem; }
.gn-header .gn-logo span { transition: font-size .45s var(--gn-ease); }

.gn-nav { flex: 1; font-family: var(--gn-sans); font-size: .6563rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.gn-nav .wp-block-navigation__container { gap: clamp(1rem, 2.4vw, 2.6rem); }
.gn-nav .wp-block-navigation-item__content { padding: .6rem 0; position: relative; color: var(--gn-tinta); }
.gn-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: .2rem; height: 1px; background: currentColor;
	transform: scaleX(0); transform-origin: right; transition: transform .45s var(--gn-ease-out);
}
.gn-nav .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.gn-nav .wp-block-navigation__container > .wp-block-navigation-item.is-current > .wp-block-navigation-item__content::after { transform: scaleX(1); transform-origin: left; }
.gn-nav .wp-block-navigation__submenu-icon { display: none; }
.gn-nav .wp-block-navigation__submenu-container {
	background: var(--gn-crema) !important; border: 0 !important; padding: .9rem 0 !important; min-width: 230px !important;
	box-shadow: 0 18px 40px -18px rgba(31,32,28,.28); left: -1.4rem !important; top: calc(100% + 4px) !important;
	opacity: 0; transform: translateY(8px); transition: opacity .3s var(--gn-ease), transform .35s var(--gn-ease-out), visibility .3s !important;
}
.gn-nav .has-child:hover > .wp-block-navigation__submenu-container,
.gn-nav .has-child:focus-within > .wp-block-navigation__submenu-container { opacity: 1; transform: none; }
.gn-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem 1.4rem !important; letter-spacing: .14em; color: var(--gn-piedra); transition: color .25s, padding .3s var(--gn-ease-out); }
.gn-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--gn-bronce); padding-left: 1.7rem !important; }
.gn-header__actions { display: flex; align-items: center; gap: 1.6rem; flex: none; }
.gn-header__actions .wp-block-buttons { margin: 0; }
.gn-header__actions .wp-block-button__link { padding: 1.15em 1.8em; }
.gn-lang { position: relative; font-family: var(--gn-sans); font-size: .625rem; letter-spacing: .2em; text-transform: uppercase; }
.gn-lang button { all: unset; cursor: pointer; display: inline-flex; gap: .5em; align-items: center; }
.gn-lang button::after, .gn-lang--single::after { content: ""; width: 5px; height: 5px; border-right: 1px solid; border-bottom: 1px solid; transform: rotate(45deg) translateY(-2px); display: inline-block; margin-left: .55em; }
.gn-lang ul { position: absolute; top: 140%; left: -1rem; margin: 0; padding: .5rem 0; list-style: none; background: var(--gn-crema); box-shadow: 0 12px 30px -14px rgba(0,0,0,.3); opacity: 0; visibility: hidden; transition: .25s; }
.gn-lang.is-open ul { opacity: 1; visibility: visible; }
.gn-lang ul a { display: block; padding: .4rem 1rem; color: inherit; text-decoration: none; }
/* Menú móvil (overlay del bloque Navegación) */
.gn-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--gn-crema) !important; padding: calc(var(--gn-header) + 24px) var(--gn-gutter) 40px !important; }
.gn-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.4rem !important; }
.gn-nav .is-menu-open .wp-block-navigation-item__content { font-family: var(--gn-serif); font-size: 1.9rem; letter-spacing: -.01em; text-transform: none; font-weight: 400; padding: 0 !important; }
.gn-nav .is-menu-open .wp-block-navigation__submenu-container { opacity: 1 !important; transform: none !important; box-shadow: none !important; padding: .6rem 0 0 !important; }
.gn-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: var(--gn-sans); font-size: .75rem; text-transform: uppercase; letter-spacing: .16em; padding: .3rem 0 !important; }
.gn-nav .wp-block-navigation__responsive-container-open svg, .gn-nav .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }

/* 6 · Hero ---------------------------------------------------------------- */
.gn-hero {
	position: relative; isolation: isolate; overflow: hidden;
	min-height: clamp(560px, 88vh, 840px); display: flex; align-items: center;
	padding: calc(var(--gn-header) + 48px) var(--gn-pad-x) 72px;
}
.gn-hero__media { position: absolute !important; inset: 0; z-index: -2; margin: 0 !important; }
.gn-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
.gn-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		linear-gradient(90deg, var(--gn-crema) 0%, rgba(245,242,236,.9) 22%, rgba(245,242,236,.4) 40%, rgba(245,242,236,0) 56%),
		linear-gradient(180deg, rgba(245,242,236,.55) 0%, rgba(245,242,236,0) 22%);
}
.gn-hero::after { content: ""; position: absolute; inset: auto 0 0; height: 30%; z-index: -1; background: linear-gradient(0deg, rgba(20,20,16,.28), transparent); pointer-events: none; }
.gn-hero__content { position: relative; max-width: 660px; }
.gn-hero__content .gn-hero__lead { max-width: 46ch; }
.gn-hero__lead { font-size: 1.125rem; line-height: 1.55; max-width: 44ch; }
.gn-hero__tags { margin-top: 2.6rem !important; font-family: var(--gn-sans); font-size: .5938rem; letter-spacing: .28em; text-transform: uppercase; display: flex; flex-wrap: wrap; align-items: center; gap: .9em; }
.gn-hero__tags::before { content: ""; width: 26px; border-top: 1px solid currentColor; margin-right: .4em; }
.gn-sep { width: 1px; height: 9px; background: currentColor; opacity: .5; display: inline-block; }
.gn-hero__aside { position: absolute; right: var(--gn-pad-x); top: calc(var(--gn-header) + 56px); color: #fff; text-shadow: 0 1px 12px rgba(0,0,0,.25); }
.gn-hero__aside--bottom { top: auto; bottom: 64px; }
.gn-hero__quote { position: absolute; right: var(--gn-pad-x); bottom: 72px; color: #fff; font-style: italic; font-size: clamp(1.4rem, 2vw, 1.9rem); line-height: 1.2; font-weight: 340; text-shadow: 0 2px 18px rgba(0,0,0,.3); }
.gn-hero__quote::after { content: ""; display: block; width: 26px; border-top: 1px solid currentColor; margin-top: 1rem; }
.gn-hero__scroll { position: absolute; left: var(--gn-pad-x); bottom: 34px; font-family: var(--gn-sans); font-size: .5625rem; letter-spacing: .32em; text-transform: uppercase; }
.gn-hero__scroll a { display: flex; align-items: center; gap: 1rem; color: var(--gn-tinta); text-decoration: none; }
.gn-hero__scroll a::before { content: ""; width: 34px; height: 1px; background: currentColor; transform-origin: left; animation: gn-scrollline 2.6s var(--gn-ease) infinite; }

/* 7 · Cifras -------------------------------------------------------------- */
.gn-stats { display: grid; grid-template-columns: repeat(var(--n, 4), 1fr); background: var(--gn-arena); padding: clamp(26px, 3vw, 38px) var(--gn-pad-x); }
.gn-stats--5 { --n: 5; }
.gn-stat { text-align: center; padding: .3rem 1rem; position: relative; }
.gn-stat + .gn-stat::before { content: ""; position: absolute; left: 0; top: 10%; bottom: 10%; width: 1px; background: var(--gn-linea); transform-origin: top; }
.gn-stat__num { font-family: var(--gn-serif); font-size: clamp(1.5rem, 2.5vw, 2.35rem); line-height: 1.1; letter-spacing: -.02em; font-variant-numeric: lining-nums tabular-nums; }
.gn-stats--5 .gn-stat__num { font-size: clamp(1.3rem, 1.9vw, 1.75rem); }
@media (min-width: 1024px) { .gn-stat__num { white-space: nowrap; } .gn-stats:not(.gn-stats--5) .gn-stat__num { font-size: clamp(1.5rem, 2.25vw, 2.2rem); } }
.gn-title + p:not([class*="gn-"]), .gn-title + .gn-head__text { margin-top: 1.25rem; }
.gn-stat__label { font-size: .9375rem; color: var(--gn-piedra); margin-top: .35rem !important; line-height: 1.35; }

/* 8 · Secciones ----------------------------------------------------------- */
.gn-section { padding: var(--gn-space) var(--gn-pad-x); position: relative; }
.gn-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem 4rem; margin-bottom: clamp(28px, 3.4vw, 48px); }
.gn-head__main { max-width: 640px; }
.gn-head__text { max-width: 46ch; font-size: 1.0625rem; color: #3b3a35; }
.gn-head__actions { display: flex; align-items: center; gap: 2rem; flex: none; }
.gn-head__aside-text { max-width: 52ch; color: #3b3a35; margin-bottom: 1.4rem !important; }
.gn-companies-block .gn-head__actions, .gn-process .gn-head__actions { display: block; max-width: 520px; }
.gn-head--index { display: grid; grid-template-columns: clamp(64px, 7vw, 100px) 1fr auto; align-items: end; column-gap: 0; }
.gn-head--index .gn-index { align-self: start; }
.gn-head--index .gn-head__main { max-width: none; }
.gn-head--index .gn-eyebrow { margin-bottom: .7rem !important; }
.gn-head--index .gn-title { font-size: clamp(1.75rem, 2.6vw, 2.4rem); }
.gn-promos + .gn-promos, .gn-promos--estudio, .gn-promos--mini { padding-top: 0; }
.gn-promos--horizontal { padding-bottom: clamp(48px, 5vw, 72px); }
.gn-promos--estudio { padding-bottom: clamp(48px, 5vw, 72px); }

/* Carrusel */
.gn-carousel { position: relative; }
.gn-carousel__track {
	display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--cols, 2) - 1) * var(--gap, 14px)) / var(--cols, 2));
	gap: var(--gap, 14px); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
}
.gn-carousel__track::-webkit-scrollbar { display: none; }
.gn-carousel__track > * { scroll-snap-align: start; }
.gn-carousel--estudio { --cols: 3; }
.gn-carousel--mini { --cols: 6; --gap: 12px; }
.gn-carousel--news { --cols: 3; --gap: 14px; }
.gn-carousel.is-expanded .gn-carousel__track { grid-auto-flow: row; grid-template-columns: repeat(var(--cols, 2), 1fr); overflow: visible; }
.gn-carousel-nav { display: flex; gap: 10px; }
.gn-carousel-nav button {
	width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--gn-tinta); background: transparent; color: var(--gn-tinta);
	display: grid; place-items: center; cursor: pointer; transition: background .3s, color .3s, opacity .3s, border-color .3s;
}
.gn-carousel-nav button::before { content: ""; width: 13px; height: 8px; background: currentColor; -webkit-mask: var(--gn-arrow) center / contain no-repeat; mask: var(--gn-arrow) center / contain no-repeat; }
.gn-carousel-nav button[data-dir="-1"]::before { transform: scaleX(-1); }
.gn-carousel-nav button:hover:not(:disabled) { background: var(--gn-tinta); color: var(--gn-crema); }
.gn-carousel-nav button:disabled { opacity: .3; border-color: var(--gn-linea); cursor: default; }
.gn-carousel-nav[hidden] { display: none; }

/* Divisiones (imagen + texto) */
.gn-split { display: grid; align-items: center; gap: clamp(32px, 5vw, 80px); }
.gn-split--left { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, .7fr); padding-left: 0; padding-block: 0; background: var(--gn-crema); }
.gn-split--left .gn-split__media { align-self: stretch; min-height: 420px; }
.gn-split--left .gn-split__media img, .gn-split__figure img, .gn-row__media img { width: 100%; height: 100%; object-fit: cover; }
.gn-split--left .gn-split__text { padding-block: clamp(56px, 6vw, 96px); max-width: 560px; }
.gn-split--right { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); padding-right: 0; padding-block: 0; align-items: stretch; }
.gn-split--right .gn-split__text { align-self: center; padding-block: var(--gn-space); max-width: 470px; }
.gn-split__figure { position: relative; overflow: hidden; min-height: 380px; }
.gn-split__figure .gn-split__media { position: absolute; inset: 0; }
.gn-quote--overlay { position: absolute; right: clamp(20px, 4vw, 56px); top: 50%; transform: translateY(-50%); max-width: 15ch; color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.35); }

/* Actividad (inicio) */
.gn-activity .gn-head { align-items: flex-start; }
.gn-tiles { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.gn-tile { position: relative; background: var(--gn-card); }
.gn-tile__media { aspect-ratio: 1.38; overflow: hidden; }
.gn-tile__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--gn-ease-out); }
.gn-tile:hover .gn-tile__media img { transform: scale(1.06); }
.gn-tile__label { font-family: var(--gn-sans); font-size: .5938rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; padding: 1.1rem 1rem 0; min-height: 3.4em; line-height: 1.55; }
.gn-tile__link { padding: 1rem 1rem 1.2rem; font-size: .8125rem; }
.gn-tile__link a { display: flex; justify-content: space-between; align-items: center; color: inherit; text-decoration: none; }
.gn-tile__link a::before { content: ""; position: absolute; inset: 0; }

/* Historia */
.gn-history { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.5fr); gap: clamp(32px, 5vw, 72px); align-items: start; padding-top: clamp(48px, 5vw, 80px); }
.gn-history__intro p:not(.gn-eyebrow) { margin-top: 1.4rem !important; color: #3b3a35; max-width: 40ch; }
.gn-timeline { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; padding-top: clamp(24px, 5vw, 56px); }
.gn-milestone { position: relative; }
.gn-milestone__media { aspect-ratio: 1.3; overflow: hidden; margin-bottom: 1.1rem !important; }
.gn-milestone__media img { width: 100%; height: 100%; object-fit: cover; }
.gn-milestone__year { font-family: var(--gn-sans); font-size: .625rem; font-weight: 600; letter-spacing: .18em; padding-left: .9rem; }
.gn-milestone__text { font-size: .8125rem; line-height: 1.4; color: var(--gn-piedra); padding-left: .9rem; margin-top: .55rem !important; }
.gn-milestone::after { content: ""; position: absolute; left: 0; bottom: 0; top: calc(100% - 3.3rem); width: 1px; background: var(--gn-linea); }

/* Quiénes somos */
.gn-about { display: grid; grid-template-columns: 1.15fr 1fr .7fr; gap: clamp(32px, 5vw, 80px); align-items: start; padding-bottom: clamp(48px, 5vw, 72px); }
.gn-about__text p { color: #3b3a35; }
.gn-about__text p + p { margin-top: 1.1rem !important; }

/* Características con icono */
.gn-icon img { width: 36px; height: 36px; }
.gn-dark .gn-icon img { filter: brightness(0) invert(1); opacity: .9; }
.gn-features { display: grid; grid-template-columns: repeat(4, 1fr); }
.gn-feature { padding: .4rem clamp(18px, 2vw, 32px); position: relative; }
.gn-feature + .gn-feature::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: var(--gn-linea); }
.gn-dark .gn-feature + .gn-feature::before { background: rgba(255,255,255,.22); }
.gn-feature .gn-icon { margin-bottom: 1.3rem !important; }
.gn-feature__title { font-size: 1.15rem; line-height: 1.2; margin: 0 0 .9rem; letter-spacing: -.01em; }
.gn-feature__title--caps { font-family: var(--gn-sans); font-size: .6875rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.gn-feature__text { font-size: .875rem; line-height: 1.5; color: var(--gn-piedra); }
.gn-dark .gn-feature__text { color: rgba(255,255,255,.82); }
.gn-features--center { text-align: center; }
.gn-features--center .gn-icon img { margin-inline: auto; }
.gn-features--center .gn-feature__title { font-size: 1.05rem; margin-bottom: .4rem; }
.gn-commitments { padding-block: clamp(40px, 4vw, 64px); }
.gn-difference { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.6fr); gap: clamp(32px, 5vw, 80px); align-items: center; padding-top: clamp(40px, 4vw, 64px); }
.gn-difference__intro p:not(.gn-eyebrow) { margin-top: 1.4rem !important; color: #3b3a35; }
.gn-features--side .gn-feature { padding-block: 1.2rem; }

/* Pasos */
.gn-process .gn-head { align-items: flex-start; }
.gn-steps { display: grid; grid-template-columns: repeat(4, 1fr); padding-left: clamp(64px, 7vw, 100px); }
.gn-step { display: grid; grid-template-columns: 48px 1fr; column-gap: 1rem; padding: .3rem clamp(16px, 2.2vw, 32px); position: relative; }
.gn-step:first-child { padding-left: 0; }
.gn-step + .gn-step::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: var(--gn-linea); }
.gn-step .gn-icon { grid-row: span 3; }
.gn-step__num { font-family: var(--gn-serif); font-size: 1.7rem; color: var(--gn-bronce); line-height: 1; font-weight: 300; }
.gn-step__title { font-family: var(--gn-sans); font-size: .6563rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; margin: .55rem 0 .7rem; }
.gn-step__text { font-size: .8438rem; line-height: 1.5; color: var(--gn-piedra); }

/* 9 · Tarjetas ------------------------------------------------------------ */
.gn-badge {
	position: absolute; top: 14px; left: 14px; z-index: 2; background: rgba(245,242,236,.88);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	font-family: var(--gn-sans); font-size: .5625rem; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
	color: var(--gn-bronce); padding: .65em 1.15em; line-height: 1;
}
.gn-badge--static { position: static; display: inline-block; }
.gn-promo, .gn-news, .gn-card { position: relative; background: var(--gn-card); display: flex; flex-direction: column; }
.gn-promo__media, .gn-news__media, .gn-card__media { position: relative; overflow: hidden; margin: 0; }
.gn-promo__media img, .gn-news__media img, .gn-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--gn-ease-out); }
.has-link:hover .gn-promo__media img, .has-link:hover .gn-news__media img, .gn-card:hover .gn-card__media img { transform: scale(1.05); }
.gn-promo__body { padding: clamp(18px, 2vw, 26px) clamp(18px, 2vw, 28px) clamp(20px, 2vw, 28px); display: flex; flex-direction: column; flex: 1; position: relative; }
.gn-promo__name { font-family: var(--gn-sans); font-size: .75rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; margin: 0; }
.gn-promo__name a { color: inherit; text-decoration: none; }
.has-link .gn-promo__name a::after, .has-link .gn-news__title a::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.gn-promo__meta { font-size: .8125rem; color: var(--gn-piedra); margin-top: .35rem !important; }
.gn-promo__text { font-size: .9375rem; line-height: 1.5; margin-top: .9rem !important; max-width: 46ch; color: #3b3a35; }
.gn-promo__state { font-size: .8125rem; color: var(--gn-piedra); margin-top: .9rem !important; }
.gn-promo .gn-link--fake { margin-top: auto; padding-top: 1.4rem; }
.gn-promo--tarjeta .gn-promo__media { aspect-ratio: 2.25; }
.gn-promo--horizontal { display: grid; grid-template-columns: 1.08fr .92fr; background: transparent; }
.gn-promo--horizontal .gn-promo__media { aspect-ratio: auto; min-height: 280px; }
.gn-promo--horizontal .gn-promo__body { background: var(--gn-card); padding: clamp(20px, 2.2vw, 32px); }
.gn-promo--horizontal .gn-promo__name { font-size: .8125rem; }
.gn-promo--estudio .gn-promo__media { aspect-ratio: 2.55; }
.gn-promo--estudio .gn-promo__state { margin-top: .6rem !important; }
.gn-promo__toggle {
	position: absolute; right: clamp(16px, 2vw, 24px); bottom: clamp(16px, 2vw, 22px); width: 30px; height: 30px; border: 0; background: none; cursor: pointer; color: var(--gn-tinta); z-index: 4;
}
.gn-promo__toggle::before, .gn-promo__toggle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1px; background: currentColor; transform: translate(-50%, -50%); transition: transform .4s var(--gn-ease-out); }
.gn-promo__toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
.gn-promo__toggle[aria-expanded="true"]::after { transform: translate(-50%, -50%) rotate(0deg); }
.gn-promo__more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--gn-ease-out); }
.gn-promo__more > p { overflow: hidden; font-size: .875rem; color: #3b3a35; line-height: 1.5; padding-right: 2rem; }
.gn-promo__more.is-open { grid-template-rows: 1fr; }
.gn-promo__more.is-open > p { padding-top: .8rem; }
.gn-promo--mini .gn-promo__media { aspect-ratio: 2.3; }
.gn-promo--mini .gn-promo__body { padding: 14px 14px 16px; }
.gn-promo--mini .gn-promo__name { font-size: .625rem; }
.gn-promo--mini .gn-promo__meta, .gn-promo--mini .gn-promo__state { font-size: .75rem; margin-top: .3rem !important; }
.gn-promo--mini .gn-promo__state { margin-top: .7rem !important; }

/* Empresas */
.gn-companies { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.gn-company .gn-card__media { aspect-ratio: 1.27; }
.gn-card__body { padding: 1.2rem 1.1rem 1.3rem; display: flex; flex-direction: column; flex: 1; }
.gn-company__name { font-size: 1.0625rem; line-height: 1.2; margin: 0; letter-spacing: -.01em; }
.gn-company__sector { font-size: .8125rem; color: var(--gn-piedra); line-height: 1.4; margin-top: .55rem !important; margin-bottom: 1.4rem !important; }
.gn-card__body .gn-link { margin-top: auto !important; }

/* Áreas (patrimonio) */
.gn-areas-block { padding-top: clamp(14px, 1.4vw, 20px); padding-bottom: clamp(40px, 4vw, 64px); }
.gn-areas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.gn-area .gn-card__media { aspect-ratio: 1.52; }
.gn-area .gn-card__body { padding: 1.4rem 1.4rem 1.5rem; }
.gn-area__title { font-size: 1.35rem; margin: 0 0 .7rem; }
.gn-area__text { font-size: .875rem; line-height: 1.5; color: var(--gn-piedra); margin-bottom: 1.4rem !important; }

/* Noticias */
.gn-news__media { aspect-ratio: 2.35; }
.gn-news__body { padding: clamp(18px, 1.8vw, 24px); display: flex; flex-direction: column; flex: 1; }
.gn-news__title { font-size: 1.1875rem; line-height: 1.25; margin: 0; letter-spacing: -.01em; }
.gn-news__title a { color: inherit; text-decoration: none; }
.gn-news__foot { display: flex; justify-content: space-between; align-items: center; margin-top: auto !important; padding-top: 1.6rem; font-family: var(--gn-sans); font-size: .5938rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gn-piedra); }
.gn-news--rejilla .gn-news__media { aspect-ratio: 2.08; }
.gn-news--rejilla .gn-news__body { padding: clamp(18px, 1.6vw, 22px) clamp(16px, 1.4vw, 18px) 22px; }
.gn-news__meta { display: flex; justify-content: space-between; gap: 1rem; font-family: var(--gn-sans); font-size: .5938rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gn-piedra); margin-bottom: .55rem !important; }
.gn-news__meta > :first-child, .gn-news__meta .wp-block-post-terms a { color: var(--gn-bronce); font-weight: 600; text-decoration: none; }
.gn-news--rejilla .gn-news__title { font-size: clamp(1.35rem, 1.8vw, 1.6rem); line-height: 1.12; }
.gn-news__excerpt, .gn-news__excerpt p { font-size: .875rem; line-height: 1.5; color: var(--gn-piedra); margin-top: .9rem !important; }
.gn-news .gn-link--fake { margin-top: auto; padding-top: 1.3rem; }
.gn-news .wp-block-post-featured-image { margin: 0; }
.gn-news .wp-block-post-featured-image img { aspect-ratio: 2.08; }
.gn-news--rejilla .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.gn-newslist { padding-top: 0; }
.gn-newsgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; list-style: none; padding: 0; margin: 0; }
.gn-news.is-filtered-out { display: none; }
.gn-filters { margin: 0 calc(-1 * var(--gn-pad-x)) clamp(20px, 2vw, 28px); padding: 26px var(--gn-pad-x); background: var(--gn-arena); }
.gn-filters ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; row-gap: .6rem; }
.gn-filters li + li { border-left: 1px solid var(--gn-linea); }
.gn-filters button {
	all: unset; cursor: pointer; padding: .3rem clamp(14px, 1.9vw, 28px); font-family: var(--gn-sans); font-size: .625rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: #46443e; position: relative;
}
.gn-filters li:first-child button { padding-left: 0; }
.gn-filters button::after { content: ""; position: absolute; left: clamp(14px, 1.9vw, 28px); right: clamp(14px, 1.9vw, 28px); bottom: -6px; height: 1px; background: var(--gn-tinta); transform: scaleX(0); transition: transform .4s var(--gn-ease-out); }
.gn-filters li:first-child button::after { left: 0; }
.gn-filters button.is-active { color: var(--gn-tinta); font-weight: 600; }
.gn-filters button.is-active::after, .gn-filters button:hover::after { transform: scaleX(1); }
.gn-filters button:disabled { opacity: .35; cursor: default; }
.gn-filters button:disabled::after { display: none; }
.gn-filters button:focus-visible { outline: 2px solid var(--gn-bronce); outline-offset: 4px; }
.gn-pagination { margin-top: 3rem; display: flex; gap: 1.2rem; justify-content: center; font-family: var(--gn-sans); font-size: .6875rem; letter-spacing: .18em; text-transform: uppercase; }
.gn-pagination a { color: inherit; }
.gn-pagination .current { color: var(--gn-bronce); }

/* Newsletter */
.gn-newsletter { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(32px, 5vw, 80px); align-items: center; padding-top: clamp(32px, 3vw, 48px); padding-bottom: clamp(32px, 3vw, 48px); }
.gn-newsletter__text p:not(.gn-eyebrow) { margin-top: 1.2rem !important; color: var(--gn-piedra); max-width: 42ch; }
.gn-newsletter .gn-split__figure { min-height: 300px; }

/* 10 · Bandas oscuras ---------------------------------------------------- */
.gn-band { color: #fff; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem 4rem; padding-block: clamp(56px, 6vw, 88px); background: var(--gn-monte); }
.gn-band__media { position: absolute !important; inset: -12% 0; z-index: -2; margin: 0 !important; }
.gn-band__media img { width: 100%; height: 100%; object-fit: cover; }
.gn-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(22,24,19,.82) 0%, rgba(22,24,19,.55) 48%, rgba(22,24,19,.35) 100%); }
.gn-band .gn-title { color: #fff; }
.gn-band__text { margin-top: 1rem !important; color: rgba(255,255,255,.88); font-size: 1.0625rem; }
.gn-band__main .wp-block-buttons { margin-top: 2.2rem; }
.gn-band__aside { color: #fff; justify-self: end; }
.gn-band__aside .wp-block-buttons { margin: 0; }
.gn-band--atalaya { padding-block: clamp(64px, 7vw, 104px); }
.gn-band--atalaya .gn-title { font-size: clamp(2rem, 3.3vw, 3rem); }
.gn-values { grid-template-columns: minmax(0, .7fr) minmax(0, 2fr); padding-block: clamp(56px, 6vw, 88px); }
.gn-values .gn-band__aside { justify-self: stretch; }
.gn-values::before { background: linear-gradient(90deg, rgba(25,28,21,.86), rgba(25,28,21,.72)); }
.gn-cta { padding-block: clamp(48px, 5vw, 72px); }
.gn-cta .gn-band__aside .gn-quote { font-size: clamp(1.4rem, 2vw, 1.85rem); max-width: 13ch; text-align: left; }
.gn-band--plain::before { background: var(--gn-monte); }

/* Filas Atalaya */
.gn-row { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(28px, 4vw, 64px); align-items: stretch; padding-block: clamp(10px, 1vw, 14px); padding-right: 0; }
.gn-row:first-of-type { padding-top: clamp(20px, 2vw, 28px); }
.gn-row--alt { background: linear-gradient(90deg, var(--gn-arena) 0, var(--gn-arena) 6%, transparent 6%); }
.gn-row__text { display: grid; grid-template-columns: clamp(64px, 6.5vw, 96px) 1fr; padding-block: clamp(28px, 3vw, 44px); align-self: center; }
.gn-row__copy p:not(.gn-eyebrow) { margin-top: 1.2rem !important; color: #3b3a35; max-width: 48ch; }
.gn-row__copy .gn-title { font-size: clamp(1.8rem, 2.8vw, 2.6rem); }
.gn-row__figure { position: relative; overflow: hidden; min-height: 340px; }
.gn-row__figure .gn-row__media { position: absolute; inset: 0; }
.gn-row__caption { position: absolute; right: clamp(20px, 3vw, 40px); bottom: clamp(24px, 3vw, 40px); color: #fff; font-size: 1rem; line-height: 1.35; text-shadow: 0 2px 14px rgba(0,0,0,.35); }
.gn-row__caption p + p { margin-top: 1.4rem !important; font-size: 1.05rem; }
.gn-row__figure--panel { display: grid; grid-template-columns: 1fr minmax(180px, .38fr); }
.gn-row__figure--panel .gn-row__media { position: relative; inset: auto; }
.gn-row__panel { background: var(--gn-arena); padding: clamp(24px, 2.6vw, 36px); display: flex; flex-direction: column; justify-content: center; }
.gn-row__panel .gn-quote { font-size: clamp(1.25rem, 1.6vw, 1.5rem); }
.gn-row__panel .gn-words { font-size: .5625rem; letter-spacing: .24em; }
.gn-products { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding-right: var(--gn-pad-x); padding-block: clamp(10px, 1vw, 14px); }
.gn-row--alt { padding-right: 0; }
.gn-product .gn-card__media { aspect-ratio: 2.05; }
.gn-product__label { font-family: var(--gn-sans); font-size: .5938rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.gn-product__text { font-size: .8438rem; color: var(--gn-piedra); line-height: 1.5; margin: .7rem 0 1.2rem !important; }

/* 11 · Páginas interiores ---------------------------------------------- */
.gn-page { padding-top: var(--gn-header); }
.gn-page__head { padding-bottom: clamp(32px, 3vw, 48px); }
.gn-page__head .gn-promo-meta { margin-top: 1.4rem; }
.gn-promo-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; color: var(--gn-piedra); }
.gn-prose { padding: 0 var(--gn-pad-x) var(--gn-space); }
.gn-prose > * { max-width: 720px; }
.gn-prose > * + * { margin-top: 1.25em !important; }
.gn-prose h2 { font-size: clamp(1.6rem, 2.2vw, 2rem); margin-top: 2em !important; }
.gn-prose a { color: var(--gn-bronce); text-decoration: underline; text-underline-offset: 3px; }
.gn-article { padding-bottom: var(--gn-space); }
.gn-article__head { max-width: 860px; margin-bottom: 2.4rem; }
.gn-article .gn-news__meta { justify-content: flex-start; gap: 1.6rem; }
.gn-article__media { margin: 0 0 3rem !important; }
.gn-article__media img { width: 100%; max-height: 640px; object-fit: cover; }
.gn-article .gn-prose { padding: 0; }
.gn-article .gn-link--back { margin-top: 3rem !important; }
.gn-promo-hero { margin: 0 !important; }
.gn-promo-hero img { width: 100%; max-height: 72vh; object-fit: cover; }
.gn-promo-body { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 80px); }
.gn-promo-body__lead { font-size: clamp(1.4rem, 2vw, 1.8rem); line-height: 1.3; }
.gn-promo-body .gn-prose { padding: 0; }
.gn-404 { min-height: 60vh; }
.gn-contact { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(40px, 6vw, 112px); align-items: start; }
.gn-office { margin-top: 1.8rem; }
.gn-office__city { font-family: var(--gn-sans); font-size: .6563rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; margin: 0 0 .5rem; }
.gn-office p { color: #3b3a35; }
.gn-office a { color: inherit; text-decoration: none; background: linear-gradient(var(--gn-bronce), var(--gn-bronce)) 0 100% / 100% 1px no-repeat; }
.gn-contact__form { background: var(--gn-card); padding: clamp(28px, 3.4vw, 52px); }
.gn-contact__form .gn-title { margin-bottom: 1.8rem; }

/* 12 · Formulario ------------------------------------------------------- */
.gn-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.6rem; }
.gn-field { margin: 0 0 1.4rem !important; }
.gn-field label, .wpcf7-form label { display: block; font-family: var(--gn-sans); font-size: .625rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--gn-piedra); margin-bottom: .55rem; }
.gn-field input, .gn-field select, .gn-field textarea, .wpcf7-form input:not([type=checkbox]):not([type=submit]), .wpcf7-form textarea, .wpcf7-form select {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; color: var(--gn-tinta); background: transparent;
	border: 0; border-bottom: 1px solid #bdb3a3; border-radius: 0; padding: .55rem 0 .6rem; transition: border-color .3s;
	-webkit-appearance: none; appearance: none;
}
.gn-field select { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235F5A52'/%3E%3C/svg%3E") right center no-repeat; }
.gn-field textarea { resize: vertical; min-height: 120px; }
.gn-field input:focus, .gn-field select:focus, .gn-field textarea:focus { outline: none; border-bottom-color: var(--gn-bronce); box-shadow: 0 1px 0 var(--gn-bronce); }
.gn-check { display: flex; gap: .8rem; align-items: flex-start; font-size: .875rem; margin: .4rem 0 1rem !important; }
.gn-check input { width: 16px; height: 16px; margin-top: .2rem; accent-color: var(--gn-tinta); flex: none; }
.gn-check a, .gn-rgpd a { color: var(--gn-bronce); }
.gn-rgpd { font-size: .8125rem; color: var(--gn-piedra); margin-bottom: 1.6rem; }
.gn-rgpd summary { cursor: pointer; font-family: var(--gn-sans); font-size: .625rem; letter-spacing: .16em; text-transform: uppercase; }
.gn-rgpd dl { display: grid; grid-template-columns: max-content 1fr; gap: .35rem 1.2rem; margin: 1rem 0 0; }
.gn-rgpd dt { font-weight: 600; color: var(--gn-tinta); }
.gn-rgpd dd { margin: 0; }
.gn-form .wp-block-buttons { margin-top: .4rem; }
.gn-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gn-form__notice { padding: 1rem 1.2rem; margin-bottom: 1.6rem; font-size: .9375rem; border-left: 2px solid; }
.gn-form__notice--ok { border-color: #5d7a4c; background: #e7ecdf; }
.gn-form__notice--error { border-color: #a14b3a; background: #f3e3dd; }

/* 13 · Pie ---------------------------------------------------------------- */
.gn-footer { background: #EFEBE5; border-top: 1px solid rgba(31,32,28,.06); }
.gn-footer__bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.6rem; padding: clamp(28px, 3vw, 40px) var(--gn-pad-x); }
.gn-logo--footer .gn-logo__b { font-size: 1.15rem; }
.gn-logo--footer .gn-logo__c { font-size: .4688rem; margin-top: .3rem; }
.gn-footer__legal { display: flex; flex-wrap: wrap; gap: .6rem 2rem; justify-content: center; font-family: var(--gn-sans); font-size: .5625rem; letter-spacing: .2em; text-transform: uppercase; }
.gn-footer__legal a { color: var(--gn-piedra); text-decoration: none; transition: color .3s; }
.gn-footer__legal a:hover { color: var(--gn-tinta); }
.gn-footer__social { display: flex; align-items: center; justify-content: flex-end; gap: 1.2rem; }
.gn-footer__follow { font-family: var(--gn-sans); font-size: .5625rem; letter-spacing: .24em; text-transform: uppercase; color: var(--gn-piedra); }
.gn-social.wp-block-social-links { margin: 0; gap: 0; }
.gn-social .wp-social-link { background: var(--gn-tinta) !important; color: #fff !important; border-radius: 3px; transition: transform .3s var(--gn-ease-out), background-color .3s; }
.gn-social .wp-social-link:hover { transform: translateY(-2px); background: var(--gn-bronce) !important; }
.gn-social .wp-social-link a { padding: .3em; }
.gn-social .wp-social-link svg { width: 1em; height: 1em; }

/* 14 · Animaciones ---------------------------------------------------------
   Solo se activan con JS (.gn-js) y sin «reducir movimiento». */
@keyframes gn-scrollline { 0% { transform: scaleX(0); transform-origin: left; } 45% { transform: scaleX(1); transform-origin: left; } 55% { transform: scaleX(1); transform-origin: right; } 100% { transform: scaleX(0); transform-origin: right; } }
@keyframes gn-kenburns { from { transform: scale(1.12); } to { transform: scale(1); } }

@media (prefers-reduced-motion: no-preference) {
	/* Entrada de portada */
	.gn-js .gn-hero__media img { animation: gn-kenburns 2.8s var(--gn-ease-out) both; }
	.gn-js .gn-hero [data-hero] { opacity: 0; transform: translateY(22px); transition: opacity 1s var(--gn-ease-out), transform 1.1s var(--gn-ease-out); transition-delay: calc(var(--i, 0) * 110ms + 250ms); }
	.gn-js .gn-hero .gn-display .gn-line { display: block; overflow: hidden; padding-bottom: .06em; margin-bottom: -.06em; }
	.gn-js .gn-hero .gn-display .gn-line > span { display: block; transform: translateY(105%); transition: transform 1.15s var(--gn-ease-out); transition-delay: calc(var(--l, 0) * 120ms + 350ms); }
	.gn-js .gn-hero .gn-display[data-hero] { opacity: 1; transform: none; }
	.gn-js .gn-hero .gn-rule { transform: scaleX(0); transform-origin: left; transition: transform 1s var(--gn-ease-out) .9s; }
	.gn-js .gn-hero.is-in [data-hero] { opacity: 1; transform: none; }
	.gn-js .gn-hero.is-in .gn-display .gn-line > span { transform: none; }
	.gn-js .gn-hero.is-in .gn-rule { transform: scaleX(1); }

	/* Aparición al hacer scroll */
	.gn-js [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--gn-ease-out), transform 1s var(--gn-ease-out); transition-delay: calc(var(--d, 0) * 90ms); }
	.gn-js [data-reveal="fade"] { transform: none; }
	.gn-js [data-reveal].is-in { opacity: 1; transform: none; }
	.gn-js [data-reveal="rule"] { opacity: 1; transform: scaleX(0); transform-origin: left; }
	.gn-js [data-reveal="rule"].is-in { transform: scaleX(1); }

	/* Imágenes que se descubren (cortina) */
	.gn-js [data-reveal="curtain"] { opacity: 1; transform: none; clip-path: inset(0 0 100% 0); transition: clip-path 1.3s var(--gn-ease-out); transition-delay: calc(var(--d, 0) * 110ms); }
	.gn-js [data-reveal="curtain"] img { transform: scale(1.15); transition: transform 1.8s var(--gn-ease-out); transition-delay: calc(var(--d, 0) * 110ms); }
	.gn-js [data-reveal="curtain"].is-in { clip-path: inset(0 0 0 0); }
	.gn-js [data-reveal="curtain"].is-in img { transform: scale(1); }
	.gn-js .has-link:hover [data-reveal="curtain"].is-in img, .gn-js .gn-card:hover [data-reveal="curtain"].is-in img { transform: scale(1.05); }

	/* Divisores de cifras y cronología */
	.gn-js .gn-stats .gn-stat + .gn-stat::before { transform: scaleY(0); transition: transform 1s var(--gn-ease-out) .3s; }
	.gn-js .gn-stats.is-in .gn-stat + .gn-stat::before { transform: scaleY(1); }
	.gn-js .gn-milestone::after { transform: scaleY(0); transform-origin: top; transition: transform .8s var(--gn-ease-out); transition-delay: calc(var(--d, 0) * 110ms + .4s); }
	.gn-js .gn-milestone.is-in::after { transform: scaleY(1); }

	/* Paralaje suave de bandas (CSS scroll-driven, navegadores modernos) */
	@supports (animation-timeline: view()) {
		@keyframes gn-parallax { from { transform: translateY(-7%); } to { transform: translateY(7%); } }
		.gn-band__media img { animation: gn-parallax linear both; animation-timeline: view(); animation-range: cover; }
	}

	/* Filtro de noticias */
	.gn-js .gn-news.is-filter-in { animation: gn-filter-in .6s var(--gn-ease-out) both; animation-delay: calc(var(--d, 0) * 60ms); }
	@keyframes gn-filter-in { from { opacity: 0; transform: translateY(16px); } to { 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; }
}

/* 15 · Responsive -------------------------------------------------------- */
@media (max-width: 1180px) {
	.gn-header__bar { gap: 1.2rem; }
	.gn-nav .wp-block-navigation__container { gap: 1.1rem; }
	.gn-tiles, .gn-companies { grid-template-columns: repeat(3, 1fr); }
	.gn-carousel--mini { --cols: 4; }
	.gn-areas { grid-template-columns: repeat(2, 1fr); }
	.gn-steps { padding-left: 0; grid-template-columns: repeat(2, 1fr); row-gap: 2rem; }
	.gn-step:nth-child(3) { padding-left: 0; }
	.gn-step:nth-child(3)::before { display: none; }
	.gn-features--side { grid-template-columns: repeat(2, 1fr); row-gap: 1rem; }
	.gn-features--side .gn-feature:nth-child(3)::before { display: none; }
	.gn-history { grid-template-columns: 1fr; }
	.gn-difference { grid-template-columns: 1fr; }
}

@media (max-width: 1023px) {
	:root { --gn-header: 72px; }
	.gn-header__actions .wp-block-buttons { display: none; }
	.gn-nav { flex: 0; order: 3; }
	.gn-header__actions { margin-left: auto; }
	.gn-stats { grid-template-columns: repeat(2, 1fr); row-gap: 1.6rem; }
	.gn-stats--5 { grid-template-columns: repeat(3, 1fr); }
	.gn-stat:nth-child(odd)::before { display: none; }
	.gn-stats--5 .gn-stat::before { display: block; }
	.gn-stats--5 .gn-stat:nth-child(3n+1)::before { display: none; }
	.gn-split--left { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); padding-right: var(--gn-pad-x); }
	.gn-split--left .gn-quote { grid-column: 2; border-left: 0; padding: 0 0 clamp(48px, 5vw, 72px); margin-top: -1.5rem; }
	.gn-about { grid-template-columns: 1fr 1fr; }
	.gn-about .gn-quote { grid-column: 1 / -1; }
	.gn-carousel--estudio, .gn-carousel--news { --cols: 2; }
	.gn-carousel--horizontal { --cols: 1; }
	.gn-newsgrid { grid-template-columns: repeat(2, 1fr); }
	.gn-values { grid-template-columns: 1fr; }
	.gn-features--band { grid-template-columns: repeat(2, 1fr); row-gap: 2rem; }
	.gn-features--band .gn-feature:nth-child(3) { padding-left: 0; }
	.gn-features--band .gn-feature:nth-child(3)::before, .gn-features--band .gn-feature:first-child { padding-left: 0; }
	.gn-row, .gn-split--right, .gn-newsletter, .gn-contact, .gn-promo-body { grid-template-columns: 1fr; padding-right: var(--gn-pad-x); }
	.gn-products { padding-right: 0; }
	.gn-row--alt { background: none; }
	.gn-split--right .gn-split__text { padding-bottom: 2rem; }
	.gn-hero__aside:not(.gn-hero__aside--bottom) { display: none; }
}

@media (max-width: 781px) {
	.admin-bar .gn-header { top: 46px; }
	.gn-hero { align-items: flex-end; min-height: auto; padding-top: calc(var(--gn-header) + 52vw); padding-bottom: 56px; }
	.gn-hero__media { bottom: 40%; }
	.gn-hero__media img { object-position: 75% center; }
	.gn-hero::before { background: linear-gradient(180deg, rgba(245,242,236,.4) 0%, rgba(245,242,236,0) 14%, rgba(245,242,236,0) 34%, var(--gn-crema) 60%); }
	.gn-hero::after { display: none; }
	.gn-hero__aside, .gn-hero__quote, .gn-hero__scroll { display: none; }
	.gn-hero__lead { font-size: 1.0625rem; }
	.gn-head, .gn-head--index { display: block; }
	.gn-head--index .gn-index { margin-bottom: 1rem !important; }
	.gn-head__actions { margin-top: 1.4rem; justify-content: space-between; }
	.gn-split--left { display: block; padding: 0 0 var(--gn-space); }
	.gn-split--left .gn-split__media { min-height: 0; aspect-ratio: 1.5; }
	.gn-split--left .gn-split__text, .gn-split--left .gn-quote { padding-inline: var(--gn-gutter); }
	.gn-split--left .gn-quote { margin-top: 0; padding-bottom: 0; }
	.gn-about { grid-template-columns: 1fr; }
	.gn-tiles, .gn-companies { grid-template-columns: repeat(2, 1fr); }
	.gn-carousel__track { grid-auto-columns: 84%; }
	.gn-carousel--mini .gn-carousel__track { grid-auto-columns: 46%; }
	.gn-carousel.is-expanded .gn-carousel__track { grid-template-columns: 1fr; }
	.gn-carousel--mini.is-expanded .gn-carousel__track { grid-template-columns: 1fr 1fr; }
	.gn-promo--horizontal { grid-template-columns: 1fr; }
	.gn-promo--horizontal .gn-promo__media { min-height: 0; aspect-ratio: 1.8; }
	.gn-timeline { grid-template-columns: 1fr 1fr; row-gap: 1.6rem; }
	.gn-features, .gn-features--band, .gn-features--side { grid-template-columns: 1fr 1fr; row-gap: 2rem; }
	.gn-features--center .gn-feature:nth-child(3)::before, .gn-features--side .gn-feature:nth-child(3)::before { display: none; }
	.gn-steps { grid-template-columns: 1fr; }
	.gn-step { padding-left: 0 !important; }
	.gn-step::before { display: none; }
	.gn-areas, .gn-newsgrid, .gn-products { grid-template-columns: 1fr; }
	.gn-band { grid-template-columns: 1fr; }
	.gn-band__aside { justify-self: start; }
	.gn-band::before { background: rgba(22,24,19,.66); }
	.gn-row__text { grid-template-columns: 1fr; }
	.gn-row__text .gn-index { margin-bottom: 1rem !important; }
	.gn-row__figure--panel { grid-template-columns: 1fr; }
	.gn-row__figure--panel .gn-row__media { aspect-ratio: 1.6; }
	.gn-form__row { grid-template-columns: 1fr; }
	.gn-filters { overflow-x: auto; }
	.gn-filters ul { flex-wrap: nowrap; white-space: nowrap; }
	.gn-footer__bar { grid-template-columns: 1fr; text-align: center; justify-items: center; }
	.gn-footer__social { justify-content: center; }
	.gn-quote--overlay { max-width: 12ch; }
}

@media (max-width: 480px) {
	.gn-stats, .gn-stats--5 { grid-template-columns: 1fr 1fr; }
	.gn-stats--5 .gn-stat::before { display: block; }
	.gn-stats--5 .gn-stat:nth-child(odd)::before { display: none; }
	.gn-tiles, .gn-companies, .gn-timeline { grid-template-columns: 1fr 1fr; gap: 8px; }
	.gn-features, .gn-features--band, .gn-features--side { grid-template-columns: 1fr; }
	.gn-feature { padding-left: 0 !important; }
	.gn-feature::before { display: none; }
}

/* Editor de bloques: sin cabecera fija ni animaciones, para editar cómodamente */
.editor-styles-wrapper .gn-header { position: relative; }
.editor-styles-wrapper .gn-hero { padding-top: 64px; }
