/* The Charming Concept · nueva www · v3.491 · estilo Highgate (archivo 51)
   Paleta oficial: azul noche #0A0A16, carbón oliva #31382B (segundo oscuro), crema #F7F6E7, ámbar #FBBF54 (único acento).
   Tipografía: DM Serif Display (frases clave en cursiva), Poppins (menú y texto), Barlow Condensed (cifras, filas, pestañas).
   Primero el móvil. Todo el movimiento se apaga con «reducir movimiento». */

@font-face { font-family: "DM Serif Display"; src: url("fuentes/DMSerifDisplay-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "DM Serif Display"; src: url("fuentes/DMSerifDisplay-Italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("fuentes/Poppins-Light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("fuentes/Poppins-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("fuentes/Poppins-Medium.woff2") format("woff2"); font-weight: 500 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("fuentes/BarlowCondensed-Light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("fuentes/BarlowCondensed-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

:root {
	--night: #0A0A16;
	--olive: #31382B;
	--cream: #F7F6E7;
	--y: #FBBF54;
	--white: #FFFFFF;
	--ink: #0A0A16;
	--grey: #3D3D3B;
	--soft: #9DA1A4;
	--line: rgba(10, 10, 22, .14);
	--line-w: rgba(255, 255, 255, .2);
	--err: #B42318;
	--serif: "DM Serif Display", Georgia, "Times New Roman", serif;
	--sans: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--cond: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
	--g: clamp(20px, 5vw, 56px);
	--sec: 90px;
	--hh: 64px;
	--tb: 0px;
	--lgw: 112px;
	--lgs: .36;
	--ease: cubic-bezier(.33, 1, .68, 1);
	--ease2: cubic-bezier(.45, 0, .55, 1);
}
@media (min-width: 768px) { :root { --sec: 120px; } }
@media (min-width: 992px) { :root { --sec: 210px; } }
@media (min-width: 1200px) { :root { --hh: 80px; --lgw: 168px; --lgs: .333; } }
body.is-test { --tb: 28px; }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--hh) + var(--tb) + 24px); }
body { margin: 0; font: 300 1rem/1.65 var(--sans); color: var(--ink); background: var(--white); -webkit-font-smoothing: antialiased; }
@media (min-width: 992px) { body { font-size: 1.0625rem; } }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
p, ul, ol, dl, dd, figure, address, h1, h2, h3 { margin: 0; }
h1, h2, h3 { font-weight: 400; }
address { font-style: normal; }
ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }
strong { font-weight: 500; }
em { font-family: var(--serif); font-style: italic; font-weight: 400; }
:focus-visible { outline: 2px solid var(--y); outline-offset: 3px; }
.sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 200; padding: 10px 16px; background: var(--y); color: var(--night); font-weight: 500; text-decoration: none; }
.skip:focus { top: 12px; }
.wrap, .col { width: min(1240px, 100% - 2 * var(--g)); margin-inline: auto; }
.col { width: min(1034px, 100% - 2 * var(--g)); }
.testbar { position: fixed; top: 0; left: 0; right: 0; z-index: 120; height: 28px; margin: 0; padding: 0 var(--g); background: #000; color: var(--y); font-size: .75rem; line-height: 28px; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Tipografía ---------- */
.eyebrow { margin-bottom: clamp(28px, 4vw, 48px); font: italic 400 clamp(1.125rem, 1rem + .6vw, 1.5rem)/1.5 var(--serif); color: rgba(255, 255, 255, .78); }
.eyebrow--dark { color: var(--olive); }
.eyebrow--sm { margin-top: clamp(48px, 6vw, 80px); }
.lead { max-width: 60ch; margin-bottom: 32px; font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); }
.note { margin-top: 28px; max-width: 70ch; color: var(--grey); font-size: .9375rem; }
.prov { display: inline-block; margin-left: 6px; padding: 0 8px; background: var(--y); color: var(--night); font: 500 .6875rem/1.7 var(--sans); vertical-align: .15em; font-style: normal; }
.more { display: inline-flex; align-items: center; gap: 10px; font: 500 .75rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; }
.more::after { content: ""; width: 7px; height: 7px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .18s, opacity .18s; }
.more:hover::after { transform: translateX(6px) rotate(45deg); opacity: .5; }

/* ---------- Botones ---------- */
.btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.btns--c { justify-content: center; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 14px 28px; border: 1px solid transparent; border-radius: 0; font: 500 .75rem/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; text-align: center; text-decoration: none; cursor: pointer; transition: background-color .3s, color .3s, border-color .3s; }
.btn--y { background: var(--y); color: var(--night); }
.btn--y:hover { background: var(--white); }
.btn--w { color: var(--white); border-color: rgba(255, 255, 255, .7); background: transparent; }
.btn--w:hover { background: var(--white); color: var(--night); }
.btn--o { color: var(--night); border-color: var(--night); background: transparent; }
.btn--o:hover { background: var(--night); color: var(--white); }

/* ---------- Cabecera: menú partido con el medallón en el centro ---------- */
.hd { position: fixed; top: var(--tb); left: 0; right: 0; z-index: 100; color: var(--white); }
.hd::before { content: ""; position: absolute; inset: 0 0 auto; height: 110px; background: linear-gradient(180deg, rgba(10, 10, 22, .92) 0%, rgba(10, 10, 22, .55) 55%, rgba(10, 10, 22, 0) 100%); opacity: 0; transition: opacity .35s; pointer-events: none; }
.hd.is-scrolled::before { opacity: 1; }
.hd.is-solid, body:not(.has-hv) .hd { background: var(--night); }
.hd.is-solid::before, body:not(.has-hv) .hd::before { opacity: 0; }
.hd__in { position: relative; display: flex; align-items: center; height: var(--hh); padding-inline: var(--g); }
@media (min-width: 1200px) { .hd__in { padding-right: calc(var(--g) + 64px); padding-left: calc(var(--g) + 64px); } }
.hd__mark { display: block; width: 40px; color: var(--white); transition: opacity .35s; }
.hd__mark svg { display: block; width: 100%; height: auto; }
.hd__nav, .hd__util { display: none; }
.hd a { text-decoration: none; }
.mm { margin-left: auto; }
.mm__btn { display: grid; place-items: center; width: 44px; height: 44px; list-style: none; cursor: pointer; }
.mm__btn::-webkit-details-marker { display: none; }
.mm__bars, .mm__bars::before, .mm__bars::after { display: block; width: 24px; height: 1.5px; background: currentColor; transition: transform .25s, background-color .25s; }
.mm__bars { position: relative; }
.mm__bars::before, .mm__bars::after { content: ""; position: absolute; left: 0; }
.mm__bars::before { top: -7px; }
.mm__bars::after { top: 7px; }
.mm[open] .mm__bars { background: transparent; }
.mm[open] .mm__bars::before { transform: translateY(7px) rotate(45deg); }
.mm[open] .mm__bars::after { transform: translateY(-7px) rotate(-45deg); }
.mm__panel { position: fixed; inset: calc(var(--hh) + var(--tb)) 0 0 0; z-index: 99; overflow-y: auto; padding: 24px var(--g) 120px; background: var(--night); }
.mm__panel li a { display: block; padding: 14px 0; border-bottom: 1px solid var(--line-w); font: 300 2rem/1.1 var(--cond); letter-spacing: .04em; text-transform: uppercase; }
.mm__panel li a[aria-current="page"] { color: var(--y); }
.mm__aux { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; margin-top: 28px; font-size: .875rem; }
.hd:has(.mm[open]) { background: var(--night); }
@media (min-width: 1200px) {
	.mm { display: none; }
	.hd__in { justify-content: center; }
	.hd__mark { position: absolute; left: 50%; top: 50%; width: 56px; margin: -28px 0 0 -28px; }
	.hd__nav { display: grid; grid-template-columns: 1fr 1fr; align-items: center; width: 100%; --cg: 132px; column-gap: var(--cg); transition: column-gap .5s var(--ease2); }
	.hd__l, .hd__r { display: flex; gap: clamp(20px, 2vw, 36px); }
	.hd__l { justify-content: flex-end; }
	.hd__r { justify-content: flex-start; }
	.hd__nav a { display: block; padding: 6px 0; font: 400 .71875rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; opacity: .92; transition: color .2s, opacity .2s; }
	.hd__nav a:hover { color: var(--y); opacity: 1; }
	.hd__nav a[aria-current="page"] { color: var(--y); }
	.hd__util { position: absolute; right: var(--g); top: 50%; display: flex; align-items: center; gap: 22px; transform: translateY(-50%); font: 400 .6875rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
	.hd__util .hd__stay { display: none; }
	.hd__util a:hover { color: var(--y); }
	/* Portada con el logo grande: al principio el menú va junto y el medallón no está en el menú */
	body.has-lg:not(.is-compact) .hd__mark { opacity: 0; transition: none; }
	body.has-lg:not(.is-compact) .hd__nav { --cg: clamp(20px, 2vw, 36px); }
	body.has-lg.is-compact .hd__mark { transition: opacity .2s .45s; }
}
@media (min-width: 1680px) { .hd__util .hd__stay { display: inline; } }

/* ---------- Logo grande (portada) que encoge y sube al menú ---------- */
.lg { position: fixed; left: 0; top: 0; z-index: 110; width: var(--lgw); color: var(--white); transform: translate(calc(50vw - var(--lgw) / 2), calc(var(--tb) + 40svh - var(--lgw) / 2)); transition: transform .45s var(--ease), opacity 0s; }
.lg__m, .lg__m svg { display: block; width: 100%; height: auto; }
.lg__n { position: absolute; left: 50%; top: calc(100% + var(--lgw) * .16); width: min(calc(var(--lgw) * 2.9), 86vw); transform: translateX(-50%); transition: opacity .35s .45s; }
.lg__n svg { display: block; width: 100%; height: auto; }
body.is-compact .lg { transform: translate(calc(var(--g) + 20px - var(--lgw) / 2), calc(var(--tb) + var(--hh) / 2 - var(--lgw) / 2)) scale(var(--lgs)); opacity: 0; pointer-events: none; transition: transform .45s var(--ease), opacity 0s .45s; }
body.is-compact .lg__n { opacity: 0; transition: none; }
body.has-lg:not(.is-compact) .hd__mark { opacity: 0; }
body.has-lg.is-compact .hd__mark { opacity: 1; transition: opacity .15s .45s; }
@media (min-width: 1200px) { body.is-compact .lg { transform: translate(calc(50vw - var(--lgw) / 2), calc(var(--tb) + var(--hh) / 2 - var(--lgw) / 2)) scale(var(--lgs)); } }

/* ---------- Cabecera de la portada: pase de vídeo y fotos ---------- */
.hero { position: relative; height: calc(100svh - var(--tb)); min-height: 560px; margin-top: var(--tb); overflow: hidden; background: var(--night); color: var(--white); isolation: isolate; }
.sl, .sl__s { position: absolute; inset: 0; }
.sl { z-index: -2; }
.sl__s { opacity: 0; transition: opacity 1.2s ease; }
.sl__s.is-on { opacity: 1; }
.sl__s img, .sl__s video { width: 100%; height: 100%; object-fit: cover; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10, 10, 22, .6) 0%, rgba(10, 10, 22, .12) 28%, rgba(10, 10, 22, .12) 58%, rgba(10, 10, 22, .72) 100%); }
.hero__tag { position: absolute; left: 50%; bottom: 92px; width: calc(100% - 2 * var(--g)); transform: translateX(-50%); font: italic 400 clamp(1.25rem, 1rem + 1vw, 1.75rem)/1.3 var(--serif); text-align: center; }
.sl__ui { position: absolute; left: var(--g); bottom: 26px; display: flex; align-items: center; gap: 4px; }
.sl__p { display: grid; place-items: center; width: 36px; height: 36px; margin-right: 6px; padding: 0; border: 1px solid rgba(255, 255, 255, .55); border-radius: 50%; background: transparent; color: var(--white); cursor: pointer; }
.sl__p span { display: block; width: 8px; height: 10px; border-inline: 2px solid currentColor; }
.sl__p.is-paused span { width: 0; height: 0; border: 0; border-left: 9px solid currentColor; border-block: 6px solid transparent; margin-left: 3px; }
.sl__d { width: 24px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.sl__d::before { content: ""; display: block; width: 7px; height: 7px; margin: auto; border-radius: 50%; background: rgba(255, 255, 255, .5); transition: background-color .3s, transform .3s; }
.sl__d.is-on::before { background: var(--y); transform: scale(1.25); }
.sl__cap { position: absolute; right: var(--g); bottom: 34px; max-width: 46%; text-align: right; }
.sl__c { display: none; font: 400 .6875rem/1.4 var(--sans); letter-spacing: .16em; text-transform: uppercase; opacity: .85; }
.sl__c.is-on { display: block; }
@media (max-width: 599px) { .hero__tag { bottom: 104px; } .sl__cap { bottom: 72px; max-width: 70%; } }

/* ---------- Secciones ---------- */
.sec { padding-block: var(--sec); }
.sec--night { background: var(--night); color: var(--white); }
.sec--olive { background: var(--olive); color: var(--white); }
.sec--cream { background: var(--cream); }
.sec--top { padding-top: calc(var(--hh) + var(--tb) + clamp(48px, 7vw, 96px)); }
.duo { display: grid; gap: 56px 80px; }
@media (min-width: 900px) { .duo { grid-template-columns: 1fr 1fr; } .duo--form { grid-template-columns: 5fr 7fr; } }

/* Presentación con la parte clave en cursiva */
.pres__p { max-width: 30em; font: 300 clamp(1.375rem, 1.05rem + 1.35vw, 2.125rem)/1.42 var(--sans); }
.pres__p em { font-size: 1.04em; }
.pres__p--sm { font-size: clamp(1.125rem, 1rem + .6vw, 1.5rem); max-width: 36em; }

/* Cifras en condensada, con una línea fina encima */
.figs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; margin-top: clamp(56px, 8vw, 110px); }
.figs__i { display: flex; flex-direction: column; padding-top: 18px; border-top: 1px solid var(--line-w); }
.figs__n { order: -1; font: 300 clamp(2.25rem, 1.8rem + 2vw, 3.5rem)/1 var(--cond); letter-spacing: .02em; color: var(--white); }
.figs__x { font-weight: 300; color: var(--y); margin-inline: .04em; }
.figs__l { margin-top: 8px; font: 400 .8125rem/1.3 var(--cond); letter-spacing: .18em; text-transform: uppercase; color: var(--white); }
.figs__s { margin-top: 4px; font-size: .8125rem; color: var(--soft); }
@media (min-width: 900px) { .figs { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* «Qué hacemos»: filas grandes que se iluminan */
.rows { border-bottom: 1px solid var(--line-w); }
.rows--light { border-bottom-color: var(--line); }
.row { position: relative; display: grid; gap: 6px 32px; margin-inline: -16px; padding: 22px 16px; border-top: 1px solid var(--line-w); text-decoration: none; transition: background-color .3s; }
.rows--light .row { border-top-color: var(--line); }
.row__t { font: 300 clamp(2.25rem, 1.4rem + 3.6vw, 4.5rem)/1 var(--cond); letter-spacing: .01em; text-transform: uppercase; transition: color .3s; }
.row__d { max-width: 40ch; font-size: .9375rem; color: rgba(255, 255, 255, .78); }
.rows--light .row__d { color: var(--grey); }
.row__a { display: none; }
.row:hover, .row:focus-visible { background: rgba(128, 128, 128, .2); }
@media (min-width: 1200px) and (hover: hover) {
	.row { grid-template-columns: 1fr minmax(0, 34%) 24px; align-items: center; }
	.row__d { opacity: 0; transform: translateX(-8px); transition: opacity .3s, transform .3s; }
	.row__a { display: block; width: 12px; height: 12px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); opacity: 0; transition: opacity .3s, transform .18s; }
	.row:hover .row__d, .row:focus-visible .row__d { opacity: 1; transform: none; }
	.row:hover .row__a, .row:focus-visible .row__a { opacity: 1; transform: translateX(4px) rotate(45deg); }
	.row:hover .row__t, .row:focus-visible .row__t { color: var(--white); }
	.rows--light .row:hover .row__t { color: var(--night); }
}

/* «Nuestros edificios»: pestañas sobre foto a sangre y fila de logos */
.bld { position: relative; background: var(--night); color: var(--white); isolation: isolate; }
.bld__media { position: relative; display: grid; aspect-ratio: 4 / 3; overflow: hidden; }
.bld__p { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity 1s ease, visibility 0s 1s; }
.bld__p.is-on { opacity: 1; visibility: visible; transition: opacity 1s ease; }
.bld__p img, .bld__p .ph { width: 100%; height: 100%; object-fit: cover; opacity: .7; }
.bld__p .tag-prov { z-index: 2; top: auto; bottom: 12px; }
.bld__in { padding-block: 48px; }
.bld__lead { max-width: 52ch; font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); color: rgba(255, 255, 255, .88); }
.tabs { display: flex; gap: 4px 28px; margin-top: 36px; overflow-x: auto; scrollbar-width: none; }
.tabs__t { position: relative; flex: none; padding: 14px 0 8px; border: 0; background: transparent; color: rgba(255, 255, 255, .62); font: 400 1rem/1 var(--cond); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: color .3s; }
.tabs__t::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--y); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.tabs__t[aria-selected="true"] { color: var(--white); }
.tabs__t[aria-selected="true"]::before { transform: scaleX(1); }
.tabs__t:hover { color: var(--white); }
.bld__bot { margin-top: 48px; }
.brands { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 22px 36px; }
.brands__i img { width: auto; height: 46px; filter: brightness(0) invert(1); opacity: .78; transition: opacity .3s; }
.brands__i a:hover img, .brands__i a:focus-visible img { opacity: 1; }
.brands__i span img { opacity: .45; }
@media (min-width: 768px) { .brands__i img { height: 54px; } }
@media (min-width: 1200px) {
	.bld { min-height: 100svh; }
	.bld__media { position: absolute; inset: 0; z-index: -2; aspect-ratio: auto; }
	.bld::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10, 10, 22, .78) 0%, rgba(10, 10, 22, .1) 38%, rgba(10, 10, 22, .1) 58%, rgba(10, 10, 22, .85) 100%); }
	.bld__in { display: flex; flex-direction: column; justify-content: space-between; min-height: 100svh; padding-block: calc(var(--hh) + 64px) 56px; }
}

