/* ==========================================================================
   Greatt · estilos del tema
   Todas las medidas salen del Figma a 1920 px y se escalan con --s:
   1 a ≥1920, ancho/1920 entre 1100 y 1919, y valores fijos en tableta y móvil
   (ahí la maquetación es propia, el diseño solo define escritorio).
   ========================================================================== */

@font-face { font-family: 'Inter Tight'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('../fonts/InterTight-VF.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter Tight'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('../fonts/InterTight-VF-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
	--gt-cream: #f7f3ea;
	--gt-ink: #222222;
	--gt-black: #000000;
	--gt-grey: #9f9f9f;
	--gt-lilac: #b09bc8;
	--gt-dark: #1a1916;
	--gt-line: #d9d9d9;
	--gt-navy: #0a0e2f;
	--gt-font: 'Inter Tight', 'Inter', system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
	--s: 1;
	--gt-ease: cubic-bezier(.22, .61, .36, 1);
}
/* Escalones de reserva sin JS (el script de cabecera fija --s = ancho/1920 exacto). */
@media (max-width: 1919px) { :root { --s: .9375; } }
@media (max-width: 1799px) { :root { --s: .875; } }
@media (max-width: 1679px) { :root { --s: .8; } }
@media (max-width: 1535px) { :root { --s: .75; } }
@media (max-width: 1439px) { :root { --s: .7115; } }
@media (max-width: 1365px) { :root { --s: .6667; } }
@media (max-width: 1279px) { :root { --s: .625; } }
@media (max-width: 1199px) { :root { --s: .573; } }
@media (max-width: 1099px) { :root { --s: .62; } }
@media (max-width: 759px) { :root { --s: .44; } }

/* ---- base ---- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
	margin: 0;
	background: var(--gt-cream);
	color: var(--gt-ink);
	font-family: var(--gt-font);
	font-size: max(16px, calc(18px * var(--s)));
	line-height: max(24px, calc(26px * var(--s)));
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
	font-feature-settings: 'kern' 1;
}
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: none; }
h1, h2, h3, h4, p, figure, ul, ol, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
input, textarea, select { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--gt-lilac); outline-offset: 3px; }
.screen-reader-text { 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-link { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--gt-ink); color: var(--gt-cream); padding: 10px 16px; }
.skip-link:focus { left: 8px; }

/* Elementor: contenedores a sangre, sin padding; las imágenes conservan el alto que les da el tema. */
.gt-elementor .elementor-section-wrap, .gt-elementor .elementor { width: 100%; }
.elementor .gt-img--crop, .elementor .gt-tile__img, .elementor .gt-person__img, .elementor .gt-pitem__img, .elementor .gt-phero__img, .elementor .gt-sfloat__img, .elementor .gt-pimg__img, .elementor .gt-psec__img { max-width: none; }
/* Elementor pone .elementor img { height: auto } y .elementor figure { margin: 0 }: las fotos de relleno y las figuras del tema necesitan más especificidad. */
.elementor .gt-tile__img, .elementor .gt-person__img, .elementor .gt-pitem__img, .elementor .gt-phero__img, .elementor .gt-sfloat__img, .elementor .gt-pimg__wide .gt-pimg__img, .elementor .gt-pimg__one .gt-pimg__img, .elementor .gt-pimg__two .gt-pimg__img, .elementor .gt-psec--fixed-h .gt-psec__img { height: 100%; }
.elementor .gt-psec .gt-psec__media { margin-top: calc(var(--gt-it, 92px) * var(--s)); margin-left: calc(var(--gt-ix, -1px) * var(--s)); }
.elementor .gt-single .gt-single__media { margin-bottom: calc(80px * var(--s)); }

/* ---- contenedores y texto ---- */
.gt-container { width: calc(1576px * var(--s)); max-width: calc(100% - 40px); margin-left: auto; margin-right: auto; }
.gt-display-xl { font-size: calc(142px * var(--s)); line-height: 1; font-weight: 500; letter-spacing: 0; }
.gt-display { font-size: calc(120px * var(--s)); line-height: 1; font-weight: 500; letter-spacing: 0; }
.gt-hl { color: var(--gt-grey); }
.gt-text p + p { margin-top: calc(16px * var(--s)); }
/* Máscara de cada línea del título para la aparición: clip-path con holgura (acentos y descendentes),
   sin tocar la maquetación; al terminar la animación no se recorta nada. */
.gt-line { display: block; }
.gt-anim .gt-line { clip-path: inset(-.22em -.1em -.26em 0); }
.gt-anim .is-in > .gt-line { clip-path: none; }
.gt-line__in { display: block; }

/* Etiqueta «01 ———— Rótulo» (44 px de alto) */
.gt-eyebrow { position: relative; display: block; height: calc(44px * var(--s)); font-size: max(13px, calc(18px * var(--s))); line-height: calc(26px * var(--s)); font-weight: 500; }
.gt-eyebrow__num { position: absolute; left: 0; top: 0; }
.gt-eyebrow__line { position: absolute; left: 0; top: calc(31px * var(--s)); width: calc(301px * var(--s)); height: 1px; background: currentColor; opacity: .5; transform-origin: left; }
.gt-eyebrow__label { position: absolute; left: calc(321px * var(--s)); top: calc(18px * var(--s)); font-size: max(12px, calc(16px * var(--s))); font-weight: 400; white-space: nowrap; }
.gt-intro--dark .gt-eyebrow__label, .gt-team--dark .gt-eyebrow__label { font-weight: 300; left: calc(370px * var(--s)); transform: translateX(-50%); }
/* Miga «Proyectos ——» */
.gt-crumb { display: flex; align-items: center; justify-content: space-between; gap: calc(17px * var(--s)); width: calc(240px * var(--s)); margin-left: calc(9px * var(--s)); font-size: max(12px, calc(16px * var(--s))); line-height: calc(26px * var(--s)); }
.gt-crumb__line { display: block; width: calc(154px * var(--s)); height: 1px; background: currentColor; opacity: .5; }

/* Botón: caja de 46 px con flecha + etiqueta */
.gt-btn { display: inline-flex; align-items: center; gap: calc(24px * var(--s)); font-size: max(14px, calc(18px * var(--s))); line-height: calc(26px * var(--s)); font-weight: 500; color: var(--gt-black); }
.gt-btn__box, .gt-abox { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: none; width: calc(46px * var(--s)); height: calc(46px * var(--s)); border-radius: calc(16px * var(--s)); box-shadow: inset 0 0 0 1.5px currentColor; overflow: hidden; transition: background-color .45s var(--gt-ease), color .45s var(--gt-ease); }
.gt-btn__arrow, .gt-abox__arrow { width: calc(17px * var(--s)); height: calc(17px * var(--s)); transition: transform .45s var(--gt-ease); }
.gt-btn--cream { color: var(--gt-cream); }
.gt-btn--cream .gt-btn__box { box-shadow: inset 0 0 0 1px currentColor; }
.gt-btn:hover .gt-btn__box, .gt-btn:focus-visible .gt-btn__box { background: currentColor; }
.gt-btn:hover .gt-btn__arrow, .gt-btn:focus-visible .gt-btn__arrow { color: var(--gt-cream); transform: translateX(calc(3px * var(--s))); }
.gt-btn--cream:hover .gt-btn__arrow { color: var(--gt-ink); }
.gt-btn__label { position: relative; }
.gt-btn__label::after { content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .45s var(--gt-ease); }
.gt-btn:hover .gt-btn__label::after { transform: scaleX(1); }
.gt-abox--52 { width: calc(52px * var(--s)); height: calc(52px * var(--s)); border-radius: 50%; box-shadow: inset 0 0 0 1px currentColor; }
.gt-abox--52 .gt-abox__arrow { width: calc(16px * var(--s)); height: calc(16px * var(--s)); }
.gt-abox--29 { width: calc(29px * var(--s)); height: calc(28px * var(--s)); border-radius: 50%; box-shadow: inset 0 0 0 1px currentColor; }
.gt-abox--29 .gt-abox__arrow { width: calc(11px * var(--s)); height: calc(11px * var(--s)); }
.gt-abox--white { color: #fff; }
.gt-abox--cream { color: var(--gt-cream); }

/* ---- cabecera ---- */
.gt-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; transition: transform .5s var(--gt-ease), background-color .35s var(--gt-ease); }
.gt-header.is-hidden { transform: translateY(-100%); }
.gt-header.is-stuck { background: rgba(247, 243, 234, .86); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.gt-header__bar { position: relative; height: calc(121px * var(--s)); }
.gt-header.is-stuck .gt-header__bar { height: calc(96px * var(--s)); }
.gt-header__logo { position: absolute; left: 0; top: calc(69px * var(--s)); width: calc(194px * var(--s)); height: calc(28px * var(--s)); color: var(--gt-ink); transition: top .35s var(--gt-ease); }
.gt-header.is-stuck .gt-header__logo { top: calc(34px * var(--s)); }
.gt-header__logo svg { width: 100%; height: 100%; }
.gt-header__toggle { position: absolute; right: calc(-21px * var(--s)); top: calc(46px * var(--s)); width: calc(74px * var(--s)); height: calc(75px * var(--s)); color: var(--gt-ink); transition: top .35s var(--gt-ease), transform .35s var(--gt-ease); }
.gt-header.is-stuck .gt-header__toggle { top: calc(11px * var(--s)); }
.gt-header__toggle:hover { transform: scale(1.06); }
.gt-header__burger { width: 100%; height: 100%; }
.gt-header--dark .gt-header__logo, .gt-header--dark .gt-header__toggle { color: var(--gt-cream); }
.gt-header.is-stuck.gt-header--dark { background: rgba(34, 34, 34, .86); }
::selection { background: var(--gt-lilac); color: var(--gt-ink); }

/* Panel del menú (407×569, radio 40, arriba a la derecha) */
.gt-menu { position: fixed; inset: 0; z-index: 60; }
.gt-menu[hidden] { display: none; }
.gt-menu__backdrop { position: absolute; inset: 0; background: transparent; opacity: 0; }
.gt-menu__panel { position: absolute; top: calc(46px * var(--s)); left: calc(50% + 788px * var(--s) - 394px * var(--s)); width: calc(407px * var(--s)); min-height: calc(569px * var(--s)); padding: calc(95px * var(--s)) calc(47px * var(--s)) calc(60px * var(--s)); border-radius: calc(40px * var(--s)); background: var(--gt-ink); color: #fff; transform-origin: calc(100% - 50px) 40px; }
.gt-menu__close { position: absolute; right: calc(10px * var(--s)); top: 0; width: calc(74px * var(--s)); height: calc(75px * var(--s)); color: var(--gt-cream); transition: transform .4s var(--gt-ease); }
.gt-menu__close:hover { transform: rotate(90deg); }
.gt-menu__close svg { width: 100%; height: 100%; }
.gt-menu__list { display: flex; flex-direction: column; gap: calc(18px * var(--s)); }
.gt-menu__list a { display: flex; align-items: center; width: calc(241px * var(--s)); height: calc(51px * var(--s)); padding-left: calc(12px * var(--s)); border-radius: calc(14px * var(--s)); font-size: calc(40.6px * var(--s)); line-height: calc(38.61px * var(--s)); font-weight: 500; color: #fff; transition: background-color .35s var(--gt-ease), color .35s var(--gt-ease), padding-left .35s var(--gt-ease); }
.gt-menu__list a:hover, .gt-menu__list a:focus-visible { background: var(--gt-lilac); color: var(--gt-ink); }
.gt-menu__secondary { display: flex; flex-direction: column; gap: calc(10px * var(--s)); margin-top: calc(45px * var(--s)); padding-left: calc(12px * var(--s)); }
.gt-menu__secondary a { display: block; font-size: calc(20.6px * var(--s)); line-height: calc(28.6px * var(--s)); font-weight: 300; color: var(--gt-grey); transition: color .3s; }
.gt-menu__secondary a:hover { color: #fff; }
.gt-menu-open { overflow: hidden; }

/* ---- cabecera de página ---- */
.gt-hero { position: relative; }
.gt-hero__inner { position: relative; }
.gt-hero--home .gt-hero__inner { padding-top: calc(223px * var(--s)); padding-bottom: calc(var(--gt-pb, 89px) * var(--s)); }
.gt-hero--interior .gt-hero__inner { padding-top: calc(309px * var(--s)); padding-bottom: calc(var(--gt-pb, 128px) * var(--s)); }
.gt-hero__crumb { margin-bottom: calc(18px * var(--s)); }
.gt-hero__title { width: calc(var(--gt-tw, 836px) * var(--s)); max-width: 100%; color: var(--gt-ink); }
.gt-hero--home .gt-hero__title { --gt-tw: 1146px; margin-bottom: calc(58px * var(--s)); }
.gt-hero--interior .gt-hero__title { margin-bottom: calc(53px * var(--s)); }
.gt-hero__text { width: calc(var(--gt-xw, 408px) * var(--s)); max-width: 100%; color: var(--gt-black); }
.gt-hero__btn { margin-top: calc(40px * var(--s)); }
.gt-hero__card { position: absolute; left: calc(1197px * var(--s)); top: calc(687px * var(--s)); display: flex; align-items: center; gap: calc(48px * var(--s)); width: calc(377px * var(--s)); height: calc(138px * var(--s)); padding: calc(39px * var(--s)) calc(51px * var(--s)) calc(39px * var(--s)) calc(52px * var(--s)); border-radius: calc(25px * var(--s)); background: var(--gt-ink); color: var(--gt-cream); font-size: calc(21px * var(--s)); line-height: calc(30px * var(--s)); font-weight: 500; transition: transform .5s var(--gt-ease), box-shadow .5s var(--gt-ease); }
.gt-hero__card:hover { transform: translateY(calc(-4px * var(--s))); box-shadow: 0 calc(24px * var(--s)) calc(40px * var(--s)) rgba(34, 34, 34, .18); }
.gt-hero__card-text { width: calc(180px * var(--s)); }
.gt-hero__card .gt-abox { box-shadow: inset 0 0 0 1.5px currentColor; }
.gt-hero__card:hover .gt-abox { background: var(--gt-cream); color: var(--gt-ink); }

/* ---- mosaico de proyectos (641×641) ---- */
.gt-tiles { overflow: hidden; }
.gt-tiles__grid { display: grid; grid-template-columns: repeat(3, calc(641px * var(--s))); gap: calc(1px * var(--s)); margin-left: calc(-2px * var(--s)); width: calc(1925px * var(--s)); }
.gt-tile { position: relative; display: block; height: calc(641px * var(--s)); overflow: hidden; background: var(--gt-dark); color: #fff; }
.gt-tile__bg { position: absolute; inset: 0; }
.gt-tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--gt-ease), opacity .8s var(--gt-ease); }
.gt-tile__img--hover { opacity: 0; }
.gt-tile:hover .gt-tile__img, .gt-tile:focus-visible .gt-tile__img { transform: scale(1.04); }
.gt-tile:hover .gt-tile__img--hover { opacity: 1; }
.gt-tile__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .3) 0%, rgba(0, 0, 0, 0) 20%), linear-gradient(180deg, rgba(0, 0, 0, 0) 34%, rgba(0, 0, 0, .42) 64%, rgba(0, 0, 0, .72) 100%); transition: opacity .6s; }
.gt-tile__head { position: absolute; left: calc(32px * var(--s)); top: calc(32px * var(--s)); display: flex; gap: calc(15px * var(--s)); font-size: max(10px, calc(11px * var(--s))); line-height: calc(16.5px * var(--s)); letter-spacing: calc(2.64px * var(--s)); text-transform: uppercase; font-weight: 500; }
.gt-tile__foot { position: absolute; left: calc(32px * var(--s)); right: calc(100px * var(--s)); top: calc(574px * var(--s)); bottom: calc(33px * var(--s)); }
.gt-tile__title { position: absolute; left: 0; bottom: 100%; margin-bottom: calc(22px * var(--s)); display: block; max-width: calc(414px * var(--s)); font-size: calc(40.6px * var(--s)); line-height: 1; font-weight: 500; transition: transform .6s var(--gt-ease); }
.gt-tile__text { display: block; max-width: calc(425px * var(--s)); font-size: max(13px, calc(16px * var(--s))); line-height: calc(24px * var(--s)); color: rgba(255, 255, 255, .86); }
.gt-tile .gt-abox { position: absolute; right: calc(32px * var(--s)); bottom: calc(32px * var(--s)); }
.gt-tile:hover .gt-abox { background: #fff; color: var(--gt-ink); }

/* ---- título de sección (claro/oscuro) ---- */
.gt-intro { position: relative; }
.gt-intro--light .gt-intro__inner { padding-top: calc(var(--gt-pt, 0px) * var(--s)); padding-bottom: calc(var(--gt-pb, 0px) * var(--s)); }
.gt-intro--dark { background: var(--gt-ink); color: var(--gt-cream); }
.gt-intro--dark .gt-intro__inner { position: relative; left: calc(-4px * var(--s)); padding-top: calc(var(--gt-pt, 214px) * var(--s)); padding-bottom: calc(var(--gt-pb, 227px) * var(--s)); }
.gt-intro__row { position: relative; margin-top: calc(var(--gt-gt, 55px) * var(--s)); }
.gt-intro__title { width: calc(var(--gt-tw, 790px) * var(--s)); max-width: 100%; }
.gt-intro--dark .gt-intro__title { --gt-tw: 834px; }
.gt-intro__col { width: calc(var(--gt-cw, 418px) * var(--s)); }
.gt-intro--light .gt-intro__col { position: absolute; left: calc(var(--gt-cx, 935px) * var(--s)); bottom: 0; }
.gt-intro--dark .gt-intro__row { display: grid; grid-template-columns: calc(var(--gt-tw, 834px) * var(--s)) 1fr; }
.gt-intro--dark .gt-intro__col { --gt-cw: 412px; grid-column: 2; margin-left: calc((var(--gt-cx, 1044px) - var(--gt-tw, 834px)) * var(--s)); margin-top: calc(var(--gt-co, 273px) * var(--s)); }
.gt-intro__lead { font-size: max(18px, calc(24px * var(--s))); line-height: calc(32px * var(--s)); font-weight: 500; }
.gt-intro__text { margin-top: calc(24px * var(--s)); }
.gt-intro--dark .gt-intro__text { margin-top: calc(28px * var(--s)); }
.gt-intro__btn { margin-top: calc(28px * var(--s)); }
.gt-intro--dark .gt-btn { color: var(--gt-cream); }
.gt-intro--light .gt-intro__lead { width: calc(var(--gt-lw, 299px) * var(--s)); max-width: 100%; }

/* ---- columnas de servicios (375 px) ---- */
.gt-scols { padding-top: calc(var(--gt-pt, 244px) * var(--s)); padding-bottom: calc(var(--gt-pb, 124px) * var(--s)); }
.gt-scols__grid { display: grid; grid-template-columns: repeat(4, calc(375px * var(--s))); gap: calc(25px * var(--s)); }
.gt-scol { position: relative; display: block; min-height: calc(287px * var(--s)); color: var(--gt-black); }
.gt-scol::before { content: ''; position: absolute; inset: 0; background: var(--gt-lilac); transform: scaleY(0); transform-origin: bottom; transition: transform .55s var(--gt-ease); }
.gt-scol > * { position: relative; }
.gt-scol__num { position: absolute; left: 0; top: calc(23px * var(--s)); font-size: max(12px, calc(16px * var(--s))); line-height: calc(26px * var(--s)); font-weight: 500; color: var(--gt-grey); transition: transform .55s var(--gt-ease), color .55s var(--gt-ease); }
.gt-scol__line { position: absolute; left: 0; top: calc(66px * var(--s)); width: 100%; height: 1px; background: var(--gt-grey); opacity: .9; transform-origin: left; transition: transform .55s var(--gt-ease), background-color .55s var(--gt-ease); }
.gt-scol__title { position: absolute; left: 0; top: calc(83px * var(--s)); font-size: max(22px, calc(32px * var(--s))); line-height: calc(38px * var(--s)); font-weight: 500; transition: transform .55s var(--gt-ease); }
.gt-scol__text { position: absolute; left: calc(16px * var(--s)); top: calc(169px * var(--s)); width: calc(249px * var(--s)); font-size: max(13px, calc(16px * var(--s))); line-height: calc(24px * var(--s)); color: var(--gt-ink); opacity: 0; transform: translateY(calc(12px * var(--s))); transition: transform .55s var(--gt-ease), opacity .45s var(--gt-ease); }
.gt-scol.is-active::before { transform: scaleY(1); }
.gt-scol.is-active .gt-scol__num { transform: translate(calc(12px * var(--s)), calc(-1px * var(--s))); color: var(--gt-ink); }
.gt-scol.is-active .gt-scol__line { transform: translate(calc(12px * var(--s)), calc(-1px * var(--s))) scaleX(.7173); background: var(--gt-ink); }
.gt-scol.is-active .gt-scol__title { transform: translate(calc(16px * var(--s)), calc(-7px * var(--s))); }
.gt-scol.is-active .gt-scol__text { opacity: 1; transform: none; }

/* ---- equipo ---- */
.gt-team { position: relative; overflow: hidden; }
.gt-team--light .gt-team__inner { padding-top: calc(var(--gt-pt, 124px) * var(--s)); padding-bottom: calc(var(--gt-pb, 248px) * var(--s)); }
.gt-team--lateral .gt-team__inner { display: flex; align-items: flex-end; }
.gt-team--lateral .gt-team__intro { flex: none; width: calc(705px * var(--s)); }
.gt-team--lateral .gt-team__title { margin-top: calc(64px * var(--s)); width: calc(705px * var(--s)); max-width: 100%; }
.gt-team--lateral .gt-team__text { margin-top: calc(65px * var(--s)); width: calc(516px * var(--s)); max-width: 100%; }
.gt-team--lateral .gt-team__btn { margin-top: calc(65px * var(--s)); }
.gt-team--lateral .gt-team__strip { flex: none; margin-left: calc(93px * var(--s)); width: calc(var(--gt-vw, 100vw) / 2 - 10px * var(--s)); }
/* La tira se recorta en su propio borde (no pisa el texto al deslizar) y llega hasta el borde derecho de la ventana. */
.gt-team__strip { --gt-gap: 9px; overflow: hidden; }
.gt-team__strip .swiper-wrapper { display: flex; }
.gt-person { flex: none; width: calc(404px * var(--s)); margin-right: calc(var(--gt-gap) * var(--s)); }
.gt-person__media { display: block; position: relative; width: 100%; height: calc(540px * var(--s)); background: var(--gt-line); overflow: hidden; }
.gt-person__frame { position: absolute; inset: 0; display: block; overflow: hidden; transition: transform 1s var(--gt-ease); }
.gt-person:hover .gt-person__frame { transform: scale(1.04); }
.gt-person__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform-origin: 0 0; }
.gt-person__caption { display: block; margin-top: calc(19px * var(--s)); }
.gt-person__name { display: block; font-size: max(15px, calc(18px * var(--s))); line-height: calc(32px * var(--s)); font-weight: 500; }
.gt-person__role { display: block; font-size: max(13px, calc(16px * var(--s))); line-height: calc(26px * var(--s)); }
.gt-team--dark { background: var(--gt-ink); color: var(--gt-cream); }
.gt-team--apilado .gt-team__inner { position: relative; left: calc(-5px * var(--s)); padding-top: calc(var(--gt-pt, 214px) * var(--s)); padding-bottom: calc(var(--gt-pb, 282px) * var(--s)); }
.gt-team__row { position: relative; display: grid; grid-template-columns: calc(834px * var(--s)) 1fr; margin-top: calc(55px * var(--s)); }
.gt-team--apilado .gt-team__title { width: calc(834px * var(--s)); }
.gt-team__col { grid-column: 2; width: calc(412px * var(--s)); margin-left: calc(210px * var(--s)); margin-top: calc(273px * var(--s)); }
.gt-team__lead { font-size: max(18px, calc(24px * var(--s))); line-height: calc(32px * var(--s)); font-weight: 500; }
.gt-team--apilado .gt-team__text { margin-top: calc(28px * var(--s)); }
.gt-team--apilado .gt-team__strip { --gt-gap: 20px; margin-top: calc(var(--gt-st, 178px) * var(--s)); width: calc(var(--gt-vw, 100vw) / 2 + 788px * var(--s)); }
.gt-team--apilado .gt-person__media { height: calc(541px * var(--s)); }
.gt-team--apilado .gt-person__caption { margin-top: calc(25px * var(--s)); }
.gt-team__strip.swiper-grab, .gt-team__strip .swiper-wrapper { cursor: grab; }

/* ---- testimonios ---- */
.gt-testi { padding-top: calc(var(--gt-pt, 248px) * var(--s)); padding-bottom: calc(var(--gt-pb, 248px) * var(--s)); }
.gt-testi__title { margin-top: calc(64px * var(--s)); width: calc(798px * var(--s)); max-width: 100%; }
.gt-testi__grid { display: grid; grid-template-columns: repeat(3, calc(468px * var(--s))); gap: calc(83px * var(--s)); margin-top: calc(var(--gt-gg, 136px) * var(--s)); }
.gt-quote__logo { display: block; height: calc(23px * var(--s)); }
.gt-quote__logo-img { height: 100%; width: auto; }
.gt-quote__text { margin-top: calc(40px * var(--s)); font-size: max(14px, calc(16px * var(--s))); line-height: calc(26px * var(--s)); }
.gt-quote__who { display: block; margin-top: calc(40px * var(--s)); }
.gt-quote__name { display: block; font-size: max(15px, calc(18px * var(--s))); line-height: calc(32px * var(--s)); font-weight: 500; }
.gt-quote__role { display: block; font-size: max(13px, calc(16px * var(--s))); line-height: calc(26px * var(--s)); color: var(--gt-grey); }

/* ---- bloque «Hablemos» + pie (1920×1257, lila) ---- */
.gt-footer { position: relative; background: var(--gt-lilac); color: var(--gt-ink); }
.gt-cta { position: relative; padding-top: calc(103px * var(--s)); }
.gt-cta .gt-eyebrow { margin-left: calc(1px * var(--s)); }
.gt-cta__title { margin-top: calc(55px * var(--s)); margin-left: calc(4px * var(--s)); width: calc(685px * var(--s)); max-width: 100%; }
.gt-cta__text { margin-top: calc(66px * var(--s)); margin-left: calc(4px * var(--s)); width: calc(516px * var(--s)); max-width: 100%; }
.gt-cta__btn { margin-top: calc(38px * var(--s)); margin-left: calc(7px * var(--s)); }
.gt-cta__contact { position: absolute; right: calc(9px * var(--s)); bottom: 0; display: flex; flex-direction: column; align-items: flex-end; gap: calc(10px * var(--s)); font-size: max(18px, calc(24px * var(--s))); line-height: calc(32px * var(--s)); font-weight: 500; text-align: right; }
.gt-cta__contact a, .gt-footer__contact a, .gt-footer__list a, .gt-footer__legal-list a { position: relative; }
.gt-cta__contact a::after, .gt-footer__contact a::after, .gt-footer__list a::after, .gt-footer__legal-list a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .4s var(--gt-ease); }
.gt-cta__contact a:hover::after, .gt-footer__contact a:hover::after, .gt-footer__list a:hover::after, .gt-footer__legal-list a:hover::after { transform: scaleX(1); transform-origin: left; }
.gt-footer__grid { position: relative; display: grid; grid-template-columns: 1fr auto 1fr; margin-top: calc(120px * var(--s)); padding-top: calc(58px * var(--s)); }
.gt-footer--solo .gt-footer__grid { margin-top: calc(103px * var(--s)); }
.gt-footer__grid::before { content: ''; position: absolute; left: calc(8px * var(--s)); right: calc(-1px * var(--s)); top: 0; height: 1px; background: var(--gt-ink); opacity: .5; }
.gt-footer__nav { padding-left: calc(8px * var(--s)); }
.gt-footer__list { display: flex; flex-direction: column; gap: calc(12px * var(--s)); }
.gt-footer__list li, .gt-footer__legal-list li { line-height: 0; }
.gt-footer__list a, .gt-footer__legal-list a { display: inline-block; }
.gt-footer__list a, .gt-footer__contact { font-size: max(15px, calc(18px * var(--s))); line-height: calc(24px * var(--s)); font-weight: 500; }
.gt-footer__mark { display: block; width: calc(124px * var(--s)); height: calc(124px * var(--s)); margin-left: calc(-5px * var(--s)); margin-top: calc(4px * var(--s)); color: var(--gt-ink); transition: transform .5s var(--gt-ease); }
.gt-footer__mark:hover { transform: rotate(-6deg); }
.gt-footer__mark svg { width: 100%; height: 100%; }
.gt-footer__contact { display: flex; flex-direction: column; align-items: flex-end; gap: calc(12px * var(--s)); padding-right: calc(9px * var(--s)); text-align: right; }
.gt-footer__bottom { display: flex; justify-content: space-between; align-items: flex-end; margin-top: calc(92px * var(--s)); padding: 0 calc(9px * var(--s)) calc(131px * var(--s)) calc(5px * var(--s)); font-size: max(11px, calc(12px * var(--s))); line-height: calc(18px * var(--s)); }
.gt-footer__legal-list { display: flex; gap: calc(23px * var(--s)); }
.gt-footer__legal-list a { font-size: max(11px, calc(12px * var(--s))); line-height: calc(18px * var(--s)); }

/* ---- listado de proyectos (778 px, dos columnas) ---- */
.gt-plist { padding-bottom: calc(var(--gt-pb, 200px) * var(--s)); }
.gt-plist__grid { display: grid; grid-template-columns: repeat(2, calc(778px * var(--s))); column-gap: calc(20px * var(--s)); row-gap: calc(var(--gt-rg, 115px) * var(--s)); align-items: end; }
.gt-pitem__media { display: block; position: relative; width: 100%; height: calc(973px * var(--s)); background: var(--gt-dark); overflow: hidden; }
.gt-pitem--bajo .gt-pitem__media { height: calc(764px * var(--s)); }
.gt-pitem__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--gt-ease); }
.gt-pitem:hover .gt-pitem__img, .gt-pitem:focus-within .gt-pitem__img { transform: scale(1.04); }
.gt-pitem__caption { display: flex; gap: calc(27px * var(--s)); margin-top: calc(39px * var(--s)); }
.gt-pitem__num { flex: none; font-size: max(12px, calc(15px * var(--s))); line-height: calc(26px * var(--s)); font-weight: 500; }
.gt-pitem__body { width: calc(648px * var(--s)); max-width: 100%; }
.gt-pitem__title { font-size: calc(40.6px * var(--s)); line-height: 1; padding-bottom: calc(7.4px * var(--s)); font-weight: 500; }
.gt-pitem__title a { position: relative; }
.gt-pitem__title a::after { content: ''; position: absolute; left: 0; right: 0; bottom: calc(2px * var(--s)); height: 2px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .5s var(--gt-ease); }
.gt-pitem:hover .gt-pitem__title a::after { transform: scaleX(1); }
.gt-pitem__claim { margin-top: calc(5px * var(--s)); font-size: max(16px, calc(21px * var(--s))); line-height: calc(32px * var(--s)); font-weight: 500; }
.gt-pitem__text { margin-top: calc(5px * var(--s)); line-height: calc(28px * var(--s)); color: var(--gt-grey); }
.gt-pitem__tags { margin-top: calc(5px * var(--s)); font-size: max(13px, calc(16px * var(--s))); line-height: calc(26px * var(--s)); color: var(--gt-black); }

