/* ==========================================================================
   Tempo – estilos del diseño (Figma «Disseny definitiu», frames de 2048 px).
   --u = 1 px del Figma de escritorio, escalado al ancho de la ventana.
   --m = 1 px del Figma móvil (402 px).
   Las clases tp-* se asignan en Elementor (Avanzado › Clases CSS).
   ========================================================================== */

:root {
	--tp-black: #000;
	--tp-bg: #fafaf8;
	--tp-pink: #edcdd7;
	--tp-sand: #f5f1ee;
	--tp-white: #fff;
	--f-display: 'Apple Garamond', Garamond, 'Times New Roman', serif;
	--f-text: 'Kefa III', Georgia, serif;
	--ls-display: 0; /* las fuentes del Figma no necesitan ajuste de espaciado */
	--u: min(calc(100vw / 2048), 1px);
	--pad: max(20px, calc(40 * var(--u)));
	--header-h: max(64px, calc(90 * var(--u)));
}

html { scroll-behavior: smooth; }

body {
	background: var(--tp-bg);
	color: var(--tp-black);
	font-family: var(--f-text);
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

a { color: inherit; }
a:hover, a:focus { color: inherit; }
img { display: block; max-width: 100%; height: auto; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* --- Reset de Elementor dentro del diseño -------------------------------- */

.elementor .e-con.tp,
.elementor-location-header .e-con,
.elementor-location-footer .e-con {
	--padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
	--gap: 0px; --row-gap: 0px; --column-gap: 0px;
	--margin-top: 0px; --margin-bottom: 0px;
}
.elementor .tp .elementor-widget,
.elementor .tp.elementor-widget { margin: 0; }
.elementor .tp .elementor-widget-container { margin: 0; padding: 0; }
.elementor .tp-type :is(p, h1, h2, h3, h4, h5, h6, .elementor-heading-title) {
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	margin: 0;
	padding: 0;
}
.elementor .tp-type :is(p, h1, h2, h3, h4, h5, h6) + p { margin-top: 0; }
.elementor .tp-type strong, .elementor .tp-type b { font-weight: 700; }
.elementor .tp-image img { width: 100%; height: 100%; object-fit: cover; }
.elementor .tp-image :is(.elementor-widget-container, a) { height: 100%; }

/* --- Escala tipográfica ---------------------------------------------------
   tp-dNN = display (Garamond) · tp-tNN = texto. NN = tamaño en el Figma. */

.tp-d128 { font: 400 max(48px, calc(128 * var(--u))) / .78 var(--f-display); letter-spacing: var(--ls-display); }
.tp-d96  { font: 400 max(34px, calc(96 * var(--u))) / 1.08 var(--f-display); letter-spacing: var(--ls-display); }
.tp-d64  { font: 400 max(28px, calc(64 * var(--u))) / 1 var(--f-display); letter-spacing: var(--ls-display); }
.tp-d48  { font: 400 max(26px, calc(48 * var(--u))) / 1 var(--f-display); letter-spacing: var(--ls-display); }
.tp-d40  { font: 400 max(22px, calc(40 * var(--u))) / 1.1 var(--f-display); letter-spacing: var(--ls-display); }
.tp-d32  { font: 400 max(18px, calc(32 * var(--u))) / 1.4 var(--f-display); letter-spacing: var(--ls-display); }
.tp-d24  { font: 400 max(16px, calc(24 * var(--u))) / 1.4 var(--f-display); letter-spacing: var(--ls-display); }
.tp-d20  { font: 400 max(14px, calc(20 * var(--u))) / 1 var(--f-display); letter-spacing: var(--ls-display); }
.tp-t32  { font: 300 max(18px, calc(32 * var(--u))) / 1.2 var(--f-text); }
.tp-t24  { font: 300 max(15px, calc(24 * var(--u))) / 1.1 var(--f-text); }
.tp-t20  { font: 300 max(13px, calc(20 * var(--u))) / 1.02 var(--f-text); }
.tp-t16  { font: 400 max(11px, calc(16 * var(--u))) / 1.4 var(--f-text); }
.tp-t32, .tp-t24, .tp-t20, .tp-t16 { letter-spacing: normal; }
.tp-upper { text-transform: uppercase; }
.tp-regular { font-weight: 400; }
.tp-center { text-align: center; }
.tp-white { color: var(--tp-white); }

/* Primera línea sangrada. Valores medidos en el Figma (px a 2048). */
.tp-indent :is(p, .elementor-heading-title) { text-indent: calc(526 * var(--u)); }
.tp-quote p { text-indent: calc(529 * var(--u)) !important; }
.tp-cta__text p { text-indent: calc(527 * var(--u)) !important; }
.tp-about__text p { text-indent: calc(336 * var(--u)) !important; }
.tp-project-intro__text p:first-child { text-indent: calc(420 * var(--u)) !important; }
.tp-project-intro__text--multi p:nth-child(1) { text-indent: calc(336 * var(--u)) !important; }
.tp-project-intro__text--multi p:nth-child(2) { text-indent: calc(560 * var(--u)) !important; }
.tp-project-intro__text--multi p:nth-child(4) { text-indent: calc(126 * var(--u)) !important; }
.tp-project-intro__text--multi p:nth-child(5) { text-indent: calc(322 * var(--u)) !important; }

/* Interlíneas redondeadas como en el Figma (solo escritorio/tablet) */
@media (min-width: 768px) {
	.tp-tabs a { width: calc(102 * var(--u)); }
	.tp-row > :nth-child(2) { max-width: calc(652 * var(--u)) !important; }
	.elementor .tp-process__row .tp-t32 p { line-height: calc(38 * var(--u)); }
	.elementor .elementor-element.tp-cta__text p { position: relative; line-height: calc(108 * var(--u)); }
	.elementor .tp-row > :nth-child(2) :is(h2, .elementor-heading-title) { line-height: calc(100 * var(--u)); }
	.elementor .tp-row > :nth-child(3) p { line-height: calc(26 * var(--u)); }
}

/* Líneas fijadas como en el Figma (solo castellano, escritorio). Ver tb_fit() en tempo-build/lib.php */
@media (min-width: 1280px) {
	.tp-l { display: block; white-space: nowrap; text-indent: 0; }
	.tp-l1 { text-indent: inherit; }
	.tp-about__text .tp-l { text-align-last: justify; }
	.tp-about__text .tp-l:last-child { text-align-last: auto; }
}

/* Palabras rosas enlazadas (estrategia, identidad, diseño). */
.tp-pill { padding: 0 calc(10 * var(--u)); color: var(--tp-pink); text-decoration: none; transition: color .3s ease; }
.tp-pill:hover, .tp-pill:focus-visible { color: var(--tp-black); }

/* ==========================================================================
   Cabecera
   ========================================================================== */

.elementor-location-header {
	position: sticky;
	top: 0;
	z-index: 100;
}
.admin-bar .elementor-location-header { top: 32px; }

.tp-header {
	/* Como el Figma: tres bloques con huecos iguales, alineados abajo (8 px). */
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	height: var(--header-h);
	padding: 0 calc(36 * var(--u)) calc(8 * var(--u));
	background: rgb(250 250 248 / .7);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}
.tp-header__nav--right { justify-self: end; }
.tp-header .tp-menu {
	display: flex;
	gap: calc(56 * var(--u));
	margin: 0; padding: 0;
	list-style: none;
}
.tp-header .tp-menu a {
	display: block;
	padding: calc(10 * var(--u)) calc(20 * var(--u));
	font: 400 max(16px, calc(32 * var(--u))) / 1.4 var(--f-display); letter-spacing: var(--ls-display);
	text-decoration: none;
}
.tp-header .tp-menu .current-menu-item > a,
.tp-header .tp-menu a:hover { font-weight: 700; }
/* Como en el Figma, cada enlace es una caja fija con el texto centrado: la negrita (página actual o hover)
   crece hacia los dos lados y no mueve el resto. Centros del Figma: 104,5 · 278 · 1742,5 · 1942,5. */
@media (min-width: 768px) {
	.tp-header .tp-menu { gap: 0; }
	.tp-header .tp-menu a { padding-left: 0; padding-right: 0; text-align: center; white-space: nowrap; }
	.tp-header__nav--left .tp-menu > li:nth-child(1) { width: calc(137 * var(--u)); }
	.tp-header__nav--left .tp-menu > li:nth-child(2) { width: calc(100 * var(--u)); margin-left: calc(55 * var(--u)); }
	.tp-header__nav--right .tp-menu > li:nth-child(1) { width: calc(139 * var(--u)); }
	.tp-header__nav--right .tp-menu > li:nth-child(2) { width: calc(139 * var(--u)); margin-left: calc(61 * var(--u)); }
}
.tp-header { position: relative; }
.tp-header__logo { position: absolute; left: 50%; bottom: calc(8 * var(--u)); transform: translateX(-50%); } /* centrado (en el Figma de escritorio está 27 px a la izquierda; en el móvil y el pie, centrado) */
.tp-header__logo img { width: max(110px, calc(184 * var(--u))); }

.tp-burger,
.tp-mobile-menu__close {
	display: none;
	padding: 0;
	border: 0;
	background: none;
	color: var(--tp-black);
	cursor: pointer;
}
.tp-burger:hover, .tp-burger:focus,
.tp-mobile-menu__close:hover, .tp-mobile-menu__close:focus { background: none; color: var(--tp-black); }

.tp-mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: calc(183 * var(--m));
	padding: var(--header-h) 0 0;
	background: rgb(250 250 248 / .7);
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
	overflow-y: auto;
}
.tp-mobile-menu[hidden] { display: none; }
.tp-mobile-menu:focus { outline: none; }
.tp-mobile-menu a:focus:not(:focus-visible) { outline: none; }
/* Figma Design System «Menu mobile» (state=open, 402 × 883): cuatro páginas centradas (Apple Garamond 32, 40 px de alto y 40 de hueco) y, 183 px más abajo, las redes */
.tp-header { position: relative; z-index: 2; }
.tp-mobile-menu__nav .tp-menu { display: flex; flex-direction: column; align-items: center; gap: calc(40 * var(--m)); margin: 0; padding: 0; list-style: none; font: 400 calc(32 * var(--m)) / calc(40 * var(--m)) var(--f-display); letter-spacing: var(--ls-display); }
.tp-mobile-menu__nav .tp-menu a { text-decoration: none; white-space: nowrap; }
.tp-mobile-menu .tp-footer__social { display: flex; justify-content: center; align-items: center; gap: calc(24 * var(--m)); }
.tp-mobile-menu .tp-footer__social a { display: block; line-height: 0; color: var(--tp-black); }
.tp-mobile-menu .tp-footer__social svg { width: calc(34 * var(--m)); height: calc(34 * var(--m)); }
.tp-mobile-menu .tp-footer__social .tp-social__linkedin svg { width: calc(31 * var(--m)); height: calc(31 * var(--m)); }
.tp-burger .tp-burger__close, .tp-burger[aria-expanded="true"] .tp-burger__open { display: none; }
.tp-burger[aria-expanded="true"] .tp-burger__close { display: block; }
body.tp-menu-open { overflow: hidden; }

/* ==========================================================================
   Pie (rosa)
   ========================================================================== */

.tp-footer {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: calc(72 * var(--u));
	padding: var(--pad);
	background: var(--tp-pink);
}
.tp-footer__top { display: flex; flex-direction: column; align-items: center; gap: calc(114 * var(--u)); }
.tp-footer__logo img { width: max(180px, calc(421 * var(--u))); }
.tp-footer__contact { display: flex; flex-direction: column; align-items: center; gap: calc(24 * var(--u)); text-align: center; }
.tp-footer__contact p { margin: 0; font: 400 max(17px, calc(32 * var(--u))) / 1.02 var(--f-display); letter-spacing: var(--ls-display); }
@media (min-width: 768px) { .tp-footer__contact p { line-height: calc(33 * var(--u)) !important; } } /* 33 px como en el Figma */
.tp-footer__contact .tp-footer__title { margin-bottom: calc(24 * var(--u)); font: 700 max(17px, calc(32 * var(--u))) / 1.02 var(--f-text); }
.tp-footer a { text-decoration: none; }
.tp-footer a:hover { text-decoration: underline; text-underline-offset: .15em; }
.tp-footer__bottom {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	gap: calc(367 * var(--u)); /* como el Figma */
	align-self: stretch;
	margin: 0 var(--pad); /* la línea del pie va de x = 79 a 1968 en el Figma */
	padding: calc(19 * var(--u)) 0 0;
	border-top: 1px solid var(--tp-black);
}
.tp-footer .tp-menu,
.tp-footer .tp-lang {
	display: flex;
	flex-wrap: wrap;
	gap: 8px calc(32 * var(--u));
	margin: 0; padding: 0;
	list-style: none;
	font: 400 max(13px, calc(24 * var(--u))) / 1.08 var(--f-text);
}
.tp-footer { position: relative; }
.tp-footer__social { display: none; }
.tp-footer__end { display: contents; }
.tp-footer__end .tp-lang { position: absolute; top: var(--pad); right: var(--pad); } /* el selector de idioma no está en el diseño: va arriba a la derecha */
.tp-lang .is-current a { text-decoration: underline; text-underline-offset: .2em; }
.tp-mobile-menu .tp-lang { display: flex; gap: 20px; margin: 0; padding: 0; list-style: none; font: 400 16px/1.4 var(--f-text); }
.tp-mobile-menu .tp-lang a { text-decoration: none; }

/* ==========================================================================
   Piezas comunes
   ========================================================================== */

/* Fila de etiquetas: «Servicios · Consulting Tempo · © 2026» con línea encima. */
.elementor .e-con.tp-labels {
	display: grid;
	grid-template-columns: calc(1070 * var(--u)) 1fr auto;
	align-items: start;
	padding-top: calc(13 * var(--u));
	border-top: 1px solid currentColor;
}
.elementor .e-con.tp-labels > :last-child { text-align: right; }

.elementor .e-con.tp-section { padding: 0 var(--pad); }

/* ==========================================================================
   Inicio
   ========================================================================== */

.elementor .e-con.tp-intro { padding: calc(683 * var(--u)) var(--pad) calc(239 * var(--u)); }

.elementor .e-con.tp-hero {
	position: relative;
	justify-content: flex-start;
	align-items: center;
	min-height: calc(997 * var(--u));
	padding: calc(355 * var(--u)) var(--pad) calc(120 * var(--u));
	color: var(--tp-white);
	background-size: cover;
	background-position: center;
}
.elementor .e-con.tp-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgb(0 0 0 / .5), rgb(102 102 102 / .5));
	pointer-events: none;
}
.elementor .e-con.tp-hero > * { position: relative; }
.elementor .e-con.tp-hero > .tp-labels { width: auto; position: absolute; top: calc(30 * var(--u)); left: var(--pad); right: var(--pad); }
.elementor .elementor-element.tp-hero__title { max-width: calc(1794 * var(--u)) !important; text-align: center; }
.elementor .elementor-element.tp-hero__title :is(h1, h2, .elementor-heading-title) { line-height: 1; }
.elementor .elementor-element.tp-hero__text { max-width: max(320px, calc(832 * var(--u))) !important; margin-top: calc(55 * var(--u)) !important; text-align: center; }
.elementor .elementor-element.tp-hero__text { font-weight: 400; line-height: 1.4; }