/* Smart Panel: portátil y móvil dibujados en CSS */
.sp { margin-top: clamp(40px, 6vw, 72px); }
.sp__tabs { display: none; }
.sp__p { display: none; }
.sp__app { display: grid; grid-auto-flow: column; grid-auto-columns: 68%; gap: 16px; margin-inline: calc(-1 * var(--g)); padding: 0 var(--g) 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--g); }
.sp__a { scroll-snap-align: start; }
.sp__a img { border: 7px solid #1C1C28; border-radius: 26px; }
.sp__a p { margin-top: 12px; font: italic 400 1.0625rem/1.35 var(--serif); color: rgba(255, 255, 255, .85); }
.sp__demo { margin-top: 18px; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--soft); }
@media (min-width: 768px) {
	.sp__tabs { display: flex; gap: 28px; margin-bottom: 28px; }
	.sp__t { position: relative; padding: 14px 0 8px; border: 0; background: transparent; color: rgba(255, 255, 255, .6); font: 400 1rem/1 var(--cond); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
	.sp__t::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--y); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
	.sp__t[aria-selected="true"] { color: var(--white); }
	.sp__t[aria-selected="true"]::before { transform: scaleX(1); }
	.sp__p { display: block; }
	.sp__p[hidden] { display: none; }
	.sp__line { margin-bottom: 24px; font: italic 400 1.375rem/1.3 var(--serif); }
	.sp__dev { position: relative; padding: 0 9% 6% 0; }
	.sp__lap { position: relative; padding: 2.2% 2.2% 3%; border-radius: 18px 18px 0 0; background: #1C1C28; box-shadow: 0 30px 80px rgba(0, 0, 0, .45); }
	.sp__lap img { border-radius: 4px; }
	.sp__lap::after { content: ""; position: absolute; left: -7%; right: -7%; bottom: -14px; height: 14px; border-radius: 0 0 18px 18px; background: linear-gradient(180deg, #2A2A38, #15151F); }
	.sp__ph { position: absolute; right: 0; bottom: 0; width: 22%; padding: 7px; border-radius: 30px; background: #1C1C28; box-shadow: 0 24px 60px rgba(0, 0, 0, .55); }
	.sp__ph img { border-radius: 24px; }
	.sp__app { display: none; }
}

/* Compromisos y sellos */
.pledge__in { display: grid; gap: 64px 96px; }
@media (min-width: 900px) { .pledge__in { grid-template-columns: 1fr 1fr; } }
.ticks li { padding: 14px 0; border-bottom: 1px solid var(--line); }
.ticks li:first-child { border-top: 1px solid var(--line); }
.sec--night .ticks li { border-color: var(--line-w); }
.seals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.seals__i img { width: auto; height: 72px; margin-bottom: 14px; }
.seals__i p { font-size: .8125rem; line-height: 1.5; color: var(--grey); }

/* Noticias */
.news__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.news__list { display: grid; gap: 40px; }
.news__i { padding-top: 22px; border-top: 1px solid var(--night); }
.news__i h3 { margin-bottom: 16px; font: 400 1.125rem/1.45 var(--sans); }
.news__m { margin-top: 12px; font-size: .875rem; color: var(--grey); }
@media (min-width: 900px) { .news__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; } }

/* Llamada final */
.end { padding-block: var(--sec); background: var(--night); color: var(--white); text-align: center; }
.end__in { max-width: 860px; }
.end__k { margin-bottom: 20px; font: italic 400 1.375rem/1.4 var(--serif); color: rgba(255, 255, 255, .7); }
.end__h { font: 400 clamp(2.125rem, 1.4rem + 3vw, 3.75rem)/1.1 var(--serif); text-wrap: balance; }
.end__p { max-width: 54ch; margin: 24px auto 0; color: rgba(255, 255, 255, .78); }

/* ---------- Páginas interiores ---------- */
.hv { position: relative; display: grid; place-items: center; min-height: min(calc(82svh - var(--tb)), 820px); margin-top: var(--tb); overflow: hidden; background: var(--night); color: var(--white); text-align: center; isolation: isolate; }
.hv > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.hv > .tag-prov { z-index: 2; top: calc(var(--hh) + 14px); }
.hv::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10, 10, 22, .7) 0%, rgba(10, 10, 22, .35) 40%, rgba(10, 10, 22, .7) 100%); }
.hv__in { padding-block: calc(var(--hh) + 56px) 80px; }
.hero__k { margin-bottom: 20px; font: 400 .75rem/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: rgba(255, 255, 255, .85); }
.hv__h { font: 400 clamp(2.5rem, 1.4rem + 4.2vw, 5rem)/1.06 var(--serif); text-wrap: balance; }
.hv__h--dark { color: var(--night); }
.hv__p { max-width: 58ch; margin: 24px auto 0; font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem); color: rgba(255, 255, 255, .9); }

/* Tablas: modelos y fases */
.tbl { overflow-x: auto; }
.tt { width: 100%; border-collapse: collapse; }
.tt th, .tt td { padding: 22px 24px 22px 0; text-align: left; vertical-align: top; border-top: 1px solid var(--line); }
.tt thead th { padding-block: 0 14px; border-top: 0; font: 400 .75rem/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--grey); }
.tt tbody th { width: 28%; font: 400 1.375rem/1.25 var(--serif); }
.tt tbody tr:last-child > * { border-bottom: 1px solid var(--line); }
.tt__n { display: block; margin-bottom: 6px; font: 300 2.5rem/1 var(--cond); color: var(--olive); }
@media (max-width: 719px) {
	.tt thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.tt tr, .tt th, .tt td { display: block; width: auto !important; }
	.tt tbody tr { padding-block: 22px; border-top: 1px solid var(--line); }
	.tt tbody th, .tt td { padding: 0; border: 0 !important; }
	.tt tbody tr:last-child { border-bottom: 1px solid var(--line); }
	.tt td { margin-top: 12px; }
	.tt td::before { content: attr(data-l); display: block; font: 400 .6875rem/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--grey); }
}

