/*!
 * CentroMIPC Builder — estilos base
 * Hereda tipografías del tema. Colores configurables por variables CSS:
 *   --cmipc-accent      color principal (se toma de Avada si existe)
 *   --cmipc-site-width  ancho máximo del contenido
 */

:root {
	--cmipc-accent: #333333;
	--cmipc-site-width: 1170px;
	--cmipc-text: inherit;
	--cmipc-muted: #6b7280;
	--cmipc-radius: 10px;
	--cmipc-el-gap: 20px;
	--cmipc-side: 30px;
}

/* ---------- Visibilidad por dispositivo (equivalente a hide_on_mobile de Avada) ---------- */
@media (max-width: 640px) { .cmipc-hide-sm { display: none !important; } }
@media (min-width: 641px) and (max-width: 1024px) { .cmipc-hide-md { display: none !important; } }
@media (min-width: 1025px) { .cmipc-hide-lg { display: none !important; } }

/* ---------- Secciones ---------- */
.cmipc-section {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	padding-left: var(--cmipc-side);
	padding-right: var(--cmipc-side);
}
.cmipc-section *,
.cmipc-section *::before,
.cmipc-section *::after { box-sizing: border-box; }
.cmipc-section__inner {
	position: relative;
	z-index: 1;
	max-width: var(--cmipc-site-width);
	margin: 0 auto;
}
.cmipc-section--full .cmipc-section__inner { max-width: none; }
.cmipc-section--has-bg { overflow-x: clip; }

/* Plantilla "100% ancho" de Avada: el contenido lleva un relleno lateral (--hundredp_padding);
   las secciones lo compensan para ir de borde a borde, como los contenedores originales. */
