/* ============================================================================
   FM PROYECTOS CARRUSEL 2026 — sección global «Nuestros Proyectos 2026 (global)».
   Estética de /proyectos/ (fm-proyectos-2026.css) y patrón del carrusel de departamentos
   (fm-departamentos-2026.*): CSS scroll-snap, flechas del JS, un solo enlace por tarjeta.
   Todo va bajo la clase de sección .fm-proy-carrusel (sin depender del <body>), porque la sección
   irá en páginas de tipos distintos. Solo se encola donde el contenido incluye esa clase (functions.php).
   Tokens: los --fm-* de la cabecera 2026 (fm-header-2026.css, global). Tipografía: Inter local
   (solo hay peso 400/500: las «mayúsculas finas» son 400 con tracking amplio).
   ============================================================================ */
.fm-proy-carrusel {
	--fm-pcr-ancho: 1280px;
	--fm-pcr-margen: clamp(20px, 5vw, 72px);
	--fm-pcr-hueco: 24px;
	--fm-pcr-lenta: 1200ms;
	--fm-pcr-media: 500ms;
	font-family: 'Inter', Helvetica, Arial, sans-serif;
	color: var(--fm-texto);
}
@media (prefers-reduced-motion: reduce) {
	.fm-proy-carrusel { --fm-pcr-lenta: 0ms; --fm-pcr-media: 0ms; }
}
.fm-proy-carrusel.et_pb_section { background-color: var(--fm-fondo-cabecera) !important; padding: clamp(64px, 8vw, 112px) 0 !important; }
.fm-proy-carrusel .et_pb_row { width: auto !important; max-width: var(--fm-pcr-ancho) !important; padding: 0 !important; margin: 0 var(--fm-pcr-margen) !important; }
@media (min-width: 1424px) { .fm-proy-carrusel .et_pb_row { margin: 0 auto !important; } }
.fm-proy-carrusel .et_pb_column { margin-bottom: 0 !important; }
.fm-proy-carrusel h2,
.fm-proy-carrusel h3 { font-family: 'Inter', Helvetica, Arial, sans-serif !important; font-weight: 400 !important; padding: 0 !important; }
.fm-proy-carrusel p { padding: 0 !important; }

/* ---------- Cabecera: eyebrow, H2, entrada y flechas ---------- */
.fm-pcr-cab-fila { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: clamp(28px, 4vw, 48px); }
.fm-pcr-cab { margin: 0 !important; max-width: 640px; }
.fm-pcr-eyebrow {
	font-size: 11px; font-weight: 500; line-height: 1.5; letter-spacing: 3px; text-transform: uppercase;
	color: var(--fm-tierra-texto); margin: 0 0 18px !important;
}
.fm-proy-carrusel .fm-pcr-cab h2 { font-size: clamp(28px, 3vw, 40px) !important; line-height: 1.2 !important; color: var(--fm-texto) !important; margin: 0 0 14px !important; }
.fm-pcr-entrada { font-size: 16px; line-height: 1.7; color: var(--fm-texto); margin: 0 !important; }
.fm-pcr-nav { display: flex; gap: 8px; flex: 0 0 auto; }
.fm-pcr-nav button {
	width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--fm-tierra); border-radius: 50%; background: transparent; color: var(--fm-texto);
	cursor: pointer; font-size: 18px; line-height: 1; padding: 0; transition: background-color var(--fm-pcr-media) ease;
}
.fm-pcr-nav button:hover:not(:disabled) { background: var(--fm-greige); }
.fm-pcr-nav button:disabled { opacity: .35; cursor: default; }
.fm-pcr-nav button:focus-visible { outline: 2px solid var(--fm-texto); outline-offset: 2px; }

