/* =========================================================================
   Psicología para empresas: landing a código (templates/landing-empresas.php).
   Reutiliza tokens, botones, tarjetas y checklist de tfe-landing.css
   (.tfe-landing). Mobile first; sin anchos fijos (la versión anterior se
   desbordaba en móvil por columnas con min-width).
   ========================================================================= */

.emp-landing { background: var(--tfe-white); }
.emp-landing section { overflow-x: clip; }
.emp-center { text-align: center; }
.emp-landing .emp-h2 { font-size: clamp(26px, 4.4vw, 38px); font-weight: 700; line-height: 1.2; margin: 0 0 14px; }
.emp-landing .emp-h2--light { color: var(--tfe-white); }
.emp-lead { font-size: 17px; max-width: 760px; margin-bottom: 26px; }
.emp-center.emp-lead { margin-left: auto; margin-right: auto; }
.emp-lead--light { color: #d6e7e3; }
.emp-landing h3 { font-size: 19px; line-height: 1.25; }
.emp-landing .tfe-eyebrow { color: var(--tfe-green-700); }

/* ---------- Hero ---------- */
.emp-hero { padding: 32px 0 36px; background: linear-gradient(180deg, var(--tfe-green-50) 0%, var(--tfe-white) 100%); }
.emp-hero__grid { display: grid; gap: 26px; }
.emp-landing h1.emp-hero__title { font-size: clamp(29px, 5.6vw, 46px); font-weight: 700; line-height: 1.15; color: var(--tfe-green-800); margin: 0 0 14px; }
.emp-hero__intro { font-size: 17px; color: var(--tfe-ink); margin-bottom: 18px; }
.emp-landing ul.emp-hero__list { margin: 0 0 22px; }
.emp-hero__list strong { color: var(--tfe-green-800); }
.emp-hero__cta { display: flex; flex-direction: column; gap: 10px; }
.emp-hero__note { font-size: 14px; color: var(--tfe-muted); margin: 12px 0 0; }
.emp-hero__caption { font-size: 13px; color: var(--tfe-muted); margin: 10px 0 0; text-align: center; font-style: italic; }

/* ---------- Vídeo (fachada) ---------- */
.emp-video {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: var(--tfe-radius);
	overflow: hidden;
	background: var(--tfe-green-900);
	box-shadow: var(--tfe-shadow);
	cursor: pointer;
}
.emp-video img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s; }
.emp-video:hover img { transform: scale(1.03); }
.emp-video::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.55) 100%); pointer-events: none; }
.emp-video__play {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	width: 68px; height: 68px; border-radius: 50%;
	background: rgba(255,255,255,0.95); color: var(--tfe-green-800);
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 10px 30px rgba(0,0,0,0.3); z-index: 2; transition: transform 0.2s;
}
.emp-video:hover .emp-video__play { transform: translate(-50%, -50%) scale(1.06); }
.emp-video__label { position: absolute; left: 16px; right: 16px; bottom: 14px; color: #fff; font-size: 14px; font-weight: 600; z-index: 2; text-shadow: 0 1px 4px rgba(0,0,0,0.5); }
.emp-video.is-playing::after,
.emp-video.is-playing .emp-video__play,
.emp-video.is-playing .emp-video__label { display: none; }
.emp-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.emp-video:focus-visible { outline: 3px solid var(--tfe-green-500); outline-offset: 3px; }

/* ---------- Confianza ---------- */
.emp-trust { padding: 14px 0 6px; }
.emp-trust__list { list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.emp-trust__list li { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--tfe-line); border-radius: var(--tfe-radius-sm); background: var(--tfe-white); }
.emp-trust__list strong { font-family: var(--tfe-font-head); font-size: 22px; color: var(--tfe-green-800); line-height: 1.1; }
.emp-trust__list span { font-size: 13px; color: var(--tfe-muted); }

/* ---------- Datos ---------- */
.emp-datos__grid { display: grid; gap: 24px; }
.emp-datos__fuente { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tfe-green-700); }
.emp-datos__list { list-style: none; display: grid; gap: 12px; }
.emp-dato { display: grid; gap: 4px; }
.emp-dato__num { font-family: Georgia, "Times New Roman", serif; font-size: 40px; line-height: 1; color: var(--tfe-green-800); }
.emp-dato span { font-size: 15px; }

