/* ==========================================================================
   TERANIA · Widgets de Elementor
   --------------------------------------------------------------------------
   Todo el diseño vive bajo el contenedor .terania que imprime cada widget.
   Así los estilos globales de Elementor (Site Settings › tipografía,
   botones, campos de formulario) y los del tema no alteran el diseño.

   Reglas de especificidad:
     body .terania <elemento>   (0,1,2)  resets: ganan al kit de Elementor (0,1,1)
     .terania .t-componente     (0,2,0)  componentes: ganan a los resets
   ========================================================================== */

/* ==========================================================================
   TERANIA — main.css
   Estilos consolidados. Cada sección incluye sus breakpoints al final
   de su propio bloque.

   Índice
   01 Tokens            09 Experiencia         17 CTA
   02 Base              10 Statement           18 Footer
   03 Tipografía        11 Amenidades          19 Contacto flotante
   04 Botones           12 Distribuciones      20 Drawer de contacto
   05 Encabezados       13 Materialidad        21 Lightbox
   06 Hero              14 Arquitectura        22 Páginas interiores
   07 Intro             15 Ubicación           23 Animaciones
   08 Galería / Datos   16 Desarrollador       24 Movimiento reducido
   ========================================================================== */

/* 01 · TOKENS ============================================================= */

/*
 * Optima no es una fuente web gratuita. Para que los títulos se vean igual
 * en Windows y Android, licencia "Optima nova" (Linotype/Monotype), coloca
 * los .woff2 en assets/fonts/ y descomenta este bloque.
 *
 * @font-face {
 *   font-family: "Optima nova";
 *   src: url("../fonts/OptimaNova-Medium.woff2") format("woff2");
 *   font-weight: 500 600;
 *   font-style: normal;
 *   font-display: swap;
 * }
 */

.terania {
	/* Color */
	--forest: #2F4240;
	--forest-deep: #22312F;
	--green: #435352;
	--green-dark: #263534;
	--card: #1F332F;
	--olive: #ADAA3C;
	--olive-light: #D1CE69;
	--olive-bright: #D9D25A;
	--ivory: #F6F2E8;
	--paper: #F3EFE6;
	--paper-2: #E9E4D8;
	--paper-3: #F8F5EE;
	--cream: #F1F0EB;
	--ink: #213033;
	--muted: #686E6B;
	--line: rgba(22, 25, 24, .16);
	--line-light: rgba(255, 255, 255, .22);
	/* Tipografía */
	--font-title: "Optima nova", "Optima", "Optima LT Pro", "URW Classico", serif;
	--font-body: "Roboto", Arial, sans-serif;
	/* Layout */
	--gutter: 32px;
	--container: min(1320px, calc(100% - var(--gutter) * 2));
	--section-base: clamp(88px, 9vw, 150px);
	--radius: 22px;
	/* Espaciado escalable desde la pestaña Estilo */
	--section: calc(var(--section-base) * var(--t-space-scale, 1));

	/* Movimiento */
	--ease: cubic-bezier(.22, .61, .36, 1);
	/* Sombra de texto sobre fotografía */
	--photo-shadow: 0 2px 24px rgba(0, 0, 0, .18);
}

@media (max-width: 1100px) {
	.terania {
		--gutter: 20px;
	}
}

@media (max-width: 1024px) {
	.terania {
		--container: min(960px, calc(100% - var(--gutter) * 2));
		--section-base: clamp(72px, 9vw, 104px);
	}
}

@media (max-width: 820px) {
	.terania {
		--gutter: 24px;
		--container: calc(100% - var(--gutter) * 2);
		--section-base: clamp(64px, 13vw, 92px);
		--radius: 18px;
	}
}

@media (max-width: 560px) {
	.terania {
		--gutter: 20px;
		--section-base: 64px;
		--radius: 16px;
	}
}

@media (max-width: 390px) {
	.terania {
		--gutter: 18px;
	}
}

/* 02 · BASE =============================================================== */

.terania, .terania *,
.terania *::before,
.terania *::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

html {
	overflow-x: clip;
}

body .terania img {
	display: block;
	max-width: 100%;
}

body .terania a {
	color: inherit;
	text-decoration: none;
}

body .terania button,
body .terania input,
body .terania textarea {
	font: inherit;
	color: inherit;
}

body .terania button {
	cursor: pointer;
}

body .terania ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

body .terania address {
	font-style: normal;
}

body .terania ::selection {
	background: var(--olive);
	color: #fff;
}

body .terania :focus-visible {
	outline: 2px solid var(--olive-light);
	outline-offset: 4px;
}

.terania .t-container {
	width: var(--container);
	margin-inline: auto;
}

.terania .t-section {
	position: relative;
	padding: var(--section) 0;
}

html.t-lock,
html.t-lock body {
	overflow: hidden;
}

/* 03 · TIPOGRAFÍA ========================================================= */

.terania .t-display,
.terania .t-heading,
.terania .t-hero__headline,
.terania .t-exp-title,
.terania .t-statement__line span,
.terania .t-models__title,
.terania .t-amenities__item h3,
.terania .t-project__body h3,
.terania .t-contact-card strong,
.terania .t-stat strong,
.terania .t-intro__stat strong,
.terania .t-distance strong,
.terania .t-architecture__fact strong {
	font-family: var(--font-title);
}

.terania .t-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 24px;
	color: var(--forest-deep);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.terania .t-eyebrow::before {
	content: "";
	flex: none;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--olive);
}

.terania .t-display {
	margin: 0;
	font-size: calc(clamp(44px, 6.6vw, 104px) * var(--t-title-scale, 1));
	font-weight: 600;
	line-height: .92;
	letter-spacing: -.07em;
	text-wrap: balance;
}

.terania .t-heading {
	margin: 0;
	font-size: calc(clamp(36px, 4.7vw, 70px) * var(--t-title-scale, 1));
	font-weight: 600;
	line-height: .98;
	letter-spacing: -.06em;
	text-wrap: balance;
}

.terania .t-lead {
	margin: 0;
	color: #333;
	font-size: calc(clamp(16px, 1.25vw, 19px) * var(--t-text-scale, 1));
	line-height: 1.7;
}

@media (max-width: 560px) {
	.terania .t-eyebrow {
		margin-bottom: 16px;
		font-size: 10px;
	}

	.terania .t-heading {
		font-size: calc(clamp(36px, 11vw, 50px) * var(--t-title-scale, 1));
	}

	.terania .t-display {
		font-size: calc(clamp(42px, 12vw, 58px) * var(--t-title-scale, 1));
		line-height: .94;
	}

	.terania .t-lead {
		font-size: calc(15px * var(--t-text-scale, 1));
		line-height: 1.62;
	}
}

/* 04 · BOTONES ============================================================ */

.terania .t-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	min-height: 52px;
	padding: 0 26px;
	overflow: hidden;
	isolation: isolate;
	border: 1px solid currentColor;
	border-radius: 9999px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s var(--ease);
}

.terania .t-button::after {
	content: "↗";
	font-size: 18px;
	line-height: 1;
}

.terania .t-button:hover {
	transform: translateY(-2px);
}

.terania .t-button--dark {
	border-color: var(--forest-deep);
	background: var(--forest-deep);
	color: var(--ivory);
}

.terania .t-button--light {
	border-color: rgba(255, 255, 255, .68);
	background: rgba(255, 255, 255, .04);
	color: #fff;
}

.terania .t-button--dark:hover,
.terania .t-button--dark:focus-visible,
.terania .t-button--light:hover,
.terania .t-button--light:focus-visible {
	border-color: var(--olive);
	background: var(--olive);
	color: var(--forest-deep);
}

.terania .t-circle-btn {
	display: grid;
	place-items: center;
	flex: 0 0 54px;
	width: 54px;
	height: 54px;
	padding: 0;
	border: 1px solid rgba(47, 66, 64, .28);
	border-radius: 50%;
	background: transparent;
	color: var(--forest-deep);
	font-size: 20px;
	line-height: 1;
	transition: background .3s ease, border-color .3s ease, color .3s ease, transform .3s ease;
}

.terania .t-circle-btn:hover,
.terania .t-circle-btn:focus-visible {
	border-color: var(--olive);
	background: var(--olive);
	color: var(--forest-deep);
	transform: translateY(-2px);
}

@media (max-width: 560px) {
	.terania .t-button {
		width: 100%;
		max-width: 340px;
		min-height: 48px;
		padding-inline: 18px;
	}

	.terania .t-circle-btn {
		flex-basis: 48px;
		width: 48px;
		height: 48px;
	}
}

