/* ==========================================================================
   Ferrecortes J y M — componentes del tema
   Los tokens (colores, fuentes, tamaños, espacios) vienen de theme.json:
   --wp--preset--color--*, --wp--preset--font-family--*, --wp--custom--*
   ========================================================================== */

:root {
	--fjm-negro: var(--wp--preset--color--negro, #0A0A0B);
	--fjm-acero: var(--wp--preset--color--acero, #111113);
	--fjm-acero-2: var(--wp--preset--color--acero-2, #18181B);
	--fjm-acero-3: var(--wp--preset--color--acero-3, #222226);
	--fjm-acero-4: var(--wp--preset--color--acero-4, #34343A);
	--fjm-texto: var(--wp--preset--color--hueso, #EDEBE6);
	--fjm-texto-2: var(--wp--preset--color--gris, #A9A7A2);
	--fjm-texto-3: var(--wp--preset--color--gris-2, #86847F);
	--fjm-rojo: var(--wp--preset--color--rojo, #F80000);
	--fjm-rojo-2: var(--wp--preset--color--rojo-oscuro, #BA0000);
	--fjm-vino: var(--wp--preset--color--vino, #7C0000);
	--fjm-lamina: var(--wp--preset--color--lamina, #E6E5E1);
	--fjm-lamina-2: var(--wp--preset--color--lamina-2, #D7D6D1);
	--fjm-tinta: var(--wp--preset--color--tinta, #4A4946);
	--fjm-linea: rgba(237, 235, 230, .14);
	--fjm-linea-2: rgba(237, 235, 230, .07);
	--fjm-stencil: var(--wp--preset--font-family--stencil);
	--fjm-sans: var(--wp--preset--font-family--sans);
	--fjm-mono: var(--wp--preset--font-family--mono);
	--fjm-gutter: var(--wp--custom--gutter, clamp(16px, 4vw, 48px));
	--fjm-header: var(--wp--custom--header, 76px);
	--fjm-ease: var(--wp--custom--ease, cubic-bezier(.2, .8, .2, 1));
	--fjm-ancho: var(--wp--style--global--wide-size, 82.5rem);
	--fjm-chaflan: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
	--fjm-chaflan-s: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));

	/* Variables que lee el plugin LZR Portafolio (galería y cotizador). */
	--lzr-fondo: var(--fjm-acero-2);
	--lzr-texto: var(--fjm-texto);
	--lzr-texto-2: var(--fjm-texto-2);
	--lzr-texto-3: var(--fjm-texto-3);
	--lzr-linea: var(--fjm-linea);
	--lzr-acento: var(--fjm-rojo-2);
	--lzr-acento-2: var(--fjm-rojo);
	--lzr-mono: var(--fjm-mono);
	--lzr-sans: var(--fjm-sans);
	--lzr-chaflan: var(--fjm-chaflan);
	color-scheme: dark;
}

html { scroll-behavior: smooth; scroll-padding-top: var(--fjm-header); }
body { overflow-x: clip; -webkit-font-smoothing: antialiased; }
body::after {
	content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 90; opacity: .06;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
body.fjm-sin-scroll { overflow: hidden; }
::selection { background: var(--fjm-rojo-2); color: #fff; }
:focus-visible { outline: 2px solid var(--fjm-rojo); outline-offset: 3px; }
img { max-width: 100%; height: auto; }
.wp-site-blocks { padding-top: 0; }
.wp-site-blocks > * { margin-block: 0; }
/* Las secciones a todo el ancho van pegadas, sin el espacio entre bloques. */
.wp-block-post-content > .alignfull:not(.fjm-cintas) { margin-block: 0 !important; }

/* Titulares: la parte en <em> va en rojo, sin cursiva */
h1 em, h2 em, h3 em, .fjm-titulo em { font-style: normal; color: var(--fjm-rojo); }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }

/* ---------- Piezas de texto ---------- */
.fjm-kicker, p.fjm-kicker {
	display: flex; align-items: center; gap: .8em; margin: 0;
	font-family: var(--fjm-mono); font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; color: var(--fjm-texto-2);
}
.fjm-kicker::before { content: ""; flex: none; width: 11px; height: 11px; background: var(--fjm-rojo); clip-path: polygon(0 0, 100% 0, 100% 100%); }
.fjm-kicker strong { font-weight: 500; color: var(--fjm-texto); }
.fjm-lead, p.fjm-lead { font-size: var(--wp--preset--font-size--lead); color: var(--fjm-texto-2); max-width: 58ch; }
.is-style-rotulo { font-family: var(--fjm-mono); font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fjm-texto-2); }

/* ---------- Secciones ---------- */
.fjm-sec { position: relative; padding: clamp(84px, 11vw, 160px) var(--fjm-gutter); }
.fjm-sec--acero { background: var(--fjm-acero); border-block: 1px solid var(--fjm-linea-2); }
.fjm-sec--corta { padding-block: clamp(56px, 7vw, 96px); }
.fjm-sec--sin-arriba { padding-top: 0; }
.fjm-wrap { max-width: var(--fjm-ancho); margin-inline: auto; position: relative; }
.fjm-wrap.fjm-wrap > * { margin-block-start: 0; }
.fjm-wrap > * + * { margin-top: 0; }
.fjm-rejilla { background-image: linear-gradient(var(--fjm-linea-2) 1px, transparent 1px), linear-gradient(90deg, var(--fjm-linea-2) 1px, transparent 1px); background-size: 64px 64px; }

.fjm-sec-head { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(24px, 5vw, 80px); align-items: end; margin-bottom: clamp(40px, 6vw, 76px) !important; }
.fjm-sec-head.fjm-sec-head > * { margin: 0; }
.fjm-sec-head h2 { margin: .45em 0 0 !important; }
.fjm-sec-head .fjm-lead { margin: 0; }
.fjm-sec-head--sola { grid-template-columns: 1fr; max-width: 60rem; }

/* Sección clara (lámina) */
.fjm-clara { background: var(--fjm-lamina); color: var(--wp--preset--color--negro); }
.fjm-clara .fjm-kicker { color: var(--fjm-tinta); }
.fjm-clara .fjm-kicker strong { color: var(--wp--preset--color--negro); }
.fjm-clara .fjm-lead, .fjm-clara p { color: var(--fjm-tinta); }
.fjm-clara h2, .fjm-clara h3 { color: var(--wp--preset--color--negro); }
.fjm-clara h2 em, .fjm-clara h3 em { color: var(--fjm-rojo-2); }

/* Sección vino */
.fjm-vino { background: var(--fjm-vino); color: #fff; overflow: hidden; }
.fjm-vino::before { content: ""; position: absolute; right: -6%; top: 50%; width: min(52vw, 640px); aspect-ratio: 1.03; transform: translateY(-50%); background: url(../img/simbolo-blanco.svg) no-repeat center / contain; opacity: .06; pointer-events: none; }
.fjm-vino .fjm-kicker { color: rgba(255, 255, 255, .75); }
.fjm-vino .fjm-kicker strong { color: #fff; }
.fjm-vino .fjm-kicker::before { background: #fff; }
.fjm-vino h2 em { color: transparent; -webkit-text-stroke: 1.5px #fff; }
.fjm-vino .fjm-lead, .fjm-vino p { color: rgba(255, 255, 255, .82); }

/* ---------- Botones ---------- */
.fjm-btn, .wp-block-button__link {
	--b: var(--fjm-rojo-2);
	display: inline-flex; align-items: center; justify-content: center; gap: .65em; min-height: 52px; padding: .9em 1.5em;
	border: 0; background: var(--b); color: #fff;
	font: 700 .92rem/1 var(--fjm-sans); font-stretch: 88%; letter-spacing: .08em; text-transform: uppercase; text-decoration: none;
	cursor: pointer; clip-path: var(--fjm-chaflan-s); transition: background .25s, color .25s;
}
.fjm-btn:hover, .wp-block-button__link:hover { --b: var(--fjm-rojo); color: #fff; }
.fjm-btn .fjm-icono { flex: none; }
.fjm-btn .fjm-flecha { transition: transform .3s var(--fjm-ease); }
.fjm-btn:hover .fjm-flecha { transform: translateX(4px); }
.fjm-btn--sm { min-height: 44px; padding: .7em 1.15em; font-size: .82rem; }
.fjm-btn--linea, .is-style-linea .wp-block-button__link { --b: rgba(237, 235, 230, .4); position: relative; isolation: isolate; color: var(--fjm-texto); }
.fjm-btn--linea::before, .is-style-linea .wp-block-button__link::before {
	content: ""; position: absolute; inset: 1.5px; z-index: -1; background: var(--fjm-fondo-btn, var(--fjm-negro));
	clip-path: polygon(0 0, calc(100% - 11.4px) 0, 100% 11.4px, 100% 100%, 11.4px 100%, 0 calc(100% - 11.4px)); transition: opacity .25s;
}
.fjm-btn--linea:hover, .is-style-linea .wp-block-button__link:hover { --b: var(--fjm-texto); color: var(--fjm-negro); }
.fjm-btn--linea:hover::before, .is-style-linea .wp-block-button__link:hover::before { opacity: 0; }
.fjm-btn--blanco, .is-style-blanco .wp-block-button__link { --b: #fff; color: var(--fjm-vino); }
.fjm-btn--blanco:hover, .is-style-blanco .wp-block-button__link:hover { --b: var(--fjm-negro); color: #fff; }
.fjm-clara .fjm-btn--linea, .fjm-clara .is-style-linea .wp-block-button__link { --b: rgba(10, 10, 11, .45); color: var(--fjm-negro); --fjm-fondo-btn: var(--fjm-lamina); }
.fjm-clara .fjm-btn--linea:hover { --b: var(--fjm-negro); color: #fff; }
.fjm-sec--acero { --fjm-fondo-btn: var(--fjm-acero); }
.fjm-botones { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.fjm-botones.fjm-botones > * { margin: 0; }
.wp-block-buttons { gap: 12px; }

/* ---------- Cabecera ---------- */
.fjm-progreso { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 70; background: var(--fjm-rojo); transform-origin: 0 50%; transform: scaleX(0); }
.fjm-hdr { position: fixed; top: 0; left: 0; right: 0; z-index: 60; height: var(--fjm-header); display: flex; align-items: center; border-bottom: 1px solid transparent; transition: background .35s, border-color .35s; }
.fjm-hdr.is-solid { background: rgba(10, 10, 11, .86); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%); border-color: var(--fjm-linea-2); }
.admin-bar .fjm-hdr { top: 32px; }
.fjm-hdr__in { width: 100%; max-width: calc(var(--fjm-ancho) + 2 * var(--fjm-gutter)); margin-inline: auto; padding-inline: var(--fjm-gutter); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.fjm-hdr__logo { display: block; flex: none; }
.fjm-hdr__logo img { display: block; height: 52px; width: auto; }
.fjm-nav__lista { display: flex; align-items: center; gap: clamp(14px, 2vw, 32px); margin: 0; padding: 0; list-style: none; }
.fjm-nav__item { position: relative; display: flex; align-items: center; }
.fjm-nav__lista > li > a { position: relative; display: block; padding: .5em 0; font-family: var(--fjm-mono); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; color: var(--fjm-texto-2); transition: color .25s; }
.fjm-nav__lista > li > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--fjm-rojo); transform: scaleX(0); transform-origin: 0 50%; transition: transform .3s var(--fjm-ease); }
.fjm-nav__lista > li > a:hover, .fjm-nav__lista > li > a[aria-current] { color: var(--fjm-texto); }
.fjm-nav__lista > li > a:hover::after, .fjm-nav__lista > li > a[aria-current]::after { transform: scaleX(1); }
.fjm-nav__abrir { display: grid; place-items: center; width: 24px; height: 24px; margin-left: 2px; padding: 0; border: 0; background: none; color: var(--fjm-texto-2); cursor: pointer; transition: transform .3s; }
.fjm-nav__item--sub:hover .fjm-nav__abrir, .fjm-nav__abrir[aria-expanded="true"] { transform: rotate(180deg); color: var(--fjm-texto); }
.fjm-sub {
	position: absolute; top: calc(100% + 18px); left: -24px; width: 560px; padding: 14px; background: rgba(17, 17, 19, .97);
	border: 1px solid var(--fjm-linea); clip-path: var(--fjm-chaflan); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .25s, transform .25s var(--fjm-ease), visibility 0s .25s;
}
.fjm-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -20px; height: 20px; }
.fjm-nav__item--sub:hover .fjm-sub, .fjm-nav__item--sub:focus-within .fjm-sub, .fjm-sub.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .25s, transform .25s var(--fjm-ease); }
.fjm-sub ul { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; margin: 0; padding: 0; list-style: none; }
.fjm-sub li a { display: flex; gap: 14px; align-items: flex-start; padding: 14px; text-decoration: none; color: var(--fjm-texto); transition: background .2s; }
.fjm-sub li a:hover, .fjm-sub li a[aria-current] { background: var(--fjm-acero-3); }
.fjm-sub li a .fjm-icono { flex: none; color: var(--fjm-rojo); margin-top: 2px; }
.fjm-sub__txt { display: flex; flex-direction: column; }
.fjm-sub__n { font-family: var(--fjm-mono); font-size: .62rem; letter-spacing: .14em; color: var(--fjm-texto-3); }
.fjm-sub__txt strong { font-weight: 700; font-stretch: 88%; text-transform: uppercase; letter-spacing: .03em; font-size: .98rem; line-height: 1.2; }
.fjm-sub__txt small { color: var(--fjm-texto-2); font-size: .8rem; }
.fjm-sub__todos { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; padding: 12px 14px; border-top: 1px solid var(--fjm-linea); font-family: var(--fjm-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; color: var(--fjm-texto-2); }
.fjm-sub__todos:hover { color: var(--fjm-rojo); }
.fjm-nav__pie { display: none; }
.fjm-hdr__acciones { display: flex; align-items: center; gap: 10px; }
.fjm-menu-btn { display: none; position: relative; width: 46px; height: 46px; padding: 0; border: 1px solid var(--fjm-linea); background: transparent; color: var(--fjm-texto); cursor: pointer; }
.fjm-menu-btn i { position: absolute; left: 12px; right: 12px; height: 2px; background: currentColor; transition: transform .3s var(--fjm-ease), top .3s var(--fjm-ease); }
.fjm-menu-btn i:first-of-type { top: 17px; }
.fjm-menu-btn i:last-of-type { top: 26px; }
.fjm-menu-btn[aria-expanded="true"] i:first-of-type { top: 21px; transform: rotate(45deg); }
.fjm-menu-btn[aria-expanded="true"] i:last-of-type { top: 21px; transform: rotate(-45deg); }

/* ---------- Portada (inicio) ---------- */
.fjm-hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; padding: 0 var(--fjm-gutter) !important; background: radial-gradient(ellipse 55% 45% at 40% 100%, rgba(124, 0, 0, .38), transparent 70%), var(--fjm-negro); }
.fjm-hero::before, .fjm-pagecab::before { content: ""; position: absolute; inset: 0; z-index: -2; background-image: linear-gradient(var(--fjm-linea-2) 1px, transparent 1px), linear-gradient(90deg, var(--fjm-linea-2) 1px, transparent 1px); background-size: 64px 64px; -webkit-mask-image: linear-gradient(90deg, #000 0, #000 35%, transparent 70%); mask-image: linear-gradient(90deg, #000 0, #000 35%, transparent 70%); }
.fjm-hero > *, .fjm-pagecab > * { margin-block: 0 !important; }
.fjm-hero__foto, .fjm-pagecab__foto { position: absolute !important; top: 0; right: 0; bottom: 0; width: 54%; margin: 0 !important; z-index: -1; clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%); background: var(--fjm-acero-2); }
.fjm-hero__foto img, .fjm-pagecab__foto img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: 30% 50%; filter: saturate(.85) contrast(1.06); }
.fjm-hero__foto::after, .fjm-pagecab__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 10, 11, .7), transparent 22%, transparent 60%, rgba(10, 10, 11, .7)), linear-gradient(90deg, rgba(62, 0, 0, .45), transparent 45%); }
.fjm-chispas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.fjm-hero__txt { position: relative; z-index: 2; width: 100%; max-width: var(--fjm-ancho); margin-inline: auto !important; padding: calc(var(--fjm-header) + 7vh) 0 clamp(28px, 6vh, 64px); }
.fjm-hero__txt > * { max-width: 48%; }
.fjm-hero__txt > * + * { margin-top: 0; }
.fjm-hero__pre { display: flex; align-items: center; gap: .8em; margin: 0 0 1.6rem !important; font-family: var(--fjm-mono); font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; color: var(--fjm-texto-2); }
.fjm-hero__pre::before { content: ""; flex: none; width: 28px; height: 2px; background: var(--fjm-rojo); }
.fjm-hero h1 { margin: 0 !important; font-size: clamp(3rem, 5.2vw, 6rem); line-height: .9; letter-spacing: -.004em; }
.js .fjm-hero h1 { animation: fjm-revelar 1.1s var(--fjm-ease) .15s both; }
@keyframes fjm-revelar { from { clip-path: inset(0 0 100% 0); transform: translateY(30px); } to { clip-path: inset(0 0 0 0); transform: none; } }
.fjm-hero .fjm-lead { margin: 1.7rem 0 2.1rem !important; max-width: 44ch; }
.fjm-hero__tag { position: absolute; right: var(--fjm-gutter); bottom: clamp(28px, 6vh, 64px); z-index: 2; display: flex; align-items: center; gap: .7em; margin: 0 !important; font-family: var(--fjm-mono); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(237, 235, 230, .85); }
.fjm-hero__tag::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--fjm-rojo); box-shadow: 0 0 0 0 rgba(248, 0, 0, .6); animation: fjm-latido 2s infinite; }
@keyframes fjm-latido { 70% { box-shadow: 0 0 0 10px rgba(248, 0, 0, 0); } 100% { box-shadow: 0 0 0 0 rgba(248, 0, 0, 0); } }

.fjm-rotulo { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-auto-flow: dense; gap: 1px; max-width: 540px !important; margin: clamp(32px, 7vh, 72px) 0 0 !important; border: 1px solid var(--fjm-linea); background: var(--fjm-linea); }
.fjm-rotulo div { padding: .7em .9em; background: #0D0D0F; }
.fjm-rotulo .ancho { grid-column: span 2; }
.fjm-rotulo dt { font-family: var(--fjm-mono); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fjm-texto-3); }
.fjm-rotulo dd { margin: .15em 0 0; font-weight: 600; font-size: .95rem; line-height: 1.3; }
.fjm-rotulo .r dd { color: var(--fjm-rojo); }

/* ---------- Cabecera de páginas interiores ---------- */
.fjm-pagecab { position: relative; display: flex; align-items: flex-end; min-height: min(88svh, 820px); overflow: hidden; isolation: isolate; padding: 0 var(--fjm-gutter) !important; background: radial-gradient(ellipse 55% 45% at 30% 100%, rgba(124, 0, 0, .32), transparent 70%), var(--fjm-negro); border-bottom: 1px solid var(--fjm-linea-2); }
.fjm-pagecab__foto { width: 46%; }
.fjm-pagecab__txt { position: relative; z-index: 2; width: 100%; max-width: var(--fjm-ancho); margin-inline: auto !important; padding: calc(var(--fjm-header) + 9vh) 0 clamp(36px, 7vh, 72px); }
.fjm-pagecab__txt > * { max-width: 52%; }
.fjm-pagecab__txt > h1 { max-width: 56%; }
.fjm-pagecab__txt > * + * { margin-top: 0; }
.fjm-pagecab h1 { margin: 1.1rem 0 0 !important; font-size: clamp(2.4rem, 1.2rem + 3.8vw, 4.6rem); overflow-wrap: anywhere; }
.fjm-pagecab--sin-foto h1 { font-size: var(--wp--preset--font-size--titulo-1); }
.fjm-pagecab .fjm-lead { margin: 1.4rem 0 0 !important; max-width: 50ch; }
.fjm-pagecab .fjm-botones { margin-top: 2rem !important; }
.fjm-pagecab--sin-foto { min-height: 0; }
.fjm-pagecab--sin-foto::before { -webkit-mask-image: linear-gradient(90deg, #000 0, transparent 90%); mask-image: linear-gradient(90deg, #000 0, transparent 90%); }
.fjm-pagecab--sin-foto .fjm-pagecab__txt { padding-top: calc(var(--fjm-header) + clamp(56px, 10vh, 120px)); }
.fjm-pagecab--sin-foto .fjm-pagecab__txt > * { max-width: 62rem; }
.js .fjm-pagecab h1 { animation: fjm-revelar 1s var(--fjm-ease) .1s both; }

/* ---------- Migas ---------- */
.fjm-migas { margin: 0 0 1.6rem !important; }
.fjm-migas ol { display: flex; flex-wrap: wrap; gap: .3em .7em; margin: 0; padding: 0; list-style: none; font-family: var(--fjm-mono); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fjm-texto-3); }
.fjm-migas li { display: flex; align-items: center; gap: .7em; }
.fjm-migas li + li::before { content: "/"; color: var(--fjm-rojo); }
.fjm-migas a { color: var(--fjm-texto-2); text-decoration: none; }
.fjm-migas a:hover { color: var(--fjm-texto); }
.fjm-migas [aria-current] { color: var(--fjm-texto); }

/* ---------- Cintas ---------- */
.fjm-cintas { position: relative; z-index: 3; height: clamp(120px, 13vw, 170px); margin: -10px 0 !important; overflow: hidden; }
.fjm-cinta { position: absolute; left: -5%; width: 110%; top: 50%; display: flex; overflow: hidden; white-space: nowrap; font-family: var(--fjm-stencil); font-weight: 700; text-transform: uppercase; font-size: clamp(1.3rem, 2.5vw, 2.2rem); line-height: 1; padding: .55em 0; }
.fjm-cinta--roja { background: var(--fjm-rojo); color: var(--fjm-negro); transform: translateY(-50%) rotate(-2.2deg); z-index: 2; box-shadow: 0 10px 30px rgba(0, 0, 0, .45); }
.fjm-cinta--oscura { background: var(--fjm-acero-2); color: var(--fjm-texto-2); transform: translateY(-50%) rotate(1.8deg); border-block: 1px solid var(--fjm-linea); }
.fjm-cinta__pista { display: flex; flex: none; align-items: center; gap: .9em; padding-right: .9em; animation: fjm-correr 38s linear infinite; }
.fjm-cinta--oscura .fjm-cinta__pista { animation-direction: reverse; animation-duration: 46s; }
.fjm-cinta__pista img { width: .8em; height: .8em; }
@keyframes fjm-correr { to { transform: translateX(-100%); } }

/* ---------- Servicios ---------- */
.fjm-serv-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--fjm-linea); border-left: 1px solid var(--fjm-linea); }
.fjm-serv { position: relative; display: flex; flex-direction: column; min-height: 340px; padding: clamp(24px, 2.8vw, 40px); border-right: 1px solid var(--fjm-linea); border-bottom: 1px solid var(--fjm-linea); overflow: hidden; transition: background .4s; }
.fjm-serv::after { content: ""; position: absolute; right: 0; bottom: 0; width: 34px; height: 34px; background: var(--fjm-rojo); clip-path: polygon(100% 0, 100% 100%, 0 100%); transform: scale(0); transform-origin: 100% 100%; transition: transform .4s var(--fjm-ease); }
.fjm-serv:hover { background: var(--fjm-acero-2); }
.fjm-serv:hover::after { transform: scale(1); }
.fjm-serv__num { position: absolute; top: 20px; right: 24px; font-family: var(--fjm-stencil); font-weight: 700; font-size: 3.6rem; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--fjm-acero-4); transition: color .4s, -webkit-text-stroke-color .4s; }
.fjm-serv:hover .fjm-serv__num { color: var(--fjm-rojo); -webkit-text-stroke-color: var(--fjm-rojo); }
.fjm-serv__ico { color: var(--fjm-rojo); }
.fjm-serv h3 { margin: auto 0 .5rem; padding-top: 2.2rem; font-size: clamp(1.5rem, 2vw, 1.85rem); line-height: 1.05; }
.fjm-serv h3 a { text-decoration: none; color: inherit; }
.fjm-serv h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.fjm-serv p { margin: 0; color: var(--fjm-texto-2); font-size: 1rem; }
.fjm-serv .fjm-serv__tag { margin-top: 1.1rem; font-family: var(--fjm-mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fjm-texto-3); }
.fjm-serv__ir { display: inline-flex; align-items: center; gap: .5em; margin-top: 1.2rem; font-family: var(--fjm-mono); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fjm-rojo); opacity: 0; transform: translateX(-6px); transition: opacity .3s, transform .3s var(--fjm-ease); }
.fjm-serv:hover .fjm-serv__ir { opacity: 1; transform: none; }

.fjm-servlista { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--fjm-linea); }
.fjm-servlista li a { display: grid; grid-template-columns: auto auto 1fr auto auto; align-items: center; gap: 18px; padding: 20px 4px; border-bottom: 1px solid var(--fjm-linea); text-decoration: none; color: var(--fjm-texto); transition: background .25s, padding .3s var(--fjm-ease); }
.fjm-servlista li a:hover { background: var(--fjm-acero-2); padding-inline: 16px; }
.fjm-servlista .fjm-icono { color: var(--fjm-rojo); }
.fjm-servlista__n { font-family: var(--fjm-mono); font-size: .7rem; letter-spacing: .14em; color: var(--fjm-texto-3); }
.fjm-servlista__t { font-family: var(--fjm-stencil); font-weight: 700; font-size: clamp(1.25rem, 2vw, 1.7rem); text-transform: uppercase; line-height: 1.05; }
.fjm-servlista small { font-family: var(--fjm-mono); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fjm-texto-3); }
.fjm-servlista .fjm-flecha { color: var(--fjm-texto-2); transition: transform .3s var(--fjm-ease), color .3s; }
.fjm-servlista li a:hover .fjm-flecha { transform: translateX(4px); color: var(--fjm-rojo); }

/* ---------- Columnas de texto (intro de servicio, historia) ---------- */
.fjm-dos { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.fjm-dos.fjm-dos > * { margin: 0; }
.fjm-dos--mitad { grid-template-columns: 1fr 1fr; }
.fjm-prosa > * + * { margin-top: 1.1em !important; }
.fjm-prosa p { color: var(--fjm-texto-2); }
.fjm-prosa p strong { color: var(--fjm-texto); font-weight: 600; }
.fjm-prosa h2 { margin-bottom: .2em; }
.fjm-prosa h2 + * { margin-top: 1.2rem !important; }
.fjm-prosa h3 { margin-top: 2rem !important; font-size: clamp(1.3rem, 1.1rem + .8vw, 1.65rem); }

/* Ficha técnica (tabla de 2 columnas) */
.fjm-ficha-caja { position: sticky; top: calc(var(--fjm-header) + 24px); padding: clamp(22px, 3vw, 36px); background: var(--fjm-acero-2); clip-path: var(--fjm-chaflan); }
.fjm-ficha-caja > * + * { margin-top: 1rem !important; }
.fjm-ficha-caja h3 { font-size: 1.35rem; }
.wp-block-table.is-style-ficha table, .fjm-ficha table { width: 100%; border-collapse: collapse; border: 0; }
.wp-block-table.is-style-ficha td, .wp-block-table.is-style-ficha th { padding: 12px 0; border: 0; border-bottom: 1px solid var(--fjm-linea); vertical-align: top; text-align: left; font-size: .98rem; }
.wp-block-table.is-style-ficha td:first-child { width: 38%; padding-right: 14px; font-family: var(--fjm-mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fjm-texto-3); padding-top: 15px; }
.wp-block-table.is-style-ficha tr:last-child td { border-bottom: 0; }
.wp-block-table.is-style-ficha figcaption { display: none; }

/* Lista con viñetas cuadradas */
.is-style-cuadros, ul.fjm-checks { list-style: none; padding-left: 0; }
.is-style-cuadros li, ul.fjm-checks li { position: relative; padding-left: 1.6em; margin-bottom: .55em; }
.is-style-cuadros li::before, ul.fjm-checks li::before { content: ""; position: absolute; left: 0; top: .55em; width: 9px; height: 9px; background: var(--fjm-rojo); clip-path: polygon(0 0, 100% 0, 100% 100%); }
.fjm-aplicaciones { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--fjm-linea); border-left: 1px solid var(--fjm-linea); }
.fjm-aplicaciones li { position: relative; padding: 22px 22px 22px 52px; border-right: 1px solid var(--fjm-linea); border-bottom: 1px solid var(--fjm-linea); margin: 0; font-weight: 500; }
.fjm-aplicaciones li::before { left: 22px; top: 1.75em; }
.fjm-aplicaciones li strong { display: block; font-stretch: 88%; text-transform: uppercase; letter-spacing: .03em; }
.fjm-aplicaciones li span { display: block; color: var(--fjm-texto-2); font-weight: 400; font-size: .95rem; margin-top: .2em; }

/* Beneficios (rejilla de 4) */
.fjm-beneficios { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.fjm-beneficios.fjm-beneficios > * { margin: 0; }
.fjm-beneficio { padding: clamp(22px, 2.6vw, 34px); background: var(--fjm-acero-2); clip-path: var(--fjm-chaflan); }
.fjm-beneficio > * + * { margin-top: .6rem !important; }
.fjm-beneficio .fjm-beneficio__n { font-family: var(--fjm-stencil); font-weight: 800; font-size: 2.6rem; line-height: 1; color: var(--fjm-rojo); }
.fjm-beneficio h3 { font-family: var(--fjm-sans); font-weight: 700; font-stretch: 88%; font-size: 1.2rem; letter-spacing: .02em; }
.fjm-beneficio p { color: var(--fjm-texto-2); font-size: .98rem; margin: 0; }

/* ---------- Materiales ---------- */
.fjm-mat { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.fjm-mat.fjm-mat > * { margin: 0; }
.fjm-mat-fotos { position: relative; padding-bottom: 22%; }
.fjm-mat-fotos > * { margin: 0 !important; }
.fjm-mat-fotos .fjm-mat-f1 img { width: 86%; aspect-ratio: 4 / 5; object-fit: cover; clip-path: var(--fjm-chaflan); }
.fjm-mat-fotos .fjm-mat-f2 { position: absolute !important; right: 0; bottom: 0; width: 52%; }
.fjm-mat-fotos .fjm-mat-f2 img { width: 100%; aspect-ratio: 1; object-fit: cover; clip-path: var(--fjm-chaflan); border: 10px solid var(--fjm-lamina); }
.fjm-cota { position: absolute !important; left: 0; bottom: 0; width: 44%; display: flex; align-items: center; gap: 10px; font-family: var(--fjm-mono); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fjm-tinta); }
.fjm-cota::before, .fjm-cota::after { content: ""; flex: 1; height: 1px; background: currentColor; }
.fjm-mat-txt > * + * { margin-top: 1.2rem !important; }
.fjm-tabla table, .wp-block-table.fjm-tabla table { width: 100%; border-collapse: collapse; border: 0; }
.wp-block-table.fjm-tabla { margin-top: clamp(28px, 4vw, 44px) !important; }
.fjm-tabla thead { border: 0; }
.fjm-tabla th { padding: 0 12px 12px 0; font-family: var(--fjm-mono); font-weight: 400; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fjm-tinta); text-align: left; border: 0; border-bottom: 2px solid var(--fjm-negro); }
.fjm-tabla td { padding: 16px 12px 16px 0; border: 0; border-bottom: 1px solid var(--fjm-lamina-2); vertical-align: top; transition: background .25s; }
.fjm-tabla td:first-child { width: 60px; }
.fjm-tabla code { display: inline-block; min-width: 44px; padding: .35em .5em; background: var(--fjm-negro); color: var(--fjm-lamina); font-family: var(--fjm-mono); font-size: .72rem; font-weight: 500; letter-spacing: .08em; text-align: center; transition: background .25s; }
.fjm-tabla tr:hover code { background: var(--fjm-rojo-2); color: #fff; }
.fjm-tabla td:nth-child(2) { font-weight: 700; font-stretch: 85%; font-size: 1.12rem; text-transform: uppercase; letter-spacing: .02em; white-space: nowrap; color: var(--fjm-negro); }
.fjm-tabla td:nth-child(3) { color: var(--fjm-tinta); font-size: .98rem; }
.fjm-tabla tr:hover td { background-color: rgba(10, 10, 11, .035); }
.fjm-tabla figcaption { display: none; }

.fjm-mats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.fjm-mats.fjm-mats > * { margin: 0; }
.fjm-matcard { position: relative; padding: clamp(24px, 2.8vw, 36px); background: var(--fjm-acero-2); clip-path: var(--fjm-chaflan); }
.fjm-matcard > * + * { margin-top: .7rem !important; }
.fjm-matcard .fjm-matcard__cod { display: inline-block; padding: .35em .6em; background: var(--fjm-rojo-2); color: #fff; font-family: var(--fjm-mono); font-size: .72rem; letter-spacing: .1em; }
.fjm-matcard h3 { font-size: 1.5rem; }
.fjm-matcard p { color: var(--fjm-texto-2); font-size: .98rem; }
.fjm-matcard ul { margin-top: 1rem !important; font-size: .95rem; color: var(--fjm-texto-2); }
.fjm-matcard ul { padding-left: 1.1em; }
.fjm-matcard li::marker { color: var(--fjm-rojo); }
.fjm-matcard--cta { background: var(--fjm-vino); }
.fjm-matcard--cta .fjm-matcard__cod { background: #fff; color: var(--fjm-vino); }
.fjm-matcard--cta p { color: rgba(255, 255, 255, .85); }
.fjm-matcard--cta .fjm-botones { margin-top: 1.4rem !important; }

/* ---------- Proceso ---------- */
.fjm-pasos { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 3vw, 44px); }
.fjm-pasos.fjm-pasos > * { margin: 0; }
.fjm-paso { position: relative; padding-top: 30px; }
.fjm-paso > * { margin: 0 !important; }
.fjm-paso::before { content: ""; position: absolute; top: 0; left: 0; right: calc(-1 * clamp(20px, 3vw, 44px)); height: 1px; background: rgba(255, 255, 255, .35); }
.fjm-paso:last-child::before { right: 0; }
.fjm-paso::after { content: ""; position: absolute; top: -5px; left: 0; width: 11px; height: 11px; background: #fff; clip-path: polygon(0 0, 100% 0, 100% 100%); }
.fjm-paso__n { font-family: var(--fjm-stencil); font-weight: 800; font-size: clamp(3rem, 5vw, 4.6rem) !important; line-height: 1; color: #fff !important; }
.fjm-paso h3 { margin: .6rem 0 .4rem !important; font-family: var(--fjm-sans); font-weight: 700; font-stretch: 85%; font-size: 1.3rem; letter-spacing: .02em; color: #fff; }
.fjm-paso p { font-size: 1rem; }
.fjm-cta-linea { margin-top: clamp(40px, 5vw, 64px) !important; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.fjm-cta-linea.fjm-cta-linea > * { margin: 0; }
.fjm-cta-linea .is-style-rotulo, .fjm-vino .fjm-cta-linea p { font-family: var(--fjm-mono); font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .75); }

/* ---------- Para quién (bento) ---------- */
.fjm-quien-grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr; grid-template-rows: repeat(2, minmax(260px, 32vw)); gap: 10px; }
.fjm-quien-grid.fjm-quien-grid > * { margin: 0; }
.fjm-quien { position: relative; overflow: hidden; background: var(--fjm-acero-2); display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(20px, 2.4vw, 32px) !important; isolation: isolate; min-height: 260px; }
.fjm-quien > * { margin: 0 !important; }
.fjm-quien:first-child { grid-row: span 2; }
.fjm-quien:last-child { grid-column: span 2; }
.fjm-quien .wp-block-image { position: absolute !important; inset: 0; z-index: -2; }
.fjm-quien .wp-block-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.5) brightness(.8); transition: filter .6s, transform 1s var(--fjm-ease); }
.fjm-quien::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(10, 10, 11, .05) 30%, rgba(10, 10, 11, .9)); }
.fjm-quien:hover .wp-block-image img { filter: none; transform: scale(1.03); }
.fjm-quien__n { position: absolute !important; top: 18px; left: clamp(20px, 2.4vw, 32px); font-family: var(--fjm-mono); font-size: .7rem; letter-spacing: .14em; color: var(--fjm-texto-2); }
.fjm-quien h3 { margin-bottom: .35rem !important; font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.02; }
.fjm-quien p:not(.fjm-quien__n) { color: var(--fjm-texto-2); max-width: 40ch; font-size: 1rem; }

/* ---------- El taller ---------- */
.fjm-taller-grid { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 6vw, 90px); align-items: stretch; }
.fjm-taller-grid.fjm-taller-grid > * { margin: 0; }
.fjm-taller__foto { position: relative; clip-path: var(--fjm-chaflan); min-height: 420px; margin: 0 !important; }
.fjm-taller__foto img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; object-position: 50% 60%; }
.fjm-taller__foto figcaption { position: absolute; left: 16px; bottom: 16px; margin: 0; padding: .55em .8em; background: var(--fjm-negro); font-family: var(--fjm-mono); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fjm-texto); }
.fjm-taller__foto figcaption::before { content: "● "; color: var(--fjm-rojo); }
.fjm-taller__txt { align-self: center; }
.fjm-taller__txt > * + * { margin-top: 1.2rem !important; }
.fjm-taller__txt h2 { margin-top: .45em !important; }
.fjm-taller__txt p { color: var(--fjm-texto-2); }
.fjm-datos { display: grid; grid-template-columns: repeat(3, 1fr); margin: 2.2rem 0 0 !important; border-top: 1px solid var(--fjm-linea); }
.fjm-datos div { padding: 1.1rem 1rem 0 0; }
.fjm-datos div + div { padding-left: 1rem; border-left: 1px solid var(--fjm-linea); }
.fjm-datos dt { font-family: var(--fjm-stencil); font-weight: 800; font-size: clamp(2rem, 3.4vw, 2.9rem); line-height: 1; color: var(--fjm-texto); }
.fjm-datos dd { margin: .45rem 0 0; font-size: .88rem; line-height: 1.35; color: var(--fjm-texto-2); }

/* ---------- Contacto ---------- */
.fjm-contacto-grid { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(24px, 4vw, 56px); align-items: start; }
.fjm-contacto-grid.fjm-contacto-grid > * { margin: 0; }
.fjm-datos-contacto { margin: 0 !important; padding: 0; list-style: none; border-top: 1px solid var(--fjm-linea); }
.fjm-datos-contacto li { padding: 18px 0; border-bottom: 1px solid var(--fjm-linea); }
.fjm-datos-contacto .et { display: block; margin-bottom: 4px; font-family: var(--fjm-mono); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fjm-texto-3); }
.fjm-datos-contacto a, .fjm-datos-contacto .v { font-weight: 600; font-size: 1.15rem; text-decoration: none; color: var(--fjm-texto); transition: color .25s; }
.fjm-datos-contacto a:hover { color: var(--fjm-rojo); }
.fjm-datos-contacto small { display: block; margin-top: 2px; color: var(--fjm-texto-2); font-size: .9rem; }
.fjm-datos-contacto__tels { display: flex; flex-wrap: wrap; gap: 2px 18px; }
.fjm-datos-contacto__acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.fjm-datos-contacto .fjm-datos-contacto__acciones a { display: inline-flex; align-items: center; gap: .5em; padding: .55em .85em; border: 1px solid var(--fjm-linea); font-family: var(--fjm-mono); font-size: .68rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--fjm-texto-2); transition: background .25s, border-color .25s, color .25s; }
.fjm-datos-contacto .fjm-datos-contacto__acciones a:hover { background: var(--fjm-rojo-2); border-color: var(--fjm-rojo-2); color: #fff; }
.fjm-datos-contacto__tels a { font-size: 1.02rem; font-weight: 500; }
.fjm-mapa { position: relative; margin-top: 22px !important; aspect-ratio: 4 / 3; clip-path: var(--fjm-chaflan); background: var(--fjm-acero-2); }
.fjm-mapa iframe { display: block; width: 100%; height: 100%; border: 0; filter: invert(.9) hue-rotate(180deg) saturate(.45) contrast(.92); }
.fjm-mapa--ancho { aspect-ratio: 21 / 9; }

/* ---------- Preguntas frecuentes ---------- */
.fjm-faq { display: grid; grid-template-columns: 1fr 1.6fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.fjm-faq.fjm-faq > * { margin: 0; }
.fjm-faq__lista > * + * { margin-top: 0 !important; }
.wp-block-details { border-top: 1px solid var(--fjm-linea); padding: 0; }
.wp-block-details:last-child { border-bottom: 1px solid var(--fjm-linea); }
.wp-block-details summary { position: relative; list-style: none; cursor: pointer; padding: 22px 48px 22px 0; font-weight: 700; font-stretch: 90%; font-size: 1.12rem; letter-spacing: .01em; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 14px; height: 14px; margin-top: -7px; background: linear-gradient(var(--fjm-rojo), var(--fjm-rojo)) center / 100% 2px no-repeat, linear-gradient(var(--fjm-rojo), var(--fjm-rojo)) center / 2px 100% no-repeat; transition: transform .3s var(--fjm-ease); }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details summary:hover { color: var(--fjm-rojo); }
.wp-block-details > :not(summary) { margin: 0 0 22px !important; color: var(--fjm-texto-2); max-width: 70ch; }
.fjm-clara .wp-block-details { border-color: var(--fjm-lamina-2); }

/* ---------- Franja final (CTA) ---------- */
.fjm-cta { position: relative; overflow: hidden; background: var(--fjm-acero); border-top: 1px solid var(--fjm-linea-2); }
.fjm-cta::after { content: ""; position: absolute; right: -4%; bottom: -30%; width: min(40vw, 480px); aspect-ratio: 1; background: url(../img/simbolo-rojo.svg) no-repeat center / contain; opacity: .08; pointer-events: none; }
.fjm-cta .fjm-wrap { display: grid; grid-template-columns: 1.3fr 1fr; gap: 32px 64px; align-items: end; }
.fjm-cta h2 { font-size: clamp(2.2rem, 1.3rem + 3.4vw, 4.6rem); margin-top: .4em !important; }
.fjm-cta__der > * + * { margin-top: 1.4rem !important; }
.fjm-cta__der p { color: var(--fjm-texto-2); }

/* ---------- Guías (tarjetas y artículo) ---------- */
.fjm-guias .wp-block-post-template { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0; padding: 0; list-style: none; }
.fjm-guias .wp-block-post-template > li { margin: 0; }
.fjm-guia { position: relative; height: 100%; display: flex; flex-direction: column; background: var(--fjm-acero-2); clip-path: var(--fjm-chaflan); transition: background .3s; }
.fjm-guia:hover { background: var(--fjm-acero-3); }
.fjm-guia > * { margin: 0 !important; }
.fjm-guia .wp-block-post-featured-image { aspect-ratio: 3 / 2; overflow: hidden; }
.fjm-guia .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.5) brightness(.85); transition: filter .5s, transform .8s var(--fjm-ease); }
.fjm-guia:hover .wp-block-post-featured-image img { filter: none; transform: scale(1.04); }
.fjm-guia__cuerpo { padding: 22px 24px 28px; display: flex; flex-direction: column; gap: .7rem; flex: 1; }
.fjm-guia__cuerpo > * { margin: 0 !important; }
.fjm-guia .wp-block-post-date, .fjm-guia .wp-block-post-terms { font-family: var(--fjm-mono); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fjm-texto-3); }
.fjm-guia .wp-block-post-terms a { color: var(--fjm-rojo); text-decoration: none; }
.fjm-guia .wp-block-post-title { font-size: clamp(1.3rem, 1.1rem + .6vw, 1.6rem); line-height: 1.05; }
.fjm-guia .wp-block-post-title a { text-decoration: none; color: inherit; }
.fjm-guia .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.fjm-guia .wp-block-post-excerpt { color: var(--fjm-texto-2); font-size: .98rem; }
.fjm-guia .wp-block-post-excerpt__more-text { display: none; }
.wp-block-query-pagination { margin-top: 40px !important; gap: 10px; font-family: var(--fjm-mono); font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; }
.wp-block-query-pagination a { text-decoration: none; }

.fjm-articulo { padding: clamp(56px, 8vw, 110px) var(--fjm-gutter); }
.fjm-articulo .wp-block-post-featured-image { max-width: var(--fjm-ancho); margin: 0 auto clamp(40px, 6vw, 72px) !important; clip-path: var(--fjm-chaflan); }
.fjm-articulo .wp-block-post-featured-image img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
.fjm-cuerpo { max-width: 46rem; margin-inline: auto; font-size: 1.12rem; }
.fjm-cuerpo > * + * { margin-top: 1.25em !important; }
.fjm-cuerpo p, .fjm-cuerpo li { color: #CFCDC8; }
.fjm-cuerpo h2 { margin-top: 2.2em !important; font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.5rem); }
.fjm-cuerpo h3 { margin-top: 1.8em !important; font-size: clamp(1.3rem, 1.1rem + .8vw, 1.6rem); }
.fjm-cuerpo a { color: var(--fjm-texto); text-decoration-color: var(--fjm-rojo); text-underline-offset: 3px; }
.fjm-cuerpo strong { color: var(--fjm-texto); }
.fjm-cuerpo ul:not(.is-style-cuadros), .fjm-cuerpo ol { padding-left: 1.3em; }
.fjm-cuerpo li { margin-bottom: .4em; }
.fjm-cuerpo li::marker { color: var(--fjm-rojo); }
.fjm-cuerpo blockquote { padding-left: 1.2em; }
.fjm-cuerpo .wp-block-table table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.fjm-cuerpo .wp-block-table th, .fjm-cuerpo .wp-block-table td { padding: 12px 10px; border: 0; border-bottom: 1px solid var(--fjm-linea); text-align: left; vertical-align: top; }
.fjm-cuerpo .wp-block-table th { font-family: var(--fjm-mono); font-weight: 400; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fjm-texto-3); border-bottom: 2px solid var(--fjm-linea); }
.fjm-cuerpo .wp-block-table thead { border: 0; }
.fjm-meta-articulo { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 1.6rem !important; font-family: var(--fjm-mono); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fjm-texto-3); }
.fjm-meta-articulo > * { margin: 0 !important; }
.fjm-meta-articulo a { color: var(--fjm-rojo); text-decoration: none; }
.fjm-recuadro { padding: clamp(22px, 3vw, 32px); background: var(--fjm-acero-2); border-left: 3px solid var(--fjm-rojo); }
.fjm-recuadro > * + * { margin-top: .8rem !important; }
.fjm-recuadro p { color: var(--fjm-texto-2); }

