/* ============================================================
   UCA EMPRENDE — Base y componentes compartidos
   Primitivas de la maqueta (Primitives.jsx) como clases BEM .mwm-*
   Los estilos propios de cada sección viven en blocks/{slug}/style.css del plugin.
   ============================================================ */

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body {
	font-family: var(--mwm-font);
	color: var(--mwm-text-body);
	background: var(--mwm-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}
img { max-width: 100%; height: auto; }
h1, h2, h3, h4, h5, h6 { font-family: var(--mwm-font); color: var(--mwm-text); }

/* La web no tiene separación entre bloques de sección: cada bloque gestiona su padding */
.wp-site-blocks > * + *,
.wp-site-blocks > main > .wp-block-post-content > .alignfull + .alignfull,
.is-layout-flow > .alignfull + .alignfull,
.is-layout-constrained > .alignfull + .alignfull { margin-block-start: 0; }
.wp-site-blocks > main { margin-block-start: 0; }
.wp-block-post-content > [class*="wp-block-mwm-"]:first-child { margin-block-start: 0; }

/* Foco visible (WCAG 2.4.7 y 1.4.11): contorno azul UCA de 2px (≥3:1 sobre blanco y fondos claros),
   blanco sobre fondos oscuros. :where() mantiene la especificidad baja, pero los componentes con
   box-shadow propio (.mwm-btn) no lo anulan porque el indicador es el outline. */
:where(*):focus-visible {
	outline: 2px solid var(--mwm-focus-color, var(--mwm-primary));
	outline-offset: 2px;
	border-radius: var(--mwm-radius-sm);
}
.mwm-btn:focus-visible,
.wpcf7-submit:focus-visible {
	outline: 2px solid var(--mwm-focus-color, var(--mwm-primary));
	outline-offset: 3px;
}
/* Fondos oscuros o azules: indicador blanco */
.is-bg-dark,
.is-bg-brand,
.mwm-site-footer,
.mwm-site-header__top,
.mwm-newsletter-band,
.mwm-cta-band.is-azul,
.mwm-cta-band.is-oscuro,
.mwm-cta-band.is-oscuro-imagen { --mwm-focus-color: #fff; }

.screen-reader-text,
.mwm-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Layout ---------- */
.mwm-container {
	width: 100%;
	max-width: var(--mwm-container-max);
	margin-inline: auto;
	padding-inline: var(--mwm-gutter);
	box-sizing: border-box;
	position: relative;
}

/* Sección estándar (padding vertical + fondos) */
.mwm-section { padding-block: var(--mwm-section-y); position: relative; }
.mwm-section.is-bg-alt { background: var(--mwm-bg-alt); }
.mwm-section.is-bg-dark { background: var(--mwm-bg-dark); color: #fff; }
.mwm-section.is-bg-brand { background: var(--mwm-primary); color: #fff; }
.mwm-section.is-pad-sm { padding-block: var(--mwm-section-y-sm); }
.mwm-section.is-pad-top-0 { padding-top: 0; }
.mwm-section.is-pad-bottom-0 { padding-bottom: 0; }

/* Fondo con cuadrícula sutil de 80px (heros) */
.mwm-grid-bg { position: relative; overflow: hidden; }
.mwm-grid-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0.5;
	background-image:
		linear-gradient(to right, rgba(0, 88, 119, 0.05) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(0, 88, 119, 0.05) 1px, transparent 1px);
	background-size: 80px 80px;
}

/* ---------- Eyebrow ---------- */
.mwm-eyebrow {
	display: inline-block;
	font-size: var(--mwm-fs-eyebrow);
	line-height: 1.2;
	letter-spacing: var(--mwm-ls-eyebrow);
	font-weight: 700;
	text-transform: uppercase;
	color: var(--mwm-accent);
	margin: 0;
}
.mwm-eyebrow.is-primary { color: var(--mwm-primary); }
.mwm-eyebrow.is-muted { color: var(--mwm-text-secondary); }
.mwm-eyebrow.is-inverse { color: rgba(255, 255, 255, 0.75); }

/* ---------- Cabecera de sección (eyebrow + H2 + lead + CTA) ---------- */
.mwm-section-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 32px;
	flex-wrap: wrap;
	margin-bottom: 56px;
}
.mwm-section-head__text { max-width: 680px; }
.mwm-section-head__title {
	font-size: var(--mwm-fs-h2);
	line-height: 1.05;
	letter-spacing: var(--mwm-ls-tight);
	font-weight: 900;
	color: var(--mwm-text);
	margin: 12px 0 16px;
	text-wrap: balance;
}
.mwm-section-head__title.is-sm { font-size: var(--mwm-fs-h2-sm); }
.mwm-section-head__title:last-child { margin-bottom: 0; }
.mwm-section-head__lead {
	font-size: var(--mwm-fs-body-lg);
	line-height: 1.55;
	color: var(--mwm-text-body);
	margin: 0;
}
.mwm-section-head.is-center { flex-direction: column; align-items: center; text-align: center; }
.mwm-section-head.is-center .mwm-section-head__text { margin-inline: auto; }
.is-bg-dark .mwm-section-head__title,
.is-bg-brand .mwm-section-head__title { color: #fff; }
.is-bg-dark .mwm-section-head__lead,
.is-bg-brand .mwm-section-head__lead { color: rgba(255, 255, 255, 0.8); }

/* ---------- Títulos con destacado (mwm_uca_title) ---------- */
.mwm-hl-italic { font-style: italic; font-weight: 300; letter-spacing: -0.02em; }
.mwm-hl-accent { background: none; color: var(--mwm-accent); padding: 0; }
.mwm-hl-accent.has-line { position: relative; display: inline-block; }
.mwm-hl-accent__line {
	position: absolute;
	left: 0;
	bottom: -4px;
	width: 100%;
	height: 22px;
	display: block;
}
.is-bg-dark .mwm-hl-accent,
.is-bg-brand .mwm-hl-accent { color: var(--mwm-accent); }

/* ---------- Botones ---------- */
.mwm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--mwm-font);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.25;
	letter-spacing: 0.02em;
	padding: 12px 24px;
	border: none;
	border-radius: var(--mwm-radius-md);
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
	transition: all var(--mwm-dur) var(--mwm-ease-out);
	box-sizing: border-box;
}
.mwm-btn--sm { font-size: 14px; padding: 8px 16px; }
.mwm-btn--lg { font-size: 17px; padding: 14px 32px; }
.mwm-btn--block { width: 100%; }

.mwm-btn--primary { background: var(--mwm-accent); color: #fff; box-shadow: var(--mwm-shadow-sm); }
.mwm-btn--primary:hover { background: var(--mwm-accent-hover); color: #fff; }
.mwm-btn--secondary { background: var(--mwm-primary); color: #fff; box-shadow: var(--mwm-shadow-sm); }
.mwm-btn--secondary:hover { background: var(--mwm-primary-hover); color: #fff; }
.mwm-btn--outline { background: transparent; color: var(--mwm-primary); box-shadow: inset 0 0 0 2px var(--mwm-primary); }
.mwm-btn--outline:hover { background: var(--mwm-primary); color: #fff; }
.mwm-btn--ghost { background: transparent; color: var(--mwm-primary); }
.mwm-btn--ghost:hover { background: var(--mwm-brand-tint); color: var(--mwm-primary); }
.mwm-btn--white { background: #fff; color: var(--mwm-primary); box-shadow: var(--mwm-shadow-sm); }
.mwm-btn--white:hover { background: var(--mwm-brand-tint); color: var(--mwm-primary); }
.mwm-btn--outline-inverse { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.6); }
.mwm-btn--outline-inverse:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }

.mwm-btn-group { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }

/* Enlace con flecha ("Inscribirme →") */
.mwm-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--mwm-accent);
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
	transition: transform var(--mwm-dur) var(--mwm-ease-out), color var(--mwm-dur);
}
.mwm-link-arrow:hover { color: var(--mwm-accent-hover); transform: translateX(4px); }
.mwm-link-arrow.is-primary { color: var(--mwm-primary); }

/* ---------- Badges ---------- */
.mwm-badge {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
	padding: 5px 10px;
	border-radius: var(--mwm-radius-full);
	background: var(--mwm-bg-muted);
	color: var(--mwm-text-body);
	white-space: nowrap;
}
.mwm-badge--fecha {
	background: var(--mwm-accent-tint);
	color: var(--mwm-accent);
	padding: 5px 12px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.mwm-badge--activa { background: var(--mwm-primary); color: #fff; }
.mwm-badge--ribbon {
	background: var(--mwm-primary);
	color: #fff;
	padding: 4px 10px;
	border-radius: var(--mwm-radius-sm);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.mwm-badge--accent { background: var(--mwm-accent); color: #fff; }
.mwm-badge--success { background: #e7f7ee; color: #15803d; }

/* ---------- Chips (filtros) ---------- */
.mwm-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	border-radius: var(--mwm-radius-full);
	font-family: var(--mwm-font);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	cursor: pointer;
	border: 1px solid transparent;
	background: var(--mwm-bg-muted);
	color: var(--mwm-text-body);
	transition: all var(--mwm-dur-fast) ease;
	text-decoration: none;
}
.mwm-chip:hover { background: var(--mwm-brand-tint); color: var(--mwm-primary); }
.mwm-chip.is-active,
.mwm-chip[aria-pressed="true"] {
	background: var(--mwm-brand-tint);
	color: var(--mwm-primary);
	border-color: rgba(0, 88, 119, 0.2);
}
.mwm-chip__remove {
	width: 18px; height: 18px;
	border: none; background: transparent; color: inherit;
	cursor: pointer; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
}

/* ---------- Pill (categorías tipo "Todas / Taller…") ---------- */
.mwm-pill {
	display: inline-flex;
	align-items: center;
	padding: 8px 16px;
	border-radius: var(--mwm-radius-full);
	font-family: var(--mwm-font);
	font-size: 14px;
	font-weight: 700;
	border: 1px solid var(--mwm-border-subtle);
	background: #fff;
	color: var(--mwm-text-body);
	cursor: pointer;
	white-space: nowrap;
	text-decoration: none;
	transition: all var(--mwm-dur-fast) ease;
}
.mwm-pill:hover { border-color: var(--mwm-primary); color: var(--mwm-primary); }
.mwm-pill.is-active,
.mwm-pill[aria-pressed="true"] { background: var(--mwm-primary); border-color: var(--mwm-primary); color: #fff; }

/* ---------- Migas de pan ---------- */
.mwm-breadcrumb { font-size: 13px; color: var(--mwm-text-secondary); margin-bottom: 28px; }
.mwm-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.mwm-breadcrumb li { display: inline-flex; align-items: center; gap: 8px; }
.mwm-breadcrumb a { color: inherit; text-decoration: none; }
.mwm-breadcrumb a:hover { color: var(--mwm-primary); text-decoration: underline; }
.mwm-breadcrumb [aria-current="page"] { color: var(--mwm-text); font-weight: 700; }
.mwm-breadcrumb__sep { color: var(--mwm-text-tertiary); }

/* ---------- Miniatura de actividad (ActivityThumb) ---------- */
.mwm-thumb {
	/* --mwm-thumb-base llega en línea desde mwm_uca_activity_thumb(); --mwm-thumb-size lo sobrescribe desde CSS (responsive) */
	width: var(--mwm-thumb-size, var(--mwm-thumb-base, 104px));
	height: var(--mwm-thumb-size, var(--mwm-thumb-base, 104px));
	flex-shrink: 0;
	border-radius: var(--mwm-radius-md);
	overflow: hidden;
	position: relative;
	background: var(--mwm-brand-tint);
	border: 1px solid var(--mwm-border-subtle);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mwm-primary);
	box-sizing: border-box;
}
.mwm-thumb.is-featured { background: var(--mwm-accent-tint); color: var(--mwm-accent); }
.mwm-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mwm-thumb::before {
	content: "";
	position: absolute;
	inset: 0;
	opacity: 0.6;
	background-image: radial-gradient(rgba(0, 88, 119, 0.16) 1.1px, transparent 1.3px);
	background-size: 13px 13px;
	background-position: 1px 1px;
}
.mwm-thumb.is-featured::before { background-image: radial-gradient(rgba(232, 123, 0, 0.16) 1.1px, transparent 1.3px); }
.mwm-thumb:has(img)::before { display: none; }
.mwm-thumb__icon { position: relative; opacity: 0.85; display: inline-flex; }

/* ---------- Avatar de iniciales ---------- */
.mwm-avatar {
	width: 56px; height: 56px;
	border-radius: 50%;
	flex-shrink: 0;
	background: var(--mwm-brand-tint);
	color: var(--mwm-primary);
	font-weight: 900;
	font-size: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.mwm-avatar img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Tarjeta base ---------- */
.mwm-card {
	background: #fff;
	border: 1px solid var(--mwm-border-subtle);
	border-radius: var(--mwm-radius-lg);
	box-shadow: var(--mwm-shadow-sm);
	transition: box-shadow var(--mwm-dur) var(--mwm-ease-out), transform var(--mwm-dur) var(--mwm-ease-out);
}
a.mwm-card:hover,
.mwm-card.is-hoverable:hover { box-shadow: var(--mwm-shadow-lg); transform: translateY(-2px); }

/* ---------- Icono en caja ---------- */
.mwm-icon-box {
	width: 44px; height: 44px;
	border-radius: var(--mwm-radius-md);
	background: var(--mwm-brand-tint);
	color: var(--mwm-primary);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.mwm-icon-box.is-accent { background: var(--mwm-accent-tint); color: var(--mwm-accent); }
.mwm-icon { display: inline-block; vertical-align: middle; flex-shrink: 0; }

/* ---------- Estado vacío ---------- */
.mwm-empty {
	text-align: center;
	padding: 64px 24px;
	border: 1px dashed var(--mwm-border);
	border-radius: var(--mwm-radius-lg);
	color: var(--mwm-text-secondary);
	background: #fff;
}
.mwm-empty__title { font-size: 20px; font-weight: 900; color: var(--mwm-text); margin: 12px 0 6px; }

/* ============================================================
   Contenido nativo (artículos, legales, cuerpo de singles)
   ============================================================ */
.wp-block-post-content > p,
.mwm-prose p { font-size: 18px; line-height: 1.75; color: var(--mwm-text-body); }
.wp-block-post-content > h2,
.mwm-prose h2 {
	font-size: 28px;
	line-height: 1.2;
	letter-spacing: -0.01em;
	font-weight: 900;
	margin: 48px 0 16px;
}
.wp-block-post-content > h3,
.mwm-prose h3 { font-size: 22px; font-weight: 900; margin: 32px 0 12px; }
.wp-block-post-content > :is(p, ul, ol, h2, h3, h4, .wp-block-table) a:not([class]),
.mwm-prose a:not([class]) { color: var(--mwm-primary); text-underline-offset: 3px; }
.wp-block-post-content > :is(p, ul, ol, h2, h3, h4, .wp-block-table) a:not([class]):hover,
.mwm-prose a:not([class]):hover { color: var(--mwm-accent); }

/* Cita con borde naranja */
.wp-block-quote,
.wp-block-quote.is-style-uca {
	margin: 40px 0;
	padding: 24px 32px;
	border-left: 4px solid var(--mwm-accent);
	background: var(--mwm-bg-alt);
	border-radius: 0 var(--mwm-radius-lg) var(--mwm-radius-lg) 0;
}
.wp-block-quote p { font-size: 21px; line-height: 1.5; font-style: italic; color: var(--mwm-text); margin: 0; }
.wp-block-quote cite { display: block; margin-top: 12px; font-size: 14px; font-style: normal; color: var(--mwm-text-secondary); }

/* Lista con viñeta circular ("Qué te llevas", "A quién va dirigido") */
.wp-block-list.is-style-check,
ul.mwm-check-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.wp-block-list.is-style-check li,
ul.mwm-check-list li {
	position: relative;
	padding-left: 32px;
	font-size: 17px;
	line-height: 1.6;
	color: var(--mwm-text-body);
}
.wp-block-list.is-style-check li::before,
ul.mwm-check-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--mwm-accent-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E87B00' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* Tablas (cookies) */
.wp-block-table table,
.mwm-prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
.wp-block-table th,
.wp-block-table td,
.mwm-prose th,
.mwm-prose td { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--mwm-border-subtle); border-left: 0; border-right: 0; border-top: 0; }
.wp-block-table thead th,
.mwm-prose thead th { background: var(--mwm-bg-alt); font-weight: 700; color: var(--mwm-text); border-bottom: 1px solid var(--mwm-border); }
.wp-block-table { border: 1px solid var(--mwm-border-subtle); border-radius: var(--mwm-radius-lg); overflow: hidden; margin: 24px 0; }
.wp-block-table figcaption { font-size: 13px; color: var(--mwm-text-secondary); }

/* Imagen dentro del contenido */
.wp-block-post-content .wp-block-image img { border-radius: var(--mwm-radius-xl); }

/* Separador */
.wp-block-separator { border: none; border-top: 1px solid var(--mwm-border-subtle); opacity: 1; }

/* Botón nativo con el estilo de la marca */
.wp-block-button__link { font-weight: 700; border-radius: var(--mwm-radius-md); }

/* Imagen destacada del artículo (ArticuloPage.jsx: radio 24px + sombra lg) */
.wp-block-post-featured-image.mwm-featured-shadow { border-radius: var(--mwm-radius-2xl); overflow: hidden; box-shadow: var(--mwm-shadow-lg); }

/* Destino de foco programático (tras cerrar el banner de cookies): sin contorno alrededor de todo el contenido */
main[tabindex="-1"]:focus { outline: none; }
