/**
 * BioCultura — home page section shortcodes.
 * Only enqueued on the front page. Namespaced (--bc-*, .bc-home-*) so it
 * never collides with the hero markup/classes already built separately,
 * or with Astra's own theme classes.
 *
 * Palette mirrors the "BioCultura Home Standalone" design file, reusing
 * Astra's already-configured Customizer globals (--ast-global-color-N)
 * where they overlap, and filling in the rest of the palette the
 * Customizer doesn't cover with the same hex values from that design.
 */

:root {
	--bc-action: var(--ast-global-color-0, #008F6C);
	--bc-red-500: var(--ast-global-color-1, #D51F27);
	--bc-ink-900: var(--ast-global-color-2, #211F1B);
	--bc-ink-700: var(--ast-global-color-3, #3B3A35);
	--bc-paper-50: var(--ast-global-color-4, #FBFAF6);
	--bc-paper-0: var(--ast-global-color-5, #FFFFFF);
	--bc-paper-100: var(--ast-global-color-6, #F4F2EA);
	--bc-green-800: var(--ast-global-color-7, #013F30);
	--bc-lime-500: var(--ast-global-color-8, #C2D600);

	--bc-green-50: #E6F4EE;
	--bc-green-600: #00795A;
	--bc-green-700: #015F47;
	--bc-lime-300: #DCE96B;
	--bc-lime-400: #C9DD33;
	--bc-red-50: #FDECEC;
	--bc-red-700: #99131A;
	--bc-paper-200: #E8E5D9;
	--bc-paper-300: #D6D2C4;
	--bc-ink-500: #6B6860;
	--bc-ink-300: #9A968A;

	--bc-radius-md: 14px;
	--bc-radius-lg: 20px;
	--bc-radius-xl: 28px;
	--bc-radius-pill: 999px;

	--bc-shadow-sm: 0 2px 8px rgba(33, 31, 27, .07);
	--bc-shadow-lg: 0 16px 40px rgba(33, 31, 27, .12);

	--bc-font-display: 'Fredoka', 'Baloo 2', system-ui, sans-serif;
}

.bc-home-sec {
	padding-bottom: 100px;
	padding-top: 100px;
	box-sizing: border-box;
}

.bc-home-sec * {
	box-sizing: border-box;
}

.bc-icon {
	flex: 0 0 auto;
}

.bc-home-inner {
	max-width: 1600px;
	margin: 0 auto;
	padding: 64px 32px 0;
}

.bc-home-head {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 720px;
	margin-top: 32px;
}

.bc-home-head.is-center {
	text-align: center;
	align-items: center;
	margin: 0 auto;
}

.bc-home-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bc-action);
}

.bc-home-eyebrow::before {
	content: "";
	width: 22px;
	height: 3px;
	border-radius: 2px;
	background: var(--bc-action);
}

.bc-home-head h2 {
	margin: 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: clamp(24px, 3vw, 32px);
	line-height: 1.2;
	color: var(--bc-ink-900);
}

.bc-home-head p {
	margin: 0;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--bc-ink-500);
}

.bc-home-head-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.bc-home-more-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 14px;
	font-weight: 700;
	color: var(--bc-green-600);
	text-decoration: none;
	padding-bottom: 8px;
	white-space: nowrap;
}

.bc-home-grid-3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 40px;
}

/* --- Hero (top banner) --- */

.bc-home-hero {
	background: var(--bc-green-800);
}

.bc-home-hero-inner {
	max-width: 1600px;
	margin: 0 auto;
	padding: 72px 32px 80px;
}

.bc-home-hero-grid {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 52px;
	align-items: center;
}

.bc-home-hero-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--bc-lime-300);
}

.bc-home-hero-eyebrow span {
	width: 7px;
	height: 7px;
	border-radius: 999px;
	background: var(--bc-lime-500);
}

.bc-home-hero-h1 {
	margin: 18px 0 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: clamp(36px, 5.6cqw, 60px);
	line-height: 1.05;
	letter-spacing: -.01em;
	color: #fff;
}

.bc-home-hero-sub {
	margin: 20px 0 0;
	font-size: 18px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .78);
	max-width: 460px;
}

.bc-home-hero-ctas {
	display: flex;
	gap: 13px;
	margin-top: 30px;
	flex-wrap: wrap;
}

.bc-home-btn.is-action {
	background: var(--bc-action);
	color: #fff;
}

.bc-home-hero-stats {
	display: flex;
	gap: 32px;
	margin-top: 38px;
}

.bc-home-hero-stat-num {
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 28px;
	color: var(--bc-lime-400);
}

.bc-home-hero-stat-label {
	font-size: 13px;
	color: rgba(255, 255, 255, .65);
}

.bc-home-hero-media {
	position: relative;
}

.bc-home-hero-img {
	width: 100%;
	height: 480px;
	object-fit: cover;
	border-radius: var(--bc-radius-xl);
	display: block;
	background: rgba(255, 255, 255, .08);
}

.bc-home-hero-img.is-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, .5);
	font-family: var(--bc-font-display);
	font-size: 20px;
}

.bc-home-hero-card {
	position: absolute;
	left: 22px;
	bottom: 22px;
	width: 268px;
	max-width: calc(100% - 44px);
	background: var(--bc-lime-500);
	color: var(--bc-green-800);
	border-radius: var(--bc-radius-lg);
	padding: 20px;
	box-shadow: var(--bc-shadow-lg);
}

.bc-home-hero-card-eyebrow {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: .7;
}

.bc-home-hero-card-lugar {
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 22px;
	margin-top: 3px;
}

.bc-home-hero-card-fecha {
	font-size: 14px;
	margin-top: 2px;
}

.bc-home-hero-card .bc-home-btn {
	margin-top: 14px;
}

.bc-home-btn.is-block {
	width: 100%;
}

