/**
 * INSTALCOM · Diseño Blueprint (estilo A).
 * Solo actúa con la clase body.ic-bp, que pone el módulo «Diseño Blueprint».
 */

body.ic-bp {
	--ic-navy: #FFFFFF;
	--ic-navy-2: #08071A;
	--ic-purple: #4136A0;
	--ic-ink: #FFFFFF;
	--ic-text: #B8B4E0;
	--ic-muted: #8B86C4;
	--ic-line: rgba(124, 116, 230, .28);
	--ic-soft: #14112E;
	--ic-radius: 20px;
	--ic-shadow: 0 0 0 1px rgba(124, 116, 230, .28);
	--bp-bg: #08071A;
	--bp-panel: #0E0C26;
	--bp-card: rgba(20, 17, 46, .72);
	--bp-mono: "JetBrains Mono", ui-monospace, monospace;
	background-color: var(--bp-bg);
	background-image:
		linear-gradient(rgba(124, 116, 230, .08) 1px, transparent 1px),
		linear-gradient(90deg, rgba(124, 116, 230, .08) 1px, transparent 1px);
	background-size: 64px 64px;
	background-attachment: fixed;
	color: var(--ic-text);
	-webkit-font-smoothing: antialiased;
}

/* Tipografía: ver instalcom-v2.css */
body.ic-bp ::selection { background: #F9D900; color: #08071A; }

/* Titulares */
body.ic-bp .elementor-heading-title { letter-spacing: -.02em; }
body.ic-bp [data-elementor-type="wp-page"] h1.elementor-heading-title,
body.ic-bp .ic-post-hero h1 {
	font-weight: 700 !important;
	letter-spacing: -.04em !important;
	line-height: .98 !important;
	font-size: clamp(34px, 5vw, 76px) !important;
}
body.ic-bp [data-elementor-type="wp-page"] h2.elementor-heading-title {
	font-weight: 700 !important;
	letter-spacing: -.03em !important;
	line-height: 1.04 !important;
}
body.ic-bp .ic-bp-kicker .elementor-heading-title,
body.ic-bp .ic-bp-code,
body.ic-bp .ic-bp-flow,
body.ic-bp .ic-bp-n,
body.ic-bp .ic-bp-stats span,
body.ic-bp .ic-bp-live,
body.ic-bp .ic-bp-coord {
	font-family: var(--bp-mono) !important;
}
body.ic-bp .ic-bp-kicker .elementor-heading-title {
	font-size: 13px !important; font-weight: 600 !important; letter-spacing: .08em !important;
}
body.ic-bp .ic-bp-kicker .elementor-heading-title::before { content: "// "; }

/* Botones: amarillo con texto noche; secundarios con línea. */
body.ic-bp .elementor-button,
body.ic-bp .ic-btn {
	border-radius: 14px !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}
body.ic-bp .elementor-button:hover { transform: translateY(-2px); }
body.ic-bp .elementor-widget-button .elementor-button,
body.ic-bp .qodef-qi-button.qodef-layout--filled {
	background-color: #F9D900 !important;
	color: #08071A !important;
	border-color: #F9D900 !important;
}
body.ic-bp .elementor-widget-button .elementor-button:hover {
	background-color: #FFE866 !important;
}
body.ic-bp .elementor-widget-button .elementor-button .elementor-button-icon svg { fill: currentColor; }
body.ic-bp .qodef-qi-button { color: #F9D900 !important; }
body.ic-bp .elementor-widget-button.ic-bp-btn-o .elementor-button {
	background-color: transparent !important; color: #FFFFFF !important; border: 1px solid rgba(184, 180, 224, .4) !important;
}
body.ic-bp .elementor-widget-button.ic-bp-btn-o .elementor-button:hover { border-color: #F9D900 !important; color: #F9D900 !important; }

/* Bloques amarillos: texto y botones en azul noche. */
body.ic-bp .ic-bp-onyellow :is(.elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor *, .elementor-icon-list-text) { color: #08071A !important; }
body.ic-bp .ic-bp-onyellow .elementor-widget-button .elementor-button { background-color: #08071A !important; color: #F9D900 !important; border-color: #08071A !important; }
body.ic-bp .ic-bp-onyellow .elementor-widget-button .elementor-button:hover { background-color: #241E5C !important; }
body.ic-bp .ic-bp-onyellow .ic-bp-kicker .elementor-heading-title { color: #08071A !important; opacity: .7; }

/* Tarjetas y bloques internos: vidrio con línea violeta. */
body.ic-bp .e-con.e-child { box-shadow: none !important; }
body.ic-bp .elementor-widget-icon-box .elementor-icon-box-title,
body.ic-bp .elementor-widget-icon-box .elementor-icon-box-title a { color: #FFFFFF !important; }
body.ic-bp .elementor-widget-icon-box .elementor-icon-box-description,
body.ic-bp .elementor-widget-icon-list .elementor-icon-list-text { color: var(--ic-text); }
body.ic-bp .elementor-widget-text-editor { color: var(--ic-text); }
body.ic-bp .elementor-widget-text-editor strong,
body.ic-bp .elementor-widget-text-editor b { color: #FFFFFF; }
body.ic-bp .elementor-widget-text-editor a:not(.elementor-button):not(.ic-btn) { color: #F9D900; }
body.ic-bp hr { border-color: var(--ic-line); }
body.ic-bp .elementor-widget-image:not(.elementor-widget-theme-site-logo) img { border-radius: 16px; }
body.ic-bp .elementor-widget-google_maps iframe { filter: invert(.9) hue-rotate(200deg) saturate(.6); border-radius: 16px; }

/* Formularios */
body.ic-bp .elementor-field-group :is(input, textarea, select),
body.ic-bp .ic-form :is(input, textarea, select) {
	background: #0E0C26 !important; color: #FFFFFF !important; border: 1px solid var(--ic-line) !important;
}
body.ic-bp .elementor-field-group :is(input, textarea)::placeholder { color: #6E68B8 !important; }
body.ic-bp .elementor-field-label { color: #FFFFFF !important; }

/* ---------- Componentes del plugin (blog, FAQ, CTA) en oscuro ---------- */
body.ic-bp .ic-post-content details,
body.ic-bp .ic-toc .elementor-widget-container,
body.ic-bp .ic-toc .elementor-toc,
body.ic-bp .ic-faq-item,
body.ic-bp .ic-steps li,
body.ic-bp .ic-chip,
body.ic-bp .ic-btn-outline,
body.ic-bp .ic-company {
	background: var(--bp-card) !important;
	border-color: var(--ic-line) !important;
}
body.ic-bp .ic-related-wrap { background: transparent !important; }
body.ic-bp .ic-post-content th { background: #14112E; }
body.ic-bp .ic-chip.is-active,
body.ic-bp .ic-archive-grid .elementor-pagination .page-numbers.current,
body.ic-bp .ic-archive-grid .elementor-pagination a.page-numbers:hover {
	background: #F9D900 !important; border-color: #F9D900 !important; color: #08071A !important;
}
body.ic-bp .ic-company-mark,
body.ic-bp .ic-btn-navy { background: #F9D900; color: #08071A !important; }
body.ic-bp .ic-cta-band,
body.ic-bp .ic-cta-card { background: linear-gradient(135deg, #14112E, #241E5C) !important; border: 1px solid var(--ic-line); }
body.ic-bp .ic-faq { background-color: transparent !important; }
body.ic-bp .ic-faq-item > summary::after { background: #F9D900; color: #08071A; }
body.ic-bp .ic-card { background: var(--bp-card); border-color: var(--ic-line) !important; }
body.ic-bp .ic-card:hover { border-color: #F9D900 !important; }
body.ic-bp .ic-card .ic-cat { color: #F9D900 !important; }
body.ic-bp .ic-post-content a { color: #F9D900; }
body.ic-bp .ic-kicker { color: #F9D900 !important; font-family: var(--bp-mono) !important; letter-spacing: .08em; }
body.ic-bp .ic-kicker::before { content: "// "; }
body.ic-bp :is(.elementor-widget-icon-box, .elementor-widget-icon-list) a:not(.elementor-button) { color: #F9D900 !important; }

/* ---------- Inicio: portada ---------- */
body.ic-bp .ic-bp-hero { padding: 88px 40px 40px !important; }
body.ic-bp .ic-bp-code { margin: 0 0 28px; font-size: 13px; font-weight: 600; color: #F9D900; letter-spacing: .08em; }
body.ic-bp .ic-bp-top {
	display: grid !important; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 48px !important; align-items: end;
}
body.ic-bp .ic-bp-hero .ic-bp-h1 .elementor-heading-title {
	color: #FFFFFF !important; margin: 0;
	font-size: clamp(36px, 5.2vw, 80px) !important; line-height: .98 !important; letter-spacing: -.045em !important;
}
body.ic-bp .ic-bp-hl { color: #F9D900; }
body.ic-bp .ic-bp-side { gap: 28px !important; padding-bottom: 8px; }
body.ic-bp .ic-bp-lead, body.ic-bp .ic-bp-lead p { color: #B8B4E0 !important; font-size: 18px !important; line-height: 1.6 !important; margin: 0; }
body.ic-bp .ic-bp-lead strong { color: #FFFFFF; font-weight: 600; }
body.ic-bp .ic-bp-actions { gap: 12px !important; }
body.ic-bp .ic-bp-btn .elementor-button { font-size: 16px !important; padding: 20px 28px !important; }
body.ic-bp .ic-bp-media {
	margin-top: 64px; min-height: 440px; border-radius: 28px; overflow: hidden; position: relative;
	border: 1px solid rgba(124, 116, 230, .28); background-color: #120F33;
}
body.ic-bp .ic-bp-media::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(8, 7, 26, 0) 55%, rgba(8, 7, 26, .7));
}
body.ic-bp .ic-bp-media .elementor-widget-html { position: static; }
body.ic-bp .ic-bp-live, body.ic-bp .ic-bp-coord { position: absolute; z-index: 2; font-size: 12px; }
body.ic-bp .ic-bp-live { left: 24px; top: 22px; color: #F9D900; font-weight: 600; background: rgba(8, 7, 26, .7); padding: 8px 12px; border-radius: 999px; }
body.ic-bp .ic-bp-live::first-letter { animation: ic-bp-blink 1.6s infinite; }
body.ic-bp .ic-bp-coord { right: 24px; bottom: 22px; color: #B8B4E0; }
@keyframes ic-bp-blink { 50% { opacity: .2; } }
body.ic-bp .ic-bp-stats {
	margin-top: 32px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px;
	background: rgba(124, 116, 230, .25); border-radius: 20px; overflow: hidden;
}
body.ic-bp .ic-bp-stats div { background: #0E0C26; padding: 28px; }
body.ic-bp .ic-bp-stats strong { display: block; font: 700 44px/1 "Space Grotesk", sans-serif; color: #FFFFFF; letter-spacing: -.03em; }
body.ic-bp .ic-bp-stats em { font-style: normal; color: #F9D900; }
body.ic-bp .ic-bp-stats span { display: block; margin-top: 10px; font-size: 12px; line-height: 1.4; color: #8B86C4; text-transform: uppercase; }

/* El bloque «Nuestra Promesa» ya no se monta sobre la portada. */
body.ic-bp .ic-bp-hero + .e-con .e-con { margin-top: 0 !important; }

/* ---------- Inicio: servicios en tarjetas ---------- */
body.ic-bp .ic-bp-svc { padding: 112px 40px !important; }
body.ic-bp .ic-bp-head { justify-content: space-between !important; align-items: flex-end !important; gap: 24px !important; margin-bottom: 16px; }
body.ic-bp .ic-bp-head .elementor-widget { width: auto !important; }
body.ic-bp .ic-bp-svc .ic-bp-h2 .elementor-heading-title { color: #FFFFFF !important; font-size: clamp(32px, 4vw, 56px) !important; margin: 0; }
body.ic-bp .ic-bp-flow { margin: 0; font-size: 13px; line-height: 1.6; color: #8B86C4; max-width: 360px; }
body.ic-bp .ic-bp-intro, body.ic-bp .ic-bp-intro p { max-width: 760px; color: #B8B4E0 !important; font-size: 17px !important; line-height: 1.65 !important; margin-bottom: 36px; }
body.ic-bp .ic-bp-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
body.ic-bp .ic-bp-card {
	background: rgba(20, 17, 46, .72); border: 1px solid rgba(124, 116, 230, .28); border-radius: 20px;
	padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; min-height: 320px; box-sizing: border-box;
	color: #B8B4E0 !important; text-decoration: none !important;
	transition: border-color .25s, transform .25s, background-color .25s;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
body.ic-bp .ic-bp-card:hover { border-color: #F9D900; transform: translateY(-6px); background: rgba(28, 24, 64, .85); }
body.ic-bp .ic-bp-n { font-size: 12px; font-weight: 600; color: #F9D900; }
body.ic-bp .ic-bp-card h3 { margin: 0; font: 700 21px/1.15 "Space Grotesk", sans-serif; color: #FFFFFF; letter-spacing: -.02em; hyphens: auto; }
body.ic-bp .ic-bp-card p { margin: 0; font-size: 14px; line-height: 1.6; color: #B8B4E0; }
body.ic-bp .ic-bp-go { margin-top: auto; color: #F9D900; font-weight: 700; font-size: 20px; transition: transform .25s; }
body.ic-bp .ic-bp-card:hover .ic-bp-go { transform: translateX(6px); }
body.ic-bp .ic-bp-more { margin-top: 32px; }

@media (max-width: 1100px) {
	body.ic-bp .ic-bp-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	body.ic-bp .ic-bp-hero { padding: 48px 20px 24px !important; }
	body.ic-bp .ic-bp-svc { padding: 72px 20px !important; }
	body.ic-bp .ic-bp-top { grid-template-columns: minmax(0, 1fr); gap: 28px !important; }
	body.ic-bp .ic-bp-hero .ic-bp-h1 .elementor-heading-title { font-size: 9vw !important; }
	body.ic-bp .ic-bp-media { min-height: 260px; margin-top: 40px; border-radius: 20px; }
	body.ic-bp .ic-bp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.ic-bp .ic-bp-stats div { padding: 20px; }
	body.ic-bp .ic-bp-stats strong { font-size: 32px; }
	body.ic-bp .ic-bp-cards { grid-template-columns: minmax(0, 1fr); }
	body.ic-bp .ic-bp-card { min-height: 0; }
	body.ic-bp .ic-bp-coord { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	body.ic-bp .ic-bp-card, body.ic-bp .ic-bp-go, body.ic-bp .elementor-button { transition: none; }
	body.ic-bp .ic-bp-live::first-letter { animation: none; }
}

/* Logos de clientes: en blanco sobre el fondo oscuro, a color al pasar el mouse. */
body.ic-bp .seccion__logos img { filter: grayscale(1) brightness(0) invert(1); opacity: .72; transition: filter .3s, opacity .3s; }
body.ic-bp .seccion__logos .swiper-slide:hover img { filter: none; opacity: 1; }

/* Botones tipo enlace («Conocer más», «Leer más»). */
body.ic-bp .ic-textlink .elementor-button { background: transparent !important; color: #F9D900 !important; border: 0 !important; padding: 6px 0 !important; font-size: 14px !important; }
body.ic-bp .ic-textlink .elementor-button::after { content: " →"; transition: margin .2s; }
body.ic-bp .ic-textlink .elementor-button:hover { transform: none; }
body.ic-bp .ic-textlink .elementor-button:hover::after { margin-left: 4px; }

/* =========================================================
   Header (escritorio + celular) y popups de menú
   ========================================================= */
body.ic-bp .ic-header { z-index: 99; }
body.ic-bp .ic-header .ic-header-bar {
	background: rgba(8, 7, 26, 0); border-bottom: 1px solid transparent;
	transition: background-color .35s ease, backdrop-filter .35s ease, border-color .35s ease, padding .35s ease;
}
body.ic-bp.ic-scrolled .ic-header .ic-header-bar {
	background: rgba(8, 7, 26, .8); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%);
	border-bottom-color: rgba(255, 255, 255, .08);
}
body.ic-bp.ic-scrolled .ic-header .ic-header-desk { padding-top: 10px !important; padding-bottom: 10px !important; }
body.ic-bp .ic-header .ic-logo img { transition: width .35s ease; }
body.ic-bp .ic-hbtn .elementor-button { white-space: nowrap; transition: background-color .25s, color .25s, border-color .25s; }
body.ic-bp .ic-menu-btn .elementor-button { letter-spacing: .12em; text-transform: uppercase; }
body.ic-bp .ic-header-mob .ic-menu-btn .elementor-icon { cursor: pointer; }
@media (max-width: 1240px) and (min-width: 1025px) {
	body.ic-bp .ic-header-actions .ic-hbtn:nth-child(2) { display: none; }
}

/* Popups */
.ic-popup .dialog-widget-content {
	background-color: #08071A !important;
	background-image:
		radial-gradient(900px 500px at 85% -10%, rgba(249, 217, 0, .08), transparent 60%),
		linear-gradient(rgba(124, 116, 230, .08) 1px, transparent 1px),
		linear-gradient(90deg, rgba(124, 116, 230, .08) 1px, transparent 1px) !important;
	background-size: auto, 48px 48px, 48px 48px !important;
	overflow-y: auto;
}
.ic-popup .dialog-close-button { border-radius: 8px; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; }
.ic-pop-links { counter-reset: icm; }
.ic-pop-link .elementor-heading-title a { display: inline-flex; align-items: baseline; color: #FFFFFF; transition: color .25s ease, transform .35s cubic-bezier(.2, .7, .2, 1); }
.ic-pop-link .elementor-heading-title a::before {
	counter-increment: icm; content: "0" counter(icm);
	font: 500 13px/1 "JetBrains Mono", monospace; color: #F9D900; letter-spacing: .08em; margin-right: 18px; transform: translateY(-.9em);
}
.ic-pop-link .elementor-heading-title a:hover { color: #F9D900; transform: translateX(10px); }
.ic-pop-servwrap { border-top: 1px solid rgba(255, 255, 255, .1); }
.ic-pop-serv .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.ic-pop-serv .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.ic-pop-serv .elementor-icon-list-item::after { display: none !important; }
.ic-pop-serv .elementor-icon-list-item a {
	border: 1px solid rgba(255, 255, 255, .14); border-radius: 999px; padding: 9px 16px; transition: border-color .25s, background-color .25s;
}
.ic-pop-serv .elementor-icon-list-item a:hover { border-color: #F9D900; background: rgba(249, 217, 0, .08); }
.ic-pop-contact .elementor-icon-box-description { word-break: break-word; }
.ic-pop-cta .elementor-button { width: 100%; justify-content: center; }
.ic-popup-mob .ic-pop-serv .elementor-icon-list-items { flex-direction: column; }
.ic-popup-mob .ic-pop-serv .elementor-icon-list-item a { display: block; }
@media (max-width: 1024px) {
	.ic-pop-desk > .e-con-inner > .e-con:last-child { flex-direction: column !important; }
	.ic-pop-desk .ic-pop-col { width: 100% !important; }
}

/* Estado inicial de las animaciones (evita parpadeo antes de GSAP) */
html.ic-js .ic-split .ic-w > span { display: inline-block; }
.ic-split .ic-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.ic-split .ic-w > span { display: inline-block; will-change: transform; }
.ic-line-draw { position: relative; }
.ic-line-draw::after {
	content: ""; position: absolute; left: 0; bottom: -14px; width: 64px; height: 3px; background: #F9D900;
	transform: scaleX(var(--ic-line, 1)); transform-origin: left center;
}
.ic-reveal-img { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
	.ic-pop-link .elementor-heading-title a { transition: none; }
}
body.ic-bp .ic-ghost .elementor-button, .ic-popup .ic-ghost .elementor-button {
	background: transparent !important; color: #FFFFFF !important; border: 1px solid rgba(255, 255, 255, .22) !important;
}
body.ic-bp .ic-ghost .elementor-button:hover, .ic-popup .ic-ghost .elementor-button:hover { border-color: #F9D900 !important; color: #F9D900 !important; }
body.ic-bp .ic-ghost .elementor-button .elementor-button-icon svg, .ic-popup .ic-ghost .elementor-button-icon svg { fill: #F9D900 !important; }
body.ic-bp .ic-header-mob { flex-wrap: nowrap !important; }
body.ic-bp .ic-header-mob > .ic-logo, body.ic-bp .ic-header-mob > .elementor-widget { flex: 0 0 auto; width: auto !important; }
.ic-pop-contact .elementor-icon-box-wrapper { display: flex !important; flex-direction: row !important; align-items: center; text-align: start !important; gap: 14px; }
.ic-pop-contact .elementor-icon-box-icon { margin: 0 !important; }
body.ic-bp .ic-header-mob > .e-con { --width: auto; width: auto !important; flex: 0 0 auto !important; }
