/* ============================================================================
   FM PÁGINAS 2026 — Profesionales, Quiénes somos y Cita Previa con el estilo editorial 2026 (27-oct-2026).
   Complementa a fm-proyectos-2026.css (héroe, intro, bloques alternos, cifras, cierre: esas páginas llevan
   también la meta _fm_proyectos_2026). Aquí solo lo que no existe allí: rejilla de servicios y bloque de cita
   (formulario + datos + horario + mapa). Se encola solo en páginas con la meta _fm_paginas_2026 = 1 y todo va
   bajo body.fm-pg-2026. Tokens: los --fm-* de la cabecera 2026.
   ============================================================================ */

/* ---------- Héroe: la H1 más larga («PROFESIONALES» ≈ 8,9 × font-size en mayúsculas) cabe en la fila sin partir la palabra ---------- */
body.fm-pg-2026 .fm-p-hero h1 { font-size: clamp(40px, 5.6vw, 84px) !important; overflow-wrap: normal; hyphens: manual; }
@media (max-width: 767px) { body.fm-pg-2026 .fm-p-hero h1 { font-size: clamp(28px, 8.6vw, 48px) !important; } }

/* ---------- Rejilla de servicios (4 columnas numeradas) ---------- */
body.fm-pg-2026 .fm-pg-servicios.et_pb_section { padding: clamp(72px, 10vw, 136px) 0 !important; background: var(--fm-arena); }
body.fm-pg-2026 .fm-pg-servicios__cab { max-width: 640px; margin: 0 0 clamp(40px, 6vw, 72px); }
body.fm-pg-2026 .fm-pg-servicios__cab h2 { font-size: clamp(28px, 3vw, 40px) !important; line-height: 1.2 !important; color: var(--fm-texto) !important; margin: 0 !important; }
body.fm-pg-2026 .fm-pg-servicios__lista { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(32px, 4vw, 56px); list-style: none !important; margin: 0; padding: 0 !important; }
body.fm-pg-2026 .fm-pg-servicios__lista li { padding: 24px 0 0 !important; border-top: 1px solid var(--fm-piedra); }
body.fm-pg-2026 .fm-pg-servicios__n { display: block; font-size: 13px; letter-spacing: 3px; color: var(--fm-tierra-texto); margin: 0 0 18px; }
body.fm-pg-2026 .fm-pg-servicios__lista h3 { font-size: 15px !important; line-height: 1.45 !important; letter-spacing: .14em; text-transform: uppercase; color: var(--fm-texto) !important; margin: 0 0 14px !important; }
body.fm-pg-2026 .fm-pg-servicios__lista p { font-size: 15.5px; line-height: 1.7; color: var(--fm-texto); margin: 0 !important; padding: 0 !important; }
@media (max-width: 980px) { body.fm-pg-2026 .fm-pg-servicios__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { body.fm-pg-2026 .fm-pg-servicios__lista { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Cita previa: formulario a la izquierda, datos y horario a la derecha ---------- */
body.fm-pg-2026 .fm-pg-cita.et_pb_section { padding: clamp(72px, 10vw, 136px) 0 !important; background: #fff; }
body.fm-pg-2026 .fm-pg-cita .et_pb_row { display: grid !important; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
body.fm-pg-2026 .fm-pg-cita .et_pb_row::after { display: none !important; }
body.fm-pg-2026 .fm-pg-cita .et_pb_column { width: auto !important; margin: 0 !important; float: none !important; }
@media (max-width: 980px) { body.fm-pg-2026 .fm-pg-cita .et_pb_row { grid-template-columns: minmax(0, 1fr); } }
body.fm-pg-2026 .fm-pg-cita__cab { margin: 0 0 32px !important; }
body.fm-pg-2026 .fm-pg-cita__cab h2 { font-size: clamp(28px, 3vw, 40px) !important; line-height: 1.2 !important; color: var(--fm-texto) !important; margin: 0 !important; }

/* Formulario de Divi (el módulo es el mismo que en la página original; solo cambia su aspecto) */
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container { margin: 0 !important; }
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container .et_pb_contact_main_title { display: none; }
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container .input,
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container input[type="text"],
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container input[type="email"],
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container textarea {
	background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--fm-piedra) !important; border-radius: 0 !important;
	padding: 14px 0 !important; font-family: 'Inter', Helvetica, Arial, sans-serif !important; font-size: 16px !important; color: var(--fm-texto) !important;
}
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container .input::placeholder,
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container textarea::placeholder { color: var(--fm-tierra-texto) !important; opacity: 1; }
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container .input:focus,
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container textarea:focus { outline: 2px solid var(--fm-tierra) !important; outline-offset: 2px; border-bottom-color: var(--fm-texto) !important; }
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container .et_pb_contact_submit {
	background: transparent !important; color: var(--fm-texto) !important; border: 1px solid var(--fm-tierra) !important; border-radius: 0 !important;
	font-family: 'Inter', Helvetica, Arial, sans-serif !important; font-size: 12px !important; font-weight: 500 !important; letter-spacing: 2px !important;
	text-transform: uppercase; padding: 14px 28px !important; line-height: 1.4 !important;
}
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container .et_pb_contact_submit:hover { background: var(--fm-greige) !important; }
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container .et_pb_contact_submit::after { display: none !important; }
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container .et_pb_contact_submit:focus-visible { outline: 2px solid var(--fm-texto) !important; outline-offset: 3px; }

/* El módulo trae del original texto blanco a 40 px (iba sobre fondo oscuro): aviso de validación/éxito y pregunta del captcha */
body.fm-pg-2026 .fm-pg-cita .et-pb-contact-message,
body.fm-pg-2026 .fm-pg-cita .et-pb-contact-message p,
body.fm-pg-2026 .fm-pg-cita .et-pb-contact-message li { color: var(--fm-texto) !important; font-family: 'Inter', Helvetica, Arial, sans-serif !important; font-size: 15.5px !important; line-height: 1.6 !important; }
body.fm-pg-2026 .fm-pg-cita .et-pb-contact-message p { font-weight: 500 !important; margin: 0 0 6px !important; padding: 0 !important; }
body.fm-pg-2026 .fm-pg-cita .et-pb-contact-message ul { margin: 0 0 24px !important; padding: 0 0 0 1.2em !important; }
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_right p { color: var(--fm-texto) !important; font-size: 16px !important; line-height: 1.4 !important; }
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container .et_pb_contact_captcha { width: 72px !important; text-align: center; margin-left: 8px !important; }
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container input.et_contact_error.et_contact_error,
body.fm-pg-2026 .fm-pg-cita .et_pb_contact_form_container textarea.et_contact_error.et_contact_error { border-bottom: 2px solid #b3261e !important; }

/* Datos de contacto y horario */
body.fm-pg-2026 .fm-pg-datos { font-family: 'Inter', Helvetica, Arial, sans-serif; color: var(--fm-texto); }
body.fm-pg-2026 .fm-pg-datos h2,
body.fm-pg-2026 .fm-pg-datos h3 { font-family: 'Inter', Helvetica, Arial, sans-serif !important; font-weight: 400 !important; padding: 0 !important; }
body.fm-pg-2026 .fm-pg-datos h3 { font-size: 12px !important; font-weight: 500 !important; line-height: 1.6 !important; letter-spacing: 2px; text-transform: uppercase; color: var(--fm-tierra-texto) !important; margin: 0 0 10px !important; }
body.fm-pg-2026 .fm-pg-datos__grupo { padding: 0 0 24px !important; margin: 0 0 24px !important; border-bottom: 1px solid var(--fm-greige); }
body.fm-pg-2026 .fm-pg-datos__grupo:last-child { border-bottom: 0; margin-bottom: 0 !important; }
body.fm-pg-2026 .fm-pg-datos p { font-size: 16px; line-height: 1.7; margin: 0 !important; padding: 0 !important; }
body.fm-pg-2026 .fm-pg-datos a { color: var(--fm-texto) !important; text-decoration: underline; text-decoration-color: var(--fm-tierra); text-underline-offset: 4px; }
body.fm-pg-2026 .fm-pg-datos a:focus-visible { outline: 2px solid var(--fm-tierra); outline-offset: 3px; }
body.fm-pg-2026 .fm-pg-horario { list-style: none !important; margin: 0 0 12px; padding: 0 !important; }
body.fm-pg-2026 .fm-pg-horario li { display: flex; justify-content: space-between; gap: 16px; padding: 6px 0 !important; font-size: 15.5px; line-height: 1.5; }
body.fm-pg-2026 .fm-pg-horario span:last-child { white-space: nowrap; }
body.fm-pg-2026 .fm-pg-nota { font-size: 13.5px !important; line-height: 1.6 !important; color: var(--fm-tierra-texto); margin-top: 12px !important; }

/* Mapa: se conserva el iframe original (Complianz lo bloquea hasta aceptar; su marcador reserva la altura del
   iframe por la regla fm-cmplz-marcador de functions.php). Aquí solo el marco. */
body.fm-pg-2026 .fm-pg-mapa.et_pb_section { padding: 0 0 clamp(72px, 10vw, 136px) !important; background: #fff; }
body.fm-pg-2026 .fm-pg-mapa__cab { margin: 0 0 28px !important; }
body.fm-pg-2026 .fm-pg-mapa__cab h2 { font-size: clamp(28px, 3vw, 40px) !important; line-height: 1.2 !important; color: var(--fm-texto) !important; margin: 0 !important; }
body.fm-pg-2026 .fm-pg-mapa .et_pb_code { margin: 0 !important; }
body.fm-pg-2026 .fm-pg-mapa iframe { display: block; width: 100% !important; border: 0; }

/* Marcas y «Contacta» (secciones conservadas de la página original): solo el respiro alrededor */
body.fm-pg-2026 .fm-pg-pendiente { background: #fff3cd; outline: 1px dashed #8a6d00; color: #5c4600 !important; padding: 2px 6px; }

/* ============================================================================
   PULIDO 27-oct-2026 (revisión de Álvaro). Backup: /root/wordpress-backups/rediseno-3-pulido-20261027-1148/
   ============================================================================ */

/* 1. Héroe: texto centrado en vertical en la parte VISIBLE (debajo de la cabecera transparente, que mide
      --fm-h-alto). Mismo ancho de columna y misma alineación horizontal que en /proyectos/. */
body.fm-pg-2026 .fm-p-hero.et_pb_section { justify-content: center; padding: calc(var(--fm-h-alto, 112px) + 32px) 0 32px !important; }
@media (max-width: 767px) { body.fm-pg-2026 .fm-p-hero.et_pb_section { padding: calc(var(--fm-h-alto, 64px) + 24px) 0 24px !important; } }
body.fm-pg-2026 .fm-p-hero .fm-p-eyebrow { opacity: 1; }
/* El degradado de /proyectos/ oscurece el PIE (allí va el texto); aquí el texto va en la franja media-izquierda */
body.fm-pg-2026 .fm-p-hero.et_pb_section::before {
	background:
		linear-gradient(to right, rgba(20, 17, 14, .72) 0%, rgba(20, 17, 14, .62) 50%, rgba(20, 17, 14, .25) 85%, rgba(20, 17, 14, .15) 100%),
		linear-gradient(to top, rgba(20, 17, 14, .25) 0%, rgba(20, 17, 14, .10) 45%, rgba(20, 17, 14, .30) 100%);
	/* blanco ≥ 4,5:1 hasta sobre un píxel blanco necesita ≥ 58 % de capa oscura donde va el texto (medido con contraste-heroe.js) */
}
@media (max-width: 767px) {
	body.fm-pg-2026 .fm-p-hero.et_pb_section::before { background: rgba(20, 17, 14, .60); }
}

/* 2. Texto de párrafo: Inter 400 (el cuerpo de Divi hereda Poppins 500, que en Inter se ve en negrita).
      :where() deja la especificidad baja para que eyebrows, metas y enlaces en mayúsculas sigan en 500. */
body.fm-pg-2026 :where(.fm-p, .fm-proy-carrusel, .fm-pg-cita, .fm-pg-mapa) :where(p, li) { font-family: 'Inter', Helvetica, Arial, sans-serif !important; font-weight: 400 !important; }
body.fm-pg-2026 :is(.fm-p-eyebrow, .fm-pg-eyebrow, .fm-p-bloque__meta, .fm-p-cifra__t, .fm-p-ver, .fm-p-cta, .fm-pg-servicios__n, .fm-pg-datos h3) { font-weight: 500 !important; }
body.fm-pg-2026 .fm-p-bloque__txt,
body.fm-pg-2026 .fm-p-intro__lista p,
body.fm-pg-2026 .fm-pg-servicios__lista p { font-size: 16px !important; line-height: 1.75 !important; }
body.fm-pg-2026 .fm-pg-horario li { font-size: 16px; }

/* 2. Secciones de texto sobre blanco: eyebrow + título/frase en la tipografía de títulos 2026 */
body.fm-pg-2026 .fm-pg-intro.et_pb_section { padding: clamp(80px, 11vw, 152px) 0 !important; background: #fff; }
body.fm-pg-2026 .fm-pg-intro__in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: start; }
body.fm-pg-2026 .fm-pg-eyebrow { font-family: 'Inter', Helvetica, Arial, sans-serif !important; font-size: 11px !important; line-height: 1.5 !important; letter-spacing: 3px !important; text-transform: uppercase; color: var(--fm-tierra-texto) !important; margin: 0 0 20px !important; padding: 0 !important; }
body.fm-pg-2026 .fm-pg-titulo { font-size: clamp(30px, 3.4vw, 50px) !important; line-height: 1.12 !important; letter-spacing: -.005em; color: var(--fm-texto) !important; margin: 0 !important; }
body.fm-pg-2026 .fm-pg-frase { font-size: clamp(22px, 2.3vw, 32px) !important; line-height: 1.4 !important; color: var(--fm-texto) !important; margin: 0 !important; padding: 0 !important; max-width: 30em; }
body.fm-pg-2026 .fm-pg-entrada { font-size: clamp(18px, 1.4vw, 20px) !important; line-height: 1.65 !important; max-width: 60ch; margin: 0 !important; }
/* «Sobre nosotros»: eyebrow encima y la frase a tamaño de título; el BLOQUE va centrado en la página con el
   mismo ancho de lectura que «Nuestro compromiso» y el texto alineado a la izquierda dentro de él */
body.fm-pg-2026 .fm-pg-intro--frase .fm-pg-intro__in { display: block; max-width: 980px; margin: 0 auto; text-align: left; }
body.fm-pg-2026 .fm-pg-intro--frase .fm-pg-frase { font-size: clamp(26px, 3vw, 42px) !important; line-height: 1.28 !important; max-width: none; }
/* «Nuestro compromiso»: frase destacada centrada, a gran tamaño */
body.fm-pg-2026 .fm-pg-intro--destacada .fm-pg-intro__in { display: block; max-width: 980px; margin: 0 auto; text-align: center; }
body.fm-pg-2026 .fm-pg-intro--destacada .fm-pg-frase { font-size: clamp(24px, 2.9vw, 40px) !important; line-height: 1.32 !important; max-width: none; }
body.fm-pg-2026 .fm-pg-intro--destacada .fm-pg-eyebrow { margin-bottom: 28px !important; }
/* «Proyectos integrales…» (27338): eyebrow + título a la izquierda, lista a la derecha */
body.fm-pg-2026 .fm-pg-intro--lista .fm-p-intro__lista { margin: 0; text-align: left; }
@media (max-width: 980px) {
	body.fm-pg-2026 .fm-pg-intro__in { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}

/* 3. Títulos: nunca partir palabras; los de los bloques editoriales se dimensionan por el ancho de SU columna
      («DEPARTAMENTOS» en mayúsculas con .08em ≈ 9,8 × font-size → 9,6cqi deja un 6 % de margen) */
body.fm-pg-2026 :is(.fm-p, .fm-pg-cita, .fm-pg-mapa, .fm-pg-marcas, .fm-proy-carrusel) :is(h1, h2, h3) { overflow-wrap: normal !important; word-break: normal !important; hyphens: manual !important; }
body.fm-pg-2026 .fm-p-bloque__texto { container-type: inline-size; min-width: 0; }
@supports (font-size: 1cqi) {
	body.fm-pg-2026 .fm-p-bloque h3 { font-size: clamp(24px, min(3.4vw, 9.6cqi), 52px) !important; }
}

/* 4. Contadores (js/fm-contadores-2026.js): el ancho no cambia mientras cuentan */
body.fm-pg-2026 .fm-pg-contador { font-variant-numeric: tabular-nums; }
body.fm-pg-2026 .fm-pg-contador__anim { display: inline-block; font-variant-numeric: tabular-nums; text-align: center; }

/* 5. «Trabajamos con las mejores marcas» (27338): título y botón del sistema 2026; el carrusel no se toca */
body.fm-pg-2026 .fm-pg-marcas h2 { font-family: 'Inter', Helvetica, Arial, sans-serif !important; font-weight: 400 !important; font-size: clamp(28px, 3vw, 40px) !important; line-height: 1.2 !important; color: var(--fm-texto) !important; padding: 0 !important; }
body.fm-pg-2026 .fm-pg-marcas .et_pb_divider { display: none !important; }
body.fm-pg-2026 #page-container .fm-pg-marcas .et_pb_button {
	display: inline-block; min-width: 180px; padding: 14px 28px !important; font-family: 'Inter', Helvetica, Arial, sans-serif !important; font-size: 12px !important; font-weight: 500 !important;
	line-height: 1.4 !important; letter-spacing: 2px !important; text-transform: uppercase; color: var(--fm-texto) !important; background: transparent !important;
	border: 1px solid var(--fm-tierra) !important; border-radius: 0 !important; transition: background-color 500ms ease;
}
body.fm-pg-2026 #page-container .fm-pg-marcas .et_pb_button:hover { background: var(--fm-greige) !important; padding: 14px 28px !important; }
body.fm-pg-2026 #page-container .fm-pg-marcas .et_pb_button::after { display: none !important; }
body.fm-pg-2026 #page-container .fm-pg-marcas .et_pb_button:focus-visible { outline: 2px solid var(--fm-texto); outline-offset: 3px; }