@media (max-width: 760px) {
	.bc-home-hero-grid {
		grid-template-columns: 1fr;
	}

	.bc-home-hero-inner {
		padding: 48px 22px 56px;
	}

	.bc-home-hero-h1 {
		font-size: 40px;
	}

	.bc-home-hero-media {
		margin-top: 16px;
	}

	.bc-home-hero-card {
		position: static;
		width: 100%;
		max-width: none;
		margin-top: 16px;
	}
}

/* --- Hero, video-background variant ([bc_home_hero_video]) --- */

.bc-home-hero--video {
	position: relative;
	overflow: hidden;
	min-height: 90vh;
	display: flex;
	align-items: center;

	margin-left: calc(-50vw + 50%) !important;
	margin-right: calc(-50vw + 50%) !important;
	max-width: 100vw !important;
	width: 100vw !important;
}

.bc-home-hero--video .bc-home-hero-inner {
	position: relative;
	z-index: 2;
	padding: 96px 32px;
	width: 100%;
	min-width: 0;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	max-width: 100vw;
	display: flex;
	justify-content: center;
}

.bc-home-hero-video-wrap {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--bc-green-800);
}

.bc-home-hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.bc-home-hero-video-scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(1, 34, 26, .55) 0%, rgba(1, 42, 32, .72) 55%, rgba(1, 51, 39, .88) 100%);
}

.bc-home-hero--video .bc-home-hero-copy {
	position: relative;
	z-index: 2;
	max-width: 760px;
	text-align: center;
}

.bc-home-hero--video .bc-home-hero-eyebrow,
.bc-home-hero--video .bc-home-hero-ctas,
.bc-home-hero--video .bc-home-hero-stats {
	justify-content: center;
}

.bc-home-hero--video .bc-home-hero-h1 {
	font-size: clamp(46px, 6.4vw, 92px);
}

.bc-home-hero--video .bc-home-hero-sub {
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
	font-size: 20px;
}

/* Palabras del H1, separadas en spans por hero-animations.js para el
   stagger de entrada; sin JS o con prefers-reduced-motion se quedan
   simplemente como texto normal (ver hero-animations.js). */
.bc-hero-word {
	display: inline-block;
	will-change: transform, opacity;
}

.bc-hero-anim-item {
	will-change: transform, opacity;
}

/* Estado inicial oculto de la animación de entrada: sólo se aplica cuando
   el snippet crítico en <head> (ver wp_head en shortcodes-home.php) ya
   confirmó, antes del primer pintado, que hero-animations.js /
   scroll-reveal.js van a poder animar estos elementos. Así el contenido
   nunca llega a mostrarse visible antes de ocultarse para animar — que es
   lo que pasaba cuando sólo el JS (que corre después del primer render)
   se encargaba de esconderlo, provocando el parpadeo. */
html.bc-anim-ready [data-bc-hero-typewriter],
html.bc-anim-ready .bc-hero-anim-item {
	opacity: 0;
}

/* No se define aquí una `transition`: cuando GSAP está disponible es él
   quien anima opacity/transform frame a frame vía scroll-reveal.js, y una
   transición CSS a la vez interferiría (el navegador intentaría además
   transicionar cada frame que escribe GSAP). El fallback sin GSAP añade su
   propia `transition` inline antes de aplicar `.bc-revealed`. */
html.bc-anim-ready .bc-reveal {
	opacity: 0;
	transform: translateY(28px);
}

html.bc-anim-ready .bc-reveal.bc-revealed {
	opacity: 1;
	transform: translateY(0);
}

.bc-hero-typing-caret {
	display: inline-block;
	width: .06em;
	margin-left: 2px;
	background: currentColor;
	animation: bc-hero-caret-blink 1s step-end infinite;
}

@keyframes bc-hero-caret-blink {
	0%, 100% { opacity: 1; }
	50% { opacity: 0; }
}

@media (max-width: 760px) {
	.bc-home-hero--video {
		min-height: 0;
	}

	.bc-home-hero--video .bc-home-hero-inner {
		padding: 56px 22px 64px;
	}

	.bc-home-hero--video .bc-home-hero-h1 {
		font-size: clamp(36px, 9vw, 52px);
	}

	.bc-home-hero-video-scrim {
		background: linear-gradient(180deg, rgba(1, 34, 26, .7) 0%, rgba(1, 63, 48, .88) 100%);
	}
}

/* --- Rhythm between sections (matches the standalone's varying top gaps) --- */

.bc-home-ciudades {
	position: relative;
	overflow: visible;
}

.bc-home-ciudades .bc-home-inner {
	padding-top: 88px;
	position: relative;
	z-index: 1;
}

.bc-home-accesos .bc-home-inner {
	padding-top: 72px;
}

.bc-home-noticias .bc-home-inner {
	padding-top: 88px;
}

.bc-home-newsletter .bc-home-inner {
	padding-top: 88px;
}

/* Marca de agua de fondo: el sello queda detrás de todo el contenido de la
   sección, a gran escala y muy translúcido, sin interferir con la lectura
   (mismo recurso que las tarjetas de sello sobre fondo de marca). */
.bc-home-ciudades-seal {
	position: absolute;
	top: 50%;
	left: 20%;
	transform: translate(-50%, -50%);
	width: clamp(560px, 40vw, 980px);

	height: auto;
	max-width: none;
	/* opacity: .05; */
	pointer-events: none;
	z-index: 1;
}

/* --- Ciudades / ediciones — Swiper, one card per view --- */

.bc-home-ciudades-swiper {
	max-width: 480px;
	margin: 30px auto 0;
	padding: 10px 0;
	overflow: hidden;
}

.bc-home-ciudades-swiper .swiper-wrapper {
	transition-timing-function: cubic-bezier(.65, 0, .35, 1);
}

.bc-home-ciudades-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 22px;
}

