/* ==========================================================================
   Biomecai · Estilos del tema
   ========================================================================== */

/* --------------------------------------------------------------------------
   Header (superpuesto sobre el hero)
   -------------------------------------------------------------------------- */
.bmc-header {
	position: absolute;
	inset: 0 0 auto 0;
	z-index: 10;
	padding-block: 28px;
}
.bmc-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.bmc-logo__img {
	height: 48px;
	width: auto;
}
.bmc-nav {
	margin-left: auto;          /* menú a la derecha de la cabecera */
}
.bmc-nav__list {
	display: flex;
	align-items: center;
	gap: 36px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.bmc-nav__list > li { position: relative; }
.bmc-nav__list a {
	font-family: var(--bmc-font-base);
	font-weight: 400;           /* regular, según Figma */
	font-size: 17px;            /* reducido desde 19.02 a petición */
	line-height: 40.7px;        /* Figma */
	color: var(--bmc-white);    /* blanco */
	white-space: nowrap;
}

/* Variante para fondos claros (páginas sin foto oscura debajo del header) */
.bmc-header--light {
	position: static;           /* deja de superponerse: empuja el contenido */
}
.bmc-header--light .bmc-nav__list > li > a {
	color: var(--bmc-text);
}

/* Ítem con submenú: flecha indicadora (rota al abrir) */
.bmc-nav__has-sub > a::after {
	content: "";
	display: inline-block;
	width: 8px; height: 8px;
	margin-left: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transform-origin: center;
	transition: transform .3s ease;
}
/* Rotación de la flecha al abrir el desplegable */
.bmc-nav__has-sub:hover > a::after,
.bmc-nav__has-sub:focus-within > a::after {
	transform: translateY(1px) rotate(225deg);
}
/* Puente invisible sobre el hueco para no perder el hover al bajar el ratón */
.bmc-nav__has-sub > a::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 100%;
	height: 16px;
}

/* Desplegable: contenedor blanco, radius 10, sombra.
   Animación suave de entrada/salida (fade + ligero desplazamiento). */
.bmc-nav__sub {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 20;
	list-style: none;
	margin: 12px 0 0;
	padding: 14px 22px;
	background: var(--bmc-white);
	border-radius: 10px;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
	min-width: max-content;
	/* Estado cerrado */
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .28s ease, transform .28s ease, visibility 0s linear .28s;
}
.bmc-nav__has-sub:hover .bmc-nav__sub,
.bmc-nav__has-sub:focus-within .bmc-nav__sub {
	/* Estado abierto */
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition: opacity .28s ease, transform .28s ease, visibility 0s;
}
.bmc-nav__sub a {
	color: var(--bmc-text);     /* texto por defecto (negro) sobre fondo blanco */
	white-space: nowrap;
	display: block;
}

/* Botón hamburguesa (móvil) */
.bmc-nav-toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 6px;
}
.bmc-nav-toggle span {
	width: 26px;
	height: 2px;
	background: var(--bmc-black);
	display: block;
}

/* --------------------------------------------------------------------------
   Hero: foto de fondo 100vh + panel blur a la izquierda
   -------------------------------------------------------------------------- */
/* Ancho de la franja izquierda difuminada (= ancho del panel en Figma) */
:root { --bmc-hero-panel-w: 685px; }

/* Capa BASE: foto nítida a pantalla completa */
.bmc-hero {
	position: relative;
	min-height: 100vh;
	background-image: var(--hero-bg);
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: stretch;
}

/* Capa DIFUMINADA: la MISMA foto (mismo cover/posición → coincide siempre),
   recortada con clip-path para verse SOLO en la franja izquierda. */
.bmc-hero__blur {
	position: absolute;
	inset: 0;
	background-image: var(--hero-blur);
	background-size: cover;         /* idéntico a la capa base */
	background-position: center;    /* idéntico a la capa base */
	opacity: 0.7;                   /* foto difuminada al 70% (Figma) */
	clip-path: inset(0 calc(100% - var(--bmc-hero-panel-w)) 0 0);
	z-index: 1;
}
/* Overlay negro al 20% SOLO sobre la franja difuminada (Figma) */
.bmc-hero__blur::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.2);
}

/* Contenido del hero: CAPA INDEPENDIENTE de las fotos.
   Posicionable libremente (posición/ancho ajustables por variables). */
.bmc-hero__content {
	position: absolute;
	z-index: 2;
	/* Alineado al mismo borde que el resto del contenido */
	left: var(--bmc-gutter);
	bottom: 96px;               /* separación del borde inferior */
	right: auto;
	top: auto;
	width: 760px;               /* ancho del bloque de texto */
	max-width: calc(100% - (2 * var(--bmc-gutter)));
}
/* Logo(s) de financiación institucional + texto del proyecto, encima del título */
.bmc-hero__financiacion {
	margin-bottom: 28px;
}
.bmc-hero__financiacion-logo {
	height: 40px;
	width: auto;
	margin-bottom: 10px;
	/* Fondo propio del logo (amarillo/azul/blanco): placa blanca para que se
	   lea bien sobre la foto del hero. */
	background: var(--bmc-white);
	border-radius: 4px;
	padding: 4px 8px;
}
.bmc-hero__financiacion-texto {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 11px;
	line-height: 15px;
	max-width: 400px;
	margin: 0;
	color: var(--bmc-white);
	opacity: 0.85;
}
.bmc-hero__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;           /* regular, según Figma */
	font-size: 67.2px;          /* Figma */
	line-height: 76px;          /* Figma */
	margin: 0;
	color: var(--bmc-white);    /* blanco (lo indica el diseño) */
}

/* Subtítulo con icono: parte inferior derecha del hero */
.bmc-hero__intro {
	position: absolute;
	z-index: 2;
	/* Alineado al borde derecho del contenido (mismo margen que el contenedor) */
	right: var(--bmc-gutter);
	bottom: 96px;
	left: auto;
	top: auto;
	display: flex;
	align-items: flex-start;
	gap: 28px;
	width: 560px;
	max-width: calc(100% - 144px);
	color: var(--bmc-white);
}
.bmc-hero__intro-icon {
	width: 22px;
	height: 25.8px;             /* alto = line-height de la 1ª línea */
	object-fit: contain;        /* centra el icono dentro de esa altura */
	flex-shrink: 0;
}
.bmc-hero__intro-text {
	font-family: var(--bmc-font-base);
	font-weight: 400;           /* regular, según Figma */
	font-size: 18.65px;         /* Figma */
	line-height: 25.8px;        /* Figma */
	margin: 0;
}
.bmc-hero__intro-text strong { font-weight: 700; }
.bmc-hero__intro-text p { margin: 0; }
.bmc-hero__subtitle {
	font-size: 1.125rem;
	line-height: 1.6;
	margin: 0 0 36px;
}

/* --------------------------------------------------------------------------
   Badge (componente reutilizable)
   Fondo #D9D9D9, radius 8, medium 15.02/24.9px, mayúsculas.
   -------------------------------------------------------------------------- */
.bmc-badge {
	display: inline-flex;
	align-items: center;        /* centra el texto verticalmente */
	background: #D9D9D9;
	border-radius: 8px;
	/* Padding asimétrico: la fuente apoya las mayúsculas altas y deja más
	   aire abajo; compensamos con más arriba y menos abajo. */
	padding: 11px 14px 6px;
	font-family: var(--bmc-font-base);
	font-weight: 500;           /* medium */
	font-size: 15.02px;
	line-height: 1;             /* sin holgura extra que descompense */
	text-transform: uppercase;
	color: var(--bmc-text);     /* texto por defecto (negro) */
	letter-spacing: .02em;
}

/* --------------------------------------------------------------------------
   Botones
   -------------------------------------------------------------------------- */
.bmc-btn {
	display: inline-flex;
	align-items: center;        /* centra el texto verticalmente */
	justify-content: center;
	font-family: var(--bmc-font-base);
	font-weight: 400;           /* regular */
	font-size: 16.95px;
	line-height: 1;             /* sin holgura extra */
	text-transform: uppercase;
	/* Padding asimétrico para compensar la métrica de la fuente (mayúsculas) */
	padding: 16px 34px 11px;
	border-radius: 100px;       /* píldora */
	border: none;               /* reset: <button> trae borde por defecto */
	outline: none;
	appearance: none;
	transition: opacity .2s ease;
	cursor: pointer;
}
.bmc-btn:focus-visible {
	outline: 2px solid var(--bmc-orange);
	outline-offset: 2px;
}
.bmc-btn--primary {
	background: var(--bmc-orange);
	color: var(--bmc-black);
	border: none;
}
.bmc-btn--dark {
	background: var(--bmc-black);
	color: var(--bmc-white);
}
/* Botón con icono (flecha) a la derecha del texto */
.bmc-btn--icon {
	gap: 14px;
}
.bmc-btn--icon img {
	width: 21px;
	height: 11px;
	display: block;
	position: relative;
	top: -1px;                  /* alinea la flecha con el centro óptico del texto */
}
.bmc-btn:hover { opacity: .88; }

/* --------------------------------------------------------------------------
   Home · Sección "Objetivo" (badge izq. + texto grande + botón)
   -------------------------------------------------------------------------- */
.bmc-objetivo {
	padding-block: 120px;
}
.bmc-objetivo__grid {
	display: grid;
	grid-template-columns: 400px 1fr;
	gap: 40px;
	align-items: start;
}
.bmc-objetivo__text {
	max-width: 980px;
}
.bmc-objetivo__subtitle {
	font-family: var(--bmc-font-base);
	font-weight: 500;           /* medium */
	font-size: 18.65px;
	margin: 0 0 20px;
	color: var(--bmc-text);
}
.bmc-objetivo__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;           /* regular */
	font-size: 36.02px;
	line-height: 40.7px;
	margin: 0 0 40px;
	color: var(--bmc-text);
}

/* --------------------------------------------------------------------------
   Home · Sección "Líneas principales de investigación"
   -------------------------------------------------------------------------- */
.bmc-lineas {
	padding-block: 120px;
}
.bmc-lineas__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;           /* regular */
	font-size: 67.2px;          /* Figma */
	line-height: 76px;          /* Figma */
	margin: 0 0 64px;
	color: var(--bmc-text);
	text-align: left;
	max-width: 620px;           /* fuerza el salto en 2 líneas */
}

/* Filas de líneas de investigación, separadas por líneas 1px negras */
.bmc-lineas__filas {
	border-top: 1px solid var(--bmc-text);
}

.bmc-linea {
	display: grid;
	grid-template-columns: 80px minmax(0, 560px) auto 340px;
	align-items: start;
	column-gap: 48px;
	padding-block: 56px;
	border-bottom: 1px solid var(--bmc-text);
}

.bmc-linea__numero {
	font-family: var(--bmc-font-head);
	font-weight: 400;           /* regular */
	font-size: 36.02px;
	line-height: 40.7px;
	color: var(--bmc-primary);
}

.bmc-linea__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;           /* regular */
	font-size: 36.02px;
	line-height: 40.7px;
	margin: 0 0 20px;
	color: var(--bmc-text);
}
.bmc-linea__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;           /* regular */
	font-size: 16px;
	line-height: 21.5px;
	margin: 0;
	color: var(--bmc-text);
}

.bmc-linea__flecha {
	width: 85px;
	height: 46px;
	align-self: start;
	justify-self: center;
}

.bmc-linea__list-title {
	font-family: var(--bmc-font-base);
	font-weight: 500;           /* medium */
	font-size: 18px;
	text-decoration: underline;
	margin: 0 0 20px;
	color: var(--bmc-text);
}
.bmc-linea__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.bmc-linea__item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	font-family: var(--bmc-font-base);
	font-weight: 400;           /* regular */
	font-size: 15px;
	line-height: 1.5;
	margin: 0 0 12px;
	color: var(--bmc-text);
}
.bmc-linea__bullet {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--bmc-text);
	flex-shrink: 0;
	margin-top: 10px;
}