.elementor .e-con.tp-home-services { padding: calc(130 * var(--u)) var(--pad) 0; }
.elementor .elementor-element.tp-quote { margin-top: calc(127 * var(--u)) !important; }

/* Proceso 001–004 */
.elementor .e-con.tp-process { margin-top: calc(341 * var(--u)); padding: 0 var(--pad); }
.elementor .e-con.tp-process__row {
	display: grid;
	grid-template-columns: calc(165 * var(--u)) calc(494 * var(--u)) calc(650 * var(--u)) 1fr calc(321 * var(--u));
	align-items: start;
	padding: calc(36 * var(--u)) 0 calc(166 * var(--u));
	border-top: 1px solid var(--tp-black);
}
.elementor .e-con.tp-process__row:first-child { padding-bottom: calc(138 * var(--u)); }
.elementor .e-con.tp-process__row:last-child { padding-bottom: 0; }
.tp-process__row > :nth-child(1) { padding-left: calc(5 * var(--u)); }
.tp-process__row > :nth-child(3) { grid-column: 3; }
.tp-process__row > :nth-child(4) { grid-column: 5; aspect-ratio: 321 / 190; }
.tp-process__row .tp-t20, .tp-process__row .tp-t24 { line-height: 1; }

/* Estrategia: titular + mosaico */
.elementor .e-con.tp-home-strategy { padding: calc(430 * var(--u)) var(--pad) 0; }
.elementor .elementor-element.tp-strategy__title { max-width: calc(1304 * var(--u)) !important; margin-top: calc(116 * var(--u)) !important; }
.elementor .elementor-element.tp-strategy__title, .tp-strategy__title :is(h2, .elementor-heading-title) { line-height: 1; }
.elementor .e-con.tp-mosaic {
	display: grid;
	grid-template-columns: 659fr 43fr 690fr 8fr 568fr; /* columnas y huecos del Figma */
	column-gap: 0;
	row-gap: calc(108 * var(--u));
	margin-top: calc(227 * var(--u));
	padding: 0 var(--pad);
}
.tp-mosaic .tp-t32 { max-width: calc(651 * var(--u)) !important; }
.tp-mosaic > :nth-child(5) { max-width: calc(611 * var(--u)) !important; }
.tp-mosaic > :nth-child(7) { max-width: calc(620 * var(--u)) !important; }
.tp-mosaic > :nth-child(3n+1) { grid-column: 1; }
.tp-mosaic > :nth-child(3n+2) { grid-column: 3; }
.tp-mosaic > :nth-child(3n) { grid-column: 5; }
.tp-mosaic__tall { aspect-ratio: 690 / 828; }
.tp-mosaic__portrait { aspect-ratio: 659 / 802; }
.tp-mosaic__side { aspect-ratio: 568 / 511; }
.tp-mosaic__side--alt { aspect-ratio: 568 / 551; }

/* Llamada a la acción final */
.elementor .e-con.tp-cta {
	position: relative;
	gap: calc(127 * var(--u));
	min-height: calc(1025 * var(--u));
	margin-top: calc(253 * var(--u));
	padding: calc(117 * var(--u)) calc(114 * var(--u));
	color: var(--tp-white);
	background-size: cover;
	background-position: center;
}
.elementor .e-con.tp-cta::before { content: ''; position: absolute; inset: 0; background: rgb(0 0 0 / .5); pointer-events: none; }
.elementor .e-con.tp-cta > * { position: relative; }
.tp-cta__text p { position: relative; }
.tp-cta__label {
	position: absolute;
	top: calc(64 * var(--u));
	left: calc(382 * var(--u));
	text-indent: 0;
	font: 400 max(11px, calc(16 * var(--u))) / 1.4 var(--f-text);
}
.tp-cta__email { text-align: center; }
.tp-cta__email a { font-weight: 400; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .12em; text-transform: uppercase; }

