<?php
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}
$avi_lang = 'es';
$is_fr    = false;
$is_es    = true;

$avi_meta_title = 'FAQ — Avision';
$avi_meta_desc  = 'Respuestas a las preguntas más frecuentes sobre Avision — para comercios locales y agencias.';
$avi_schema_json = array(
	'@context' => 'https://schema.org',
	'@type'    => 'FAQPage',
	'name'     => 'FAQ — Avision',
	'url'      => 'https://avision.org/es/faq/',
);

if ( ! class_exists( 'Avision_Page_Template' ) ) {
	require_once AVISION_PLUGIN_DIR . 'includes/class-avision-page-template.php';
}

if ( ! function_exists( 'avi_faq_render_accordions' ) ) {
	/**
	 * @param array<int, string> $questions Summary labels.
	 * @param array<int, string> $answers   Answer bodies.
	 */
	function avi_faq_render_accordions( array $questions, array $answers ): void {
		foreach ( $questions as $idx => $question ) {
			$answer = isset( $answers[ $idx ] ) ? $answers[ $idx ] : '';
			?>
			<details class="avi-faq-page__item">
				<summary class="avi-faq-page__summary"><?php echo esc_html( $question ); ?></summary>
				<div class="avi-faq-page__answer">
					<p><?php echo esc_html( $answer ); ?></p>
				</div>
			</details>
			<?php
		}
	}
}

$b2c_questions = array(
	'¿Cómo conecto mi Google Business Profile?',
	'¿Por qué mi score de visibilidad es bajo?',
	'¿Cómo funciona Guardian Mode?',
	'Mis fotos no aparecen en Google — ¿qué debo hacer?',
	'¿Cómo cancelo o modifico mi plan?',
	'¿Qué es Growth Radar?',
	'Canjeé mi código AppSumo pero mi panel está vacío',
	'¿Cómo comparto mi informe del panel?',
	'¿Por qué mi siguiente paso está bloqueado — cómo funcionan los timers?',
	'Pagué pero Guardian o Growth Radar sigue inactivo',
	'¿Cómo paso de AVI Access a Guardian o un plan mensual?',
	'Conecté el Google Business Profile incorrecto — ¿cómo cambio?',
	'Mi conexión Google muestra un error — ¿cómo reconecto?',
);

$b2b_questions = array(
	'¿Cómo importo las ubicaciones de mis clientes?',
	'¿Cómo activo Guardian en varias ubicaciones a la vez?',
	'¿Cómo accedo al panel de un cliente específico?',
	'¿Cómo funcionan los precios wholesale?',
	'¿Cómo genero un enlace de informe para el cliente?',
	'¿Cómo subo de nivel de agencia?',
	'Mis tokens de Google expiraron — ¿cómo reconecto?',
	'¿Cómo funciona la facturación por ubicación de cliente?',
	'¿Cuál es la diferencia entre Agency Access y la facturación mensual?',
	'¿Cómo añado una nueva ubicación de cliente tras la importación inicial?',
	'¿Cuál es la diferencia entre Radar Hebdo y Radar Elite?',
	'La activación masiva se ejecutó pero algunas ubicaciones siguen inactivas',
	'¿Cómo activo el grey label en los informes de clientes?',
);