/* --------------------------------------------------------------------------
   Home · Sección "Divulgación científica"
   -------------------------------------------------------------------------- */
.bmc-divulgacion {
	padding-block: 120px;
}
.bmc-divulgacion__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;      /* botón alineado abajo con el subtítulo */
	gap: 60px;
	margin-bottom: 64px;
}
.bmc-divulgacion__intro .bmc-badge {
	margin-bottom: 24px;
}
.bmc-divulgacion__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;           /* regular */
	font-size: 67.2px;          /* Figma */
	line-height: 76px;          /* Figma */
	margin: 0 0 32px;
	max-width: 1000px;
	color: var(--bmc-text);
}
.bmc-divulgacion__subtitle {
	font-family: var(--bmc-font-base);
	font-weight: 400;           /* regular */
	font-size: 18.65px;         /* Figma */
	line-height: 25.1px;        /* Figma */
	margin: 0;
	max-width: 1000px;          /* mismo ancho que el título */
	color: var(--bmc-text);
}
.bmc-divulgacion__head .bmc-btn { flex-shrink: 0; }

/* Slider (deslizable, sin librerías) */
.bmc-slider {
	overflow: hidden;
}
.bmc-slider__track {
	display: flex;
	gap: 48px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;          /* Firefox */
	padding-bottom: 8px;
}
.bmc-slider__track::-webkit-scrollbar { display: none; }
.bmc-slider__slide {
	scroll-snap-align: start;
	flex: 0 0 calc((100% - 2 * 48px) / 3);   /* 3 cards visibles */
}

/* --------------------------------------------------------------------------
   Archivo del blog
   -------------------------------------------------------------------------- */
.bmc-blog-archive {
	padding-block: 120px;
}
.bmc-blog-archive > .bmc-container > .bmc-badge {
	margin-bottom: 24px;
}
.bmc-blog-archive__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	margin: 0 0 64px;
	color: var(--bmc-text);
}

/* Card destacada (primer artículo), formato horizontal */
.bmc-blogcard-destacada {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
	gap: 60px;
	background: var(--bmc-beige);
	border-radius: 20px;
	padding: 56px;
	margin-bottom: 48px;
}
.bmc-blogcard-destacada__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
}
.bmc-blogcard-destacada__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 36.02px;
	line-height: 40.7px;
	margin: 0 0 24px;
	color: var(--bmc-text);
}
.bmc-blogcard-destacada__title a {
	color: inherit;
	text-decoration: none;
}
.bmc-blogcard-destacada__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 18px;
}
.bmc-blogcard-destacada__date {
	font-family: var(--bmc-font-base);
	font-weight: 500;
	font-size: 15.02px;
	text-transform: uppercase;
	color: var(--bmc-text);
}
.bmc-blogcard-destacada__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 21.5px;
	margin: 0 0 32px;
	color: var(--bmc-text);
}
.bmc-blogcard-destacada__media {
	display: block;
	border-radius: 12px;
	background-size: cover;
	background-position: center;
	min-height: 400px;
}

.bmc-blog-archive__categorias {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 48px;
}
.bmc-badge--btn {
	text-decoration: none;
	transition: background .2s ease;
}
.bmc-badge--btn:hover {
	background: var(--bmc-primary);
	color: var(--bmc-white);
}
.bmc-badge--btn-active {
	background: var(--bmc-primary);
	color: var(--bmc-white);
}

.bmc-blog-archive__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 48px;
}
.bmc-blog-archive__pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	margin-top: 64px;
	font-family: var(--bmc-font-base);
	font-weight: 500;
	font-size: 20px;
}
.bmc-blog-archive__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--bmc-text);
	text-decoration: none;
}
.bmc-blog-archive__pagination .page-numbers.dots {
	color: var(--bmc-text);
}
.bmc-blog-archive__pagination .page-numbers.current {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--bmc-black);
	color: var(--bmc-white);
	font-size: 22px;
}
.bmc-blog-archive__pagination .page-numbers.prev,
.bmc-blog-archive__pagination .page-numbers.next {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--bmc-black);
	color: var(--bmc-white);
	font-size: 0;
}
.bmc-blog-archive__pagination .page-numbers.prev::after,
.bmc-blog-archive__pagination .page-numbers.next::after {
	font-size: 20px;
}
.bmc-blog-archive__pagination .page-numbers.prev::after {
	content: '←';
}
.bmc-blog-archive__pagination .page-numbers.next::after {
	content: '→';
}

/* Card de blog */
.bmc-blogcard {
	background: var(--bmc-beige);
	border-radius: 20px;
	padding: 32px;              /* mismo padding que las cards de líneas */
	display: flex;
	flex-direction: column;
	height: 100%;
	position: relative;
	text-decoration: none;
	color: inherit;
}
.bmc-blogcard__flecha {
	position: absolute;
	right: 32px;
	bottom: 32px;
	opacity: 0;
	transform: translate(-8px, 8px);
	transition: opacity .2s ease, transform .2s ease;
}
.bmc-blogcard:hover .bmc-blogcard__flecha {
	opacity: 1;
	transform: translate(0, 0);
}
.bmc-blogcard__media {
	display: block;
	border-radius: 12px;
	aspect-ratio: 4 / 3;
	margin-bottom: 24px;
	background-size: cover;         /* la foto del artículo llena el rectángulo */
	background-position: center;
	overflow: hidden;
}
.bmc-blogcard__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 18px;
}
.bmc-blogcard__date {
	font-family: var(--bmc-font-base);
	font-weight: 500;           /* medium */
	font-size: 15.02px;
	text-transform: uppercase;
	color: var(--bmc-text);
}
.bmc-blogcard__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 36.02px;
	line-height: 40.7px;
	margin: 0 0 16px;
	color: var(--bmc-text);
}
.bmc-blogcard__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 18.65px;
	line-height: 25.1px;
	margin: 0 0 24px;
	color: var(--bmc-text);
}

/* --------------------------------------------------------------------------
   Home · Sección "Proyectos y actividad científica"
   -------------------------------------------------------------------------- */
.bmc-proyectos {
	padding-block: 120px;
}
.bmc-proyectos__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: stretch;
}
.bmc-proyectos__content {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
	height: 100%;
}
.bmc-proyectos__top .bmc-badge {
	margin-bottom: 24px;
}
.bmc-proyectos__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;           /* regular */
	font-size: 67.2px;          /* Figma */
	line-height: 76px;
	margin: 0 0 32px;
	color: var(--bmc-text);
	max-width: 620px;
}
.bmc-proyectos__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;           /* regular */
	font-size: 18.65px;         /* Figma */
	line-height: 25.1px;
	color: var(--bmc-text);
	max-width: 620px;
}
.bmc-proyectos__text p {
	margin: 0 0 24px;
}
.bmc-proyectos__text p:last-child {
	margin-bottom: 0;
}
.bmc-proyectos__media img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 20px;
	display: block;
}

/* --------------------------------------------------------------------------
   Badge variante clara (fondo blanco, texto negro)
   -------------------------------------------------------------------------- */
.bmc-badge--light {
	background: var(--bmc-white);
	color: var(--bmc-black);
}

/* --------------------------------------------------------------------------
   Badge variante naranja (fondo naranja, texto negro)
   -------------------------------------------------------------------------- */
.bmc-badge--orange {
	background: var(--bmc-primary);
	color: var(--bmc-black);
}

/* --------------------------------------------------------------------------
   Página "Quiénes somos" · Hero (fondo negro, 80vh)
   -------------------------------------------------------------------------- */
.bmc-qs-hero {
	background: var(--bmc-black);
	color: var(--bmc-white);
	min-height: 90vh;
	display: flex;
}
.bmc-qs-hero__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
	gap: 60px;
	width: 100%;
}
/* Contenido izquierda: badge arriba, título centrado, subtítulo abajo */
.bmc-qs-hero__content {
	display: flex;
	flex-direction: column;
	padding-block: 120px;
}
.bmc-qs-hero__content .bmc-badge { align-self: flex-start; }
.bmc-qs-hero__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 52px;
	line-height: 58px;
	margin: 40px 0 auto;        /* empuja el subtítulo hacia abajo */
	color: var(--bmc-white);
}
.bmc-qs-hero__subtitle {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 18.65px;
	line-height: 25.8px;
	margin: 40px 0 0;
	max-width: 620px;
	color: var(--bmc-white);
}
/* Logo grande a la derecha */
.bmc-qs-hero__media {
	display: flex;
	align-items: center;
	justify-content: center;
}
.bmc-qs-hero__media img {
	width: 100%;
	max-width: 620px;
	height: auto;
}

/* --------------------------------------------------------------------------
   Línea de investigación · Hero (foto de fondo + overlay)
   -------------------------------------------------------------------------- */
.page-template-page-linea-biomecanica .bmc-objetivo {
	padding-top: 100px;
}
.bmc-linea-hero {
	position: relative;
	height: 90vh;
	display: flex;
	align-items: flex-end;
	background-image: var(--linea-hero-bg);
	background-size: cover;
	background-position: center;
}
.bmc-linea-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}
.bmc-linea-hero__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	padding-top: 100px;
	padding-bottom: 64px;
}
.bmc-linea-hero__inner .bmc-badge { align-self: flex-start; }
.bmc-linea-hero__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	margin: 40px 0 0;
	max-width: 700px;
	color: var(--bmc-white);
}
.bmc-linea-hero__subtitle {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 18.65px;
	line-height: 25.8px;
	margin: auto 0 0;
	max-width: 620px;
	color: var(--bmc-white);
}

/* --------------------------------------------------------------------------
   Línea de investigación · Sección "Así estudiamos el movimiento"
   -------------------------------------------------------------------------- */
.bmc-linea-estudio {
	padding-top: 100px;
	padding-bottom: 120px;
}
.bmc-linea-estudio__separator {
	height: 1px;
	background: #D9D9D9;
	margin-bottom: 60px;
}
.bmc-linea-estudio__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: start;
}
.bmc-linea-estudio__left {
	max-width: 600px;
}
.bmc-linea-estudio__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 36.02px;
	line-height: 40.7px;
	margin: 0 0 32px;
	color: var(--bmc-text);
}
.bmc-linea-estudio__list {
	list-style: none;
	margin: 0 0 32px;
	padding: 0;
	border-top: 1px solid var(--bmc-text);
}
.bmc-linea-estudio__list li {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding-block: 20px;
	border-bottom: 1px solid var(--bmc-text);
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	color: var(--bmc-text);
}
.bmc-linea-estudio__numero {
	color: var(--bmc-primary);
	flex-shrink: 0;
}
.bmc-linea-estudio__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	margin: 0;
	color: var(--bmc-text);
}
.bmc-linea-estudio__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}

/* --------------------------------------------------------------------------
   Línea de investigación · Sección "Nuestros focos de investigación"
   (igual que .bmc-linea-estudio pero invertida, con título antes del separador)
   -------------------------------------------------------------------------- */