/* ==========================================================================
   About us
   ========================================================================== */

.elementor .e-con.tp-about { padding: calc(85 * var(--u)) var(--pad) calc(52 * var(--u)); }
.elementor .elementor-element.tp-about__text { text-align: justify; }
.elementor .elementor-element.tp-about__img { align-self: flex-end; width: calc(321 * var(--u)); min-width: 160px; aspect-ratio: 321 / 465; margin-top: calc(366 * var(--u)) !important; }

/* ==========================================================================
   Servicios: Strategy / Narrative / Design
   ========================================================================== */

.elementor .e-con.tp-service { align-items: center; padding: calc(108 * var(--u)) var(--pad) calc(432 * var(--u)); }
.tp-tabs { display: flex; justify-content: center; gap: calc(120 * var(--u)); font: 300 max(18px, calc(32 * var(--u))) / 1.4 var(--f-text); }
.tp-tabs a { display: flex; justify-content: center;  white-space: nowrap; text-decoration: none; opacity: .2; transition: opacity .3s ease; }
.tp-tabs a:hover { opacity: .6; }
.tp-tabs a.is-active { opacity: 1; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.elementor .elementor-element.tp-service__title { max-width: none !important; margin-top: calc(601 * var(--u)) !important; text-align: center; }
.elementor .elementor-element.tp-service__arrow { margin-top: calc(70 * var(--u)) !important; }
.elementor .elementor-element.tp-service__arrow svg { display: block; width: max(16px, calc(24 * var(--u))); height: auto; margin: 0 auto; }

.elementor .e-con.tp-rows { width: 100%; gap: calc(200 * var(--u)); margin-top: calc(315 * var(--u)); }
.elementor .e-con.tp-row {
	display: grid;
	grid-template-columns: calc(329 * var(--u)) calc(906 * var(--u)) minmax(0, calc(568 * var(--u)));
	align-items: start;
	padding-top: calc(41 * var(--u));
	border-top: 1px solid var(--tp-black);
}
.tp-row > :nth-child(1) { padding-top: calc(28 * var(--u)); font-weight: 400; line-height: 1.4; }
.tp-row > :nth-child(3) { padding-top: calc(2 * var(--u)); }
.tp-page-narrativa .tp-row > :nth-child(3) { padding-top: calc(12 * var(--u)); }
.tp-page-diseno .tp-row > :nth-child(3) { padding-top: calc(25 * var(--u)); }
.tp-row .tp-t24 :is(p) + p { margin-top: 0; }

/* ==========================================================================
   Contacto
   ========================================================================== */

.elementor .e-con.tp-contact { padding: calc(33 * var(--u)) var(--pad) calc(134 * var(--u)); }
.elementor .elementor-element.tp-contact__img { width: max(200px, calc(463 * var(--u))); aspect-ratio: 463 / 476; }

/* Formulario «rellena la frase» (Elementor Pro › Formulario) */
.elementor .elementor-element.tp-madlib { margin-top: calc(321 * var(--u)) !important; }
.elementor .tp-madlib .elementor-form-fields-wrapper {
	display: block;
	margin: 0;
	font: 400 max(30px, calc(96 * var(--u))) / calc(117 * var(--u)) var(--f-display); letter-spacing: var(--ls-display);
}
.elementor .tp-madlib .elementor-field-group {
	display: inline-block;
	width: auto;
	max-width: 100%;
	margin: 0;
	padding: 0;
	vertical-align: baseline;
}
.elementor .tp-madlib .elementor-field-type-html { display: inline; }
.elementor .tp-madlib .elementor-field-type-html p { display: inline; margin: 0; }
@media (min-width: 1200px) {
	.elementor .tp-madlib .elementor-field-type-html { white-space: nowrap; }
}
.tp-madlib__start { position: relative; display: inline-block; margin-left: calc(756 * var(--u)); }
.tp-madlib__label {
	position: absolute;
	left: calc(-750 * var(--u));
	bottom: calc(58 * var(--u));
	letter-spacing: normal;
	font: 400 max(11px, calc(20 * var(--u))) / 1.02 var(--f-text);
	white-space: nowrap;
}
.tp-madlib__indent { display: inline-block; width: calc(455 * var(--u)); }
.elementor .tp-madlib .elementor-field-textual {
	min-height: 0;
	padding: 0 0 calc(4 * var(--u));
	border: 0;
	border-bottom: 2px solid var(--tp-black);
	border-radius: 0;
	background: transparent !important;
	color: var(--tp-black);
	font: 400 max(20px, calc(48 * var(--u))) / 1.3 var(--f-display); letter-spacing: var(--ls-display);
	text-align: center;
}
.elementor .tp-madlib .elementor-field-textual::placeholder {
	color: rgb(0 0 0 / .2);
	letter-spacing: normal;
	font: 400 max(11px, calc(20 * var(--u))) / 1 var(--f-text);
	text-transform: uppercase;
	opacity: 1;
}
.elementor .tp-madlib .elementor-field-textual:focus { box-shadow: none; outline: none; border-bottom-color: var(--tp-black); }
.elementor .tp-madlib .elementor-field-group-name { width: calc(620 * var(--u)); min-width: 200px; margin-left: calc(47 * var(--u)); }
.elementor .tp-madlib .elementor-field-group-company { width: calc(640 * var(--u)); min-width: 200px; margin: 0 calc(30 * var(--u)) 0 calc(43 * var(--u)); }
.elementor .tp-madlib .elementor-field-group-email { width: calc(780 * var(--u)); min-width: 220px; margin-left: calc(32 * var(--u)); }
.elementor .tp-madlib .elementor-field-group-message { display: block; width: 100%; margin-top: calc(12 * var(--u)); }
.elementor .tp-madlib textarea.elementor-field-textual { display: block; width: 100%; height: calc(40 * var(--u)); min-height: 40px; padding-bottom: calc(6 * var(--u)); resize: vertical; font-size: max(18px, calc(32 * var(--u))); line-height: 1.1; text-align: left; overflow: hidden; }
.elementor .tp-madlib textarea.elementor-field-textual::placeholder { text-align: center; }

/* Posición exacta del Figma (Contacto_V1_1): cada trozo de texto ocupa el ancho del diseño,
   los subrayados del nombre, el email y el mensaje llegan al borde derecho y cada fila
   se coloca a su altura del Figma (las filas del diseño no tienen el mismo interlineado). */
@media (min-width: 1200px) {
	.elementor .tp-madlib .elementor-form-fields-wrapper { font-size: 0; line-height: 0; }
	.elementor .e-con.tp-contact-form { overflow-x: clip; }
	/* En inglés la frase del email es más larga: el campo se acorta para no saltar de línea */
	html[lang^="en"] .elementor .tp-madlib .elementor-field-group-email { width: calc(700 * var(--u)); }
	html[lang^="en"] .elementor .tp-madlib .elementor-field-group-email .elementor-field-textual { width: calc(100% + 46 * var(--u)); }
	.elementor .tp-madlib .elementor-field-group { font-size: max(30px, calc(96 * var(--u))); letter-spacing: var(--ls-display); }
	.elementor .tp-madlib .elementor-field-type-html { font-size: 0; }
	.elementor .tp-madlib .tp-madlib__start, .elementor .tp-madlib .tp-ml { font-size: max(30px, calc(96 * var(--u))); line-height: calc(117 * var(--u)); letter-spacing: var(--ls-display); }
	.elementor .tp-madlib .elementor-field-group-services, .elementor .tp-madlib .elementor-field-type-submit { line-height: calc(117 * var(--u)); }
	.tp-madlib__start { min-width: calc(521 * var(--u)); top: calc(var(--ml-1, 0) * var(--u)); }
	.tp-madlib__label { bottom: calc((58 + var(--ml-1, 0)) * var(--u)); }
	.tp-ml { position: relative; display: inline-block; }
	.tp-ml-a { min-width: calc(399 * var(--u)); }
	.tp-ml-d { min-width: calc(695 * var(--u)); }
	.tp-ml-a, .tp-ml-b { top: calc(var(--ml-2, 0) * var(--u)); }
	.tp-ml-c { top: calc(var(--ml-3, 0) * var(--u)); }
	.tp-ml-d { top: calc(var(--ml-4, 0) * var(--u)); }
	.tp-ml-e { top: calc(var(--ml-5, 0) * var(--u)); }
	.elementor .tp-madlib .elementor-field-group-name { position: relative; top: calc(var(--ml-1u, 0) * var(--u)); width: calc(638 * var(--u)); margin-left: calc(37 * var(--u)); }
	.elementor .tp-madlib .elementor-field-group-company { position: relative; top: calc(var(--ml-2u, 0) * var(--u)); width: calc(697 * var(--u)); margin: 0 calc(30 * var(--u)) 0 calc(33 * var(--u)); }
	.elementor .tp-madlib .elementor-field-group-services { position: relative; top: calc(var(--ml-3, 0) * var(--u)); }
	.elementor .tp-madlib .elementor-field-group-email { position: relative; top: calc(var(--ml-4u, 0) * var(--u)); width: calc(788 * var(--u)); margin-left: calc(23 * var(--u)); }
	.elementor .tp-madlib .elementor-field-group-name .elementor-field-textual { width: calc(644 * var(--u)); max-width: none; }
	.elementor .tp-madlib .elementor-field-group-email .elementor-field-textual { width: calc(829 * var(--u)); max-width: none; }
	.tp-madlib__indent { width: calc(416 * var(--u)); }
	.tp-ml-c, .tp-ml-e { margin-left: calc(4 * var(--u)); }
	.elementor .tp-madlib .elementor-field-group-services .elementor-field-subgroup .elementor-field-option:first-child { margin-left: calc(37 * var(--u)); }
	.elementor .tp-madlib .elementor-field-group-services .elementor-field-subgroup .elementor-field-option:nth-child(1)::after { margin-right: calc(7 * var(--u)); }
	.elementor .tp-madlib .elementor-field-group-services .elementor-field-subgroup .elementor-field-option:nth-child(2)::after { margin-right: calc(17 * var(--u)); }
	.elementor .tp-madlib .elementor-field-group-message { margin-top: calc(47 * var(--u)); }
	.elementor .tp-madlib textarea.elementor-field-textual { width: 100%; max-width: none; }
	.elementor .tp-madlib .elementor-field-group-company .elementor-field-textual { width: calc(697 * var(--u)); max-width: none; }
	.elementor .tp-madlib .elementor-form-fields-wrapper .elementor-field-type-submit { margin-top: calc(121 * var(--u)); }
	.elementor .tp-madlib .elementor-field-group-message { width: auto; margin-right: calc(-40 * var(--u)); }
	.elementor .tp-madlib { --ml-1: -8; --ml-1u: -4; --ml-2: -9; --ml-2u: -16; --ml-3: 1; --ml-4: -4; --ml-4u: -5; --ml-5: -3; }
}

/* Servicios como palabras rosas seleccionables */
.elementor .tp-madlib .elementor-field-group-services .elementor-field-subgroup { display: inline; }
.elementor .tp-madlib .elementor-field-group-services .elementor-field-option { display: inline; margin: 0; padding: 0; }
.elementor .tp-madlib .elementor-field-group-services .elementor-field-option:first-child { margin-left: calc(23 * var(--u)); }
.elementor .tp-madlib .elementor-field-group-services .elementor-field-option:not(:last-child)::after { content: ','; margin: 0 calc(26 * var(--u)) 0 calc(7 * var(--u)); color: var(--tp-black); }
.elementor .tp-madlib .elementor-field-group-services .elementor-field-option:last-child::after { content: '.'; margin-left: calc(7 * var(--u)); color: var(--tp-black); }
.elementor .tp-madlib .elementor-field-group-services input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.elementor .tp-madlib .elementor-field-group-services label {
	display: inline;
	padding: 0 calc(10 * var(--u));
	color: var(--tp-pink);
	font: inherit;
	cursor: pointer;
	transition: color .3s ease;
}
.elementor .tp-madlib .elementor-field-group-services label:hover,
.elementor .tp-madlib .elementor-field-group-services input:checked + label { color: var(--tp-black); }
.elementor .tp-madlib .elementor-field-group-services input:focus-visible + label { outline: 1px dashed var(--tp-black); }
.elementor .tp-madlib .elementor-field-group-services .elementor-field-label { display: none; }

.elementor .tp-madlib .elementor-field-type-submit { display: flex; justify-content: center; width: 100%; margin-top: calc(86 * var(--u)); }
.elementor .tp-madlib .elementor-field-type-submit .elementor-button { margin-left: calc(15 * var(--u)); } /* el botón del Figma está 7 px a la derecha del centro */
.elementor .tp-madlib .elementor-button {
	width: auto;
	flex: 0 0 auto;
	min-width: max(180px, calc(355 * var(--u)));
	padding: calc(24 * var(--u)) calc(48 * var(--u));
	border-radius: 100px;
	background: var(--tp-black);
	color: var(--tp-white);
	font: 400 max(20px, calc(40 * var(--u))) / 1.02 var(--f-display); letter-spacing: var(--ls-display);
	transition: background-color .3s ease, color .3s ease;
}
.elementor .tp-madlib .elementor-button:hover { background: var(--tp-pink); color: var(--tp-black); }
.elementor .tp-madlib .elementor-message { font: 400 max(15px, calc(24 * var(--u))) / 1.4 var(--f-text); text-align: center; }

.elementor .e-con.tp-contact-info { gap: calc(100 * var(--u)); margin-top: calc(597 * var(--u)); }
.elementor .e-con.tp-contact-info__row { display: flex; flex-direction: row; justify-content: space-between; align-items: flex-start; gap: 24px; }
.elementor .elementor-element.tp-contact-info__value { text-align: right; }
.elementor .elementor-element.tp-contact-info__value, .tp-contact-info__value :is(p) { line-height: 1.02; }
.elementor .elementor-element.tp-contact-info__value a { text-decoration: none; }
.elementor .elementor-element.tp-contact-info__value a[href^="mailto"] { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .12em; }

/* ==========================================================================
   Work (rejilla de proyectos) – Loop Grid + plantilla «Tarjeta de proyecto»
   ========================================================================== */

.elementor .e-con.tp-work { padding: calc(178 * var(--u)) 0 calc(167 * var(--u)) calc(96 * var(--u)); }
.tp-work-grid .elementor-loop-container { grid-template-columns: repeat(3, calc(510 * var(--u))) 1fr !important; }
.tp-work-grid .elementor-loop-container { counter-reset: tp-card; row-gap: calc(161 * var(--u)) !important; column-gap: 0 !important; }
.tp-work-grid .e-loop-item { counter-increment: tp-card; }

.elementor .e-con.tp-card {
	position: relative;
	align-items: flex-start;
	gap: calc(36 * var(--u));
	padding-left: calc(48 * var(--u));
}
.elementor .e-con.tp-card::before {
	content: counter(tp-card, decimal-leading-zero) '.';
	width: auto;
	height: auto;
	opacity: 1;
	mix-blend-mode: normal;
	background: none;
	position: absolute;
	left: 0;
	top: calc(147 * var(--u));
	font: 400 max(13px, calc(20 * var(--u))) / 1 var(--f-display); letter-spacing: var(--ls-display);
}
.elementor .e-con.tp-card__media {
	position: relative;
	width: max(150px, calc(250 * var(--u)));
	aspect-ratio: 249 / 311;
	overflow: hidden;
}
.tp-card__media .elementor-widget-image { position: absolute; inset: 0; }
.tp-card__media .elementor-widget-shortcode { position: absolute; inset: 0; pointer-events: none; }
.tp-card__media img { width: 100%; height: 100%; object-fit: cover; }
.tp-card__media .tp-card__hover { position: absolute; inset: 0; opacity: 0; transition: opacity .5s ease; }
.tp-card:hover .tp-card__hover { opacity: 1; }
.elementor .elementor-element.tp-card__title { width: max(150px, calc(250 * var(--u))); text-align: center; }
.elementor .elementor-element.tp-card__title a { text-decoration: none; }
@media (min-width: 768px) { /* RESET tiene su propia tarjeta en el Figma: 275 × 344 en x 635, y 260 */
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .elementor .e-con.tp-card,
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .e-con.tp-card { padding-left: calc(29 * var(--u)); gap: calc(11 * var(--u)); }
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .e-con.tp-card__media { width: max(165px, calc(275 * var(--u))); aspect-ratio: 275 / 344; margin-top: calc(-8 * var(--u)); }
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .elementor-element.tp-card__title { width: max(165px, calc(275 * var(--u))); }
}
@media (min-width: 768px) { /* Hover de las tarjetas (Figma Design System «Proyectos» y «Component 86»): la portada baja y gira, y la segunda foto entra girada por encima */
	.elementor .e-con.tp-card__media { overflow: visible; }
	.tp-card__media .elementor-widget-image { left: 0; top: 0; width: 100%; height: 100%; transform-origin: 0 0; transform: rotate(1.18deg); transition: left .6s ease, top .6s ease, width .6s ease, height .6s ease, transform .6s ease; }
	.tp-card__media .elementor-widget-shortcode { inset: auto; left: calc(-9.25 * var(--u)); top: calc(34.05 * var(--u)); width: calc(239.6 * var(--u)); height: calc(299.5 * var(--u)); transform-origin: 0 0; transform: rotate(0deg) translateY(calc(16 * var(--u))); transition: transform .6s ease; }
	.tp-card__media .elementor-widget-shortcode .elementor-shortcode { height: 100%; }
	.tp-card:hover .tp-card__media .elementor-widget-image { left: calc(6.23 * var(--u)); top: calc(12.06 * var(--u)); width: calc(245.1 * var(--u)); height: calc(306.3 * var(--u)); transform: rotate(1.17deg); }
	.tp-card:hover .tp-card__media .elementor-widget-shortcode { transform: rotate(-8.43deg); }
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .tp-card__media .elementor-widget-image { transform: rotate(1.39deg); }
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .tp-card__media .elementor-widget-shortcode { left: 0; top: calc(35.47 * var(--u)); width: calc(236.8 * var(--u)); height: calc(272.2 * var(--u)); }
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .tp-card:hover .tp-card__media .elementor-widget-image { left: calc(13.73 * var(--u)); top: 0; width: 100%; height: 100%; transform: rotate(1.38deg); }
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .tp-card:hover .tp-card__media .elementor-widget-shortcode { transform: rotate(-8.62deg); }
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .tp-card__hover { object-position: 50% 0; }
}
.tp-soon { position: relative; padding-left: calc(48 * var(--u)); } /* tarjetas «Coming soon» (las añade tempo.js) */
.tp-soon::before { content: counter(tp-card, decimal-leading-zero) '.'; position: absolute; left: 0; top: calc(147 * var(--u)); font: 400 max(13px, calc(20 * var(--u))) / 1 var(--f-display); }
.tp-soon__media { width: max(140px, calc(234 * var(--u))); aspect-ratio: 234 / 314; background: var(--tp-pink); filter: blur(calc(4.05 * var(--u))); } /* Figma: desenfoque de capa 8,1 */
.tp-soon__title { width: max(140px, calc(234 * var(--u))); margin: calc(33 * var(--u)) 0 0; text-align: center; font: 400 max(15px, calc(24 * var(--u))) / 1 var(--f-display); }
@media (max-width: 767px) { .tp-soon { display: none; } }

/* ==========================================================================
   Proyecto (contenido en Elementor + plantilla «Proyecto» del Theme Builder)
   ========================================================================== */

.elementor .e-con.tp-project-hero {
	display: grid;
	grid-template-columns: calc(1021 * var(--u)) 1fr;
	min-height: calc(1288 * var(--u));
	margin-top: calc(-1 * var(--header-h));
}
.elementor .e-con.tp-project-hero__text { justify-content: flex-start; align-items: center; gap: calc(28 * var(--u)); padding: calc(626 * var(--u)) calc(122 * var(--u)) 0 calc(80 * var(--u)); text-align: center; }
.tp-project-hero__text .tp-d48 { max-width: max(260px, calc(420 * var(--u))) !important; }
.tp-project-hero__text .tp-t24 { max-width: max(300px, calc(614 * var(--u))) !important; line-height: 1; }
.elementor .e-con.tp-project-hero__media { justify-content: center; align-items: center; background: #070707; }
.tp-project-hero__media--framed .tp-image { width: calc(797 * var(--u)); aspect-ratio: 797 / 997; }
.tp-project-hero__media--full .tp-image { width: 100%; height: 100%; }

.elementor .e-con.tp-project-intro { padding: calc(351 * var(--u)) var(--pad) 0; }
.tp-project-intro__text p { position: relative; }
.tp-project-intro__text p:not(:first-child) { text-indent: 0; }
.tp-project-intro__text--multi p:nth-child(3) { text-indent: 0 !important; }
.tp-project-label {
	position: absolute;
	top: calc(32 * var(--u));
	left: 0;
	text-indent: 0;
	font: 400 max(11px, calc(16 * var(--u))) / 1.4 var(--f-text);
}
.tp-project-intro__text a { text-decoration-thickness: 1px; text-underline-offset: .12em; }

/* Acordeón (Elementor › Acordeón anidado) */
.elementor .elementor-element.tp-acc { margin-top: calc(182 * var(--u)) !important; padding: 0 var(--pad); counter-reset: tp-acc; }
.elementor .elementor-element.tp-acc .e-n-accordion-item { counter-increment: tp-acc; border-bottom: 1px solid var(--tp-black); }
.elementor .elementor-element.tp-acc .e-n-accordion-item:first-child { border-top: 1px solid var(--tp-black); }
.elementor .elementor-element.tp-acc .e-n-accordion-item-title {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: calc(16 * var(--u)) 0 calc(16 * var(--u) - 1px) !important; /* + 1 px de línea = 84 px por fila, como el Figma */
	border: 0 !important;
	background: none !important;
	cursor: pointer;
}
.elementor .elementor-element.tp-acc .e-n-accordion-item-title::before {
	content: counter(tp-acc, decimal-leading-zero);
	content: '00' counter(tp-acc);
	position: absolute;
	left: 0;
	font: 400 max(11px, calc(16 * var(--u))) / 1.08 var(--f-text);
}
.elementor .elementor-element.tp-acc .e-n-accordion-item-title-text {
	margin-left: calc(450 * var(--u));
	color: var(--tp-black);
	font: 400 max(24px, calc(48 * var(--u))) / 1.08 var(--f-display); letter-spacing: var(--ls-display);
	transition: color .3s ease;
}
.elementor .elementor-element.tp-acc .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--tp-pink); }
.elementor .elementor-element.tp-acc .e-n-accordion-item-title-icon { width: max(16px, calc(21 * var(--u))); color: var(--tp-black); fill: var(--tp-black); }
.elementor .elementor-element.tp-acc .e-n-accordion-item-title-icon svg { width: 100%; height: auto; fill: currentColor; }
.elementor .elementor-element.tp-acc .e-n-accordion-item > .e-con {
	gap: calc(80 * var(--u));
	padding: calc(40 * var(--u)) 0 calc(100 * var(--u)) calc(450 * var(--u)) !important;
	border: 0 !important;
}
.elementor .elementor-element.tp-acc .tp-acc__lead { max-width: max(320px, calc(797 * var(--u))) !important; line-height: 1; }
.elementor .elementor-element.tp-acc .tp-acc__lead p + p { margin-top: 1em !important; }
.elementor .e-con.tp-points { display: grid; grid-template-columns: repeat(3, calc(370 * var(--u))); gap: calc(57 * var(--u)); }
.elementor .e-con.tp-points--more { grid-template-columns: repeat(3, calc(370 * var(--u))); row-gap: calc(40 * var(--u)); }
.tp-point { line-height: 1; }
.tp-point p:first-child {
	margin-bottom: calc(31 * var(--u)) !important;
	padding-bottom: calc(9 * var(--u));
	border-bottom: 1px solid var(--tp-black);
	font: 400 max(11px, calc(16 * var(--u))) / 1.4 var(--f-text);
}