@media (hover: none) {
	.terania .t-button:hover,
	.terania .t-circle-btn:hover {
		transform: none;
	}
}

/* 05 · ENCABEZADOS DE SECCIÓN ============================================ */

/* Patrón eyebrow · título · lead usado en galería, amenidades, modelos… */

.terania .t-section-head {
	display: grid;
	grid-template-columns: .65fr 1.35fr .8fr;
	gap: clamp(28px, 3.5vw, 48px);
	align-items: start;
	margin-bottom: clamp(44px, 5.5vw, 72px);
}

.terania .t-section-head .t-lead {
	max-width: 380px;
}

.terania .t-section-head--two {
	grid-template-columns: .6fr 1.4fr;
	gap: 60px;
}

@media (max-width: 1100px) {
	.terania .t-section-head {
		grid-template-columns: 1fr 2fr;
	}

	.terania .t-section-head .t-lead {
		grid-column: 2;
	}
}

@media (max-width: 820px) {
	.terania .t-section-head,
	.terania .t-section-head--two {
		grid-template-columns: 1fr;
		gap: 22px;
		margin-bottom: 44px;
	}

	.terania .t-section-head .t-lead {
		grid-column: auto;
		max-width: 100%;
	}
}

/* 06 · HERO =============================================================== */

.terania .t-hero {
	position: relative;
	height: 100svh;
	min-height: 700px;
	overflow: hidden;
	isolation: isolate;
	background: var(--green-dark);
	color: #fff;
}

.terania .t-hero__media {
	position: absolute;
	inset: 0;
	z-index: -3;
}

.terania .t-hero__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	transform: scale(1.025);
	will-change: transform;
}

.terania .t-hero__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.terania .t-hero__shade {
	position: absolute;
	inset: 0;
	z-index: -2;
	background:
	linear-gradient(180deg, rgba(20, 31, 30, .18) 0%, rgba(20, 31, 30, .16) 36%, rgba(20, 31, 30, .82) 100%),
	linear-gradient(90deg, rgba(19, 31, 30, .46), transparent 62%);
}

.terania .t-hero__meta {
	position: absolute;
	top: 50%;
	left: 32px;
	color: rgba(255, 255, 255, .72);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	transform: translateY(-50%) rotate(-90deg);
	transform-origin: left top;
}

.terania .t-hero__content {
	position: absolute;
	bottom: 8vh;
	left: 50%;
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
	gap: 70px;
	align-items: end;
	width: var(--container);
	transform: translateX(-50%);
	will-change: transform, opacity;
}

.terania .t-hero__headline {
	max-width: 920px;
	margin: 0;
	color: #fff;
	font-size: calc(clamp(58px, 7.8vw, 126px) * var(--t-title-scale, 1));
	font-weight: 500;
	line-height: .86;
	letter-spacing: -.075em;
	text-shadow: 0 2px 26px rgba(0, 0, 0, .14);
	text-wrap: balance;
}

.terania .t-hero__aside {
	justify-self: end;
	max-width: 340px;
}

.terania .t-hero__aside p {
	margin: 0 0 28px;
	color: rgba(255, 255, 255, .9);
	font-size: calc(15px * var(--t-text-scale, 1));
	line-height: 1.65;
}

@media (max-width: 1100px) {
	.terania .t-hero__meta {
		display: none;
	}

	.terania .t-hero__content {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.terania .t-hero__aside {
		justify-self: start;
		max-width: 420px;
	}
}

@media (max-width: 820px) {
	.terania .t-hero {
		height: auto;
		min-height: max(640px, 100svh);
	}

	.terania .t-hero__content {
		bottom: max(48px, 8svh);
		gap: 24px;
	}

	.terania .t-hero__headline {
		max-width: 12ch;
		font-size: calc(clamp(50px, 11.5vw, 76px) * var(--t-title-scale, 1));
		line-height: .9;
	}

	.terania .t-hero__aside {
		width: min(100%, 480px);
	}
}

@media (max-width: 560px) {
	.terania .t-hero {
		min-height: max(620px, 100svh);
	}

	.terania .t-hero__content {
		bottom: max(34px, 6svh);
		gap: 20px;
	}

	.terania .t-hero__headline {
		max-width: 10.5ch;
		font-size: calc(clamp(46px, 13.5vw, 62px) * var(--t-title-scale, 1));
	}

	.terania .t-hero__aside p {
		margin-bottom: 20px;
		font-size: calc(13px * var(--t-text-scale, 1));
		line-height: 1.55;
	}
}

@media (max-width: 390px) {
	.terania .t-hero__headline {
		font-size: calc(clamp(42px, 13vw, 52px) * var(--t-title-scale, 1));
	}
}

/* 07 · INTRO ============================================================== */

.terania .t-intro {
	overflow: hidden;
	background: var(--paper);
}

.terania .t-intro::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 50% 45%, rgba(173, 170, 60, .09), transparent 34%);
	pointer-events: none;
}

.terania .t-intro__editorial {
	position: relative;
	display: grid;
	grid-template-columns: minmax(240px, .82fr) minmax(430px, 1.22fr) minmax(240px, .82fr);
	gap: clamp(30px, 4.8vw, 82px);
	align-items: center;
}

.terania .t-intro__side {
	position: relative;
	height: clamp(560px, 64vw, 790px);
	margin: 0;
	overflow: hidden;
	border-radius: clamp(18px, 2vw, 30px);
	box-shadow: 0 32px 80px rgba(35, 47, 44, .10);
}

.terania .t-intro__side--left {
	transform: translateY(-4%);
}

.terania .t-intro__side--right {
	transform: translateY(7%);
}

.terania .t-intro__side img {
	width: 100%;
	height: 112%;
	object-fit: cover;
	transform: translateY(-5%) scale(1.025);
}

.terania .t-intro__side::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 65%, rgba(27, 39, 37, .38));
}

.terania .t-intro__copy .t-heading {
	max-width: 720px;
	margin-bottom: 36px;
	color: var(--green-dark);
	font-size: calc(clamp(52px, 5.3vw, 86px) * var(--t-title-scale, 1));
	line-height: .94;
}

.terania .t-intro__copy .t-lead {
	max-width: 560px;
	color: #4D5854;
	font-size: calc(clamp(16px, 1.35vw, 20px) * var(--t-text-scale, 1));
}

.terania .t-intro__stat {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 24px;
	align-items: end;
	margin-top: clamp(48px, 7vw, 90px);
	padding-top: 26px;
	border-top: 1px solid rgba(38, 53, 52, .18);
}

.terania .t-intro__stat strong {
	display: block;
	color: var(--olive);
	font-size: calc(clamp(88px, 9vw, 150px) * var(--t-title-scale, 1));
	font-weight: 500;
	line-height: .8;
	letter-spacing: -.08em;
}

.terania .t-intro__stat span {
	display: block;
	padding-bottom: 10px;
	color: var(--green-dark);
	font-size: 12px;
	line-height: 1.5;
	letter-spacing: .08em;
	text-transform: uppercase;
}

@media (max-width: 1100px) {
	.terania .t-intro__editorial {
		grid-template-columns: .82fr 1.2fr .82fr;
		gap: 28px;
	}

	.terania .t-intro__side {
		height: 620px;
	}

	.terania .t-intro__copy .t-heading {
		font-size: calc(clamp(48px, 6vw, 72px) * var(--t-title-scale, 1));
	}
}

@media (max-width: 820px) {
	.terania .t-intro__editorial {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.terania .t-intro__copy {
		padding-bottom: 34px;
	}

	.terania .t-intro__copy .t-heading {
		margin-bottom: 24px;
	}

	.terania .t-intro__side {
		height: 58svh;
		min-height: 430px;
	}

	.terania .t-intro__side--left,
	.terania .t-intro__side--right {
		transform: none;
	}

	.terania .t-intro__stat {
		margin-top: 38px;
	}
}

@media (max-width: 560px) {
	.terania .t-intro__editorial {
		display: flex;
		flex-direction: column;
		gap: 18px;
	}

	.terania .t-intro__copy {
		order: 1;
		padding-bottom: 28px;
	}

	.terania .t-intro__side--left {
		order: 2;
		align-self: flex-start;
		width: 86%;
		height: 62svh;
		min-height: 440px;
	}

	.terania .t-intro__side--right {
		order: 3;
		align-self: flex-end;
		width: 82%;
		height: 52svh;
		min-height: 380px;
		margin-top: -44px;
		border: 8px solid var(--paper);
	}

	.terania .t-intro__copy .t-heading {
		font-size: calc(clamp(44px, 13vw, 62px) * var(--t-title-scale, 1));
	}

	.terania .t-intro__copy .t-lead {
		font-size: calc(15px * var(--t-text-scale, 1));
	}

	.terania .t-intro__stat strong {
		font-size: calc(clamp(72px, 24vw, 104px) * var(--t-title-scale, 1));
	}
}

/* 08 · GALERÍA + DATOS ==================================================== */

.terania .t-gallery {
	--marquee-gap: 18px;
	padding: clamp(70px, 8vw, 120px) 0;
	overflow: hidden;
	background: var(--paper-3);
}

.terania .t-gallery__head {
	width: var(--container);
	margin-inline: auto;
}

.terania .t-marquee {
	position: relative;
	width: 100%;
	padding: 14px 0 32px;
	overflow: hidden;
}

.terania .t-marquee::before,
.terania .t-marquee::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	z-index: 2;
	width: min(8vw, 120px);
	pointer-events: none;
}