.bmc-linea-focos {
	padding-top: 100px;
	padding-bottom: 120px;
}
.bmc-linea-focos__heading {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	margin: 0 0 32px;
	max-width: 700px;
	color: var(--bmc-text);
}
.bmc-linea-focos__separator {
	height: 1px;
	background: #D9D9D9;
	margin-bottom: 60px;
}
.bmc-linea-focos__grid {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 160px;
	align-items: start;
}
.bmc-linea-focos__media img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}
.bmc-linea-focos__right {
	max-width: 700px;
}
.bmc-linea-focos__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 36.02px;
	line-height: 40.7px;
	margin: 0 0 32px;
	color: var(--bmc-text);
}
.bmc-linea-focos__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--bmc-text);
}
.bmc-linea-focos__list li {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding-block: 24px;
	border-bottom: 1px solid var(--bmc-text);
	color: var(--bmc-text);
}
.bmc-linea-focos__numero {
	color: var(--bmc-primary);
	flex-shrink: 0;
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
}
.bmc-linea-focos__list-title {
	display: block;
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	text-decoration: underline;
	margin-bottom: 12px;
}
.bmc-linea-focos__list p {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	margin: 0;
}

/* --------------------------------------------------------------------------
   Línea de investigación · Sección "De la investigación a la práctica"
   (igual que .bmc-linea-focos: título antes del separador, foto izquierda)
   -------------------------------------------------------------------------- */
.bmc-linea-aplicaciones {
	padding-top: 100px;
	padding-bottom: 120px;
}
.bmc-linea-aplicaciones__heading {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	margin: 0 0 32px;
	max-width: 700px;
	color: var(--bmc-text);
}
.bmc-linea-aplicaciones__separator {
	height: 1px;
	background: #D9D9D9;
	margin-bottom: 60px;
}
.bmc-linea-aplicaciones__grid {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 160px;
	align-items: start;
}
.bmc-linea-aplicaciones__media img {
	width: 100%;
	height: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}
.bmc-linea-aplicaciones__right {
	max-width: 700px;
}
.bmc-linea-aplicaciones__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	margin: 0 0 24px;
	color: var(--bmc-text);
}
.bmc-linea-aplicaciones__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--bmc-text);
}
.bmc-linea-aplicaciones__list li {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding-block: 20px;
	border-bottom: 1px solid var(--bmc-text);
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	color: var(--bmc-text);
}
.bmc-linea-aplicaciones__numero {
	color: var(--bmc-primary);
	flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   Línea de investigación · Sección "Proyectos relacionados"
   -------------------------------------------------------------------------- */
.bmc-linea-proyectos {
	padding-top: 100px;
	padding-bottom: 120px;
}
.bmc-linea-proyectos__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 32px;
}
.bmc-linea-proyectos__head .bmc-linea-proyectos__heading { margin-bottom: 0; flex-shrink: 0; }
.bmc-linea-proyectos__head .bmc-btn { flex-shrink: 0; }
.bmc-linea-proyectos__heading {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	margin: 0 0 32px;
	max-width: 700px;
	color: var(--bmc-text);
}
.bmc-linea-proyectos__separator {
	height: 1px;
	background: #D9D9D9;
	margin-bottom: 60px;
}
.bmc-proyecto-card {
	background: var(--bmc-beige);
	border-radius: 6px;
	padding: 32px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	min-height: 400px;
	text-decoration: none;
}
.bmc-proyecto-card__icon {
	width: 44px;
	height: 44px;
}
.bmc-proyecto-card__foto {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 12px;
	margin-bottom: 24px;
	display: block;
}
.bmc-proyecto-card__pretitulo {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 14px;
	line-height: 20px;
	margin: 0 0 16px;
	color: var(--bmc-text);
}
.bmc-proyecto-card__title {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 22px;
	line-height: 27px;
	margin: 0;
	color: var(--bmc-text);
}

/* --------------------------------------------------------------------------
   Línea de investigación · Sección "Nuestra instrumentación científica y tecnológica"
   (igual que .bmc-linea-focos pero invertida: texto izquierda, foto derecha)
   -------------------------------------------------------------------------- */
.bmc-linea-instrumentacion {
	padding-top: 100px;
	padding-bottom: 120px;
}
.bmc-linea-instrumentacion__heading {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	margin: 0 0 32px;
	max-width: 700px;
	color: var(--bmc-text);
}
/* Ancho del título ajustado por página (piden valores distintos por página) */
.page-template-page-linea-lesiones .bmc-linea-instrumentacion__heading { max-width: 900px; }
.page-template-page-linea-biomecanica .bmc-linea-instrumentacion__heading { max-width: 560px; }
.bmc-linea-instrumentacion__separator {
	height: 1px;
	background: #D9D9D9;
	margin-bottom: 60px;
}
.bmc-linea-instrumentacion__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: start;
}
.bmc-linea-instrumentacion__left {
	max-width: 600px;
}
.bmc-linea-instrumentacion__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	margin: 0 0 24px;
	color: var(--bmc-text);
}
.bmc-linea-instrumentacion__list {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	border-top: 1px solid var(--bmc-text);
}
.bmc-linea-instrumentacion__list li {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding-block: 20px;
	border-bottom: 1px solid var(--bmc-text);
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	color: var(--bmc-text);
}
.bmc-linea-instrumentacion__numero {
	color: var(--bmc-primary);
	flex-shrink: 0;
}
.bmc-linea-instrumentacion__media img {
	width: 100%;
	height: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}

/* --------------------------------------------------------------------------
   Quiénes somos · Sección "Nuestra misión"
   -------------------------------------------------------------------------- */
.bmc-mision {
	padding-top: 180px;
	padding-bottom: 120px;
}
.bmc-mision__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: start;
}
.bmc-mision__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	margin: 0 0 48px;
	color: var(--bmc-text);
}
.bmc-mision__media {
	margin-bottom: 40px;
}
.bmc-mision__media img {
	width: 100%;
	max-width: 320px;           /* foto compacta, como en Figma */
	aspect-ratio: 4 / 5;        /* ligeramente vertical */
	object-fit: cover;
	border-radius: 8px;
	display: block;
}
.bmc-mision__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 18.65px;
	line-height: 25.8px;
	margin: 0;
	max-width: 460px;
	color: var(--bmc-text);
}

/* Columna derecha: cards de valores (una por fila) */
.bmc-mision__right {
	display: flex;
	flex-direction: column;
}
.bmc-mision__lead {
	font-family: var(--bmc-font-base);
	font-weight: 500;           /* medium */
	font-size: 18.65px;
	margin: 0 0 24px;
	color: var(--bmc-text);
}
.bmc-mision__list {
	border-top: 1px solid var(--bmc-text);
}
.bmc-valor {
	padding-block: 48px;
	border-bottom: 1px solid var(--bmc-text);
}
.bmc-valor__title {
	font-family: var(--bmc-font-head);
	font-weight: 500;           /* medium */
	font-size: 29.32px;
	line-height: 29.9px;
	text-transform: uppercase;
	margin: 0 0 16px;
	color: var(--bmc-text);
}
.bmc-valor__numero {
	color: var(--bmc-primary);
	margin-right: 16px;
}
.bmc-valor__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	margin: 0;
	max-width: 85%;
	color: var(--bmc-text);
}

/* --------------------------------------------------------------------------
   Quiénes somos · Sección "Líneas principales de investigación" (filas)
   -------------------------------------------------------------------------- */
.bmc-lineas-qs {
	padding-block: 120px;
}
.bmc-lineas-qs__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	margin: 0 0 40px;
	max-width: 620px;
	color: var(--bmc-text);
}
/* Cada fila: icono · título · texto · botón, con separador arriba */
.bmc-lineaqs {
	display: grid;
	grid-template-columns: 80px 0.8fr 1.3fr auto;
	align-items: start;
	gap: 40px;
	padding-block: 48px;
	border-top: 1px solid var(--bmc-black);
}
/* El texto se centra en el hueco entre título y botón */
.bmc-lineaqs__text {
	justify-self: center;
}
.bmc-lineaqs__icon img {
	width: 56px;
	height: 56px;
}
.bmc-lineaqs__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 36.02px;
	line-height: 40.7px;
	margin: 0;
	color: var(--bmc-text);
}
.bmc-lineaqs__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	margin: 0;
	max-width: 560px;
	color: var(--bmc-text);
}
.bmc-lineaqs__cta {
	justify-self: end;
}

/* --------------------------------------------------------------------------
   Quiénes somos · Sección "Enfoque científico y metodología" (foto fondo)
   -------------------------------------------------------------------------- */
.bmc-enfoque {
	background-image: var(--enfoque-bg);
	background-size: cover;
	background-position: center;
	color: var(--bmc-white);
	padding-block: 100px;
}
.bmc-enfoque__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;      /* subtítulo alineado abajo con el título */
	gap: 60px;
	margin-bottom: 400px;       /* espacio antes de las cards (foto de fondo visible) */
}
.bmc-enfoque__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	margin: 0;
	max-width: 700px;
	color: var(--bmc-white);
}
.bmc-enfoque__subtitle {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 18.65px;
	line-height: 25.1px;
	margin: 0;
	max-width: 560px;
	color: var(--bmc-white);
}
/* 4 cards en la misma fila */
.bmc-enfoque__timeline {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	border-top: 1px solid var(--bmc-white);
	margin-bottom: 40px;
}
.bmc-enfoque__timeline-numero {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 22px;
	color: var(--bmc-primary);
	padding-top: 16px;
}
.bmc-enfoque__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	align-items: stretch;
}
.bmc-enfoque-card {
	background: rgba(240, 237, 236, 0.22);  /* beige #F0EDEC ~22% */
	border-radius: 50px;
	padding: 40px;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	/* Subgrid: título y texto comparten filas → misma altura de título en
	   todas las cards, texto alineado, última línea de títulos alineada. */
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 2;
}
.bmc-enfoque__grid { grid-template-rows: auto auto; }
.bmc-enfoque-card__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 28px;
	line-height: 30px;
	text-transform: uppercase;
	align-self: end;            /* título anclado abajo de su fila */
	margin: 0 0 16px;
	max-width: 80%;
	color: var(--bmc-white);
}
.bmc-enfoque-card__numero {
	color: var(--bmc-primary);
	margin-right: 10px;
}
.bmc-enfoque-card__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	margin: 0;
	color: var(--bmc-white);
}

/* --------------------------------------------------------------------------
   Quiénes somos · Sección "Equipo" (título izq. + listing trabajadores der.)
   -------------------------------------------------------------------------- */
.bmc-equipo {
	padding-top: 200px;
	padding-bottom: 120px;
}
.bmc-equipo__grid {
	display: grid;
	grid-template-columns: 0.7fr 2fr;
	gap: 60px;
	align-items: start;
}
.bmc-equipo__intro {
	position: sticky;
	top: 120px;
}
.bmc-equipo__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	margin: 0 0 32px;
	color: var(--bmc-text);
}
.bmc-equipo__subtitle {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 18.65px;
	line-height: 25.1px;
	margin: 0;
	max-width: 420px;
	color: var(--bmc-text);
}
/* Listing de trabajadores agrupado por bloques/departamentos */
.bmc-equipo__list {
	display: flex;
	flex-direction: column;
	gap: 64px;
}
.bmc-equipo__bloque-titulo {
	font-family: var(--bmc-font-head);
	font-weight: 500;           /* medium — igual que el nombre del trabajador */
	font-size: 30.02px;
	line-height: 37.7px;
	text-transform: uppercase;
	margin: 0 0 32px;
	color: var(--bmc-text);
}
.bmc-equipo__grid-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 48px 40px;
}
.bmc-trabajador__media {
	background: var(--bmc-black);   /* placeholder si no hay foto */
	border-radius: 8px;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	margin-bottom: 20px;
}
.bmc-trabajador__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.bmc-trabajador__nombre {
	font-family: var(--bmc-font-head);
	font-weight: 500;           /* medium */
	font-size: 30.02px;
	line-height: 37.7px;
	text-transform: uppercase;
	margin: 0 0 8px;
	color: var(--bmc-text);
}
.bmc-trabajador__cargo {
	font-family: var(--bmc-font-base);
	font-weight: 500;           /* medium */
	font-size: 18.65px;
	line-height: 25.1px;
	margin: 0 0 12px;
	color: var(--bmc-text);
}
.bmc-trabajador__funcion {
	font-family: var(--bmc-font-base);
	font-weight: 400;           /* regular */
	font-size: 16px;
	line-height: 22px;
	margin: 0;
	color: var(--bmc-text);
}