/* Galería horizontal con flechas */
.elementor .e-con.tp-gallery { gap: calc(40 * var(--u)); margin-top: calc(174 * var(--u)); margin-bottom: calc(-173 * var(--u)); } /* en Espígul «Todos los proyectos» va pegado a la galería */
.tp-gallery__nav { display: flex; justify-content: flex-end; gap: calc(40 * var(--u)); padding: 0 var(--pad); }
.tp-gallery__nav button { padding: 0; border: 0; background: none; color: var(--tp-black); cursor: pointer; }
.tp-gallery__nav button:hover, .tp-gallery__nav button:focus { background: none; color: var(--tp-black); opacity: .5; }
.tp-gallery__nav svg { display: block; width: max(20px, calc(28 * var(--u))); height: auto; }
.elementor .e-con.tp-hscroll {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: calc(8 * var(--u));
	padding: 0 var(--pad);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding: 0 var(--pad);
	scrollbar-width: none;
}
.tp-hscroll::-webkit-scrollbar { display: none; }
.tp-hscroll > .elementor-element { flex: 0 0 auto; scroll-snap-align: start; }
.tp-hscroll .tp-image { height: calc(624 * var(--u)); min-height: 220px; }
.tp-hscroll .tp-image img { width: auto; height: 100%; }

