/* ==========================================================================
   Feuxui · keyvisual web
   Negro #050505 + ruido · texto #E8E8EA · Bricolage Grotesque · azul #1417FB
   ========================================================================== */
@font-face {
	font-family: "Bricolage Grotesque";
	src: url("../fonts/BricolageGrotesque-Variable.woff2") format("woff2");
	font-weight: 300 800;
	font-display: swap;
}

:root {
	--fx-bg: #050505;
	--fx-ink: #E8E8EA;
	--fx-soft: #8E8E93;
	--fx-line: rgba(232, 232, 234, .18);
	--fx-card: rgba(232, 232, 234, .06);
	--fx-accent: #1417FB;
	--fx-accent-soft: #B9BAFE;
	--fx-light: #ECECEE;
	--fx-dark-ink: #141414;
	--fx-red: #F81003;
	--fx-yellow: #FFD60A;
	--fx-font: "Bricolage Grotesque", system-ui, sans-serif;
	--fx-ease: cubic-bezier(.16, 1, .3, 1);
	--fx-gutter: clamp(16px, 4vw, 64px);
}

html { background: var(--fx-bg); overflow-x: clip; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

body.fx-site {
	background: var(--fx-bg);
	color: var(--fx-ink);
	font-family: var(--fx-font);
	font-optical-sizing: auto;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}
body.fx-site ::selection { background: var(--fx-accent); color: #fff; }
body.fx-site a { color: inherit; }
body.fx-site img { max-width: 100%; height: auto; }


/* contenedores claros (tema claro de marca) */
.fx-light { --fx-ink: #141414; --fx-soft: #55555A; --fx-line: rgba(20, 20, 20, .16); --fx-card: rgba(20, 20, 20, .05); color: #141414; position: relative; }
.fx-light > * { position: relative; z-index: 1; }
.fx-dark-noise { position: relative; }
.fx-dark-noise > * { position: relative; z-index: 1; }
.fx-blue { background: var(--fx-accent) !important; color: #fff; }

/* ---------- tipografía utilitaria ---------- */
.fx-xb .elementor-heading-title, .fx-xb { font-weight: 800; letter-spacing: -.045em; line-height: .86; text-transform: uppercase; }
.fx-reg .elementor-heading-title, .fx-reg { font-weight: 400; letter-spacing: -.06em; line-height: .86; text-transform: uppercase; }
.fx-kicker .elementor-heading-title, .fx-kicker { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fx-soft); line-height: 1.3; }
.elementor-heading-title em, .fx-em { font-style: normal; color: var(--fx-accent); }
.fx-light .elementor-heading-title em { color: var(--fx-accent); }
.fx-outline .elementor-heading-title { color: var(--fx-soft) !important; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor a { text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }
.elementor-widget-text-editor strong { font-weight: 700; }

/* flecha fina del keyvisual "——→" */
.fx-arw {
	display: inline-block; position: relative; vertical-align: middle;
	width: var(--fx-arw-w, 1.6em); height: 2px; margin-right: .3em; top: -.12em;
	background: currentColor; transform-origin: left center;
}
.fx-arw::after {
	content: ""; position: absolute; right: -1px; top: 50%;
	width: .32em; height: .32em; max-width: 18px; max-height: 18px; min-width: 8px; min-height: 8px;
	border-top: 2px solid currentColor; border-right: 2px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
}
.fx-xb .fx-arw, .fx-reg .fx-arw { height: max(2px, .025em); top: -.2em; }

/* texto dividido por palabras para animar */
.fx-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .06em; margin-bottom: -.06em; }
.fx-wi { display: inline-block; will-change: transform; }
.fx-c { display: inline-block; will-change: transform; }
.fx-scrub-word { transition: none; }

/* estados iniciales (solo si JS está activo, evita parpadeos) */
html.fx-js .fx-reveal, html.fx-js .fx-stagger > .e-con-inner > *, html.fx-js .fx-stagger > .elementor-element { opacity: 0; }
html.fx-js .fx-split .elementor-heading-title, html.fx-js .fx-split-chars .elementor-heading-title { visibility: hidden; }
html.fx-js .fx-split .elementor-heading-title.fx-ready, html.fx-js .fx-split-chars .elementor-heading-title.fx-ready { visibility: visible; }
html.fx-js.elementor-editor-active .fx-reveal, .elementor-editor-active .fx-stagger > * { opacity: 1 !important; }
.elementor-editor-active .fx-split .elementor-heading-title { visibility: visible !important; }

/* ---------- loader + transición en escalera ---------- */
.fx-loader, .fx-stairs-tr { position: fixed; inset: 0; z-index: 9500; pointer-events: none; display: none; }
html.fx-loading .fx-loader { display: block; pointer-events: all; }
.fx-loader__cols { position: absolute; inset: 0; display: flex; }
.fx-loader__cols i, .fx-stairs-tr i { flex: 1; background: var(--fx-bg); display: block; height: 100%; margin-left: -1px; }
html.fx-entering .fx-stairs-tr, .fx-stairs-tr.is-on { display: flex; }
.fx-loader__ui {
	position: absolute; inset: 0; padding: var(--fx-gutter);
	display: flex; flex-direction: column; justify-content: space-between; color: var(--fx-ink); font-family: var(--fx-font);
}
.fx-loader__logo { font-size: 22px; font-weight: 800; letter-spacing: -.05em; overflow: hidden; }
.fx-loader__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.fx-loader__word { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fx-soft); max-width: 22ch; line-height: 1.4; }
.fx-loader__pct { font-size: clamp(88px, 22vw, 320px); font-weight: 800; letter-spacing: -.06em; line-height: .78; font-variant-numeric: tabular-nums; }
.fx-loader__bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--fx-accent); transform: scaleX(0); transform-origin: left; }