.terania .t-marquee::before {
	left: 0;
	background: linear-gradient(90deg, var(--paper-3), transparent);
}

.terania .t-marquee::after {
	right: 0;
	background: linear-gradient(270deg, var(--paper-3), transparent);
}

.terania .t-marquee__track {
	display: flex;
	gap: var(--marquee-gap);
	width: max-content;
	animation: t-marquee 34s linear infinite;
	will-change: transform;
}

.terania .t-marquee:hover .t-marquee__track,
.terania .t-marquee:focus-within .t-marquee__track {
	animation-play-state: paused;
}

@keyframes t-marquee {
	to { transform: translateX(calc(-50% - var(--marquee-gap) / 2)); }
}

.terania .t-gallery-item {
	position: relative;
	flex: 0 0 auto;
	width: clamp(210px, 20vw, 330px);
	height: clamp(280px, 28vw, 430px);
	padding: 0;
	overflow: hidden;
	border: 1px solid transparent;
	border-radius: 18px;
	background: #DDD;
	cursor: zoom-in;
	transition: border-color .3s ease, box-shadow .3s ease;
}

.terania .t-gallery-item:nth-child(3n+2) {
	transform: translateY(18px);
}

.terania .t-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s var(--ease);
}

.terania .t-gallery-item::after {
	content: "↗";
	position: absolute;
	right: 14px;
	bottom: 14px;
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	color: var(--green-dark);
	font-size: 16px;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .3s ease, transform .3s ease;
}

.terania .t-gallery-item:hover,
.terania .t-gallery-item:focus-visible {
	border-color: var(--olive);
	box-shadow: 0 20px 45px rgba(35, 49, 47, .13);
}

.terania .t-gallery-item:hover img {
	transform: scale(1.045);
}

.terania .t-gallery-item:hover::after,
.terania .t-gallery-item:focus-visible::after {
	opacity: 1;
	transform: none;
}

/* Datos: las líneas divisorias son el gap del grid, así funcionan en 4, 2 o 1 columna */

.terania .t-stats {
	padding: 0 0 var(--section);
	background: var(--paper-3);
}

.terania .t-stats__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	border-block: 1px solid var(--line);
	background: var(--line);
}

.terania .t-stat {
	min-width: 0;
	padding: 42px 24px 46px;
	background: var(--paper-3);
}

.terania .t-stat strong {
	display: block;
	color: var(--green);
	font-size: calc(clamp(58px, 6vw, 92px) * var(--t-title-scale, 1));
	font-weight: 500;
	line-height: 1;
	letter-spacing: -.07em;
}

.terania .t-stat span {
	display: block;
	margin-top: 15px;
	font-size: 11px;
	line-height: 1.4;
	letter-spacing: .06em;
	text-transform: uppercase;
}

@media (max-width: 820px) {
	.terania .t-gallery {
		--marquee-gap: 12px;
	}

	.terania .t-gallery-item {
		width: clamp(210px, 48vw, 290px);
		height: clamp(285px, 64vw, 390px);
	}

	.terania .t-gallery-item:nth-child(3n+2) {
		transform: translateY(10px);
	}

	.terania .t-stats__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 560px) {
	.terania .t-gallery {
		padding: 64px 0;
	}

	.terania .t-gallery-item {
		width: 72vw;
		max-width: 270px;
		height: 94vw;
		max-height: 370px;
		border-radius: 14px;
	}

	.terania .t-marquee::before,
	.terania .t-marquee::after {
		width: 26px;
	}

	.terania .t-stat {
		padding: 24px 12px;
	}

	.terania .t-stat strong {
		font-size: calc(clamp(44px, 14vw, 56px) * var(--t-title-scale, 1));
	}
}

@media (max-width: 390px) {
	.terania .t-stats__grid {
		grid-template-columns: 1fr;
	}
}

@media (hover: none) {
	.terania .t-gallery-item:hover img {
		transform: none;
	}

	.terania .t-marquee:hover .t-marquee__track {
		animation-play-state: running;
	}
}

/* 09 · EXPERIENCIA ======================================================== */

.terania .t-experience {
	position: relative;
	background: var(--green-dark);
	color: #fff;
}

.terania .t-experience__head {
	padding: var(--section) 0 70px;
}

.terania .t-experience .t-eyebrow,
.terania .t-experience .t-heading {
	color: #fff;
	text-shadow: var(--photo-shadow);
}

.terania .t-experience__head .t-heading {
	max-width: 880px;
}

.terania .t-exp-scroll {
	--exp-count: 3;
	position: relative;
	height: calc((var(--exp-count) + 1) * 80vh);
}

.terania .t-exp-stage {
	position: sticky;
	top: 0;
	height: 100svh;
	min-height: 680px;
	overflow: hidden;
}

.terania .t-exp-slide {
	position: absolute;
	inset: 0;
}

.terania .t-exp-image {
	position: absolute;
	inset: 0;
	opacity: 0;
	transform: scale(1.06);
	transition: opacity .75s ease, transform 1.2s var(--ease);
}

.terania .t-exp-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.terania .t-exp-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
	linear-gradient(90deg, rgba(18, 28, 27, .9) 0%, rgba(18, 28, 27, .64) 40%, rgba(18, 28, 27, .18) 75%),
	linear-gradient(0deg, rgba(18, 28, 27, .58), transparent 55%);
}

.terania .t-exp-copy {
	position: absolute;
	bottom: 10vh;
	left: calc((100% - var(--container)) / 2);
	z-index: 2;
	width: min(520px, 42vw);
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .5s ease, transform .6s var(--ease);
	pointer-events: none;
}

.terania .t-exp-slide.is-active .t-exp-image {
	opacity: 1;
	transform: scale(1);
}

.terania .t-exp-slide.is-active .t-exp-copy {
	opacity: 1;
	transform: none;
	transition-delay: .15s;
	pointer-events: auto;
}

.terania .t-exp-title {
	margin: 0 0 24px;
	color: #fff;
	font-size: calc(clamp(46px, 6vw, 92px) * var(--t-title-scale, 1));
	font-weight: 500;
	line-height: .9;
	letter-spacing: -.065em;
}

.terania .t-exp-text {
	max-width: 490px;
	margin: 0;
	color: rgba(255, 255, 255, .84);
	font-size: calc(15px * var(--t-text-scale, 1));
	line-height: 1.7;
}

.terania .t-exp-progress {
	position: absolute;
	right: calc((100% - var(--container)) / 2);
	bottom: 10vh;
	z-index: 3;
	width: min(300px, 28vw);
}

.terania .t-exp-progress__bar {
	height: 1px;
	overflow: hidden;
	background: rgba(255, 255, 255, .28);
}

.terania .t-exp-progress__bar i {
	display: block;
	width: calc(100% / var(--exp-count));
	height: 100%;
	background: var(--olive-light);
	transition: transform .55s var(--ease);
}