/* RESET: imágenes apiladas con número a cada lado */
.elementor .e-con.tp-stack { gap: calc(51 * var(--u)); margin-top: calc(174 * var(--u)); padding: 0 calc(287 * var(--u)); }
.elementor .e-con.tp-stack__row {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
}
.tp-stack__row > :last-child { text-align: right; }
.tp-stack__row .tp-image { width: calc(461 * var(--u)); min-width: 180px; aspect-ratio: 461 / 576; }
.tp-stack__row--wide .tp-image { width: calc(525 * var(--u)); aspect-ratio: 525 / 656; }
.tp-stack__row .tp-t20 { font-weight: 400; line-height: 1.4; }

/* «Todos los proyectos» (plantilla Proyecto) */
.elementor .e-con.tp-all {
	gap: calc(80 * var(--u));
	margin-top: calc(174 * var(--u));
	padding: calc(48 * var(--u)) var(--pad) calc(121 * var(--u));
	background: rgb(245 241 238 / .9);
}
.elementor .e-con.tp-all__head { display: flex; flex-direction: row; justify-content: space-between; align-items: flex-start; }
.tp-all__head > :last-child { margin-top: calc(28 * var(--u)) !important; }
.tp-all__head .tp-d64 { font-weight: 300; line-height: 1.4; }
.tp-all__head a { text-decoration: none; }
.tp-all__head a:hover { text-decoration: underline; }
.tp-all-list .elementor-loop-container { counter-reset: tp-row; row-gap: calc(20 * var(--u)) !important; }
.tp-all-list .e-loop-item { counter-increment: tp-row; }
.elementor .e-con.tp-rowitem {
	position: relative;
	display: grid;
	grid-template-columns: calc(94 * var(--u)) calc(565 * var(--u)) calc(436 * var(--u)) 1fr;
	padding-bottom: calc(6 * var(--u));
	border-bottom: 1px solid var(--tp-black);
	font: 400 max(14px, calc(24 * var(--u))) / 1.4 var(--f-display); letter-spacing: var(--ls-display);
	color: rgb(0 0 0 / .2);
	transition: color .3s ease;
}
.elementor .e-con.tp-rowitem::before {
	content: '00' counter(tp-row);
	position: static;
	inset: auto;
	width: auto;
	height: auto;
	opacity: 1;
	mix-blend-mode: normal;
	background: none;
	border: 0;
}
.tp-rowitem:hover, .tp-rowitem:focus-within { color: var(--tp-black); }
.tp-rowitem a { text-decoration: none; }
.tp-rowitem a::after { content: ''; position: absolute; inset: 0; }
.single-projecte .tp-rowitem.is-current { color: var(--tp-black); }

/* ==========================================================================
   Tablet (≤ 1024 px)
   ========================================================================== */