/* Casos (tarjetas) */
.cases { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, 78%); gap: 20px; margin-inline: calc(-1 * var(--g)); padding: 0 var(--g) 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--g); }
.case { scroll-snap-align: start; }
.case__ph { position: relative; aspect-ratio: 4 / 5; overflow: hidden; margin-bottom: 16px; background: var(--olive); }
.case__ph img { width: 100%; height: 100%; object-fit: cover; }
.case__n { font: 400 1.375rem/1.2 var(--serif); }
.case__c { margin-top: 4px; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: var(--grey); }
.case__t { margin-top: 10px; font-size: .9375rem; }
.cases__more { margin-top: 32px; }
.cases__more .lnk { font: 500 .75rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
@media (min-width: 900px) { .cases { grid-auto-flow: row; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-inline: 0; padding: 0; overflow: visible; } }

/* Huecos de foto pendiente y etiqueta */
.ph { display: block; width: 100%; height: 100%; min-height: 100%; background: repeating-linear-gradient(135deg, #1C1C28 0 14px, #23232F 14px 28px); }
.tag-prov { position: absolute; top: 12px; left: 12px; padding: 1px 8px; background: var(--y); color: var(--night); font: 500 .6875rem/1.6 var(--sans); }

/* Preguntas frecuentes */
.faq__list { border-bottom: 1px solid var(--line); }
.faq__i { border-top: 1px solid var(--line); }
.faq__i summary { position: relative; padding: 22px 48px 22px 0; font: 400 1.125rem/1.45 var(--sans); cursor: pointer; list-style: none; }
.faq__i summary::-webkit-details-marker { display: none; }
.faq__i summary::before, .faq__i summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 16px; height: 1.5px; background: var(--night); transition: transform .25s; }
.faq__i summary::after { transform: rotate(90deg); }
.faq__i[open] summary::after { transform: rotate(0); }
.faq__i p { padding: 0 48px 24px 0; color: var(--grey); max-width: 66ch; }

/* ---------- Formularios ---------- */
.fm { position: relative; }
.contact__main .fm { margin-top: 40px; }
.fm__grid { display: grid; gap: 14px 16px; }
@media (min-width: 640px) { .fm__grid { grid-template-columns: 1fr 1fr; } .fm__f--wide { grid-column: 1 / -1; } }
.fm__f[hidden] { display: none; }
.fm__l { display: block; margin-bottom: 6px; font-size: .875rem; font-weight: 500; }
.fm__i { display: block; width: 100%; min-height: 50px; padding: 12px 16px; border: 1px solid rgba(10, 10, 22, .22); border-radius: 0; background: var(--white); color: var(--night); font: 300 1rem/1.4 var(--sans); transition: border-color .2s, box-shadow .2s; }
.fm__i::placeholder { color: #6E6F78; }
.fm__i:hover { border-color: rgba(10, 10, 22, .5); }
.fm__i:focus { outline: none; border-color: var(--night); box-shadow: 0 0 0 3px rgba(251, 191, 84, .7); }
select.fm__i { appearance: none; padding-right: 42px; color: #6E6F78; background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230A0A16' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center; }
select.fm__i:valid, select.fm__i[data-motivo] { color: var(--night); }
textarea.fm__i { min-height: 130px; resize: vertical; }
.fm__f.is-err .fm__i { border-color: var(--err); }
.fm__e { margin-top: 6px; font-size: .8125rem; color: var(--err); }
.fm__ck { display: flex; gap: 12px; align-items: flex-start; margin-top: 22px; font-size: .9375rem; }
.fm__ck input { flex: none; width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--night); }
.fm__ck.is-err label { color: var(--err); }
.fm__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 26px; }
.fm__promise { font-size: .875rem; color: var(--grey); }
.fm__alert { margin-bottom: 20px; padding: 12px 16px; border-left: 3px solid var(--err); background: #FDF1EF; color: var(--err); font-size: .9375rem; }
.fm__test { margin-top: 18px; padding: 8px 12px; border: 1px dashed var(--grey); font-size: .8125rem; color: var(--grey); }
.fm__hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.fm--ok { padding: 28px; border-left: 3px solid var(--y); background: var(--cream); }
.fm--ok:focus { outline: none; }
.fm__okh { margin-bottom: 8px; font: 400 1.75rem/1.2 var(--serif); }

/* Contacto */
.contact { display: grid; gap: 56px 80px; }
@media (min-width: 980px) { .contact { grid-template-columns: 8fr 4fr; } .contact__side { padding-top: 12px; } }
.contact .lead { margin-top: 20px; }
.side { padding-block: 18px; border-top: 1px solid var(--line); }
.side__h { margin-bottom: 4px; font: 500 .75rem/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.side p, .side address { color: var(--grey); font-size: .9375rem; }
.side__more { padding-top: 18px; border-top: 1px solid var(--line); }
.lnk { font-weight: 400; color: inherit; text-decoration: underline; text-decoration-color: var(--y); text-decoration-thickness: 1.5px; text-underline-offset: 5px; }

/* Páginas en preparación y 404 */
.plain { padding-top: calc(var(--hh) + var(--tb) + 80px); }
.h1 { font: 400 clamp(2.25rem, 1.4rem + 3.4vw, 4rem)/1.08 var(--serif); text-wrap: balance; }
.plain .lead { margin-top: 24px; }
.kick { margin-bottom: 18px; font: 400 .75rem/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--grey); }
.links { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 32px; }

/* ---------- Pie ---------- */
.ft { padding-top: clamp(64px, 8vw, 110px); background: var(--night); color: var(--white); font-size: .875rem; }
.ft a { text-decoration: none; opacity: .85; transition: color .2s, opacity .2s; }
.ft a:hover { color: var(--y); opacity: 1; }
.ft__grid { display: grid; gap: 44px 32px; }
.ft__mark { display: block; width: 64px; margin-bottom: 26px; opacity: 1 !important; }
.ft__mark svg { width: 100%; height: auto; }
.ft__brand p, .ft__brand address { margin-top: 10px; color: rgba(255, 255, 255, .78); }
.ft__h { margin-bottom: 16px; font: 400 .6875rem/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--soft); }
.ft ul { display: grid; gap: 10px; }
.ft__funds { width: min(240px, 100%); height: auto; margin-top: 28px; }
.ft__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: 64px; padding-block: 24px; border-top: 1px solid var(--line-w); font-size: .75rem; color: var(--soft); }
.ft__base p:last-child { font-family: var(--serif); font-style: italic; font-size: .9375rem; }
@media (min-width: 640px) { .ft__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .ft__grid { grid-template-columns: 4fr 3fr 3fr 3fr; } }

/* ---------- Botón fijo en el móvil ---------- */
.dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; padding: 10px var(--g) calc(10px + env(safe-area-inset-bottom)); background: rgba(10, 10, 22, .92); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.dock .btn { width: 100%; }
@media (max-width: 759px) { body:has(.dock) { padding-bottom: 72px; } }
@media (min-width: 760px) { .dock { display: none; } }

/* ---------- Acceso a la maqueta ---------- */
.gate { display: grid; place-items: center; min-height: 100svh; padding: var(--g); background: var(--night); }
.gate__card { width: min(400px, 100%); padding: 40px 36px; background: var(--white); }
.gate__logo { display: block; width: 180px; margin-bottom: 28px; color: var(--night); }
.gate__logo svg { width: 100%; height: auto; }
.gate__h { font: 400 1.75rem/1.2 var(--serif); }
.gate__p { margin: 6px 0 24px; color: var(--grey); font-size: .9375rem; }
.gate__err { margin-bottom: 16px; color: var(--err); font-size: .9375rem; }
.gate__b { width: 100%; margin-top: 16px; }

/* ---------- Apariciones al bajar (solo lo que aún no se ve; JavaScript las activa) ---------- */
.rv { opacity: 0; transform: translate3d(0, 60px, 0); transition: opacity 1s ease, transform 1s ease; transition-delay: var(--d, 0ms); }
.rv.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
	.rv { opacity: 1; transform: none; }
	.lg { display: none; }
	body.has-lg .hd__mark { opacity: 1 !important; }
	body.has-lg .hd__nav { --cg: 132px !important; }
}
@media print { .hd, .dock, .testbar, .lg, .sl__ui { display: none; } }
/* Móvil: los controles del pase quedan por encima del botón fijo */
@media (max-width: 759px) {
	.sl__ui { bottom: 92px; }
	.sl__cap { bottom: 100px; }
	.hero__tag { bottom: 150px; }
}
/* v3.492 · En el móvil, el nombre de la foto no se monta sobre los puntos del pase */
@media (max-width: 599px) { .sl__cap { display: none; } }

/* =====================================================================================================================
   v3.493 · Componentes del resto de páginas (generadas con herramientas/www-paginas.py)
   ===================================================================================================================== */
.hv--plain { min-height: min(calc(64svh - var(--tb)), 640px); }
.sec--slim { padding-block: 28px; }
.notice { padding: 16px 20px; border-left: 3px solid var(--y); background: var(--cream); font-size: .9375rem; }
/* Dos modelos */
.mods { display: grid; gap: 40px 64px; }
.mod { padding-top: 22px; border-top: 1px solid var(--night); }
.mod__t { margin-bottom: 10px; font: 300 clamp(2rem, 1.5rem + 1.8vw, 3rem)/1 var(--cond); letter-spacing: .01em; text-transform: uppercase; }
.mod p { max-width: 46ch; color: var(--grey); }
@media (min-width: 760px) { .mods { grid-template-columns: 1fr 1fr; } }
/* Rejilla de puntos con título */
.items { display: grid; gap: 36px 48px; }
.item { padding-top: 18px; border-top: 1px solid var(--line); }
.item__t { margin-bottom: 8px; font: 400 1.25rem/1.3 var(--serif); }
.item p { color: var(--grey); font-size: .9375rem; }
@media (min-width: 700px) { .items { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .items { grid-template-columns: repeat(3, 1fr); } }
/* Pasos numerados */
.steps2 { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: s2; border-bottom: 1px solid var(--line); }
.steps2__i { position: relative; display: grid; gap: 4px 32px; padding: 22px 0 22px 64px; border-top: 1px solid var(--line); counter-increment: s2; }
.steps2__i::before { content: counter(s2, decimal-leading-zero); position: absolute; left: 0; top: 18px; font: 300 2.25rem/1 var(--cond); color: var(--olive); }
.steps2__t { font: 400 1.25rem/1.3 var(--serif); }
.steps2__i p { color: var(--grey); }
@media (min-width: 760px) { .steps2__i { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: baseline; padding-left: 88px; } }
/* Listas en dos columnas */
@media (min-width: 760px) { .ticks--cols { columns: 2; column-gap: 56px; } .ticks--cols li { break-inside: avoid; } .ticks--cols li:nth-child(2) { border-top: 0; } }
/* Fichas de casos */
.cs { display: grid; gap: 56px; }
.cs__i { display: grid; gap: 24px 48px; }
.cs__ph { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #1C1C28; }
.cs__ph img { width: 100%; height: 100%; object-fit: cover; }
.cs__c { font: 400 .75rem/1.4 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--grey); }
.cs__n { margin: 8px 0 6px; font: 400 clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem)/1.1 var(--serif); }
.cs__t { color: var(--grey); }
.cs__d { display: grid; gap: 10px; margin: 22px 0; }
.cs__d div { display: flex; gap: 16px; padding-top: 10px; border-top: 1px solid var(--line); }
.cs__d dt { min-width: 110px; font: 400 .75rem/1.6 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--grey); }
@media (min-width: 900px) { .cs__i { grid-template-columns: 6fr 5fr; align-items: center; } .cs__i:nth-child(even) .cs__ph { order: 2; } }
/* Noticias (página) */
.news__list--page { gap: 48px; }
.news__list--page .news__i p { color: var(--grey); }
/* Formulario de candidatura */
.fm__file { padding: 11px 12px; background: var(--white); }
.fm__hint { margin-top: 6px; font-size: .8125rem; color: var(--grey); }

/* =====================================================================================================================
   v3.494 · Revisión 52: escala tipográfica con más presencia, H1 en la cabecera, «Nuestros edificios» por pestañas,
   tecnología con recorrido al bajar, portfolio por edificio y corrección de los errores del §5
   ===================================================================================================================== */
html { scrollbar-gutter: stable; }
:root { --sec: 96px; }
@media (min-width: 768px) { :root { --sec: 140px; } }
@media (min-width: 1200px) { :root { --sec: 200px; } }
body { font-size: 1rem; line-height: 1.6; }
@media (min-width: 992px) { body { font-size: 1.125rem; } }
.sec, .bld, .end, .hero, .hv { overflow-x: clip; }

/* §5.4 · El contorno solo con teclado */
:focus:not(:focus-visible) { outline: none; }
.row:focus:not(:focus-visible) { background: transparent; }