.terania .t-exp-progress__labels {
	display: flex;
	justify-content: space-between;
	margin-top: 14px;
	color: rgba(255, 255, 255, .78);
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.terania .t-exp-progress__labels span {
	transition: color .3s ease;
}

.terania .t-exp-progress__labels span.is-active {
	color: var(--olive-light);
}

/* Móvil: las escenas se apilan y se ven todas */

@media (max-width: 820px) {
	.terania .t-exp-scroll {
		height: auto;
	}

	.terania .t-exp-stage {
		position: relative;
		height: auto;
		min-height: 0;
		overflow: visible;
	}

	.terania .t-exp-slide {
		position: relative;
		inset: auto;
	}

	.terania .t-exp-image {
		position: relative;
		inset: auto;
		height: 62vw;
		min-height: 380px;
		opacity: 1;
		transform: none;
	}

	.terania .t-exp-image::after {
		display: none;
	}

	.terania .t-exp-copy {
		position: relative;
		bottom: auto;
		left: auto;
		width: 100%;
		padding: 34px var(--gutter) 48px;
		opacity: 1;
		transform: none;
		pointer-events: auto;
	}

	.terania .t-exp-title {
		font-size: calc(clamp(48px, 12vw, 72px) * var(--t-title-scale, 1));
	}

	.terania .t-exp-progress {
		display: none;
	}
}

@media (max-width: 560px) {
	.terania .t-exp-image {
		height: 74vw;
		min-height: 320px;
	}

	.terania .t-exp-copy {
		padding: 28px var(--gutter) 40px;
	}

	.terania .t-exp-title {
		margin-bottom: 18px;
		font-size: calc(clamp(40px, 12vw, 54px) * var(--t-title-scale, 1));
		line-height: .94;
	}

	.terania .t-exp-text {
		font-size: calc(14px * var(--t-text-scale, 1));
		line-height: 1.65;
	}
}

/* 10 · STATEMENT ========================================================== */

.terania .t-statement {
	display: grid;
	place-items: center;
	min-height: 88svh;
	overflow: hidden;
	background: linear-gradient(135deg, var(--forest-deep), var(--forest));
	color: var(--ivory);
	text-shadow: var(--photo-shadow);
}

.terania .t-statement__inner {
	width: var(--container);
}

.terania .t-statement__text {
	margin: 0;
}

.terania .t-statement__line {
	display: block;
	overflow: hidden;
	color: var(--ivory);
}

.terania .t-statement__line:last-child {
	color: var(--olive-light);
}

.terania .t-statement__line span {
	display: block;
	font-size: calc(clamp(58px, 8.4vw, 138px) * var(--t-title-scale, 1));
	font-weight: 500;
	line-height: .88;
	letter-spacing: -.075em;
	transform: translateY(110%);
	transition: transform 1s var(--ease);
}

.terania .t-statement.is-visible .t-statement__line span {
	transform: none;
}

.terania .t-statement__line + .t-statement__line span {
	transition-delay: .12s;
}

.terania .t-statement__tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin-top: clamp(42px, 5vw, 68px);
	color: rgba(246, 242, 232, .76);
	font-size: calc(12px * var(--t-text-scale, 1));
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.terania .t-statement__tags li {
	display: flex;
	align-items: center;
}

.terania .t-statement__tags li:not(:last-child)::after {
	content: "";
	width: 28px;
	height: 1px;
	margin: 0 18px;
	background: rgba(209, 206, 105, .55);
}

@media (max-width: 700px) {
	.terania .t-statement {
		min-height: 70svh;
	}

	.terania .t-statement__tags {
		row-gap: 14px;
	}

	.terania .t-statement__tags li:not(:last-child)::after {
		width: 18px;
		margin: 0 11px;
	}
}

@media (max-width: 560px) {
	.terania .t-statement {
		padding-block: 64px;
	}

	.terania .t-statement__line span {
		font-size: calc(clamp(48px, 15vw, 68px) * var(--t-title-scale, 1));
	}

	.terania .t-statement__tags {
		margin-top: 34px;
		font-size: calc(10px * var(--t-text-scale, 1));
		letter-spacing: .09em;
	}

	.terania .t-statement__tags li:not(:last-child)::after {
		width: 12px;
		margin: 0 8px;
	}
}

/* 11 · AMENIDADES ========================================================= */

.terania .t-amenities {
	padding: var(--section) 0 0;
	overflow: clip;
	background: var(--cream);
}

.terania .t-amenities__scroll-area {
	--amenity-count: 3;
	position: relative;
	height: calc(var(--amenity-count) * 70vh + 50vh);
}

.terania .t-amenities__sticky {
	position: sticky;
	top: 0;
	display: flex;
	align-items: center;
	height: 100svh;
	min-height: 690px;
}

.terania .t-amenities__sticky > .t-container {
	width: var(--container);
}

.terania .t-amenities__stage {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.18fr) minmax(360px, .82fr);
	height: min(76vh, 720px);
	overflow: hidden;
	border-radius: 28px;
	background: var(--forest-deep);
}

.terania .t-amenities__media {
	position: relative;
	height: 100%;
}

.terania .t-amenity-image {
	position: absolute;
	inset: 0;
	opacity: 0;
	transform: scale(1.05);
	transition: opacity .65s ease, transform .9s var(--ease);
	pointer-events: none;
}

.terania .t-amenity-image.is-active {
	opacity: 1;
	transform: scale(1);
}

.terania .t-amenity-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.terania .t-amenities__copy {
	--pad: clamp(38px, 5vw, 68px);
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: var(--pad) var(--pad) clamp(120px, 15vh, 150px);
	background: var(--forest-deep);
	color: var(--ivory);
}

.terania .t-amenities__item {
	position: absolute;
	top: 50%;
	right: var(--pad);
	left: var(--pad);
	opacity: 0;
	visibility: hidden;
	transform: translateY(calc(-50% + 28px));
	transition: opacity .5s ease, transform .65s var(--ease), visibility .5s ease;
	pointer-events: none;
}

.terania .t-amenities__item.is-active {
	opacity: 1;
	visibility: visible;
	transform: translateY(-50%);
}

.terania .t-amenities__kicker {
	display: block;
	margin-bottom: 18px;
	color: var(--olive-light);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.terania .t-amenities__item h3 {
	margin: 0 0 22px;
	color: var(--ivory);
	font-size: calc(clamp(48px, 5vw, 78px) * var(--t-title-scale, 1));
	font-weight: 500;
	line-height: .92;
	letter-spacing: -.06em;
}

.terania .t-amenities__item p {
	max-width: 460px;
	margin: 0;
	color: rgba(246, 242, 232, .74);
	font-size: calc(15px * var(--t-text-scale, 1));
	line-height: 1.75;
}

.terania .t-amenities__progress {
	position: absolute;
	right: var(--pad);
	bottom: 78px;
	left: var(--pad);
	display: grid;
	grid-template-columns: repeat(var(--amenity-count), 1fr);
	gap: 10px;
}

.terania .t-amenities__progress button {
	position: relative;
	height: 22px;
	padding: 0;
	border: 0;
	background: transparent;
}

.terania .t-amenities__progress button::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	left: 0;
	height: 1px;
	background: rgba(246, 242, 232, .2);
	transition: background .35s ease, height .35s ease;
}

.terania .t-amenities__progress button:hover::before {
	background: rgba(209, 206, 105, .55);
}

.terania .t-amenities__progress button.is-active::before {
	height: 2px;
	background: var(--olive-light);
}

.terania .t-amenities__list {
	position: absolute;
	right: var(--pad);
	bottom: 38px;
	left: var(--pad);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	row-gap: 7px;
	color: rgba(246, 242, 232, .72);
	font-size: 10px;
	line-height: 1.4;
	letter-spacing: .055em;
}

.terania .t-amenities__list li {
	white-space: nowrap;
}

.terania .t-amenities__list li:not(:last-child)::after {
	content: "·";
	margin: 0 10px;
	color: var(--olive-light);
}

@media (max-width: 900px) {
	.terania .t-amenities__scroll-area {
		height: auto;
		padding-bottom: var(--section);
	}

	.terania .t-amenities__sticky {
		position: relative;
		height: auto;
		min-height: 0;
	}

	.terania .t-amenities__stage {
		grid-template-columns: 1fr;
		height: auto;
		border-radius: 22px;
	}

	.terania .t-amenities__media {
		height: 58vw;
		min-height: 360px;
	}

	.terania .t-amenities__copy {
		--pad: 28px;
		min-height: 420px;
		padding: 40px var(--pad) 122px;
	}

	.terania .t-amenities__progress {
		bottom: 66px;
	}

	.terania .t-amenities__list {
		bottom: 28px;
		font-size: 9.5px;
	}
}

@media (max-width: 560px) {
	.terania .t-amenities {
		padding-top: 72px;
	}

	.terania .t-amenities__media {
		height: 72vw;
		min-height: 300px;
	}

	.terania .t-amenities__copy {
		--pad: 22px;
		min-height: 390px;
		padding: 34px var(--pad) 112px;
	}

	.terania .t-amenities__item h3 {
		font-size: calc(46px * var(--t-title-scale, 1));
	}

	.terania .t-amenities__item p {
		font-size: calc(14px * var(--t-text-scale, 1));
		line-height: 1.65;
	}

	.terania .t-amenities__list {
		font-size: 10px;
	}
}

/* 12 · DISTRIBUCIONES ===================================================== */

.terania .t-models {
	background: #fff;
}