@media (max-width: 1024px) {
	.elementor .e-con.tp-process__row { grid-template-columns: calc(120 * var(--u)) calc(380 * var(--u)) 1fr calc(40 * var(--u)) calc(400 * var(--u)); }
	.elementor .e-con.tp-row { grid-template-columns: calc(200 * var(--u)) 1fr minmax(0, calc(760 * var(--u))); }
	.tp-header .tp-menu a { padding: 8px 10px; }
}

/* ==========================================================================
   Móvil (≤ 767 px) – Figma «Home_mobile» / «Work_mobile» (402 px)
   ========================================================================== */

@media (max-width: 767px) {
	:root {
		--m: calc(100vw / 402);
		--pad: 24px;
		--header-h: 92px;
	}

	.tp-d128 { font-size: 44px; }
	.tp-d96 { font-size: 36px; }
	.tp-d64 { font-size: 28px; }
	.tp-d48 { font-size: 30px; }
	.tp-d40 { font-size: 26px; }
	.tp-t32 { font-size: 16px; }
	.tp-t24 { font-size: 16px; }
	.tp-t20 { font-size: 14px; }
	.tp-t16 { font-size: 12px; }

	.tp-indent :is(p, .elementor-heading-title), .tp-indent p:first-child { text-indent: 20% !important; }
	.tp-project-intro__text--multi p:not(:first-child) { text-indent: 0 !important; }

	/* Cabecera móvil: logo centrado y menú hamburguesa */
	.tp-header { display: grid; grid-template-columns: 30px 1fr 30px; align-items: center; height: 92px; padding: 40px 20px 8px; }
	.tp-header__logo { position: static; transform: none; }
	.tp-header__nav { display: none; }
	.tp-header__logo { grid-column: 2; justify-self: center; }
	.tp-header__logo img { width: 109px; }
	.tp-burger { display: block; grid-column: 3; align-self: start; width: 30px; height: 30px; margin-top: 7px; line-height: 0; } /* icono del Figma: 30 × 30 en (352, 47) */
	/* Al hacer scroll (tempo.js añade .tp-scrolled): sin el hueco de la barra de estado del Figma, 14 px arriba y abajo del logo.
	   Solo se desplaza la barra visible; la caja del header no cambia de alto, así el contenido no salta. */
	.tp-header { transition: transform .25s ease, padding .25s ease; }
	.tp-scrolled .elementor-location-header { pointer-events: none; }
	.tp-scrolled .elementor-location-header .tp-header,
	.tp-scrolled .elementor-location-header .tp-mobile-menu { pointer-events: auto; }
	.tp-scrolled .tp-header { height: 98px; margin-bottom: -6px; padding-bottom: 14px; transform: translateY(-26px); }

	/* Pie */
	/* Pie: Figma «Footer_mobile» (402 × 644) */
	.tp-footer { gap: 0; padding: calc(72 * var(--m)) calc(20 * var(--m)) calc(40 * var(--m)); }
	.tp-footer__top { gap: calc(72 * var(--m)); }
	.tp-footer__logo img { width: calc(222 * var(--m)); }
	.tp-footer__contact { gap: 0; }
	.tp-footer__contact p { font-size: calc(20 * var(--m)); line-height: calc(20 * var(--m)); }
	.tp-footer__contact p + p { margin-top: calc(16 * var(--m)); }
	.tp-footer__contact .tp-footer__title { margin-bottom: calc(24 * var(--m)); font-size: calc(20 * var(--m)); line-height: calc(20 * var(--m)); }
	.tp-footer__social { display: flex; justify-content: center; align-items: center; gap: calc(24 * var(--m)); height: calc(34 * var(--m)); }
	.tp-footer__social a { display: block; line-height: 0; color: var(--tp-black); }
	.tp-footer__social svg { width: calc(34 * var(--m)); height: calc(34 * var(--m)); }
	.tp-footer__social .tp-social__linkedin svg { width: calc(31 * var(--m)); height: calc(31 * var(--m)); }
	.tp-footer__bottom { flex-direction: column; align-items: stretch; gap: 0; margin: calc(72 * var(--m)) 0 0; padding: 0; border: 0; }
	.tp-footer .tp-menu, .tp-footer .tp-lang { justify-content: center; gap: 8px calc(24 * var(--m)); font-size: calc(16 * var(--m)); line-height: calc(26 * var(--m)); }
	.tp-footer .tp-footer__bottom > .tp-menu:first-child { justify-content: flex-start; padding-bottom: calc(14 * var(--m)); border-bottom: 1px solid var(--tp-black); }
	.tp-footer .tp-footer__bottom > .tp-menu:nth-child(2) { margin-top: calc(13 * var(--m)); }
	.tp-footer__end > .tp-menu { display: none; } /* en móvil las redes van como iconos */
	.tp-footer__end .tp-lang { top: 16px; right: calc(20 * var(--m)); gap: calc(16 * var(--m)); font-size: calc(14 * var(--m)); }

	.elementor .e-con.tp-labels { grid-template-columns: calc(126 * var(--m)) 1fr auto; padding-top: 4px; }

	/* Inicio */
	.elementor .e-con.tp-intro { padding: calc(345 * var(--m)) var(--pad) calc(80 * var(--m)); }
	.tp-intro .tp-d96 { font-size: 40px; line-height: 1; }
	.elementor .e-con.tp-hero { min-height: calc(385 * var(--m)); padding: 60px var(--pad) 40px; }
	.elementor .e-con.tp-hero > .tp-labels { top: 16px; }
	.elementor .elementor-element.tp-hero__title { font-size: 34px; }
	.elementor .elementor-element.tp-hero__title :is(h1, h2, .elementor-heading-title) { line-height: .9; }
	.elementor .elementor-element.tp-hero__text { margin-top: 28px !important; line-height: 1; }

	.elementor .e-con.tp-home-services { padding-top: calc(110 * var(--m)); }
	.elementor .elementor-element.tp-quote { margin-top: 70px !important; font-size: 36px; }
	.elementor .e-con.tp-process { margin-top: calc(190 * var(--m)); }
	.elementor .e-con.tp-process__row {
		grid-template-columns: 1fr 1fr;
		row-gap: 35px;
		padding: 8px 0 30px;
	}
	.tp-process__row > :nth-child(1) { padding-left: 0; }
	.tp-process__row > :nth-child(3) { grid-column: 1 / -1; }
	.tp-process__row > :nth-child(4) { display: none; }
	.tp-process__row .tp-t20, .tp-process__row .tp-t24 { font-size: 12px; }

	.elementor .e-con.tp-home-strategy { padding-top: calc(170 * var(--m)); }
	.elementor .elementor-element.tp-strategy__title { margin-top: 64px !important; font-size: 40px; }
	.elementor .e-con.tp-mosaic { grid-template-columns: 1fr; row-gap: 24px; margin-top: 44px; }
	.tp-mosaic > * { grid-column: 1 !important; }
	.tp-mosaic > :nth-child(3), .tp-mosaic > :nth-child(6), .tp-mosaic > :nth-child(9) { margin-left: 0; }
	.tp-mosaic .tp-t32 { max-width: none !important; line-height: 1.2; }
	.tp-mosaic__tall, .tp-mosaic__portrait { aspect-ratio: 354 / 200; }
	.tp-mosaic__side, .tp-mosaic__side--alt { display: none; }
	.tp-mosaic .tp-t32:not(:first-child) { margin-top: 16px !important; }

	.elementor .e-con.tp-cta { gap: 40px; min-height: calc(631 * var(--m)); margin-top: 120px; padding: 60px var(--pad) 50px; }
	.tp-cta__text { font-size: 36px; line-height: 1; }
	.tp-cta__text p { text-indent: 34%; }
	.tp-cta__label { top: 14px; left: 0; font-size: 12px; }
	.tp-cta__email { font-size: 20px; overflow-wrap: anywhere; }

	/* About */
	.elementor .e-con.tp-about { padding: 40px var(--pad) 60px; }
	.elementor .elementor-element.tp-about__text { text-align: left; hyphens: manual; }
	.elementor .elementor-element.tp-about__img { width: 60%; margin-top: 60px !important; }

	/* Servicios */
	.elementor .e-con.tp-service { padding: 32px var(--pad) 120px; }
	.tp-tabs { gap: 28px; font-size: 18px; }
	.elementor .elementor-element.tp-service__title { margin-top: 140px !important; }
	.tp-service__title br, .tp-row .tp-d128 br { display: none; }
	.elementor .elementor-element.tp-service__arrow { margin-top: 40px !important; }
	.elementor .e-con.tp-rows { gap: 60px; margin-top: 120px; }
	.elementor .e-con.tp-row { grid-template-columns: 48px 1fr; row-gap: 20px; padding-top: 16px; }
	.tp-row > :nth-child(1) { padding-top: 6px; font-size: 14px; }
	.tp-row > :nth-child(2) { font-size: 44px; }
	.tp-row > :nth-child(3) { grid-column: 2; }

	/* Contacto */
	.elementor .e-con.tp-contact { padding: 24px var(--pad) 80px; }
	.elementor .elementor-element.tp-contact__img { width: 60%; }
	.elementor .e-con.tp-contact-info { gap: 40px; margin-top: 120px; }
	.elementor .e-con.tp-contact-info__row { flex-direction: column; gap: 12px; }
	.elementor .elementor-element.tp-contact-info__value { text-align: left; font-size: 30px; }

	/* Work */
	/* Work (Figma Work_mobile): una columna; número, las dos fotos superpuestas y giradas, y el nombre */
	.elementor .e-con.tp-work { padding: calc(158 * var(--m)) 0 calc(112 * var(--m)); }
	.tp-work-grid .elementor-loop-container { grid-template-columns: 1fr !important; row-gap: calc(183 * var(--m)) !important; }
	.elementor .e-con.tp-card { align-items: center; gap: calc(40 * var(--m)); padding-left: 0; }
	.elementor .e-con.tp-card::before { position: static; width: calc(258 * var(--m)); text-align: center; font-size: calc(20 * var(--m)); }
	.elementor .e-con.tp-card__media { width: calc(251 * var(--m)); aspect-ratio: 251 / 335; overflow: visible; }
	.tp-card__media .elementor-widget-image,
	.tp-card__media .elementor-widget-shortcode { inset: auto; }
	.tp-card__media .elementor-widget-image { left: calc(6.23 * var(--m)); top: calc(12.06 * var(--m)); width: calc(245.1 * var(--m)); height: calc(306.3 * var(--m)); transform-origin: 0 0; transform: rotate(1.17deg); }
	.tp-card__media .elementor-widget-shortcode { left: calc(-9.25 * var(--m)); top: calc(34.05 * var(--m)); width: calc(239.6 * var(--m)); height: calc(299.5 * var(--m)); transform-origin: 0 0; transform: rotate(-8.43deg); }
	.tp-card__media .elementor-widget-shortcode .elementor-shortcode { height: 100%; }
	.tp-card__media .tp-card__hover { opacity: 1; transition: none; }
	/* RESET tiene su propia composición en el Figma */
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .e-con.tp-card__media { width: calc(275 * var(--m)); aspect-ratio: 275 / 344; }
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .tp-card__media .elementor-widget-image { left: calc(13.73 * var(--m)); top: 0; transform: rotate(1.38deg); }
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .tp-card__media .elementor-widget-shortcode { left: 0; top: calc(35.47 * var(--m)); width: calc(236.8 * var(--m)); height: calc(272.2 * var(--m)); transform: rotate(-8.62deg); }
	:is(.e-loop-item-59, .e-loop-item-60, .e-loop-item-61) .tp-card__hover { object-position: 50% 0; }
	.elementor .elementor-element.tp-card__title { width: calc(258 * var(--m)); font-size: calc(20 * var(--m)); line-height: 1; }

	/* Proyecto */
	.elementor .e-con.tp-project-hero { grid-template-columns: 1fr; min-height: 0; }
	.elementor .e-con.tp-project-hero__text { order: 2; padding: 64px var(--pad) 0; gap: 20px; }
	.elementor .e-con.tp-project-hero__media { order: 1; min-height: calc(500 * var(--m)); padding: calc(var(--header-h) + 24px) 32px 32px; }
	.tp-project-hero__media--framed .tp-image { width: 80%; }
	.tp-project-hero__media--full { padding: 0 !important; }
	.tp-project-hero__media--full .tp-image { min-height: calc(500 * var(--m)); }
	.elementor .e-con.tp-project-intro { padding-top: 80px; }
	.tp-project-intro__text { font-size: 26px; }
	.tp-project-label { top: 9px; font-size: 11px; }
	.elementor .elementor-element.tp-acc { margin-top: 60px !important; }
	.elementor .elementor-element.tp-acc .e-n-accordion-item-title-text { margin-left: 48px; font-size: 24px; }
	.elementor .elementor-element.tp-acc .e-n-accordion-item > .e-con { padding: 24px 0 48px !important; gap: 32px; }
	.elementor .e-con.tp-points, .elementor .e-con.tp-points--more { grid-template-columns: 1fr; gap: 24px; }
	.elementor .e-con.tp-gallery { margin-top: 80px; }
	.tp-hscroll .tp-image { height: 260px; min-height: 0; }
	.elementor .e-con.tp-stack { padding: 0 var(--pad); gap: 32px; margin-top: 80px; }
	.elementor .e-con.tp-stack__row { grid-template-columns: 32px 1fr 32px; gap: 8px; }
	.tp-stack__row .tp-image, .tp-stack__row--wide .tp-image { width: 100%; min-width: 0; }
	/* «Todos los proyectos»: Figma Work_mobile (bloque 402 × 366) */
	.elementor .e-con.tp-all { gap: calc(48 * var(--m)); margin-top: calc(97 * var(--m)); padding: calc(20 * var(--m)) 24px calc(22 * var(--m)); background: #f5f1ef; }
	.elementor .e-con.tp-all__head { align-items: flex-end; }
	.tp-all__head > :last-child { margin-top: 0 !important; }
	.elementor .tp-all__head > .elementor-element.tp-d64 { max-width: calc(220 * var(--m)); font-size: calc(48 * var(--m)); font-weight: 400; line-height: .9; }
	.elementor .e-con.tp-all__head { flex-wrap: nowrap; }
	.tp-all__head .tp-d24 { font-size: calc(16 * var(--m)); line-height: 1.4; }
	.tp-all__head .tp-d24 a { text-decoration: underline; }
	.tp-all-list .elementor-loop-container { row-gap: calc(20 * var(--m)) !important; }
	.elementor .e-con.tp-rowitem { grid-template-columns: calc(37 * var(--m)) calc(187 * var(--m)) 1fr; padding-bottom: calc(6 * var(--m)); border-bottom-color: rgb(0 0 0 / .3); font-size: calc(16 * var(--m)); }
	.tp-rowitem > :nth-child(2) { display: none; }
	.tp-rowitem h3, .tp-rowitem .elementor-shortcode { font-size: inherit; line-height: calc(22 * var(--m)); }
}

/* Animaciones de aparición (las activa tempo.js) */
.tp-reveal { opacity: 0; transform: translateY(18px); transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1); }
.tp-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; }
}