/* ---------- cursor ---------- */
.fx-cursor, .fx-cursor-ring { position: fixed; left: 0; top: 0; z-index: 9600; pointer-events: none; border-radius: 50%; display: none; opacity: 0; }
html.fx-has-cursor .fx-cursor, html.fx-has-cursor .fx-cursor-ring { display: block; }
.fx-cursor { width: 6px; height: 6px; margin: -3px 0 0 -3px; background: var(--fx-ink); mix-blend-mode: difference; }
.fx-cursor-ring {
	width: 40px; height: 40px; margin: -20px 0 0 -20px; border: 1px solid rgba(232, 232, 234, .5);
	display: none; place-items: center; mix-blend-mode: difference;
	transition: width .35s var(--fx-ease), height .35s var(--fx-ease), margin .35s var(--fx-ease), background .35s, border-color .35s;
}
html.fx-has-cursor .fx-cursor-ring { display: grid; }
.fx-cursor-ring span { font: 700 11px/1 var(--fx-font); letter-spacing: .06em; text-transform: uppercase; color: #fff; opacity: 0; transition: opacity .2s; }
.fx-cursor-ring.is-link { width: 64px; height: 64px; margin: -32px 0 0 -32px; border-color: var(--fx-ink); }
.fx-cursor-ring.is-label { width: 96px; height: 96px; margin: -48px 0 0 -48px; background: var(--fx-accent); border-color: var(--fx-accent); mix-blend-mode: normal; }
.fx-cursor-ring.is-label span { opacity: 1; }

/* ---------- header (Theme Builder) ---------- */
.elementor-location-header { position: fixed; top: 0; left: 0; right: 0; z-index: 900; transition: transform .5s var(--fx-ease), background .4s, backdrop-filter .4s; }
.elementor-location-header.fx-scrolled { background: rgba(5, 5, 5, .62); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.elementor-location-header.fx-hidden { transform: translateY(-110%); }
body.admin-bar .elementor-location-header { top: 32px; }
.fx-logo .elementor-heading-title a { text-decoration: none; }
.fx-nav .elementor-nav-menu--main .elementor-item { position: relative; }
.fx-nav .elementor-nav-menu--main .elementor-item::after { transform-origin: right; }

/* botón con flecha del keyvisual */
.fx-btn .elementor-button { position: relative; overflow: hidden; isolation: isolate; transition: color .4s var(--fx-ease), background .4s var(--fx-ease); }
.fx-btn .elementor-button::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: var(--fx-accent);
	transform: translateY(101%); transition: transform .5s var(--fx-ease);
}
.fx-btn .elementor-button:hover::before { transform: translateY(0); }
.fx-btn .elementor-button:hover { color: #fff !important; border-color: var(--fx-accent) !important; }

/* ---------- hero ---------- */
.fx-hero { position: relative; overflow: hidden; display: grid !important; grid-template: minmax(0, 1fr) / minmax(0, 1fr); isolation: isolate; }
.fx-hero > * { grid-area: 1 / 1; min-width: 0; }
.fx-hero-back { align-self: center; z-index: 1; pointer-events: none; }
.fx-hero-back .elementor-heading-title { white-space: nowrap; text-align: center; }
.fx-hero-photo { z-index: 2; align-self: end; justify-self: center; width: min(700px, 52vw, 78vh) !important; pointer-events: none; }
.fx-hero-photo img {
	display: block; width: 100%; height: auto;
	-webkit-mask-image: linear-gradient(to bottom, #000 62%, transparent 98%);
	mask-image: linear-gradient(to bottom, #000 62%, transparent 98%);
}
.fx-hero-front { z-index: 3; }
.fx-hero::after {
	content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
	background: radial-gradient(120% 70% at 50% 120%, rgba(20, 23, 251, .22), transparent 60%);
}

/* ---------- foto que se funde con el fondo ---------- */
.fx-fade img {
	-webkit-mask-image: radial-gradient(75% 70% at 50% 42%, #000 45%, transparent 100%);
	mask-image: radial-gradient(75% 70% at 50% 42%, #000 45%, transparent 100%);
}
.fx-fade-left img { -webkit-mask-image: linear-gradient(to left, #000 50%, transparent); mask-image: linear-gradient(to left, #000 50%, transparent); }
.fx-fade-bottom img { -webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent); mask-image: linear-gradient(to bottom, #000 55%, transparent); }

/* imágenes con máscara de revelado */
.fx-mask .elementor-widget-container, .fx-mask.elementor-widget-image { overflow: hidden; }
.fx-mask img { will-change: transform, clip-path; }
.fx-parallax { overflow: hidden; }
.fx-parallax img { will-change: transform; transform: scale(1.18); }

/* ---------- marquee ---------- */
.fx-marquee { overflow: hidden; white-space: nowrap; display: block !important; }
.fx-marquee__track { display: inline-flex; gap: 0; will-change: transform; }
.fx-marquee__track > * { flex: none; }
.fx-marquee .elementor-heading-title { white-space: nowrap; padding-right: .4em; }

/* ---------- tarjetas / bento ---------- */
.fx-card { position: relative; transition: border-color .4s, background .4s; }
.fx-card:hover { border-color: rgba(232, 232, 234, .45) !important; }
.fx-card a.fx-card-link, .fx-card .fx-card-link a { position: static; }
.fx-card .fx-card-link a::after { content: ""; position: absolute; inset: 0; z-index: 5; }
.fx-card .elementor-widget-image img { transition: transform 1.1s var(--fx-ease), filter .6s; }
.fx-card:hover .elementor-widget-image img { transform: scale(1.045); }
.fx-shot .elementor-widget-container, .fx-shot.elementor-widget-image { border-radius: 8px; overflow: hidden; background: #111; }
.fx-shot img { aspect-ratio: 16 / 10; object-fit: cover; object-position: top; width: 100%; filter: grayscale(1) contrast(1.05) brightness(.85); }
.fx-card:hover .fx-shot img { filter: grayscale(0) brightness(1); }
.fx-tag .elementor-heading-title { display: inline-block; border: 1px solid var(--fx-line); border-radius: 99px; padding: 6px 12px; }

/* filtro del portafolio (lo construye el JS) */
.fx-filter-bar { display: flex; flex-wrap: wrap; gap: 8px; }
.fx-filter-bar button {
	font: 600 13px/1 var(--fx-font); letter-spacing: .02em; color: var(--fx-ink); background: transparent;
	border: 1px solid var(--fx-line); border-radius: 99px; padding: 10px 16px; cursor: pointer; transition: all .3s var(--fx-ease);
}
.fx-filter-bar button:hover { border-color: var(--fx-ink); }
.fx-filter-bar button[aria-pressed="true"] { background: var(--fx-ink); color: var(--fx-bg); border-color: var(--fx-ink); }
.fx-filter-bar button sup { font-size: 9px; margin-left: 3px; opacity: .6; }
.fx-card.is-out { display: none !important; }

/* lista con imagen que sigue al cursor */
.fx-hoverlist > .e-con, .fx-hoverlist > .e-con-inner > .e-con { border-top: 1px solid var(--fx-line); transition: background .4s var(--fx-ease), padding .4s var(--fx-ease); }
.fx-hoverlist .fx-row:hover { background: var(--fx-card); }
.fx-row .fx-row-title .elementor-heading-title { transition: transform .5s var(--fx-ease), color .3s; }
.fx-row:hover .fx-row-title .elementor-heading-title { transform: translateX(12px); color: var(--fx-ink); }
.fx-follow { position: fixed; left: 0; top: 0; z-index: 800; width: 280px; aspect-ratio: 4 / 3; border-radius: 6px; overflow: hidden; pointer-events: none; opacity: 0; transform: translate(-50%, -50%) scale(.8); }
.fx-follow img { width: 100%; height: 100%; object-fit: cover; }

/* teléfono para los reels */
.fx-phone .elementor-widget-container, .fx-phone.elementor-widget-video, .fx-phone.elementor-widget-html .fx-phone-frame {
	border-radius: 28px; overflow: hidden; border: 1px solid rgba(232, 232, 234, .22); background: #000;
	box-shadow: 0 30px 80px -30px rgba(20, 23, 251, .45);
}
.fx-phone .elementor-wrapper, .fx-phone video { aspect-ratio: 9 / 16 !important; height: auto !important; }
.fx-phone video { object-fit: cover; width: 100%; display: block; }

/* insignia de texto circular */
.fx-badge { width: 132px; height: 132px; position: relative; }
.fx-badge svg { width: 100%; height: 100%; animation: fx-spin 16s linear infinite; }
.fx-badge text { font: 600 10.5px var(--fx-font); letter-spacing: .22em; text-transform: uppercase; fill: var(--fx-ink); }
.fx-badge .fx-badge__c { position: absolute; inset: 0; display: grid; place-items: center; font-size: 30px; color: var(--fx-ink); }
@keyframes fx-spin { to { transform: rotate(360deg); } }

/* scroll horizontal fijado */
.fx-hscroll { overflow: hidden; }
@media (min-width: 1025px) {
	.fx-hscroll > .fx-hscroll__track, .fx-hscroll .fx-track { flex-wrap: nowrap !important; width: max-content !important; will-change: transform; }
}

/* tarjetas que se apilan */
@media (min-width: 768px) {
	.fx-stack > .e-con { position: sticky; top: 110px; }
}

/* migas de pan */
.fx-crumbs { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--fx-soft); }
.fx-crumbs a { text-decoration: none; color: var(--fx-soft); transition: color .3s; }
.fx-crumbs a:hover { color: var(--fx-ink); }
.fx-crumbs span[aria-hidden] { margin: 0 .5em; opacity: .5; }

/* chips del keyvisual */
.fx-chip { display: inline-flex; align-items: center; gap: 8px; font: 600 14px/1 var(--fx-font); letter-spacing: -.01em; }
.fx-chip b { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; color: #fff; font-size: 13px; }
.fx-chip.no b { background: var(--fx-red); } .fx-chip.si b { background: var(--fx-accent); } .fx-chip.ojo b { background: var(--fx-yellow); color: #141414; }

/* listas del contenido de conceptos */
.fx-checklist ul { list-style: none; padding: 0; margin: 0; }
.fx-checklist li { position: relative; padding: 18px 0 18px 44px; border-top: 1px solid var(--fx-line); font-size: clamp(17px, 1.6vw, 21px); font-weight: 500; letter-spacing: -.02em; }
.fx-checklist li::before {
	content: "✓"; position: absolute; left: 0; top: 16px; width: 28px; height: 28px; border-radius: 50%;
	background: var(--fx-accent); color: #fff; display: grid; place-items: center; font-size: 14px; font-weight: 700;
}
.fx-step-n .elementor-heading-title { font-variant-numeric: tabular-nums; }

/* reloj en vivo */
.fx-clock .elementor-heading-title { font-variant-numeric: tabular-nums; }
.fx-dot-live .elementor-heading-title::before {
	content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #2BD46A; margin-right: 8px; vertical-align: middle;
	box-shadow: 0 0 0 0 rgba(43, 212, 106, .6); animation: fx-pulse 2s infinite;
}
@keyframes fx-pulse { 0% { box-shadow: 0 0 0 0 rgba(43, 212, 106, .55); } 70% { box-shadow: 0 0 0 10px rgba(43, 212, 106, 0); } 100% { box-shadow: 0 0 0 0 rgba(43, 212, 106, 0); } }

/* correo grande que se copia */
.fx-copy .elementor-heading-title { cursor: copy; }
.fx-toast {
	position: fixed; left: 50%; bottom: 28px; z-index: 9700; transform: translate(-50%, 140%);
	background: var(--fx-ink); color: var(--fx-bg); font: 600 14px/1 var(--fx-font); padding: 14px 20px; border-radius: 99px; transition: transform .5s var(--fx-ease);
}
.fx-toast.is-on { transform: translate(-50%, 0); }

/* demos de conceptos: contenedor */
.fx-demo-wrap { width: 100%; }
.fxd { font-family: var(--fx-font); }

/* formulario de contacto (Elementor Pro) */
.fx-form .elementor-field-group .elementor-field { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--fx-line) !important; border-radius: 0 !important; color: var(--fx-ink) !important; font-family: var(--fx-font); font-size: 20px; padding: 14px 0 !important; }
.fx-form .elementor-field-group .elementor-field:focus { border-bottom-color: var(--fx-accent) !important; box-shadow: none !important; }
.fx-form .elementor-field-label { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fx-soft); }
.fx-form select.elementor-field { appearance: none; }
.fx-form select option { background: var(--fx-bg); }

/* pie: wordmark gigante */
.fx-wordmark .elementor-heading-title { line-height: .74 !important; white-space: nowrap; }

/* accesibilidad */
@media (prefers-reduced-motion: reduce) {
	.fx-badge svg { animation: none; }
	html.fx-js .fx-reveal, html.fx-js .fx-stagger > * { opacity: 1 !important; }
	html.fx-js .fx-split .elementor-heading-title { visibility: visible !important; }
}
@media (hover: none) { .fx-follow { display: none; } }
@media (max-width: 767px) {
	.fx-hero-photo { width: min(440px, 92vw) !important; }
	body.admin-bar .elementor-location-header { top: 46px; }
}

/* tarjetas de concepto */
.fx-cover img, .fx-cover-type { aspect-ratio: 4 / 5; width: 100%; object-fit: cover; object-position: top; border-radius: 8px; display: block; }
.fx-cover-type { border: 1px solid var(--fx-line); }
.fx-concept-card .fx-cover img { filter: grayscale(.2); }
.fx-concept-card:hover .fx-cover img { filter: none; }
.fx-demo-wrap .fxd { margin: 0 auto; }
.fx-light .fx-checklist li { border-top-color: rgba(20, 20, 20, .16); }

/* enlaces de navegación sin subrayado (pie, listas) */
.fx-footer .elementor-widget-text-editor a, .fx-links a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .4s var(--fx-ease); }
.fx-footer .elementor-widget-text-editor a:hover, .fx-links a:hover { background-size: 100% 1px; }

/* fondos alternos planos (sin granulado) */
.fx-dark-noise { background-color: #0B0B0D; }
.fx-light { background-color: var(--fx-light); }

/* palabras gigantes: el JS (fx-fit) achica la fuente si la palabra más larga no cabe */
.fx-fit .elementor-heading-title { overflow-wrap: normal; word-break: keep-all; hyphens: none; }

/* móvil: listas con imagen flotante → sin imagen; hero apilado */
@media (hover: none), (max-width: 1024px) {
	.fx-hoverlist .fx-row .elementor-widget-image { display: none !important; }
}
@media (max-width: 767px) {
	.fx-hero, .fx-hero-front { min-height: 100svh !important; }
	.fx-hero-back { align-self: start; margin-top: 33svh !important; }
	.fx-hero-photo { width: 58svh !important; max-width: none !important; justify-self: center; }
	.fx-hero-front { padding-bottom: 24px !important; }
	.fx-hero-front .elementor-widget-text-editor, .fx-hero-front .elementor-widget-heading { text-shadow: 0 2px 18px rgba(5, 5, 5, .9); }
	.fx-hide-m { display: none !important; }
}

/* acento sobre azul: negro */
.fx-blue .elementor-heading-title em { color: #050505; }
.fx-btn-light .elementor-button { border-color: rgba(255, 255, 255, .6) !important; }
.fx-btn-light .elementor-button::before { background: #050505; }

/* portales de series */
.fx-portal { overflow: hidden; }
.fx-portal-arrow .elementor-heading-title { transition: transform .6s var(--fx-ease); }
.fx-portal:hover .fx-portal-arrow .elementor-heading-title { transform: translateX(10px) rotate(-45deg); }
.fx-fan { position: relative; display: block !important; }
.fx-fan > .elementor-element { position: absolute !important; left: 50%; top: 50%; width: min(34%, 190px) !important; margin: 0 !important; }
.fx-fan img { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 10px; box-shadow: 0 24px 60px -20px rgba(0, 0, 0, .7); display: block; }
.fx-blue .fx-fan img { box-shadow: 0 24px 60px -18px rgba(0, 0, 30, .55); }

/* LA BRUTAL */
.fx-brutal .fx-brutal-word .elementor-heading-title { line-height: .78; }
.fx-team-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.fx-team-wide img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; object-position: 50% 30%; }
@media (max-width: 767px) { .fx-team-wide img { aspect-ratio: 4 / 3; } }
.fx-dl-row .fx-dl-k { flex: 0 0 170px; padding-top: 6px; }
@media (max-width: 767px) { .fx-dl-row .fx-dl-k { flex-basis: auto; } }
/* productos propios: captura a color */
.fx-shot-color img { filter: none !important; }

/* header en una sola fila en celular y tablet */
@media (max-width: 1024px) {
	.fx-header { flex-wrap: nowrap !important; }
	.fx-header > .elementor-element { flex: 0 0 auto !important; width: auto !important; max-width: none !important; }
	.fx-header-right { gap: 8px !important; }
	.fx-header .fx-btn .elementor-button { padding: 11px 18px !important; font-size: 13px !important; }
	.fx-header .elementor-menu-toggle { padding: 6px !important; }
}
/* scroll nativo en celular: nada de saltos */
html.fx-touch { scroll-behavior: auto; }
html.fx-touch .fx-scrub-word, html.fx-touch .fx-words .fx-wi { will-change: auto; }
@media (max-width: 767px) {
	/* fotos editoriales contenidas en celular */
	.fx-fade img, .fx-parallax img { max-height: 58svh; width: auto !important; margin: 0 auto; display: block; }
	.fx-parallax img { transform: none; }
}
@media (max-width: 767px) {
	.fx-fan > .elementor-element { width: 30% !important; }
}
/* en pantallas táctiles el hover no se queda pegado después de tocar */
@media (hover: none) {
	.fx-btn .elementor-button::before { display: none; }
	.fx-card:hover .elementor-widget-image img { transform: none; }
}
/* celular y tablet: los scroll horizontales fijados se vuelven carruseles nativos con el dedo */
@media (max-width: 1024px) {
	.fx-hscroll .fx-track { flex-direction: row !important; flex-wrap: nowrap !important; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-left: 18px; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 6px !important; }
	.fx-hscroll .fx-track::-webkit-scrollbar { display: none; }
	.fx-hscroll .fx-track > .e-con { flex: 0 0 min(82vw, 420px) !important; width: min(82vw, 420px) !important; max-width: none !important; scroll-snap-align: start; }
}
@media (max-width: 767px) {
	.fx-bento > .e-con { min-height: 0 !important; padding: 18px !important; gap: 12px !important; }
	.fx-bento .elementor-heading-title { font-size: clamp(40px, 13vw, 64px) !important; }
	.fx-bento .fx-blue .elementor-heading-title, .fx-bento .fx-clock .elementor-heading-title { font-size: 20px !important; }
	.fx-bento .fx-clock .elementor-heading-title { font-size: 11px !important; }
	.fx-bento .elementor-widget-text-editor { font-size: 13px !important; }
	.fx-footer .fx-wordmark .elementor-heading-title { font-size: 25vw !important; }
}
@media (hover: none) { .fx-shot img, .fx-concept-card .fx-cover img { filter: none !important; } }
@media (max-width: 767px) {
	.fx-filter-bar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -18px; padding: 0 18px 4px; }
	.fx-filter-bar::-webkit-scrollbar { display: none; }
	.fx-filter-bar button { flex: none; }
}