.avada-is-100-percent-template .post-content > .cmipc-section,
.avada-is-100-percent-template .post-content > p > .cmipc-section {
	width: auto;
	margin-left: calc(-1 * var(--hundredp_padding, 30px));
	margin-right: calc(-1 * var(--hundredp_padding, 30px));
}
.cmipc-section__overlay { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
@media (min-width: 1025px) and (hover: hover) {
	.cmipc-section--parallax { background-attachment: fixed; }
}

/* ---------- Filas y columnas ---------- */
.cmipc-row {
	display: flex;
	flex-wrap: wrap;
	column-gap: var(--cmipc-row-gap, 0);
	align-items: flex-start;
}
.cmipc-section--equal .cmipc-row { align-items: stretch; }
.cmipc-col {
	position: relative;
	flex: 0 0 var(--cmipc-col-width, 100%);
	max-width: var(--cmipc-col-width, 100%);
	margin-bottom: var(--cmipc-el-gap);
	display: flex;
	flex-direction: column;
}
/* El hueco entre columnas se reparte como margen derecho, salvo en la última de cada línea. */
.cmipc-col:not(.cmipc-col-1_1) { margin-right: var(--cmipc-col-gap, 4%); }
.cmipc-col.cmipc-col--row-end { margin-right: 0; }
.cmipc-col__wrap { flex: 1 1 auto; display: flex; flex-direction: column; }
.cmipc-col--center .cmipc-col__wrap { justify-content: center; }
.cmipc-col__link { position: absolute; inset: 0; z-index: 2; }
.cmipc-col__wrap > *:last-child { margin-bottom: 0; }

@media (max-width: 800px) {
	.cmipc-col {
		flex-basis: 100% !important;
		max-width: 100% !important;
		margin-right: 0 !important;
	}
	.cmipc-section { --cmipc-side: 20px; }
}

/* ---------- Elementos genéricos ---------- */
.cmipc-el { margin-bottom: var(--cmipc-el-gap); }
.cmipc-el:last-child { margin-bottom: 0; }
.cmipc-text > *:first-child { margin-top: 0; }
.cmipc-text > *:last-child { margin-bottom: 0; }
.cmipc-text img { max-width: 100%; height: auto; }
.cmipc-align-left { text-align: left; }
.cmipc-align-center { text-align: center; }
.cmipc-align-right { text-align: right; }
.cmipc-icon { display: inline-block; width: 1em; height: 1em; vertical-align: -0.125em; flex: none; }

/* ---------- Separadores ---------- */
.cmipc-sep { position: relative; width: 100%; height: 0; clear: both; }
.cmipc-sep--shadow {
	height: 6px;
	background: radial-gradient(ellipse at 50% 0, rgba(0, 0, 0, .14), transparent 70%);
}
.cmipc-sep__icon {
	position: absolute; left: 50%; top: 0; transform: translate(-50%, -50%);
	padding: 0 10px; background: inherit; font-size: 16px;
}

.cmipc-section-sep { position: relative; line-height: 0; margin: 0 calc(-1 * var(--cmipc-side)); }
/* En secciones a pantalla completa, el divisor ocupa todo el ancho de la ventana. */
.avada-is-100-percent-template .cmipc-section-sep { width: 100vw; margin-left: calc(50% - 50vw); margin-right: 0; }
.cmipc-section-sep svg { display: block; width: 100%; height: clamp(40px, 8vw, 110px); }
.cmipc-section-sep--top svg { transform: rotate(180deg); }

/* ---------- Botones ---------- */
.cmipc-btn {
	--_bg: var(--cmipc-btn-bg, var(--cmipc-btn-default-bg, var(--cmipc-accent)));
	--_color: var(--cmipc-btn-color, var(--cmipc-btn-default-color, #fff));
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	padding: .8em 1.8em;
	border: var(--cmipc-btn-border-w, 0) solid var(--cmipc-btn-border, transparent);
	border-radius: var(--cmipc-radius);
	background: var(--_bg);
	color: var(--_color) !important;
	font-weight: 600;
	letter-spacing: .03em;
	line-height: 1.2;
	text-decoration: none !important;
	transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.cmipc-btn:hover,
.cmipc-btn:focus-visible {
	background: var(--cmipc-btn-bg-hover, var(--_bg));
	color: var(--cmipc-btn-color-hover, var(--_color)) !important;
	border-color: var(--cmipc-btn-border-hover, var(--cmipc-btn-border, transparent));
	filter: var(--cmipc-btn-filter-hover, none);
	transform: translateY(-1px);
}
.cmipc-btn:not([style*="--cmipc-btn-bg-hover"]):hover { --cmipc-btn-filter-hover: brightness(.92); }
.cmipc-btn:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.cmipc-btn--small { font-size: .8em; padding: .6em 1.3em; }
.cmipc-btn--large { font-size: 1.1em; padding: .9em 2.2em; }
.cmipc-btn--xlarge { font-size: 1.25em; padding: 1em 2.6em; }
.cmipc-btn--block { display: flex; width: 100%; }
.cmipc-btn--square { border-radius: 0; }
.cmipc-btn--pill { border-radius: 999px; }

/* ---------- Imágenes ---------- */
.cmipc-imageframe__frame { display: inline-block; max-width: 100%; overflow: hidden; line-height: 0; }
.cmipc-imageframe img { display: block; max-width: 100%; height: auto; }
.cmipc-imageframe.cmipc-align-center .cmipc-imageframe__frame { margin: 0 auto; }

.cmipc-images {
	display: grid;
	grid-template-columns: repeat(var(--cmipc-cols, 5), minmax(0, 1fr));
	gap: var(--cmipc-gap, 13px);
	align-items: center;
}
.cmipc-images__item { display: flex; align-items: center; justify-content: center; }
.cmipc-images__item img { max-width: 100%; height: auto; display: block; }
@media (max-width: 1024px) { .cmipc-images { grid-template-columns: repeat(min(var(--cmipc-cols, 5), 3), minmax(0, 1fr)); } }
@media (max-width: 640px)  { .cmipc-images { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Lista con iconos ---------- */
.cmipc-checklist { list-style: none; margin-left: 0; padding-left: 0; }
.cmipc-checklist__item { display: flex; gap: .85em; align-items: flex-start; margin: 0 0 .9em; }
.cmipc-checklist__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.6em; height: 1.6em; margin-top: .05em; flex: none;
	color: var(--cmipc-icon-color, var(--cmipc-accent));
}
.cmipc-checklist--circle .cmipc-checklist__icon {
	border-radius: 50%;
	background: var(--cmipc-circle-color, var(--cmipc-accent));
	color: var(--cmipc-icon-color, #fff);
	font-size: .8em; width: 2em; height: 2em;
}
.cmipc-checklist__text > p { margin: 0 0 .15em; }
.cmipc-checklist__text > p:last-child { margin-bottom: 0; }

/* ---------- Títulos ---------- */
.cmipc-title__text { margin: 0; }
.cmipc-title--sep .cmipc-title__text::after {
	content: ""; display: block; width: 60px; height: 3px; margin-top: .5em;
	background: var(--cmipc-sep-color, var(--cmipc-accent));
}
.cmipc-title[style*="text-align:center"] .cmipc-title__text::after { margin-left: auto; margin-right: auto; }

/* ---------- Cajas de contenido ---------- */
.cmipc-boxes {
	display: grid;
	grid-template-columns: repeat(var(--cmipc-cols, 3), minmax(0, 1fr));
	gap: 30px;
}
@media (max-width: 1024px) { .cmipc-boxes { grid-template-columns: repeat(min(var(--cmipc-cols, 3), 2), minmax(0, 1fr)); } }
@media (max-width: 640px)  { .cmipc-boxes { grid-template-columns: 1fr; } }
.cmipc-box {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px;
	padding: var(--cmipc-box-pad, 0);
	background: var(--cmipc-box-bg, transparent);
	border-radius: var(--cmipc-radius);
	color: var(--cmipc-body-color, inherit);
}
.cmipc-boxes[style*="--cmipc-box-bg"] .cmipc-box,
.cmipc-box[style*="--cmipc-box-bg"] { --cmipc-box-pad: 28px 22px; }
.cmipc-boxes--side .cmipc-box { flex-direction: row; align-items: flex-start; text-align: left; }
.cmipc-box__media {
	display: inline-flex; align-items: center; justify-content: center;
	font-size: var(--cmipc-icon-size, 40px);
	color: var(--cmipc-icon-color, var(--cmipc-accent));
	transition: transform .3s ease;
}
.cmipc-box:hover .cmipc-box__media { transform: scale(1.08); }
@media (max-width: 640px) {
	.cmipc-boxes:not(.cmipc-boxes--circle) .cmipc-box__media { font-size: min(var(--cmipc-icon-size, 40px), 56px); }
}
.cmipc-boxes--circle .cmipc-box__media {
	width: 2.2em; height: 2.2em; border-radius: 50%;
	font-size: calc(var(--cmipc-icon-size, 40px) * .5);
	background: var(--cmipc-circle-color, var(--cmipc-accent));
	color: var(--cmipc-icon-color, #fff);
}
.cmipc-box__media--img img { max-width: 100%; height: auto; }
/* Selector reforzado: el tema suele fijar el color de los h3 de .post-content. */
.cmipc-boxes .cmipc-box .cmipc-box__title {
	margin: 0 0 .4em;
	font-size: var(--cmipc-title-size, 1.15em);
	color: var(--cmipc-title-color, inherit);
	line-height: 1.3;
}
.cmipc-section--has-bg .cmipc-boxes .cmipc-box .cmipc-box__title { text-shadow: 0 1px 4px rgba(0, 0, 0, .55); }
.cmipc-box__title a { color: inherit; text-decoration: none; }
.cmipc-box__body > *:last-child { margin-bottom: 0; }
.cmipc-box__more { display: inline-flex; align-items: center; gap: .4em; margin-top: .6em; font-weight: 600; }

/* ---------- Flip boxes ---------- */
.cmipc-flips {
	display: grid;
	grid-template-columns: repeat(var(--cmipc-cols, 3), minmax(0, 1fr));
	gap: 30px;
}
@media (max-width: 1024px) { .cmipc-flips { grid-template-columns: repeat(min(var(--cmipc-cols, 3), 2), minmax(0, 1fr)); } }
@media (max-width: 640px)  { .cmipc-flips { grid-template-columns: 1fr; } }
.cmipc-flip { perspective: 1200px; min-height: 290px; outline: none; }
.cmipc-flip__card {
	position: relative; height: 100%; min-height: inherit;
	transform-style: preserve-3d;
	transition: transform .7s cubic-bezier(.2, .8, .2, 1);
}
.cmipc-flip:hover .cmipc-flip__card,
.cmipc-flip:focus-within .cmipc-flip__card,
.cmipc-flip.is-flipped .cmipc-flip__card { transform: rotateY(180deg); }
.cmipc-flip__face {
	position: absolute; inset: 0;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
	padding: 30px 26px; text-align: center;
	border-radius: var(--cmipc-flip-radius, var(--cmipc-radius));
	border: var(--cmipc-flip-border, 0);
	backface-visibility: hidden; -webkit-backface-visibility: hidden;
	overflow: hidden;
}
.cmipc-flip__front {
	background: var(--cmipc-flip-front-bg, #f6f6f6);
	color: var(--cmipc-flip-front-text, inherit);
}
.cmipc-flips .cmipc-flip__front .cmipc-flip__title { color: var(--cmipc-flip-front-title, #333); }
.cmipc-flip__back {
	transform: rotateY(180deg);
	background: var(--cmipc-flip-back-bg, var(--cmipc-accent));
	color: var(--cmipc-flip-back-text, #fff);
}
.cmipc-flips .cmipc-flip__back .cmipc-flip__title { color: var(--cmipc-flip-back-title, inherit); }
.cmipc-flips .cmipc-flip__back :is(h1, h2, h3, h4) { color: inherit; }
.cmipc-flips .cmipc-flip__title { margin: 0; font-size: clamp(22px, 2vw, 28px); line-height: 1.25; }
.cmipc-flip__text { margin: 0; }
.cmipc-flip__text > *:last-child { margin-bottom: 0; }
.cmipc-flip__text .cmipc-btn-wrap { margin-top: 12px; }
.cmipc-flip__media {
	display: inline-flex; align-items: center; justify-content: center; flex: none;
	font-size: 28px; color: var(--cmipc-icon-color, var(--cmipc-accent));
}
.cmipc-flip__media--circle {
	width: 64px; height: 64px; border-radius: 50%;
	background: var(--cmipc-circle-color, #333);
	color: var(--cmipc-icon-color, #fff);
}
@media (prefers-reduced-motion: reduce) {
	.cmipc-flip__card { transition: none; }
}

/* ---------- Pestañas ---------- */
.cmipc-tabs { --_active: var(--cmipc-tab-active, var(--cmipc-accent)); --_inactive: var(--cmipc-tab-inactive, #f3f4f6); }
.cmipc-tabs__nav { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 24px; }
.cmipc-tabs__tab {
	appearance: none; cursor: pointer;
	display: inline-flex; align-items: center; gap: .5em;
	padding: .85em 1.3em;
	border: 1px solid var(--cmipc-tab-border, transparent);
	border-radius: var(--cmipc-radius);
	background: var(--_inactive);
	color: inherit; font: inherit; font-weight: 600; text-align: left;
	transition: background .2s ease, color .2s ease;
}
.cmipc-tabs__tab:hover { filter: brightness(.96); }
.cmipc-tabs__tab[aria-selected="true"] { background: var(--_active); color: var(--cmipc-tab-active-text, #222); }
.cmipc-tabs__tab:focus-visible { outline: 2px solid var(--_active); outline-offset: 2px; }
.cmipc-tabs--justified.cmipc-tabs--horizontal .cmipc-tabs__tab { flex: 1 1 0; justify-content: center; text-align: center; }
.cmipc-tabs__panel > *:first-child { margin-top: 0; }
.cmipc-tabs__panel img { max-width: 100%; height: auto; }
.cmipc-tabs__nojs-title { display: none; }
html:not(.cmipc-js) .cmipc-tabs__nav { display: none; }
html:not(.cmipc-js) .cmipc-tabs__panel[hidden] { display: block; }
html:not(.cmipc-js) .cmipc-tabs__nojs-title { display: block; }

@media (min-width: 801px) {
	.cmipc-tabs--vertical { display: grid; grid-template-columns: minmax(200px, 28%) 1fr; gap: 36px; align-items: start; }
	.cmipc-tabs--vertical .cmipc-tabs__nav { flex-direction: column; flex-wrap: nowrap; margin-bottom: 0; position: sticky; top: 100px; }
	.cmipc-tabs--vertical .cmipc-tabs__tab { width: 100%; }
}
@media (max-width: 800px) {
	.cmipc-tabs__nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; padding-bottom: 4px; }
	.cmipc-tabs__tab { flex: 0 0 auto !important; white-space: nowrap; }
}

/* ---------- Tagline box ---------- */
.cmipc-tagline {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px;
	padding: 30px 34px;
	border-radius: var(--cmipc-radius);
}
.cmipc-tagline[style*="text-align:center"] { flex-direction: column; justify-content: center; }
.cmipc-tagline[style*="text-align:center"] .cmipc-tagline__content { flex: 0 0 auto; width: 100%; }
.cmipc-tagline--shadow { box-shadow: 0 10px 30px rgba(0, 0, 0, .12); }
.cmipc-tagline__content { flex: 1 1 320px; }
.cmipc-tagline__title { margin: 0; }
.cmipc-tagline__desc { margin: .4em 0 0; }

/* ---------- Mapa ---------- */
.cmipc-map { max-width: 100%; margin-left: auto; margin-right: auto; border-radius: var(--cmipc-radius); overflow: hidden; }
.cmipc-map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* ---------- Blog ---------- */
.cmipc-blog { display: grid; gap: 40px; }
.cmipc-blog--grid { grid-template-columns: repeat(var(--cmipc-cols, 3), minmax(0, 1fr)); gap: 30px; }
@media (max-width: 1024px) { .cmipc-blog--grid { grid-template-columns: repeat(min(var(--cmipc-cols, 3), 2), minmax(0, 1fr)); } }
@media (max-width: 640px)  { .cmipc-blog--grid { grid-template-columns: 1fr; } }
.cmipc-blog__item { display: flex; flex-direction: column; gap: 18px; }
.cmipc-blog--medium .cmipc-blog__item { flex-direction: row; }
.cmipc-blog--medium .cmipc-blog__thumb { flex: 0 0 38%; }
@media (max-width: 640px) { .cmipc-blog--medium .cmipc-blog__item { flex-direction: column; } }
.cmipc-blog__thumb { display: block; overflow: hidden; border-radius: var(--cmipc-radius); }
.cmipc-blog__thumb img { display: block; width: 100%; height: auto; transition: transform .4s ease; }
.cmipc-blog__item:hover .cmipc-blog__thumb img { transform: scale(1.03); }
.cmipc-blog__title { margin: 0 0 .35em; line-height: 1.25; }
.cmipc-blog__title a { color: inherit; text-decoration: none; }
.cmipc-blog__meta { margin: 0 0 .8em; font-size: .88em; color: var(--cmipc-muted); }
.cmipc-blog__excerpt { margin: 0 0 1em; }
.cmipc-blog__more { display: inline-flex; align-items: center; gap: .4em; font-weight: 600; }
.cmipc-blog__pagination { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 40px; }
.cmipc-blog__pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 10px;
	border: 1px solid rgba(0, 0, 0, .12); border-radius: var(--cmipc-radius); text-decoration: none;
}
.cmipc-blog__pagination .page-numbers.current { background: var(--cmipc-accent); border-color: var(--cmipc-accent); color: #222; }

/* ---------- Código / fallback ---------- */
.cmipc-code > *:last-child,
.cmipc-unknown > *:last-child { margin-bottom: 0; }