/* Página de texto (privacidad) */
.fjm-pagina-texto { padding: calc(var(--fjm-header) + clamp(56px, 9vh, 110px)) var(--fjm-gutter) clamp(72px, 10vw, 140px); }
.fjm-pagina-texto .wp-block-post-title { max-width: 46rem; margin: 0 auto 2rem !important; font-size: var(--wp--preset--font-size--titulo-2); }
.fjm-pagina-texto .fjm-migas { max-width: 46rem; margin-inline: auto !important; }

/* ---------- Pie ---------- */
.fjm-pie { position: relative; background: var(--fjm-negro); border-top: 1px solid var(--fjm-linea-2); padding-top: clamp(56px, 7vw, 90px); overflow: hidden; }
.fjm-pie__rejilla { max-width: var(--fjm-ancho); margin-inline: auto; padding-inline: var(--fjm-gutter); box-sizing: content-box; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr; gap: 40px; }
.fjm-pie__marca img { display: block; height: 64px; width: auto; }
.fjm-pie__marca p { color: var(--fjm-texto-2); max-width: 34ch; margin: 1.1rem 0 0; font-size: .98rem; }
.fjm-pie__redes { display: flex; gap: 8px; }
.fjm-pie__redes a { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--fjm-linea); color: var(--fjm-texto-2); transition: color .25s, border-color .25s, background .25s; }
.fjm-pie__redes a:hover { color: #fff; border-color: var(--fjm-rojo-2); background: var(--fjm-rojo-2); }
.fjm-pie__titulo { margin: 0 0 1rem; font-family: var(--fjm-mono); font-weight: 400; font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--fjm-texto-3); }
.fjm-pie ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .45rem; }
.fjm-pie ul a { text-decoration: none; color: var(--fjm-texto-2); transition: color .25s; font-size: .98rem; }
.fjm-pie ul a:hover { color: var(--fjm-texto); }
.fjm-pie__gigante { margin: clamp(40px, 6vw, 80px) 0 calc(-.2 * 13.4vw); font-family: var(--fjm-stencil); font-weight: 800; font-size: 13.4vw; line-height: 1; letter-spacing: -.01em; text-transform: uppercase; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgba(237, 235, 230, .14); text-align: center; user-select: none; }
.fjm-pie__legal { position: relative; z-index: 1; max-width: var(--fjm-ancho); margin-inline: auto; padding: 20px var(--fjm-gutter) 26px; box-sizing: content-box; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; border-top: 1px solid var(--fjm-linea-2); background: var(--fjm-negro); font-family: var(--fjm-mono); font-size: .7rem; letter-spacing: .08em; color: var(--fjm-texto-3); }
.fjm-pie__legal a { color: var(--fjm-texto-2); text-decoration: none; }
.fjm-pie__legal a:hover { color: var(--fjm-texto); }