$b2c_answers = array(
	'Tras comprar AVI Access, conecta tu cuenta Google vía OAuth 2.0 desde tu panel. Haz clic en "Conectar Google" y autoriza a Avision a acceder a tu Google Business Profile.',
	'Tu score de visibilidad refleja el estado actual de optimización de tu Google Business Profile en múltiples señales clave: consistencia NAP, tasa de respuesta a reseñas, frescura de fotos, actividad de posts, posiciones de palabras clave y completitud del perfil. Un score bajo es normal al inicio — significa que hay mucho margen de mejora. AVI te guiará paso a paso en las acciones que subirán tu score más rápido.',
	'Guardian Mode despliega 9 escudos activos que monitorizan y protegen tu ficha 24/7: detección de cambios no autorizados, respuestas a reseñas, publicación de posts, gestión de fotos y alertas de posicionamiento.',
	'Google revisa todas las fotos enviadas antes de publicarlas — entre 24 h y 7 días. Verifica que tus fotos cumplan las directrices de Google: sin texto superpuesto, sin fotos de stock, contenido real de tu establecimiento.',
	'AVI Access es un pago único sin cargo recurrente — no hay nada que cancelar. Guardian Mode y Growth Radar son suscripciones mensuales. Para cancelar, contacta en contact@avision.org con el email de tu cuenta — la cancelación se procesa en 24 horas y entra en vigor al final del periodo de facturación actual.',
	'Growth Radar sigue las posiciones exactas de las palabras clave que traen clientes vía Google Maps y búsqueda local. Ves qué términos te hacen subir o bajar, y AVI te indica cómo progresar.',
	'Tras canjear tu código AppSumo, conecta tu Google Business Profile para activar el panel. Si el panel sigue vacío, contacta contact@avision.org con tu código AppSumo.',
	'El enlace de informe de solo lectura lo gestiona tu agencia si estás en un plan de agencia. Tu agencia configura qué secciones son visibles y te envía el enlace — muestra tu score de visibilidad, actividad Guardian y posiciones de palabras clave en tiempo real. Si compraste AVI Access directamente, contacta contact@avision.org para solicitar un enlace de informe compartible.',
	'Cada nivel de tu progresión AVI se desbloquea tras un tiempo de espera — normalmente 24 a 72 h. Este retraso garantiza que las optimizaciones se reflejen en Google antes de pasar al siguiente paso.',
	'La activación se dispara automáticamente por el webhook de Stripe, normalmente en 60 segundos. Si Guardian o Growth Radar sigue inactivo tras 5 minutos, contacta contact@avision.org con tu recibo de pago.',
	'Desde tu panel premium, baja a la sección Guardian Mode o Growth Radar y haz clic en el botón de activación. Serás redirigido al pago seguro de Stripe.',
	'Si seleccionaste la ubicación incorrecta durante el onboarding, ve a tu panel y haz clic en el indicador de conexión Google para reautorizar vía OAuth — podrás elegir la ubicación correcta del Business Profile. Si persiste, contacta contact@avision.org con tu email de cuenta y el nombre correcto del negocio. Tu AVI Access y productos pagados no se ven afectados.',
	'En la mayoría de casos, Avision refresca tu conexión Google automáticamente en segundo plano — no notarás nada. Si tu autorización fue revocada (por ejemplo, si eliminaste Avision de los permisos de tu cuenta Google), el modal de reconexión aparecerá al abrir tu panel. Sigue el flujo de autorización — y marca todas las casillas de permiso, incluidas las que permiten a Avision ver, editar y gestionar tu Business Profile. Si dejas alguna sin marcar, AVI no podrá monitorizar ni actualizar tu perfil automáticamente. Si el modal no aparece, ve a myaccount.google.com/permissions, elimina Avision de apps autorizadas y vuelve a tu panel — el modal se lanzará automáticamente. Tu score, progresión, estado Guardian y todos tus datos se conservan durante la reconexión — solo se renueva el token de Google.',
);

$b2b_answers = array(
	'Desde tu Agency Fleet Dashboard, haz clic en Connect Google y autoriza tu cuenta de agencia vía OAuth. Avision obtendrá todas las ubicaciones de Google Business Profile asociadas a tu cuenta. Usa Import more listings para añadir ubicaciones no incluidas en la importación inicial. Luego puedes asignar Guardian Mode y Growth Radar a ubicaciones individuales o en masa. La importación lleva menos de 5 minutos para la mayoría de portfolios de agencia.',
	'Desde tu Agency Fleet Dashboard, selecciona las ubicaciones con las casillas y haz clic en Activate Guardian — un solo pago Stripe para todas las ubicaciones seleccionadas.',
	'Desde tu Agency Fleet Dashboard, encuentra la ubicación en la lista y haz clic en Manage para acceder al panel premium de solo lectura de ese cliente.',
	'Los precios wholesale son visibles en tu Agency Fleet Dashboard tras el onboarding. Niveles: T1 (1–10 fichas), T2 (11–50 fichas), T3 (51+ fichas) — cuantas más fichas gestiones, menos pagas por ficha.',
	'Desde tu Agency Fleet Dashboard, abre el icono de ajustes (⚙️) en la tarjeta del cliente. Configura qué secciones del panel son visibles con los toggles. Una vez configurado, usa el enlace View Dashboard o copia la URL del informe — con formato avision.org/report/tu-agencia/client-id/. Envía este enlace directamente a tu cliente. El informe se actualiza en tiempo real y es estrictamente de solo lectura.',
	'Tu nivel actual se muestra en Agency Fleet Dashboard bajo Account Settings. Para subir de nivel, contacta contact@avision.org — la migración tarda menos de 24 h.',
	'Avision refresca los tokens OAuth de Google automáticamente antes de cada escaneo — en la mayoría de casos no necesitas hacer nada. Si un token fue revocado por un cliente (eliminó Avision de los permisos de su cuenta Google), reconecta haciendo clic en Connect Google en tu Agency Fleet Dashboard y reautorizando la cuenta Google relevante vía OAuth. Importante: en la pantalla de autorización, todas las casillas de permiso deben estar marcadas — incluido ver, editar y gestionar acceso. Si alguna queda sin marcar, AVI no puede monitorizar ni actuar en el perfil de ese cliente. Si el modal no aparece automáticamente, ve a myaccount.google.com/permissions, elimina Avision de apps autorizadas y vuelve al panel. Todos los datos del cliente, historial Guardian y configuraciones se conservan — solo se renueva el token API.',
	'Cada ubicación de cliente se factura independientemente. Guardian Mode y Growth Radar son suscripciones mensuales por ficha, activadas vía un solo pago Stripe agrupado.',
	'Agency Access es un pago único de por vida que da acceso permanente al Fleet Command Center. Guardian Mode y Growth Radar son suscripciones mensuales opcionales por ficha de cliente.',
	'Desde tu Agency Fleet Dashboard, haz clic en Import y reconecta tu cuenta Google para sincronizar nuevas fichas. Las fichas existentes no se ven afectadas.',
	'Radar Hebdo sigue hasta 75 palabras clave por ubicación, actualizadas cada lunes. Radar Elite sigue 100+ palabras clave actualizadas cada día — ideal para mercados muy competitivos.',
	'La activación masiva procesa las ubicaciones seleccionadas vía un solo pago Stripe. Si algunas ubicaciones siguen inactivas tras 5 minutos, contacta contact@avision.org con tu recibo.',
	'Grey label está incluido en todos los niveles de Agency Access. Para configurar tu branding, ve a Agency Fleet Dashboard → My Account → My Agency Identity. Sube tu logo y activa grey label. El logo de tu agencia aparecerá en todos los enlaces de informes orientados al cliente, con formato avision.org/report/tu-agencia-slug/client-id/. Los cambios se aplican de inmediato a informes existentes y futuros.',
);