.terania .t-models__viewer {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr);
	min-height: 720px;
	overflow: hidden;
	border-radius: 24px;
	background: #F7F6F1;
}

.terania .t-models__visual {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 720px;
	padding: 42px;
	overflow: hidden;
	background: #E7E0D2;
}

.terania .t-model-gallery {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 190px;
	gap: 12px;
	width: 100%;
	height: 100%;
}

.terania .t-model-gallery.is-single {
	grid-template-columns: minmax(0, 1fr);
}

.terania .t-model-gallery.is-single .t-model-gallery__thumbs {
	display: none;
}

.terania .t-model-gallery__main {
	position: relative;
	min-height: 620px;
	overflow: hidden;
	border-radius: 18px;
	background: #F6F3EC;
}

.terania .t-model-gallery__main img {
	width: 100%;
	height: 100%;
	padding: 24px;
	object-fit: contain;
	transition: opacity .28s ease, transform .45s var(--ease);
}

.terania .t-model-gallery__thumbs {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.terania .t-model-thumb {
	flex: 1;
	min-height: 0;
	padding: 10px;
	border: 1px solid transparent;
	border-radius: 12px;
	background: #F6F3EC;
	transition: border-color .3s ease, background .3s ease, transform .3s ease;
}

.terania .t-model-thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.terania .t-model-thumb:hover {
	border-color: rgba(173, 170, 60, .45);
	background: #fff;
	transform: translateY(-2px);
}

.terania .t-model-thumb.is-active {
	border-color: var(--olive);
	background: #fff;
	box-shadow: 0 0 0 1px var(--olive);
}

.terania .t-models__info {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 56px 48px;
	background: #FFFEFA;
}

.terania .t-models__title {
	margin: 0 0 10px;
	color: var(--green-dark);
	font-size: calc(60px * var(--t-title-scale, 1));
	font-weight: 500;
	line-height: .9;
	letter-spacing: -.07em;
}

.terania .t-models__area {
	color: var(--olive);
	font-size: 16px;
}

.terania .t-models__desc {
	max-width: 470px;
	margin: 34px 0 28px;
	color: #444;
	font-size: calc(15px * var(--t-text-scale, 1));
	line-height: 1.7;
}

.terania .t-models__features {
	display: grid;
	margin-top: 32px;
	border-top: 1px solid var(--line);
}

.terania .t-models__features span {
	position: relative;
	padding: 13px 0 13px 17px;
	border-bottom: 1px solid var(--line);
	color: #4D5451;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.terania .t-models__features span::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--olive);
	transform: translateY(-50%);
}

.terania .t-models__tabs {
	display: flex;
	margin-top: 26px;
	border-block: 1px solid var(--line);
}

.terania .t-model-tab {
	position: relative;
	flex: 1;
	padding: 17px 10px;
	border: 0;
	background: transparent;
	color: #777D79;
	font-size: 12px;
	font-weight: 600;
	transition: color .3s ease;
}

.terania .t-model-tab::after {
	content: "";
	position: absolute;
	right: 82%;
	bottom: -1px;
	left: 18%;
	height: 2px;
	background: var(--olive);
	transition: left .32s var(--ease), right .32s var(--ease);
}

.terania .t-model-tab:hover {
	color: var(--forest);
}

.terania .t-model-tab:hover::after {
	right: 18%;
}

.terania .t-model-tab.is-active {
	color: var(--forest-deep);
}

.terania .t-model-tab.is-active::after {
	right: 8%;
	left: 8%;
}

.terania .t-models__nav {
	display: flex;
	gap: 10px;
	margin-top: 42px;
}

@media (max-width: 1100px) {
	.terania .t-models__viewer {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.terania .t-models__visual {
		min-height: clamp(460px, 64vw, 620px);
	}

	.terania .t-models__info {
		padding: 42px 36px;
	}
}

@media (max-width: 900px) {
	.terania .t-model-gallery {
		grid-template-columns: 1fr;
	}

	.terania .t-model-gallery__main {
		min-height: 460px;
	}

	.terania .t-model-gallery__thumbs {
		flex-direction: row;
		height: 110px;
	}
}

@media (max-width: 820px) {
	.terania .t-models__visual {
		min-height: 0;
		padding: 20px;
	}

	.terania .t-model-gallery {
		height: auto;
	}

	.terania .t-model-gallery__main {
		min-height: clamp(340px, 72vw, 520px);
	}

	.terania .t-model-gallery__main img {
		padding: clamp(10px, 3vw, 20px);
	}

	.terania .t-model-gallery__thumbs {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));
		gap: 8px;
		height: auto;
	}

	.terania .t-model-thumb {
		height: 84px;
		padding: 6px;
	}

	.terania .t-models__info {
		padding: 34px 24px;
	}

	.terania .t-models__title {
		margin-top: 24px;
		font-size: calc(clamp(46px, 10vw, 58px) * var(--t-title-scale, 1));
	}
}

@media (max-width: 560px) {
	.terania .t-models__viewer {
		border-radius: 16px;
	}

	.terania .t-models__visual {
		padding: 14px;
	}

	.terania .t-model-gallery__main {
		min-height: 310px;
	}

	.terania .t-models__info {
		padding: 28px 18px;
	}

	.terania .t-models__desc {
		margin-block: 22px;
	}

	.terania .t-models__tabs {
		overflow-x: auto;
	}

	.terania .t-model-tab {
		min-width: 82px;
	}

	.terania .t-models__nav {
		margin-top: 28px;
	}
}

@media (max-width: 390px) {
	.terania .t-model-gallery__thumbs {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* 13 · MATERIALIDAD ======================================================= */

.terania .t-materials {
	padding: var(--section) 0;
	background: var(--paper-2);
	color: var(--green-dark);
}

.terania .t-materials__wrap {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
	gap: clamp(45px, 7vw, 110px);
	align-items: center;
	width: var(--container);
	margin: auto;
}

.terania .t-materials__media {
	position: relative;
	height: clamp(640px, 68vw, 840px);
	overflow: hidden;
	border-radius: 0 80px 0 0;
}

.terania .t-materials__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.035);
}

.terania .t-materials__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 55%, rgba(24, 33, 31, .32));
}

.terania .t-materials__content {
	position: relative;
	padding: clamp(20px, 4vw, 56px) 0 clamp(30px, 5vw, 70px);
}

.terania .t-materials__content .t-eyebrow {
	color: var(--olive);
}

.terania .t-materials__content .t-heading {
	max-width: 630px;
	margin-bottom: 38px;
	color: var(--green-dark);
}

.terania .t-materials__quote {
	margin: 0 0 48px;
	color: var(--forest);
	font-size: calc(clamp(20px, 2vw, 30px) * var(--t-text-scale, 1));
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: -.025em;
}

.terania .t-materials__notes {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	padding-top: 26px;
	border-top: 1px solid rgba(38, 53, 52, .22);
}

.terania .t-materials__note {
	margin: 0;
	color: #5D6461;
	font-size: calc(14px * var(--t-text-scale, 1));
	line-height: 1.75;
}