/* §4 · Escala */
.eyebrow { font-size: clamp(2rem, 1.45rem + 2.3vw, 3.5rem); line-height: 1.1; color: var(--white); }
.eyebrow--dark { color: var(--night); }
.eyebrow--sm { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem); }
.pres__p { font-size: clamp(1.375rem, 1rem + 1.6vw, 2.25rem); line-height: 1.35; max-width: 28em; }
.pres__p--sm { font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem); }
.row__t { font-size: clamp(2.75rem, 1.6rem + 4.8vw, 6rem); }
.row__d { font-size: clamp(.9375rem, .9rem + .2vw, 1.0625rem); line-height: 1.5; color: rgba(255, 255, 255, .9); }
.rows--light .row__d { color: #3D3D3B; }
.figs__n { font-size: clamp(3.5rem, 2.4rem + 4.4vw, 6rem); }
.figs__l, .tabs__t, .sp__t span, .hd__nav a, .hero__k { font-size: clamp(.6875rem, .65rem + .15vw, .8125rem); letter-spacing: .18em; }
.figs__s { font-size: .875rem; color: #B9BCBF; }
.lead { font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem); }

/* §5.3 y §5.5 · Filas sobre fondo claro: fondo oliva al 6 % y texto oscuro */
.row:hover, .row:focus-visible { background: rgba(255, 255, 255, .08); }
.rows--light .row:hover, .rows--light .row:focus-visible { background: rgba(49, 56, 43, .06); }
.rows--light .row:hover .row__t, .rows--light .row:focus-visible .row__t { color: var(--olive) !important; }

/* §5.2 · Sin barras de scroll en las tablas (en el móvil ya son tarjetas) y apariciones más cortas */
@media (min-width: 720px) { .tbl { overflow: visible; } }
.rv { transform: translate3d(0, 36px, 0); }

/* §2.1 · El lema es el H1, bajo el logo grande */
.hero__h1 { position: absolute; left: 50%; bottom: 92px; width: calc(100% - 2 * var(--g)); margin: 0; transform: translateX(-50%); text-align: center; color: var(--white); }
.hero__h1 > span:first-child { display: block; font: italic 400 clamp(1.75rem, 1.2rem + 2.2vw, 3rem)/1.15 var(--serif); }
.hero__h1b { display: block; margin-top: 12px; font: 400 clamp(.75rem, .7rem + .15vw, .875rem)/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; opacity: .9; }
@media (max-width: 759px) { .hero__h1 { bottom: 150px; } }

/* §5.1 · Logo grande centrado respecto a toda la pantalla (sin depender de la barra de scroll): solo se anima en vertical y en tamaño en escritorio; en el móvil también en horizontal */
.lg { left: 50%; margin-left: calc(var(--lgw) / -2); transform: translate3d(0, calc(var(--tb) + 36svh - var(--lgw) / 2), 0); }
body.is-compact .lg { transform: translate3d(calc(var(--g) + 20px - 50vw + var(--lgw) / 2 - var(--lgw) / 2), calc(var(--tb) + var(--hh) / 2 - var(--lgw) / 2), 0) scale(var(--lgs)); }
@media (min-width: 1200px) { body.is-compact .lg { transform: translate3d(0, calc(var(--tb) + var(--hh) / 2 - var(--lgw) / 2), 0) scale(var(--lgs)); } }
@media (min-width: 1200px) {
	.hd__in { padding-inline: 0; }
	.hd__nav { width: 100%; }
	.hd__mark { left: 50%; margin-left: -28px; }
}

/* §2.4 · Nuestros edificios */
.bld__lead { max-width: 38em; font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem); line-height: 1.4; }
.bld__tp[hidden] { display: none; }
.bld__tx { max-width: 52ch; margin-bottom: 32px; font-size: clamp(1rem, .95rem + .3vw, 1.1875rem); color: rgba(255, 255, 255, .9); }
.bl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; align-items: center; }
.bl__i a, .bl__i > img, .bl__i > span { display: flex; align-items: center; justify-content: center; min-height: 96px; padding: 12px; border: 1px solid rgba(255, 255, 255, .16); transition: border-color .3s, background-color .3s; }
.bl__i a:hover, .bl__i a:focus-visible { border-color: var(--y); background: rgba(255, 255, 255, .05); }
.bl__i img { width: 100%; max-width: 220px; height: auto; max-height: 84px; object-fit: contain; filter: brightness(0) invert(1); }
.bl__txt { font: 400 1rem/1.3 var(--cond); letter-spacing: .14em; text-transform: uppercase; text-align: center; color: #fff; }
@media (min-width: 900px) { .bl { grid-template-columns: repeat(4, minmax(180px, 1fr)); } }

/* §2.5 · Tecnología: dispositivos más pequeños, cifra que se cuenta y recorrido al bajar */
.sp__dev { max-width: 640px; }
.sp__fig { display: flex; align-items: baseline; gap: 14px; margin-bottom: 20px; }
.sp__num { font: 300 clamp(2.5rem, 2rem + 2vw, 4rem)/1 var(--cond); color: var(--white); }
.sp__cap { font: 400 .75rem/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: #B9BCBF; }
.sp__t small { display: none; }
.sp__bar { display: none; }
@media (min-width: 1024px) {
	.sp { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 56px; align-items: center; }
	.sp__nav { position: relative; padding-left: 22px; }
	.sp__tabs { flex-direction: column; gap: 0; margin: 0; }
	.sp__t { display: block; width: 100%; padding: 18px 0; text-align: left; opacity: .5; transition: opacity .4s; }
	.sp__t::before { display: none; }
	.sp__t[aria-selected="true"] { opacity: 1; }
	.sp__t small { display: block; margin-top: 8px; font: italic 400 1.125rem/1.3 var(--serif); letter-spacing: 0; text-transform: none; }
	.sp__bar { display: block; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: rgba(255, 255, 255, .15); }
	.sp__bar span { display: block; width: 100%; height: calc(var(--sp, .25) * 100%); background: var(--y); transition: height .3s; }
	.sp__stage { position: relative; display: grid; }
	.sp__p { grid-area: 1 / 1; }
	.sp__p[hidden] { display: block; visibility: hidden; opacity: 0; transform: translate3d(0, 24px, 0); }
	.sp__p { transition: opacity .6s ease, transform .6s ease, visibility 0s; }
	.sp__p:not([hidden]) .sp__ph { animation: tccw-slide .7s var(--ease) both; }
	.sp__line { display: none; }
	.sp__demo { grid-column: 1 / -1; }
}
@keyframes tccw-slide { from { opacity: 0; transform: translate3d(40px, 0, 0); } }
/* Sección fijada mientras se baja (la activa el script) */
.tech.is-journey { padding-block: 0; }
.tech.is-journey .tech__pin { position: sticky; top: 0; display: flex; align-items: center; min-height: 100svh; padding-block: calc(var(--hh) + var(--tb) + 24px) 32px; }

/* §3 · Portfolio */
.pfl { display: grid; gap: 48px 32px; }
@media (min-width: 700px) { .pfl { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .pfl { grid-template-columns: repeat(3, 1fr); } }
.pfl__a { display: block; text-decoration: none; }
.pfl__ph { position: relative; aspect-ratio: 4 / 3; margin-bottom: 18px; overflow: hidden; background: #1C1C28; }
.pfl__ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.pfl__a:hover .pfl__ph > img { transform: scale(1.04); }
.pfl__logo { position: absolute; inset: auto 0 0 0; display: flex; justify-content: center; padding: 16px; background: linear-gradient(0deg, rgba(10, 10, 22, .75), transparent); }
.pfl__logo img { width: auto !important; height: 48px !important; filter: brightness(0) invert(1); transform: none !important; }
.pfl__c { font: 400 .75rem/1.4 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--grey); }
.pfl__n { margin: 6px 0; font: 400 1.5rem/1.2 var(--serif); }
.pfl__t { margin-bottom: 14px; color: var(--grey); }
.pf__logo { display: block; width: min(320px, 70vw); margin: 18px auto 0; }
.pf__logo img { width: 100%; height: auto; filter: brightness(0) invert(1); }
.pf__ficha div { display: flex; gap: 20px; padding: 14px 0; border-top: 1px solid var(--line); }
.pf__ficha div:last-child { border-bottom: 1px solid var(--line); }
.pf__ficha dt { min-width: 140px; font: 400 .75rem/1.6 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--grey); }
.pf__gal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pf__gal .ph { aspect-ratio: 4 / 3; }
/* Recorrido de tecnología: que todo quepa en una pantalla */
.tech.is-journey .eyebrow { margin-bottom: 12px; font-size: clamp(2rem, 1.4rem + 1.6vw, 3rem); }
.tech.is-journey .pres__p--sm { max-width: 52em; font-size: 1.0625rem; line-height: 1.5; color: rgba(255, 255, 255, .85); }
.tech.is-journey .sp { margin-top: 28px; }
.tech.is-journey .sp__dev { max-width: 540px; }
.tech.is-journey .btns { margin-top: 20px; }
.tech.is-journey .tech__pin { padding-block: calc(var(--hh) + var(--tb) + 8px) 16px; }
/* v3.543 · Blog, artículo y aviso de cookies */
.bl{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px;margin:36px 0 0;padding:0;list-style:none}
.bl__i a{display:block;color:inherit;text-decoration:none}
.bl__i img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:4px;margin-bottom:14px}
.bl__m{font-size:13px;opacity:.7}
.bl__t{margin:6px 0 8px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:24px;line-height:1.2}
.bl__i:hover .bl__t{text-decoration:underline;text-underline-offset:4px}
.post__wrap{max-width:820px}
.post__crumb a{font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.post__m{opacity:.75;font-size:14px;margin:10px 0 24px}
.post__fig{margin:0 0 30px}.post__fig img{display:block;width:100%;height:auto;border-radius:4px}
.post__body{font-size:17px;line-height:1.75}
.post__body h2{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(24px,2.6vw,32px);line-height:1.2;margin:40px 0 12px}
.post__body h3{font-size:20px;margin:28px 0 8px}
.post__body img{max-width:100%;height:auto}
.post__body ul,.post__body ol{padding-left:22px}
.post__body table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}.post__body td,.post__body th{border:1px solid rgba(0,0,0,.12);padding:8px 10px}
.post__cta{margin:48px 0 0;padding:28px;border-radius:4px;background:#F3EFE4}
.ck{position:fixed;left:16px;right:16px;bottom:16px;z-index:999;max-width:640px;margin:0 auto;padding:18px 20px;border-radius:6px;background:#262c21;color:#f6f4ec;box-shadow:0 12px 40px rgba(0,0,0,.3);font-size:14px}
.ck a{color:#fcbf54}.ck__b{display:flex;gap:10px;justify-content:flex-end;margin:12px 0 0}
.legal h2{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(22px,2.2vw,28px);margin:34px 0 10px}
.legal p,.legal li{font-size:16px;line-height:1.7}.legal ul{padding-left:20px}
/* v4 · Portada (archivo 70) */
.pres__p--v4{font-size:clamp(28px,3.4vw,46px);line-height:1.18;max-width:24ch}
.pres__sub{max-width:60ch;margin:18px 0 26px;font-size:16px;line-height:1.6;opacity:.82}
.doors__l{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:26px 0 0;padding:0;list-style:none}
.door__a{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;color:#fff;text-decoration:none;border-radius:4px}
.door__ph{position:absolute;inset:0;margin:0}.door__ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.door__a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,20,30,.05) 30%,rgba(15,20,30,.78))}
.door__a:hover .door__ph img{transform:scale(1.06)}
.door__tx{position:absolute;inset:auto 0 0 0;z-index:1;display:flex;flex-direction:column;gap:10px;padding:26px}
.door__t{font-family:'DM Serif Display',Georgia,serif;font-size:clamp(26px,2.4vw,34px);line-height:1.1}
.door__p{font-size:15px;line-height:1.55;opacity:.9}.door__l{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#fcbf54}
@media(max-width:860px){.doors__l{grid-template-columns:1fr}.door__a{aspect-ratio:16/10}}
.tech-s{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(24px,4vw,64px);align-items:center}
.tech-s__ph{position:relative;margin:0}.tech-s__d{display:block;width:100%;height:auto;border-radius:6px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.tech-s__m{position:absolute;right:-4%;bottom:-10%;width:24%;height:auto;border-radius:14px;box-shadow:0 20px 40px rgba(0,0,0,.4)}
.tech-s__h{font-family:'DM Serif Display',Georgia,serif;font-size:clamp(30px,3vw,44px);line-height:1.1;margin:8px 0 18px}
.tech-s__l{margin:0 0 22px;padding:0;list-style:none}.tech-s__l li{padding:10px 0;border-top:1px solid rgba(255,255,255,.14);font-size:15px}
@media(max-width:860px){.tech-s{grid-template-columns:1fr}.tech-s__m{width:28%}}
.tech--short{padding-bottom:clamp(56px,7vw,96px)}
.seals-band{padding:clamp(28px,4vw,44px) 0}.seals-band__in{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.cities__l{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:26px 0 12px;padding:0;list-style:none}
.city__a{display:block;color:inherit;text-decoration:none}
.city__m{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:#31382b}
.city__v,.city__ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.city__ph{background:linear-gradient(135deg,#31382b,#1d2433)}
.city__m::after{content:"";position:absolute;inset:0;background:rgba(10,12,20,.3);transition:background .4s}
.city__a:hover .city__m::after{background:rgba(10,12,20,.12)}
.city__n{position:absolute;inset:0;z-index:1;display:grid;place-items:center;color:#fff;font-family:'DM Serif Display',Georgia,serif;font-size:clamp(32px,3.2vw,48px)}
.city__d{display:block;margin-top:12px;font-size:15px}
.cities__x{font-size:14px;opacity:.7}
@media(max-width:860px){.cities__l{grid-template-columns:1fr}}
/* Sin hueco oscuro bajo la llamada final */
.end{margin-bottom:0}.end+.ft{margin-top:0}
/* v4 · Inversores: documento de inversión con índice numerado */
.inv{display:grid;grid-template-columns:220px minmax(0,1fr);gap:clamp(24px,4vw,72px);max-width:1240px;margin:0 auto;padding:clamp(48px,6vw,90px) clamp(18px,4vw,40px);background:#F3EFE4}
.pg-inv main{background:#F3EFE4}
.inv-idx ol{position:sticky;top:110px;margin:0;padding:0;list-style:none;border-left:1px solid rgba(49,56,43,.18)}
.inv-idx a{display:flex;gap:10px;padding:9px 0 9px 16px;margin-left:-1px;border-left:2px solid transparent;color:#31382b;text-decoration:none;font-size:14px;opacity:.7}
.inv-idx a span{font-family:'Barlow Condensed',sans-serif;opacity:.8}
.inv-idx a.on{opacity:1;border-left-color:#fcbf54;font-weight:600}
.inv-s{padding:0 0 clamp(48px,6vw,84px);margin:0 0 clamp(48px,6vw,84px);border-bottom:1px solid rgba(49,56,43,.16);scroll-margin-top:110px}
.inv-s:last-child{border-bottom:0;margin-bottom:0}
.inv-n{margin:0;font-family:'Barlow Condensed',sans-serif;font-weight:300;font-size:clamp(48px,6vw,84px);line-height:1;color:#fcbf54}
.inv-h{margin:6px 0 26px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(28px,3vw,42px);line-height:1.12;color:#31382b}
.inv-n--l,.inv-h--l{color:inherit}.inv-n--l{color:#fcbf54}
.inv-tw{overflow-x:auto}
.inv-t{width:100%;border-collapse:collapse;font-size:15px;color:#31382b}
.inv-t th,.inv-t td{padding:16px 14px;text-align:left;vertical-align:top;border-top:1px solid rgba(49,56,43,.16)}
.inv-t thead th{font-size:12px;letter-spacing:.12em;text-transform:uppercase;border-top:0;opacity:.7}
.inv-t tbody th{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:19px;width:30%}
.inv-t--2 tbody th{font-family:'Poppins',sans-serif;font-size:14px;letter-spacing:.06em;text-transform:uppercase;width:28%}
.inv-note{margin:18px 0 0;font-size:14px;opacity:.75}
.inv-c{display:grid;grid-template-columns:1fr 1fr;gap:14px 40px;margin:0;padding:0;list-style:none;counter-reset:c;color:#31382b}
.inv-c li{position:relative;padding:12px 0 12px 54px;border-top:1px solid rgba(49,56,43,.16);font-size:16px;line-height:1.5}
.inv-c li::before{counter-increment:c;content:counter(c);position:absolute;left:0;top:6px;font-family:'Barlow Condensed',sans-serif;font-size:36px;line-height:1;color:#fcbf54}
@media(max-width:760px){.inv-c{grid-template-columns:1fr}}
.inv-tl{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0;padding:0;list-style:none;color:#31382b}
.inv-ph{position:relative;padding:34px 22px 0 0;border-top:2px solid #31382b}
.inv-ph::before{content:"";position:absolute;top:-8px;left:0;width:14px;height:14px;border-radius:50%;background:#fcbf54}
.inv-ph__t{margin:0 0 14px;font-family:'DM Serif Display',Georgia,serif;font-size:21px}
.inv-ph dt{margin-top:10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.6}.inv-ph dd{margin:2px 0 0;font-size:14.5px;line-height:1.5}
.inv-ph__r{font-weight:600}
@media(max-width:860px){.inv-tl{grid-template-columns:1fr;gap:26px}.inv-ph{border-top:0;border-left:2px solid #31382b;padding:0 0 0 24px}.inv-ph::before{top:0;left:-8px}}
.inv-sp{padding-bottom:clamp(56px,7vw,96px)}.inv-sp .sp{margin-bottom:28px}
.inv-demo{display:inline-block;margin:0 0 18px;padding:4px 12px;border:1px solid rgba(255,255,255,.3);border-radius:999px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.inv-res{background:#31382b;color:#f6f4ec;padding:22px 0}.inv-res__in{display:flex;flex-wrap:wrap;gap:12px 40px;align-items:center;justify-content:space-between;font-size:15px}
.inv-res a{color:#fcbf54}
.inv-two{display:grid;grid-template-columns:1fr 1fr;gap:28px;color:#31382b}.inv-two h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:22px;margin:0 0 12px}
@media(max-width:760px){.inv-two{grid-template-columns:1fr}}
.inv .faq__list{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
@media(max-width:860px){.inv .faq__list{grid-template-columns:1fr}}
@media(max-width:960px){.inv{grid-template-columns:1fr;padding-top:0}.inv-idx{position:sticky;top:64px;z-index:5;margin:0 -18px;background:#F3EFE4;border-bottom:1px solid rgba(49,56,43,.16)}.inv-idx ol{position:static;display:flex;overflow-x:auto;border:0;scrollbar-width:none}.inv-idx a{white-space:nowrap;border-left:0;border-bottom:2px solid transparent;padding:12px 12px}.inv-idx a.on{border-bottom-color:#fcbf54}.inv-idx--sp{display:none}}
/* v4 · Apartamentos turísticos: «Un día en el edificio» */
.day__l{margin:28px 0 0;padding:0;list-style:none;position:relative}
.day__l::before{content:"";position:absolute;left:94px;top:0;bottom:0;width:1px;background:rgba(49,56,43,.2)}
.day__i{display:grid;grid-template-columns:120px 1fr;gap:clamp(18px,3vw,40px);padding:0 0 clamp(36px,5vw,64px)}
.day__h{position:sticky;top:120px;align-self:start;margin:0;font-family:'Barlow Condensed',sans-serif;font-weight:300;font-size:clamp(34px,3.6vw,52px);line-height:1;color:#31382b}
.day__b{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(18px,3vw,40px);align-items:center}
.day__ph{margin:0;aspect-ratio:3/2;overflow:hidden;border-radius:4px;background:#e8e3d6}.day__ph img{width:100%;height:100%;object-fit:cover}
.day__tx h3{margin:0 0 8px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(24px,2.2vw,30px)}
.day__tx p{margin:0;font-size:16px;line-height:1.6}
@media(max-width:860px){.day__l::before{display:none}.day__i{grid-template-columns:1fr;gap:10px}.day__h{position:static}.day__b{grid-template-columns:1fr}}
.items--3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}@media(max-width:860px){.items--3{grid-template-columns:1fr}}
/* Casos (Aurora, Ópera) */
.case__in{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,4vw,64px);align-items:center}
.case__ph{display:grid;grid-template-columns:1fr 1fr;gap:10px}.case__ph figure{margin:0;aspect-ratio:3/4;overflow:hidden;border-radius:4px}.case__ph img{width:100%;height:100%;object-fit:cover}
.case__ph--3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}.case__ph--3 figure:first-child{grid-row:span 2;aspect-ratio:auto}.case__ph--3 figure{aspect-ratio:4/3}
.case__h{margin:6px 0 16px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(34px,3.4vw,52px)}
.case__n{display:flex;gap:36px;margin:0 0 4px}.case__n span{display:flex;flex-direction:column;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.case__n b{font-family:'Barlow Condensed',sans-serif;font-weight:300;font-size:clamp(52px,6vw,84px);line-height:1;color:#c9962a;letter-spacing:0}
.case__nn{margin:0 0 18px;font-size:13px;opacity:.7}
@media(max-width:860px){.case__in{grid-template-columns:1fr}}
.inv-link{border-top:1px solid rgba(49,56,43,.14);border-bottom:1px solid rgba(49,56,43,.14)}
.inv-link a{display:flex;justify-content:space-between;gap:18px;padding:22px 0;color:#31382b;text-decoration:none;font-size:16px}.inv-link a span{color:#c9962a;white-space:nowrap}
/* Hoteles: tres formas y servicio limitado */
.three__l{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:28px 0 0;padding:0;list-style:none;border:1px solid rgba(49,56,43,.16)}
.three__c{padding:0 0 26px;border-right:1px solid rgba(49,56,43,.16)}.three__c:last-child{border-right:0}
.three__c--on{box-shadow:inset 0 4px 0 #fcbf54}
.three__ph{margin:0;aspect-ratio:16/10;overflow:hidden}.three__ph img{width:100%;height:100%;object-fit:cover}
.three__t{margin:22px 24px 10px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:28px}
.three__c dl{margin:0 24px}.three__c dt{margin-top:14px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.6}.three__c dd{margin:3px 0 0;font-size:15px;line-height:1.5}
@media(max-width:860px){.three__l{grid-template-columns:1fr}.three__c{border-right:0;border-bottom:1px solid rgba(49,56,43,.16)}}
.ls__l{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:28px 0 0;padding:0;list-style:none}
.ls__l li{display:flex;flex-direction:column;gap:10px;font-size:15px}.ls__l svg{width:32px;height:32px;fill:none;stroke:#fcbf54;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:760px){.ls__l{grid-template-columns:1fr 1fr}}
.case__k{margin:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#c9962a;font-weight:600}
/* v4 · Reconversión: línea de tiempo horizontal que avanza con el scroll */
.hz{position:relative;padding:clamp(48px,6vw,90px) 0}
.hz__head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}
.hz__bar{flex:1;max-width:340px;height:2px;background:rgba(49,56,43,.15)}.hz__bar span{display:block;height:100%;width:calc(var(--hz,0)*100%);background:#fcbf54}
.hz__l{display:flex;gap:28px;margin:0;padding:0 max(18px,calc((100vw - 1240px)/2 + 40px));list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.hz__l::-webkit-scrollbar{display:none}
.hz__i{flex:0 0 min(420px,78vw);scroll-snap-align:start;color:#31382b}
.hz__ph{margin:0 0 18px;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:#e8e3d6}.hz__ph img{width:100%;height:100%;object-fit:cover}
.hz__n{margin:0;font-family:'Barlow Condensed',sans-serif;font-weight:300;font-size:48px;line-height:1;color:#fcbf54}
.hz__t{margin:4px 0 8px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:26px}
.hz__i p{font-size:15px;line-height:1.6}
.hz.is-on{padding:0}.hz.is-on .hz__pin{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.hz.is-on .hz__l{overflow:visible;transform:translateX(var(--hzx,0px));will-change:transform;scroll-snap-type:none}
/* Portfolio: muro de marcas */
.muro__f{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px}
.muro__b{padding:9px 16px;border:1px solid rgba(49,56,43,.25);border-radius:999px;background:none;font:inherit;font-size:14px;color:#31382b;cursor:pointer}
.muro__b.on{background:#31382b;color:#fff;border-color:#31382b}
.muro__l{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0;padding:0;list-style:none}
.muro__a{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:#1d2433;color:#fff;text-decoration:none}
.muro__ph{position:absolute;inset:0}.muro__ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.muro__a::after{content:"";position:absolute;inset:0;background:rgba(12,15,24,.5);transition:background .4s}
.muro__i--np .muro__a::after{background:none}
.muro__a:hover::after{background:rgba(12,15,24,.28)}.muro__a:hover .muro__ph img{transform:scale(1.05)}
.muro__lg{position:absolute;inset:0;z-index:1;display:grid;place-items:center;padding:16% 18%}.muro__lg img,.muro__lg svg{max-width:100%;max-height:64px;width:auto;height:auto}
.muro__d{position:absolute;left:16px;right:16px;bottom:14px;z-index:1;display:flex;justify-content:space-between;gap:10px;font-size:12.5px;opacity:0;transform:translateY(6px);transition:.35s}
.muro__a:hover .muro__d,.muro__a:focus-visible .muro__d{opacity:1;transform:none}
.muro__new{position:absolute;top:14px;left:14px;z-index:1;padding:4px 10px;border-radius:999px;background:#fcbf54;color:#1d2433;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:900px){.muro__l{grid-template-columns:1fr 1fr}}@media(max-width:560px){.muro__l{grid-template-columns:1fr}.muro__d{opacity:1;transform:none}}
/* Ficha de edificio */
.hv--night{background:#1d2433}
.pf-ty{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin:24px 0 0;padding:0;list-style:none}
.pf-ty a{display:block;color:#31382b;text-decoration:none}.pf-ty img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:4px}.pf-ty span{display:block;margin-top:8px;font-size:15px}
.pf-gal{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.pf-gal figure{margin:0;aspect-ratio:3/2;overflow:hidden;border-radius:4px}.pf-gal img{width:100%;height:100%;object-fit:cover}
@media(max-width:760px){.pf-gal{grid-template-columns:1fr 1fr}}
.muro__lg{padding:12% 14%}.muro__lg img,.muro__lg svg{width:72%;max-width:300px;max-height:110px;object-fit:contain}
.muro__a::after{background:rgba(12,15,24,.55)}
/* v4 · Quiénes somos: «Lo que nos define» */
.def__l{margin:28px 0 0;padding:0;list-style:none}
.def__i{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,5vw,80px);align-items:center;padding:clamp(28px,4vw,56px) 0;border-top:1px solid rgba(49,56,43,.14)}
.def__i--r .def__ph{order:2}
.def__ph{margin:0;aspect-ratio:3/2;overflow:hidden;border-radius:4px;background:#e8e3d6}.def__ph img{width:100%;height:100%;object-fit:cover}
.def__n{margin:0;font-family:'Barlow Condensed',sans-serif;font-weight:300;font-size:clamp(56px,6vw,96px);line-height:1;color:#fcbf54}
.def__tx h3{margin:4px 0 12px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(28px,3vw,44px);line-height:1.1}
.def__tx p{font-size:17px;line-height:1.6;max-width:44ch}
.def__x{margin:18px 0 0;padding-top:22px;border-top:1px solid rgba(49,56,43,.14);font-size:15px;opacity:.8}
@media(max-width:860px){.def__i{grid-template-columns:1fr}.def__i--r .def__ph{order:0}}
/* Ciudades: mapa, mercado y casos */
.cmap{height:clamp(320px,52vw,520px);border-radius:6px;overflow:hidden;background:#e8e3d6;margin-top:22px}
.mk{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0 0;padding:0;list-style:none}
.mk li{padding:24px;border:1px solid rgba(49,56,43,.16);border-radius:4px}.mk h3{margin:0 0 8px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:24px}.mk p{margin:0;font-size:15px;line-height:1.55}
@media(max-width:860px){.mk{grid-template-columns:1fr}}
.cc{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:24px 0 0;padding:0;list-style:none}
.cc a{display:block;color:#31382b;text-decoration:none}.cc figure{margin:0 0 12px;aspect-ratio:16/10;overflow:hidden;border-radius:4px}.cc img{width:100%;height:100%;object-fit:cover;transition:transform 1s}.cc a:hover img{transform:scale(1.04)}
.cc h3{margin:0 0 4px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:24px}.cc p{margin:0;font-size:15px}
@media(max-width:700px){.cc{grid-template-columns:1fr}}
.def__tx .def__n{margin:0;font-size:clamp(56px,6vw,96px);line-height:1;color:#fcbf54}
/* v4 · Análisis: informe en abanico, pasos */
.fan__tag{display:inline-block;margin:0 0 20px;padding:4px 12px;border:1px solid rgba(49,56,43,.3);border-radius:999px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.fan__l{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:20px 0 0;padding:0 0 30px;list-style:none}
.fan__p{position:relative;transition:transform 1s cubic-bezier(.16,1,.3,1)}.fan__p img{display:block;width:100%;height:auto;border-radius:3px;box-shadow:0 18px 40px rgba(20,24,18,.18);background:#fff}
.fan__p span{display:block;margin-top:12px;font-size:13px;text-align:center;opacity:.75}
.fan__p--0{transform:translateX(18%) rotate(-5deg)}.fan__p--1{z-index:1;transform:translateY(-10px)}.fan__p--2{transform:translateX(-18%) rotate(5deg)}
.fan.is-in .fan__p--0{transform:translateX(-4%) rotate(-2deg)}.fan.is-in .fan__p--2{transform:translateX(4%) rotate(2deg)}.fan.is-in .fan__p--1{transform:none}
.fan__l{column-gap:22px}
@media(max-width:760px){.fan__l{grid-template-columns:1fr;row-gap:24px}.fan__p--0,.fan__p--1,.fan__p--2{transform:none!important}}
.st3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:24px 0 0;padding:0;list-style:none}
.st3 li{position:relative;padding-top:20px;border-top:2px solid #31382b}.st3__n{font-family:'Barlow Condensed',sans-serif;font-size:42px;line-height:1;color:#fcbf54}
.st3 h3{margin:8px 0 6px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:24px}.st3 p{margin:0;font-size:15px}
.st3__x{margin:26px 0 0;font-size:14px;opacity:.75;max-width:70ch}
@media(max-width:760px){.st3{grid-template-columns:1fr}}
/* Contacto: pestañas */
.ctabs{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 22px;border-bottom:1px solid rgba(49,56,43,.18)}
.ctab{padding:12px 16px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;font:inherit;font-size:15px;color:#31382b;cursor:pointer;opacity:.7}
.ctab[aria-selected="true"]{opacity:1;border-bottom-color:#fcbf54;font-weight:600}
/* Listas con check ámbar, gestión integral */
.chk{margin:14px 0 26px;padding:0;list-style:none}.chk li{position:relative;padding:9px 0 9px 30px;border-top:1px solid rgba(49,56,43,.12);font-size:16px}
.chk li::before{content:"";position:absolute;left:2px;top:13px;width:14px;height:8px;border-left:2px solid #c9962a;border-bottom:2px solid #c9962a;transform:rotate(-45deg)}
.gg{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 48px;margin-top:22px}.gg h3{margin:0;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:24px}
@media(max-width:760px){.gg{grid-template-columns:1fr}}
.ga{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0 0;padding:0;list-style:none}
.ga a{display:flex;justify-content:space-between;padding:24px;border:1px solid rgba(49,56,43,.18);border-radius:4px;color:#31382b;text-decoration:none;font-family:'DM Serif Display',Georgia,serif;font-size:22px}.ga a:hover{border-color:#c9962a}.ga span{color:#c9962a}
@media(max-width:760px){.ga{grid-template-columns:1fr}}
.inv-doc{min-width:0}.inv{overflow-x:clip}@media(max-width:960px){.inv{grid-template-columns:minmax(0,1fr)}}
/* v4 · Vídeo de cabecera de la portada (archivo 79). Capa medida fotograma a fotograma: en los planos más claros
   (habitaciones blancas) hace falta ~52 % de oscuro en la zona del logo y del H1 para 4,5:1 con texto blanco */
.hvv{position:absolute;inset:0;z-index:-2}
.hvv__po img,.hvv__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hvv__v{opacity:0;transition:opacity .6s ease}.hvv__v.is-on{opacity:1}
.pg-home .hero::after{background:linear-gradient(180deg,rgba(10,10,22,.60) 0%,rgba(10,10,22,.52) 30%,rgba(10,10,22,.52) 55%,rgba(10,10,22,.58) 72%,rgba(10,10,22,.68) 100%)}
.pg-home .hero .lg,.pg-home .hero__h1{text-shadow:0 1px 18px rgba(10,10,22,.45)}
.pg-home .hero .lg img,.pg-home .hero .lg svg{filter:drop-shadow(0 2px 14px rgba(10,10,22,.4))}
.pg-home .sl__ui{display:none}
/* v4.2 · Portada · «Nuestros edificios»: título más grande, entrada más pequeña, pestañas más grandes, logos con zoom (sin cuadro amarillo) */
.bld .eyebrow{font-size:clamp(3rem,2rem + 4vw,6rem);line-height:1}
.bld__lead{font-size:clamp(1.0625rem,.95rem + .45vw,1.375rem);line-height:1.5;max-width:46em}
.bld .tabs{gap:6px 40px;margin-top:44px}
.bld .tabs__t{font-size:clamp(1rem,.85rem + .45vw,1.3rem);letter-spacing:.14em;padding:18px 0 10px}
.bld .bl__i a{border:0;background:none;overflow:visible}
.bld .bl__i a:hover,.bld .bl__i a:focus-visible{border:0;background:none}
.bld .bl__i img{aspect-ratio:auto;object-fit:contain;border-radius:0;margin:0;transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .3s;opacity:.85}
.bld .bl__i a:hover img,.bld .bl__i a:focus-visible img{transform:scale(1.12);opacity:1}
.bld .bl__i a:focus-visible{outline:2px solid var(--y);outline-offset:6px}
/* Distintivos centrados */
.seals{justify-items:center;text-align:center}.seals__i{display:flex;flex-direction:column;align-items:center;max-width:34ch}.seals__i img{margin-inline:auto}
/* «Dónde operamos»: tres cajas a ancho completo separadas por una línea negra fina */
.cities__l{width:100vw;margin-left:calc(50% - 50vw);gap:1px;background:#0b0d14}
.cities .city{background:var(--white,#fff)}
.cities .city__m{border-radius:0;aspect-ratio:4/3.4}
.cities .city__d{padding:16px clamp(18px,2.4vw,32px) 22px;margin:0}
@media(max-width:860px){.cities__l{grid-template-columns:1fr}}
/* Apartamentos turísticos · «Lo que hacemos» con iconos */
.wd__l{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:34px 0 0;padding:0;list-style:none;border-top:1px solid rgba(49,56,43,.16);border-left:1px solid rgba(49,56,43,.16)}
.wd__i{position:relative;padding:34px 30px 36px;border-right:1px solid rgba(49,56,43,.16);border-bottom:1px solid rgba(49,56,43,.16);transition:background .35s}
.wd__i:hover{background:#F7F6E7}
.wd__ic{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#31382b;margin-bottom:22px;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.wd__i:hover .wd__ic{transform:translateY(-4px)}
.wd__ic svg{width:26px;height:26px;fill:none;stroke:#fcbf54;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.wd__n{position:absolute;top:30px;right:28px;font-family:'Barlow Condensed',sans-serif;font-weight:300;font-size:34px;line-height:1;color:rgba(49,56,43,.22)}
.wd__t{margin:0 0 10px;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(22px,1.8vw,27px);line-height:1.15}
.wd__i p{margin:0;font-size:15.5px;line-height:1.6}
@media(max-width:960px){.wd__l{grid-template-columns:1fr 1fr}}@media(max-width:600px){.wd__l{grid-template-columns:1fr}}
/* «Un día en el edificio», compacto: tarjetas en fila con hora y foto pequeña */
.day--c .day__l{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 0 18px;scrollbar-width:thin}
.day--c .day__l::before{display:none}
.day--c .day__i{flex:0 0 clamp(220px,22vw,270px);display:block;padding:0;scroll-snap-align:start;border-top:2px solid #31382b}
.day--c .day__h{position:static;margin:14px 0 10px;font-size:30px}
.day--c .day__b{display:block}
.day--c .day__ph{aspect-ratio:4/3;margin-bottom:12px}
.day--c .day__tx h3{font-size:19px;margin-bottom:6px}.day--c .day__tx p{font-size:14px;line-height:1.5}
/* ============ v5 · Capa editorial para toda la www: titulares grandes, aspecto elegante y ejecutivo ============ */
:root{--sec:clamp(80px,9vw,150px)}
.sec .eyebrow,.inv-h,.case__h{font-style:normal;font-weight:400;letter-spacing:-.01em}
.sec .eyebrow{position:relative;font-size:clamp(2.5rem,1.5rem + 3.6vw,5rem);line-height:1.04;max-width:16ch;padding-top:26px;margin-bottom:clamp(34px,4.5vw,64px);text-wrap:balance}
.sec .eyebrow::before{content:"";position:absolute;top:0;left:0;width:56px;height:2px;background:var(--y)}
.seals-band .eyebrow,.seals-band .eyebrow::before{max-width:none}
.seals-band .eyebrow{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.4rem);padding-top:0}.seals-band .eyebrow::before{display:none}
.hv__h{font-size:clamp(2.75rem,1.5rem + 4.8vw,6rem);line-height:1.02;letter-spacing:-.015em}
.hv__p{font-size:clamp(1.05rem,.95rem + .45vw,1.35rem);line-height:1.6;max-width:52ch;margin-inline:auto}
/* Secciones de texto: titular a la izquierda y contenido a la derecha (escritorio) */
@media(min-width:1000px){
.sec>.col:has(>h2.eyebrow:first-child):not(:has(form,.faq__list,.chk,.st3,.items,.mk,.cc,.ls__l,.seals,.cmap,.muro)),
.sec.faq>.col,.sec.faq>.wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(40px,6vw,110px);align-items:start;width:min(1240px,100% - 2*var(--g))}
.sec>.col:has(>h2.eyebrow:first-child):not(:has(form,.faq__list,.chk,.st3,.items,.mk,.cc,.ls__l,.seals,.cmap,.muro))>h2.eyebrow,
.sec.faq>.col>h2.eyebrow,.sec.faq>.wrap>h2.eyebrow{grid-column:1;grid-row:1 / span 30;position:sticky;top:120px;margin-bottom:0}
.sec>.col:has(>h2.eyebrow:first-child):not(:has(form,.faq__list,.chk,.st3,.items,.mk,.cc,.ls__l,.seals,.cmap,.muro))>*:not(h2),
.sec.faq>.col>*:not(h2),.sec.faq>.wrap>*:not(h2){grid-column:2}
}
.sec .col>p:not(.btns):not(.mut),.lead{font-size:clamp(1.125rem,1rem + .5vw,1.5rem);line-height:1.55}
.pres__p--sm{font-size:clamp(1.35rem,1.1rem + 1vw,2rem);line-height:1.35}
/* Listas genéricas como fichas */
.items{counter-reset:it;gap:0;border-top:1px solid var(--line)}
.item{position:relative;padding:30px 28px 32px 0;border-top:0;border-bottom:1px solid var(--line)}
.item::before{counter-increment:it;content:counter(it,decimal-leading-zero);display:block;margin-bottom:14px;font-family:'Barlow Condensed',sans-serif;font-weight:300;font-size:30px;line-height:1;color:var(--y)}
.item__t{font-size:clamp(1.3rem,1.1rem + .5vw,1.6rem)}
/* Preguntas frecuentes */
.faq__i summary{font-family:var(--serif);font-size:clamp(1.15rem,1rem + .4vw,1.4rem);padding-block:22px}
/* Llamada final más rotunda */
.end__h{font-size:clamp(2.6rem,1.6rem + 3.6vw,5rem);line-height:1.05}
.hz .eyebrow{position:relative;font-style:normal;font-size:clamp(2.5rem,1.5rem + 3.6vw,5rem);line-height:1.04;padding-top:26px;margin:0}
.hz .eyebrow::before{content:"";position:absolute;top:0;left:0;width:56px;height:2px;background:var(--y)}
.hz__head{align-items:flex-end}
/* v5 · «¿Qué activo tiene?» a ancho completo, separación mínima, tipografía mayor y texto bien anclado */
.doors--full .doors__l{width:100vw;margin-left:calc(50% - 50vw);gap:3px;margin-top:clamp(28px,3vw,44px)}
.doors--full .door__a{border-radius:0;aspect-ratio:auto;height:clamp(560px,46vw,780px)}
.doors--full .door__a::after{background:linear-gradient(180deg,rgba(12,14,22,.05) 0%,rgba(12,14,22,.1) 38%,rgba(12,14,22,.78) 78%,rgba(12,14,22,.9) 100%)}
.doors--full .door__tx{display:grid;grid-template-rows:auto minmax(4.8em,auto) auto;gap:14px;padding:clamp(26px,3vw,48px)}
.doors--full .door__t{font-size:clamp(2.2rem,1.4rem + 2.6vw,3.75rem);line-height:1.02;letter-spacing:-.01em}
.doors--full .door__p{font-size:clamp(1rem,.92rem + .3vw,1.2rem);line-height:1.55;max-width:34ch;opacity:.92;align-self:start}
.doors--full .door__l{font-size:13px;letter-spacing:.14em;padding-top:14px;border-top:1px solid rgba(255,255,255,.28);display:flex;justify-content:space-between;align-items:center}
.doors--full .door__a:hover .door__l{color:#fff}
@media(max-width:860px){.doors--full .doors__l{gap:2px}.doors--full .door__a{height:auto;aspect-ratio:4/5}}
.doors--full .door__t{min-height:2.04em;display:flex;align-items:flex-end}.doors--full .door__tx{grid-template-rows:auto auto auto}@media(max-width:860px){.doors--full .door__t{min-height:0}}
.doors--full .door__p{min-height:6.25em}@media(max-width:860px){.doors--full .door__p{min-height:0}}
/* v5.1 · «Un día en el edificio»: escena animada (foto que se funde, hora grande, barra de tiempo), sin scroll lateral */
.day2__in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,4vw,72px);align-items:stretch;margin-top:8px}
.day2__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#151821}
.day2__f{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.06);transition:opacity 1.1s ease,transform 6.5s ease-out}
.day2__f.on{opacity:1;transform:scale(1)}
.day2__f img{width:100%;height:100%;object-fit:cover;border-radius:0;aspect-ratio:auto}
.day2__tx{display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.day2__card{position:relative;min-height:300px}
.day2__a{position:absolute;inset:0;opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease;pointer-events:none}
.day2__a.on{opacity:1;transform:none;pointer-events:auto}
.day2__big{margin:0 0 10px;font-family:'Barlow Condensed',sans-serif;font-weight:200;font-size:clamp(4.5rem,3rem + 5vw,8.5rem);line-height:.9;color:var(--y)}
.day2__a h3{margin:0 0 12px;font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,1.3rem + 1.5vw,2.75rem);line-height:1.1;color:#fff}
.day2__a p:last-child{margin:0;font-size:clamp(1.02rem,.95rem + .3vw,1.2rem);line-height:1.6;color:rgba(255,255,255,.82);max-width:36ch}
.day2__nav{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:0;padding:0;list-style:none}
.day2__b{display:flex;flex-direction:column;gap:8px;width:100%;padding:0;border:0;background:none;color:rgba(255,255,255,.5);font:400 .95rem/1 'Barlow Condensed',sans-serif;letter-spacing:.06em;text-align:left;cursor:pointer;transition:color .3s}
.day2__b:hover,.day2__b.on{color:#fff}
.day2__bar{display:block;height:2px;background:rgba(255,255,255,.18);overflow:hidden}
.day2__bar i{display:block;height:100%;width:0;background:var(--y)}
.day2__b.done .day2__bar i{width:100%}
.day2__b.on .day2__bar i{animation:day2fill var(--d2,6s) linear forwards}
.day2.is-paused .day2__b.on .day2__bar i,.day2:not(.is-run) .day2__b.on .day2__bar i{animation-play-state:paused}
@keyframes day2fill{to{width:100%}}
@media(max-width:960px){.day2__in{grid-template-columns:1fr}.day2__card{min-height:240px}.day2__nav{grid-template-columns:repeat(4,1fr);row-gap:16px}}
@media(prefers-reduced-motion:reduce){.day2__f,.day2__a{transition:none}.day2__b.on .day2__bar i{animation:none;width:100%}}
/* Casos (Aurora, Ópera, The Madrid Studios): foto grande con una segunda superpuesta, sin bloque oscuro */
.case__ph{aspect-ratio:auto;background:none;overflow:visible;margin:0;display:block;position:relative;padding:0 0 12% 0}
.case__ph figure{margin:0;border-radius:0;overflow:hidden;aspect-ratio:4/5;width:78%}
.case__ph figure:nth-child(2){position:absolute;right:0;bottom:0;width:46%;aspect-ratio:1/1;border:8px solid #fff;box-shadow:0 18px 40px rgba(12,14,22,.18)}
.case__ph figure:nth-child(3){display:none}
.case__ph--3{display:block}
.sec--cream .case__ph figure:nth-child(2){border-color:#F7F6E7}
.case__n{gap:clamp(28px,4vw,56px);margin:10px 0 6px}
.case__n span{font-size:12px;letter-spacing:.16em;color:#31382b}
.case__n b{font-size:clamp(4rem,2.8rem + 4vw,7rem);font-weight:200;color:#c9962a}
.case__h{font-size:clamp(2.8rem,1.8rem + 3vw,4.75rem);line-height:1.02}
.case__tx>p:not(.case__k):not(.case__n):not(.case__nn){font-size:clamp(1.05rem,.98rem + .3vw,1.2rem);line-height:1.65}
@media(max-width:860px){.case__ph{padding-bottom:18%}.case__ph figure{width:84%}}
/* «Dónde operamos»: textos de debajo bien legibles y nombres de ciudad con más contraste */
.cities .city__d{font-family:var(--serif);font-size:clamp(1.15rem,1rem + .45vw,1.45rem);line-height:1.35;color:#0b0d14;opacity:1;padding-top:20px;padding-bottom:26px}
.cities .city__n{text-shadow:0 2px 24px rgba(0,0,0,.45);font-size:clamp(2.6rem,2rem + 2.4vw,4.25rem)}
.cities .city__m::after{background:rgba(10,12,20,.38)}
.cities__x{width:min(1240px,100% - 2*var(--g));margin:22px auto 0;font-size:15px}
/* ============ v5.2 · Estilo Highgate con los colores de TCC (páginas .pg-dark) ============ */
.pg-dark main{background:#1d2433;color:rgba(255,255,255,.82)}
.pg-dark .sec{background:#1d2433;color:rgba(255,255,255,.82)}
.hgw{width:min(1240px,100% - 2*var(--g));margin-inline:auto}
.hgi,.hgs{padding-block:clamp(90px,10vw,190px);border-top:1px solid rgba(255,255,255,.12)}
.hgi:first-of-type{border-top:0}
.hgi__s{max-width:30ch;margin:0;font:400 clamp(1.75rem,1.2rem + 2vw,3.1rem)/1.28 var(--serif);color:#fff;text-wrap:pretty}
.hgi__s em{font-style:italic}.hgi__s strong{font-weight:400;color:var(--y)}
.hgi__s--sm{font-size:clamp(1.4rem,1.1rem + 1.1vw,2.1rem);max-width:34ch}
.hgk{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,64px);margin:clamp(56px,7vw,110px) 0 0;padding:0;list-style:none}
.hgk li{padding-top:22px;border-top:1px solid rgba(255,255,255,.2)}
.hgk b{display:block;font:200 clamp(3.4rem,2.4rem + 4vw,6.5rem)/.9 'Barlow Condensed',sans-serif;color:#fff;letter-spacing:-.01em}
.hgk span{display:block;margin-top:14px;max-width:24ch;font-size:15px;line-height:1.5;color:rgba(255,255,255,.7)}
.hgl{margin:0 0 clamp(28px,3vw,44px);font:600 12px/1.4 var(--sans,inherit);letter-spacing:.22em;text-transform:uppercase;color:var(--y)}
.hgh{margin:0 0 22px;font:400 clamp(2.8rem,1.8rem + 3.4vw,5.2rem)/1 var(--serif);color:#fff;letter-spacing:-.01em}
.hga{position:relative;display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:13px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.35)}
.hga::after{content:"→";transition:transform .18s ease}.hga:hover::after{transform:translateX(10px)}
.hgp{font-size:clamp(1.05rem,.98rem + .3vw,1.2rem);line-height:1.65;max-width:52ch}
/* Etapas: filas grandes en condensada que se despliegan; foto fija a la derecha que cambia */
.svc{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(30px,5vw,90px);align-items:start}
.svc__l{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.14)}
.svc__i{border-bottom:1px solid rgba(255,255,255,.14);transition:background .3s}
.svc__i:hover,.svc__i.on{background:rgba(128,128,128,.12)}
.svc__b{display:grid;grid-template-columns:64px 1fr 28px;align-items:center;gap:12px;width:100%;padding:22px 18px;border:0;background:none;color:rgba(255,255,255,.55);text-align:left;cursor:pointer;transition:color .3s}
.svc__i.on .svc__b,.svc__b:hover{color:#fff}
.svc__n{font:300 22px/1 'Barlow Condensed',sans-serif;color:var(--y)}
.svc__t{font:300 clamp(2rem,1.3rem + 2.6vw,3.8rem)/1 'Barlow Condensed',sans-serif;letter-spacing:.02em;text-transform:uppercase}
.svc__ar{width:22px;height:22px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg) scale(.6);transition:transform .3s,opacity .3s;opacity:.5}
.svc__i.on .svc__ar{transform:rotate(45deg) scale(.6);opacity:1}
.svc__d{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.16,1,.3,1)}
.svc__d>p{overflow:hidden;margin:0;padding:0 18px 0 94px;font-size:clamp(1.02rem,.96rem + .25vw,1.15rem);line-height:1.65;color:rgba(255,255,255,.78)}
.svc__i.on .svc__d{grid-template-rows:1fr}.svc__i.on .svc__d>p{padding-bottom:26px}
.svc__m{position:sticky;top:120px;aspect-ratio:4/5;overflow:hidden;background:#151821}
.svc__f{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.05);transition:opacity .8s ease,transform 5s ease-out}
.svc__f.on{opacity:1;transform:none}.svc__f img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto;border-radius:0;opacity:.88}
@media(max-width:960px){.svc{grid-template-columns:1fr}.svc__m{display:none}.svc__b{grid-template-columns:44px 1fr 24px;padding-inline:6px}.svc__d>p{padding-left:62px}}
/* Collage del caso, a sangre */
.hgc{padding-bottom:clamp(90px,10vw,170px);border-top:1px solid rgba(255,255,255,.12)}
.hgc__grid{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:4px}
.hgc__grid figure{position:relative;margin:0;overflow:hidden}
.hgc__grid img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto;border-radius:0;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.hgc__grid figure:hover img{transform:scale(1.04)}
.hgc__a{grid-row:span 2;min-height:clamp(420px,52vw,760px)}
.hgc__b,.hgc__c{min-height:clamp(200px,25.8vw,378px)}
.hgc__d{display:none}
.hgc__grid figcaption{position:absolute;left:18px;bottom:16px;font-size:12px;letter-spacing:.06em;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.6)}
.hgc__tx{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(30px,5vw,90px);padding-top:clamp(56px,6vw,100px)}
.hgc__tx>.hgl,.hgc__tx>.hgh{grid-column:1}
.hgc__tx>.hgi__s,.hgc__tx>.hgt,.hgc__tx>p:last-child{grid-column:2}
.hgc__tx>.hgl{grid-row:1}.hgc__tx>.hgh{grid-row:2}.hgc__tx>.hgi__s{grid-row:1 / span 2;align-self:end}
.hgt{margin:40px 0 34px;border-top:1px solid rgba(255,255,255,.14)}
.hgt>div{display:grid;grid-template-columns:minmax(120px,1fr) 3fr;gap:20px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.hgt dt{font:600 11px/1.6 inherit;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.hgt dd{margin:0;font-size:16px;line-height:1.6;color:rgba(255,255,255,.85)}
@media(max-width:860px){.hgc__grid{grid-template-columns:1fr}.hgc__a{grid-row:auto}.hgc__tx{grid-template-columns:1fr}.hgc__tx>*{grid-column:1!important;grid-row:auto!important}}
/* Secciones con etiqueta a la izquierda y contenido a la derecha, separadas por líneas */
.hgt2{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,80px);padding:clamp(40px,5vw,72px) 0;border-top:1px solid rgba(255,255,255,.14)}
.hgt2:first-child{border-top:0;padding-top:0}
.hgt2 .hgl{margin:8px 0 0}
.hgx{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin:0;padding:0;list-style:none}
.hgx li{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.14);font:300 clamp(1.4rem,1.1rem + 1vw,2rem)/1.15 'Barlow Condensed',sans-serif;letter-spacing:.03em;text-transform:uppercase;color:#fff}
@media(max-width:860px){.hgt2{grid-template-columns:1fr}.hgx{grid-template-columns:1fr}}
/* FAQ en oscuro */
.pg-dark .faq .eyebrow,.pg-dark .faq summary{color:#fff}.pg-dark .faq p{color:rgba(255,255,255,.78)}
.pg-dark .faq__i{border-color:rgba(255,255,255,.14)}
.pg-dark .sec.faq{border-top:1px solid rgba(255,255,255,.12)}
/* Entradas suaves al aparecer (estilo AOS: 100 px, 1 s) */
.hg-rv{opacity:0;transform:translate3d(0,60px,0);transition:opacity 1s ease,transform 1s ease}
.hg-rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.hg-rv{opacity:1;transform:none;transition:none}}
/* v5.3 · Etapas: foto a todo el alto de la sección y hasta el borde derecho; filas algo más pequeñas */
.hgs--svc{position:relative;overflow:hidden}
.hgs--svc .svc{display:block;width:min(56%,720px)}
.hgs--svc .svc__m{position:absolute;top:0;bottom:0;right:0;left:calc(max(var(--g),(100vw - 1240px)/2) + min(56%,720px) * 1 + clamp(40px,5vw,90px));width:auto;aspect-ratio:auto}
.hgs--svc .svc__f img{opacity:.92}
.svc__t{font-size:clamp(1.6rem,1rem + 1.9vw,2.85rem)}
.svc__b{padding:18px 16px}
@media(max-width:960px){.hgs--svc .svc{width:100%}}
/* v5.3 · Páginas interiores en oscuro (estilo Highgate); las secciones crema quedan como bloques claros */
.pg-dark .sec:not(.sec--cream){background:#1d2433;color:rgba(255,255,255,.82)}
.pg-dark .sec:not(.sec--cream) :is(.eyebrow,.eyebrow--dark,h2,h3,.item__t,.wd__t,.three__t,.def__tx h3,.case__h,.st3 h3,.gg h3){color:#fff}
.pg-dark .sec:not(.sec--cream) :is(p,li,dd,summary,.door__p){color:rgba(255,255,255,.8)}
.pg-dark .sec:not(.sec--cream) :is(.item,.wd__i,.wd__l,.three__l,.three__c,.mk li,.chk li,.st3 li,.def__i,.def__x,.faq__i,.ga a,.items){border-color:rgba(255,255,255,.14)!important}
.pg-dark .sec:not(.sec--cream) .wd__i:hover{background:rgba(255,255,255,.04)}
.pg-dark .sec:not(.sec--cream) .wd__ic{background:rgba(255,255,255,.06)}
.pg-dark .sec:not(.sec--cream) .wd__n{color:rgba(255,255,255,.2)}
.pg-dark .sec:not(.sec--cream) :is(a.lnk,.cc a,.ga a,.pf-ty a){color:#fff}
.pg-dark .sec:not(.sec--cream) .three__c dt{color:rgba(255,255,255,.55)}
.pg-dark .sec:not(.sec--cream) .case__ph figure:nth-child(2){border-color:#1d2433}
.pg-dark .sec:not(.sec--cream) .case__n span{color:rgba(255,255,255,.7)}
.pg-dark .sec:not(.sec--cream) .st3 li{border-top-color:#fff!important}
.pg-dark .sec:not(.sec--cream) .chk li::before{border-color:var(--y)}
.pg-dark .sec:not(.sec--cream) .muro__b{color:#fff;border-color:rgba(255,255,255,.3)}.pg-dark .muro__b.on{background:#fff;color:#1d2433}
.pg-dark .inv-link{background:#1d2433;border-color:rgba(255,255,255,.12)}.pg-dark .inv-link a{color:#fff}
.pg-dark .sec--cream{background:#F3EFE4}
.pg-dark .sec:not(.sec--cream) .eyebrow::before{background:var(--y)}
.pg-dark .seals-band{background:#F3EFE4}
.pg-dark .sec:not(.sec--cream) .cmap{filter:grayscale(.35) brightness(.92)}
.pg-dark .sec--cream{color:#1d2433}.pg-dark .sec--cream :is(p,li,dd,summary){color:rgba(29,36,51,.85)}.pg-dark .sec--cream :is(h2,h3,.eyebrow){color:#1d2433}
.pg-dark .inv .faq :is(summary,.eyebrow,h2){color:#31382b}.pg-dark .inv .faq p{color:rgba(49,56,43,.85)}.pg-dark .inv .faq__i{border-color:rgba(49,56,43,.16)}.pg-dark .inv-res{background:#31382b}
.hgk--2{grid-template-columns:repeat(2,minmax(0,1fr));margin:34px 0 0}.hgk--2 b{color:var(--y)}
.hgc__tx>.hgk{grid-column:2}
/* Bloque claro dentro del estilo oscuro */
.hgs--light{background:#F3EFE4;border-top:0}
.hgs--light .hgl{color:#a87a1e}
.hgs--light :is(.hgp,.hgi__s,.hgx li){color:#1d2433}
.hgs--light .hgt2{border-color:rgba(29,36,51,.16)}
.hgs--light .hga{color:#1d2433;border-color:rgba(29,36,51,.35)}
.hgc--inv .hgc__c{min-height:clamp(200px,25.8vw,378px)}.hgi--inv{border-top:0}
.svc__f--doc{background:#F3EFE4;display:grid;place-items:center;padding:8%}.svc__f--doc img{height:auto!important;object-fit:contain!important;box-shadow:0 24px 50px rgba(0,0,0,.35);opacity:1!important}
.pg-dark .sec--cream .ga a{color:#1d2433;border-color:rgba(29,36,51,.2)}
.hgs--light .pf-ty a{color:#1d2433}.pg-pf .hgc{border-top:0;padding-bottom:0}
.pg-dark .sec:not(.sec--cream) .muro__b.on{color:#1d2433;background:#fff}.pg-pf .hgi__s--sm{max-width:44ch;font-size:clamp(1.3rem,1rem + 1vw,1.9rem)}
/* v5.5 · Portada: declaración con frases en ámbar y lista de capacidades al estilo Highgate */
.pres__p--v4 strong{font-weight:400;color:var(--y)}
.hgcap{background:#1d2433;color:#fff;padding-block:clamp(70px,8vw,140px)}
.hgcap__l{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.14)}
.hgcap__a{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr) 40px;align-items:center;gap:24px;padding:22px 18px;border-bottom:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.6);text-decoration:none;transition:background .3s,color .3s}
.hgcap__a:hover,.hgcap__a:focus-visible{background:rgba(128,128,128,.14);color:#fff}
.hgcap__t{font:300 clamp(2.2rem,1.4rem + 3vw,4.5rem)/1 'Barlow Condensed',sans-serif;letter-spacing:.02em;text-transform:uppercase}
.hgcap__d{font-size:15px;line-height:1.5;opacity:0;transform:translateX(-10px);transition:opacity .3s,transform .3s}
.hgcap__a:hover .hgcap__d,.hgcap__a:focus-visible .hgcap__d{opacity:.85;transform:none}
.hgcap__ar{font-size:26px;color:var(--y);transition:transform .18s}.hgcap__a:hover .hgcap__ar{transform:translateX(10px)}
@media(max-width:860px){.hgcap__a{grid-template-columns:1fr 30px}.hgcap__d{grid-column:1;grid-row:2;opacity:.75;transform:none}}
.sec .col>p.pres__p--v4{font-size:clamp(2rem,1.3rem + 2.6vw,3.6rem);line-height:1.16;max-width:22ch}
/* v5.6 · Ancho completo real (100 % de la sección, no 100vw con la barra de desplazamiento) y sin marco amarillo al pulsar */
.doors--full .doors__l,.cities__l{width:100%;margin-left:0}
.doors--full>.doors__l,.cities>.cities__l{margin-top:clamp(28px,3vw,44px)}
.door__a:focus:not(:focus-visible),.city__a:focus:not(:focus-visible){outline:0}
.door__a:focus-visible{outline:2px solid var(--y);outline-offset:-4px}
.svc__f img,.day2__f img{object-fit:cover}