/* ==========================================================================
   Elementor 4 (atómico): apoyos para lo que sus estilos nativos aún no admiten.
   Estas clases existen como clases globales en Elementor (mismo nombre) y se
   asignan desde el editor; aquí solo va lo que el panel de estilos no permite.
   ========================================================================== */

/* Líneas fijadas como en el Figma: cada línea es un <span> dentro del párrafo. */
@media (min-width: 1280px) {
	.tp-lineas > span { display: block; white-space: nowrap; text-indent: 0; }
	.tp-lineas > span:first-child { text-indent: inherit; }
	.tp-lineas > br { display: none; }
	.tp-justificado.tp-lineas > span:not(:last-child) { text-align-last: justify; }
}

/* Cortes del Figma móvil: <br> dentro de las líneas de escritorio, visibles solo en móvil */
.tp-lineas > span br { display: none; }
@media (max-width: 767px) {
	.tp-lineas > span br { display: inline; }
	.tp-lineas-movil { white-space: nowrap; } /* solo cortan los <br> del Figma móvil */
}

/* Sangrías de primera línea (px del Figma a 2048) */
.tp-sangria-126 { text-indent: calc(126 * var(--u)); }
.tp-sangria-322 { text-indent: calc(322 * var(--u)); }
.tp-sangria-336 { text-indent: calc(336 * var(--u)); }
.tp-sangria-367 { text-indent: calc(367 * var(--u)); }
.tp-sangria-420 { text-indent: calc(420 * var(--u)); }
.tp-sangria-526 { text-indent: calc(526 * var(--u)); }
.tp-sangria-527 { text-indent: calc(527 * var(--u)); }
.tp-sangria-529 { text-indent: calc(529 * var(--u)); }
.tp-sangria-560 { text-indent: calc(560 * var(--u)); }
@media (max-width: 767px) {
	[class*="tp-sangria-"] { text-indent: 20%; }
	/* Home_mobile del Figma (px a 402) */
	.tp-sangria-526 { text-indent: calc(210 * 100vw / 402); }
	.tp-sangria-529 { text-indent: calc(198 * 100vw / 402); }
	.tp-sangria-527 { text-indent: calc(150 * 100vw / 402); }
}

/* Enlaces dentro de los textos */
.tp-rosas a { padding: 0 calc(10 * var(--u)); color: var(--tp-pink); text-decoration: none; transition: color .3s ease; }
.tp-rosas a:hover, .tp-rosas a:focus-visible { color: var(--tp-black); }
.tp-enlace-sub a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .12em; }
.tp-enlace-limpio a { color: inherit; text-decoration: none; }
@media (max-width: 767px) {
	.tp-br-escritorio br { display: none; }
	.tp-enlace-sub { overflow-wrap: anywhere; }
}

/* Galería horizontal */
.tp-desliza { flex-wrap: nowrap; scroll-snap-type: x mandatory; scroll-padding: 0 var(--pad); scrollbar-width: none; }
.tp-desliza::-webkit-scrollbar { display: none; }
.tp-desliza > * { flex: 0 0 auto; scroll-snap-align: start; }
.tp-desliza img { width: auto; height: 100%; }

/* Contenedor V3 que conserva el formulario dentro de la página de Contacto (Elementor 4) */
.elementor .e-con.tp-contact-form { padding: 0 var(--pad); }
@media (max-width: 767px) { .elementor .e-con.tp-contact-form { padding: 0 24px; } }

/* Negrita real: «bolder» desde Kefa Light (300) daría Regular; en el Figma es Bold (700). */
.elementor strong, .elementor b, .tp-footer strong { font-weight: 700; }

/* Inicio (ES, escritorio): en el Figma las palabras rosas son piezas colocadas sobre huecos de espacios;
   cada hueco se ajusta para que «, la», «y el» y «. Creamos» caigan donde en el diseño. */