/* --------------------------------------------------------------------------
   Footer: fondo negro, esquinas superiores redondeadas
   -------------------------------------------------------------------------- */
.bmc-footer {
	background: var(--bmc-black);
	color: var(--bmc-white);
	border-radius: 50px 50px 0 0;
	padding-block: 72px;        /* mismo que el lateral (gutter) */
}
.bmc-footer__grid {
	display: grid;
	grid-template-columns: 1fr 1px 1fr;   /* izq · separador · der */
	gap: 80px;
	align-items: stretch;
}

/* Columna izquierda: logo arriba, legales abajo */
.bmc-footer__left {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.bmc-footer__logo img { height: 48px; width: auto; }
.bmc-footer__legal {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.bmc-footer__legal a {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 14px;
	line-height: 24.1px;
	text-transform: uppercase;
	color: var(--bmc-white);
}

/* Separador vertical 1px blanco */
.bmc-footer__sep {
	width: 1px;
	background: rgba(255, 255, 255, 0.4);
}

/* Columna derecha: título + formulario (contenido más estrecho, separador fijo) */
.bmc-footer__right {
	max-width: 550px;
	width: 100%;
	margin-inline: auto;        /* centrado horizontalmente en su columna */
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
}
.bmc-footer__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 36.02px;
	line-height: 40.7px;
	margin: 0 0 40px;
	max-width: 350px;           /* rompe en dos líneas como Figma */
	color: var(--bmc-white);
}
.bmc-footer__form {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.bmc-input {
	background: transparent;
	border: 1px solid #D9D9D9;
	border-radius: 100px;
	padding: 28px;
	font-family: var(--bmc-font-base);
	font-size: 16.95px;
	color: var(--bmc-white);
	width: 100%;
}
.bmc-input::placeholder {
	color: rgba(255, 255, 255, 0.3);
	font-weight: 400;
	font-size: 16.95px;
	text-transform: uppercase;
}
.bmc-input--textarea {
	border-radius: 50px;
	resize: none;               /* bloqueado: sin ampliación manual */
}
.bmc-footer__form-actions {
	display: flex;
	justify-content: flex-end;
}
.bmc-footer__form-aviso {
	font-family: var(--bmc-font-base);
	font-size: 14px;
	padding: 14px 18px;
	border-radius: 10px;
	margin: 0 0 20px;
}
.bmc-footer__form-aviso--ok {
	background: rgba(255, 255, 255, 0.12);
	color: var(--bmc-white);
}
.bmc-footer__form-aviso--error {
	background: rgba(255, 99, 49, 0.15);
	color: var(--bmc-primary);
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 900px) {
	.bmc-nav { display: none; }
	.bmc-nav-toggle { display: flex; }
	/* En móvil la franja difuminada ocupa todo el ancho para legibilidad */
	.bmc-hero__blur { clip-path: none; }
	.bmc-hero__content {
		left: 32px;
		bottom: 48px;
		max-width: calc(100% - 64px);
	}
	.bmc-hero__title { font-size: 44px; line-height: 50px; }
	/* En móvil el subtítulo pasa a flujo normal bajo el título */
	.bmc-hero__intro {
		position: static;
		width: auto;
		max-width: none;
		margin: 24px 32px 0;
	}
}

/* --------------------------------------------------------------------------
   Artículo individual (single.php)
   -------------------------------------------------------------------------- */
.bmc-single {
	padding-top: 64px;
}
.bmc-single__back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--bmc-font-base);
	font-weight: 500;
	font-size: 15px;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--bmc-text);
	margin-bottom: 32px;
}
.bmc-single__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 52px;
	line-height: 58px;
	max-width: 900px;
	margin: 0 0 32px;
	color: var(--bmc-text);
}
.bmc-single__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 40px;
}
.bmc-single__date {
	font-family: var(--bmc-font-base);
	font-weight: 500;
	font-size: 15.02px;
	text-transform: uppercase;
	color: var(--bmc-text);
}
.bmc-single__intro {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: start;
	margin-bottom: 80px;
}
.bmc-single__media {
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	background-size: cover;
	background-position: center;
}
.bmc-single__excerpt {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 28px;
	line-height: 36px;
	color: var(--bmc-text);
}
.bmc-single__excerpt p {
	margin: 0;
}

.bmc-single__body {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 80px;
	max-width: 1460px;
	margin-inline: auto;
}
.bmc-single__sidebar {
	position: sticky;
	top: 40px;
	align-self: start;
}
.bmc-single__author-photo {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
	margin-bottom: 12px;
	display: block;
}
.bmc-single__author-name {
	font-family: var(--bmc-font-base);
	font-weight: 500;
	font-size: 14px;
	text-transform: uppercase;
	line-height: 1.4;
	margin: 0 0 32px;
	color: var(--bmc-text);
}
.bmc-single__share {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.bmc-single__share-icon {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--bmc-text);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--bmc-text);
	transition: background .2s ease, color .2s ease;
}
.bmc-single__share-icon:hover {
	background: var(--bmc-text);
	color: var(--bmc-white);
}

.bmc-single__content {
	max-width: 780px;
}
.bmc-single__content h2 {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 36px;
	line-height: 42px;
	margin: 0 0 24px;
	padding-top: 40px;
	border-top: 1px solid #D9D9D9;
	color: var(--bmc-text);
}
.bmc-single__content > *:first-child {
	padding-top: 0;
	border-top: none;
}
.bmc-single__content p {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 17px;
	line-height: 26px;
	margin: 0 0 24px;
	color: var(--bmc-text);
}
.bmc-single__content ul,
.bmc-single__content ol {
	margin: 0 0 24px;
	padding-left: 22px;
	font-family: var(--bmc-font-base);
	font-size: 17px;
	line-height: 26px;
	color: var(--bmc-text);
}
.bmc-single__content li {
	margin-bottom: 8px;
}
.bmc-single__content img {
	width: 100%;
	border-radius: 8px;
	margin: 16px 0 40px;
	display: block;
}

.bmc-single__nav {
	margin-top: 80px;
	border-top: 1px solid #D9D9D9;
}
.bmc-single__nav-inner {
	display: flex;
	justify-content: space-between;
}
.bmc-single__nav-link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 32px 0;
	font-family: var(--bmc-font-base);
	font-weight: 500;
	font-size: 15px;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--bmc-text);
}
.bmc-single__nav-link--prev {
	border-right: 1px solid #D9D9D9;
	padding-right: 40px;
}
.bmc-single__nav-link--next {
	padding-left: 40px;
}
.bmc-single__nav-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--bmc-text);
}

@media (max-width: 900px) {
	.bmc-single__intro,
	.bmc-single__body {
		grid-template-columns: 1fr;
	}
	.bmc-single__sidebar {
		position: static;
		display: flex;
		align-items: center;
		gap: 16px;
		margin-bottom: 40px;
	}
	.bmc-single__author-photo,
	.bmc-single__author-name {
		margin-bottom: 0;
	}
}

/* --------------------------------------------------------------------------
   Archivo de publicaciones
   -------------------------------------------------------------------------- */
.bmc-pub-hero {
	background: var(--bmc-black);
	color: var(--bmc-white);
	padding-block: 180px 96px;
	position: relative;
}
.bmc-pub-hero__inner {
	position: relative;
}
.bmc-pub-hero__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67.2px;
	line-height: 76px;
	max-width: 700px;
	margin: 24px 0 0;
	color: var(--bmc-white);
}
.bmc-pub-hero__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	max-width: 500px;
	margin: 120px 0 0;
	color: var(--bmc-white);
}
.bmc-pub-hero__media {
	position: absolute;
	right: 40px;
	bottom: 0;
	width: 340px;
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
}
.bmc-pub-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.bmc-pub-archive {
	padding-block: 80px 120px;
}
.bmc-pub-archive__filtros {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 56px;
}
.bmc-pub-archive__selects {
	display: flex;
	gap: 16px;
}
.bmc-pub-archive__select {
	font-family: var(--bmc-font-base);
	font-size: 16px;
	color: var(--bmc-text);
	border: 1px solid #D9D9D9;
	border-radius: 100px;
	padding: 12px 20px;
	background: var(--bmc-white);
	min-width: 180px;
}
.bmc-pub-archive__buscar {
	display: flex;
	align-items: center;
	border: 1px solid #D9D9D9;
	border-radius: 100px;
	padding: 8px 20px;
	gap: 12px;
	min-width: 260px;
}
.bmc-pub-archive__buscar input {
	border: none;
	outline: none;
	font-family: var(--bmc-font-base);
	font-size: 16px;
	flex: 1;
}
.bmc-pub-archive__buscar button {
	background: none;
	border: none;
	color: var(--bmc-text);
	cursor: pointer;
	display: flex;
}
.bmc-pub-archive__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

@media (max-width: 900px) {
	.bmc-pub-hero__media { display: none; }
	.bmc-pub-hero__text { margin-top: 40px; }
	.bmc-pub-archive__filtros { flex-direction: column; align-items: stretch; }
	.bmc-pub-archive__grid { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Página de Contacto
   -------------------------------------------------------------------------- */
.page-template-page-contacto-php {
	background: var(--bmc-beige);
}
.bmc-contacto {
	background: var(--bmc-beige);
	padding-block: 96px;
}
.bmc-contacto__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: start;
}
.bmc-contacto__col {
	display: flex;
	flex-direction: column;
	gap: 32px;
}
.bmc-badge--dark-orange {
	background: var(--bmc-black);
	color: var(--bmc-primary);
}
.bmc-contacto__intro .bmc-badge {
	margin-bottom: 32px;
}
.bmc-contacto__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67px;
	line-height: 76px;
	margin: 0 0 32px;
	color: var(--bmc-text);
}
.bmc-contacto__text {
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 18.65px;
	line-height: 25.1px;
	max-width: 480px;
	margin: 0 0 64px;
	color: var(--bmc-text);
}
.bmc-contacto__figura {
	width: 440px;
	height: auto;
	opacity: 0.9;
}

.bmc-contacto__panel {
	background: var(--bmc-white);
	border-radius: 20px;
	padding: 48px;
}
.bmc-contacto__aviso {
	font-family: var(--bmc-font-base);
	font-size: 15px;
	padding: 16px 20px;
	border-radius: 10px;
	margin: 0 0 24px;
}
.bmc-contacto__aviso--ok {
	background: #E5F5E9;
	color: #1A7A34;
}
.bmc-contacto__aviso--error {
	background: #FBE6E2;
	color: #B3261E;
}
.bmc-contacto__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.bmc-field {
	display: block;
	margin-bottom: 24px;
}
.bmc-field__label {
	display: block;
	font-family: var(--bmc-font-base);
	font-weight: 400;
	font-size: 10px;
	color: rgba(34, 34, 34, 0.65);
	margin-bottom: 8px;
}
.bmc-field__input {
	width: 100%;
	background: transparent;
	border: 1px solid #D9D9D9;
	border-radius: 12px;
	padding: 16px;
	font-family: var(--bmc-font-base);
	font-size: 15px;
	color: var(--bmc-text);
}
.bmc-field__input--textarea {
	border-radius: 16px;
	resize: none;
}
.bmc-field__input::placeholder {
	color: rgba(34, 34, 34, 0.45);
}
.bmc-contacto__actions {
	display: flex;
	justify-content: flex-end;
}