/* ---------- Para quién ---------- */
.emp-quien__grid { list-style: none; display: grid; gap: 14px; }
.emp-quien__item { position: relative; padding-left: 54px; }
.emp-quien__item::before {
	content: ""; position: absolute; left: 18px; top: 24px; width: 22px; height: 22px; border-radius: 50%;
	background: var(--tfe-green-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23205b4f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.emp-quien__item h3 { font-size: 17px; margin-bottom: 6px; }
.emp-quien__item p { margin: 0; font-size: 15px; }

/* ---------- Programas ---------- */
.emp-programas__grid { display: grid; gap: 16px; }
.emp-programa { background: var(--tfe-white); border: 1px solid var(--tfe-line); border-radius: var(--tfe-radius); padding: 26px 22px; display: flex; flex-direction: column; box-shadow: 0 4px 14px rgba(32, 91, 79, 0.06); }
.emp-landing .emp-programa h3 { font-size: 24px; margin-bottom: 14px; }
.emp-landing ul.emp-programa__list { list-style: none; display: grid; gap: 9px; margin: 0 0 22px; flex: 1; align-content: start; }
.emp-programa__list li { position: relative; padding-left: 18px; font-size: 15px; }
.emp-programa__list li::before { content: ""; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--tfe-green-500); }
.emp-programa--dark { background: var(--tfe-green-800); border-color: var(--tfe-green-800); color: #e6f0ee; }
.emp-programa--dark h3 { color: #f2f0a1; }
.emp-programa--dark .tfe-eyebrow { color: #f2f0a1; }
.emp-programa--dark .emp-programa__list li::before { background: #f2f0a1; }
.emp-programa--dark .tfe-btn--primary { background: #f2f0a1; color: var(--tfe-green-900) !important; box-shadow: none; }
.emp-programa--dark .tfe-btn--primary:hover { background: #fff; }

/* ---------- Packs ---------- */
.emp-packs__grid { display: grid; gap: 16px; }
.emp-pack { position: relative; background: var(--tfe-white); border: 1px solid var(--tfe-line); border-radius: var(--tfe-radius); padding: 28px 22px 24px; display: flex; flex-direction: column; }
.emp-pack--featured { border: 2px solid var(--tfe-green-800); background: #fbfbf0; box-shadow: var(--tfe-shadow); }
.emp-pack__badge { position: absolute; top: -13px; left: 22px; background: var(--tfe-green-800); color: #f2f0a1; font-family: var(--tfe-font-head); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; }
.emp-pack__label { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tfe-muted); margin: 0 0 4px; }
.emp-landing .emp-pack h3 { font-size: 26px; margin-bottom: 8px; }
.emp-pack__text { font-size: 15px; min-height: 0; }
.emp-landing ul.emp-pack__list { margin: 6px 0 22px; padding: 16px 0 0; border-top: 1px solid var(--tfe-line); flex: 1; align-content: start; }
.emp-pack__list li { font-size: 15px; }
.emp-packs__nota { font-size: 13px; color: var(--tfe-muted); text-align: center; margin: 18px 0 0; }

/* ---------- Metodología ---------- */
.emp-metodo__grid { display: grid; gap: 24px; margin-bottom: 28px; }
.emp-pilares { list-style: none; display: grid; gap: 14px; }
.emp-pilares h3 { font-size: 17px; margin-bottom: 6px; }
.emp-pilares p { margin: 0; font-size: 15px; }
.emp-metodo__equipo { margin: 18px 0 0; font-size: 15px; color: var(--tfe-ink); text-align: center; }

/* ---------- Casos ---------- */
.emp-casos__grid { display: grid; gap: 18px; }
.emp-caso { background: var(--tfe-green-800); color: #e6f0ee; border-radius: var(--tfe-radius); padding: 26px 22px; }
.emp-landing .emp-caso h3 { color: #f2f0a1; font-size: 22px; }
.emp-caso p { margin-bottom: 18px; }
.emp-caso__cifras { list-style: none; display: flex; gap: 28px; }
.emp-caso__cifras li { display: grid; }
.emp-caso__cifras strong { font-family: var(--tfe-font-head); font-size: 30px; color: #f2f0a1; line-height: 1; }
.emp-caso__cifras span { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; }
.emp-cita blockquote p { font-size: 17px; }

/* ---------- Vías ---------- */
.emp-vias__grid { display: grid; gap: 14px; }
.emp-via { background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.18); border-radius: var(--tfe-radius); padding: 24px 20px; display: flex; flex-direction: column; }
.emp-landing .emp-via h3 { color: #f2f0a1; font-size: 20px; }
.emp-via p { flex: 1; font-size: 15px; color: #e6f0ee; }
.emp-via .tfe-btn--secondary { background: transparent; color: #fff !important; border-color: rgba(255,255,255,0.6); }
.emp-via .tfe-btn--secondary:hover { background: #fff; color: var(--tfe-green-800) !important; }
.emp-via__hint { display: block; margin-top: 8px; font-size: 12px; color: #b9d3cd; text-align: center; }

/* ---------- Formulario ---------- */
.emp-form__wrap { display: grid; gap: 22px; }
.emp-form__alt a { font-weight: 600; }
.emp-form__box { padding: 26px 20px; }
.emp-form .wpcf7 form { display: flex; flex-direction: column; gap: 12px; }
.emp-form .wpcf7 form > div { float: none !important; width: 100% !important; }
.emp-form .wpcf7 form h3 { display: none; } /* El formulario trae su propio título; la sección ya lo pone. */
.emp-form .wpcf7 form p { margin: 0 !important; }
.emp-form .wpcf7 form br { display: none; }
.emp-form .wpcf7 form .seccion10050 p { display: grid; gap: 12px; }
.emp-form .wpcf7-form-control-wrap { display: block; }
.emp-form .wpcf7 form p[style*="font-size:12px"] { color: var(--tfe-muted) !important; font-size: 12px; line-height: 1.5 !important; }
.emp-form .wpcf7 form .wpcf7-recaptcha { margin: 4px 0; }
.emp-form .wpcf7 input[type="text"],
.emp-form .wpcf7 input[type="email"],
.emp-form .wpcf7 input[type="tel"],
.emp-form .wpcf7 select,
.emp-form .wpcf7 textarea {
	width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #d5d4d1; border-radius: var(--tfe-radius-sm);
	background: #fafaf9; font-size: 16px; color: var(--tfe-ink); box-sizing: border-box;
}
.emp-form .wpcf7 input[type="text"],
.emp-form .wpcf7 input[type="email"],
.emp-form .wpcf7 input[type="tel"],
.emp-form .wpcf7 select { width: 100% !important; min-width: 0; max-width: none; }
.emp-form .wpcf7 textarea { width: 100% !important; min-height: 120px; }
.emp-form .wpcf7-form-control-wrap { float: none !important; width: 100% !important; margin: 0 !important; } /* El CSS global del sitio los pone a float:left y 48 %. */
.emp-form .wpcf7 input:focus,
.emp-form .wpcf7 select:focus,
.emp-form .wpcf7 textarea:focus { outline: none; border-color: var(--tfe-green-700); box-shadow: 0 0 0 3px rgba(0, 99, 91, 0.15); background: #fff; }
.emp-form .wpcf7 .wpcf7-list-item { margin: 0; }
.emp-form .wpcf7 .wpcf7-list-item label { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; }
.emp-form .wpcf7 input[type="checkbox"] { width: 18px; height: 18px; margin: 2px 0 0; flex: 0 0 auto; accent-color: var(--tfe-green-700); }
.emp-form .wpcf7-submit {
	width: 100%; min-height: 54px; border: 0; border-radius: 999px; cursor: pointer;
	background: var(--tfe-cta); color: #fff; font-family: var(--tfe-font-head); font-size: 17px; font-weight: 700;
	box-shadow: 0 8px 20px rgba(4, 120, 87, 0.25); transition: background-color 0.2s;
}
.emp-form .wpcf7-submit:hover { background: var(--tfe-cta-hover); }
.emp-form .wpcf7-spinner { display: block; margin: 8px auto 0; }
.emp-form .wpcf7-not-valid-tip { font-size: 13px; color: #b42318; margin-top: 4px; }
.emp-form .wpcf7-response-output { margin: 4px 0 0; padding: 12px 14px; border-radius: var(--tfe-radius-sm); border: 1px solid var(--tfe-line) !important; font-size: 15px; }
.emp-form .wpcf7 form.sent .wpcf7-response-output { background: var(--tfe-green-100); border-color: var(--tfe-green-500) !important; color: var(--tfe-green-900); }
.emp-form .wpcf7 form.invalid .wpcf7-response-output,
.emp-form .wpcf7 form.failed .wpcf7-response-output { background: #fff4f2; border-color: #f3b3ab !important; color: #8a1f14; }
.emp-form .grecaptcha-badge { visibility: hidden; }

/* ---------- FAQ ---------- */
.emp-faq__list { border-top: 1px solid var(--tfe-line); }
.emp-faq__item { border-bottom: 1px solid var(--tfe-line); }
.emp-faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; font-family: var(--tfe-font-head); font-weight: 600; font-size: 17px; color: var(--tfe-green-800); }
.emp-faq__item summary::-webkit-details-marker { display: none; }
.emp-faq__icon { flex: 0 0 26px; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--tfe-green-800); position: relative; }
.emp-faq__icon::before, .emp-faq__icon::after { content: ""; position: absolute; background: var(--tfe-green-800); left: 50%; top: 50%; transform: translate(-50%, -50%); }
.emp-faq__icon::before { width: 11px; height: 1.5px; }
.emp-faq__icon::after { width: 1.5px; height: 11px; transition: transform 0.2s; }
.emp-faq__item[open] .emp-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.emp-faq__a { padding: 0 0 20px; font-size: 16px; }
.emp-faq__a p { margin: 0; }

/* ---------- Cierre ---------- */
.emp-cierre { padding-bottom: 72px; }

/* Checklists: icono de check real (el de tfe-landing usa una máscara que se ve como círculo). */
.emp-landing .tfe-checklist li::before {
	-webkit-mask: none; mask: none;
	background: var(--tfe-green-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M6 12.5l4 4 8-8'/%3E%3C/svg%3E") center / 13px no-repeat;
}

/* Widget flotante de WhatsApp (plugin): en móvil tapa la barra fija; la landing ya tiene WhatsApp en hero y formulario. */
@media (max-width: 899px) {
	body.emp-landing-page .qlwapp { display: none !important; }
}

/* ---------- Barra fija móvil ---------- */
.emp-sticky {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990;
	padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
	background: rgba(255,255,255,0.96); backdrop-filter: blur(8px);
	box-shadow: 0 -8px 24px rgba(0,0,0,0.12);
	transform: translateY(110%); transition: transform 0.25s;
}
.emp-sticky.is-visible { transform: translateY(0); }
body.emp-sticky-visible .qlwapp { bottom: 84px !important; }

/* ---------- Escritorio ---------- */
@media (min-width: 640px) {
	.emp-trust__list { grid-template-columns: repeat(4, 1fr); }
	.emp-hero__cta { flex-direction: row; flex-wrap: wrap; }
	.emp-quien__grid { grid-template-columns: 1fr 1fr; }
	.emp-datos__list { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 900px) {
	.emp-hero { padding: 56px 0 48px; }
	.emp-hero__grid { grid-template-columns: 1.1fr 0.9fr; align-items: center; gap: 48px; }
	.emp-datos__grid { grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; }
	.emp-datos__list { grid-template-columns: 1fr; }
	.emp-programas__grid { grid-template-columns: repeat(3, 1fr); }
	.emp-packs__grid { grid-template-columns: repeat(3, 1fr); align-items: stretch; }
	.emp-metodo__grid { grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; }
	.emp-pilares { grid-template-columns: repeat(3, 1fr); }
	.emp-casos__grid { grid-template-columns: 1fr 1fr; }
	.emp-caso { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; }
	.emp-caso p { margin-bottom: 0; }
	.emp-vias__grid { grid-template-columns: repeat(3, 1fr); }
	.emp-form__wrap { grid-template-columns: 0.8fr 1.2fr; gap: 40px; align-items: start; }
	.emp-form__box { padding: 32px 30px; }
	.emp-form .wpcf7 form .seccion10050 p { grid-template-columns: 1fr 1fr; }
	.emp-sticky { display: none; }
}