/* ---------- Carrusel: scroll-snap horizontal ---------- */
.fm-pcr-carrusel.et_pb_column {
	display: flex !important; gap: var(--fm-pcr-hueco); width: 100% !important; float: none; margin: 0 !important;
	overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	padding-bottom: 16px; scrollbar-width: thin; scrollbar-color: var(--fm-piedra) transparent;
}
@media (prefers-reduced-motion: reduce) { .fm-pcr-carrusel.et_pb_column { scroll-behavior: auto; } }
.fm-pcr-carrusel::after { display: none !important; }
/* Escritorio: 3 tarjetas y la 4.ª asomando · tablet: 2,2 · móvil: 1,2 */
.fm-pcr-carrusel > .fm-pcr-tarjeta { flex: 0 0 calc((100% - 3 * var(--fm-pcr-hueco)) / 3.25); scroll-snap-align: start; margin: 0 !important; }
@media (max-width: 980px) { .fm-pcr-carrusel > .fm-pcr-tarjeta { flex-basis: calc((100% - 2 * var(--fm-pcr-hueco)) / 2.2); } }
@media (max-width: 767px) { .fm-proy-carrusel { --fm-pcr-hueco: 16px; } .fm-pcr-carrusel > .fm-pcr-tarjeta { flex-basis: calc((100% - var(--fm-pcr-hueco)) / 1.2); } }

/* ---------- Tarjeta: foto 4:5 a sangre, nombre y «Ver proyecto» ---------- */
.fm-pcr-tarjeta__in { position: relative; }
.fm-pcr-tarjeta__img { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 5; background: var(--fm-greige); }
.fm-pcr-tarjeta__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1); transition: transform var(--fm-pcr-lenta) ease; }
.fm-pcr-tarjeta__in:hover .fm-pcr-tarjeta__img img,
.fm-pcr-tarjeta__in:focus-within .fm-pcr-tarjeta__img img { transform: scale(1.05); }
.fm-proy-carrusel .fm-pcr-tarjeta__t {
	font-size: 15px !important; line-height: 1.4 !important; letter-spacing: .14em; text-transform: uppercase;
	color: var(--fm-texto) !important; margin: 20px 0 6px !important;
}
/* Un solo enlace por tarjeta (en el H3), estirado con ::after para que toda la tarjeta sea clicable */
.fm-pcr-tarjeta__enlace { color: inherit !important; text-decoration: none; }
.fm-pcr-tarjeta__enlace::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.fm-pcr-tarjeta__enlace:focus-visible { outline: none; }
/* Foco alrededor de toda la tarjeta, hacia dentro: el overflow del carrusel recortaría un contorno exterior */
.fm-pcr-tarjeta__enlace:focus-visible::after { outline: 2px solid var(--fm-texto); outline-offset: -2px; }
.fm-pcr-ver {
	display: inline-block; padding: 6px 0 8px; font-size: 12px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase;
	color: var(--fm-texto); background: linear-gradient(var(--fm-tierra), var(--fm-tierra)) left bottom / 32px 1px no-repeat;
	transition: background-size var(--fm-pcr-media) ease;
}
.fm-pcr-tarjeta__in:hover .fm-pcr-ver,
.fm-pcr-tarjeta__in:focus-within .fm-pcr-ver { background-size: 100% 1px; }

/* ---------- CTA de borde «Ver todos los proyectos» ---------- */
.fm-pcr-pie { text-align: center; margin-top: clamp(32px, 4vw, 48px) !important; }
.fm-pcr-cta {
	display: inline-block; min-width: 180px; padding: 14px 28px; font-size: 12px; font-weight: 500; line-height: 1.4; letter-spacing: 2px; text-transform: uppercase;
	color: var(--fm-texto) !important; text-decoration: none; border: 1px solid var(--fm-tierra); background: transparent;
	transition: background-color var(--fm-pcr-media) ease;
}
.fm-pcr-cta:hover { background: var(--fm-greige); }
.fm-pcr-cta:focus-visible { outline: 2px solid var(--fm-texto); outline-offset: 3px; }

@media (max-width: 767px) {
	.fm-pcr-cab-fila { display: block; }
	.fm-pcr-nav { margin-top: 20px; }
}