@media (min-width: 1280px) {
	html[lang^="es"] .tp-rosas.tp-sangria-526 a:nth-of-type(1) { margin-left: calc(-10 * var(--u)); margin-right: calc(3 * var(--u)); }
	html[lang^="es"] .tp-rosas.tp-sangria-526 a:nth-of-type(2) { margin-left: calc(-11 * var(--u)); margin-right: calc(3 * var(--u)); }
	html[lang^="es"] .tp-rosas.tp-sangria-526 a:nth-of-type(3) { margin-left: calc(-5 * var(--u)); margin-right: calc(10 * var(--u)); }
}
@media (max-width: 767px) {
	html[lang^="es"] .tp-rosas.tp-sangria-526 a:nth-of-type(1) { margin-left: calc(3 * var(--m)); margin-right: calc(7 * var(--m)); }
	html[lang^="es"] .tp-rosas.tp-sangria-526 a:nth-of-type(2) { margin-left: calc(-2 * var(--m)); margin-right: calc(3 * var(--m)); }
	html[lang^="es"] .tp-rosas.tp-sangria-526 a:nth-of-type(3) { margin-right: calc(7 * var(--m)); }
}

/* En el Figma la primera línea del titular de la portada acaba en espacio («de marca ␣») y el centrado lo cuenta:
   una sangría de −1 espacio de Apple Garamond (0,219 em) desplaza esa línea medio espacio a la izquierda. */
@media (min-width: 768px) { .tp-espacio-final { text-indent: -0.219em; } }

/* Acordeón de proyecto: «+» del Figma (Streamline Heroicons, 20,6 px, trazo 1,875) en lugar del de Font Awesome */
.elementor .elementor-element.tp-acc .e-n-accordion-item-title-icon { width: auto; margin-right: calc(12 * var(--u)); }
.elementor .elementor-element.tp-acc .e-n-accordion-item-title-icon svg { display: none; }
.elementor .elementor-element.tp-acc .e-n-accordion-item-title-icon > span { width: max(14px, calc(20.625 * var(--u))); height: max(14px, calc(20.625 * var(--u))); background: center / contain no-repeat; }
.elementor .elementor-element.tp-acc .e-n-accordion-item-title-icon .e-closed { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20.625 20.625'%3E%3Cpath d='M10.3125 0.9375V19.6875M0.9375 10.3125H19.6875' stroke='%23000' stroke-width='1.875' stroke-linecap='round' fill='none'/%3E%3C/svg%3E"); }
.elementor .elementor-element.tp-acc .e-n-accordion-item-title-icon .e-opened { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20.625 20.625'%3E%3Cpath d='M0.9375 10.3125H19.6875' stroke='%23000' stroke-width='1.875' stroke-linecap='round' fill='none'/%3E%3C/svg%3E"); }

/* Sangrías del Figma móvil (en px de 402) */
@media (max-width: 767px) {
	.tp-sangria-m89 { text-indent: calc(89 * var(--m)) !important; }
	.tp-sangria-m102 { text-indent: calc(102 * var(--m)) !important; }
	.tp-sangria-m152 { text-indent: calc(152 * var(--m)) !important; }
	.tp-sangria-m49 { text-indent: calc(49 * var(--m)) !important; }
	.tp-sangria-m56 { text-indent: calc(56 * var(--m)) !important; }
	.tp-sangria-m63 { text-indent: calc(63 * var(--m)) !important; }
	.tp-sangria-m133 { text-indent: calc(133 * var(--m)) !important; }
}
/* Contacto (Figma móvil): el correo va en una línea (358 px, hasta x = 382) */
@media (max-width: 767px) { .elementor p.display-96.tp-enlace-sub { white-space: nowrap; overflow-wrap: normal; } }

/* Acordeón de proyecto en el móvil (Figma Work_mobile): filas de 60 px, número 16 px, título 32 px, «+» de 20,6 px */
@media (max-width: 767px) {
	.elementor .elementor-element.tp-acc { margin-top: calc(142 * var(--m)) !important; padding: 0 calc(24 * var(--m)) 0 calc(21 * var(--m)); }
	.elementor .elementor-element.tp-acc .e-n-accordion-item-title { padding: calc(12.72 * var(--m)) 0 calc(12.72 * var(--m) - 1px) !important; }
	.elementor .elementor-element.tp-acc .e-n-accordion-item-title::before { font-size: calc(16 * var(--m)); }
	.elementor .elementor-element.tp-acc .e-n-accordion-item-title-text { margin-left: calc(66 * var(--m)); font-size: calc(32 * var(--m)); line-height: 1.08; }
	.elementor .elementor-element.tp-acc .e-n-accordion-item-title-icon { margin-right: calc(11.7 * var(--m)); }
	.elementor .elementor-element.tp-acc .e-n-accordion-item-title-icon > span { width: calc(20.625 * var(--m)); height: calc(20.625 * var(--m)); }
}

/* Contacto en el móvil: Figma «Contacto_mobile» (archivo original, 402 px).
   Frase en Apple Garamond 40/40: «Hola, / me llamo [nombre]» · «Estoy buscando ayuda / con [opciones]» ·
   «Puedes escribirme a [email]» · «Me gustaría… [mensaje]» · botón a todo el ancho. Sin la fila de la empresa. */
@media (max-width: 767px) {
	.elementor .elementor-element.tp-madlib { margin-top: calc(293 * var(--m)) !important; }
	.elementor .tp-madlib .elementor-form-fields-wrapper { display: block; margin: 0 !important; font: 400 calc(40 * var(--m)) / calc(40 * var(--m)) var(--f-display); letter-spacing: 0; text-indent: calc(271 * var(--m)); }
	.elementor .tp-madlib .elementor-field-group { padding: 0 !important; text-indent: 0; }
	.tp-madlib__label, .tp-madlib__indent, .tp-ml-punto,
	.elementor .tp-madlib .elementor-field-group-text_company,
	.elementor .tp-madlib .elementor-field-group-company { display: none !important; }
	.elementor .tp-madlib .tp-madlib__start { display: inline; margin: 0; }
	.elementor .tp-madlib .elementor-field-type-html { display: inline; }
	.elementor .tp-madlib .elementor-field-group-services, .elementor .tp-madlib .elementor-field-group-services .elementor-field-subgroup { display: inline; }
	/* campos: texto guía Kefa 14 centrado y raya de 1 px; 24 px de alto */
	.elementor .tp-madlib .elementor-field-textual { height: calc(24 * var(--m)); min-height: 0; padding: 0 0 calc(9 * var(--m)); border-bottom-width: 1px; font: 400 calc(16 * var(--m)) / 1 var(--f-display); text-align: center; }
	.elementor .tp-madlib .elementor-field-textual::placeholder { font: 400 calc(14 * var(--m)) / 1.02 var(--f-text); }
	.elementor .tp-madlib .elementor-field-group-name { display: inline-block; vertical-align: bottom; width: calc(206 * var(--m)); margin: 0 0 0 calc(7 * var(--m)); position: relative; top: calc(10 * var(--m)); }
	.elementor .tp-madlib .elementor-field-group-name .elementor-field-textual,
	.elementor .tp-madlib .elementor-field-group-email .elementor-field-textual,
	.elementor .tp-madlib .elementor-field-group-message .elementor-field-textual { display: block; width: 100%; }
	.tp-ml-b { display: inline-block; margin-top: calc(7 * var(--m)); }
	.elementor .tp-madlib .elementor-field-group-services .elementor-field-subgroup .elementor-field-option:first-child { margin-left: calc(10 * var(--m)); }
	.elementor .tp-madlib .elementor-field-group-services .elementor-field-subgroup .elementor-field-option:nth-child(1)::after { margin: 0 0 0 calc(15 * var(--m)); }
	.elementor .tp-madlib .elementor-field-group-services .elementor-field-subgroup .elementor-field-option:nth-child(2)::after { margin: 0 calc(3 * var(--m)) 0 calc(10 * var(--m)); }
	.elementor .tp-madlib .elementor-field-group-services .elementor-field-subgroup .elementor-field-option:last-child::after { margin-left: calc(8 * var(--m)); }
	.elementor .tp-madlib .elementor-field-group-services label { font-size: calc(40 * var(--m)); line-height: calc(40 * var(--m)); white-space: nowrap; vertical-align: baseline; display: inline; }
	.elementor .tp-madlib .elementor-field-group-text_message br { display: none; }
	.tp-ml-d { display: inline-block; margin: calc(10 * var(--m)) 0 0 calc(71 * var(--m)); }
	.elementor .tp-madlib .elementor-field-group-email { display: block; width: 100%; margin: calc(31 * var(--m)) 0 0; }
	.elementor .tp-madlib .elementor-field-group-email .elementor-field-textual { width: 100%; }
	.tp-ml-e { display: block; margin-top: calc(21 * var(--m)); text-indent: calc(184 * var(--m)); }
	.elementor .tp-madlib .elementor-field-group-message { display: block; width: 100%; margin: calc(31 * var(--m)) 0 0; }
	.elementor .tp-madlib textarea.elementor-field-textual { width: 100%; height: calc(24 * var(--m)); min-height: 0; resize: none; text-align: center; }
	.elementor .tp-madlib .elementor-form-fields-wrapper .elementor-field-type-submit { display: block; width: 100%; margin-top: calc(56 * var(--m)); }
	.elementor .tp-madlib .elementor-field-type-submit .elementor-button { width: 100%; height: calc(52 * var(--m)); margin: 0; border-radius: 100px; font: 400 calc(20 * var(--m)) / 1.02 var(--f-display); }
	.elementor .e-con.tp-contact-form { padding: 0 24px; }
}