@media (max-width: 900px) {
	.terania .t-materials__wrap {
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}

	.terania .t-materials__notes {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 820px) {
	.terania .t-materials__media {
		height: clamp(430px, 72vw, 580px);
		border-radius: 0 42px 0 0;
	}

	.terania .t-materials__content {
		padding: 0;
	}
}

@media (max-width: 560px) {
	.terania .t-materials__wrap {
		gap: 30px;
	}

	.terania .t-materials__media {
		height: 410px;
		border-radius: 0 30px 0 0;
	}

	.terania .t-materials__content .t-heading {
		font-size: calc(clamp(36px, 10.5vw, 48px) * var(--t-title-scale, 1));
	}

	.terania .t-materials__quote {
		margin-bottom: 32px;
	}
}

/* 14 · ARQUITECTURA ======================================================= */

.terania .t-architecture {
	background: #F7F3EA;
}

.terania .t-architecture__grid {
	display: grid;
	grid-template-columns: .85fr 1.15fr;
	gap: clamp(50px, 8vw, 120px);
	align-items: center;
}

.terania .t-architecture__media {
	position: relative;
	min-height: 760px;
}

.terania .t-architecture__img-main {
	position: absolute;
	top: 0;
	left: 0;
	width: 72%;
	height: 80%;
	object-fit: cover;
	border-radius: var(--radius);
}

.terania .t-architecture__img-detail {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 52%;
	height: 43%;
	object-fit: cover;
	border: 10px solid #fff;
	border-radius: var(--radius);
	box-shadow: 0 28px 70px rgba(15, 25, 22, .12);
}

.terania .t-architecture__copy .t-heading {
	margin-bottom: 36px;
}

.terania .t-architecture__copy .t-lead {
	max-width: 560px;
	margin-bottom: 32px;
}

.terania .t-architecture__facts {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-top: 40px;
}

.terania .t-architecture__fact {
	padding-top: 18px;
	border-top: 1px solid var(--line);
}

.terania .t-architecture__fact strong {
	display: block;
	color: var(--green);
	font-size: calc(34px * var(--t-title-scale, 1));
	font-weight: 500;
}

.terania .t-architecture__fact span {
	font-size: 10px;
	line-height: 1.4;
	letter-spacing: .06em;
	text-transform: uppercase;
}

@media (max-width: 1100px) {
	.terania .t-architecture__grid {
		gap: 50px;
	}

	.terania .t-architecture__media {
		min-height: 620px;
	}
}

@media (max-width: 820px) {
	.terania .t-architecture__grid {
		grid-template-columns: 1fr;
	}

	.terania .t-architecture__copy {
		order: -1;
	}

	.terania .t-architecture__media {
		min-height: clamp(470px, 88vw, 610px);
	}
}

@media (max-width: 560px) {
	.terania .t-architecture__media {
		min-height: 430px;
	}

	.terania .t-architecture__img-main {
		width: 82%;
		height: 76%;
	}

	.terania .t-architecture__img-detail {
		width: 58%;
		height: 42%;
		border-width: 6px;
	}

	.terania .t-architecture__facts {
		gap: 12px;
	}
}

@media (max-width: 390px) {
	.terania .t-architecture__facts {
		grid-template-columns: 1fr;
	}
}

/* 15 · UBICACIÓN ========================================================== */

.terania .t-location {
	background: var(--forest-deep);
	color: #fff;
}

.terania .t-location .t-eyebrow {
	color: var(--olive-light);
	text-shadow: var(--photo-shadow);
}

.terania .t-location .t-heading {
	color: #fff;
	text-shadow: var(--photo-shadow);
}

.terania .t-location__distances {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	margin-bottom: 56px;
	border-block: 1px solid var(--line-light);
	background: var(--line-light);
}

.terania .t-distance {
	min-width: 0;
	padding: 34px 24px;
	background: var(--forest-deep);
	transition: background .3s ease;
}

.terania .t-distance:hover {
	background: #2A3937;
}

.terania .t-distance strong {
	display: block;
	color: #fff;
	font-size: calc(clamp(38px, 4.5vw, 62px) * var(--t-title-scale, 1));
	font-weight: 500;
	letter-spacing: -.06em;
	transition: color .3s ease;
}

.terania .t-distance:hover strong {
	color: var(--olive-light);
}

.terania .t-distance span {
	display: block;
	margin-top: 10px;
	color: rgba(255, 255, 255, .65);
	font-size: 10px;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.terania .t-map {
	height: 560px;
	overflow: hidden;
	border-radius: var(--radius);
	background: #D8DDD9;
}

.terania .t-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	filter: saturate(.55) contrast(.98);
}

.terania .t-location__address {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	margin-top: 24px;
	color: rgba(255, 255, 255, .7);
	font-size: 13px;
}

@media (max-width: 820px) {
	.terania .t-location__distances {
		grid-template-columns: repeat(2, 1fr);
	}

	.terania .t-map {
		height: clamp(360px, 60vw, 460px);
	}

	.terania .t-location__address {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}
}

@media (max-width: 560px) {
	.terania .t-distance {
		padding: 24px 12px;
	}

	.terania .t-distance strong {
		font-size: calc(clamp(32px, 10vw, 44px) * var(--t-title-scale, 1));
	}

	.terania .t-map {
		height: 340px;
	}
}

@media (max-width: 390px) {
	.terania .t-location__distances {
		grid-template-columns: 1fr;
	}
}

/* 16 · DESARROLLADOR ====================================================== */

.terania .t-numei {
	background: #EEE9DE;
}

.terania .t-numei__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	height: 650px;
}

.terania .t-project {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	border-radius: var(--radius);
}

.terania .t-project img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.terania .t-project::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(18, 29, 28, .05) 22%, rgba(18, 29, 28, .9) 100%);
}

.terania .t-project__body {
	position: absolute;
	right: 30px;
	bottom: 30px;
	left: 30px;
	z-index: 2;
	color: #fff;
	text-shadow: var(--photo-shadow);
}

.terania .t-project__tag {
	color: var(--olive-light);
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.terania .t-project__body h3 {
	margin: 0 0 12px;
	color: #fff;
	font-size: calc(clamp(32px, 3vw, 48px) * var(--t-title-scale, 1));
	font-weight: 600;
	line-height: .95;
	letter-spacing: -.05em;
}

.terania .t-project__body p {
	margin: 14px 0 0;
	color: rgba(255, 255, 255, .78);
	font-size: calc(13px * var(--t-text-scale, 1));
	line-height: 1.65;
}

@media (max-width: 1024px) {
	.terania .t-numei__cards {
		height: auto;
	}

	.terania .t-project {
		min-height: 430px;
	}
}

@media (max-width: 820px) {
	.terania .t-numei__cards {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.terania .t-project {
		min-height: 440px;
	}

	.terania .t-project__body {
		right: 22px;
		bottom: 22px;
		left: 22px;
	}
}

@media (max-width: 560px) {
	.terania .t-project {
		min-height: 400px;
	}

	.terania .t-project__body h3 {
		font-size: calc(clamp(30px, 9vw, 40px) * var(--t-title-scale, 1));
	}

	.terania .t-project__body p {
		font-size: calc(12px * var(--t-text-scale, 1));
		line-height: 1.55;
	}
}

/* 17 · CTA ================================================================ */

.terania .t-cta {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 92svh;
	padding: 0 0 8vh;
	overflow: hidden;
	isolation: isolate;
	background: var(--green-dark);
	color: #fff;
}

.terania .t-cta__bg {
	position: absolute;
	inset: -7%;
	z-index: -2;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	transform: scale(1.05);
}

.terania .t-cta__shade {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
	linear-gradient(180deg, rgba(18, 28, 27, .12), rgba(18, 28, 27, .84)),
	linear-gradient(90deg, rgba(18, 28, 27, .65), transparent 60%);
}

.terania .t-cta__inner {
	display: grid;
	grid-template-columns: 1.35fr .65fr;
	gap: 70px;
	align-items: end;
	width: var(--container);
	margin: auto;
}

.terania .t-cta .t-eyebrow {
	color: var(--olive-light);
	text-shadow: var(--photo-shadow);
}

.terania .t-cta .t-display {
	max-width: 950px;
	color: #fff;
	text-shadow: var(--photo-shadow);
}

.terania .t-cta__aside p {
	margin: 0 0 26px;
	color: #fff;
	font-size: calc(14px * var(--t-text-scale, 1));
	line-height: 1.7;
}

@media (max-width: 820px) {
	.terania .t-cta {
		min-height: max(680px, 88svh);
		padding-bottom: 56px;
	}

	.terania .t-cta__inner {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.terania .t-cta__aside {
		max-width: 420px;
	}
}

@media (max-width: 560px) {
	.terania .t-cta {
		min-height: max(620px, 80svh);
		padding-bottom: 42px;
	}

	.terania .t-cta .t-display {
		font-size: calc(clamp(48px, 14vw, 70px) * var(--t-title-scale, 1));
	}
}

/* 18 · FOOTER ============================================================= */

.terania .t-footer {
	padding: 44px 0 26px;
	border-top: 1px solid rgba(255, 255, 255, .18);
	background: var(--green-dark);
	color: #fff;
}

.terania .t-footer__grid {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 30px;
	align-items: center;
}

.terania .t-footer__logo img {
	width: 120px;
	height: auto;
	filter: brightness(0) invert(1);
}

.terania .t-footer__links ul {
	display: flex;
	justify-content: center;
	gap: 24px;
	color: rgba(255, 255, 255, .65);
	font-size: 11px;
}

.terania .t-footer__links a {
	transition: color .25s ease;
}

.terania .t-footer__links a:hover {
	color: var(--olive-light);
}

.terania .t-footer__copy {
	color: rgba(255, 255, 255, .48);
	font-size: 9px;
	letter-spacing: .07em;
	text-align: right;
	text-transform: uppercase;
}

@media (max-width: 820px) {
	.terania .t-footer__grid {
		grid-template-columns: 1fr;
		justify-items: center;
	}

	.terania .t-footer__links ul {
		flex-wrap: wrap;
		row-gap: 12px;
	}

	.terania .t-footer__copy {
		text-align: center;
	}
}

@media (max-width: 560px) {
	.terania .t-footer {
		padding-top: 34px;
		/* espacio para la tarjeta flotante */
		padding-bottom: 96px;
	}

	.terania .t-footer__grid {
		gap: 22px;
	}

	.terania .t-footer__links ul {
		gap: 10px 18px;
		text-align: center;
	}
}

/* 19 · CONTACTO FLOTANTE ================================================== */

.terania .t-contact-widget {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 1400;
	width: min(260px, calc(100vw - 32px));
	opacity: 0;
	visibility: hidden;
	transform: translateY(18px);
	pointer-events: none;
	transition: opacity .35s ease, visibility .35s ease, transform .35s ease;
}

.terania .t-contact-widget.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
	pointer-events: auto;
}

.terania .t-contact-card {
	position: relative;
	width: 100%;
	overflow: hidden;
	border-radius: 24px;
	background: var(--card);
	color: var(--ivory);
	box-shadow: 0 20px 48px rgba(20, 34, 31, .24), 0 4px 14px rgba(20, 34, 31, .10);
}

.terania .t-contact-card__media {
	height: 160px;
	overflow: hidden;
	background: #243A35;
}

.terania .t-contact-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s var(--ease);
}

.terania .t-contact-card:hover .t-contact-card__media img {
	transform: scale(1.045);
}

.terania .t-contact-card__body {
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: 20px 20px 18px;
	border: 0;
	background: transparent;
	color: var(--ivory);
	text-align: left;
}

.terania .t-contact-card__body:focus-visible {
	outline: 3px solid rgba(173, 170, 60, .48);
	outline-offset: -5px;
}

.terania .t-contact-card strong {
	display: block;
	color: var(--ivory);
	font-size: 25px;
	font-weight: 600;
	line-height: 1.02;
	letter-spacing: -.04em;
}

.terania .t-contact-card__copy {
	display: block;
	margin-top: 10px;
	color: rgba(246, 242, 232, .76);
	font-size: 12.5px;
	line-height: 1.5;
}

.terania .t-contact-card__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px solid rgba(217, 210, 90, .36);
	color: var(--olive-bright);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .035em;
}