.bmc-contacto__datos {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.bmc-contacto__datos a {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 24px;
	color: var(--bmc-text);
	text-decoration: none;
}

@media (max-width: 900px) {
	.bmc-contacto__grid { grid-template-columns: 1fr; }
	.bmc-contacto__row { grid-template-columns: 1fr; }
	.bmc-contacto__figura { display: none; }
}

/* ==========================================================================
   Colaboradores · Mapa interactivo mundial
   Estética: observatorio nocturno. Fondo negro, continentes en gris tenue,
   nodos naranjas conectados por hilos de luz al nodo central de Murcia.
   ========================================================================== */
.bmc-mapa {
	background: var(--bmc-black);
	color: var(--bmc-white);
	padding-top: 150px;
	position: relative;
	overflow: hidden;
}
.bmc-mapa__head {
	position: relative;
	z-index: 3;
	margin-bottom: 8px;
}
.bmc-mapa__head .bmc-badge { margin-bottom: 20px; }
.bmc-mapa__title {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 67px;
	line-height: 1.05;
	margin: 0;
	color: var(--bmc-white);
	text-transform: uppercase;
	letter-spacing: -0.01em;
}

/* Escenario del mapa */
.bmc-mapa__stage {
	position: relative;
	margin-top: 24px;
	height: 68vh;
	min-height: 520px;
	cursor: grab;
}
.bmc-mapa__stage.is-dragging { cursor: grabbing; }
.bmc-mapa__viewport {
	position: absolute;
	inset: 0;
	overflow: hidden;
}
.bmc-mapa__canvas {
	position: absolute;
	inset: 0;
	/* El zoom/pan es vectorial (viewBox de los SVG), no CSS scale: el mapa
	   se mantiene nítido a cualquier nivel de zoom. */
}
.bmc-mapa__world,
.bmc-mapa__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
/* SVG base del mundo: continentes en gris muy tenue con borde sutil */
.bmc-mapa__world svg {
	width: 100%;
	height: 100%;
	display: block;
}
.bmc-mapa__world svg path {
	fill: #17181b;
	stroke: #2b2d31;
	stroke-width: 0.4;
	vector-effect: non-scaling-stroke;
	transition: fill .4s ease;
}

/* Líneas de conexión: hilos naranjas muy sutiles */
.bmc-mapa__line {
	fill: none;
	stroke: var(--bmc-primary);
	stroke-width: 0.6;
	opacity: 0.22;
	vector-effect: non-scaling-stroke;
	stroke-linecap: round;
	transition: opacity .35s ease, stroke-width .35s ease;
}
.bmc-mapa__overlay.is-dimmed .bmc-mapa__line { opacity: 0.06; }
.bmc-mapa__line.is-hi {
	opacity: 0.85;
	stroke-width: 1.1;
}

/* Nodos */
.bmc-mapa__node { cursor: pointer; outline: none; }
.bmc-mapa__node-halo {
	fill: var(--bmc-primary);
	opacity: 0.14;
	transition: opacity .3s ease, r .3s ease;
}
.bmc-mapa__node-dot {
	fill: var(--bmc-primary);
	stroke: var(--bmc-black);
	stroke-width: 0.6;
	vector-effect: non-scaling-stroke;
	transition: r .25s ease;
}
.bmc-mapa__node.is-active .bmc-mapa__node-halo,
.bmc-mapa__node:hover .bmc-mapa__node-halo {
	opacity: 0.4;
}
.bmc-mapa__overlay.is-dimmed .bmc-mapa__node { opacity: 0.35; }
.bmc-mapa__overlay.is-dimmed .bmc-mapa__node.is-active { opacity: 1; }

/* Nodo central de Murcia: blanco con pulso naranja */
.bmc-mapa__node-central-dot {
	fill: var(--bmc-white);
	stroke: var(--bmc-primary);
	stroke-width: 1.2;
	vector-effect: non-scaling-stroke;
}
.bmc-mapa__node-pulse {
	fill: none;
	stroke: var(--bmc-primary);
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
	transform-origin: center;
	transform-box: fill-box;
	animation: bmc-pulse 2.6s ease-out infinite;
}
@keyframes bmc-pulse {
	0%   { transform: scale(1);   opacity: 0.8; }
	100% { transform: scale(4.5); opacity: 0;   }
}

/* Nodos por categoría (color del punto según tipo) */
.bmc-mapa__node[data-cat="club"] .bmc-mapa__node-dot,
.bmc-mapa__line[data-cat="club"] { stroke: #ffb38a; }
.bmc-mapa__node[data-cat="club"] .bmc-mapa__node-dot,
.bmc-mapa__node[data-cat="club"] .bmc-mapa__node-halo { fill: #ffb38a; }
.bmc-mapa__node[data-cat="tecnologia"] .bmc-mapa__node-dot,
.bmc-mapa__node[data-cat="tecnologia"] .bmc-mapa__node-halo { fill: #ffd8c2; }
.bmc-mapa__line[data-cat="tecnologia"] { stroke: #ffd8c2; }
.bmc-mapa__node[data-cat="federacion"] .bmc-mapa__node-dot,
.bmc-mapa__node[data-cat="federacion"] .bmc-mapa__node-halo { fill: #ff8552; }
.bmc-mapa__line[data-cat="federacion"] { stroke: #ff8552; }

/* Tarjeta flotante de info */
.bmc-mapa__tip {
	position: absolute;
	z-index: 5;
	width: 260px;
	background: rgba(20, 20, 22, 0.92);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 14px;
	padding: 18px 20px;
	pointer-events: none;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
}
.bmc-mapa__tip-cat {
	display: inline-block;
	font-size: 10px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bmc-primary);
	margin-bottom: 8px;
}
.bmc-mapa__tip-name {
	font-family: var(--bmc-font-head);
	font-size: 17px;
	line-height: 1.25;
	margin: 0 0 4px;
	color: var(--bmc-white);
}
.bmc-mapa__tip-pais {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.5);
	margin: 0;
}
.bmc-mapa__tip-tipo {
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--bmc-primary);
	margin: 10px 0 0;
}
.bmc-mapa__tip-personas {
	list-style: none;
	margin: 12px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.bmc-mapa__tip-personas li {
	font-size: 12.5px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.75);
}

/* Controles de zoom */
.bmc-mapa__controls {
	position: absolute;
	right: var(--bmc-gutter);
	bottom: 32px;
	z-index: 4;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.bmc-mapa__ctrl {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.18);
	background: rgba(255, 255, 255, 0.04);
	color: var(--bmc-white);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition: background .2s ease, border-color .2s ease;
}
.bmc-mapa__ctrl:hover {
	background: var(--bmc-primary);
	border-color: var(--bmc-primary);
	color: var(--bmc-black);
}
.bmc-mapa__ctrl--reset { font-size: 0; }

/* Leyenda */
.bmc-mapa__leyenda {
	position: absolute;
	left: var(--bmc-gutter);
	bottom: 32px;
	z-index: 4;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	max-width: 60%;
}
.bmc-mapa__leyenda-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.65);
}
.bmc-mapa__leyenda-item i {
	width: 9px; height: 9px; border-radius: 50%;
	background: var(--bmc-primary);
	display: inline-block;
	flex-shrink: 0;
}
.bmc-mapa__leyenda-item--central i { background: var(--bmc-white); box-shadow: 0 0 0 2px var(--bmc-primary); }
.bmc-mapa__leyenda-item[data-cat="club"] i { background: #ffb38a; }
.bmc-mapa__leyenda-item[data-cat="tecnologia"] i { background: #ffd8c2; }
.bmc-mapa__leyenda-item[data-cat="federacion"] i { background: #ff8552; }

/* ==========================================================================
   Colaboradores · Listado por categorías
   ========================================================================== */
.bmc-colab-lista {
	background: var(--bmc-bg);
	padding-block: 120px;
}
.bmc-colab-bloque {
	padding-block: 56px;
	border-top: 1px solid var(--bmc-text);
	display: grid;
	grid-template-columns: 340px 1fr;
	gap: 60px;
	align-items: start;
}
.bmc-colab-bloque:last-child { border-bottom: 1px solid var(--bmc-text); }
.bmc-colab-bloque__head {
	display: flex;
	gap: 20px;
	align-items: baseline;
	position: sticky;
	top: 40px;
}
.bmc-colab-bloque__num {
	font-family: var(--bmc-font-head);
	font-size: 22px;
	color: var(--bmc-primary);
}
.bmc-colab-bloque__titulo {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 28px;
	line-height: 1.1;
	margin: 0;
	color: var(--bmc-text);
}
.bmc-colab-bloque__items {
	list-style: none;
	margin: 0;
	padding: 0;
}
.bmc-colab-item {
	padding-block: 20px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.bmc-colab-item:first-child { padding-top: 0; }
.bmc-colab-item__main {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
}
.bmc-colab-item__nombre {
	font-family: var(--bmc-font-base);
	font-weight: 500;
	font-size: 18.65px;
	color: var(--bmc-text);
}
.bmc-colab-item__pais {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--bmc-text-muted);
	white-space: nowrap;
	flex-shrink: 0;
}
.bmc-colab-item__personas {
	margin: 8px 0 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--bmc-text-muted);
	max-width: 90%;
}
.bmc-colab-item__tipo {
	margin: 6px 0 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--bmc-primary);
	max-width: 90%;
}

/* Impacto de las alianzas */
.bmc-colab-impacto {
	background: var(--bmc-bg-alt);
	padding-block: 120px;
}
.bmc-colab-impacto__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: start;
}
.bmc-colab-impacto__intro .bmc-badge { margin-bottom: 24px; }
.bmc-colab-impacto__titulo {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 52px;
	line-height: 1.05;
	margin: 0;
	color: var(--bmc-text);
}
.bmc-colab-impacto__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--bmc-text);
}
.bmc-colab-impacto__list li {
	display: flex;
	gap: 20px;
	padding-block: 24px;
	border-bottom: 1px solid var(--bmc-text);
	font-size: 17px;
	line-height: 1.5;
	color: var(--bmc-text);
}
.bmc-colab-impacto__num {
	font-family: var(--bmc-font-head);
	color: var(--bmc-primary);
	flex-shrink: 0;
}

/* Llamada final */
.bmc-colab-cta {
	background: var(--bmc-black);
	color: var(--bmc-white);
	padding-block: 120px;
}
.bmc-colab-cta__inner {
	text-align: center;
	max-width: 760px;
	margin-inline: auto;
}
.bmc-colab-cta__titulo {
	font-family: var(--bmc-font-head);
	font-weight: 400;
	font-size: 60px;
	line-height: 1.02;
	margin: 0 0 24px;
	color: var(--bmc-white);
	text-transform: uppercase;
}
.bmc-colab-cta__texto {
	font-size: 18.65px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.7);
	margin: 0 0 40px;
}

@media (max-width: 900px) {
	.bmc-mapa__title { font-size: 40px; }
	.bmc-mapa__leyenda { position: static; max-width: none; padding: 20px var(--bmc-gutter) 0; }
	.bmc-mapa__stage { height: 60vh; }
	.bmc-colab-bloque { grid-template-columns: 1fr; gap: 24px; }
	.bmc-colab-bloque__head { position: static; }
	.bmc-colab-impacto__grid { grid-template-columns: 1fr; gap: 40px; }
	.bmc-colab-impacto__titulo,
	.bmc-colab-cta__titulo { font-size: 38px; }
	.bmc-colab-item__main { flex-direction: column; gap: 4px; }
}

/* ==========================================================================
   RESPONSIVE · PÁGINA DE INICIO (Home)
   ---------------------------------------------------------------------------
   Capa aditiva: SOLO media queries max-width, de escritorio hacia abajo.
   No modifica ninguna regla base (la versión escritorio queda intacta).
   Breakpoints: portátil ≤1280 · tablet ≤1024 · móvil ≤640 · móvil pequeño ≤400
   El menú overlay se apoya en el bloque existente @media (max-width:900px)
   que ya oculta .bmc-nav y muestra .bmc-nav-toggle.
   ========================================================================== */