/* ---- lista de servicios (filas de 148 px) ---- */
.gt-slist { position: relative; padding-top: calc(var(--gt-pt, 0px) * var(--s)); padding-bottom: calc(var(--gt-pb, 189px) * var(--s)); }
.gt-slist .gt-container { position: relative; }
.gt-slist__rows { margin-top: calc(var(--gt-rt, 156px) * var(--s)); }
.gt-srow { position: relative; margin-bottom: calc(52px * var(--s)); }
.gt-srow:last-child { margin-bottom: 0; }
.gt-srow__link { position: relative; display: block; height: calc(148px * var(--s)); padding: calc(10px * var(--s)) calc(10px * var(--s)) calc(47px * var(--s)); border-bottom: 1px solid var(--gt-grey); color: var(--gt-ink); }
.gt-srow__bg { position: absolute; left: 0; right: 0; top: calc(-54px * var(--s)); bottom: 0; background: var(--gt-lilac); transform: scaleY(0); transform-origin: bottom; transition: transform .5s var(--gt-ease); }
.gt-srow.is-active .gt-srow__bg { transform: scaleY(1); }
.gt-srow__title { position: relative; display: block; font-size: calc(92px * var(--s)); line-height: calc(90px * var(--s)); font-weight: 500; white-space: nowrap; }
.gt-srow__text { position: absolute; left: calc(1112px * var(--s)); top: calc(27px * var(--s)); width: calc(389px * var(--s)); line-height: calc(28px * var(--s)); }
.gt-slist__float { position: absolute; left: 0; top: 0; width: calc(361px * var(--s)); height: calc(451px * var(--s)); pointer-events: none; z-index: 3; opacity: 0; transform: translateY(-50%); }
.gt-sfloat { position: absolute; inset: 0; background: var(--gt-dark); overflow: hidden; opacity: 0; transform: scale(.96); transition: opacity .35s var(--gt-ease), transform .5s var(--gt-ease); }
.gt-sfloat.is-on { opacity: 1; transform: none; }
.gt-sfloat__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gt-sfloat__label { position: absolute; left: calc(25px * var(--s)); top: calc(401px * var(--s)); font-size: calc(20.6px * var(--s)); line-height: 1; font-weight: 500; color: #fff; }
.gt-sfloat .gt-abox { position: absolute; left: calc(311px * var(--s)); top: calc(396px * var(--s)); }

/* ---- logos ---- */
.gt-logos { padding-top: calc(var(--gt-pt, 223px) * var(--s)); padding-bottom: calc(var(--gt-pb, 315px) * var(--s)); overflow: hidden; }
.gt-logos__slider { --gt-gap: 88px; width: 100%; overflow: hidden; }
.gt-logos__slider .swiper-wrapper { transition-timing-function: linear !important; align-items: center; }
.gt-logos__item { width: auto; height: calc(81px * var(--s)); display: flex; align-items: center; }
.gt-logos__img { height: calc(var(--gt-lh, 44px) * var(--s)); width: auto; max-width: none; }

/* ---- proyecto: cabecera y bloques ---- */
.gt-phero__inner { position: relative; min-height: calc(1034px * var(--s)); padding-top: calc(659px * var(--s)); }
.gt-phero__text { width: calc(678px * var(--s)); max-width: 100%; }
.gt-phero__title { font-size: calc(122px * var(--s)); line-height: calc(117px * var(--s)); font-weight: 500; padding-bottom: calc(2px * var(--s)); }
.gt-phero__claim { margin-top: calc(32px * var(--s)); font-size: max(20px, calc(32px * var(--s))); line-height: calc(26px * var(--s)); color: var(--gt-black); }
.gt-phero__media { position: absolute; right: 0; top: calc(283px * var(--s)); width: calc(778px * var(--s)); height: calc(751px * var(--s)); background: var(--gt-dark); overflow: hidden; }
.gt-phero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gt-pblock { padding-top: calc(var(--gt-pt, 0px) * var(--s)); padding-bottom: calc(var(--gt-pb, 0px) * var(--s)); }
.gt-pblock__inner { display: grid; grid-template-columns: calc(var(--gt-cx, 532px) * var(--s)) 1fr; }
.gt-plabel { font-size: max(13px, calc(18px * var(--s))); line-height: calc(26px * var(--s)); font-weight: 500; letter-spacing: calc(1.08px * var(--s)); text-transform: uppercase; color: var(--gt-grey); margin-top: calc(var(--gt-lt, 0px) * var(--s)); }
.gt-pintro { --gt-pt: 159px; --gt-pb: 127px; }
.gt-pintro .gt-plabel { --gt-lt: 11px; }
.gt-pintro__list { margin-top: calc(26px * var(--s)); font-size: max(15px, calc(18px * var(--s))); line-height: calc(32px * var(--s)); font-weight: 500; }
.gt-pintro__text { width: calc(var(--gt-xw, 1042px) * var(--s)); max-width: 100%; font-size: max(24px, calc(42px * var(--s))); line-height: calc(53px * var(--s)); font-weight: 500; color: var(--gt-black); }
.gt-psec__heading { font-weight: 500; color: var(--gt-black); width: calc(var(--gt-tw, 700px) * var(--s)); max-width: 100%; }
.gt-psec--h24 .gt-psec__heading { font-size: max(18px, calc(24px * var(--s))); line-height: calc(26px * var(--s)); }
.gt-psec--h42 .gt-psec__heading { font-size: max(24px, calc(42px * var(--s))); line-height: calc(53px * var(--s)); }
.gt-psec--h56 .gt-psec__heading, .gt-palette .gt-psec__heading { font-size: max(28px, calc(56px * var(--s))); line-height: calc(60px * var(--s)); }
.gt-psec__text { margin-top: calc(var(--gt-xt, 27px) * var(--s)); width: calc(var(--gt-xw, 908px) * var(--s)); max-width: 100%; }
.gt-psec--h24 .gt-psec__text { --gt-xt: 24px; }
/* div, no figure: Elementor pone margin:0 a las figure de los widgets con mucha especificidad */
.gt-psec__media { position: relative; margin-top: calc(var(--gt-it, 92px) * var(--s)); margin-left: calc(var(--gt-ix, -1px) * var(--s)); width: calc(var(--gt-iw, 778px) * var(--s)); max-width: 100%; background: var(--gt-line); overflow: hidden; }
.gt-psec--fixed-h .gt-psec__media { height: calc(var(--gt-ih, 752px) * var(--s)); }
.gt-psec__img { width: 100%; height: auto; }
.gt-psec--fixed-h .gt-psec__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gt-ptable { position: relative; margin-top: calc(var(--gt-tt, 72px) * var(--s)); margin-left: calc(var(--gt-tx, 69px) * var(--s)); width: calc(839px * var(--s)); max-width: 100%; display: flex; flex-direction: column; gap: calc(13px * var(--s)); }
.gt-ptable__row { position: relative; display: grid; grid-template-columns: calc(219px * var(--s)) 1fr; align-items: center; min-height: calc(120px * var(--s)); padding: calc(10px * var(--s)) calc(10px * var(--s)) calc(10px * var(--s)) calc(24px * var(--s)); }
.gt-ptable__key { font-size: max(20px, calc(28px * var(--s))); line-height: calc(24px * var(--s)); }
.gt-ptable__value { max-width: calc(512px * var(--s)); font-size: max(14px, calc(16px * var(--s))); line-height: calc(24px * var(--s)); }
.gt-ptable__conn { position: absolute; left: calc(-69px * var(--s)); top: calc(72px * var(--s)); width: calc(49px * var(--s)); height: calc(99px * var(--s)); color: #808080; }
.gt-ptable__row:nth-child(n+2) .gt-ptable__conn { top: calc(64px * var(--s)); }
.gt-pimg { padding-top: calc(var(--gt-pt, 0px) * var(--s)); padding-bottom: calc(var(--gt-pb, 0px) * var(--s)); }
.gt-pimg__wide { position: relative; width: 100%; height: calc(var(--gt-h, 810px) * var(--s)); background: var(--gt-dark); overflow: hidden; }
.gt-pimg__wide .gt-pimg__img, .gt-pimg__one .gt-pimg__img, .gt-pimg__two .gt-pimg__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gt-pimg .gt-img--crop { object-fit: fill; transform-origin: 0 0; }
.gt-pimg__pair { position: relative; height: calc((var(--gt-h1, 581px) + var(--gt-dy2, 6px)) * var(--s)); }
.gt-pimg__one { position: absolute; left: calc(1px * var(--s)); top: 0; width: calc(var(--gt-w1, 774px) * var(--s)); height: calc(var(--gt-h1, 581px) * var(--s)); background: var(--gt-line); overflow: hidden; }
.gt-pimg__two { position: absolute; left: calc(var(--gt-x2, 844px) * var(--s)); top: calc((var(--gt-h1, 581px) - var(--gt-h2, 468px) + var(--gt-dy2, 6px)) * var(--s)); width: calc(var(--gt-w2, 730px) * var(--s)); height: calc(var(--gt-h2, 468px) * var(--s)); background: var(--gt-line); overflow: hidden; }
.gt-pimg__center { display: flex; flex-direction: column; align-items: center; }
.gt-pimg__center .gt-pimg__img { width: calc(var(--gt-w, 447px) * var(--s)); height: auto; margin-top: calc(var(--gt-cg, -13px) * var(--s)); }
.gt-pimg__caption { font-size: max(13px, calc(18px * var(--s))); line-height: calc(26px * var(--s)); font-weight: 300; font-style: italic; letter-spacing: calc(1.08px * var(--s)); text-transform: uppercase; }
.gt-pimg__panel { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: calc(var(--gt-h, 759px) * var(--s)); background: var(--gt-bg, var(--gt-navy)); color: var(--gt-fg, var(--gt-cream)); }
.gt-pimg__panel .gt-pimg__caption { position: absolute; top: calc(var(--gt-ct, 56px) * var(--s)); left: 50%; transform: translateX(-50%); }
.gt-pimg__panel .gt-pimg__img { width: calc(var(--gt-w, 698px) * var(--s)); height: auto; }
.gt-pimg--panel-top .gt-pimg__panel { align-items: flex-start; }
.gt-pimg--panel-top .gt-pimg__panel .gt-pimg__img { margin-top: calc(var(--gt-ity, 354px) * var(--s)); }
.gt-venn { padding-top: calc(var(--gt-pt, 104px) * var(--s)); padding-bottom: calc(var(--gt-pb, 216px) * var(--s)); }
.gt-venn__box { position: relative; margin-left: calc(var(--gt-ox, 538px) * var(--s)); width: calc(734px * var(--s)); height: calc(432px * var(--s)); }
.gt-venn__svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.gt-venn__label { position: absolute; top: 50%; transform: translate(-50%, -50%); text-align: center; font-size: max(16px, calc(24px * var(--s))); line-height: calc(26px * var(--s)); font-weight: 500; white-space: nowrap; }
.gt-venn__label--l { left: calc(183.5px * var(--s)); color: var(--gt-c, var(--gt-navy)); }
.gt-venn__label--r { left: calc(550px * var(--s)); margin-top: calc(5px * var(--s)); }
.gt-venn__mark { position: absolute; left: calc(302px * var(--s)); top: calc(64px * var(--s)); width: calc(130px * var(--s)); height: calc(303px * var(--s)); }
.gt-venn__mark-img { width: 100%; height: 100%; }
.gt-palette { padding-top: calc(var(--gt-pt, 152px) * var(--s)); padding-bottom: calc(var(--gt-pb, 180px) * var(--s)); }
.gt-palette__inner { position: relative; display: flex; justify-content: flex-end; }
.gt-palette__text { position: absolute; left: calc(var(--gt-tx, 133px) * var(--s)); top: calc(var(--gt-tt, 194px) * var(--s)); width: calc(var(--gt-xw, 561px) * var(--s)); }
.gt-palette .gt-psec__text { --gt-xt: 25px; --gt-xw: 534px; }
.gt-palette__swatches { width: calc(var(--gt-pw, 652px) * var(--s)); }
.gt-swatch { display: grid; grid-template-columns: calc(var(--gt-mw, 326px) * var(--s)) 1fr; height: calc(var(--gt-sh, 237px) * var(--s)); }
.gt-swatch__main { position: relative; padding: calc(27px * var(--s)) calc(25px * var(--s)); }
.gt-swatch__name { display: block; font-size: max(15px, calc(21px * var(--s))); line-height: calc(28px * var(--s)); font-weight: 500; }
.gt-swatch__data { display: flex; flex-direction: column; gap: calc(2px * var(--s)); margin-top: calc(9px * var(--s)); font-size: max(12px, calc(18px * var(--s))); line-height: calc(26px * var(--s)); }
.gt-swatch__data b { font-weight: 600; }
.gt-swatch__tints { display: grid; grid-template-columns: repeat(4, 1fr); }
.gt-swatch__tint { position: relative; display: block; }
.gt-swatch__tint i { position: absolute; left: calc(28px * var(--s)); top: calc(21px * var(--s)); writing-mode: vertical-rl; font-style: normal; font-weight: 600; font-size: max(12px, calc(18px * var(--s))); line-height: calc(26px * var(--s)); }
.gt-type { padding-top: calc(var(--gt-pt, 180px) * var(--s)); padding-bottom: calc(var(--gt-pb, 200px) * var(--s)); }
.gt-type__img { width: 100%; height: auto; }
.gt-type__row { padding-bottom: calc(14px * var(--s)); border-bottom: 1px solid var(--gt-grey); margin-bottom: calc(61px * var(--s)); }
.gt-type__row:last-child { margin-bottom: 0; }
.gt-type__label { font-size: max(12px, calc(16px * var(--s))); line-height: calc(24px * var(--s)); font-weight: 500; color: var(--gt-grey); text-transform: uppercase; }
.gt-type__sample { margin-top: calc(14px * var(--s)); font-size: max(32px, calc(84px * var(--s))); line-height: calc(112px * var(--s)); }

/* ---- preguntas frecuentes, contacto, páginas de texto, 404 ---- */
.gt-faq, .gt-contact { padding-bottom: calc(var(--gt-pb, 200px) * var(--s)); }
.gt-faq__row, .gt-contact__row { display: grid; grid-template-columns: calc(705px * var(--s)) 1fr; column-gap: calc(93px * var(--s)); margin-top: calc(55px * var(--s)); align-items: start; }
.gt-faq__list { margin-top: calc(12px * var(--s)); border-top: 1px solid var(--gt-grey); }
.gt-faq__item { border-bottom: 1px solid var(--gt-grey); }
.gt-faq__btn { display: flex; align-items: center; justify-content: space-between; gap: calc(40px * var(--s)); width: 100%; padding: calc(28px * var(--s)) 0; text-align: left; font-size: max(18px, calc(24px * var(--s))); line-height: calc(32px * var(--s)); font-weight: 500; }
.gt-faq__plus { position: relative; flex: none; width: calc(46px * var(--s)); height: calc(46px * var(--s)); border-radius: calc(16px * var(--s)); box-shadow: inset 0 0 0 1.5px currentColor; transition: background-color .4s var(--gt-ease), color .4s var(--gt-ease); }
.gt-faq__plus::before, .gt-faq__plus::after { content: ''; position: absolute; left: 50%; top: 50%; width: calc(14px * var(--s)); height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform .4s var(--gt-ease); }
.gt-faq__plus::after { transform: translate(-50%, -50%) rotate(90deg); }
.gt-faq__btn[aria-expanded="true"] .gt-faq__plus { background: var(--gt-ink); color: var(--gt-cream); }
.gt-faq__btn[aria-expanded="true"] .gt-faq__plus::after { transform: translate(-50%, -50%) rotate(0); }
.gt-faq__a { overflow: hidden; }
.gt-faq__a[hidden] { display: none; }
.gt-faq__a-in { padding: 0 calc(120px * var(--s)) calc(36px * var(--s)) 0; }
.gt-contact__row--solo { grid-template-columns: calc(532px * var(--s)) 1fr; column-gap: 0; margin-top: 0; }
.gt-contact__row--solo .gt-contact__data { margin-top: calc(6px * var(--s)); }
.gt-contact__text { margin-top: calc(40px * var(--s)); width: calc(516px * var(--s)); max-width: 100%; }
.gt-contact__data { display: flex; flex-direction: column; gap: calc(6px * var(--s)); margin-top: calc(40px * var(--s)); font-size: max(16px, calc(21px * var(--s))); line-height: calc(32px * var(--s)); font-weight: 500; }
.gt-contact__data span { color: var(--gt-grey); font-weight: 400; }
.gt-contact__form { padding-top: calc(12px * var(--s)); }
.gt-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: calc(24px * var(--s)); }
.gt-field { display: block; margin-bottom: calc(28px * var(--s)); }
.gt-field__label { display: block; font-size: max(12px, calc(14px * var(--s))); line-height: calc(20px * var(--s)); letter-spacing: calc(1px * var(--s)); text-transform: uppercase; color: var(--gt-grey); margin-bottom: calc(8px * var(--s)); }
.gt-field__input { display: block; width: 100%; padding: calc(12px * var(--s)) 0; border: 0; border-bottom: 1px solid var(--gt-ink); border-radius: 0; background: transparent; font-size: max(16px, calc(21px * var(--s))); line-height: calc(32px * var(--s)); transition: border-color .3s; }
.gt-field__input:focus { outline: none; border-bottom-color: var(--gt-lilac); border-bottom-width: 2px; }
textarea.gt-field__input { resize: vertical; min-height: calc(120px * var(--s)); }
.gt-check { display: flex; gap: calc(12px * var(--s)); align-items: flex-start; font-size: max(13px, calc(16px * var(--s))); line-height: calc(24px * var(--s)); }
.gt-check input { margin: calc(4px * var(--s)) 0 0; accent-color: var(--gt-ink); }
.gt-check a { text-decoration: underline; text-underline-offset: 3px; }
.gt-form__hp { position: absolute; left: -9999px; }
.gt-form__actions { display: flex; align-items: center; gap: calc(32px * var(--s)); margin-top: calc(36px * var(--s)); }
.gt-form__msg { font-size: max(13px, calc(16px * var(--s))); line-height: calc(24px * var(--s)); }
.gt-form__msg.is-error { color: #a33; }
.gt-form.is-sending { opacity: .6; pointer-events: none; }

/* ---- formulario de Elementor Pro dentro del bloque de contacto (plantilla elegida en el widget):
        mismas reglas que el formulario del tema; !important porque el widget de Pro imprime sus
        propios estilos con el id del elemento. ---- */
.gt-contact__tpl .elementor-form-fields-wrapper { display: flex; flex-wrap: wrap; margin: 0 calc(-12px * var(--s)); }
.gt-contact__tpl .elementor-field-group { padding: 0 calc(12px * var(--s)) !important; margin-bottom: calc(28px * var(--s)) !important; align-items: stretch; }
.gt-contact__tpl .elementor-field-label { display: block; font-size: max(12px, calc(14px * var(--s))) !important; line-height: calc(20px * var(--s)) !important; letter-spacing: calc(1px * var(--s)); text-transform: uppercase; color: var(--gt-grey) !important; font-weight: 400 !important; margin-bottom: calc(8px * var(--s)) !important; }
.gt-contact__tpl .elementor-field-textual { display: block; width: 100%; min-height: 0; padding: calc(12px * var(--s)) 0 !important; border: 0 !important; border-bottom: 1px solid var(--gt-ink) !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; color: var(--gt-ink) !important; font-family: var(--gt-font) !important; font-size: max(16px, calc(21px * var(--s))) !important; line-height: calc(32px * var(--s)) !important; transition: border-color .3s; }
.gt-contact__tpl .elementor-field-textual:focus { outline: none; border-bottom-color: var(--gt-lilac) !important; border-bottom-width: 2px !important; }
.gt-contact__tpl textarea.elementor-field-textual { resize: vertical; min-height: calc(120px * var(--s)); }
.gt-contact__tpl .elementor-field-type-radio .elementor-field-subgroup { display: flex; flex-wrap: wrap; gap: calc(10px * var(--s)); padding-top: calc(4px * var(--s)); }
.gt-contact__tpl .elementor-field-type-radio .elementor-field-option { position: relative; }
.gt-contact__tpl .elementor-field-type-radio input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.gt-contact__tpl .elementor-field-type-radio .elementor-field-option label { display: inline-flex; align-items: center; margin: 0; padding: calc(9px * var(--s)) calc(18px * var(--s)); border-radius: 999px; box-shadow: inset 0 0 0 1px var(--gt-ink); font-size: max(13px, calc(16px * var(--s))); line-height: calc(24px * var(--s)); color: var(--gt-ink); cursor: pointer; transition: background-color .3s var(--gt-ease), color .3s var(--gt-ease); }
.gt-contact__tpl .elementor-field-type-radio input:checked + label, .gt-contact__tpl .elementor-field-type-radio .elementor-field-option label:hover { background: var(--gt-ink); color: var(--gt-cream); }
.gt-contact__tpl .elementor-field-type-radio input:focus-visible + label { outline: 2px solid var(--gt-lilac); outline-offset: 3px; }
.gt-contact__tpl .elementor-field-type-acceptance .elementor-field-subgroup { display: block; }
.gt-contact__tpl .elementor-field-type-acceptance .elementor-field-option { display: flex; gap: calc(12px * var(--s)); align-items: flex-start; font-size: max(13px, calc(16px * var(--s))); line-height: calc(24px * var(--s)); }
.gt-contact__tpl .elementor-field-type-acceptance input { margin: calc(4px * var(--s)) 0 0; accent-color: var(--gt-ink); flex: none; width: auto; }
.gt-contact__tpl .elementor-field-type-acceptance label { margin: 0; font-size: inherit; line-height: inherit; color: var(--gt-ink); }
.gt-contact__tpl .elementor-field-type-acceptance a { text-decoration: underline; text-underline-offset: 3px; }
.gt-contact__tpl .elementor-field-type-submit { margin-top: calc(8px * var(--s)) !important; }
.gt-contact__tpl .elementor-button { position: relative; display: inline-flex !important; align-items: center; gap: calc(24px * var(--s)); width: auto !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--gt-black) !important; font-family: var(--gt-font) !important; font-size: max(14px, calc(18px * var(--s))) !important; line-height: calc(26px * var(--s)) !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important; }
.gt-contact__tpl .elementor-button::before { content: ''; flex: none; width: calc(46px * var(--s)); height: calc(46px * var(--s)); border-radius: calc(16px * var(--s)); box-shadow: inset 0 0 0 1.5px currentColor; transition: background-color .45s var(--gt-ease); }
.gt-contact__tpl .elementor-button::after { content: ''; position: absolute; left: calc(14.5px * var(--s)); top: calc(14.5px * var(--s)); width: calc(17px * var(--s)); height: calc(17px * var(--s)); background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17 17'%3E%3Cpath d='M1.5 8.5h13.5M9.7 3.3l5.2 5.2-5.2 5.2' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17 17'%3E%3Cpath d='M1.5 8.5h13.5M9.7 3.3l5.2 5.2-5.2 5.2' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .45s var(--gt-ease), background-color .45s var(--gt-ease); }
.gt-contact__tpl .elementor-button:hover::before, .gt-contact__tpl .elementor-button:focus-visible::before { background-color: currentColor; }
.gt-contact__tpl .elementor-button:hover::after, .gt-contact__tpl .elementor-button:focus-visible::after { background-color: var(--gt-cream); transform: translateX(calc(3px * var(--s))); }
.gt-contact__tpl .elementor-button-content-wrapper { position: relative; display: inline-block; }
.gt-contact__tpl .elementor-button-content-wrapper::after { content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .45s var(--gt-ease); }
.gt-contact__tpl .elementor-button:hover .elementor-button-content-wrapper::after { transform: scaleX(1); }
.gt-contact__tpl .elementor-message { margin: calc(16px * var(--s)) 0 0 !important; padding: 0 !important; font-size: max(13px, calc(16px * var(--s))) !important; line-height: calc(24px * var(--s)) !important; color: var(--gt-ink) !important; }
.gt-contact__tpl .elementor-message::before { display: none !important; }
.gt-contact__tpl .elementor-message-danger, .gt-contact__tpl .elementor-help-inline { color: #a33 !important; }
.gt-contact__tpl .elementor-form-help-inline { display: block; width: 100%; margin: calc(6px * var(--s)) 0 0 !important; font-size: max(12px, calc(14px * var(--s))) !important; line-height: calc(20px * var(--s)) !important; }
.gt-contact__tpl .elementor-field-type-honeypot { position: absolute; left: -9999px; }
.gt-page { padding-top: calc(309px * var(--s)); padding-bottom: calc(200px * var(--s)); }
.gt-page__head { margin-bottom: calc(80px * var(--s)); }
.gt-page__title { font-size: calc(120px * var(--s)); line-height: 1; font-weight: 500; width: calc(1038px * var(--s)); max-width: 100%; margin-top: calc(18px * var(--s)); }
.gt-prose { width: calc(908px * var(--s)); max-width: 100%; margin-left: calc(532px * var(--s)); }
.gt-prose > * + * { margin-top: calc(16px * var(--s)); }
.gt-prose h2, .gt-prose h3, .gt-prose h4 { font-weight: 500; color: var(--gt-black); margin-top: calc(56px * var(--s)); }
.gt-prose h2 { font-size: max(22px, calc(32px * var(--s))); line-height: calc(38px * var(--s)); }
.gt-prose h3 { font-size: max(18px, calc(24px * var(--s))); line-height: calc(32px * var(--s)); }
.gt-prose h4 { font-size: max(16px, calc(21px * var(--s))); line-height: calc(28px * var(--s)); }
.gt-prose ul, .gt-prose ol { padding-left: calc(24px * var(--s)); list-style: disc; }
.gt-prose ol { list-style: decimal; }
.gt-prose li + li { margin-top: calc(6px * var(--s)); }
.gt-prose a { text-decoration: underline; text-underline-offset: 3px; }
.gt-prose img { margin: calc(40px * var(--s)) 0; }
.gt-single__media { margin-bottom: calc(80px * var(--s)); }
.gt-posts { display: grid; grid-template-columns: repeat(2, calc(778px * var(--s))); gap: calc(115px * var(--s)) calc(20px * var(--s)); }
.gt-post-card__media { display: block; height: calc(778px * var(--s) * 520 / 778); background: var(--gt-dark); overflow: hidden; }
.gt-post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.gt-post-card__date { margin-top: calc(24px * var(--s)); font-size: max(12px, calc(15px * var(--s))); color: var(--gt-grey); }
.gt-post-card__title { margin-top: calc(6px * var(--s)); font-size: max(22px, calc(32px * var(--s))); line-height: calc(38px * var(--s)); font-weight: 500; }
.gt-post-card__excerpt { margin-top: calc(8px * var(--s)); }
.gt-404 { padding-top: calc(309px * var(--s)); padding-bottom: calc(200px * var(--s)); }
.gt-404__title { margin-top: calc(55px * var(--s)); font-size: calc(120px * var(--s)); line-height: 1; font-weight: 500; width: calc(1038px * var(--s)); max-width: 100%; }
.gt-404__text { margin-top: calc(60px * var(--s)); width: calc(516px * var(--s)); max-width: 100%; }
.gt-404__actions { display: flex; flex-wrap: wrap; gap: calc(48px * var(--s)); margin-top: calc(48px * var(--s)); }

/* ---- apariciones (anime.js añade .is-in) ---- */
.gt-anim .gt-reveal { opacity: 0; }
.gt-anim .gt-reveal.is-in { opacity: 1; }
.gt-anim .gt-line__in { transform: translateY(130%); }
.gt-anim .is-in .gt-line__in, .gt-anim .gt-line.is-in .gt-line__in { transform: none; }

/* ==========================================================================
   Tableta y móvil (criterio propio: el Figma solo define 1920)
   ========================================================================== */
@media (max-width: 1099px) {
	.gt-container { width: auto; max-width: none; margin-left: 24px; margin-right: 24px; }
	body { font-size: 17px; line-height: 26px; }
	.gt-display-xl { font-size: clamp(56px, 9.5vw, 96px); line-height: 1.02; }
	.gt-display { font-size: clamp(44px, 7.6vw, 80px); line-height: 1.02; }
	.gt-eyebrow { height: 30px; font-size: 15px; line-height: 22px; }
	.gt-eyebrow__line { top: 11px; width: 140px; left: 32px; }
	.gt-eyebrow__label { left: 190px; top: 0; font-size: 14px; line-height: 22px; }
	.gt-crumb { width: auto; justify-content: flex-start; gap: 14px; margin-left: 0; }
	.gt-crumb__line { width: 100px; }
	.gt-btn { gap: 16px; font-size: 16px; line-height: 24px; }
	.gt-btn__box, .gt-abox { width: 44px; height: 44px; border-radius: 14px; }
	.gt-btn__arrow, .gt-abox__arrow { width: 16px; height: 16px; }
	.gt-abox--52 { width: 44px; height: 44px; }
	.gt-abox--29 { width: 28px; height: 28px; }
	.gt-abox--29 .gt-abox__arrow { width: 10px; height: 10px; }
	.gt-header__bar { height: 88px; }
	.gt-header.is-stuck .gt-header__bar { height: 72px; }
	.gt-header__logo { top: 30px; width: 138px; height: 20px; }
	.gt-header.is-stuck .gt-header__logo { top: 26px; }
	.gt-header__toggle { right: -16px; top: 12px; width: 60px; height: 60px; }
	.gt-header.is-stuck .gt-header__toggle { top: 6px; }
	.gt-menu__panel { top: 12px; left: auto; right: 12px; width: min(360px, calc(100% - 24px)); min-height: 0; padding: 72px 32px 40px; border-radius: 28px; }
	.gt-menu__close { right: 6px; width: 60px; height: 60px; }
	.gt-menu__list { gap: 10px; }
	.gt-menu__list a { width: 100%; height: 48px; font-size: 32px; line-height: 1; border-radius: 12px; padding-left: 10px; }
	.gt-menu__secondary { margin-top: 32px; gap: 8px; padding-left: 10px; }
	.gt-menu__secondary a { font-size: 18px; line-height: 26px; }
	.gt-hero--home .gt-hero__inner { padding-top: 150px; padding-bottom: 56px; }
	.gt-hero--interior .gt-hero__inner { padding-top: 150px; padding-bottom: 72px; }
	.gt-hero__title, .gt-hero--home .gt-hero__title { width: 100%; margin-bottom: 36px; }
	.gt-hero__text { width: min(100%, 560px); }
	.gt-hero__btn { margin-top: 32px; }
	.gt-hero__card { position: static; width: min(100%, 420px); height: auto; margin-top: 40px; padding: 26px 32px; gap: 24px; border-radius: 20px; font-size: 18px; line-height: 26px; }
	.gt-hero__card-text { width: auto; flex: 1; }
	.gt-tiles__grid { grid-template-columns: repeat(2, 1fr); gap: 0; margin-left: 0; width: 100%; }
	.gt-tile { height: 50vw; }
	.gt-tile__head { left: 20px; top: 20px; font-size: 10px; letter-spacing: 2px; line-height: 16px; gap: 10px; }
	.gt-tile__foot { left: 20px; right: 76px; top: auto; bottom: 20px; }
	.gt-tile__title { position: static; font-size: clamp(22px, 4.2vw, 32px); max-width: none; }
	.gt-tile__text { margin-top: 10px; font-size: 14px; line-height: 20px; max-width: none; }
	.gt-tile .gt-abox { right: 20px; bottom: 20px; }
	.gt-intro--light .gt-intro__inner { padding-top: 72px; }
	.gt-intro--dark .gt-intro__inner { left: 0; padding-top: 96px; padding-bottom: 96px; }
	.gt-intro__row, .gt-intro--dark .gt-intro__row { display: block; margin-top: 32px; }
	.gt-intro__title, .gt-intro--dark .gt-intro__title { width: 100%; }
	.gt-intro__col, .gt-intro--light .gt-intro__col, .gt-intro--dark .gt-intro__col { position: static; width: min(100%, 520px); margin: 40px 0 0; }
	.gt-intro__lead, .gt-intro--light .gt-intro__lead, .gt-team__lead { width: 100%; font-size: 20px; line-height: 28px; }
	.gt-intro__text, .gt-intro--dark .gt-intro__text { margin-top: 16px; }
	.gt-scols { padding-top: 72px; padding-bottom: 72px; }
	.gt-scols__grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
	.gt-scol { min-height: 0; padding: 16px 16px 24px; }
	.gt-scol__num, .gt-scol__line, .gt-scol__title, .gt-scol__text { position: static; display: block; transform: none !important; width: auto; }
	.gt-scol__num { font-size: 14px; line-height: 22px; }
	.gt-scol__line { display: block; margin: 10px 0 14px; }
	.gt-scol__title { font-size: 24px; line-height: 30px; }
	.gt-scol__text { margin-top: 12px; font-size: 15px; line-height: 22px; opacity: 1; }
	.gt-scol.is-active .gt-scol__line { background: var(--gt-ink); }
	.gt-team--light .gt-team__inner, .gt-team--apilado .gt-team__inner { padding-top: 72px; padding-bottom: 72px; left: 0; }
	.gt-team--lateral .gt-team__inner { display: block; }
	.gt-team--lateral .gt-team__intro { width: 100%; }
	.gt-team--lateral .gt-team__title, .gt-team--apilado .gt-team__title { width: 100%; margin-top: 32px; }
	.gt-team--lateral .gt-team__text { width: min(100%, 560px); margin-top: 32px; }
	.gt-team--lateral .gt-team__btn { margin-top: 32px; }
	.gt-team--lateral .gt-team__strip, .gt-team--apilado .gt-team__strip { width: calc(100% + 24px); margin: 48px -24px 0 0; }
	.gt-team__row { display: block; margin-top: 32px; }
	.gt-team__col { width: min(100%, 520px); margin: 32px 0 0; }
	.gt-person { width: 280px; margin-right: 16px; }
	.gt-person__media, .gt-team--apilado .gt-person__media { height: 374px; }
	.gt-person__caption, .gt-team--apilado .gt-person__caption { margin-top: 12px; }
	.gt-person__name { font-size: 17px; line-height: 26px; }
	.gt-person__role { font-size: 14px; line-height: 22px; }
	.gt-testi { padding-top: 72px; padding-bottom: 72px; }
	.gt-testi__title { width: 100%; margin-top: 32px; }
	.gt-testi__grid { grid-template-columns: 1fr 1fr; gap: 48px 32px; margin-top: 56px; }
	.gt-quote__logo { height: 20px; }
	.gt-quote__text { margin-top: 24px; font-size: 15px; line-height: 24px; }
	.gt-quote__who { margin-top: 20px; }
	.gt-quote__name { font-size: 16px; line-height: 26px; }
	.gt-quote__role { font-size: 14px; line-height: 22px; }
	.gt-cta { padding-top: 72px; }
	.gt-cta .gt-eyebrow, .gt-cta__title, .gt-cta__text, .gt-cta__btn { margin-left: 0; }
	.gt-cta__title { margin-top: 32px; width: 100%; }
	.gt-cta__text { margin-top: 32px; width: min(100%, 520px); }
	.gt-cta__btn { margin-top: 28px; }
	.gt-cta__contact { position: static; align-items: flex-start; text-align: left; margin-top: 40px; font-size: 20px; line-height: 28px; gap: 6px; }
	.gt-footer__grid { grid-template-columns: 1fr 1fr; margin-top: 64px; padding-top: 40px; row-gap: 32px; }
	.gt-footer--solo .gt-footer__grid { margin-top: 72px; }
	.gt-footer__grid::before { left: 0; right: 0; }
	.gt-footer__nav { padding-left: 0; }
	.gt-footer__list a, .gt-footer__contact { font-size: 16px; line-height: 24px; }
	.gt-footer__mark { grid-row: 2; width: 72px; height: 72px; margin: 0; }
	.gt-footer__contact { padding-right: 0; }
	.gt-footer__bottom { margin-top: 48px; padding: 0 0 48px; font-size: 12px; line-height: 18px; flex-wrap: wrap; gap: 12px; }
	.gt-footer__legal-list { gap: 16px; }
	.gt-plist { padding-bottom: 80px; }
	.gt-plist__grid { grid-template-columns: 1fr 1fr; column-gap: 20px; row-gap: 56px; }
	.gt-pitem__media, .gt-pitem--bajo .gt-pitem__media { height: calc((100vw - 68px) / 2 * 1.25); }
	.gt-pitem__caption { gap: 12px; margin-top: 20px; }
	.gt-pitem__num { font-size: 13px; line-height: 22px; }
	.gt-pitem__body { width: 100%; }
	.gt-pitem__title { font-size: 26px; padding-bottom: 4px; }
	.gt-pitem__claim { font-size: 17px; line-height: 24px; }
	.gt-pitem__text { font-size: 15px; line-height: 23px; }
	.gt-pitem__tags { font-size: 13px; line-height: 20px; }
	.gt-slist { padding-bottom: 72px; }
	.gt-slist__rows { margin-top: 48px; }
	.gt-srow { margin-bottom: 0; }
	.gt-srow__link { height: auto; padding: 24px 0 24px; }
	.gt-srow__bg { top: 0; left: -12px; right: -12px; }
	.gt-srow__title { font-size: clamp(32px, 6.4vw, 56px); line-height: 1.05; white-space: normal; }
	.gt-srow__text { position: static; width: min(100%, 420px); margin-top: 12px; font-size: 15px; line-height: 23px; }
	.gt-slist__float { display: none; }
	.gt-logos { padding-top: 56px; padding-bottom: 80px; }
	.gt-logos__slider { --gt-gap: 56px; }
	.gt-logos__item { height: 48px; }
	.gt-logos__img { height: calc(var(--gt-lh, 44px) * .7); }
	.gt-phero__inner { min-height: 0; padding-top: 150px; }
	.gt-phero__text { width: 100%; }
	.gt-phero__title { font-size: clamp(44px, 8.5vw, 84px); line-height: 1; }
	.gt-phero__claim { margin-top: 20px; font-size: 20px; line-height: 28px; }
	.gt-phero__media { position: static; width: 100%; height: calc((100vw - 48px) * 751 / 778); margin-top: 48px; }
	.gt-pblock__inner { display: block; }
	.gt-pintro { --gt-pt: 56px; --gt-pb: 72px; }
	.gt-plabel { margin-top: 0 !important; font-size: 13px; line-height: 22px; }
	.gt-pintro__list { margin-top: 12px; font-size: 16px; line-height: 28px; }
	.gt-pintro__text { width: 100%; margin-top: 32px; font-size: clamp(22px, 3.6vw, 32px); line-height: 1.3; }
	.gt-pblock__main { margin-top: 20px; }
	.gt-psec__heading { width: 100%; }
	.gt-psec--h24 .gt-psec__heading { font-size: 20px; line-height: 28px; }
	.gt-psec--h42 .gt-psec__heading { font-size: 26px; line-height: 34px; }
	.gt-psec--h56 .gt-psec__heading, .gt-palette .gt-psec__heading { font-size: clamp(28px, 4.6vw, 40px); line-height: 1.15; }
	.gt-psec__text { width: 100%; margin-top: 20px; }
	.gt-psec__media { width: 100%; margin: 40px 0 0; }
	.gt-ptable { width: 100%; margin: 32px 0 0; gap: 8px; }
	.gt-ptable__row { grid-template-columns: 1fr; gap: 8px; min-height: 0; padding: 20px; }
	.gt-ptable__key { font-size: 22px; line-height: 26px; }
	.gt-ptable__conn { display: none; }
	.gt-pimg__wide { height: calc((100vw - 48px) * 810 / 1576); }
	.gt-pimg__pair { height: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: end; }
	.gt-pimg__one, .gt-pimg__two { position: static; width: 100%; height: calc((100vw - 64px) / 2 * .75); }
	.gt-pimg__center .gt-pimg__img { width: min(60%, 300px); }
	.gt-pimg__panel { height: max(240px, calc((100vw - 48px) * 759 / 1573)); }
	.gt-pimg__panel .gt-pimg__img { width: 60%; }
	.gt-pimg__caption { font-size: 13px; line-height: 20px; }
	.gt-venn { padding-top: 48px; padding-bottom: 72px; }
	.gt-venn__box { width: min(100%, 560px); height: calc(min(100vw - 48px, 560px) * 432 / 734); margin: 0 auto; }
	.gt-venn__label { font-size: clamp(13px, 2.6vw, 18px); line-height: 1.15; }
	.gt-venn__label--l { left: 25%; }
	.gt-venn__label--r { left: 75%; margin-top: 0; }
	.gt-venn__mark { left: 41.1%; top: 14.8%; width: 17.7%; height: 70.1%; }
	.gt-palette { padding-top: 72px; padding-bottom: 72px; }
	.gt-palette__inner { display: block; }
	.gt-palette__text { position: static; width: min(100%, 560px); }
	.gt-palette__swatches { width: 100%; margin-top: 40px; }
	.gt-swatch { grid-template-columns: 1fr 1fr; height: auto; min-height: 150px; }
	.gt-swatch__main { padding: 18px; }
	.gt-swatch__name { font-size: 17px; line-height: 24px; }
	.gt-swatch__data { font-size: 13px; line-height: 20px; margin-top: 6px; }
	.gt-swatch__tint i { left: 12px; top: 12px; font-size: 12px; line-height: 16px; }
	.gt-type { padding-top: 72px; padding-bottom: 72px; }
	.gt-type__row { margin-bottom: 32px; padding-bottom: 10px; }
	.gt-type__label { font-size: 12px; line-height: 18px; }
	.gt-type__sample { font-size: clamp(28px, 6vw, 56px); line-height: 1.25; margin-top: 8px; }
	.gt-faq, .gt-contact { padding-bottom: 72px; }
	.gt-faq__row, .gt-contact__row { display: block; margin-top: 32px; }
	.gt-faq__list { margin-top: 40px; }
	.gt-faq__btn { padding: 20px 0; font-size: 19px; line-height: 26px; gap: 20px; }
	.gt-faq__plus { width: 40px; height: 40px; border-radius: 12px; }
	.gt-faq__a-in { padding: 0 0 24px; }
	.gt-contact__form { margin-top: 48px; padding-top: 0; }
	.gt-contact__text, .gt-contact__data { margin-top: 24px; width: 100%; }
	.gt-contact__data { font-size: 17px; line-height: 26px; }
	.gt-field__input { font-size: 17px; line-height: 26px; padding: 10px 0; }
	.gt-page, .gt-404 { padding-top: 150px; padding-bottom: 80px; }
	.gt-page__head { margin-bottom: 40px; }
	.gt-page__title, .gt-404__title { width: 100%; font-size: clamp(40px, 7.6vw, 80px); margin-top: 12px; }
	.gt-prose { width: 100%; margin-left: 0; }
	.gt-posts { grid-template-columns: 1fr 1fr; gap: 48px 20px; }
	.gt-post-card__media { height: calc((100vw - 68px) / 2 * 520 / 778); }
	.gt-404__text, .gt-404__actions { margin-top: 32px; }
	.gt-404__actions { gap: 24px; }
}
@media (max-width: 759px) {
	.gt-container { margin-left: 20px; margin-right: 20px; }
	.gt-team--lateral .gt-team__strip, .gt-team--apilado .gt-team__strip { width: calc(100% + 20px); margin-right: -20px; }
	body { font-size: 16px; line-height: 25px; }
	.gt-display-xl { font-size: clamp(42px, 12.5vw, 64px); }
	.gt-display { font-size: clamp(36px, 10.5vw, 56px); }
	.gt-eyebrow__line { width: 90px; }
	.gt-eyebrow__label { left: 140px; }
	.gt-header__bar { height: 76px; }
	.gt-header__logo { top: 26px; width: 120px; height: 17px; }
	.gt-header__toggle { right: -14px; top: 8px; }
	.gt-hero--home .gt-hero__inner, .gt-hero--interior .gt-hero__inner { padding-top: 120px; padding-bottom: 48px; }
	.gt-tiles__grid { grid-template-columns: 1fr; }
	.gt-tile { height: 100vw; }
	.gt-tile__title { font-size: 28px; }
	.gt-scols__grid { grid-template-columns: 1fr; gap: 8px; }
	.gt-person { width: 240px; margin-right: 12px; }
	.gt-person__media, .gt-team--apilado .gt-person__media { height: 320px; }
	.gt-testi__grid { grid-template-columns: 1fr; gap: 40px; }
	.gt-footer__grid { grid-template-columns: 1fr; }
	.gt-footer__mark { grid-row: auto; }
	.gt-footer__contact { align-items: flex-start; text-align: left; }
	.gt-plist__grid { grid-template-columns: 1fr; row-gap: 48px; }
	.gt-pitem__media, .gt-pitem--bajo .gt-pitem__media { height: calc((100vw - 40px) * 1.25); }
	.gt-pimg__pair { grid-template-columns: 1fr; }
	.gt-pimg__one, .gt-pimg__two { height: calc((100vw - 40px) * .75); }
	.gt-phero__media { height: calc((100vw - 40px) * 751 / 778); }
	.gt-pimg__wide { height: calc((100vw - 40px) * 810 / 1576); }
	.gt-venn__box { height: calc((100vw - 40px) * 432 / 734); }
	.gt-swatch { grid-template-columns: 1fr; }
	.gt-swatch__tints { height: 56px; }
	.gt-form__row { grid-template-columns: 1fr; gap: 0; }
	.gt-contact__tpl .elementor-field-group { width: 100% !important; }
	.gt-contact__tpl .elementor-field-textual { font-size: 17px !important; line-height: 26px !important; padding: 10px 0 !important; }
	.gt-posts { grid-template-columns: 1fr; }
	.gt-post-card__media { height: calc((100vw - 40px) * 520 / 778); }
	.gt-srow__title { font-size: 30px; }
	.gt-logos__item { height: 40px; }
	.gt-logos__slider { --gt-gap: 40px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
	.gt-anim .gt-reveal { opacity: 1; }
	.gt-anim .gt-line__in { transform: none; }
}
