/*
Theme Name:   Axiorum Kadence Child
Theme URI:    https://axiorumedia.com/
Description:  Child theme de Kadence para Axiorum Media. Diseño "dark premium" de alto impacto, monocromático. Gutenberg + patrones, mobile-first.
Author:       Axiorum Media
Template:     kadence
Version:      0.17.1
Requires at least: 6.4
Requires PHP: 7.4
License:      GPL-2.0-or-later
Text Domain:  axiorum
*/

/* ==========================================================================
   v0.5.0 — Contenedor global + responsive. Monocromo estricto (#191918, #000, blanco, grises).
   Único elemento de energía: luz blanca radial en movimiento lento + grano.
   Fuentes Poppins/Inter: PROVISIONALES.
   Contrastes AA: blanco/#191918 17,4:1 · #A3A3A1/#191918 6,9:1 · #A3A3A1/#000 8,1:1 · #A3A3A1/#222221 6,3:1.
   Breakpoints: 768px y 1025px (Kadence).
   ========================================================================== */
/* Fuentes: los @font-face se imprimen desde functions.php con URLs absolutas (ver axiorum_fonts_css). */

:root {
	--ax-bg: var(--wp--preset--color--primary, #191918);
	--ax-black: #000;
	--ax-bg-2: var(--wp--preset--color--dark-2, #222221);
	--ax-bg-3: var(--wp--preset--color--dark-3, #2A2A29);
	--ax-text: #fff;
	--ax-muted: var(--wp--preset--color--accent, #A3A3A1);
	--ax-line: rgba(255, 255, 255, .1);
	--ax-line-strong: rgba(255, 255, 255, .25);
	--ax-radius: 18px;
	--ax-ease: cubic-bezier(.16, 1, .3, 1);
	--ax-y: 0px;
	--ax-container: 1280px;
	--ax-gutter: clamp(20px, 5vw, 64px);
	--ax-pad: var(--ax-gutter);
	--ax-font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--ax-font-heading: 'Poppins', 'Inter', system-ui, sans-serif;
	/* Kadence: mismo ancho y margen para header, footer y contenido */
	--global-content-width: var(--ax-container);
	--global-content-edge-padding: var(--ax-gutter);
	--global-body-font-family: var(--ax-font-body);
	--global-heading-font-family: var(--ax-font-heading);
	--global-primary-nav-font-family: var(--ax-font-body);
}

html { scroll-behavior: smooth; }
html, body { overflow-x: clip; max-width: 100%; }
body { background: var(--ax-bg); color: var(--ax-text); -webkit-font-smoothing: antialiased; }
/* Fuentes forzadas sobre la tipografía del Personalizador de Kadence */
body, button, input, select, textarea, .entry-content { font-family: var(--ax-font-body); }
h1, h2, h3, h4, h5, h6, .ax-display, .ax-title, .ax-manifesto, .ax-marquee span, .ax-step-number, .ax-cta-title,
.entry-content :is(h1, h2, h3, h4, h5, h6) { font-family: var(--ax-font-heading); }

/* ---------- Contenedor global ---------- */
.ax-container, .wp-block-group.ax-container {
	box-sizing: border-box; width: 100%; max-width: var(--ax-container); margin-inline: auto !important; padding-inline: var(--ax-gutter); position: relative;
}
.ax-section > .ax-container > * { max-width: none; margin-left: 0; margin-right: 0; }

/* ---------- Kadence: header y footer alineados al contenedor ---------- */
.site-container,
.site-header-row-container-inner > .site-container,
.site-footer-row-container-inner > .site-container {
	box-sizing: border-box; max-width: var(--ax-container) !important; padding-inline: var(--ax-gutter) !important; margin-inline: auto;
}
.site-header-row-container-inner, .site-footer-row-container-inner { padding-inline: 0 !important; }
#masthead, .site-header-wrap, .site-header-row-container-inner, #colophon, .site-footer-row-container-inner { background-color: #191918 !important; }

/* ---------- Kadence: la página es lienzo completo (ignora ajustes de página) ---------- */
body:has(.ax-section) .content-area { margin-block: 0 !important; }
body:has(.ax-section) .content-container.site-container,
body:has(.ax-section) .content-wrap .site-container { max-width: none !important; padding-inline: 0 !important; }
body:has(.ax-section) .entry-content-wrap, body:has(.ax-section) .entry.single-entry { padding: 0 !important; box-shadow: none !important; background: transparent !important; }
body:has(.ax-section) .entry-hero, body:has(.ax-section) .entry-header, body:has(.ax-section) .page-title { display: none !important; }
body:has(.ax-section) #secondary { display: none !important; }
body:has(.ax-section) .entry-content > .alignfull.ax-section, .ax-section.alignfull { width: 100%; max-width: none !important; margin-inline: 0 !important; margin-block: 0 !important; }
::selection { background: #fff; color: #000; }

/* ---------- Base de secciones ---------- */
.ax-section { position: relative; padding-block: clamp(4.5rem, 10vw, 9rem); padding-inline: 0 !important; margin-block: 0 !important; }
.ax-section p { color: var(--ax-muted); }
.ax-section-head { display: grid; gap: .75rem; margin-bottom: clamp(2.5rem, 6vw, 5rem); }
.ax-title, .ax-section h2.ax-title {
	font-size: clamp(2.5rem, 7vw, 6.5rem); font-weight: 600; line-height: .95; letter-spacing: -.045em; margin: 0; max-width: 16ch;
}
.ax-section-intro, .ax-section p.ax-section-intro { max-width: 34rem; margin: .5rem 0 0; font-size: 1.1rem; }
.ax-kicker, .ax-section p.ax-kicker {
	display: inline-flex; align-items: center; gap: .75rem; margin-block: 0;
	font-size: .72rem; letter-spacing: .32em; text-transform: uppercase; font-weight: 500; color: var(--ax-muted);
}
.ax-kicker::before { content: ""; width: 2.5rem; height: 1px; background: currentColor; }
.ax-lead { font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.6; max-width: 36rem; }

/* Palabra en contorno */
.ax-outline { color: transparent; -webkit-text-stroke: 1.5px #fff; paint-order: stroke fill; }
@supports not (-webkit-text-stroke: 1px #fff) { .ax-outline { color: #fff; } }

/* ---------- Hero ---------- */
.ax-hero { min-height: clamp(560px, 85svh, 900px); display: flex; flex-direction: column; justify-content: center; overflow: hidden; isolation: isolate; padding-top: clamp(7rem, 12vh, 9rem) !important; padding-bottom: clamp(3.5rem, 8vh, 5.5rem) !important; }
.ax-hero > .ax-container { z-index: 1; }
.ax-hero-fx { position: absolute; inset: 0; max-width: none !important; margin: 0 !important; z-index: -1; pointer-events: none; overflow: hidden; }
.ax-glow {
	position: absolute; inset: -15%;
	background:
		radial-gradient(40% 35% at 70% 30%, rgba(255,255,255,.14), transparent 70%),
		radial-gradient(30% 30% at 20% 80%, rgba(255,255,255,.07), transparent 70%);
	filter: blur(20px); animation: ax-drift 22s ease-in-out infinite alternate;
}
.ax-iso {
	position: absolute; z-index: -1; pointer-events: none; right: calc(var(--ax-gutter) * -0.5); top: 50%;
	width: clamp(320px, 62vw, 980px); aspect-ratio: 877 / 501;
	background: url("assets/img/isotipo-blanco.png") center / contain no-repeat; opacity: .07;
	transform: translate3d(0, calc(-50% + var(--ax-y) * .25), 0) rotate(-4deg);
}
.ax-grain {
	position: absolute; inset: 0; opacity: .06; background-size: 160px 160px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	animation: ax-grain 1.2s steps(4) infinite;
}
.ax-hero-inner { position: relative; }
.ax-display, .ax-hero h1 {
	font-size: clamp(2.6rem, 7.6vw, 8.25rem); font-weight: 600; line-height: .92; letter-spacing: -.05em;
	margin: 1.5rem 0 clamp(2rem, 5vw, 3.5rem); max-width: 13.5ch; overflow-wrap: break-word;
}
.ax-display em { font-weight: 200; font-style: italic; letter-spacing: -.04em; }
.ax-hero-foot { display: grid; gap: 2rem; align-items: end; border-top: 1px solid var(--ax-line); padding-top: 2rem; }
.ax-hero-foot .wp-block-buttons { margin: 0; }
.ax-scroll-cue { position: absolute; right: max(var(--ax-gutter), calc((100vw - var(--ax-container)) / 2 + var(--ax-gutter) / 2)); bottom: 2rem; display: none; color: var(--ax-muted); font-size: .7rem; letter-spacing: .3em; text-transform: uppercase; text-decoration: none; writing-mode: vertical-rl; }
.ax-scroll-cue::after { content: ""; display: block; width: 1px; height: 60px; margin: 1rem auto 0; background: linear-gradient(#fff, transparent); animation: ax-cue 2s var(--ax-ease) infinite; }

@keyframes ax-drift { 0% { transform: translate3d(-4%, -2%, 0) scale(1); } 100% { transform: translate3d(6%, 5%, 0) scale(1.15); } }
@keyframes ax-grain { 0% { background-position: 0 0; } 25% { background-position: -40px 30px; } 50% { background-position: 35px -45px; } 75% { background-position: -25px -50px; } 100% { background-position: 0 0; } }
@keyframes ax-cue { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

/* ---------- Marquee ---------- */
.ax-marquee { display: flex; overflow: hidden; background: #fff; color: #000; border-block: 1px solid #fff; padding-block: clamp(1rem, 2.5vw, 1.75rem); user-select: none; }
.ax-marquee-track { flex: none; display: flex; align-items: center; gap: clamp(1.5rem, 3vw, 3rem); padding-right: clamp(1.5rem, 3vw, 3rem); animation: ax-marquee 28s linear infinite; }
.ax-marquee span { font-family: var(--wp--preset--font-family--heading, Poppins, sans-serif); font-size: clamp(1.75rem, 4.5vw, 4rem); font-weight: 600; letter-spacing: -.03em; text-transform: uppercase; white-space: nowrap; }
.ax-marquee span:nth-of-type(even) { color: transparent; -webkit-text-stroke: 1.2px #000; }
.ax-marquee i { font-style: normal; font-size: clamp(1.5rem, 3.5vw, 3rem); font-weight: 200; }
.ax-marquee:hover .ax-marquee-track { animation-play-state: paused; }
@keyframes ax-marquee { to { transform: translateX(-100%); } }

/* ---------- Servicios en filas ---------- */
.ax-service-list { border-top: 1px solid var(--ax-line-strong); }
.ax-service-row {
	position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: .5rem 1.25rem; align-items: center;
	padding-block: clamp(1.75rem, 4vw, 3rem); border-bottom: 1px solid var(--ax-line-strong); isolation: isolate;
}
.ax-service-row::before { content: ""; position: absolute; inset: 0 calc(var(--ax-gutter) * -.5); z-index: -1; background: #fff; border-radius: 4px; transform: scaleY(0); transform-origin: bottom; transition: transform .6s var(--ax-ease); }
.ax-service-row > * { margin: 0 !important; transition: color .4s var(--ax-ease), transform .6s var(--ax-ease); }
.ax-row-num { font-size: .85rem; letter-spacing: .2em; color: var(--ax-muted); align-self: start; padding-top: .9em; }
.ax-row-title, .ax-section h3.ax-row-title { font-size: clamp(2rem, 6vw, 5.5rem); font-weight: 500; letter-spacing: -.045em; line-height: 1; }
.ax-row-text { grid-column: 2 / 3; max-width: 36rem; }
.ax-row-arrow { grid-row: 1; grid-column: 3; }
.ax-row-arrow a { display: grid; place-items: center; width: clamp(3rem, 6vw, 5rem); aspect-ratio: 1; border: 1px solid var(--ax-line-strong); border-radius: 50%; font-size: clamp(1.25rem, 2vw, 1.75rem); text-decoration: none !important; color: #fff; transition: transform .5s var(--ax-ease), background-color .4s, color .4s, border-color .4s; }
@media (hover: hover) {
	.ax-service-row:hover::before { transform: scaleY(1); }
	.ax-service-row:hover > *, .ax-service-row:hover p { color: #000; }
	.ax-service-row:hover .ax-row-title { transform: translateX(1rem); }
	.ax-service-row:hover .ax-row-arrow a { background: #000; color: #fff; border-color: #000; transform: rotate(-45deg); }
}


/* ---------- Portafolio (slider) — PLACEHOLDER: imágenes de ejemplo ---------- */
.ax-portfolio-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 2rem; }
.ax-portfolio-head-text { display: grid; gap: .75rem; }
.ax-portfolio-head .wp-block-buttons { margin: 0; }
.ax-slider { position: relative; }
.ax-slider-track {
	display: flex; gap: clamp(1rem, 2vw, 1.75rem); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	padding: .5rem 0 1.5rem; scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab; outline-offset: 6px;
}
.ax-slider-track::-webkit-scrollbar { display: none; }
.ax-slider-track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; }
.ax-slider-track.is-dragging a { pointer-events: none; }
.ax-project {
	position: relative; flex: 0 0 min(82vw, 520px); margin: 0 !important; scroll-snap-align: start;
	aspect-ratio: 4 / 3; border-radius: var(--ax-radius); overflow: hidden; background: var(--ax-bg-3); isolation: isolate;
	border: 1px solid var(--ax-line);
}
.ax-project .ax-project-img { margin: 0; height: 100%; }
.ax-project .ax-project-img img {
	width: 100%; height: 100%; object-fit: cover; display: block; -webkit-user-drag: none;
	filter: grayscale(1) brightness(.85); transform: scale(1.02);
	transition: transform 1.1s var(--ax-ease), filter .8s var(--ax-ease);
}
.ax-project-overlay {
	position: absolute; inset: auto 0 0 0; z-index: 1; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .25rem 1rem;
	padding: clamp(1.25rem, 2.5vw, 2rem); background: linear-gradient(to top, rgba(0,0,0,.92) 0%, rgba(0,0,0,.6) 55%, transparent 100%);
	transform: translateY(0); transition: transform .7s var(--ax-ease), background-color .6s;
}
.ax-project-cat, .ax-section p.ax-project-cat { grid-column: 1; margin: 0; font-size: .7rem; letter-spacing: .28em; text-transform: uppercase; color: #d6d6d4; }
.ax-project-title, .ax-section h3.ax-project-title { grid-column: 1; margin: 0; font-size: clamp(1.25rem, 2vw, 1.75rem); font-weight: 500; letter-spacing: -.03em; line-height: 1.15; }
.ax-project-title a { color: #fff; text-decoration: none !important; }
.ax-project-title a::after { content: ""; position: absolute; inset: 0; z-index: 2; } /* tarjeta completa clicable */
.ax-project-arrow, .ax-section p.ax-project-arrow {
	grid-column: 2; grid-row: 1 / 3; margin: 0; display: grid; place-items: center; width: 3.25rem; aspect-ratio: 1; border-radius: 50%;
	background: #fff; color: #000; font-size: 1.25rem; transition: transform .6s var(--ax-ease);
}
.ax-project:focus-within { outline: 2px solid #fff; outline-offset: 4px; }
.ax-project:focus-within .ax-project-title a:focus-visible { outline: none; }
@media (hover: hover) and (pointer: fine) {
	.ax-project-overlay { transform: translateY(101%); background: rgba(0,0,0,.72); }
	.ax-project-arrow { transform: scale(.4) rotate(-90deg); }
	.ax-project:hover .ax-project-overlay, .ax-project:focus-within .ax-project-overlay, .ax-project.is-hover .ax-project-overlay { transform: none; }
	.ax-project:hover .ax-project-img img, .ax-project:focus-within .ax-project-img img, .ax-project.is-hover .ax-project-img img { filter: grayscale(0) brightness(1); transform: scale(1.1); }
	.ax-project:hover .ax-project-arrow, .ax-project.is-hover .ax-project-arrow { transform: rotate(-45deg); }
}
.ax-slider-controls { display: flex; align-items: center; gap: .75rem; margin-top: 1.5rem; }
.ax-slider-btn { display: grid; place-items: center; width: 3.25rem; aspect-ratio: 1; border-radius: 50%; border: 1px solid var(--ax-line-strong); background: transparent; color: #fff; font-size: 1.15rem; cursor: pointer; transition: background-color .4s var(--ax-ease), color .4s, border-color .4s; }
.ax-slider-btn:hover { background: #fff; color: #000; border-color: #fff; }
.ax-slider-btn:disabled { opacity: .35; cursor: default; background: transparent; color: #fff; }
.ax-slider-progress { flex: 1; height: 1px; background: var(--ax-line-strong); margin-left: 1rem; position: relative; overflow: hidden; }
.ax-slider-progress span { position: absolute; inset: 0 auto 0 0; width: var(--ax-progress, 20%); background: #fff; transition: width .4s var(--ax-ease); }
.ax-cursor.is-view { width: 84px; height: 84px; margin: -42px 0 0 -42px; mix-blend-mode: normal; background: #fff; }
.ax-cursor::after { content: "Ver"; position: absolute; inset: 0; display: grid; place-items: center; font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: #000; opacity: 0; transition: opacity .3s; }
.ax-cursor.is-view::after { opacity: 1; }
@media (min-width: 1025px) { .ax-project { flex-basis: 560px; } }

/* ---------- Manifiesto ---------- */
.ax-manifiesto { overflow: hidden; }
.ax-manifesto, .ax-section p.ax-manifesto {
	font-family: var(--wp--preset--font-family--heading, Poppins, sans-serif); color: #fff;
	font-size: clamp(2.25rem, 6.4vw, 7rem); font-weight: 300; line-height: 1.02; letter-spacing: -.05em; margin: 2rem 0 0; max-width: 18ch;
}
.ax-manifesto em { font-weight: 200; }
.ax-manifesto strong { font-weight: 700; }

/* ---------- Tarjetas / grillas ---------- */
.ax-grid-4, .ax-grid-3 { display: grid; gap: 1px; background: var(--ax-line); border: 1px solid var(--ax-line); border-radius: var(--ax-radius); overflow: hidden; }
.ax-card { position: relative; padding: clamp(1.75rem, 3.5vw, 3rem) !important; background: var(--ax-bg-2); transition: background-color .5s var(--ax-ease); overflow: hidden; }
.ax-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .5s; background: radial-gradient(400px circle at var(--mx, 50%) var(--my, 0%), rgba(255,255,255,.09), transparent 60%); }
.ax-card:hover { background: var(--ax-bg-3); }
.ax-card:hover::after { opacity: 1; }
.ax-card h3 { font-size: clamp(1.4rem, 2.2vw, 2rem); font-weight: 500; letter-spacing: -.03em; margin: 2.5rem 0 .75rem; }
.ax-card p { margin: 0; }
.ax-quote, .ax-section p.ax-quote { font-size: 1.15rem; color: #fff; margin-bottom: 1.5rem !important; }

/* ---------- Proceso horizontal ---------- */
.ax-steps { display: grid; gap: 2.5rem; position: relative; }
.ax-step { position: relative; padding-left: 2.5rem; }
.ax-step::before { content: ""; position: absolute; left: .55rem; top: 0; bottom: -2.5rem; width: 1px; background: var(--ax-line-strong); }
.ax-step:last-child::before { bottom: 0; background: linear-gradient(var(--ax-line-strong), transparent); }
.ax-step::after { content: ""; position: absolute; left: 0; top: .9rem; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--ax-bg); border: 1px solid #fff; box-shadow: 0 0 0 6px var(--ax-bg), 0 0 24px rgba(255,255,255,.35); }
.ax-step-number, .ax-section p.ax-step-number { font-family: var(--wp--preset--font-family--heading, Poppins, sans-serif); font-size: clamp(3.5rem, 7vw, 6rem); font-weight: 200; line-height: 1; letter-spacing: -.05em; color: #fff; margin: 0; }
.ax-step h3 { font-size: 1.4rem; font-weight: 500; margin: 1rem 0 .5rem; letter-spacing: -.02em; }
.ax-step p:last-child { margin: 0; }

/* ---------- CTA ---------- */
.ax-cta { overflow: hidden; isolation: isolate; text-align: left; }
.ax-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 80% at 85% 100%, rgba(255,255,255,.12), transparent 70%); }
.ax-cta-title, .ax-section h2.ax-cta-title { font-size: clamp(3rem, 15.5vw, 14rem); font-weight: 700; line-height: .85; letter-spacing: -.065em; white-space: nowrap; margin: 1.5rem 0 2.5rem; }
.ax-dot { color: transparent; -webkit-text-stroke: 2px #fff; }
.ax-cta-foot { display: grid; gap: 2rem; align-items: end; border-top: 1px solid var(--ax-line); padding-top: 2rem; }
.ax-cta-foot .wp-block-buttons { margin: 0; }

/* ---------- Botones ---------- */
.wp-element-button, .wp-block-button__link {
	display: inline-flex; align-items: center; gap: .75em; padding: 1.15em 2.1em !important;
	transition: background-color .4s var(--ax-ease), color .4s var(--ax-ease), border-color .4s, transform .4s var(--ax-ease);
}
.wp-element-button span { display: inline-block; transition: transform .4s var(--ax-ease); }
.wp-element-button:hover span { transform: translateX(4px) rotate(-45deg); }
.is-style-outline > .wp-element-button, .wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: #fff; border: 1px solid var(--ax-line-strong); }
.is-style-outline > .wp-element-button:hover { background: #fff; color: #000; border-color: #fff; }
.ax-magnetic { will-change: transform; transition: transform .5s var(--ax-ease); }
.has-light-background-color .wp-element-button, .has-white-background-color .wp-element-button { background: var(--ax-bg); color: #fff; border-color: var(--ax-bg); }

/* ---------- Enlaces ---------- */
.ax-section a:not(.wp-element-button) { text-decoration: underline; text-decoration-color: var(--ax-line-strong); text-underline-offset: .25em; }
.ax-section a:not(.wp-element-button):hover { text-decoration-color: currentColor; }

/* ---------- Contacto ---------- */
.ax-contact-list { list-style: none; padding: 0; margin: 2rem 0 0; }
.ax-contact-list li { padding: 1.1rem 0; border-bottom: 1px solid var(--ax-line); color: var(--ax-muted); }
.ax-contact-list strong { display: block; font-size: .7rem; letter-spacing: .28em; text-transform: uppercase; font-weight: 500; color: var(--ax-muted); margin-bottom: .25rem; }
.ax-contact-list a { color: #fff; font-size: clamp(1.1rem, 1.8vw, 1.4rem); }
.ax-contact-cols .ax-title, .ax-section .ax-contact-cols h2.ax-title { font-size: clamp(2.5rem, 5vw, 4.75rem); }
.ax-form-card { background: var(--ax-bg-2); border: 1px solid var(--ax-line); border-radius: var(--ax-radius); padding: clamp(1.5rem, 3.5vw, 3rem); }

/* Fluent Forms en oscuro */
.fluentform .ff-el-input--label label, .fluentform label { color: #fff !important; font-weight: 400; }
.fluentform .ff-el-form-control, .fluentform input, .fluentform textarea, .fluentform select {
	background-color: var(--ax-bg-3) !important; color: #fff !important;
	border: 1px solid var(--ax-line-strong) !important; border-radius: 12px !important; padding: .95rem 1.1rem !important;
}
.fluentform .ff-el-form-control::placeholder, .fluentform textarea::placeholder, .fluentform input::placeholder { color: var(--ax-muted) !important; opacity: 1; }
.fluentform .ff-el-form-control:focus { border-color: #fff !important; box-shadow: 0 0 0 4px rgba(255,255,255,.08) !important; }
.fluentform .ff-btn-submit, .fluentform button[type="submit"] {
	width: 100%; background: #fff !important; color: #000 !important; border: 1px solid #fff !important;
	border-radius: 999px !important; text-transform: uppercase; letter-spacing: .14em; font-size: .8125rem; font-weight: 600; padding: 1.15em 2em !important; cursor: pointer;
}
.fluentform .ff-btn-submit:hover { background: transparent !important; color: #fff !important; }
.fluentform .ff-el-is-error .ff-el-form-control { border-color: #ff8a80 !important; }
.fluentform .error, .fluentform .text-danger { color: #ff8a80 !important; }

/* ---------- Cursor personalizado (solo escritorio con puntero fino) ---------- */
.ax-cursor { position: fixed; left: 0; top: 0; z-index: 9999; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: #fff; mix-blend-mode: difference; pointer-events: none; transition: width .3s var(--ax-ease), height .3s var(--ax-ease), margin .3s var(--ax-ease); }
.ax-cursor.is-hover { width: 56px; height: 56px; margin: -28px 0 0 -28px; }

/* ---------- Foco ---------- */
:where(a, button, input, textarea, select, summary):focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

/* ---------- Revelado al scroll ---------- */
.ax-js .ax-reveal { opacity: 0; transform: translate3d(0, 40px, 0); transition: opacity 1s var(--ax-ease), transform 1s var(--ax-ease); transition-delay: var(--ax-delay, 0s); }
.ax-js .ax-reveal.is-visible { opacity: 1; transform: none; }

/* ---------- Tablet ---------- */
@media (min-width: 768px) {
	.ax-grid-4 { grid-template-columns: repeat(2, 1fr); }
	.ax-service-row { grid-template-columns: 5rem 1fr auto; }
}
/* Contacto: una columna hasta escritorio */
@media (max-width: 1024px) {
	.ax-contact-cols.wp-block-columns { flex-wrap: wrap !important; gap: 3rem; }
	.ax-contact-cols > .wp-block-column { flex-basis: 100% !important; }
}
/* ---------- Escritorio ---------- */
@media (min-width: 1025px) {
	.ax-hero-foot, .ax-cta-foot { grid-template-columns: minmax(0, 1fr) auto; }
	.ax-scroll-cue { display: block; }
	.ax-service-row { grid-template-columns: 6rem minmax(0, 1.3fr) minmax(0, 1fr) auto; }
	.ax-row-text { grid-column: 3; grid-row: 1; }
	.ax-row-arrow { grid-column: 4; }
	.ax-grid-4 { grid-template-columns: repeat(4, 1fr); }
	.ax-grid-3 { grid-template-columns: repeat(3, 1fr); }
	.ax-steps { grid-template-columns: repeat(4, 1fr); gap: 2rem; }
	.ax-step { padding-left: 0; padding-top: 3rem; }
	.ax-step::before { left: 0; right: -2rem; top: .55rem; bottom: auto; width: auto; height: 1px; }
	.ax-step:last-child::before { right: 0; bottom: auto; background: linear-gradient(90deg, var(--ax-line-strong), transparent); }
	.ax-step::after { top: 0; }
	.ax-contact-cols { gap: 5rem !important; }
}


/* ---------- Pantallas verticales grandes (ej. monitor 1080x1920) ---------- */
@media (orientation: portrait) and (min-width: 768px) {
	.ax-hero { min-height: auto; padding-top: 16vh !important; padding-bottom: 9vh !important; }
	.ax-display, .ax-hero h1 { font-size: clamp(3.5rem, 10.5vw, 8.5rem); }
	.ax-title, .ax-section h2.ax-title { font-size: clamp(3rem, 9vw, 6.5rem); }
	.ax-manifesto, .ax-section p.ax-manifesto { font-size: clamp(2.75rem, 8.5vw, 7rem); }
	.ax-iso { width: min(80vw, 980px); top: 42%; }
	.ax-section { padding-block: clamp(5rem, 9vh, 9rem); }
}
/* ---------- Pantallas muy grandes ---------- */
@media (min-width: 1920px) {
	:root { --ax-container: 1440px; }
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.ax-iso { transform: translate3d(0, -50%, 0) rotate(-4deg); }
	.ax-marquee { overflow-x: auto; }
	.ax-cursor { display: none; }
}

/* ==========================================================================
   v0.6.0 — Pasada tipográfica "premium": escala más contenida, pesos ligeros,
   más aire, menos elementos compitiendo. Capa de overrides (solo CSS; no requiere
   reinsertar patrones).
   ========================================================================== */
:root {
	--ax-section-pad: clamp(96px, 12vw, 180px);
	--ax-measure: 60ch;
}
body, .entry-content { font-size: 1rem; font-weight: 300; line-height: 1.7; }
@media (min-width: 1025px) { body, .entry-content { font-size: 1.0625rem; } }
.ax-section { padding-block: var(--ax-section-pad); }
.ax-section p { max-width: var(--ax-measure); color: var(--ax-muted); }

/* Etiquetas */
.ax-kicker, .ax-section p.ax-kicker { font-size: .72rem; letter-spacing: .25em; font-weight: 400; gap: .9rem; }
.ax-kicker::before { width: 2rem; opacity: .6; flex: none; }
.ax-section p.ax-kicker { max-width: none; }

/* Hero: ligero, un solo acento en itálica */
.ax-hero { min-height: clamp(560px, 82svh, 860px); }
.ax-display, .ax-hero h1, .ax-section h1.ax-display {
	font-size: clamp(2.4rem, 5vw, 5.25rem); font-weight: 300; line-height: 1.05; letter-spacing: -.02em;
	max-width: 17ch; margin: 1.75rem 0 clamp(2.5rem, 5vw, 4rem);
}
.ax-display .ax-outline { color: inherit; -webkit-text-stroke: 0; font-weight: inherit; }
.ax-display em { font-weight: 200; font-style: italic; letter-spacing: -.015em; color: #fff; }
.ax-lead, .ax-section p.ax-lead { font-size: clamp(1rem, 1.2vw, 1.125rem); line-height: 1.75; max-width: 46ch; }
.ax-hero-foot { padding-top: 2.5rem; gap: 2.5rem; }
.ax-iso { opacity: .035; width: clamp(300px, 52vw, 860px); }
.ax-glow { opacity: .55; }
.ax-grain { opacity: .035; }

/* Títulos de sección */
.ax-title, .ax-section h2.ax-title, .ax-contact-cols .ax-title, .ax-section .ax-contact-cols h2.ax-title {
	font-size: clamp(1.9rem, 3.2vw, 3.25rem); font-weight: 300; line-height: 1.12; letter-spacing: -.02em; max-width: 22ch;
}
.ax-section-head { gap: 1.1rem; margin-bottom: clamp(3rem, 6vw, 5.5rem); }
.ax-section-intro, .ax-section p.ax-section-intro { font-size: 1rem; max-width: 52ch; }
.ax-section h3, .ax-card h3, .ax-step h3 { font-size: clamp(1.1rem, 1.4vw, 1.3rem); font-weight: 400; letter-spacing: -.01em; line-height: 1.3; }

/* Marquee discreto: banda oscura, texto gris, más lento */
.ax-marquee { background: var(--ax-bg); color: var(--ax-muted); border-block: 1px solid var(--ax-line); padding-block: clamp(1.1rem, 2vw, 1.6rem); }
.ax-marquee-track { animation-duration: 60s; gap: clamp(1.75rem, 3vw, 3rem); padding-right: clamp(1.75rem, 3vw, 3rem); }
.ax-marquee span { font-size: clamp(1.25rem, 2.5vw, 2rem); font-weight: 300; letter-spacing: -.01em; text-transform: none; color: var(--ax-muted); }
.ax-marquee span:nth-of-type(even) { color: #fff; -webkit-text-stroke: 0; font-style: italic; font-weight: 200; }
.ax-marquee i { font-size: 1rem; font-weight: 200; opacity: .5; }

/* Servicios: filas finas */
.ax-service-list { border-top: 1px solid var(--ax-line); }
.ax-service-row { border-bottom: 1px solid var(--ax-line); padding-block: clamp(1.75rem, 3.5vw, 2.75rem); }
.ax-row-title, .ax-section h3.ax-row-title { font-size: clamp(1.5rem, 2.8vw, 2.6rem); font-weight: 300; letter-spacing: -.02em; line-height: 1.1; }
.ax-row-num { font-size: .72rem; letter-spacing: .25em; padding-top: .6em; }
.ax-row-text, .ax-section p.ax-row-text { font-size: .95rem; }
.ax-row-arrow a { width: clamp(2.6rem, 4vw, 3.25rem); font-size: 1rem; border-color: var(--ax-line-strong); }
@media (hover: hover) { .ax-service-row:hover .ax-row-title { transform: translateX(.5rem); } }

/* Manifiesto */
.ax-manifesto, .ax-section p.ax-manifesto { font-size: clamp(1.75rem, 3.4vw, 3.5rem); font-weight: 300; line-height: 1.22; letter-spacing: -.02em; max-width: 26ch; color: #fff; }
.ax-manifesto .ax-outline { color: inherit; -webkit-text-stroke: 0; }
.ax-manifesto em { font-weight: 200; }
.ax-manifesto strong { font-weight: 400; }

/* Proceso */
.ax-step-number, .ax-section p.ax-step-number { font-size: clamp(2rem, 3.2vw, 2.75rem); font-weight: 200; letter-spacing: -.02em; }
.ax-step::after { box-shadow: 0 0 0 6px var(--ax-bg), 0 0 14px rgba(255,255,255,.18); }

/* Tarjetas */
.ax-card h3 { margin-top: 2rem; }
.ax-quote, .ax-section p.ax-quote { font-size: 1.05rem; font-weight: 300; }

/* CTA grande pero ligera */
.ax-cta-title, .ax-section h2.ax-cta-title { font-size: clamp(3rem, 9vw, 8rem); font-weight: 200; line-height: 1; letter-spacing: -.03em; margin: 1.75rem 0 3rem; }
.ax-dot { color: inherit; -webkit-text-stroke: 0; }
.ax-cta::before { opacity: .6; }

/* Portafolio */
.ax-project-title, .ax-section h3.ax-project-title { font-size: clamp(1.05rem, 1.4vw, 1.3rem); font-weight: 400; }
.ax-project-cat, .ax-section p.ax-project-cat { font-size: .68rem; letter-spacing: .25em; }

/* Contacto */
.ax-contact-list a { font-size: clamp(1rem, 1.3vw, 1.15rem); font-weight: 300; }
.ax-contact-list strong { font-size: .68rem; letter-spacing: .25em; }

/* Botones refinados */
.wp-element-button, .wp-block-button__link, .fluentform .ff-btn-submit, .fluentform button[type="submit"] {
	font-size: 13px !important; letter-spacing: .18em; font-weight: 500; padding: 16px 28px !important; line-height: 1.2;
}
.wp-block-buttons { gap: .85rem; }

/* Pantallas verticales grandes: no más grande que en escritorio */
@media (orientation: portrait) and (min-width: 768px) {
	.ax-display, .ax-hero h1, .ax-section h1.ax-display { font-size: clamp(2.6rem, 6.4vw, 5.25rem); }
	.ax-title, .ax-section h2.ax-title { font-size: clamp(2rem, 4.4vw, 3.25rem); }
	.ax-manifesto, .ax-section p.ax-manifesto { font-size: clamp(1.9rem, 4.6vw, 3.5rem); }
	.ax-hero { padding-top: 11vh !important; padding-bottom: 8vh !important; }
	.ax-iso { width: min(70vw, 860px); }
	.ax-section { padding-block: clamp(96px, 9vh, 180px); }
}

/* ==========================================================================
   v0.7.0 — Más aire entre elementos + banda de servicios premium (solo CSS).
   ========================================================================== */
:root { --ax-section-pad: clamp(104px, 13vw, 200px); --ax-grid-gap: clamp(32px, 4vw, 64px); }

/* Ritmo vertical: etiqueta → título → texto → botones */
.ax-section-head { gap: 0; margin-bottom: clamp(56px, 7vw, 104px); }
.ax-section-head > .ax-kicker, .ax-section-head > p.ax-kicker,
.ax-portfolio-head-text > .ax-kicker { margin-bottom: clamp(24px, 2.4vw, 32px) !important; }
.ax-section-head .ax-title, .ax-portfolio-head-text .ax-title { margin: 0 !important; }
.ax-section-head .ax-section-intro, .ax-portfolio-head-text .ax-section-intro { margin: clamp(28px, 3vw, 40px) 0 0 !important; }
.ax-portfolio-head { gap: clamp(32px, 4vw, 56px); }
.ax-portfolio-head-text { gap: 0; }

.ax-hero-inner > .ax-kicker { margin-bottom: clamp(28px, 3vw, 40px) !important; }
.ax-display, .ax-hero h1, .ax-section h1.ax-display { margin: 0 0 clamp(48px, 5.5vw, 72px) !important; }
.ax-hero-foot { padding-top: clamp(40px, 4.5vw, 56px); gap: clamp(40px, 4.5vw, 56px); }

.ax-manifesto, .ax-section p.ax-manifesto { margin-top: clamp(28px, 3vw, 40px); }

.ax-cta-title, .ax-section h2.ax-cta-title { margin: clamp(24px, 2.6vw, 36px) 0 clamp(48px, 5vw, 64px) !important; }
.ax-cta-foot { padding-top: clamp(40px, 4.5vw, 56px); gap: clamp(40px, 4.5vw, 56px); }
.ax-section .wp-block-buttons { gap: 16px; }

/* Grillas y tarjetas */
.ax-grid-4, .ax-grid-3 { gap: var(--ax-grid-gap); background: transparent; border: 0; border-radius: 0; overflow: visible; }
.ax-card { padding: clamp(32px, 3.4vw, 48px) !important; border: 1px solid var(--ax-line); border-radius: var(--ax-radius); }
.ax-card h3 { margin: clamp(28px, 3vw, 40px) 0 16px; }
.ax-quote, .ax-section p.ax-quote { margin-bottom: 28px !important; }
.ax-steps { gap: var(--ax-grid-gap); }
@media (min-width: 1025px) {
	.ax-steps { gap: var(--ax-grid-gap); }
	.ax-step { padding-top: 3.5rem; }
	.ax-step::before { right: calc(var(--ax-grid-gap) * -1); }
}
.ax-step h3 { margin: 24px 0 12px; }
@media (max-width: 1024px) { .ax-step::before { bottom: calc(var(--ax-grid-gap) * -1); } }

/* Servicios */
.ax-service-row { padding-block: clamp(32px, 4vw, 56px); gap: 16px clamp(24px, 3vw, 48px); }

/* Portafolio */
.ax-slider-track { gap: clamp(20px, 2.4vw, 32px); }
.ax-slider-controls { margin-top: clamp(24px, 3vw, 40px); }

/* Contacto */
.ax-contact-cols.wp-block-columns { gap: clamp(56px, 7vw, 112px) !important; }
.ax-contact-cols h2.ax-title { margin-top: clamp(24px, 2.4vw, 32px) !important; }
.ax-contact-cols .ax-title + p { margin-top: clamp(24px, 2.6vw, 32px); }
.ax-contact-list { margin-top: clamp(40px, 4vw, 56px); }
.ax-contact-list li { padding: 22px 0; }
.ax-form-card { padding: clamp(32px, 3.6vw, 48px); }
.fluentform .ff-el-group { margin-bottom: 24px; }

/* Footer de Kadence */
#colophon .site-footer-row-container-inner .site-container { padding-block: clamp(32px, 4vw, 48px); }
#colophon .site-footer-row-container-inner .site-container > * { gap: 24px; }

/* ---------- Banda de servicios premium ---------- */
.ax-marquee {
	--ax-mq-space: clamp(48px, 4.5vw, 64px);
	background: var(--ax-bg); color: var(--ax-muted);
	border-top: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08);
	padding-block: clamp(40px, 4vw, 56px);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
}
/* Dos pistas idénticas lado a lado: cada una se desplaza su propio ancho → bucle sin salto */
.ax-marquee-track { gap: 0; padding-right: 0; animation: ax-marquee 50s linear infinite; }
.ax-marquee span {
	font-family: var(--ax-font-heading); font-size: clamp(1.1rem, 2vw, 1.6rem); font-weight: 300; font-style: normal;
	text-transform: uppercase; letter-spacing: .22em; color: var(--ax-muted); -webkit-text-stroke: 0;
	transition: color .5s var(--ax-ease);
}
.ax-marquee span:nth-of-type(even) { color: #fff; font-style: normal; font-weight: 300; -webkit-text-stroke: 0; }
.ax-marquee span:hover { color: #fff; }
/* Separador: pequeño rombo de línea fina en lugar de la raya */
.ax-marquee i {
	font-size: 0; opacity: 1; flex: none; width: 7px; height: 7px; margin-inline: var(--ax-mq-space);
	border: 1px solid rgba(255,255,255,.35); transform: rotate(45deg);
}
.ax-marquee:hover .ax-marquee-track { animation-play-state: paused; }

@media (prefers-reduced-motion: reduce) {
	.ax-marquee { overflow: hidden; -webkit-mask-image: none; mask-image: none; justify-content: center; }
	.ax-marquee-track { animation: none !important; flex-wrap: wrap; justify-content: center; row-gap: 16px; padding-inline: var(--ax-gutter); }
	.ax-marquee-track + .ax-marquee-track { display: none; }
	.ax-marquee-track span:nth-of-type(n+7), .ax-marquee-track i:nth-of-type(n+6) { display: none; }
}
/* Por qué elegirnos: 2 columnas hasta 1280px para que las tarjetas respiren */
@media (min-width: 1025px) and (max-width: 1279px) { .ax-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .ax-grid-4 { gap: clamp(24px, 2.2vw, 40px); } }

/* ==========================================================================
   v0.9.0 — Integración de recursos del diseñador (íconos SVG + imágenes).
   Íconos como máscaras CSS con SVG embebido (data URI: sin peticiones extra ni problemas CORS). Fuentes en assets/icons/.
   ========================================================================== */
.ax-row-title::before, .ax-card[class*="ax-ico-"]::before, .ax-step-number::after,
.ax-contact-list li::before, .ax-row-arrow a::before, .ax-project-arrow::before, .ax-slider-btn::before {
	content: ""; display: inline-block; flex: none; background-color: currentColor;
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center;
	-webkit-mask-size: contain; mask-size: contain;
}
.ax-ico-diseno-web .ax-row-title::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3' y='4.5' width='18' height='15' rx='2'/%3E%3Cpath d='M3 8.5h18'/%3E%3Ccircle cx='6' cy='6.5' r='.4'/%3E%3Cpath d='M9.5 12.5 7.5 14.5l2 2M14.5 12.5l2 2-2 2'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3' y='4.5' width='18' height='15' rx='2'/%3E%3Cpath d='M3 8.5h18'/%3E%3Ccircle cx='6' cy='6.5' r='.4'/%3E%3Cpath d='M9.5 12.5 7.5 14.5l2 2M14.5 12.5l2 2-2 2'/%3E%3C/svg%3E"); }
.ax-ico-contenido-redes .ax-row-title::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='7' y='2.5' width='10' height='19' rx='2.2'/%3E%3Cpath d='M11 19h2'/%3E%3Cpath d='M12 14.2s-2.6-1.6-2.6-3.3a1.3 1.3 0 0 1 2.6-.5 1.3 1.3 0 0 1 2.6.5c0 1.7-2.6 3.3-2.6 3.3z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='7' y='2.5' width='10' height='19' rx='2.2'/%3E%3Cpath d='M11 19h2'/%3E%3Cpath d='M12 14.2s-2.6-1.6-2.6-3.3a1.3 1.3 0 0 1 2.6-.5 1.3 1.3 0 0 1 2.6.5c0 1.7-2.6 3.3-2.6 3.3z'/%3E%3C/svg%3E"); }
.ax-ico-gestion-integral .ax-row-title::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 3.5V9M12 15v5.5M3.5 12H9M15 12h5.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 3.5V9M12 15v5.5M3.5 12H9M15 12h5.5'/%3E%3C/svg%3E"); }
.ax-ico-diseno-3d .ax-row-title::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 2.8 20 7.4v9.2L12 21.2 4 16.6V7.4z'/%3E%3Cpath d='M4 7.4 12 12l8-4.6M12 12v9.2'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 2.8 20 7.4v9.2L12 21.2 4 16.6V7.4z'/%3E%3Cpath d='M4 7.4 12 12l8-4.6M12 12v9.2'/%3E%3C/svg%3E"); }
.ax-card.ax-ico-atencion::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3.5 19.5c.4-3.3 2.7-5.5 5.5-5.5s5.1 2.2 5.5 5.5'/%3E%3Cpath d='M15 5.5a3 3 0 0 1 0 5.5M17 14.5c2 .7 3.2 2.6 3.5 5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3.5 19.5c.4-3.3 2.7-5.5 5.5-5.5s5.1 2.2 5.5 5.5'/%3E%3Cpath d='M15 5.5a3 3 0 0 1 0 5.5M17 14.5c2 .7 3.2 2.6 3.5 5'/%3E%3C/svg%3E"); }
.ax-card.ax-ico-resultados::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M3.5 20.5h17'/%3E%3Cpath d='M6 17v-4M10.5 17V9.5M15 17v-6M19.5 17V5.5'/%3E%3Cpath d='M5 9.5 10 5l4 3 5-4.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M3.5 20.5h17'/%3E%3Cpath d='M6 17v-4M10.5 17V9.5M15 17v-6M19.5 17V5.5'/%3E%3Cpath d='M5 9.5 10 5l4 3 5-4.5'/%3E%3C/svg%3E"); }
.ax-card.ax-ico-tecnologia::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 2.8 19.5 5.5v6c0 4.6-3.2 8.2-7.5 9.7-4.3-1.5-7.5-5.1-7.5-9.7v-6z'/%3E%3Cpath d='m9 12 2.2 2.2L15.5 10'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 2.8 19.5 5.5v6c0 4.6-3.2 8.2-7.5 9.7-4.3-1.5-7.5-5.1-7.5-9.7v-6z'/%3E%3Cpath d='m9 12 2.2 2.2L15.5 10'/%3E%3C/svg%3E"); }
.ax-card.ax-ico-todo::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3.5' y='3.5' width='7' height='7' rx='1.5'/%3E%3Crect x='13.5' y='3.5' width='7' height='7' rx='1.5'/%3E%3Crect x='3.5' y='13.5' width='7' height='7' rx='1.5'/%3E%3Crect x='13.5' y='13.5' width='7' height='7' rx='1.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3.5' y='3.5' width='7' height='7' rx='1.5'/%3E%3Crect x='13.5' y='3.5' width='7' height='7' rx='1.5'/%3E%3Crect x='3.5' y='13.5' width='7' height='7' rx='1.5'/%3E%3Crect x='13.5' y='13.5' width='7' height='7' rx='1.5'/%3E%3C/svg%3E"); }
.ax-step.ax-ico-conversamos .ax-step-number::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M3.5 6a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4.5a2 2 0 0 1-2 2H9l-3 2.5v-2.5h-.5a2 2 0 0 1-2-2z'/%3E%3Cpath d='M15.5 8.5h3a2 2 0 0 1 2 2V15a2 2 0 0 1-2 2h-.5v2.5l-3-2.5H11a2 2 0 0 1-2-1.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M3.5 6a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4.5a2 2 0 0 1-2 2H9l-3 2.5v-2.5h-.5a2 2 0 0 1-2-2z'/%3E%3Cpath d='M15.5 8.5h3a2 2 0 0 1 2 2V15a2 2 0 0 1-2 2h-.5v2.5l-3-2.5H11a2 2 0 0 1-2-1.5'/%3E%3C/svg%3E"); }
.ax-step.ax-ico-planeamos .ax-step-number::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2'/%3E%3Cpath d='M3.5 9.5h17M8 3v4M16 3v4M7.5 13h3M7.5 16.5h6'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2'/%3E%3Cpath d='M3.5 9.5h17M8 3v4M16 3v4M7.5 13h3M7.5 16.5h6'/%3E%3C/svg%3E"); }
.ax-step.ax-ico-creamos .ax-step-number::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M14.5 4.5 19.5 9.5 9 20H4v-5z'/%3E%3Cpath d='M12.5 6.5l5 5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M14.5 4.5 19.5 9.5 9 20H4v-5z'/%3E%3Cpath d='M12.5 6.5l5 5'/%3E%3C/svg%3E"); }
.ax-step.ax-ico-lanzamos .ax-step-number::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3c3.5 2.5 5 6 4.5 10.5h-9C7 9 8.5 5.5 12 3z'/%3E%3Ccircle cx='12' cy='9' r='1.5'/%3E%3Cpath d='M7.5 13.5 5 16.5h3.5M16.5 13.5l2.5 3h-3.5M10.5 17v3.5M13.5 17v2'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3c3.5 2.5 5 6 4.5 10.5h-9C7 9 8.5 5.5 12 3z'/%3E%3Ccircle cx='12' cy='9' r='1.5'/%3E%3Cpath d='M7.5 13.5 5 16.5h3.5M16.5 13.5l2.5 3h-3.5M10.5 17v3.5M13.5 17v2'/%3E%3C/svg%3E"); }
.ax-card.ax-ico-comillas::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M5 17.5c0-4 1-7.5 4.5-10M5 13.5h3.5v4H5zM13.5 17.5c0-4 1-7.5 4.5-10M13.5 13.5H17v4h-3.5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M5 17.5c0-4 1-7.5 4.5-10M5 13.5h3.5v4H5zM13.5 17.5c0-4 1-7.5 4.5-10M13.5 13.5H17v4h-3.5z'/%3E%3C/svg%3E"); }
.ax-contact-list li:nth-child(1)::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M6.5 3.5h3l1.5 4-2 1.3a10 10 0 0 0 6.2 6.2l1.3-2 4 1.5v3a2 2 0 0 1-2 2A16 16 0 0 1 4.5 5.5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M6.5 3.5h3l1.5 4-2 1.3a10 10 0 0 0 6.2 6.2l1.3-2 4 1.5v3a2 2 0 0 1-2 2A16 16 0 0 1 4.5 5.5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E"); }
.ax-contact-list li:nth-child(2)::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4 20l1.2-4A8.5 8.5 0 1 1 8.4 19z'/%3E%3Cpath d='M9.2 8.5c0 3.4 2.9 6.3 6.3 6.3l.8-1.6-1.7-.8-.9.8a4.6 4.6 0 0 1-2.4-2.4l.8-.9-.8-1.7z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4 20l1.2-4A8.5 8.5 0 1 1 8.4 19z'/%3E%3Cpath d='M9.2 8.5c0 3.4 2.9 6.3 6.3 6.3l.8-1.6-1.7-.8-.9.8a4.6 4.6 0 0 1-2.4-2.4l.8-.9-.8-1.7z'/%3E%3C/svg%3E"); }
.ax-contact-list li:nth-child(3)::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='2'/%3E%3Cpath d='m3.5 7 8.5 6 8.5-6'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='2'/%3E%3Cpath d='m3.5 7 8.5 6 8.5-6'/%3E%3C/svg%3E"); }
.ax-contact-list li:nth-child(4)::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 21s-6.5-6-6.5-11a6.5 6.5 0 0 1 13 0c0 5-6.5 11-6.5 11z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 21s-6.5-6-6.5-11a6.5 6.5 0 0 1 13 0c0 5-6.5 11-6.5 11z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E"); }
.ax-row-arrow a::before, .ax-project-arrow::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M7 17 17 7M8.5 7H17v8.5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M7 17 17 7M8.5 7H17v8.5'/%3E%3C/svg%3E"); }
.ax-slider-btn::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E"); }

/* Hero (v0.9.1): se mantiene la luz lenta + grano + isotipo de v0.8.0 (sin imagen de ondas). */

/* Servicios: ícono entre número y título; flecha diagonal */
.ax-row-title, .ax-section h3.ax-row-title { display: flex; align-items: center; gap: clamp(16px, 1.8vw, 24px); }
.ax-row-title::before { width: 30px; height: 30px; color: var(--ax-muted); transition: color .3s var(--ax-ease); }
.ax-row-arrow a { font-size: 0 !important; }
.ax-row-arrow a::before { width: 18px; height: 18px; }
.ax-service-row:hover .ax-row-title::before { color: #000; }
@media (hover: hover) { .ax-service-row:hover .ax-row-arrow a { transform: rotate(45deg); } }

/* Portafolio: arte abstracto de ejemplo */
.ax-project .ax-project-img img { filter: grayscale(.2) brightness(.85); transform: scale(1); }
@media (hover: hover) and (pointer: fine) {
	.ax-project:hover .ax-project-img img, .ax-project:focus-within .ax-project-img img, .ax-project.is-hover .ax-project-img img { filter: none; transform: scale(1.03); }
}
.ax-project-arrow, .ax-section p.ax-project-arrow { font-size: 0 !important; max-width: none; height: auto; }
.ax-project-arrow::before { width: 18px; height: 18px; color: #000; }
.ax-slider-btn { font-size: 0 !important; color: #fff; }
.ax-slider-btn::before { width: 18px; height: 18px; }
.ax-slider-btn[data-dir="-1"]::before { transform: scaleX(-1); }

/* Manifiesto: rombo de línea fina detrás del texto */
.ax-manifiesto { isolation: isolate; }
.ax-manifiesto::before {
	content: ""; position: absolute; z-index: -1; top: 50%; left: 62%; width: clamp(260px, 34vw, 520px); aspect-ratio: 1;
	border: 1px solid rgba(255,255,255,.1); transform: translate(-50%, -50%) rotate(45deg); pointer-events: none;
}

/* Por qué elegirnos: ícono arriba, borde que se ilumina */
.ax-card { border-color: rgba(255,255,255,.08); transition: border-color .3s var(--ax-ease), background-color .5s var(--ax-ease); }
.ax-card:hover { border-color: rgba(255,255,255,.2); }
.ax-card[class*="ax-ico-"]::before { display: block; width: 28px; height: 28px; margin-bottom: 28px; color: var(--ax-muted); transition: color .3s; }
.ax-card:hover::before { color: #fff; }
@media (min-width: 1025px) and (max-width: 1279px) { .ax-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .ax-grid-4 { grid-template-columns: repeat(4, 1fr); } }

/* Testimonios: comillas */
.ax-card.ax-ico-comillas::before { width: 32px; height: 32px; opacity: .3; color: #fff; }
.ax-card.ax-ico-comillas:hover::before { opacity: .5; }

/* Proceso: ícono junto al número y nodos en rombo */
.ax-step-number, .ax-section p.ax-step-number { display: flex; align-items: center; justify-content: space-between; max-width: 12rem; }
.ax-step-number::after { width: 26px; height: 26px; color: var(--ax-muted); }
.ax-step::after { width: 7px; height: 7px; border-radius: 0; background: #fff; border: 0; transform: rotate(45deg); box-shadow: 0 0 0 6px var(--ax-bg), 0 0 12px rgba(255,255,255,.25); left: 2px; top: 1.1rem; }
@media (min-width: 1025px) { .ax-step::after { top: .3rem; left: 0; } }

/* CTA: ambiente de estudio con overlay */
.ax-cta { background: #0a0a0a !important; }
.ax-cta::before {
	opacity: 1;
	background: linear-gradient(rgba(10,10,10,.74), rgba(10,10,10,.74)), url("assets/img/cta-estudio-1600.webp") center / cover no-repeat;
}
@media (min-width: 1025px) and (prefers-reduced-motion: no-preference) { .ax-cta::before { background-attachment: scroll, fixed; } }

/* Contacto: íconos de 20px */
.ax-contact-list li { position: relative; padding-left: 40px; }
.ax-contact-list li::before { position: absolute; left: 0; top: 50%; width: 20px; height: 20px; margin-top: -10px; color: var(--ax-muted); }

@media (prefers-reduced-motion: reduce) {
	.ax-project:hover .ax-project-img img { transform: none; }
	.ax-service-row:hover .ax-row-arrow a { transform: none; }
}

/* ==========================================================================
   v0.10.0 — Encabezado propio premium (reemplaza el header de Kadence).
   ========================================================================== */
/* Respaldo: ocultar el header y el drawer de Kadence si siguen en el HTML */
body.ax-custom-header #masthead, body.ax-custom-header #mobile-drawer, body.ax-custom-header .kadence-sticky-header { display: none !important; }
/* Páginas sin hero: dejar espacio bajo el header fijo */
body.ax-custom-header:not(:has(.ax-hero)) #inner-wrap, body.ax-custom-header:not(:has(.ax-hero)) .site-main { padding-top: var(--ax-header-h); }
body.admin-bar .ax-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ax-header { top: 46px; } }

:root { --ax-header-h: 88px; }
@media (min-width: 1025px) { :root { --ax-header-h: 104px; } }

.ax-header {
	position: fixed; inset: 0 0 auto; z-index: 1000; height: var(--ax-header-h);
	background: transparent; border-bottom: 1px solid transparent;
	transition: height .5s var(--ax-ease), background-color .5s var(--ax-ease), border-color .5s var(--ax-ease), transform .5s var(--ax-ease), backdrop-filter .5s;
}
.ax-header.is-scrolled {
	--ax-header-h: 72px;
	background: rgba(25, 25, 24, .72); border-bottom-color: rgba(255,255,255,.07);
	-webkit-backdrop-filter: saturate(140%) blur(16px); backdrop-filter: saturate(140%) blur(16px);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .ax-header.is-scrolled { background: rgba(25,25,24,.96); } }
.ax-header.is-hidden { transform: translateY(-100%); }
.ax-header__inner {
	box-sizing: border-box; height: 100%; max-width: var(--ax-container); margin-inline: auto; padding-inline: var(--ax-gutter);
	display: flex; align-items: center; justify-content: space-between; gap: 2rem;
}
.ax-header__brand { display: inline-flex; align-items: center; flex: none; opacity: .95; transition: opacity .3s; }
.ax-header__brand:hover { opacity: 1; }
.ax-header__brand img { display: block; width: auto; height: 30px; transition: height .5s var(--ax-ease); }
.ax-header.is-scrolled .ax-header__brand img { height: 26px; }
@media (min-width: 1025px) { .ax-header__brand img { height: 34px; } }

/* Navegación de escritorio */
.ax-nav { display: none; }
.ax-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: clamp(28px, 3vw, 48px); }
.ax-nav__list a {
	position: relative; display: inline-block; padding-block: 8px; color: rgba(255,255,255,.72); text-decoration: none;
	font-family: var(--ax-font-body); font-size: 11.5px; font-weight: 400; letter-spacing: .24em; text-transform: uppercase;
	transition: color .35s var(--ax-ease);
}
.ax-nav__list a::after {
	content: ""; position: absolute; left: 0; right: .24em; bottom: 2px; height: 1px; background: currentColor;
	transform: scaleX(0); transform-origin: right; transition: transform .5s var(--ax-ease);
}
.ax-nav__list a:hover, .ax-nav__list a:focus-visible, .ax-nav__list .current-menu-item > a { color: #fff; }
.ax-nav__list a:hover::after, .ax-nav__list a:focus-visible::after, .ax-nav__list .current-menu-item > a::after { transform: scaleX(1); transform-origin: left; }

/* Acciones */
.ax-header__actions { display: flex; align-items: center; gap: 12px; }
.ax-header__cta {
	display: none; align-items: center; height: 40px; padding: 0 22px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px;
	color: #fff; text-decoration: none; font-size: 11.5px; font-weight: 400; letter-spacing: .22em; text-transform: uppercase;
	transition: background-color .4s var(--ax-ease), color .4s var(--ax-ease), border-color .4s var(--ax-ease);
}
.ax-header__cta:hover, .ax-header__cta:focus-visible { background: #fff; color: #000; border-color: #fff; }

/* Botón hamburguesa: dos líneas que se cruzan */
.ax-burger {
	position: relative; width: 44px; height: 44px; margin-right: -10px; padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer;
}
.ax-burger__line { position: absolute; left: 11px; right: 11px; height: 1px; background: currentColor; transition: transform .5s var(--ax-ease), width .5s var(--ax-ease); }
.ax-burger__line:first-child { top: 18px; }
.ax-burger__line:last-child { top: 25px; left: 19px; }
.ax-burger:hover .ax-burger__line:last-child { left: 11px; }
.ax-menu-open .ax-burger__line:first-child { transform: translateY(3.5px) rotate(45deg); }
.ax-menu-open .ax-burger__line:last-child { left: 11px; transform: translateY(-3.5px) rotate(-45deg); }

@media (min-width: 1025px) {
	.ax-nav { display: block; margin-left: auto; }
	.ax-header__cta { display: inline-flex; margin-left: clamp(16px, 2vw, 32px); }
	.ax-burger { display: none; }
}

/* Menú móvil a pantalla completa */
.ax-menu {
	position: fixed; inset: 0; z-index: 999; background: rgba(17,17,16,.97); overflow-y: auto; overscroll-behavior: contain;
	visibility: hidden; opacity: 0; clip-path: inset(0 0 100% 0);
	transition: opacity .5s var(--ax-ease), clip-path .7s var(--ax-ease), visibility 0s linear .7s;
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.ax-menu { background: rgba(17,17,16,.88); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
}
.ax-menu-open .ax-menu { visibility: visible; opacity: 1; clip-path: inset(0 0 0 0); transition: opacity .5s var(--ax-ease), clip-path .7s var(--ax-ease), visibility 0s; }
.ax-menu-open, .ax-menu-open body { overflow: hidden; }
.ax-menu-open .ax-header { background: transparent; border-bottom-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
.ax-menu__inner {
	box-sizing: border-box; min-height: 100%; max-width: var(--ax-container); margin-inline: auto;
	padding: calc(var(--ax-header-h) + 6vh) var(--ax-gutter) 40px; display: flex; flex-direction: column; justify-content: space-between; gap: 56px;
}
.ax-menu__list { list-style: none; margin: 0; padding: 0; counter-reset: axm; }
.ax-menu__list li { counter-increment: axm; border-bottom: 1px solid rgba(255,255,255,.08); overflow: hidden; }
.ax-menu__list a {
	display: flex; align-items: baseline; gap: 18px; padding: 18px 0; color: #fff; text-decoration: none;
	font-family: var(--ax-font-heading); font-size: clamp(2rem, 9vw, 3rem); font-weight: 200; letter-spacing: -.02em; line-height: 1.1;
	transform: translateY(105%); transition: transform .8s var(--ax-ease), color .3s;
}
.ax-menu__list a::before { content: "0" counter(axm); font-family: var(--ax-font-body); font-size: 11px; font-weight: 400; letter-spacing: .2em; color: var(--ax-muted); }
.ax-menu__list a:hover, .ax-menu__list a:focus-visible { color: var(--ax-muted); }
.ax-menu-open .ax-menu__list a { transform: none; }
.ax-menu-open .ax-menu__list li:nth-child(1) a { transition-delay: .12s; }
.ax-menu-open .ax-menu__list li:nth-child(2) a { transition-delay: .18s; }
.ax-menu-open .ax-menu__list li:nth-child(3) a { transition-delay: .24s; }
.ax-menu-open .ax-menu__list li:nth-child(4) a { transition-delay: .30s; }
.ax-menu-open .ax-menu__list li:nth-child(5) a { transition-delay: .36s; }
.ax-menu-open .ax-menu__list li:nth-child(n+6) a { transition-delay: .42s; }
.ax-menu__foot { display: grid; gap: 10px; opacity: 0; transform: translateY(12px); transition: opacity .6s var(--ax-ease) .1s, transform .6s var(--ax-ease) .1s; }
.ax-menu-open .ax-menu__foot { opacity: 1; transform: none; transition-delay: .45s; }
.ax-menu__foot a { color: #fff; text-decoration: none; font-size: 15px; font-weight: 300; width: fit-content; }
.ax-menu__foot a:hover { text-decoration: underline; text-underline-offset: .3em; }
.ax-menu__label, .ax-menu__addr { margin: 0; color: var(--ax-muted); font-size: 13px; }
.ax-menu__label { font-size: 11px; letter-spacing: .25em; text-transform: uppercase; margin-bottom: 6px; }
@media (min-width: 1025px) { .ax-menu { display: none; } }

:where(.ax-header, .ax-menu) :focus-visible { outline: 1px solid #fff; outline-offset: 6px; border-radius: 2px; }

@media (prefers-reduced-motion: reduce) {
	.ax-header, .ax-menu, .ax-menu__list a, .ax-menu__foot { transition: none !important; }
	.ax-menu__list a { transform: none; }
	.ax-header.is-hidden { transform: none; }
}

/* ==========================================================================
   v0.12.0 — Páginas de servicio (patrones "Axiorum — Servicio …").
   Hero con portada, columnas, pasos y galería (reutilizado de v0.11).
   ========================================================================== */
.ax-svc-main { display: block; }
.ax-svc-main .entry-content > .ax-section:first-child { margin-top: 0; }

/* Hero con portada a sangre */
.ax-svc-hero { min-height: clamp(560px, 88svh, 920px); display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; padding-top: calc(var(--ax-header-h, 96px) + 64px) !important; padding-bottom: clamp(56px, 8vw, 112px) !important; }
.ax-svc-hero > .ax-container { position: static; }
.ax-svc-cover-wrap { position: absolute; inset: 0; z-index: -1; }
.ax-svc-cover, .ax-svc-cover-wrap .wp-block-image { margin: 0 !important; height: 100%; }
.ax-svc-cover img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.2) brightness(.7); transform: scale(1.04); transition: transform 2.4s var(--ax-ease); }
.ax-js .ax-svc-hero.is-loaded .ax-svc-cover img, html:not(.ax-js) .ax-svc-cover img { transform: scale(1); }
.ax-svc-cover-wrap::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #000 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.25) 100%); }
.ax-svc-hero-inner { position: relative; max-width: 54rem; }
.ax-svc-name, .ax-section h1.ax-svc-name {
	font-size: clamp(2.5rem, 5.6vw, 5.5rem); font-weight: 300; line-height: 1.04; letter-spacing: -.025em; margin: clamp(24px, 2.6vw, 36px) 0 clamp(24px, 2.6vw, 32px) !important;
}
.ax-tags, .ax-section p.ax-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: clamp(28px, 3vw, 40px); max-width: none; }
.ax-tags span { display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #fff; }

/* Bloques en dos columnas (incluye / proceso) */
.ax-split { display: grid; gap: clamp(32px, 5vw, 64px); }
.ax-split-head .ax-title { margin-top: clamp(24px, 2.4vw, 32px) !important; }
.ax-split-body > p + p { margin-top: 24px; }
@media (min-width: 1025px) { .ax-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; } .ax-split-body { padding-top: 56px; } }
.ax-steps-list { list-style: none; margin: 40px 0 0; padding: 0; counter-reset: axs; }
.ax-steps-list li { counter-increment: axs; position: relative; padding: 22px 0 22px 56px; border-top: 1px solid var(--ax-line); color: var(--ax-muted); }
.ax-steps-list li:last-child { border-bottom: 1px solid var(--ax-line); }
.ax-steps-list li::before { content: "0" counter(axs); position: absolute; left: 0; top: 24px; font-size: 11px; letter-spacing: .2em; color: var(--ax-muted); }
.ax-steps-list strong { color: #fff; font-weight: 400; }

/* Galería mixta */
.ax-gallery { display: grid; grid-template-columns: 1fr; gap: clamp(16px, 2vw, 28px); }
.ax-gallery .wp-block-image { margin: 0 !important; overflow: hidden; border-radius: var(--ax-radius); border: 1px solid var(--ax-line); background: var(--ax-bg-3); }
.ax-gallery img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: grayscale(.2) brightness(.85); transition: filter .8s var(--ax-ease), transform 1.1s var(--ax-ease); }
@media (hover: hover) and (pointer: fine) { .ax-gallery .wp-block-image:hover img { filter: none; transform: scale(1.03); } }
@media (min-width: 768px) {
	.ax-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ax-gallery .ax-g-full { grid-column: 1 / -1; }
	.ax-gallery .ax-g-full img { aspect-ratio: 21 / 9; }
}
@media (min-width: 1025px) {
	.ax-gallery { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.ax-gallery .wp-block-image { grid-column: span 5; }
	.ax-gallery .ax-g-wide { grid-column: span 7; }
	.ax-gallery .ax-g-wide img { aspect-ratio: 16 / 10; }
	.ax-gallery .wp-block-image:not(.ax-g-wide):not(.ax-g-full) img { aspect-ratio: auto; height: 100%; }
	.ax-gallery .ax-g-full { grid-column: 1 / -1; }
}


/* Lista "Qué incluye" */
.ax-include-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.ax-include-list li { position: relative; padding: 20px 0 20px 36px; border-top: 1px solid var(--ax-line); color: var(--ax-muted); }
.ax-include-list li:last-child { border-bottom: 1px solid var(--ax-line); }
.ax-include-list li::before { content: ""; position: absolute; left: 0; top: 30px; width: 16px; height: 1px; background: #fff; }
.ax-include-list strong { color: #fff; font-weight: 400; }
@media (min-width: 768px) and (max-width: 1024px) { .ax-include-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 3vw, 48px); } .ax-include-list li:nth-last-child(2):nth-child(odd) { border-bottom: 1px solid var(--ax-line); } }
.ax-svc-hero .wp-block-buttons { margin-top: clamp(32px, 3.4vw, 48px); }
.ax-sample-note, .ax-section p.ax-sample-note { margin-top: 24px; font-size: .8rem; letter-spacing: .04em; color: var(--ax-muted); }

/* Galería: cursor de zoom + lightbox */
.ax-gallery .wp-block-image.is-zoomable { cursor: zoom-in; position: relative; }
.ax-gallery .wp-block-image.is-zoomable:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.ax-lightbox { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: clamp(16px, 4vw, 56px); background: rgba(0,0,0,.94); opacity: 0; visibility: hidden; transition: opacity .4s var(--ax-ease), visibility .4s; }
.ax-lightbox.is-open { opacity: 1; visibility: visible; }
.ax-lightbox img { max-width: 100%; max-height: 82svh; width: auto; height: auto; border-radius: var(--ax-radius); }
.ax-lightbox figcaption { margin-top: 16px; font-size: .85rem; color: var(--ax-muted); text-align: center; max-width: 60ch; }
.ax-lightbox figure { margin: 0; display: grid; justify-items: center; }
.ax-lb-btn { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--ax-line-strong); background: rgba(0,0,0,.4); color: #fff; font-size: 1.1rem; cursor: pointer; transition: background-color .3s, color .3s; }
.ax-lb-btn:hover, .ax-lb-btn:focus-visible { background: #fff; color: #000; }
.ax-lb-close { top: 20px; right: 20px; }
.ax-lb-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.ax-lb-next { right: 16px; top: 50%; transform: translateY(-50%); }
@media (max-width: 767px) { .ax-lb-prev, .ax-lb-next { top: auto; bottom: 20px; transform: none; } }

/* Otros servicios */
.ax-other-services { display: grid; gap: 0; border-top: 1px solid var(--ax-line-strong); }
.ax-other-services p { margin: 0; max-width: none; border-bottom: 1px solid var(--ax-line-strong); }
.ax-other-services a { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 24px 0; color: #fff; text-decoration: none !important; font-family: var(--ax-font-heading); font-weight: 300; font-size: clamp(1.15rem, 1.9vw, 1.6rem); letter-spacing: -.01em; transition: color .4s, padding .5s var(--ax-ease); }
.ax-other-services a::after { content: "→"; font-family: var(--ax-font-body); color: var(--ax-muted); transition: transform .5s var(--ax-ease), color .4s; }
@media (hover: hover) { .ax-other-services a:hover { padding-left: 12px; } .ax-other-services a:hover::after { transform: translateX(6px); color: #fff; } }
@media (min-width: 1025px) { .ax-other-services { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(32px, 4vw, 64px); } }
@media (prefers-reduced-motion: reduce) { .ax-lightbox, .ax-other-services a, .ax-other-services a::after, .ax-svc-cover img, .ax-gallery img { transition: none !important; } .ax-svc-cover img { transform: none !important; } }

/* ==========================================================================
   v0.12.2 — Iconos de servicio (Axi Diseño) en páginas de servicio y home.
   ========================================================================== */
.ax-ico-diseno-web { --ax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3' y='4.5' width='18' height='15' rx='2'/%3E%3Cpath d='M3 8.5h18'/%3E%3Ccircle cx='6' cy='6.5' r='.4'/%3E%3Cpath d='M9.5 12.5 7.5 14.5l2 2M14.5 12.5l2 2-2 2'/%3E%3C/svg%3E"); }
.ax-ico-contenido-redes { --ax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='7' y='2.5' width='10' height='19' rx='2.2'/%3E%3Cpath d='M11 19h2'/%3E%3Cpath d='M12 14.2s-2.6-1.6-2.6-3.3a1.3 1.3 0 0 1 2.6-.5 1.3 1.3 0 0 1 2.6.5c0 1.7-2.6 3.3-2.6 3.3z'/%3E%3C/svg%3E"); }
.ax-ico-gestion-integral { --ax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 3.5V9M12 15v5.5M3.5 12H9M15 12h5.5'/%3E%3C/svg%3E"); }
.ax-ico-diseno-3d { --ax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 2.8 20 7.4v9.2L12 21.2 4 16.6V7.4z'/%3E%3Cpath d='M4 7.4 12 12l8-4.6M12 12v9.2'/%3E%3C/svg%3E"); }
.ax-ico-estrategia { --ax-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Ccircle cx='12' cy='12' r='.6'/%3E%3Cpath d='M12 12 19 5M16.5 5H19v2.5'/%3E%3C/svg%3E"); }
.ax-ico-estrategia .ax-row-title::before { -webkit-mask-image: var(--ax-ico); mask-image: var(--ax-ico); }
.ax-svc-hero-inner[class*="ax-ico-"]::before, .ax-other-services p[class*="ax-ico-"] a::before {
	content: ""; display: block; flex: none; background: currentColor; -webkit-mask: var(--ax-ico) center / contain no-repeat; mask: var(--ax-ico) center / contain no-repeat;
}
.ax-svc-hero-inner[class*="ax-ico-"]::before { width: clamp(36px, 3.2vw, 48px); height: clamp(36px, 3.2vw, 48px); margin-bottom: clamp(24px, 2.4vw, 32px); color: #fff; opacity: .85; }
.ax-other-services p[class*="ax-ico-"] a { justify-content: flex-start; }
.ax-other-services p[class*="ax-ico-"] a::before { width: 22px; height: 22px; color: var(--ax-muted); transition: color .4s; }
.ax-other-services p[class*="ax-ico-"] a::after { margin-left: auto; }
@media (hover: hover) { .ax-other-services p[class*="ax-ico-"] a:hover::before { color: #fff; } }

/* ==========================================================================
   v0.13.0 — Logo del header ~+22 % (arriba, al hacer scroll y en móvil).
   ========================================================================== */
.ax-header__brand img { height: 37px; }
.ax-header.is-scrolled .ax-header__brand img { height: 32px; }
@media (min-width: 1025px) {
	.ax-header__brand img { height: 42px; }
	.ax-header.is-scrolled .ax-header__brand img { height: 34px; }
}
@media (max-width: 359px) { .ax-header__brand img, .ax-header.is-scrolled .ax-header__brand img { height: 30px; } }

/* ==========================================================================
   v0.14.0 — Parallax sutil (solo transform) + títulos con revelado en máscara
   + tarjetas claras en "Por qué elegirnos" y "Testimonios".
   ========================================================================== */
/* Parallax: --ax-pp lo calcula reveal.js (solo escritorio con puntero fino y sin reduced-motion). */
.ax-svc-cover-wrap { overflow: hidden; }
.ax-svc-cover-wrap .wp-block-image { position: absolute; inset: -10% 0; height: auto !important; transform: translate3d(0, var(--ax-pp, 0px), 0); will-change: transform; }
.ax-cta::before { inset: -10% 0; transform: translate3d(0, var(--ax-pp, 0px), 0); will-change: transform; }
@media (min-width: 1025px) and (prefers-reduced-motion: no-preference) { .ax-cta::before { background-attachment: scroll, scroll; } }

/* Títulos: revelado tipo línea (máscara + desplazamiento), reutiliza .is-visible de la cabecera */
@media (prefers-reduced-motion: no-preference) {
	.ax-js .ax-section-head.ax-reveal .ax-title, .ax-js .ax-split-head.ax-reveal .ax-title {
		clip-path: inset(0 0 100% 0); transform: translate3d(0, .35em, 0);
		transition: clip-path 1.2s var(--ax-ease) .1s, transform 1.2s var(--ax-ease) .1s;
	}
	.ax-js .ax-section-head.ax-reveal.is-visible .ax-title, .ax-js .ax-split-head.ax-reveal.is-visible .ax-title {
		clip-path: inset(0 0 -.25em 0); transform: none;
	}
}

/* Tarjetas claras (fondo de sección sigue oscuro) */
.ax-porque .ax-card, .ax-testimonios .ax-card { background: #F6F6F6; border-color: transparent; color: #4A4A48; }
.ax-porque .ax-card:hover, .ax-testimonios .ax-card:hover { background: #FFFFFF; border-color: transparent; }
.ax-porque .ax-card::after, .ax-testimonios .ax-card::after { background: radial-gradient(400px circle at var(--mx, 50%) var(--my, 0%), rgba(25,25,24,.06), transparent 60%); }
.ax-porque .ax-card h3, .ax-testimonios .ax-card h3 { color: #191918; }
.ax-porque .ax-card p, .ax-testimonios .ax-card p, .ax-section .ax-porque .ax-card p { color: #4A4A48; }
.ax-testimonios .ax-card p.ax-quote, .ax-section.ax-testimonios p.ax-quote { color: #191918; }
.ax-testimonios .ax-card strong { color: #191918; font-weight: 500; }
.ax-porque .ax-card[class*="ax-ico-"]::before { color: #6B6B6B; }
.ax-porque .ax-card:hover::before { color: #191918; }
.ax-testimonios .ax-card.ax-ico-comillas::before { color: #191918; opacity: .25; }
.ax-testimonios .ax-card.ax-ico-comillas:hover::before { opacity: .45; }
.ax-porque .ax-card a, .ax-testimonios .ax-card a { color: #191918; }
.ax-porque .ax-card :focus-visible, .ax-testimonios .ax-card :focus-visible { outline-color: #191918; }

/* ==========================================================================
   v0.16.0 — Auditoría: footer propio, 404, títulos enlazados, CTA, fondo del hero,
   transiciones más cortas y revelado con respaldo.
   ========================================================================== */
/* Transiciones 0.6–0.9 s */
.ax-js .ax-reveal { transition-duration: .8s, .8s; }
.ax-svc-cover img { transition-duration: .9s; }
@media (prefers-reduced-motion: no-preference) {
	.ax-js .ax-section-head.ax-reveal .ax-title, .ax-js .ax-split-head.ax-reveal .ax-title { transition-duration: .8s, .8s; }
}
/* Respaldo: reveal.js revisa a los 3 s; si IntersectionObserver no disparó, html.ax-failsafe muestra todo */
@keyframes ax-failsafe { to { opacity: 1; transform: none; clip-path: none; } }
.ax-js.ax-failsafe .ax-reveal:not(.is-visible) { animation: ax-failsafe .01s linear forwards; }
@media (prefers-reduced-motion: reduce) { .ax-js .ax-reveal { opacity: 1 !important; transform: none !important; } }

/* Títulos de servicio enlazados */
.ax-row-title a, .ax-project-title a { color: inherit; text-decoration: none !important; }
.ax-row-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ax-row-title a:focus-visible { outline: 2px solid #fff; outline-offset: 6px; }

/* CTA con titular largo */
.ax-cta-title, .ax-section h2.ax-cta-title { font-size: clamp(2.25rem, 5.6vw, 5.25rem); line-height: 1.05; letter-spacing: -.025em; max-width: 16ch; white-space: normal; }

/* Footer propio */
body.ax-has-footer #colophon { display: none !important; }
.ax-footer { background: #000; color: var(--ax-muted); border-top: 1px solid var(--ax-line); padding-top: clamp(56px, 7vw, 96px); font-size: .95rem; }
.ax-footer__grid { display: grid; gap: 40px; }
.ax-footer__brand img { display: block; height: 40px; width: auto; }
.ax-footer__tagline { margin: 20px 0 0; max-width: 28ch; }
.ax-footer__label { margin: 0 0 16px; font-size: 11px; letter-spacing: .25em; text-transform: uppercase; color: #fff; }
.ax-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ax-footer a { color: var(--ax-muted); text-decoration: none; transition: color .3s; }
.ax-footer a:hover, .ax-footer a:focus-visible { color: #fff; }
.ax-footer__bottom { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; margin-top: clamp(48px, 6vw, 80px); padding-block: 28px; border-top: 1px solid var(--ax-line); font-size: .85rem; }
.ax-footer__bottom p { margin: 0; }
.ax-footer__cta { color: #fff !important; letter-spacing: .2em; text-transform: uppercase; font-size: 11.5px; }
@media (min-width: 768px) { .ax-footer__grid { grid-template-columns: 1.4fr 1fr 1fr; } }

/* 404 */
.ax-404__hero { min-height: 80svh; padding-top: calc(var(--ax-header-h, 96px) + 64px) !important; padding-bottom: clamp(64px, 8vw, 120px) !important; }
.ax-404 .ax-lead { margin-block: 24px 40px; }
.ax-404 .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.ax-404__links { margin-top: clamp(56px, 7vw, 96px); }
.ax-404__links .ax-other-services { margin-top: 24px; }

/* ==========================================================================
   v0.17.0 — Inglés (Polylang): selector ES | EN, FAQ y bloque "Global".
   ========================================================================== */
.ax-lang { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; }
.ax-lang__link { color: var(--ax-muted); text-decoration: none !important; padding: 6px 2px; min-height: 24px; display: inline-flex; align-items: center; transition: color .3s; }
.ax-lang__link:hover, .ax-lang__link:focus-visible, .ax-lang__link.is-current { color: #fff; }
.ax-lang__link.is-current { border-bottom: 1px solid currentColor; }
.ax-lang__sep { color: var(--ax-line-strong); }
.ax-lang--header { display: none; }
@media (min-width: 1025px) { .ax-lang--header { display: inline-flex; margin-left: clamp(16px, 2vw, 28px); } }
.ax-lang--menu { margin-bottom: 24px; font-size: 13px; }
.ax-lang .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* FAQ */
.ax-faq-item { border-top: 1px solid var(--ax-line); padding: 24px 0; }
.ax-faq-item:last-child { border-bottom: 1px solid var(--ax-line); }
.ax-faq-item h3, .ax-section h3.ax-faq-q { margin: 0 0 10px; font-size: clamp(1.05rem, 1.4vw, 1.25rem); font-weight: 400; color: #fff; }
.ax-faq-item p { margin: 0; color: var(--ax-muted); }

/* Bloque "We work with clients anywhere" */
.ax-global-wrap { max-width: 52rem; }
.ax-global-wrap .ax-title { margin: clamp(24px, 2.4vw, 32px) 0 !important; }
.ax-global-wrap .wp-block-buttons { margin-top: clamp(28px, 3vw, 40px); }