.terania .t-contact-card__cta span {
	font-size: 16px;
}

.terania .t-contact-card__location {
	display: block;
	margin-top: 8px;
	color: rgba(246, 242, 232, .52);
	font-size: 10px;
	line-height: 1.35;
}

.terania .t-contact-minimize {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 1px solid rgba(246, 242, 232, .55);
	border-radius: 50%;
	background: rgba(31, 51, 47, .78);
	color: var(--ivory);
	font: 600 20px/1 var(--font-body);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	transition: background .25s ease, color .25s ease, border-color .25s ease;
}

.terania .t-contact-minimize:hover {
	border-color: var(--olive);
	background: var(--olive);
	color: var(--card);
}

.terania .t-contact-minimized {
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	min-height: 52px;
	padding: 0 14px 0 16px;
	border: 0;
	border-radius: 9999px;
	background: var(--card);
	color: var(--ivory);
	box-shadow: 0 14px 34px rgba(20, 34, 31, .24), 0 3px 10px rgba(20, 34, 31, .10);
	font: 700 10.5px/1.2 var(--font-body);
	letter-spacing: .055em;
	text-align: left;
}

.terania .t-contact-minimized__label {
	display: flex;
	align-items: center;
	gap: 9px;
	min-width: 0;
	white-space: nowrap;
}

.terania .t-contact-minimized__dot {
	flex: 0 0 8px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--olive);
}

.terania .t-contact-minimized__plus {
	display: grid;
	place-items: center;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	border: 1px solid rgba(217, 210, 90, .45);
	border-radius: 50%;
	color: var(--olive-bright);
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
}

.terania .t-contact-widget.is-minimized {
	width: min(238px, calc(100vw - 32px));
}

.terania .t-contact-widget.is-minimized .t-contact-card,
.terania .t-contact-widget.is-minimized .t-contact-minimize {
	display: none;
}

.terania .t-contact-widget.is-minimized .t-contact-minimized {
	display: flex;
}

@media (max-width: 700px) {
	.terania .t-contact-widget,
	.terania .t-contact-widget.is-minimized {
		right: 12px;
		bottom: 12px;
		left: 12px;
		width: auto;
	}

	.terania .t-contact-card {
		display: grid;
		grid-template-columns: 92px minmax(0, 1fr);
		border-radius: 18px;
	}

	.terania .t-contact-card__media {
		height: 100%;
		min-height: 112px;
	}

	.terania .t-contact-card__body {
		padding: 14px 44px 12px 15px;
	}

	.terania .t-contact-card__copy,
	.terania .t-contact-card__location {
		display: none;
	}

	.terania .t-contact-card strong {
		font-size: 18px;
		line-height: 1.08;
	}

	.terania .t-contact-card__cta {
		margin-top: 11px;
		padding-top: 10px;
		font-size: 11px;
	}

	.terania .t-contact-minimize {
		top: 8px;
		right: 8px;
		width: 32px;
		height: 32px;
	}

	.terania .t-contact-minimized {
		min-height: 54px;
		border-radius: 16px;
	}
}

@media (max-width: 390px) {
	.terania .t-contact-widget,
	.terania .t-contact-widget.is-minimized {
		right: 8px;
		bottom: 8px;
		left: 8px;
	}
}

/* 20 · DRAWER DE CONTACTO ================================================= */

.terania .t-contact-drawer {
	position: fixed;
	inset: 0;
	z-index: 1600;
	visibility: hidden;
	pointer-events: none;
	transition: visibility 0s linear .52s;
}

.terania .t-contact-drawer.is-open {
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.terania .t-contact-drawer__backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: rgba(14, 25, 23, .48);
	opacity: 0;
	transition: opacity .42s ease;
}

.terania .t-contact-drawer.is-open .t-contact-drawer__backdrop {
	opacity: 1;
}

.terania .t-contact-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	width: min(440px, 94vw);
	height: 100%;
	padding: clamp(28px, 4vw, 48px);
	overflow: auto;
	overscroll-behavior: contain;
	background: var(--forest-deep);
	color: var(--ivory);
	box-shadow: -30px 0 80px rgba(8, 18, 16, .16);
	transform: translateX(102%);
	transition: transform .52s var(--ease);
}

.terania .t-contact-drawer.is-open .t-contact-drawer__panel {
	transform: none;
}

.terania .t-contact-drawer__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
}

.terania .t-contact-drawer__top h2 {
	max-width: 320px;
	margin: 0;
	color: var(--ivory);
	font-size: clamp(38px, 4vw, 55px);
	font-weight: 500;
	line-height: .96;
	letter-spacing: -.055em;
}

.terania .t-contact-drawer__close {
	display: grid;
	place-items: center;
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid rgba(246, 242, 232, .3);
	border-radius: 50%;
	background: transparent;
	color: var(--ivory);
	font: 300 27px/1 var(--font-body);
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}

.terania .t-contact-drawer__close:hover {
	border-color: var(--olive);
	background: var(--olive);
	color: var(--forest-deep);
	transform: rotate(5deg);
}

.terania .t-contact-drawer__lead {
	margin: 34px 0 38px;
	color: rgba(246, 242, 232, .68);
	font-size: 14px;
	line-height: 1.75;
}

.terania .t-contact-drawer__form {
	display: grid;
	gap: 22px;
}

.terania .t-contact-drawer__field {
	display: grid;
	gap: 8px;
}