/* ---------- Portátil (≤1280px) ---------- */
@media (max-width: 1280px) {
	:root { --bmc-gutter: 48px; }

	.bmc-hero__title { font-size: 54px; line-height: 60px; }
	.bmc-hero__content { width: 620px; }
	.bmc-hero__intro { width: 460px; }
	.bmc-hero__financiacion-logo { height: 34px; }
	.bmc-hero__financiacion-texto { font-size: 10.5px; line-height: 14px; max-width: 340px; }

	/* Títulos grandes de sección */
	.bmc-lineas__title,
	.bmc-divulgacion__title,
	.bmc-proyectos__title { font-size: 52px; line-height: 58px; }

	/* Fila de líneas: la columna de la flecha se estrecha */
	.bmc-linea { grid-template-columns: 64px minmax(0, 1fr) auto 300px; column-gap: 36px; }

	/* Slider: 2 tarjetas visibles */
	.bmc-slider__slide { flex: 0 0 calc((100% - 48px) / 2); }

	/* Footer: separador y gap ligeramente reducidos */
	.bmc-footer__grid { gap: 56px; }
	.bmc-footer__right { max-width: 480px; }
}

/* ---------- Tablet (≤1024px) ---------- */
@media (max-width: 1024px) {
	:root { --bmc-gutter: 40px; }

	.bmc-objetivo,
	.bmc-lineas,
	.bmc-divulgacion,
	.bmc-proyectos { padding-block: 88px; }

	/* Objetivo: badge encima del texto */
	.bmc-objetivo__grid { grid-template-columns: 1fr; gap: 24px; }
	.bmc-objetivo__text { max-width: none; }

	/* Líneas: la fila deja de ser rejilla de 4 columnas.
	   Número + contenido arriba; ámbitos debajo; se oculta la flecha
	   (que solo tenía sentido como separador horizontal en escritorio). */
	.bmc-linea {
		grid-template-columns: 64px minmax(0, 1fr);
		column-gap: 28px;
		row-gap: 24px;
	}
	.bmc-linea__flecha { display: none; }
	.bmc-linea__ambitos { grid-column: 2 / 3; }

	/* Divulgación: cabecera apilada (título/subtítulo y botón debajo) */
	.bmc-divulgacion__head { flex-direction: column; align-items: flex-start; gap: 28px; margin-bottom: 48px; }

	/* Divulgación: tarjetas apiladas en vertical (sin carrusel) ya en tablet */
	.bmc-slider { overflow: visible; }
	.bmc-slider__track {
		flex-direction: column;
		overflow-x: visible;
		gap: 28px;
		scroll-snap-type: none;
	}
	.bmc-slider__slide { flex: 1 1 auto; width: 100%; }

	/* Proyectos: una columna con la FOTO ARRIBA y el contenido debajo */
	.bmc-proyectos__grid { grid-template-columns: 1fr; gap: 36px; }
	.bmc-proyectos__media { order: -1; }
	.bmc-proyectos__media img { aspect-ratio: 16 / 10; height: auto; }

	/* Footer: una columna, sin separador vertical. El formulario mantiene un
	   ancho máximo para no estirarse a todo lo ancho del viewport. */
	.bmc-footer { padding-block: 64px; }
	.bmc-footer__grid { grid-template-columns: 1fr; gap: 48px; }
	.bmc-footer__sep { display: none; }
	.bmc-footer__right { max-width: 560px; margin-inline: 0; }
	.bmc-footer__title { max-width: none; }
}

/* ---------- Hero en columna (≤900px) ----------
   En escritorio el hero posiciona título e intro en absoluto (esquinas).
   En tablet/móvil eso provoca solape con el header. Aquí lo reconvertimos
   en una columna en flujo normal: título arriba, intro debajo, con espacio
   para el header superpuesto. Anula el bloque original de 900px (va después). */
@media (max-width: 900px) {
	.bmc-hero {
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		min-height: 88vh;
		min-height: 88dvh;
		padding: 140px var(--bmc-gutter) 56px;
	}
	.bmc-hero__blur { clip-path: none; opacity: 0.55; }
	.bmc-hero__content {
		position: static;
		width: auto;
		max-width: none;
		left: auto; bottom: auto;
		margin: 0 0 28px;
	}
	.bmc-hero__intro {
		position: static;
		width: auto;
		max-width: none;
		right: auto; bottom: auto;
		margin: 0;
	}
	.bmc-hero__title { font-size: 40px; line-height: 46px; }
	.bmc-hero__financiacion { margin-bottom: 20px; }
	.bmc-hero__financiacion-logo { height: 30px; }
	.bmc-hero__financiacion-texto { font-size: 10px; line-height: 13px; max-width: none; }
}

/* ---------- Menú overlay a pantalla completa (tablet/móvil, ≤900px) ----------
   Reutiliza el punto donde .bmc-nav-toggle ya es visible. */
@media (max-width: 900px) {
	/* Hamburguesa blanca sobre el hero (header superpuesto, no-light);
	   negra cuando la cabecera es clara (--light) o beige. */
	.bmc-header:not(.bmc-header--light) .bmc-nav-toggle span { background: var(--bmc-white); }
	.bmc-nav-toggle {
		position: relative;
		z-index: 30;
	}
	.bmc-nav-toggle span { transition: transform .3s ease, opacity .2s ease; }

	/* Toggle en cruz al abrir */
	body.bmc-nav-open .bmc-nav-toggle span { background: var(--bmc-white); }
	body.bmc-nav-open .bmc-nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	body.bmc-nav-open .bmc-nav-toggle span:nth-child(2) { opacity: 0; }
	body.bmc-nav-open .bmc-nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

	/* Overlay: se muestra solo cuando body.bmc-nav-open.
	   Gana especificidad al `.bmc-nav { display:none }` del bloque de arriba. */
	body.bmc-nav-open .bmc-nav {
		display: flex;
		position: fixed;
		inset: 0;
		z-index: 20;
		margin: 0;
		background: var(--bmc-black);
		flex-direction: column;
		justify-content: center;
		padding: 96px var(--bmc-gutter) 48px;
		overflow-y: auto;
		animation: bmc-nav-fade .25s ease both;
	}
	body.bmc-nav-open { overflow: hidden; }

	body.bmc-nav-open .bmc-nav__list {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		width: 100%;
	}
	body.bmc-nav-open .bmc-nav__list > li { width: 100%; border-bottom: 1px solid rgba(255,255,255,.12); }
	body.bmc-nav-open .bmc-nav__list a {
		color: var(--bmc-white);
		font-size: 26px;
		line-height: 1.4;
		padding-block: 16px;
		display: block;
	}

	/* Submenú Investigación como acordeón (cerrado por defecto) */
	body.bmc-nav-open .bmc-nav__sub {
		position: static;
		display: none;
		opacity: 1;
		transform: none;
		background: none;
		box-shadow: none;
		border-radius: 0;
		padding: 0 0 12px 16px;
		min-width: 0;
	}
	body.bmc-nav-open .bmc-nav__has-sub.is-open .bmc-nav__sub { display: block; }
	body.bmc-nav-open .bmc-nav__sub a {
		font-size: 15px;
		line-height: 1.4;
		white-space: normal;    /* la base hereda nowrap (menú de escritorio); en el overlay móvil los títulos largos deben poder partir línea */
		color: rgba(255,255,255,.75);
		padding-block: 10px;
		border: 0;
	}
	/* Flecha indicadora del acordeón */
	body.bmc-nav-open .bmc-nav__has-sub > a::after {
		content: '';
		display: inline-block;
		width: 10px; height: 10px;
		margin-left: 12px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg);
		transition: transform .25s ease;
		vertical-align: middle;
	}
	body.bmc-nav-open .bmc-nav__has-sub.is-open > a::after { transform: rotate(-135deg); }
}

@keyframes bmc-nav-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* ---------- Móvil (≤640px) ---------- */
@media (max-width: 640px) {
	:root { --bmc-gutter: 22px; }

	/* Hero */
	.bmc-hero__title { font-size: 34px; line-height: 40px; }
	.bmc-hero__content { left: var(--bmc-gutter); bottom: 40px; max-width: calc(100% - (2 * var(--bmc-gutter))); }
	.bmc-hero__intro { margin: 20px var(--bmc-gutter) 0; gap: 16px; }
	.bmc-hero__intro-text { font-size: 16px; line-height: 22px; }
	.bmc-hero__financiacion { margin-bottom: 16px; }
	.bmc-hero__financiacion-logo { height: 26px; padding: 3px 6px; }
	.bmc-hero__financiacion-texto { font-size: 9.5px; line-height: 12.5px; }

	/* Espaciado general de secciones */
	.bmc-objetivo,
	.bmc-lineas,
	.bmc-divulgacion,
	.bmc-proyectos { padding-block: 64px; }

	/* Títulos de sección */
	.bmc-lineas__title,
	.bmc-divulgacion__title,
	.bmc-proyectos__title { font-size: 32px; line-height: 37px; }
	.bmc-objetivo__title { font-size: 26px; line-height: 31px; }

	/* Objetivo */
	.bmc-objetivo__subtitle { font-size: 16px; }

	/* Líneas: número y contenido apilados a una sola columna */
	.bmc-linea {
		grid-template-columns: 1fr;
		row-gap: 16px;
		padding-block: 40px;
	}
	.bmc-linea__ambitos { grid-column: 1 / -1; }
	.bmc-linea__numero { font-size: 28px; line-height: 32px; }
	.bmc-linea__title { font-size: 26px; line-height: 30px; }

	/* Divulgación: tarjetas apiladas en vertical (sin carrusel) */
	.bmc-divulgacion__subtitle { font-size: 16px; line-height: 22px; }
	.bmc-slider { overflow: visible; }
	.bmc-slider__track {
		flex-direction: column;
		overflow-x: visible;
		gap: 24px;
		scroll-snap-type: none;
	}
	.bmc-slider__slide { flex: 1 1 auto; width: 100%; }
	/* En Home, en móvil solo se muestra la primera card de blog (el resto se
	   ven en /blog/). Escopado a .bmc-divulgacion para no afectar a los
	   sliders de "Proyectos"/"Publicaciones" en las páginas de línea. */
	.bmc-divulgacion .bmc-slider__slide ~ .bmc-slider__slide { display: none; }
	.bmc-blogcard { padding: 24px; }
	.bmc-blogcard__title { font-size: 26px; line-height: 30px; }
	.bmc-blogcard__text { font-size: 16px; line-height: 22px; }

	/* Proyectos */
	.bmc-proyectos__text { font-size: 16px; line-height: 22px; }

	/* Footer */
	.bmc-footer { border-radius: 32px 32px 0 0; padding-block: 56px; }
	.bmc-footer__title { font-size: 28px; line-height: 32px; }
	.bmc-footer__form { gap: 16px; }
	.bmc-input { padding: 20px 24px; font-size: 15px; }
	.bmc-footer__form-actions { justify-content: stretch; }
	.bmc-footer__form-actions .bmc-btn { width: 100%; }
	/* En escritorio el espacio entre logo y legales lo da space-between
	   sobre la altura completa de la columna; en móvil (1 columna, altura
	   automática) eso colapsa y quedan pegados. Separación explícita. */
	.bmc-footer__legal { margin-top: 32px; }

	/* Logo un poco menor */
	.bmc-logo__img { height: 40px; }
	.bmc-footer__logo img { height: 40px; }
}