.bc-home-ciudades-pagination .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	margin: 0;
	background: var(--bc-paper-200);
	opacity: 1;
	transition: background .25s ease, transform .25s ease;
}

.bc-home-ciudades-pagination .swiper-pagination-bullet-active {
	background: var(--bc-lime-500);
	transform: scale(1.25);
}

/* --- Ciudades / ediciones cards --- */

.bc-home-city-card {
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	box-shadow: var(--bc-shadow-sm);
	border-radius: var(--bc-radius-lg);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	display: block;
	transition: transform .2s ease, border-color .2s ease;
}

.bc-home-city-card:hover {
	transform: translateY(-4px);
	border-color: var(--bc-lime-500);
}

.bc-home-city-card .bc-home-city-img {
	width: 100%;
	height: 172px;
	object-fit: cover;
	display: block;
	background: var(--bc-paper-100);
}

.bc-home-city-card .bc-home-city-img.is-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--bc-ink-300);
	font-size: 13px;
}

.bc-home-city-body {
	padding: 22px 22px 24px;
}

.bc-home-city-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.bc-home-city-name {
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 24px;
	color: var(--bc-ink-900);
}

.bc-home-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 11px;
	border-radius: var(--bc-radius-pill);
	font-weight: 600;
	font-size: 13px;
	line-height: 1.4;
	white-space: nowrap;
	background: var(--bc-red-50);
	color: var(--bc-red-700);
	max-width: fit-content;
}

.bc-home-badge.is-green {
	background: var(--bc-green-50);
	color: var(--bc-green-700);
}

.bc-home-city-meta {
	margin-top: 10px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
	color: var(--bc-ink-500);
}

.bc-home-city-meta span {
	display: flex;
	gap: 8px;
	align-items: center;
}

.bc-home-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 18px;
	font-size: 14px;
	font-weight: 700;
	color: var(--bc-green-600);
	transition: gap .18s ease;
}

.bc-home-city-card:hover .bc-home-link-arrow,
.bc-home-quick-card:hover .bc-home-link-arrow {
	gap: 12px;
}

/* --- Accesos rápidos --- */

.bc-home-quick-card {
	text-decoration: none;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 28px;
	border-radius: var(--bc-radius-lg);
	padding: 26px;
	min-height: 180px;
	color: var(--bc-ink-900);
}

.bc-home-quick-card.is-dark {
	background: var(--bc-green-700);
	color: #fff;
}

.bc-home-quick-card.is-light {
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	box-shadow: var(--bc-shadow-sm);
}

.bc-home-quick-card.is-lime {
	background: var(--bc-lime-500);
	color: var(--bc-green-800);
}

.bc-home-quick-icon {
	display: inline-grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 14px;
	background: rgba(0, 0, 0, .1);
	flex-shrink: 0;
}

.bc-home-accesos .bc-home-grid-3 {
	margin-top: 0;
}

.bc-home-quick-card.is-dark .bc-home-quick-icon {
	background: rgba(255, 255, 255, .14);
}

.bc-home-quick-card.is-light .bc-home-quick-icon {
	background: var(--bc-green-50);
	color: var(--bc-green-600);
}

.bc-home-quick-card.is-lime .bc-home-quick-icon {
	background: rgba(1, 63, 48, .12);
}

.bc-home-quick-title {
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 21px;
}

.bc-home-quick-sub {
	font-size: 14px;
	margin-top: 4px;
	display: flex;
	align-items: center;
	gap: 6px;
	opacity: .85;
}

/* --- Bento grid ([bc_home_bento]) ---
   4-column grid, dense auto-flow. The hero (2 cols × 2 rows) and the
   ferias photo (2 cols × 1 row) are the only tiles with an explicit span;
   every 1×1 tile gets aspect-ratio: 1 so its own column width sets the
   row height, which the spanning tiles then inherit for free — no fixed
   pixel row-height to keep in sync across breakpoints.

   Tiles read as full-bleed "posters" (bold, bottom-anchored type over a
   photo, or a solid corporate colour) rather than padded, centered cards
   — the logo and heart tiles are the two flush light tiles that
   punctuate that rhythm. Hero/ferias photos are real BioCultura fair
   photography (assets/img/bento), not stock or placeholder art. */

.bc-bento-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-flow: row dense;
	gap: 14px;
	margin-top: 40px;
}

.bc-bento-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	border-radius: var(--bc-radius-md);
	padding: 22px;
	overflow: hidden;
	isolation: isolate;
}

.bc-bento-logo,
.bc-bento-heart,
.bc-bento-stat,
.bc-bento-quote,
.bc-bento-redstat,
.bc-bento-mission {
	aspect-ratio: 1;
}

.bc-bento-media {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bc-bento-scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(0deg, rgba(1, 20, 15, .82) 0%, rgba(1, 20, 15, .38) 48%, rgba(1, 20, 15, .1) 72%);
}

.bc-bento-content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	flex: 1;
	justify-content: flex-end;
}

/* Solid-colour tiles (stat/redstat/quote/mission) keep a hidden fair
   photo behind their text — hovering fades it in at low opacity, tinted
   by the tile's own background showing through, so it reads as a peek
   rather than a jarring swap to a raw photo. */
.bc-bento-media-hover {
	opacity: 0;
	transform: scale(1.08);
	transition: opacity .5s ease, transform .5s ease;
}

.bc-bento-tile:hover .bc-bento-media-hover {
	opacity: .45;
	transform: scale(1);
}

.bc-bento-hero {
	grid-column: span 2;
	grid-row: span 2;
	color: #fff;
}

.bc-bento-hero .bc-bento-media {
	object-position: center 38%;
}