.terania .t-contact-drawer__field label {
	color: rgba(246, 242, 232, .72);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.terania .t-contact-drawer__field input.t-input.t-input.t-input,
.terania .t-contact-drawer__field textarea.t-input.t-input.t-input {
	width: 100%;
	padding: 12px 0 14px;
	border: 0;
	border-bottom: 1px solid rgba(246, 242, 232, .24);
	border-radius: 0;
	outline: none;
	background: transparent;
	color: var(--ivory);
	font: 500 16px/1.45 var(--font-body);
	transition: border-color .25s ease, box-shadow .25s ease;
}

.terania .t-contact-drawer__field textarea.t-input.t-input.t-input {
	min-height: 96px;
	resize: vertical;
}

.terania .t-contact-drawer__field input.t-input.t-input.t-input::placeholder,
.terania .t-contact-drawer__field textarea.t-input.t-input.t-input::placeholder {
	color: rgba(246, 242, 232, .34);
}

.terania .t-contact-drawer__field input.t-input.t-input.t-input:focus,
.terania .t-contact-drawer__field textarea.t-input.t-input.t-input:focus {
	border-color: var(--olive-light);
	box-shadow: 0 1px 0 var(--olive-light);
}

.terania .t-contact-drawer__field input.t-input.t-input.t-input[aria-invalid="true"] {
	border-color: #E0A38F;
}

/* Honeypot: invisible para personas, visible para bots */

.terania .t-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.terania .t-contact-drawer__privacy {
	margin: 2px 0 0;
	color: rgba(246, 242, 232, .46);
	font-size: 10px;
	line-height: 1.55;
}

.terania .t-contact-drawer__submit {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 52px;
	padding: 0 22px;
	border: 1px solid var(--olive);
	border-radius: 9999px;
	background: var(--olive);
	color: var(--forest-deep);
	font: 700 11px/1 var(--font-body);
	letter-spacing: .075em;
	text-transform: uppercase;
	transition: background .25s ease, transform .25s ease, opacity .25s ease;
}

.terania .t-contact-drawer__submit:hover {
	background: var(--olive-light);
	transform: translateY(-2px);
}

.terania .t-contact-drawer__submit:disabled {
	opacity: .6;
	pointer-events: none;
}

.terania .t-contact-drawer__status {
	min-height: 18px;
	margin: 0;
	color: var(--olive-light);
	font-size: 11px;
	line-height: 1.5;
}

.terania .t-contact-drawer__status.is-error {
	color: #F0B8A6;
}

@media (max-width: 700px) {
	.terania .t-contact-drawer__panel {
		top: auto;
		bottom: 0;
		width: 100%;
		height: auto;
		max-height: min(86%, 720px);
		padding: 28px 20px max(26px, env(safe-area-inset-bottom));
		border-radius: 24px 24px 0 0;
		transform: translateY(102%);
	}

	.terania .t-contact-drawer__top h2 {
		font-size: clamp(34px, 10vw, 46px);
	}
}

/* 21 · LIGHTBOX =========================================================== */

.terania .t-lightbox {
	position: fixed;
	inset: 0;
	z-index: 1700;
	display: grid;
	place-items: center;
	padding: clamp(24px, 5vw, 72px);
	background: rgba(18, 28, 27, .94);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .3s ease, visibility .3s ease;
}

.terania .t-lightbox.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.terania .t-lightbox__figure {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
}

.terania .t-lightbox__figure img {
	width: auto;
	height: auto;
	max-width: min(720px, 72vw);
	max-height: 62vh;
	object-fit: contain;
	border-radius: 14px;
	box-shadow: 0 28px 80px rgba(0, 0, 0, .34);
}

.terania .t-lightbox__close,
.terania .t-lightbox__nav {
	position: fixed;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .36);
	border-radius: 50%;
	background: rgba(31, 48, 45, .72);
	color: #fff;
	line-height: 1;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	transition: background .25s ease, border-color .25s ease, color .25s ease;
}

.terania .t-lightbox__close:hover,
.terania .t-lightbox__nav:hover {
	border-color: var(--olive);
	background: var(--olive);
	color: var(--green-dark);
}

.terania .t-lightbox__close {
	top: clamp(18px, 3vw, 32px);
	right: clamp(18px, 3vw, 32px);
	font-size: 23px;
}

.terania .t-lightbox__prev {
	top: 50%;
	left: clamp(16px, 4vw, 54px);
	transform: translateY(-50%);
}

.terania .t-lightbox__next {
	top: 50%;
	right: clamp(16px, 4vw, 54px);
	transform: translateY(-50%);
}

@media (max-width: 900px) {
	.terania .t-lightbox {
		padding: 24px 64px;
	}

	.terania .t-lightbox__figure img {
		max-width: min(640px, 76vw);
		max-height: 60vh;
	}

	.terania .t-lightbox__close,
	.terania .t-lightbox__nav {
		width: 46px;
		height: 46px;
	}
}

@media (max-width: 560px) {
	.terania .t-lightbox {
		padding: 60px 48px 32px;
	}

	.terania .t-lightbox__figure img {
		max-width: calc(100vw - 96px);
		max-height: 66svh;
		border-radius: 10px;
	}

	.terania .t-lightbox__close,
	.terania .t-lightbox__nav {
		width: 42px;
		height: 42px;
	}

	.terania .t-lightbox__close {
		top: 14px;
		right: 14px;
	}

	.terania .t-lightbox__prev {
		left: 10px;
	}

	.terania .t-lightbox__next {
		right: 10px;
	}
}

/* 22 · PÁGINAS INTERIORES ================================================= */

/* 23 · ANIMACIONES ======================================================== */

/* Solo se ocultan si JS está activo: sin JS el contenido se ve completo */

.t-js .terania [data-reveal] {
	opacity: 0;
	transform: translateY(36px);
	filter: blur(6px);
	transition: opacity .8s var(--ease), transform .8s var(--ease), filter .8s var(--ease);
}

.t-js .terania [data-reveal].is-visible {
	opacity: 1;
	transform: none;
	filter: none;
}

.terania [data-parallax] {
	will-change: transform;
}

/* 24 · MOVIMIENTO REDUCIDO ================================================ */

@media (prefers-reduced-motion: reduce) {
	.terania, .terania *,
	.terania *::before,
	.terania *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}

	.terania .t-marquee__track {
		animation: none !important;
	}

	.t-js .terania [data-reveal] {
		opacity: 1;
		transform: none;
		filter: none;
	}

	.terania .t-statement__line span,
	.terania [data-parallax] {
		transform: none !important;
	}
}

/* ==========================================================================
   CAPA ELEMENTOR
   ========================================================================== */

/* Sin scroll horizontal por elementos a sangre completa */
html,
body {
	overflow-x: clip;
}

/* Base tipográfica del contenedor (sustituye al body del sitio) */
.terania {
	color: var(--ink);
	font-family: var(--font-body);
	font-weight: 400;
	line-height: normal;
	-webkit-font-smoothing: antialiased;
}

/* Elementor separa widgets con margen; las secciones de Terania van pegadas */
.elementor .elementor-widget[class*="elementor-widget-terania-"] {
	margin-block-end: 0;
}

/* --- Resets frente al kit global de Elementor y el tema -------------------- */

body .terania :is(h1, h2, h3, h4, p, figure) {
	color: inherit;
	font-family: inherit;
	font-weight: inherit;
	letter-spacing: normal;
	text-transform: none;
	margin: 0;
}

body .terania button {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	letter-spacing: inherit;
	text-decoration: none;
	text-transform: none;
	line-height: inherit;
}

body .terania button:is(:hover, :focus, :active) {
	background: none;
	color: inherit;
	box-shadow: none;
}

body .terania a:is(:hover, :focus, :active) {
	color: inherit;
}

/* Botones con fondo propio: mantienen su color en focus/active */
.terania .t-contact-minimized:is(:hover, :focus, :active) {
	background: var(--card);
	color: var(--ivory);
}

.terania .t-contact-drawer__backdrop:is(:hover, :focus, :active) {
	background: rgba(14, 25, 23, .48);
}

.terania :is(.t-lightbox__close, .t-lightbox__nav):is(:focus, :active):not(:hover) {
	background: rgba(31, 48, 45, .72);
	color: #fff;
}

.terania .t-contact-minimize:is(:focus, :active):not(:hover) {
	background: rgba(31, 51, 47, .78);
	color: var(--ivory);
}

.terania .t-contact-drawer__submit:is(:focus, :active):not(:hover) {
	background: var(--olive);
	color: var(--forest-deep);
}

.terania .t-model-thumb:focus:not(.is-active):not(:hover) {
	background: #F6F3EC;
}

.terania .t-gallery-item:is(:hover, :focus, :active) {
	background: #DDD;
}

.terania .t-contact-card__body:is(:hover, :focus, :active) {
	color: var(--ivory);
}

/* --- Portal: lightbox y contacto se mueven a <body> en el sitio publicado --- */
.terania-portal {
	position: relative;
	z-index: 1400;
}

/* --- Editor de Elementor --------------------------------------------------- */

/* Todo visible mientras se edita */
.elementor-editor-active .terania [data-reveal] {
	opacity: 1;
	transform: none;
	filter: none;
}

.elementor-editor-active .terania .t-statement__line span {
	transform: none;
}

/* La tarjeta de contacto siempre visible en el editor para poder revisarla */
.elementor-editor-active .terania .t-contact-widget {
	opacity: 1;
	visibility: visible;
	transform: none;
	pointer-events: auto;
}

/* Aviso que solo ve el editor */
.terania .t-editor-note {
	padding: 14px 18px;
	border: 1px dashed var(--olive);
	border-radius: 12px;
	background: #FFFEF4;
	color: var(--forest-deep);
	font: 500 13px/1.5 var(--font-body);
}