$hero = array();

Avision_Page_Template::render(
	'faq',
	$hero,
	static function () use ( $avi_schema_json, $b2c_questions, $b2c_answers, $b2b_questions, $b2b_answers ) {
		$contact_url = home_url( '/es/contacto/' );
		?>
		<div class="avi-faq-page">
			<style>
				.avi-faq-page { background: #0A1628; color: #ffffff; font-family: inherit; line-height: 1.65; }
				.avi-faq-page * { box-sizing: border-box; }
				.avi-faq-page__inner { max-width: 900px; margin: 0 auto; padding: 0 24px; }
				.avi-faq-page__hero { background: #0A1628; padding: 80px 0 40px; text-align: center; }
				.avi-faq-page__hero h1 { margin: 0 0 16px; font-size: 2.5rem; line-height: 1.15; font-weight: 800; color: #ffffff; }
				.avi-faq-page__hero p { margin: 0; max-width: 560px; margin-left: auto; margin-right: auto; font-size: 1.1rem; color: #94a3b8; }
				.avi-faq-page__tabs-section { background: #0A1628; padding: 0 0 64px; }
				.avi-faq-page__tab-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
				.avi-faq-page__tabs { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; }
				.avi-faq-page__tabs label { display: inline-block; padding: 12px 20px; border-radius: 8px; background: #0f1e35; color: #ffffff; font-weight: 600; font-size: 0.98rem; cursor: pointer; transition: background 0.2s ease; }
				#tab-b2c:checked ~ .avi-faq-page__tabs label[for="tab-b2c"],
				#tab-b2b:checked ~ .avi-faq-page__tabs label[for="tab-b2b"] { background: #6C3FC5; }
				.avi-faq-page__panels { display: block; }
				#tab-b2c:checked ~ .avi-faq-page__panels #panel-b2b,
				#tab-b2b:checked ~ .avi-faq-page__panels #panel-b2c { display: none; }
				.avi-faq-page__list { display: flex; flex-direction: column; gap: 8px; }
				.avi-faq-page__item { background: #0f1e35; border-left: 3px solid #6C3FC5; border-radius: 8px; overflow: hidden; }
				.avi-faq-page__summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; color: #ffffff; font-weight: 600; cursor: pointer; }
				.avi-faq-page__summary::-webkit-details-marker { display: none; }
				.avi-faq-page__summary::after {
					content: "";
					flex-shrink: 0;
					width: 12px;
					height: 12px;
					background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M4 2L8 6L4 10' stroke='%236C3FC5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
					background-repeat: no-repeat;
					background-position: center;
					background-size: contain;
					transition: transform 0.2s ease;
				}
				.avi-faq-page__item[open] .avi-faq-page__summary { color: #F59E0B; }
				.avi-faq-page__item[open] .avi-faq-page__summary::after { transform: rotate(90deg); }
				.avi-faq-page__answer { color: #cbd5e1; padding: 0 24px 20px; line-height: 1.7; }
				.avi-faq-page__answer p { margin: 0; }
				.avi-faq-page__cta-wrap { background: #0A1628; padding: 0 0 80px; }
				.avi-faq-page__cta {
					max-width: 600px;
					margin: 0 auto;
					background: #0f1e35;
					border-radius: 16px;
					padding: 48px 32px;
					text-align: center;
				}
				.avi-faq-page__cta h2 { margin: 0 0 16px; font-size: 1.65rem; font-weight: 800; color: #ffffff; }
				.avi-faq-page__cta > p { margin: 0 0 24px; color: #94a3b8; font-size: 1rem; line-height: 1.65; }
				.avi-faq-page__cta-link {
					display: inline-block;
					background: #6C3FC5;
					color: #ffffff;
					text-decoration: none;
					border-radius: 8px;
					padding: 14px 28px;
					font-weight: 700;
					font-size: 1rem;
				}
				.avi-faq-page__cta-link:hover { color: #ffffff; opacity: 0.92; }
				.avi-faq-page__cta-note { margin: 16px 0 0; font-size: 13px; color: #94a3b8; }
				@media (max-width: 1024px) {
					.avi-faq-page__hero h1 { font-size: 2.15rem; }
				}
				@media (max-width: 768px) {
					.avi-faq-page__hero { padding: 56px 0 32px; }
					.avi-faq-page__hero h1 { font-size: 1.85rem; }
					.avi-faq-page__tabs { flex-direction: column; }
					.avi-faq-page__tabs label { text-align: center; }
					.avi-faq-page__tabs-section { padding-bottom: 48px; }
					.avi-faq-page__cta { padding: 36px 24px; }
				}
				@media (max-width: 480px) {
					.avi-faq-page__inner { padding: 0 16px; }
					.avi-faq-page__hero h1 { font-size: 1.55rem; }
					.avi-faq-page__summary { padding: 16px 18px; font-size: 0.95rem; }
					.avi-faq-page__answer { padding: 0 18px 16px; font-size: 0.95rem; }
				}
			</style>

			<section class="avi-faq-page__hero" aria-labelledby="avi-faq-hero-title">
				<div class="avi-faq-page__inner">
					<h1 id="avi-faq-hero-title">Preguntas frecuentes</h1>
					<p>Todo lo que necesitas saber — antes y después de empezar.</p>
				</div>
			</section>

			<section class="avi-faq-page__tabs-section" aria-label="Categorías FAQ">
				<div class="avi-faq-page__inner avi-faq-page__tabs-root">
					<input class="avi-faq-page__tab-input" type="radio" name="faq-tab" id="tab-b2c" checked="checked" />
					<input class="avi-faq-page__tab-input" type="radio" name="faq-tab" id="tab-b2b" />
					<div class="avi-faq-page__tabs">
						<label for="tab-b2c">🏪 Para comercios locales</label>
						<label for="tab-b2b">🏢 Para agencias</label>
					</div>
					<div class="avi-faq-page__panels">
						<div class="avi-faq-page__panel" id="panel-b2c">
							<div class="avi-faq-page__list" role="list">
								<?php avi_faq_render_accordions( $b2c_questions, $b2c_answers ); ?>
							</div>
						</div>
						<div class="avi-faq-page__panel" id="panel-b2b">
							<div class="avi-faq-page__list" role="list">
								<?php avi_faq_render_accordions( $b2b_questions, $b2b_answers ); ?>
							</div>
						</div>
					</div>
				</div>
			</section>

			<section class="avi-faq-page__cta-wrap" aria-labelledby="avi-faq-cta-title">
				<div class="avi-faq-page__inner">
					<div class="avi-faq-page__cta">
						<h2 id="avi-faq-cta-title">¿Aún tienes una pregunta?</h2>
						<p>AVI responde al instante la mayoría de preguntas de producto desde tu panel. Para todo lo demás — facturación, problemas de cuenta, incidencias técnicas — contacta directamente con el fundador.</p>
						<a class="avi-faq-page__cta-link" href="<?php echo esc_url( $contact_url ); ?>">Contactar soporte →</a>
						<p class="avi-faq-page__cta-note">Respuesta en 72 horas laborables · Gestionado por el fundador</p>
					</div>
				</div>
			</section>
		</div>
		<script type="application/ld+json"><?php echo wp_json_encode( $avi_schema_json, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE ); ?></script>
		<?php
	}
);