.bc-bento-hero-badge {
	align-self: flex-start;
	margin-bottom: auto;
	padding: 5px 13px;
	border-radius: var(--bc-radius-pill);
	background: rgba(255, 255, 255, .16);
	backdrop-filter: blur(4px);
	color: var(--bc-lime-300);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.bc-bento-hero h3 {
	margin: 0;
	max-width: 22ch;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: clamp(24px, 2.5vw, 32px);
	line-height: 1.14;
}

.bc-bento-hero p {
	margin: 10px 0 0;
	max-width: 42ch;
	font-size: 15.5px;
	font-weight: 500;
	line-height: 1.55;
	color: rgba(255, 255, 255, .88);
}

.bc-bento-logo,
.bc-bento-heart {
	align-items: center;
	justify-content: center;
	background: var(--bc-paper-0);
	box-shadow: var(--bc-shadow-sm);
}

.bc-bento-logo img {

	object-fit: contain;
}

.bc-bento-heart-mark {
	width: 52%;
	height: 52%;
	object-fit: contain;
}

.bc-bento-stat,
.bc-bento-redstat {
	color: #fff;
}

.bc-bento-stat {
	background: var(--bc-action);
}

.bc-bento-redstat {
	background: var(--bc-red-500);
}

.bc-bento-stat-num {
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: clamp(34px, 3.4vw, 46px);
	line-height: .95;
	font-variant-numeric: tabular-nums;
}

.bc-bento-stat-label {
	margin-top: 6px;
	max-width: 16ch;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.3;
	color: rgba(255, 255, 255, .9);
}

.bc-bento-photo {
	grid-column: span 2;
	color: #fff;
}

.bc-bento-photo .bc-bento-media {
	object-position: center 30%;
}

.bc-bento-photo-eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bc-lime-300);
}

.bc-bento-photo h4 {
	margin: 6px 0 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 21px;
	line-height: 1.2;
}

.bc-bento-photo span.bc-bento-photo-sedes {
	display: block;
	margin-top: 6px;
	font-size: 14.5px;
	font-weight: 500;
	color: rgba(255, 255, 255, .85);
}

.bc-bento-quote {
	background: var(--bc-lime-500);
	color: var(--bc-green-800);
}

.bc-bento-quote-mark {
	display: block;
	margin-bottom: -6px;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 40px;
	line-height: 1;
	opacity: .55;
}

.bc-bento-quote p {
	margin: 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 16px;
	line-height: 1.3;
}

.bc-bento-mission {
	background: var(--bc-ink-900);
	color: var(--bc-paper-100);
}

.bc-bento-mission p {
	margin: 0;
	font-size: 16.5px;
	line-height: 1.45;
	font-weight: 600;
}

@media (max-width: 900px) {
	.bc-bento-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 760px) {
	.bc-bento-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.bc-bento-hero,
	.bc-bento-photo {
		grid-column: span 1;
		grid-row: span 1;
		aspect-ratio: 4 / 3;
	}

	.bc-bento-tile {
		padding: 20px;
	}
}

/* --- Noticias --- */

/* Grid, not flex: a fixed 260px-tall feature image stopped tracking its
   own width once the container grew to 1600px, so at wide viewports it
   flattened into an oversized, letterboxed-looking banner. aspect-ratio
   keeps it proportionate at any width; the list column matches its height
   and spreads its (up to 3) items evenly instead of stacking tight at top. */

.bc-home-news-row {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 28px;
	margin-top: 40px;
	align-items: stretch;
}

.bc-home-news-feature {
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	box-shadow: var(--bc-shadow-sm);
	border-radius: var(--bc-radius-lg);
	overflow: hidden;
	transition: transform .2s ease, border-color .2s ease;
}

.bc-home-news-feature:hover {
	transform: translateY(-4px);
	border-color: var(--bc-lime-500);
}

.bc-home-news-feature img {
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	object-fit: cover;
	display: block;
	background: var(--bc-paper-100);
}

.bc-home-news-feature-body {
	padding: 30px 32px;
	gap: 16px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.bc-home-news-feature-body h3 {
	margin: 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: clamp(20px, 1.6vw, 27px);
	line-height: 1.2;
	color: var(--bc-ink-900);
}

.bc-home-news-feature-body p {
	margin: 12px 0 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--bc-ink-500);
	max-width: 46em;
}

.bc-home-news-date {
	margin-top: 16px;
	font-size: 13px;
	color: var(--bc-ink-300);
}

.bc-home-news-feature .bc-home-news-date {
	margin-top: auto;
	padding-top: 16px;
}

.bc-home-news-list {
	display: flex;
	flex-direction: column;
	gap: 16px;
	justify-content: space-between;
}

.bc-home-news-item {
	text-decoration: none;
	color: inherit;
	display: flex;
	align-items: center;
	gap: 18px;
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	box-shadow: var(--bc-shadow-sm);
	border-radius: var(--bc-radius-lg);
	overflow: hidden;
	padding: 16px;
	flex: 1;
	transition: transform .2s ease, border-color .2s ease;
}

.bc-home-news-item:hover {
	transform: translateY(-4px);
	border-color: var(--bc-lime-500);
}

.bc-home-news-item img {
	width: 116px;
	height: 116px;
	flex: 0 0 auto;
	object-fit: cover;
	border-radius: 12px;
	display: block;
	background: var(--bc-paper-100);
}

.bc-home-news-item h4 {
	margin: 8px 0 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 17px;
	line-height: 1.3;
	color: var(--bc-ink-900);
}

.bc-home-empty {
	margin-top: 32px;
	padding: 32px;
	text-align: center;
	color: var(--bc-ink-500);
	background: var(--bc-paper-100);
	border-radius: var(--bc-radius-lg);
}

/* --- Newsletter --- */

.bc-home-newsletter-panel {
	background: var(--bc-green-800);
	border-radius: var(--bc-radius-xl);
	padding: 48px 44px;
	display: flex;
	align-items: center;
	gap: 40px;
	max-width: 1240px;
	margin: 0 auto;
}

