/*
Theme Name:   INFOCOM Child
Theme URI:    https://www.infocom.es
Description:  Rediseño completo de infocom.es sobre Astra: sistema visual propio, páginas generadas con bloques nativos, rendimiento, seguridad y SEO técnico sin plugins adicionales.
Author:       INFOCOM, S.A.
Author URI:   https://www.infocom.es
Template:     astra
Version:      2.0.0
Requires at least: 6.4
Requires PHP: 7.4
License:      GPL-2.0-or-later
Text Domain:  infocom-child
*/

/* ==========================================================================
   0. FUENTES LOCALES — mismos nombres que usa Astra
   ========================================================================== */
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/inter-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Plus Jakarta Sans";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url("assets/fonts/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   1. TOKENS — "Técnico + Cercano"
   Azul INFOCOM evolucionado (tecnología) · tinta noche (autoridad)
   papel cálido (cercanía) · coral (el gesto humano) · menta (todo en orden)
   ========================================================================== */
:root {
	--ic-ink: #0b1026;
	--ic-ink-2: #161c3a;
	--ic-ink-3: #232a52;
	--ic-text: #2a2f45;
	--ic-muted: #61677d;
	--ic-paper: #f6f3ed;
	--ic-paper-2: #ede8de;
	--ic-white: #ffffff;
	--ic-line: #e2ddd2;
	--ic-line-cool: #e3e6ef;

	--ic-brand: #2d2be0;
	--ic-brand-deep: #0a0880;
	--ic-brand-050: #ecebff;
	--ic-violet: #7b3ff2;
	--ic-coral: #ff6a3d;
	--ic-coral-050: #ffe6dc;
	--ic-mint: #19c39c;

	--ic-font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--ic-font-head: "Plus Jakarta Sans", "Inter", system-ui, sans-serif;
	--ic-font-mono: ui-monospace, "SF Mono", "Cascadia Code", "Roboto Mono", Consolas, monospace;

	--ic-r-s: 10px;
	--ic-r: 18px;
	--ic-r-l: 28px;
	--ic-shadow-1: 0 1px 2px rgba(11, 16, 38, .05), 0 2px 6px rgba(11, 16, 38, .04);
	--ic-shadow-2: 0 18px 40px -18px rgba(11, 16, 38, .28), 0 6px 14px -8px rgba(11, 16, 38, .1);
	--ic-shadow-brand: 0 14px 30px -12px rgba(45, 43, 224, .55);
	--ic-ease: cubic-bezier(.2, .7, .2, 1);
	--ic-wrap: 1240px;
	--ic-gutter: clamp(16px, 4vw, 40px);
	--ic-header-h: 76px;

	/* Puente con la paleta global de Astra (editor de bloques incluido) */
	--ast-global-color-0: #2d2be0;
	--ast-global-color-1: #ff6a3d;
	--ast-global-color-2: #0b1026;
	--ast-global-color-3: #61677d;
	--ast-global-color-4: #f6f3ed;
	--ast-global-color-5: #ffffff;
	--ast-global-color-6: #ede8de;
	--ast-global-color-7: #19c39c;
	--ast-global-color-8: #000000;
}

/* ==========================================================================
   2. BASE
   ========================================================================== */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--ic-header-h) + 16px); }
body {
	font-family: var(--ic-font-body);
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--ic-text);
	background: var(--ic-white);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6, .entry-title, .site-title {
	font-family: var(--ic-font-head);
	color: var(--ic-ink);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -.025em;
	text-wrap: balance;
}
h1 { font-size: clamp(2.2rem, 1.4rem + 3.2vw, 3.8rem); font-weight: 800; letter-spacing: -.04em; }
h2 { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.75rem); letter-spacing: -.035em; }
h3 { font-size: clamp(1.15rem, 1.05rem + .4vw, 1.35rem); letter-spacing: -.02em; }
p { text-wrap: pretty; }
a { color: var(--ic-brand); text-underline-offset: .2em; text-decoration-thickness: 1px; transition: color .2s var(--ic-ease); }
a:hover { color: var(--ic-violet); }
strong, b { font-weight: 650; color: inherit; }
::selection { background: var(--ic-brand); color: #fff; }
:focus-visible { outline: 3px solid var(--ic-coral); outline-offset: 3px; border-radius: 6px; }
img { height: auto; }
.skip-link:focus, .screen-reader-text:focus {
	background: var(--ic-ink); color: #fff; padding: .75em 1.25em; border-radius: var(--ic-r-s);
	z-index: 100000; top: 8px; left: 8px; clip: auto !important; clip-path: none; width: auto; height: auto;
}

/* ==========================================================================
   3. CABECERA (Astra Header Builder)
   ========================================================================== */
.site-header .ast-above-header-bar,
.site-header .ast-primary-header-bar {
	background: rgba(255, 255, 255, .88);
	-webkit-backdrop-filter: saturate(170%) blur(14px);
	backdrop-filter: saturate(170%) blur(14px);
	border-bottom: 1px solid rgba(226, 221, 210, .7);
	transition: background-color .3s var(--ic-ease), box-shadow .3s var(--ic-ease);
}
.site-header .site-above-header-wrap { min-height: var(--ic-header-h); }
.ast-theme-transparent-header .site-header .ast-above-header-bar,
.ast-theme-transparent-header .site-header .ast-primary-header-bar {
	background: rgba(11, 16, 38, .25);
	border-bottom-color: rgba(255, 255, 255, .08);
}
.ic-scrolled .site-header .ast-above-header-bar,
.ic-scrolled .site-header .ast-primary-header-bar {
	background: rgba(255, 255, 255, .95) !important;
	box-shadow: 0 8px 24px -16px rgba(11, 16, 38, .4);
	border-bottom-color: var(--ic-line);
}
.custom-logo-link img { max-height: 44px; width: auto; transition: transform .35s var(--ic-ease); }
.custom-logo-link:hover img { transform: scale(1.04); }
/* Logotipo legible sobre el hero oscuro hasta hacer scroll */
.ast-theme-transparent-header:not(.ic-scrolled) .custom-logo-link img { filter: brightness(0) invert(1); }

#ast-hf-menu-1 > .menu-item > .menu-link {
	position: relative;
	font-family: var(--ic-font-head);
	font-weight: 600;
	font-size: .94rem;
	color: var(--ic-ink-2);
	padding-inline: .95em;
}
.ast-theme-transparent-header:not(.ic-scrolled) #ast-hf-menu-1 > .menu-item > .menu-link { color: rgba(255, 255, 255, .88); }
.ast-theme-transparent-header:not(.ic-scrolled) #ast-hf-menu-1 > .menu-item > .menu-link:hover { color: #fff; }
#ast-hf-menu-1 > .menu-item > .menu-link::after {
	content: ""; position: absolute; left: .95em; right: .95em; bottom: .85em; height: 2px; border-radius: 2px;
	background: var(--ic-coral); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ic-ease);
}
#ast-hf-menu-1 > .menu-item > .menu-link:hover::after,
#ast-hf-menu-1 > .current-menu-item > .menu-link::after { transform: scaleX(1); }