/* ---------- Móvil pequeño (≤400px) ---------- */
@media (max-width: 400px) {
	.bmc-hero__title { font-size: 30px; line-height: 35px; }
	.bmc-lineas__title,
	.bmc-divulgacion__title,
	.bmc-proyectos__title { font-size: 28px; line-height: 33px; }
}

/* ==========================================================================
   RESPONSIVE · PÁGINA "QUIÉNES SOMOS"
   ---------------------------------------------------------------------------
   Capa aditiva (solo max-width). No modifica ninguna regla base de escritorio.
   Secciones: hero · misión · líneas · enfoque · equipo.
   Norma: en las secciones de foto+contenido, la FOTO va arriba.
   ========================================================================== */

/* ---------- Portátil (≤1280px) ---------- */
@media (max-width: 1280px) {
	.bmc-mision__title,
	.bmc-lineas-qs__title,
	.bmc-enfoque__title,
	.bmc-equipo__title { font-size: 52px; line-height: 58px; }

	/* Enfoque: el margen inferior gigante de escritorio (400px, hueco para el
	   fondo) se reduce; timeline y cards a 2 columnas */
	.bmc-enfoque__head { margin-bottom: 60px; }
	.bmc-enfoque__timeline { grid-template-columns: repeat(2, 1fr); row-gap: 12px; }
	.bmc-enfoque__grid { grid-template-columns: repeat(2, 1fr); }

	/* Líneas QS: la flecha/columna del botón se estrecha */
	.bmc-lineaqs { grid-template-columns: 64px 0.9fr 1.4fr auto; gap: 28px; }
}

/* ---------- Tablet (≤1024px) ---------- */
@media (max-width: 1024px) {
	.bmc-qs-hero { min-height: 0; }
	/* Hero: una columna. Contenido arriba, logo debajo (más pequeño). */
	.bmc-qs-hero__inner { grid-template-columns: 1fr; gap: 40px; }
	.bmc-qs-hero__content { padding-block: 140px 48px; }
	.bmc-qs-hero__media { order: 2; }
	.bmc-qs-hero__media img { max-width: 300px; }

	/* Misión: una columna. FOTO ARRIBA, luego título y texto, luego la lista. */
	.bmc-mision { padding-top: 88px; padding-bottom: 88px; }
	.bmc-mision__grid { grid-template-columns: 1fr; gap: 48px; }
	.bmc-mision__left { display: flex; flex-direction: column; }
	.bmc-mision__media { order: -1; margin-bottom: 32px; }
	.bmc-mision__media img { max-width: 360px; }
	.bmc-mision__title { margin-bottom: 32px; }
	.bmc-mision__text { max-width: none; }
	.bmc-valor__text { max-width: none; }

	/* Líneas QS: cada fila apila icono/título/texto/botón en columna */
	.bmc-lineas-qs { padding-block: 88px; }
	.bmc-lineaqs {
		grid-template-columns: 1fr;
		gap: 20px;
		padding-block: 40px;
	}
	.bmc-lineaqs__text { justify-self: start; max-width: none; }
	.bmc-lineaqs__cta { justify-self: start; }

	/* Enfoque: head apilado; timeline oculta (los números iban sobre subgrid,
	   pierden sentido apilados) y cada card a una columna */
	.bmc-enfoque { padding-block: 72px; }
	.bmc-enfoque__head { flex-direction: column; align-items: flex-start; gap: 24px; margin-bottom: 40px; }
	.bmc-enfoque__timeline { display: none; }
	.bmc-enfoque__grid { grid-template-columns: 1fr; gap: 20px; }
	.bmc-enfoque-card {
		display: block;               /* anula subgrid */
		grid-row: auto;
		border-radius: 28px;
		padding: 32px;
	}

	/* Equipo: una columna (intro deja de ser sticky), tarjetas a 2 columnas */
	.bmc-equipo { padding-top: 96px; padding-bottom: 88px; }
	.bmc-equipo__grid { grid-template-columns: 1fr; gap: 40px; }
	.bmc-equipo__intro { position: static; top: auto; }
	.bmc-equipo__subtitle { max-width: none; }
	.bmc-equipo__grid-cards { grid-template-columns: repeat(2, 1fr); gap: 40px 32px; }
}

/* ---------- Móvil (≤640px) ---------- */
@media (max-width: 640px) {
	/* Hero */
	.bmc-qs-hero__content { padding-block: 120px 40px; }
	.bmc-qs-hero__title { font-size: 32px; line-height: 38px; margin: 28px 0 auto; }
	.bmc-qs-hero__subtitle { font-size: 16px; line-height: 22px; margin-top: 28px; }
	.bmc-qs-hero__media img { max-width: 220px; }

	/* Títulos de sección */
	.bmc-mision__title,
	.bmc-lineas-qs__title,
	.bmc-enfoque__title,
	.bmc-equipo__title { font-size: 32px; line-height: 37px; }

	/* Misión */
	.bmc-mision__media img { max-width: 100%; }
	.bmc-mision__text,
	.bmc-mision__lead { font-size: 16px; line-height: 22px; }
	.bmc-valor { padding-block: 32px; }
	.bmc-valor__title { font-size: 24px; line-height: 26px; }

	/* Líneas QS */
	.bmc-lineaqs__title { font-size: 26px; line-height: 30px; }
	.bmc-lineaqs__icon img { width: 48px; height: 48px; }

	/* Enfoque */
	.bmc-enfoque__subtitle { font-size: 16px; line-height: 22px; }
	.bmc-enfoque-card__title { font-size: 22px; line-height: 26px; max-width: none; }

	/* Equipo: tarjetas a UNA columna */
	.bmc-equipo__subtitle { font-size: 16px; line-height: 22px; }
	.bmc-equipo__bloque-titulo { font-size: 24px; line-height: 30px; margin-bottom: 24px; }
	.bmc-equipo__grid-cards { grid-template-columns: 1fr; gap: 40px; }
	.bmc-trabajador__media { max-width: 320px; }
	.bmc-trabajador__nombre { font-size: 26px; line-height: 32px; }
	.bmc-trabajador__cargo { font-size: 17px; line-height: 23px; }
	.bmc-trabajador__funcion { font-size: 15px; line-height: 21px; }
}

/* ---------- Móvil pequeño (≤400px) ---------- */
@media (max-width: 400px) {
	.bmc-qs-hero__title { font-size: 28px; line-height: 33px; }
	.bmc-mision__title,
	.bmc-lineas-qs__title,
	.bmc-enfoque__title,
	.bmc-equipo__title { font-size: 28px; line-height: 33px; }
}

/* ==========================================================================
   RESPONSIVE · PÁGINAS "LÍNEA DE INVESTIGACIÓN"
   ---------------------------------------------------------------------------
   Capa aditiva (solo max-width). No modifica ninguna regla base de escritorio.
   Aplica a page-linea-biomecanica.php, page-linea-lesiones.php y
   page-linea-rendimiento.php (comparten exactamente las mismas clases).
   Secciones: hero · objetivo (ya cubierto en Home) · estudio · focos ·
   instrumentación · aplicaciones · proyectos/publicaciones (slider genérico,
   ya cubierto). Norma: en las secciones foto+contenido, la FOTO va arriba.
   ========================================================================== */

/* ---------- Portátil (≤1280px) ---------- */
@media (max-width: 1280px) {
	.bmc-linea-hero__title { font-size: 52px; line-height: 58px; }

	.bmc-linea-estudio__title,
	.bmc-linea-focos__heading,
	.bmc-linea-instrumentacion__heading,
	.bmc-linea-aplicaciones__heading,
	.bmc-linea-proyectos__heading { font-size: 52px; line-height: 58px; }

	/* Los grids con gap fijo de 160px (focos/aplicaciones) se estrechan */
	.bmc-linea-focos__grid,
	.bmc-linea-aplicaciones__grid { gap: 60px; }
}

/* ---------- Tablet (≤1024px) ---------- */
@media (max-width: 1024px) {
	.bmc-linea-hero { height: auto; min-height: 70vh; }
	.bmc-linea-hero__inner { padding-top: 120px; padding-bottom: 48px; }

	/* Estudio: título+lista+texto arriba, FOTO ABAJO invertida a "foto arriba" */
	.bmc-linea-estudio { padding-top: 72px; padding-bottom: 88px; }
	.bmc-linea-estudio__grid { grid-template-columns: 1fr; gap: 32px; }
	.bmc-linea-estudio__left { max-width: none; }
	.bmc-linea-estudio__media { order: -1; }
	.bmc-linea-estudio__media img { aspect-ratio: 16 / 10; }

	/* Focos: FOTO ARRIBA, contenido debajo */
	.bmc-linea-focos { padding-top: 72px; padding-bottom: 88px; }
	.bmc-linea-focos__grid { grid-template-columns: 1fr; gap: 32px; }
	.bmc-linea-focos__media img { aspect-ratio: 16 / 10; }
	.bmc-linea-focos__right { max-width: none; }

	/* Instrumentación: FOTO ARRIBA (invertimos el orden HTML, que trae la
	   foto después del texto) */
	.bmc-linea-instrumentacion { padding-top: 72px; padding-bottom: 88px; }
	.bmc-linea-instrumentacion__grid { grid-template-columns: 1fr; gap: 32px; }
	.bmc-linea-instrumentacion__left { max-width: none; }
	.bmc-linea-instrumentacion__media { order: -1; }
	.bmc-linea-instrumentacion__media img { aspect-ratio: 16 / 10; }

	/* Aplicaciones: FOTO ARRIBA, contenido debajo */
	.bmc-linea-aplicaciones { padding-top: 72px; padding-bottom: 88px; }
	.bmc-linea-aplicaciones__grid { grid-template-columns: 1fr; gap: 32px; }
	.bmc-linea-aplicaciones__media img { aspect-ratio: 16 / 10; }
	.bmc-linea-aplicaciones__right { max-width: none; }

	.bmc-linea-proyectos { padding-top: 72px; padding-bottom: 88px; }

	.bmc-linea-estudio__title,
	.bmc-linea-focos__heading,
	.bmc-linea-instrumentacion__heading,
	.bmc-linea-aplicaciones__heading,
	.bmc-linea-proyectos__heading { font-size: 40px; line-height: 46px; margin-bottom: 24px; max-width: none; }
	.bmc-linea-estudio__separator,
	.bmc-linea-focos__separator,
	.bmc-linea-instrumentacion__separator,
	.bmc-linea-aplicaciones__separator,
	.bmc-linea-proyectos__separator { margin-bottom: 40px; }
}

/* ---------- Móvil (≤640px) ---------- */
@media (max-width: 640px) {
	.bmc-linea-hero__inner { padding-top: 110px; padding-bottom: 40px; }
	.bmc-linea-hero__title { font-size: 32px; line-height: 38px; margin-top: 24px; }
	.bmc-linea-hero__subtitle { font-size: 16px; line-height: 22px; }

	.bmc-linea-estudio,
	.bmc-linea-focos,
	.bmc-linea-instrumentacion,
	.bmc-linea-aplicaciones,
	.bmc-linea-proyectos { padding-top: 56px; padding-bottom: 64px; }

	.bmc-linea-estudio__title,
	.bmc-linea-focos__heading,
	.bmc-linea-instrumentacion__heading,
	.bmc-linea-aplicaciones__heading,
	.bmc-linea-proyectos__heading { font-size: 28px; line-height: 33px; }

	/* Listas numeradas: reducir gap para que quepan mejor en columna */
	.bmc-linea-estudio__list li,
	.bmc-linea-focos__list li,
	.bmc-linea-instrumentacion__list li,
	.bmc-linea-aplicaciones__list li { gap: 12px; padding-block: 16px; }

	/* Tarjetas de proyectos/publicaciones (slider ya apilado por la capa
	   genérica ≤1024px); ajuste fino de tipografía en móvil */
	.bmc-proyecto-card { padding: 24px; min-height: 0; }
	.bmc-proyecto-card__title { font-size: 19px; line-height: 24px; }
}