.bc-home-newsletter-eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bc-lime-300);
}

.bc-home-newsletter-text h2 {
	margin: 10px 0 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 32px;
	line-height: 1.1;
	color: #fff;
}

.bc-home-newsletter-text p {
	margin: 10px 0 0;
	font-size: 16px;
	color: rgba(255, 255, 255, .82);
	max-width: 420px;
}

.bc-home-newsletter-form {
	width: 100%;
}

.bc-home-newsletter-row {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.bc-home-newsletter-row input[type="email"] {
	flex: 1 1 200px;
	height: 50px;
	padding: 0 18px;
	border-radius: var(--bc-radius-pill);
	border: 1.5px solid transparent;
	background: #fff;
	font-size: 15px;
	font-family: inherit;
	color: var(--bc-ink-900);
	outline: none;
}

.bc-home-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 50px;
	padding: 0 24px;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 15px;
	border-radius: var(--bc-radius-pill);
	cursor: pointer;
	border: 1px solid transparent;
	white-space: nowrap;
	text-decoration: none;
}

.bc-home-btn.is-lime {
	background: var(--bc-lime-500);
	color: var(--bc-green-800);
}

.bc-home-btn:disabled {
	opacity: .6;
	cursor: default;
}

.bc-home-newsletter-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-top: 16px;
	cursor: pointer;
}

.bc-home-newsletter-consent input {
	margin-top: 3px;
	width: 17px;
	height: 17px;
	accent-color: var(--bc-lime-500);
}

.bc-home-newsletter-consent span {
	font-size: 13px;
	line-height: 1.5;
	color: rgba(255, 255, 255, .78);
}

.bc-home-newsletter-consent a {
	color: var(--bc-lime-300);
}

.bc-home-newsletter-msg {
	margin-top: 12px;
	font-size: 14px;
}

.bc-home-newsletter-msg.is-success {
	color: var(--bc-lime-300);
}

.bc-home-newsletter-msg.is-error {
	color: #ffb4b4;
}

/* --- Publicaciones (páginas de sede) ---
   Each bc_publicacion is one external press link (title = outlet/article
   name, ACF pub_url = the link). Grouped by pub_descripcion and rendered
   as a chip cloud — hundreds of individual "cards" would be unreadable. */

.bc-pub-group {
	margin-top: 32px;
}

.bc-pub-group:first-of-type {
	margin-top: 24px;
}

.bc-pub-group-title {
	margin: 0 0 14px;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 18px;
	line-height: 1.3;
	color: var(--bc-ink-900);
}

.bc-pub-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.bc-pub-chip {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	overflow-wrap: anywhere;
	padding: 6px 14px;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-green-50);
	color: var(--bc-green-700);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: background .15s ease;
}

.bc-pub-chip:hover {
	background: var(--bc-lime-500);
	color: var(--bc-green-800);
}

/* --- Sala de prensa (home.php) --- */

.bc-prensa-header {
	padding-bottom: 0;
}

.bc-prensa-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px;
}

.bc-prensa-filter {
	display: inline-flex;
	align-items: center;
	padding: 8px 18px;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	color: var(--bc-ink-700);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.bc-prensa-filter:hover {
	border-color: var(--bc-lime-500);
}

.bc-prensa-filter.is-active {
	background: var(--bc-green-700);
	border-color: var(--bc-green-700);
	color: #fff;
}

.bc-prensa-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 40px;
}

.bc-prensa-card {
	display: flex;
	flex-direction: column;
}

.bc-prensa-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.bc-prensa-title {
	margin: 10px 0 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 18px;
	line-height: 1.3;
	color: var(--bc-ink-900);
}

.bc-prensa-excerpt {
	margin: 8px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--bc-ink-500);
	flex: 1;
}

.bc-prensa-pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 48px;
}

.bc-prensa-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	color: var(--bc-ink-700);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.bc-prensa-pagination .page-numbers.current {
	background: var(--bc-green-700);
	border-color: var(--bc-green-700);
	color: #fff;
}

.bc-prensa-pagination .page-numbers.dots {
	border-color: transparent;
	background: transparent;
}

/* --- Página de sede (single-bc_sede_ficha.php) --- */

.bc-sede-hero {
	position: relative;
	background: var(--bc-green-800) center/cover no-repeat;
	color: #fff;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	max-width: 100vw;
	width: 100vw;
}

.bc-sede-hero-scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(1, 63, 48, .55), rgba(1, 63, 48, .82));
}

.bc-sede-hero-inner {
	position: relative;
	padding: 88px 32px 72px;
}

.bc-sede-hero h1 {
	margin: 14px 0 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: clamp(36px, 5vw, 56px);
	line-height: 1.05;
	color: #fff;
}

.bc-sede-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 26px;
	margin-top: 18px;
	font-size: 15px;
	color: rgba(255, 255, 255, .85);
}

.bc-sede-hero-meta span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.bc-sede-hero .bc-home-btn {
	margin-top: 10px;
}

.bc-sede-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.bc-sede-stat {
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	box-shadow: var(--bc-shadow-sm);
	border-radius: var(--bc-radius-lg);
	padding: 22px;
	text-align: center;
}

.bc-sede-stat-num {
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 30px;
	color: var(--bc-green-600);
}

.bc-sede-stat-label {
	margin-top: 4px;
	font-size: 13px;
	color: var(--bc-ink-500);
}

.bc-sede-info-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}

.bc-sede-info-card {
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	box-shadow: var(--bc-shadow-sm);
	border-radius: var(--bc-radius-lg);
	padding: 24px 26px;
}

.bc-sede-info-card h3 {
	margin: 0 0 10px;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 19px;
	color: var(--bc-ink-900);
}

.bc-sede-info-card p {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.65;
	color: var(--bc-ink-700);
}

.bc-sede-info-card .bc-home-link-arrow {
	margin-top: 0;
	text-decoration: none;
}