/* Ítem destacado: clase "menu-cta" o, por defecto, el último ítem */
#ast-hf-menu-1 > .menu-item.menu-cta > .menu-link,
#ast-hf-menu-1 > .menu-item:last-child > .menu-link {
	margin-left: .5em; padding: .6em 1.2em; line-height: 1.2 !important; height: auto !important; align-self: center;
	border-radius: 999px; color: var(--ic-ink) !important; background: var(--ic-coral);
	box-shadow: 0 10px 24px -12px rgba(255, 106, 61, .8);
	transition: transform .25s var(--ic-ease), box-shadow .25s var(--ic-ease);
}
#ast-hf-menu-1 > .menu-item.menu-cta > .menu-link::after,
#ast-hf-menu-1 > .menu-item:last-child > .menu-link::after { display: none; }
#ast-hf-menu-1 > .menu-item.menu-cta > .menu-link:hover,
#ast-hf-menu-1 > .menu-item:last-child > .menu-link:hover { transform: translateY(-1px); box-shadow: 0 16px 30px -12px rgba(255, 106, 61, .9); }

.main-header-menu .sub-menu { border: 1px solid var(--ic-line) !important; border-radius: var(--ic-r); box-shadow: var(--ic-shadow-2); padding: .4em; }
.main-header-menu .sub-menu .menu-link { border-radius: var(--ic-r-s); font-size: .93rem; }
.main-header-menu .sub-menu .menu-link:hover { background: var(--ic-paper); color: var(--ic-brand); }
.ast-header-search .astra-search-icon { color: var(--ic-ink-2); }
.ast-theme-transparent-header:not(.ic-scrolled) .ast-header-search .astra-search-icon,
.ast-theme-transparent-header:not(.ic-scrolled) .menu-toggle { color: #fff !important; }
.ast-mobile-header-content { background: #fff; border-top: 1px solid var(--ic-line); box-shadow: var(--ic-shadow-2); }
.ast-builder-menu-mobile .main-header-menu .menu-link { font-family: var(--ic-font-head); font-weight: 600; padding-block: .9em; border-bottom: 1px solid var(--ic-line) !important; color: var(--ic-ink-2); }

/* ==========================================================================
   4. LAYOUT DEL REDISEÑO — anula los contenedores de Astra en estas páginas
   ========================================================================== */
.ic-redesign .site-content > .ast-container,
.ic-redesign #primary, .ic-redesign .site-main, .ic-redesign .ast-article-single {
	max-width: none; width: 100%; padding: 0 !important; margin: 0 !important; border: 0; background: transparent;
}
.ic-redesign .site-content > .ast-container { display: block; }
.ic-redesign .entry-header, .ic-redesign .post-navigation, .ic-redesign #secondary { display: none; }
.ic-redesign .entry-content { margin: 0; }
.ic-redesign .entry-content > .alignfull { margin-inline: 0 !important; max-width: none !important; width: 100% !important; }
.ic-redesign .entry-content > * + * { margin-top: 0; }

.ic-sec { position: relative; padding-block: clamp(4rem, 2.5rem + 6vw, 8rem); overflow: hidden; }
.ic-sec > .ic-wrap, .ic-wrap {
	max-width: var(--ic-wrap); margin-inline: auto; padding-inline: var(--ic-gutter); position: relative; z-index: 1;
}
.ic-wrap > *, .ic-wrap > .wp-block-group__inner-container > * { margin-block: 0; }
.ic-wrap > * + *, .ic-wrap > .wp-block-group__inner-container > * + * { margin-top: clamp(2rem, 1.2rem + 2.5vw, 3.5rem); }
/* Temas clásicos sin theme.json: WordPress envuelve el interior de cada grupo en
   .wp-block-group__inner-container. Se neutraliza para que rejillas y flex funcionen igual. */
[class*="ic-"] > .wp-block-group__inner-container { display: contents; }
.ic-sec--white { background: var(--ic-white); }
.ic-sec--paper { background: var(--ic-paper); }
.ic-sec--paper2 { background: var(--ic-paper-2); }
.ic-sec--ink { background: var(--ic-ink); color: rgba(255, 255, 255, .78); }
.ic-sec--ink :where(h1, h2, h3, strong) { color: #fff; }
.ic-sec--ink a:not(.wp-block-button__link) { color: #c9c8ff; }

/* Cabeceras de sección */
.ic-eyebrow {
	display: inline-flex; align-items: center; gap: .6em;
	font: 600 .78rem/1.2 var(--ic-font-mono); letter-spacing: .08em; text-transform: uppercase;
	color: var(--ic-brand); margin: 0 0 1rem !important;
}
.ic-eyebrow::before { content: ""; width: 22px; height: 2px; border-radius: 2px; background: var(--ic-coral); }
.ic-sec--ink .ic-eyebrow, .ic-hero--home .ic-eyebrow, .ic-cta .ic-eyebrow { color: #b7b5ff; }
.ic-sec-head { max-width: 760px; }
.ic-sec-head.is-center { margin-inline: auto; text-align: center; }
.ic-sec-head.is-center .ic-eyebrow { justify-content: center; }
.ic-sec-head h2 { margin: 0 0 .5em; }
.ic-sec-lead { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); color: var(--ic-muted); line-height: 1.65; margin: 0; }
.ic-sec--ink .ic-sec-lead { color: rgba(255, 255, 255, .72); }

/* ==========================================================================
   5. HERO
   ========================================================================== */
.ic-hero { padding-top: calc(var(--ic-header-h) + clamp(3rem, 2rem + 5vw, 6rem)); padding-bottom: clamp(3.5rem, 2rem + 5vw, 6.5rem); }
.ic-hero h1 { margin: 0 0 .45em; }
.ic-hero__lead { font-size: clamp(1.1rem, 1rem + .45vw, 1.3rem); line-height: 1.6; max-width: 58ch; color: var(--ic-muted); margin: 0 0 2rem; }
.ic-hero__cols { align-items: center !important; gap: clamp(2rem, 1rem + 4vw, 5rem) !important; }
.ic-hero--compact .ic-wrap { max-width: 980px; }

/* Portada: noche con luz cálida y retícula técnica */
.ic-hero--home {
	background:
		radial-gradient(60% 70% at 85% 20%, rgba(45, 43, 224, .55), transparent 60%),
		radial-gradient(40% 50% at 70% 95%, rgba(255, 106, 61, .28), transparent 65%),
		var(--ic-ink);
	color: rgba(255, 255, 255, .8);
}
.ic-hero--home::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
	background-size: 64px 64px;
	-webkit-mask-image: radial-gradient(ellipse 70% 80% at 70% 30%, #000 20%, transparent 70%);
	mask-image: radial-gradient(ellipse 70% 80% at 70% 30%, #000 20%, transparent 70%);
}
.ic-hero--home h1 { color: #fff; font-size: clamp(2.4rem, 1.3rem + 4.4vw, 4.6rem); line-height: 1.03; }
.ic-hero--home .ic-hero__lead { color: rgba(255, 255, 255, .75); }
.ic-hl {
	color: inherit;
	background: linear-gradient(transparent 76%, rgba(255, 106, 61, .5) 76%, rgba(255, 106, 61, .5) 90%, transparent 90%);
	-webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.ic-hero--home .ic-hl { color: #ffd9cc; background-image: linear-gradient(transparent 84%, var(--ic-coral) 84%, var(--ic-coral) 92%, transparent 92%); }

/* Servicio: papel cálido con halo azul */
.ic-hero--service {
	background:
		radial-gradient(50% 70% at 100% 0%, rgba(45, 43, 224, .13), transparent 70%),
		radial-gradient(35% 50% at 0% 0%, rgba(255, 106, 61, .10), transparent 70%),
		var(--ic-paper);
}

/* Señales de confianza bajo los botones */
.ic-trust { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; padding: 0; margin: 1.75rem 0 0 !important; font-size: .9rem; color: rgba(255, 255, 255, .7); }
.ic-trust li { display: inline-flex; align-items: center; gap: .5em; margin: 0; padding: 0 !important; }
.ic-trust li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ic-mint); box-shadow: 0 0 0 4px rgba(25, 195, 156, .18); position: static !important; }

/* Cinta de partners */
.ic-marquee { margin-top: clamp(3rem, 2rem + 4vw, 5rem) !important; border-top: 1px solid rgba(255, 255, 255, .1); padding-top: 1.6rem; }
.ic-marquee__label { font: 600 .72rem/1 var(--ic-font-mono); letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .45); margin: 0 0 1.1rem; }
.ic-marquee__track {
	display: flex; overflow: hidden; gap: 3rem;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.ic-marquee__track ul { list-style: none; display: flex; gap: 3rem; margin: 0; padding: 0; flex-shrink: 0; animation: ic-marquee 38s linear infinite; }
.ic-marquee__track li { font: 700 1.15rem/1 var(--ic-font-head); letter-spacing: -.02em; color: rgba(255, 255, 255, .55); white-space: nowrap; padding: 0 !important; }
.ic-marquee__track li::before { display: none !important; }
.ic-marquee:hover ul { animation-play-state: paused; }
@keyframes ic-marquee { to { transform: translateX(calc(-100% - 3rem)); } }

/* ==========================================================================
   6. PANEL "ESTADO DEL SISTEMA" (ilustración CSS, sin imágenes)
   ========================================================================== */
.ic-panel {
	position: relative;
	border-radius: var(--ic-r-l);
	background: linear-gradient(180deg, rgba(35, 42, 82, .92), rgba(22, 28, 58, .96));
	border: 1px solid rgba(255, 255, 255, .1);
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .08);
	color: #fff;
	padding: 0 0 1.25rem;
	overflow: hidden;
	transform: rotate(-1.2deg);
	transition: transform .6s var(--ic-ease);
}
.ic-panel:hover { transform: rotate(0deg) translateY(-4px); }
.ic-panel::after { content: ""; position: absolute; inset: -40% -20% auto auto; width: 70%; height: 80%; background: radial-gradient(circle, rgba(255, 106, 61, .35), transparent 65%); pointer-events: none; }
.ic-panel__bar { display: flex; align-items: center; gap: 6px; padding: 1rem 1.25rem; border-bottom: 1px solid rgba(255, 255, 255, .08); font: 600 .78rem var(--ic-font-mono); color: rgba(255, 255, 255, .6); }
.ic-panel__bar i { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, .18); }
.ic-panel__bar i:first-child { background: #ff6a3d; }
.ic-panel__bar span { margin-left: .6rem; letter-spacing: .04em; }
.ic-panel__rows { list-style: none; margin: 0; padding: .6rem 1.25rem 0; }
.ic-panel__rows li {
	display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .85rem;
	padding: .85rem 0 !important; border-bottom: 1px dashed rgba(255, 255, 255, .1); margin: 0;
	font-size: .95rem;
}
.ic-panel__rows li::before { display: none !important; }
.ic-panel__rows li:last-child { border-bottom: 0; }
.ic-panel__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ic-mint); box-shadow: 0 0 0 0 rgba(25, 195, 156, .6); animation: ic-pulse 2.4s infinite; }
.ic-panel__rows li:nth-child(2) .ic-panel__dot { animation-delay: .6s; }
.ic-panel__rows li:nth-child(3) .ic-panel__dot { animation-delay: 1.2s; }
.ic-panel__rows li:nth-child(4) .ic-panel__dot { animation-delay: 1.8s; }
.ic-panel__k { color: rgba(255, 255, 255, .9); font-weight: 500; }
.ic-panel__v { font: 600 .78rem var(--ic-font-mono); color: var(--ic-mint); background: rgba(25, 195, 156, .12); padding: .35em .65em; border-radius: 999px; white-space: nowrap; }
.ic-panel__foot { display: flex; align-items: center; gap: .75rem; margin: 1rem 1.25rem 0; padding: .8rem 1rem; border-radius: 14px; background: rgba(255, 255, 255, .06); font-size: .88rem; color: rgba(255, 255, 255, .8); }
.ic-panel__avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--ic-coral); color: var(--ic-ink); font: 800 .78rem var(--ic-font-head); flex-shrink: 0; }
/* Variante código */
.ic-panel--code .ic-panel__rows li { grid-template-columns: auto auto 1fr; font-family: var(--ic-font-mono); font-size: .88rem; }
.ic-panel--code .ic-panel__k { color: #b7b5ff; }
.ic-panel--code .ic-panel__k::before { content: "const "; color: var(--ic-coral); }
.ic-panel--code .ic-panel__op { color: rgba(255, 255, 255, .4); }
.ic-panel--code .ic-panel__v { justify-self: end; }
@keyframes ic-pulse { 0% { box-shadow: 0 0 0 0 rgba(25, 195, 156, .55); } 70% { box-shadow: 0 0 0 9px rgba(25, 195, 156, 0); } 100% { box-shadow: 0 0 0 0 rgba(25, 195, 156, 0); } }

/* ==========================================================================
   7. BOTONES
   ========================================================================== */
.wp-block-buttons { gap: .75rem; }
.wp-block-buttons.is-center { justify-content: center; }
.wp-block-button__link, .wp-element-button, .ast-button, .button,
input[type="submit"], button[type="submit"],
.nf-form-content input[type="button"], .nf-form-content input[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	font-family: var(--ic-font-head); font-weight: 700; font-size: 1rem; line-height: 1.2; letter-spacing: -.01em;
	padding: 1em 1.6em; border-radius: 999px; border: 0; cursor: pointer;
	color: #fff; background: var(--ic-brand); box-shadow: var(--ic-shadow-brand);
	transition: transform .25s var(--ic-ease), box-shadow .25s var(--ic-ease), background-color .25s var(--ic-ease), color .25s var(--ic-ease);
}
.wp-block-button__link::after { content: "→"; transition: transform .25s var(--ic-ease); }
.wp-block-button__link:hover, .wp-element-button:hover, .ast-button:hover, .button:hover,
input[type="submit"]:hover, button[type="submit"]:hover,
.nf-form-content input[type="button"]:hover, .nf-form-content input[type="submit"]:hover {
	color: #fff; background: var(--ic-brand-deep); transform: translateY(-2px); box-shadow: 0 20px 36px -14px rgba(45, 43, 224, .7);
}
.wp-block-button__link:hover::after { transform: translateX(4px); }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--ic-ink); box-shadow: inset 0 0 0 1.5px rgba(11, 16, 38, .25); }
.wp-block-button.is-style-outline > .wp-block-button__link::after { content: none; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--ic-ink); color: #fff; box-shadow: inset 0 0 0 1.5px var(--ic-ink); }
.ic-btn-ghost > .wp-block-button__link { background: transparent; color: var(--ic-brand); box-shadow: none; padding-inline: .2em; }
.ic-btn-ghost > .wp-block-button__link:hover { background: transparent; color: var(--ic-violet); transform: none; box-shadow: none; }
/* En fondos oscuros: primario coral, contorno blanco */
:where(.ic-hero--home, .ic-sec--ink, .ic-cta) .wp-block-button:not(.is-style-outline):not(.ic-btn-ghost) > .wp-block-button__link { background: var(--ic-coral); color: var(--ic-ink); box-shadow: 0 16px 34px -14px rgba(255, 106, 61, .75); }
:where(.ic-hero--home, .ic-sec--ink, .ic-cta) .wp-block-button:not(.is-style-outline):not(.ic-btn-ghost) > .wp-block-button__link:hover { background: #ff7f58; color: var(--ic-ink); }
:where(.ic-hero--home, .ic-sec--ink, .ic-cta) .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .35); }
:where(.ic-hero--home, .ic-sec--ink, .ic-cta) .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--ic-ink); }
:where(.ic-sec--ink, .ic-cta) .ic-btn-ghost > .wp-block-button__link { color: #fff; }
.hvr-grow { transition: transform .25s var(--ic-ease); }
.hvr-grow:hover { transform: scale(1.04); }

/* ==========================================================================
   8. CIFRAS
   ========================================================================== */
.ic-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--ic-line); }
.ic-stat { padding: 2rem 1.5rem 0 0; border-right: 1px solid var(--ic-line); margin: 0 !important; }
.ic-stat + .ic-stat { padding-left: 1.5rem; }
.ic-stat:last-child { border-right: 0; }
.ic-stat__num { font: 800 clamp(2.4rem, 1.6rem + 3vw, 3.8rem)/1 var(--ic-font-head); letter-spacing: -.05em; color: var(--ic-ink); margin: 0 0 .6rem; }
.ic-stat:first-child .ic-stat__num { color: var(--ic-brand); }
.ic-stat__label { font-size: .95rem; color: var(--ic-muted); margin: 0; max-width: 24ch; }