/* ==========================================================================
   RESPONSIVE · PÁGINA "COLABORADORES"
   ---------------------------------------------------------------------------
   Capa aditiva (solo max-width). No modifica ninguna regla base de escritorio
   ni el bloque @media (max-width:900px) ya existente para .bmc-mapa/.bmc-colab-*
   (líneas ~2515-2524): esta capa añade breakpoints que faltaban (portátil
   ≤1280, tablet ≤1024) y afina detalles dentro de ≤900/≤640 con reglas nuevas
   que, al ir después en el archivo, tienen prioridad sin tocar las originales.
   ========================================================================== */

/* ---------- Portátil (≤1280px) ---------- */
@media (max-width: 1280px) {
	.bmc-mapa { padding-top: 130px; }
	.bmc-mapa__title { font-size: 52px; }
	.bmc-mapa__stage { height: 62vh; min-height: 460px; }

	.bmc-colab-impacto__titulo,
	.bmc-colab-cta__titulo { font-size: 44px; }
}

/* ---------- Tablet (≤1024px) ---------- */
@media (max-width: 1024px) {
	.bmc-mapa { padding-top: 110px; }
	.bmc-mapa__title { font-size: 42px; }

	/* La leyenda vive en el HTML dentro de .bmc-mapa__stage (hermana de
	   .bmc-mapa__viewport, que es position:absolute inset:0, y también
	   hermana de .bmc-mapa__tip/.bmc-mapa__controls que deben seguir
	   flotando sobre el mapa). TODOS los hijos del stage son position:
	   absolute, así que el stage no puede medir su altura por flujo normal
	   (padding-bottom con hijos 100% absolutos no funciona: el navegador no
	   cuenta elementos fuera de flujo). Por eso hay que darle al stage una
	   altura EXPLÍCITA que sea viewport + hueco reservado para la leyenda. */
	.bmc-mapa__stage {
		height: calc(60vh + 110px);
		min-height: calc(420px + 110px);
	}
	.bmc-mapa__viewport { bottom: auto; height: 60vh; min-height: 420px; }
	/* Los controles de zoom están anclados a bottom del STAGE (32px); como
	   el stage ahora incluye el hueco reservado para la leyenda (110px),
	   hay que sumarlo para que sigan pegados al pie del viewport. */
	.bmc-mapa__controls { bottom: calc(110px + 24px); }
	.bmc-mapa__leyenda {
		position: absolute;
		top: auto;
		bottom: 0;
		left: 0;
		right: 0;
		max-width: none;
		width: 100%;
		padding: 20px var(--bmc-gutter) 0;
	}

	/* Listado: el bloque de 900px ya colapsa a 1 columna con head estático;
	   aquí adelantamos ese mismo comportamiento a ≤1024px para evitar la
	   columna sticky vacía que queda en el rango 901-1024px. */
	.bmc-colab-bloque { grid-template-columns: 1fr; gap: 24px; }
	.bmc-colab-bloque__head { position: static; }

	.bmc-colab-impacto__grid { grid-template-columns: 1fr; gap: 40px; }
	.bmc-colab-impacto__titulo,
	.bmc-colab-cta__titulo { font-size: 38px; }
	.bmc-colab-item__main { flex-direction: column; gap: 4px; }
}

/* ---------- Móvil (≤640px) ---------- */
@media (max-width: 640px) {
	.bmc-mapa { padding-top: 100px; }
	.bmc-mapa__title { font-size: 30px; line-height: 1.15; }
	.bmc-mapa__head .bmc-badge { margin-bottom: 14px; }

	/* Misma técnica que en tablet: todos los hijos del stage son absolute,
	   así que necesita una altura EXPLÍCITA = viewport + hueco de leyenda
	   (aquí la leyenda ocupa más, ~130px, porque en 2 líneas más apretadas
	   puede llegar a 3 en pantallas muy estrechas). */
	.bmc-mapa__stage { height: calc(52vh + 130px); min-height: calc(340px + 130px); }
	.bmc-mapa__viewport { bottom: auto; height: 52vh; min-height: 340px; }
	.bmc-mapa__leyenda {
		position: absolute;
		top: auto; bottom: 0; left: 0; right: 0;
		max-width: none; width: 100%;
		gap: 8px 16px;
		padding: 16px var(--bmc-gutter) 0;
	}
	.bmc-mapa__leyenda-item { font-size: 11px; }

	.bmc-mapa__controls { right: var(--bmc-gutter); bottom: calc(130px + 16px); }
	.bmc-mapa__ctrl { width: 38px; height: 38px; font-size: 19px; }

	/* Tarjeta flotante de info: en móvil no hay hover real (solo tap), la
	   fijamos a un ancho legible dentro del escenario en vez de posicionarse
	   junto al punto (que en pantallas estrechas puede quedar cortada). */
	.bmc-mapa__tip { max-width: calc(100% - 32px); }

	.bmc-colab-lista { padding-block: 64px; }
	.bmc-colab-bloque { padding-block: 40px; }
	.bmc-colab-bloque__titulo { font-size: 22px; }

	.bmc-colab-impacto { padding-block: 64px; }
	.bmc-colab-impacto__titulo { font-size: 28px; }
	.bmc-colab-impacto__list li { font-size: 15px; gap: 14px; padding-block: 18px; }

	.bmc-colab-cta { padding-block: 64px; }
	.bmc-colab-cta__titulo { font-size: 26px; }
	.bmc-colab-cta__texto { font-size: 16px; }
}

/* ==========================================================================
   RESPONSIVE · ARCHIVO DE BLOG (page-blog.php)
   ---------------------------------------------------------------------------
   Capa aditiva (solo max-width). No modifica ninguna regla base de escritorio.
   Antes de esta capa la página era 100% no responsive: la card destacada
   (grid 1fr 1fr) y el grid de artículos (repeat(3,1fr)) desbordaban en
   tablet/móvil. Norma: en la card destacada (foto+contenido), FOTO ARRIBA.
   ========================================================================== */

/* ---------- Portátil (≤1280px) ---------- */
@media (max-width: 1280px) {
	.bmc-blog-archive__title { font-size: 52px; line-height: 58px; margin-bottom: 48px; }
	.bmc-blogcard-destacada { gap: 40px; padding: 40px; }
	.bmc-blogcard-destacada__title,
	.bmc-blogcard__title { font-size: 30px; line-height: 34px; }

	/* Grid de artículos: 3 → 2 columnas */
	.bmc-blog-archive__grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }
}

/* ---------- Tablet (≤1024px) ---------- */
@media (max-width: 1024px) {
	.bmc-blog-archive { padding-block: 88px; }
	.bmc-blog-archive__title { font-size: 42px; line-height: 48px; margin-bottom: 40px; }

	/* Card destacada: una columna, FOTO ARRIBA */
	.bmc-blogcard-destacada {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 28px;
		margin-bottom: 40px;
	}
	.bmc-blogcard-destacada__media {
		order: -1;
		min-height: 0;
		aspect-ratio: 16 / 10;
	}
	.bmc-blogcard-destacada__content { align-items: flex-start; }
	.bmc-blogcard-destacada__title { font-size: 26px; line-height: 30px; margin-bottom: 16px; }
	.bmc-blogcard-destacada__text { font-size: 15px; line-height: 21px; margin-bottom: 24px; }

	.bmc-blog-archive__categorias { gap: 10px; margin-bottom: 36px; }

	/* Grid de artículos: 2 → 1 columna */
	.bmc-blog-archive__grid { grid-template-columns: 1fr; gap: 24px; }
	.bmc-blogcard__title { font-size: 26px; line-height: 30px; }
	.bmc-blogcard__text { font-size: 16px; line-height: 22px; }

	/* La flecha hover de la card no puede activarse sin ratón: visible siempre */
	.bmc-blogcard__flecha { opacity: 1; transform: translate(0, 0); }

	.bmc-blog-archive__pagination { gap: 14px; margin-top: 48px; }
}

/* ---------- Móvil (≤640px) ---------- */
@media (max-width: 640px) {
	.bmc-blog-archive { padding-block: 64px; }
	.bmc-blog-archive__title { font-size: 30px; line-height: 35px; margin-bottom: 32px; }

	.bmc-blogcard-destacada { padding: 20px; border-radius: 16px; }
	.bmc-blogcard-destacada__media { aspect-ratio: 4 / 3; border-radius: 10px; }
	.bmc-blogcard-destacada__title { font-size: 22px; line-height: 26px; }
	.bmc-blogcard-destacada__text { font-size: 14px; line-height: 20px; }
	.bmc-blogcard-destacada__meta { flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }

	.bmc-blog-archive__categorias { gap: 8px; margin-bottom: 28px; }

	.bmc-blogcard { padding: 22px; }
	.bmc-blogcard__title { font-size: 22px; line-height: 26px; }
	.bmc-blogcard__text { font-size: 15px; line-height: 21px; }

	/* Paginación: botones más compactos para que quepan en una fila */
	.bmc-blog-archive__pagination { gap: 8px; margin-top: 36px; font-size: 16px; }
	.bmc-blog-archive__pagination .page-numbers.current { width: 48px; height: 48px; font-size: 17px; }
	.bmc-blog-archive__pagination .page-numbers.prev,
	.bmc-blog-archive__pagination .page-numbers.next { width: 42px; height: 42px; }
	.bmc-blog-archive__pagination .page-numbers.prev::after,
	.bmc-blog-archive__pagination .page-numbers.next::after { font-size: 16px; }
}

/* ==========================================================================
   RESPONSIVE · PÁGINA "CONTACTO"
   ---------------------------------------------------------------------------
   Capa aditiva (solo max-width). No modifica ninguna regla base de escritorio
   ni el bloque @media (max-width:900px) ya existente (líneas 2104-2108: oculta
   la figura, colapsa grid principal y filas del formulario a 1 columna).
   Esta capa añade portátil (≤1280) y tablet (≤1024) que faltaban, y corrige
   el título (67px), que en móvil se salía del ancho disponible.
   ========================================================================== */

/* ---------- Portátil (≤1280px) ---------- */
@media (max-width: 1280px) {
	.bmc-contacto__title { font-size: 52px; line-height: 58px; }
	.bmc-contacto__figura { width: 340px; }
}

/* ---------- Tablet (≤1024px) ---------- */
@media (max-width: 1024px) {
	.bmc-contacto { padding-block: 72px; }
	.bmc-contacto__grid { gap: 48px; }
	.bmc-contacto__title { font-size: 42px; line-height: 48px; margin-bottom: 24px; }
	.bmc-contacto__text { font-size: 17px; line-height: 24px; max-width: none; margin-bottom: 40px; }
	.bmc-contacto__panel { padding: 32px; }
}

/* ---------- Móvil (≤640px) ---------- */
@media (max-width: 640px) {
	.bmc-contacto { padding-block: 56px; }
	.bmc-contacto__grid { gap: 32px; }
	.bmc-contacto__title { font-size: 30px; line-height: 35px; margin-bottom: 20px; }
	.bmc-contacto__text { font-size: 16px; line-height: 22px; margin-bottom: 28px; }
	.bmc-contacto__intro .bmc-badge { margin-bottom: 20px; }

	.bmc-contacto__panel { padding: 22px; border-radius: 16px; }
	.bmc-contacto__col { gap: 24px; }
	.bmc-field { margin-bottom: 18px; }
	.bmc-field__input { padding: 14px; font-size: 14px; }
	.bmc-contacto__actions .bmc-btn { width: 100%; }

	.bmc-contacto__datos a { font-size: 20px; }
}