.bc-sede-contact-form {
	margin-top: 32px;
}

.bc-sede-contact-form h3 {
	margin: 0 0 16px;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 19px;
	color: var(--bc-ink-900);
}

.bc-conv-logo {
	max-height: 56px;
	width: auto;
	margin-bottom: 14px;
}

.bc-sede-rich {
	margin: 20px 0 28px;
	font-size: 15px;
	line-height: 1.7;
	color: var(--bc-ink-700);
	max-width: 760px;
}

/* Media partners — CSS-only continuous marquee, no JS/Swiper involved.
   .bc-mp-track holds two identical .bc-mp-group copies of the logo list
   back to back; animating from translateX(0) to translateX(-50%) scrolls
   exactly one group's width, so the loop point is invisible — the second
   (duplicate) group is already sitting where the first one started.
   Vertical padding on .bc-mp-marquee gives the item's box-shadow room to
   render before the container clips it, so the shadow fades out at the
   edges instead of being cut off flat. */

.bc-mp-marquee {
	margin-top: 40px;
	overflow: hidden;
	padding: 24px 0;
	-webkit-mask-image: linear-gradient(to right, transparent, #000 48px, #000 calc(100% - 48px), transparent);
	mask-image: linear-gradient(to right, transparent, #000 48px, #000 calc(100% - 48px), transparent);
}

.bc-mp-track {
	display: flex;
	width: max-content;
	animation: bc-mp-scroll var(--bc-mp-duration, 40s) linear infinite;
}

.bc-mp-marquee:hover .bc-mp-track,
.bc-mp-track:focus-within {
	animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
	.bc-mp-track {
		animation: none;
	}
}

.bc-mp-group {
	display: flex;
	flex-shrink: 0;
	gap: 32px;
	padding-right: 32px;
}

@keyframes bc-mp-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

.bc-mp-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 176px;
	padding: 20px 16px;
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	border-radius: var(--bc-radius-lg);
	box-shadow: var(--bc-shadow-sm);
	text-decoration: none;
	transition: transform .3s cubic-bezier(.22, 1, .36, 1), border-color .3s ease, box-shadow .3s ease;
}

.bc-mp-item:hover {
	transform: translateY(-4px);
	border-color: var(--bc-lime-500);
	box-shadow: var(--bc-shadow-lg);
}

.bc-mp-item img {
	max-width: 100%;
	height: 48px;
	width: auto;
	object-fit: contain;
}

.bc-mp-item-name {
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 13px;
	color: var(--bc-ink-500);
	text-align: center;
}

.bc-sede-page>.bc-home-sec:last-of-type,
.bc-sede-page>section:last-of-type {
	padding-bottom: 88px;
}

/* Equipo — [bc_equipo] team marquee. Same CSS-only continuous-scroll
   technique as the media partners strip above: .bc-equipo-track holds two
   identical .bc-equipo-group copies back to back, animating from
   translateX(0) to translateX(-50%) so the loop point is invisible. */

.bc-equipo-marquee {
	margin-top: 40px;
	overflow: hidden;
	padding: 24px 0;
	-webkit-mask-image: linear-gradient(to right, transparent, #000 48px, #000 calc(100% - 48px), transparent);
	mask-image: linear-gradient(to right, transparent, #000 48px, #000 calc(100% - 48px), transparent);
}

.bc-equipo-track {
	display: flex;
	width: max-content;
	animation: bc-equipo-scroll var(--bc-equipo-duration, 60s) linear infinite;
}

.bc-equipo-marquee:hover .bc-equipo-track,
.bc-equipo-track:focus-within {
	animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
	.bc-equipo-track {
		animation: none;
	}
}

.bc-equipo-group {
	display: flex;
	flex-shrink: 0;
	gap: 24px;
	padding-right: 24px;
}

@keyframes bc-equipo-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

.bc-equipo-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 200px;
	padding: 24px 18px;
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	border-radius: var(--bc-radius-lg);
	box-shadow: var(--bc-shadow-sm);
	text-align: center;
	transition: transform .3s cubic-bezier(.22, 1, .36, 1), border-color .3s ease, box-shadow .3s ease;
}

.bc-equipo-item:hover {
	transform: translateY(-4px);
	border-color: var(--bc-lime-500);
	box-shadow: var(--bc-shadow-lg);
}

.bc-equipo-photo {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--bc-paper-200);
	flex-shrink: 0;
}

.bc-equipo-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bc-equipo-name {
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 15px;
	color: var(--bc-ink-900);
}

.bc-equipo-cargo {
	font-size: 13px;
	line-height: 1.4;
	color: var(--bc-ink-500);
}

/* --- Página de sede: layout de pestañas --- */

.bc-sede-tabs-section {
	padding-top: 48px;
}

.bc-sede-layout {
	display: grid;
	grid-template-columns: 248px 1fr;
	gap: 48px;
	align-items: start;
}

.bc-sede-sidebar {
	position: sticky;
	top: 88px;
}

.bc-sede-sidebar-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bc-ink-300);
	padding: 0 14px 10px;
}

.bc-sede-sidebar-seal {
	flex: 0 0 auto;
	opacity: .8;
}