/* ==========================================================================
   9. TARJETAS, REJILLAS Y BENTO
   ========================================================================== */
.ic-grid { display: grid; gap: clamp(1rem, .6rem + 1.2vw, 1.5rem); }
.ic-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ic-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ic-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ic-grid > *, .ic-bento > * { margin: 0 !important; }

.ic-card {
	position: relative;
	padding: clamp(1.5rem, 1.1rem + 1vw, 2.1rem);
	background: #fff;
	border: 1px solid var(--ic-line);
	border-radius: var(--ic-r-l);
	transition: transform .35s var(--ic-ease), box-shadow .35s var(--ic-ease), border-color .35s var(--ic-ease), opacity .7s var(--ic-ease);
}
.ic-sec--white .ic-card { background: var(--ic-paper); border-color: transparent; }
.ic-card > * { margin: 0; }
.ic-card h3 { margin: 1.1rem 0 .5rem; }
.ic-card p { color: var(--ic-muted); font-size: .98rem; line-height: 1.6; }
.ic-card h3 a { color: inherit; text-decoration: none; }
.ic-card.is-link h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: 1; }
.ic-card.is-link::after {
	content: "↗"; position: absolute; top: 1.3rem; right: 1.4rem;
	font: 700 1.1rem var(--ic-font-head); color: var(--ic-muted);
	transition: transform .3s var(--ic-ease), color .3s var(--ic-ease);
}
.ic-card.is-link:hover { transform: translateY(-5px); box-shadow: var(--ic-shadow-2); border-color: rgba(45, 43, 224, .2); background: #fff; }
.ic-card.is-link:hover::after { transform: translate(3px, -3px); color: var(--ic-coral); }
.ic-card.is-link:hover h3 { color: var(--ic-brand); }

.ic-ico {
	display: inline-grid; place-items: center; width: 50px; height: 50px; border-radius: 14px;
	background: var(--ic-brand-050); color: var(--ic-brand);
	transition: background-color .3s var(--ic-ease), color .3s var(--ic-ease), transform .3s var(--ic-ease);
}
.ic-ico svg { width: 24px; height: 24px; }
.ic-card:hover .ic-ico { background: var(--ic-brand); color: #fff; transform: rotate(-6deg); }
.ic-card--sm { padding: 1.35rem; }
.ic-card--sm .ic-ico { width: 42px; height: 42px; border-radius: 12px; }
.ic-card--sm h3 { font-size: 1.08rem; margin-top: .85rem; }
.ic-card--sm p { font-size: .92rem; }

/* Bento de servicios en portada */
.ic-bento { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: auto; gap: clamp(1rem, .6rem + 1.2vw, 1.5rem); }
.ic-tile--hero { grid-column: 1 / 3; grid-row: 1 / 3; background: var(--ic-ink) !important; border-color: transparent !important; color: rgba(255, 255, 255, .78); display: flex; flex-direction: column; overflow: hidden; }
.ic-tile--hero h3 { color: #fff; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.ic-tile--hero p { color: rgba(255, 255, 255, .72); font-size: 1.05rem; max-width: 46ch; }
.ic-tile--hero .ic-ico { background: rgba(255, 255, 255, .1); color: #fff; }
.ic-tile--hero.is-link:hover { background: var(--ic-ink-2) !important; }
.ic-tile--hero.is-link:hover h3 { color: #fff; }
.ic-tile--hero::before { content: ""; position: absolute; right: -15%; bottom: -25%; width: 70%; height: 70%; background: radial-gradient(circle, rgba(45, 43, 224, .6), transparent 65%); pointer-events: none; }
.ic-bento > .ic-tile:not(.ic-tile--wide) { min-height: 220px; }
.ic-tile--wide { grid-column: 1 / -1; padding-block: 1.5rem; display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.4fr); align-items: center; column-gap: 1.75rem; }
.ic-tile--wide h3 { margin: 0; }
.ic-code {
	margin: auto 0 0 !important; padding: 1.25rem 1.4rem; border-radius: 16px;
	background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .08);
	font: 500 .88rem/1.75 var(--ic-font-mono); color: #e6e6ff; white-space: pre; overflow: hidden;
}
.entry-content .ic-code code, .ic-code code { background: none; padding: 0; color: inherit; font: inherit; border-radius: 0; }
.ic-code span { color: rgba(255, 255, 255, .45); }
.ic-code em { font-style: normal; color: var(--ic-mint); }

/* ==========================================================================
   10. BLOQUES PARTIDOS, IMÁGENES, ICONO GRANDE
   ========================================================================== */
.ic-split { align-items: center !important; gap: clamp(2rem, 1rem + 4vw, 5rem) !important; }
.ic-split h2 { margin: 0 0 .6em; }
.ic-split--contact { align-items: flex-start !important; }
.ic-split p { margin: 0 0 1em; }
.ic-split .wp-block-buttons { margin-top: 1.75rem; }
.ic-media img { border-radius: var(--ic-r-l); width: 100%; object-fit: cover; box-shadow: var(--ic-shadow-2); }
.ic-media--team img { aspect-ratio: 5 / 4; object-fit: contain; background: radial-gradient(circle at 50% 60%, var(--ic-coral-050), var(--ic-paper) 70%); box-shadow: none; }
.ic-bigicon {
	position: relative; aspect-ratio: 1; max-width: 360px; margin-inline: auto; display: grid; place-items: center;
	border-radius: 40% 60% 55% 45% / 50% 45% 55% 50%;
	background: radial-gradient(circle at 30% 30%, #fff, var(--ic-brand-050) 70%);
	box-shadow: inset 0 0 0 1px rgba(45, 43, 224, .1);
	animation: ic-blob 14s ease-in-out infinite alternate;
}
.ic-bigicon .ic-ico { width: 45%; height: 45%; background: var(--ic-brand); color: #fff; border-radius: 30%; box-shadow: var(--ic-shadow-brand); }
.ic-bigicon .ic-ico svg { width: 50%; height: 50%; }
.ic-bigicon::after { content: ""; position: absolute; width: 22%; height: 22%; right: 8%; top: 10%; border-radius: 50%; background: var(--ic-coral); opacity: .9; }
@keyframes ic-blob { to { border-radius: 55% 45% 40% 60% / 45% 55% 45% 55%; } }

/* ==========================================================================
   11. PASOS ("Así trabajamos")
   ========================================================================== */
.ic-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); gap: clamp(1rem, .5rem + 1.5vw, 2rem); counter-reset: ic-step; position: relative; }
.ic-step { counter-increment: ic-step; position: relative; padding-top: 3.6rem; margin: 0 !important; }
.ic-step::before {
	content: counter(ic-step, decimal-leading-zero);
	position: absolute; top: 0; left: 0;
	font: 700 .85rem var(--ic-font-mono); color: var(--ic-ink);
	width: 2.6rem; height: 2.6rem; display: grid; place-items: center;
	border-radius: 50%; background: #fff; border: 1.5px solid var(--ic-ink);
	transition: background-color .3s var(--ic-ease), color .3s var(--ic-ease);
}
.ic-step::after { content: ""; position: absolute; top: 1.3rem; left: 3.2rem; right: -1rem; height: 1.5px; background: repeating-linear-gradient(90deg, var(--ic-line) 0 6px, transparent 6px 12px); }
.ic-step:last-child::after { display: none; }
.ic-step:hover::before { background: var(--ic-coral); border-color: var(--ic-coral); }
.ic-step h3 { margin: 0 0 .5rem; }
.ic-step p { margin: 0; color: var(--ic-muted); font-size: .98rem; }

/* ==========================================================================
   12. PRODUCTO PROPIO (InfocomDent) — maqueta CSS
   ========================================================================== */
.ic-chips { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 1.5rem 0 0 !important; }
.ic-chips li { margin: 0; padding: .45em .9em !important; border-radius: 999px; font-size: .85rem; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .12); color: rgba(255, 255, 255, .85); }
.ic-chips li::before { display: none !important; }
.ic-product { border-radius: var(--ic-r-l); background: #f7f8fc; overflow: hidden; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6); transform: perspective(1200px) rotateY(-8deg) rotateX(3deg); transition: transform .6s var(--ic-ease); }
.ic-product:hover { transform: perspective(1200px) rotateY(0) rotateX(0); }
.ic-product__bar { display: flex; align-items: center; gap: 6px; padding: .8rem 1rem; background: #fff; border-bottom: 1px solid #e8e9f2; font: 600 .78rem var(--ic-font-mono); color: #6b7088; }
.ic-product__bar i { width: 9px; height: 9px; border-radius: 50%; background: #d9dbe7; }
.ic-product__bar span { margin-left: .5rem; }
.ic-product__body { display: grid; grid-template-columns: 56px 1fr; min-height: 300px; }
.ic-product__side { background: var(--ic-ink-2); padding: 1rem .7rem; display: grid; gap: .8rem; align-content: start; }
.ic-product__side b { display: block; height: 30px; border-radius: 9px; background: rgba(255, 255, 255, .1); }
.ic-product__side b:first-child { background: var(--ic-brand); }
.ic-product__main { padding: 1.4rem; display: grid; gap: .9rem; align-content: start; }
.ic-product__arch { display: grid; grid-template-columns: repeat(8, 1fr); gap: 6px; }
.ic-product__arch span { aspect-ratio: .8; border-radius: 40% 40% 30% 30%; background: #fff; border: 1.5px solid #dfe2ee; }
.ic-product__arch.is-low span { border-radius: 30% 30% 40% 40%; }
.ic-product__arch span:nth-child(3), .ic-product__arch.is-low span:nth-child(6) { background: var(--ic-coral-050); border-color: var(--ic-coral); }
.ic-product__arch span:nth-child(5) { background: var(--ic-brand-050); border-color: var(--ic-brand); }
.ic-product__rows { display: grid; gap: .55rem; margin-top: .5rem; }
.ic-product__rows em { display: block; height: 12px; border-radius: 6px; background: #e6e8f1; }
.ic-product__rows em:nth-child(1) { width: 85%; } .ic-product__rows em:nth-child(2) { width: 65%; } .ic-product__rows em:nth-child(3) { width: 75%; }

/* ==========================================================================
   13. INCLUYE / VENTAJAS / LISTAS DE CHECK
   ========================================================================== */
.ic-duo { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(1rem, .6rem + 1.2vw, 1.5rem); }
.ic-duo > * { margin: 0 !important; }
.ic-box { padding: clamp(1.75rem, 1.2rem + 2vw, 3rem); border-radius: var(--ic-r-l); background: var(--ic-paper); }
.ic-box h2 { font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); margin: 0 0 1.25rem; }
.ic-box--accent { background: var(--ic-ink); color: rgba(255, 255, 255, .78); }
.ic-box--accent h2, .ic-box--accent h3 { color: #fff; }
.ic-benefits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1.5rem; }
.ic-benefit { margin: 0 !important; padding-top: 1rem; border-top: 2px solid var(--ic-coral); }
.ic-benefit h3 { font-size: 1.05rem; margin: 0 0 .35rem; }
.ic-benefit p { margin: 0; font-size: .92rem; color: rgba(255, 255, 255, .7); }

.ic-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.ic-checks li { position: relative; padding-left: 2.1rem !important; margin: 0; line-height: 1.5; }
.ic-checks li::before {
	content: ""; position: absolute; left: 0; top: .05em; width: 1.4rem; height: 1.4rem; border-radius: 50%;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%230b1026' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 10.5l3.2 3L15 7'/%3E%3C/svg%3E") center / 70% no-repeat, var(--ic-mint);
}

/* ==========================================================================
   14. FAQ (core/details, sin JavaScript)
   ========================================================================== */
.ic-faq-cols { gap: clamp(2rem, 1rem + 4vw, 5rem) !important; }
.ic-faq-cols h2 { margin: 0 0 .6em; }
.ic-faq { display: grid; gap: .75rem; }
.ic-faq > * { margin: 0 !important; }
.ic-faq .wp-block-details { background: #fff; border-radius: var(--ic-r); border: 1px solid var(--ic-line); transition: border-color .25s var(--ic-ease), box-shadow .25s var(--ic-ease); }
.ic-faq .wp-block-details[open] { border-color: rgba(45, 43, 224, .25); box-shadow: var(--ic-shadow-1); }
.ic-faq summary {
	list-style: none; cursor: pointer; position: relative;
	padding: 1.2rem 3.5rem 1.2rem 1.4rem;
	font: 650 1.05rem/1.4 var(--ic-font-head); color: var(--ic-ink);
}
.ic-faq summary::-webkit-details-marker { display: none; }
.ic-faq summary::after {
	content: "+"; position: absolute; right: 1.1rem; top: 50%; transform: translateY(-50%);
	width: 1.9rem; height: 1.9rem; display: grid; place-items: center; border-radius: 50%;
	background: var(--ic-paper); font: 500 1.3rem/1 var(--ic-font-body); color: var(--ic-ink);
	transition: transform .3s var(--ic-ease), background-color .3s var(--ic-ease);
}
.ic-faq details[open] summary::after { content: "−"; background: var(--ic-coral); }
.ic-faq details p { padding: 0 1.4rem 1.3rem; margin: 0; color: var(--ic-muted); }

/* ==========================================================================
   15. LLAMADA FINAL
   ========================================================================== */
.ic-sec--cta { background: var(--ic-paper); padding-block: clamp(3rem, 2rem + 4vw, 5.5rem); }
.ic-cta {
	position: relative; overflow: hidden; text-align: center;
	padding: clamp(2.75rem, 1.5rem + 5vw, 5.5rem) clamp(1.5rem, 1rem + 4vw, 5rem);
	border-radius: clamp(24px, 3vw, 40px);
	background:
		radial-gradient(50% 80% at 100% 0%, rgba(255, 106, 61, .45), transparent 60%),
		radial-gradient(50% 80% at 0% 100%, rgba(45, 43, 224, .7), transparent 60%),
		var(--ic-ink);
	color: rgba(255, 255, 255, .78);
}
.ic-cta > * { margin-inline: auto !important; }
.ic-cta h2 { color: #fff; max-width: 20ch; margin-bottom: .45em; font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3.2rem); }
.ic-cta .ic-sec-lead { color: rgba(255, 255, 255, .75); max-width: 56ch; }
.ic-cta .ic-eyebrow { justify-content: center; }
.ic-cta .wp-block-buttons { justify-content: center; margin-top: 2rem; }
.ic-cta__meta { margin-top: 1.5rem !important; font-size: .9rem; color: rgba(255, 255, 255, .6); }
.ic-cta__meta a { color: #fff; }

/* ==========================================================================
   16. PROYECTOS, PARTNERS, CONTACTO
   ========================================================================== */
.ic-project { margin: 0 !important; }
.ic-project img { aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--ic-r); transition: transform .5s var(--ic-ease); }
.ic-project:hover img { transform: translateY(-4px); }
.ic-project h3 { font-size: 1.05rem; margin: .9rem 0 0; }
.ic-partners { list-style: none; display: flex; flex-wrap: wrap; gap: .75rem; padding: 0; margin: 0; }
.ic-partners li { margin: 0; padding: .75em 1.3em !important; border-radius: 999px; background: var(--ic-paper); font: 700 1rem var(--ic-font-head); color: var(--ic-ink-2); letter-spacing: -.01em; }
.ic-partners li::before { display: none !important; }
.ic-contact-cards { display: grid; gap: 1rem; }
.ic-contact-cards > * { margin: 0 !important; }
.ic-contact-cards .ic-card { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; align-items: start; padding: 1.3rem; }
.ic-contact-cards .ic-card h3 { margin: 0 0 .25rem; font-size: 1.05rem; grid-column: 2; }
.ic-contact-cards .ic-card p { grid-column: 2; margin: 0; }
.ic-contact-cards .ic-ico { grid-row: span 2; }
.ic-formbox { padding: clamp(1.5rem, 1rem + 2vw, 2.75rem); border-radius: var(--ic-r-l); background: #fff; border: 1px solid var(--ic-line); box-shadow: var(--ic-shadow-2); }
.ic-formbox h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); margin: 0 0 .4em; }
.ic-formbox .ic-sec-lead { margin-bottom: 1.5rem; }

/* ==========================================================================
   17. CONTENIDO HEREDADO (blog, páginas legales, páginas sin rediseñar)
   ========================================================================== */
.entry-content > p, .entry-content > ul, .entry-content > ol { max-width: 72ch; }
.entry-content p a:not(.wp-block-button__link) { text-decoration: underline; text-decoration-color: rgba(45, 43, 224, .35); }
.entry-content :where(h1, h2, h3, h4) a { color: inherit; text-decoration: none; }
.entry-content ul.wp-block-list:not([class*="ic-"]) { list-style: none; padding-left: 0; }
.entry-content ul.wp-block-list:not([class*="ic-"]) > li { position: relative; padding-left: 1.9em; margin-bottom: .55em; }
.entry-content ul.wp-block-list:not([class*="ic-"]) > li::before {
	content: ""; position: absolute; left: 0; top: .35em; width: 1.15em; height: 1.15em; border-radius: 50%;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 10.5l3.2 3L15 7'/%3E%3C/svg%3E") center / 72% no-repeat, var(--ic-brand);
}
.entry-content ul.wp-block-list.ic-no-icon > li { padding-left: 0; }
.entry-content ul.wp-block-list.ic-no-icon > li::before { display: none; }
.entry-content ol > li::marker { color: var(--ic-brand); font-weight: 700; }
.wp-block-quote { margin: 2.5rem 0; padding: 2rem 2rem 2rem 2.4rem; border: 0 !important; border-radius: var(--ic-r-l); background: var(--ic-paper); font: 500 1.2rem/1.55 var(--ic-font-head); color: var(--ic-ink); position: relative; }
.wp-block-quote::before { content: "“"; position: absolute; top: -.15em; left: .25em; font: 800 5rem/1 var(--ic-font-head); color: var(--ic-coral); }
.wp-block-quote cite { display: block; margin-top: 1em; font: 600 .9rem var(--ic-font-body); color: var(--ic-muted); font-style: normal; }
.entry-content table { border-collapse: separate; border-spacing: 0; width: 100%; border: 1px solid var(--ic-line); border-radius: var(--ic-r); overflow: hidden; }
.entry-content th { background: var(--ic-paper); color: var(--ic-ink); text-align: left; }
.entry-content th, .entry-content td { padding: .8em 1em; border-bottom: 1px solid var(--ic-line); }
.entry-content code { background: var(--ic-paper); padding: .15em .4em; border-radius: 6px; font: .9em var(--ic-font-mono); }
.entry-content pre:not(.ic-code) { background: var(--ic-ink); color: #e6e8f2; border-radius: var(--ic-r); padding: 1.25em 1.5em; overflow-x: auto; }
.entry-content .wp-block-image img { border-radius: var(--ic-r); }
.efecto-zoom { overflow: hidden; border-radius: var(--ic-r); }
.efecto-zoom img { transition: transform .5s var(--ic-ease); }
.efecto-zoom img:hover { transform: scale(1.06); }
.schema-faq-section { background: #fff; border: 1px solid var(--ic-line); border-radius: var(--ic-r); padding: 1.2rem 1.4rem; margin-bottom: .8rem; }
.schema-faq-question { display: block; font: 650 1.05rem var(--ic-font-head); color: var(--ic-ink); margin-bottom: .35em; }
.schema-faq-answer { margin: 0; color: var(--ic-muted); }
.gs_logo_area img, .gs_logo_single img { filter: grayscale(1); opacity: .65; transition: filter .3s, opacity .3s; }
.gs_logo_area .gs_logo_single:hover img { filter: none; opacity: 1; }

/* Lottie diferido (inc/lottie.php) */
.ic-lottie, .wp-block-gb-lottiefiles { display: block; width: 100%; max-width: var(--ic-lottie-w, 400px); aspect-ratio: var(--ic-lottie-ar, 1 / 1); margin-inline: auto; background: transparent !important; contain: layout paint; }
.wp-block-column .ic-lottie { max-width: min(var(--ic-lottie-w, 400px), 140px); margin-inline: 0; }

/* Páginas interiores sin rediseño */
.page:not(.ic-redesign):not(.home) .entry-title { font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); }
.page:not(.ic-redesign):not(.home) .entry-title::after { content: ""; display: block; width: 56px; height: 4px; margin-top: .45em; border-radius: 4px; background: var(--ic-coral); }

/* Blog */
.blog .ast-article-post .ast-article-inner, .archive .ast-article-post .ast-article-inner, .search .ast-article-post .ast-article-inner {
	height: 100%; background: #fff; border: 1px solid var(--ic-line); border-radius: var(--ic-r-l); overflow: hidden;
	transition: transform .35s var(--ic-ease), box-shadow .35s var(--ic-ease);
}
.blog .ast-article-post:hover .ast-article-inner, .archive .ast-article-post:hover .ast-article-inner { transform: translateY(-5px); box-shadow: var(--ic-shadow-2); }
.ast-article-post .ast-blog-featured-section img, .ast-article-post .post-thumb img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .6s var(--ic-ease); }
.ast-article-post:hover .ast-blog-featured-section img { transform: scale(1.04); }
.blog .entry-title, .archive .entry-title, .search .entry-title { font-size: 1.2rem; line-height: 1.3; }
.blog .entry-title a, .archive .entry-title a, .search .entry-title a { color: var(--ic-ink); text-decoration: none; }
.blog .entry-title a:hover, .archive .entry-title a:hover { color: var(--ic-brand); }
.entry-meta, .ast-blog-meta-container { font-size: .82rem; color: var(--ic-muted); }
.cat-links a, .ast-taxonomy-container a { display: inline-block; padding: .2em .7em; border-radius: 999px; background: var(--ic-coral-050); color: #a8381a !important; font-weight: 600; text-decoration: none; }
.ast-pagination .page-numbers, .nav-links .page-numbers { min-width: 2.6em; height: 2.6em; display: inline-grid; place-items: center; border-radius: 999px; border: 1px solid var(--ic-line); color: var(--ic-ink-2); text-decoration: none; }
.ast-pagination .page-numbers.current, .nav-links .page-numbers.current { background: var(--ic-ink); color: #fff; border-color: transparent; }
.single-post .entry-content { font-size: 1.1rem; }
.single-post .entry-content > :where(p, ul, ol, h2, h3, h4, blockquote, figure:not(.alignwide):not(.alignfull)) { max-width: 720px; margin-left: auto; margin-right: auto; }
.single-post .entry-content h2 { margin-top: 2em; }
.single-post .entry-header { max-width: 820px; margin-inline: auto; }

/* ==========================================================================
   18. FORMULARIOS (Ninja Forms, comentarios, búsqueda)
   ========================================================================== */
.nf-form-cont .nf-field-label label { font: 600 .92rem var(--ic-font-head); color: var(--ic-ink); }
.nf-form-cont input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.nf-form-cont textarea, .nf-form-cont select, .search-form .search-field, .wp-block-search__input {
	width: 100%; background: var(--ic-paper) !important; border: 1.5px solid transparent !important; border-radius: 12px !important;
	padding: .9em 1em !important; font: inherit; color: var(--ic-ink);
	transition: border-color .2s var(--ic-ease), box-shadow .2s var(--ic-ease), background-color .2s var(--ic-ease);
}
.nf-form-cont input:focus, .nf-form-cont textarea:focus, .nf-form-cont select:focus, .search-form .search-field:focus {
	outline: none; background: #fff !important; border-color: var(--ic-brand) !important; box-shadow: 0 0 0 4px rgba(45, 43, 224, .14);
}
.nf-form-cont textarea { min-height: 150px; }
.nf-form-cont .nf-error .ninja-forms-field { border-color: #e03131 !important; }
.nf-form-cont .nf-error-msg, .nf-form-cont .ninja-forms-req-symbol { color: #c92a2a; }
.nf-form-cont .nf-response-msg { padding: 1em 1.25em; border-radius: var(--ic-r); background: #e6fcf5; color: #087f5b; }
.nf-form-cont input[type="checkbox"], .nf-form-cont input[type="radio"] { accent-color: var(--ic-brand); width: 1.1em; height: 1.1em; }

/* ==========================================================================
   19. PIE DE PÁGINA
   ========================================================================== */
.site-footer, .site-below-footer-wrap, .site-primary-footer-wrap, .site-above-footer-wrap { background: var(--ic-ink) !important; color: rgba(255, 255, 255, .7); }
.site-footer { position: relative; }
.site-footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, var(--ic-brand), var(--ic-violet) 50%, var(--ic-coral)); }
.site-footer .ast-builder-grid-row { padding-block: 1.75rem; }
.site-footer, .site-footer p, .ast-footer-copyright { font-size: .9rem; }
.site-footer a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .25); }
.site-footer a:hover { color: #fff; border-bottom-color: var(--ic-coral); }
.ic-footer-nap { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; justify-content: center; align-items: center; }
.ic-footer-nap a[href^="tel:"] { font-weight: 700; font-size: 1.05rem; border-bottom: 0; }
.ic-footer-nap a[href^="tel:"]::before { content: "☎ "; color: var(--ic-coral); }
#ast-scroll-top { background: var(--ic-ink); border-radius: 999px; }

/* ==========================================================================
   20. ANIMACIÓN DE ENTRADA (infocom.js)
   ========================================================================== */
.ic-js .ic-reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--ic-ease), transform .8s var(--ic-ease); }
.ic-js .ic-reveal.ic-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.ic-js .ic-reveal { opacity: 1; transform: none; }
	.ic-panel, .ic-product { transform: none; }
	.wp-block-cover__video-background { display: none; }
}

/* ==========================================================================
   21. RESPONSIVE (cortes de Astra: 921 / 781 / 544)
   ========================================================================== */
@media (max-width: 1100px) {
	.ic-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ic-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ic-tile--hero { grid-column: 1 / -1; grid-row: auto; }
	.ic-tile--wide { grid-template-columns: 1fr; row-gap: .5rem; }
	.ic-tile--wide h3 { margin-top: 1rem; }
}
@media (max-width: 921px) {
	:root { --ic-header-h: 64px; }
	.ic-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ic-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ic-stat:nth-child(2) { border-right: 0; }
	.ic-stat:nth-child(3) { padding-left: 0; }
	.ic-step::after { display: none; }
	.ic-panel { transform: none; max-width: 520px; }
	.ic-product { transform: none; }
}
@media (max-width: 781px) {
	body { font-size: 1rem; }
	.ic-grid--2, .ic-grid--3, .ic-grid--4, .ic-bento, .ic-benefits { grid-template-columns: 1fr; }
	.ic-hero { padding-top: calc(var(--ic-header-h) + 2.5rem); }
	.ic-hero--home h1 { font-size: clamp(2.1rem, 1.2rem + 5vw, 2.8rem); }
	.ic-hero .wp-block-buttons, .ic-cta .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.ic-hero .wp-block-button, .ic-cta .wp-block-button { width: 100%; }
	.ic-hero .wp-block-button__link, .ic-cta .wp-block-button__link { width: 100%; }
	.ic-stat__label { max-width: none; }
	.ic-split--problem .wp-block-column:last-child { display: none; }
	.ic-bigicon { max-width: 220px; }
	.ic-code { font-size: .78rem; }
	.ic-panel__rows li { font-size: .9rem; }
}
@media (max-width: 544px) {
	.ic-stats { grid-template-columns: 1fr; }
	.ic-stat, .ic-stat + .ic-stat { padding: 1.5rem 0 0; border-right: 0; }
	.ic-card.is-link::after { top: 1.1rem; right: 1.1rem; }
}

/* ==========================================================================
   22. IMPRESIÓN
   ========================================================================== */
@media print {
	.ic-js .ic-reveal { opacity: 1 !important; transform: none !important; }
	.site-header, .site-footer, #ast-scroll-top, .ic-lottie, .ic-panel, .ic-marquee, .ic-product, .ic-sec--cta { display: none !important; }
	.ic-sec { padding-block: 1.5rem; background: none !important; color: #000; }
	.ic-sec :where(h1, h2, h3) { color: #000 !important; }
	a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; }
}