.fjm-wa-flotante { position: fixed; right: 18px; bottom: 18px; z-index: 55; display: grid; place-items: center; width: 60px; height: 60px; background: var(--fjm-rojo-2); color: #fff; clip-path: var(--fjm-chaflan-s); transform: translateY(140%); transition: transform .45s var(--fjm-ease), background .25s; }
.fjm-wa-flotante.is-visible { transform: none; }
.fjm-wa-flotante:hover { background: var(--fjm-rojo); color: #fff; }

/* ---------- 404 ---------- */
.fjm-404 { min-height: 100svh; display: flex; align-items: center; padding: calc(var(--fjm-header) + 40px) var(--fjm-gutter) 80px; }
.fjm-404 .fjm-wrap > * + * { margin-top: 1.4rem !important; }
.fjm-404__num { font-family: var(--fjm-stencil); font-weight: 800; font-size: clamp(7rem, 26vw, 22rem); line-height: .8; color: transparent; -webkit-text-stroke: 2px var(--fjm-rojo); margin: 0 !important; }

/* ---------- Entradas al hacer scroll ---------- */
.js .fjm-revelar { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--fjm-ease), transform .9s var(--fjm-ease); }
.js .fjm-revelar.is-in { opacity: 1; transform: none; }

/* ---------- Editor ---------- */
.fjm-ssr { pointer-events: none; }
.editor-styles-wrapper .fjm-hdr, .editor-styles-wrapper .fjm-wa-flotante { position: relative; }
.editor-styles-wrapper .fjm-hero h1, .editor-styles-wrapper .fjm-pagecab h1 { animation: none; }
.editor-styles-wrapper .fjm-revelar { opacity: 1; transform: none; }

/* ==========================================================================
   Responsivo
   ========================================================================== */
@media (max-width: 1180px) {
	.fjm-nav__lista { gap: 16px; }
	.fjm-hdr__in { gap: 16px; }
}
@media (max-width: 1080px) {
	:root { --fjm-header: 66px; }
	.fjm-hdr__logo img { height: 44px; }
	.fjm-menu-btn { display: block; }
	.fjm-hdr__acciones .fjm-btn span { display: none; }
	.fjm-hdr__acciones .fjm-btn { padding: .7em .9em; }
	.fjm-nav { position: fixed; top: var(--fjm-header); left: 0; right: 0; height: calc(100dvh - var(--fjm-header)); background: var(--fjm-negro); padding: 18px var(--fjm-gutter) 32px; overflow: auto; visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity .3s, transform .3s var(--fjm-ease), visibility 0s .3s; display: flex; flex-direction: column; }
	.admin-bar .fjm-nav { top: calc(var(--fjm-header) + 46px); }
	.fjm-nav.is-open { visibility: visible; opacity: 1; transform: none; transition: opacity .3s, transform .3s var(--fjm-ease); }
	.fjm-nav__lista { flex-direction: column; align-items: stretch; gap: 0; }
	.fjm-nav__item { flex-wrap: wrap; border-bottom: 1px solid var(--fjm-linea-2); }
	.fjm-nav__lista > li > a { flex: 1; padding: .5em 0; font-family: var(--fjm-stencil); font-weight: 700; font-size: 2rem; letter-spacing: 0; color: var(--fjm-texto); }
	.fjm-nav__lista > li > a::after { display: none; }
	.fjm-nav__abrir { width: 48px; height: 48px; border: 1px solid var(--fjm-linea); }
	.fjm-nav__item--sub:hover .fjm-nav__abrir { transform: none; }
	.fjm-nav__abrir[aria-expanded="true"] { transform: rotate(180deg); }
	.fjm-sub { position: static; width: 100%; padding: 0 0 14px; clip-path: none; border: 0; background: none; opacity: 1; visibility: visible; transform: none; display: none; }
	.fjm-nav__item--sub:hover .fjm-sub, .fjm-nav__item--sub:focus-within .fjm-sub { display: none; }
	.fjm-sub.is-open, .fjm-nav__item--sub .fjm-sub.is-open { display: block; }
	.fjm-sub ul { grid-template-columns: 1fr; }
	.fjm-sub li a { padding: 10px 4px; }
	.fjm-nav__pie { display: flex; flex-direction: column; gap: 8px; margin-top: auto; padding-top: 28px; font-family: var(--fjm-mono); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--fjm-texto-2); }
	.fjm-nav__pie a { display: inline-flex; gap: 10px; align-items: center; color: var(--fjm-texto); text-decoration: none; }
}
@media (max-width: 960px) {
	.fjm-sec-head, .fjm-dos, .fjm-dos--mitad, .fjm-mat, .fjm-taller-grid, .fjm-contacto-grid, .fjm-faq, .fjm-cta .fjm-wrap { grid-template-columns: 1fr; }
	.fjm-sec-head { align-items: start; }
	.fjm-serv-grid { grid-template-columns: repeat(2, 1fr); }
	.fjm-aplicaciones { grid-template-columns: repeat(2, 1fr); }
	.fjm-beneficios { grid-template-columns: repeat(2, 1fr); }
	.fjm-mats { grid-template-columns: repeat(2, 1fr); }
	.fjm-guias .wp-block-post-template { grid-template-columns: repeat(2, 1fr); }
	.fjm-mat-fotos { max-width: 560px; }
	.fjm-pasos { grid-template-columns: repeat(2, 1fr); row-gap: 44px; }
	.fjm-paso:nth-child(2)::before { right: 0; }
	.fjm-quien-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
	.fjm-quien { min-height: 300px; }
	.fjm-quien:first-child { grid-row: auto; grid-column: span 2; min-height: 380px; }
	.fjm-quien:last-child { grid-column: span 2; }
	.fjm-pie__rejilla { grid-template-columns: 1fr 1fr; }
	.fjm-pie__marca { grid-column: span 2; }
	.fjm-ficha-caja { position: static; }
	.fjm-taller__foto { min-height: 0; aspect-ratio: 16 / 10; }
}
@media (max-width: 900px) {
	.fjm-hero, .fjm-pagecab { display: block; min-height: 0; padding: var(--fjm-header) var(--fjm-gutter) 0 !important; }
	.fjm-hero::before, .fjm-pagecab::before { -webkit-mask-image: linear-gradient(180deg, transparent 0, transparent 40%, #000 70%); mask-image: linear-gradient(180deg, transparent 0, transparent 40%, #000 70%); }
	.fjm-hero__foto, .fjm-pagecab__foto { position: relative !important; width: auto; height: min(52svh, 520px); margin: 0 calc(-1 * var(--fjm-gutter)) !important; clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%); }
	.fjm-pagecab__foto { height: min(40svh, 380px); }
	.fjm-hero__foto img { object-position: 30% 40%; }
	.fjm-hero__txt, .fjm-pagecab__txt { padding: 28px 0 44px; }
	.fjm-hero__txt > *, .fjm-pagecab__txt > * { max-width: none; }
	.fjm-hero h1 { font-size: clamp(2.7rem, 12.4vw, 5.2rem); }
	.fjm-hero__tag { top: calc(var(--fjm-header) + 14px); bottom: auto; }
	.fjm-pagecab--sin-foto .fjm-pagecab__txt { padding-top: clamp(40px, 8vh, 72px); }
}
@media (max-width: 640px) {
	body { font-size: 1rem; }
	.fjm-serv-grid, .fjm-aplicaciones, .fjm-beneficios, .fjm-mats, .fjm-guias .wp-block-post-template { grid-template-columns: 1fr; }
	.fjm-serv { min-height: 0; }
	.fjm-servlista li a { grid-template-columns: auto 1fr auto; gap: 12px; }
	.fjm-servlista__n, .fjm-servlista small { display: none; }
	.fjm-rotulo { grid-template-columns: 1fr 1fr; }
	.fjm-botones .fjm-btn, .fjm-hero .fjm-botones .wp-block-button { flex: 1 1 100%; }
	.fjm-hero .fjm-botones .wp-block-button__link { width: 100%; }
	.fjm-tabla thead { display: none; }
	.fjm-tabla table, .fjm-tabla tbody, .fjm-tabla tr, .fjm-tabla td { display: block; }
	.fjm-tabla tr { display: grid; grid-template-columns: 44px 1fr; gap: 4px 14px; padding: 14px 0; border-bottom: 1px solid var(--fjm-lamina-2); }
	.fjm-tabla td { padding: 0 !important; border: 0; }
	.fjm-tabla td:first-child { grid-row: span 2; }
	.fjm-tabla td:nth-child(2) { white-space: normal; }
	.fjm-pasos { grid-template-columns: 1fr; row-gap: 36px; }
	.fjm-paso::before { right: 0 !important; }
	.fjm-quien-grid { grid-template-columns: 1fr; }
	.fjm-quien, .fjm-quien:first-child, .fjm-quien:last-child { grid-column: auto; min-height: 300px; }
	.fjm-datos div + div { padding-left: .7rem; }
	.fjm-pie__rejilla { grid-template-columns: 1fr; }
	.fjm-pie__marca { grid-column: auto; }
	.fjm-wa-flotante { width: 54px; height: 54px; right: 14px; bottom: 14px; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.fjm-cinta__pista { animation: none; }
}