.bc-sede-nav {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.bc-sede-navlink {
	padding: 10px 14px;
	border-radius: 10px;
	font-size: 14px;
	color: var(--bc-ink-700);
	text-decoration: none;
	display: block;
	cursor: pointer;
	border: none;
	background: none;
	text-align: left;
	width: 100%;
	font-family: inherit;
}

.bc-sede-navlink:hover {
	background: var(--bc-paper-100);
}

.bc-sede-navlink.is-active {
	font-weight: 700;
	color: var(--bc-green-700);
	background: var(--bc-green-50);
}

.bc-sede-mobile-select-wrap {
	display: none;
}

.bc-sede-mobile-select {
	display: none;
	width: 100%;
	height: 48px;
	padding: 0 16px;
	border-radius: var(--bc-radius-md);
	border: 1px solid var(--bc-paper-200);
	background: var(--bc-paper-0);
	font-size: 14px;
	font-weight: 600;
	color: var(--bc-ink-900);
}

.bc-sede-panel-head h2 {
	margin: 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 30px;
	color: var(--bc-ink-900);
	line-height: 1.15;
}

.bc-sede-panel-head p {
	margin: 16px 0 0;
	font-size: 17px;
	line-height: 1.7;
	color: var(--bc-ink-700);
	max-width: 660px;
}

.bc-tab-contenido-dinamico {
	margin-top: 32px;
	margin-bottom: 32px;
}

.bc-sede-h3 {
	margin: 40px 0 16px;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 21px;
	color: var(--bc-ink-900);
}

.bc-sede-h3:first-of-type {
	margin-top: 28px;
}

.bc-sede-sector-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

.bc-sede-sector-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	border-radius: var(--bc-radius-md);
	font-size: 14px;
	font-weight: 600;
	color: var(--bc-ink-900);
}

.bc-sede-sector-item::before {
	content: "";
	width: 8px;
	height: 8px;
	flex: 0 0 auto;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-action);
}

.bc-sede-rows {
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	border-radius: var(--bc-radius-lg);
	overflow: hidden;
}

.bc-sede-row {
	display: flex;
	gap: 16px;
	padding: 16px 20px;
	font-size: 14px;
}

.bc-sede-row:not(:last-child) {
	border-bottom: 1px solid var(--bc-paper-200);
}

.bc-sede-row-label {
	width: 170px;
	flex: none;
	font-weight: 700;
	color: var(--bc-ink-900);
}

.bc-sede-row-value {
	color: var(--bc-ink-700);
}

.bc-sede-pdf-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 16px;
}

.bc-sede-pdf-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	border-radius: var(--bc-radius-md);
	text-decoration: none;
	color: var(--bc-ink-900);
	font-size: 14px;
	font-weight: 700;
}

.bc-sede-pdf-item:hover {
	border-color: var(--bc-lime-500);
}

.bc-sede-price-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 12px;
	font-size: 13px;
}

.bc-sede-price-table th,
.bc-sede-price-table td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--bc-paper-200);
	text-align: left;
}

.bc-sede-price-table th {
	color: var(--bc-ink-500);
	font-weight: 700;
	font-size: 12px;
	text-transform: uppercase;
}

.bc-sede-app-soon {
	margin-top: 24px;
	padding: 48px 32px;
	text-align: center;
	background: var(--bc-paper-100);
	border: 1px dashed var(--bc-paper-300);
	border-radius: var(--bc-radius-lg);
}

.bc-sede-app-soon-icon {
	display: flex;
	justify-content: center;
	color: var(--bc-ink-300);
}

.bc-sede-app-soon h3 {
	margin: 14px 0 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 20px;
	color: var(--bc-ink-900);
}

.bc-sede-app-soon p {
	margin: 8px auto 0;
	max-width: 440px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--bc-ink-500);
}

.bc-sede-badge-soon {
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-paper-100);
	color: var(--bc-ink-500);
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

.bc-sede-cta-lime {
	margin-top: 32px;
	background: var(--bc-lime-500);
	border-radius: var(--bc-radius-lg);
	padding: 28px 30px;
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
}

.bc-sede-cta-lime>div {
	flex: 1 1 300px;
}

.bc-sede-cta-lime h3 {
	margin: 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 22px;
	color: var(--bc-green-800);
}

.bc-sede-cta-lime p {
	margin: 6px 0 0;
	font-size: 15px;
	color: var(--bc-green-800);
	opacity: .85;
	max-width: 420px;
}

.bc-sede-cta-lime button.bc-home-btn {
	background: var(--bc-red-500);
	color: #fff;
	border: none;
	cursor: pointer;
	font-family: var(--bc-font-display);
}

.bc-sede-tramite-item {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px 18px;
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	border-radius: var(--bc-radius-md);
}

.bc-sede-tramite-item>div {
	flex: 1;
}

.bc-sede-tramite-item h4 {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: var(--bc-ink-900);
}

.bc-sede-tramite-item p {
	margin: 2px 0 0;
	font-size: 13px;
	color: var(--bc-ink-500);
}

.bc-activities-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 8px;
}

.bc-activities-filters input[type="text"],
.bc-activities-filters input[type="date"] {
	padding: 10px 14px;
	border: 1px solid var(--bc-paper-300);
	border-radius: var(--bc-radius-md);
	font-size: 14px;
	color: var(--bc-ink-900);
	background: var(--bc-paper-0);
}

.bc-activities-filters input[type="text"] {
	flex: 1 1 220px;
}

.bc-activity-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 22px;
}

.bc-activity-card {
	position: relative;
	padding: 18px 20px;
	background: var(--bc-paper-0);
	border: 1px solid var(--bc-paper-200);
	border-radius: var(--bc-radius-lg);
	box-shadow: var(--bc-shadow-sm);
}

.bc-activity-featured-badge {
	position: absolute;
	top: 18px;
	right: 20px;
	padding: 4px 12px;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-lime-500);
	color: var(--bc-green-800);
	font-size: 12px;
	font-weight: 700;
}

.bc-activity-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 13px;
	color: var(--bc-ink-500);
}

.bc-activity-meta span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.bc-activity-title {
	margin: 8px 90px 0 0;
	font-family: var(--bc-font-display);
	font-weight: 600;
	font-size: 18px;
	color: var(--bc-ink-900);
}

.bc-activity-summary {
	margin: 6px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--bc-ink-700);
}

.bc-activity-speakers {
	margin: 8px 0 0;
	font-size: 13px;
	font-weight: 700;
	color: var(--bc-green-600);
}

.bc-activity-themes {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 10px;
}

.bc-activity-theme-chip {
	padding: 4px 10px;
	border-radius: var(--bc-radius-pill);
	background: var(--bc-paper-100);
	color: var(--bc-ink-700);
	font-size: 12px;
	font-weight: 600;
}

.bc-activities-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 28px;
}

.bc-activities-pagination-status {
	font-size: 13px;
	color: var(--bc-ink-500);
}

@media (max-width: 760px) {

	.bc-home-grid-3,
	.bc-prensa-grid {
		grid-template-columns: 1fr;
	}

	.bc-home-inner {
		padding-left: 22px;
		padding-right: 22px;
	}

	.bc-home-news-row {
		grid-template-columns: 1fr;
	}

	.bc-home-newsletter-panel {
		flex-direction: column;
		align-items: stretch;
	}

	.bc-sede-stats {
		grid-template-columns: repeat(2, 1fr);
	}

	.bc-sede-info-grid {
		grid-template-columns: 1fr;
	}

	.bc-sede-layout {
		grid-template-columns: 1fr;
	}

	.bc-sede-sidebar {
		display: none;
	}

	.bc-sede-content {
		padding-bottom: 84px;
	}

	/* Selector de sección siempre visible en móvil: se ancla abajo del
	   viewport (no arriba, donde chocaría con la cabecera sticky de
	   #masthead — ver style.css) y con z-index por debajo de la suya. */
	.bc-sede-mobile-select-wrap {
		display: flex;
		align-items: center;
		gap: 10px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 500;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		background: var(--bc-paper-0);
		border-top: 1px solid var(--bc-paper-200);
		box-shadow: 0 -8px 24px rgba(33, 31, 27, .1);
	}

	.bc-sede-mobile-select-seal {
		flex: 0 0 auto;
	}

	.bc-sede-mobile-select {
		display: block;
	}

	.bc-sede-sector-grid {
		grid-template-columns: 1fr;
	}

	.bc-sede-row {
		flex-direction: column;
		gap: 4px;
	}

	.bc-sede-row-label {
		width: auto;
	}
}

/* --- Formulario de contacto (Contact Form 7) ---
   Envuelve el markup que se pega en la pestaña "Formulario" de CF7.
   El wpautop de CF7 se desactiva en functions.php para que estos <div>
   no acaben metidos dentro de <p> generados automáticamente. */

.bc-contact-form {
	max-width: 780px;
}

.bc-contact-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.bc-contact-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 20px;
}

.bc-contact-field-full {
	grid-column: 1 / -1;
}

.bc-contact-field label {
	font-size: 14px;
	font-weight: 600;
	color: var(--bc-ink-900);
}

.bc-contact-field .wpcf7-form-control-wrap {
	display: block;
}

.bc-contact-field input[type="text"],
.bc-contact-field input[type="email"],
.bc-contact-field input[type="tel"],
.bc-contact-field select,
.bc-contact-field textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1.5px solid var(--bc-paper-300);
	border-radius: var(--bc-radius-md);
	background: var(--bc-paper-0);
	font-family: inherit;
	font-size: 15px;
	color: var(--bc-ink-900);
	outline: none;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.bc-contact-field textarea {
	min-height: 150px;
	resize: vertical;
}

.bc-contact-field input:focus,
.bc-contact-field select:focus,
.bc-contact-field textarea:focus {
	border-color: var(--bc-action);
	box-shadow: 0 0 0 3px rgba(0, 143, 108, .12);
}

.bc-contact-field input.wpcf7-not-valid,
.bc-contact-field select.wpcf7-not-valid,
.bc-contact-field textarea.wpcf7-not-valid {
	border-color: var(--bc-red-500);
}

.wpcf7-not-valid-tip {
	margin-top: 4px;
	font-size: 13px;
	color: var(--bc-red-500);
}

.bc-contact-consent {
	margin-bottom: 24px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--bc-ink-500);
}

.bc-contact-consent .wpcf7-list-item {
	margin: 0;
}

.bc-contact-consent label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
}

.bc-contact-consent input[type="checkbox"] {
	margin-top: 3px;
	width: 17px;
	height: 17px;
	flex: 0 0 auto;
	accent-color: var(--bc-action);
}

.bc-contact-consent a {
	color: var(--bc-green-600);
	font-weight: 600;
}

.bc-contact-submit {
	display: flex;
}

.bc-contact-submit .wpcf7-form-control-wrap {
	display: inline-flex;
}

.bc-contact-form .wpcf7-submit {
	-webkit-appearance: none;
	appearance: none;
}

.bc-contact-form .wpcf7-spinner {
	margin: 0 0 0 12px;
}

.bc-contact-form .wpcf7-response-output {
	margin: 20px 0 0 !important;
	padding: 14px 18px;
	border-radius: var(--bc-radius-md);
	font-size: 14px;
	border: 1.5px solid var(--bc-paper-300);
	color: var(--bc-ink-700);
}

.bc-contact-form.sent .wpcf7-response-output {
	border-color: var(--bc-action);
	background: var(--bc-green-50);
	color: var(--bc-green-700);
}

.bc-contact-form.invalid .wpcf7-response-output,
.bc-contact-form.aborted .wpcf7-response-output,
.bc-contact-form.spam .wpcf7-response-output,
.bc-contact-form.failed .wpcf7-response-output {
	border-color: var(--bc-red-500);
	background: var(--bc-red-50);
	color: var(--bc-red-700);
}

@media (max-width: 760px) {
	.bc-contact-row {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.bc-contact-field {
		margin-bottom: 16px;
	}

	.bc-contact-submit .wpcf7-form-control-wrap,
	.bc-contact-form .wpcf7-submit {
		width: 100%;
	}
}

.wpcf7-form{
	display: flex;
	justify-content: center;
}