<?php
/**
 * Shortcode público [1mz_showcase].
 *
 * @package 1MZ_For_Artists
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Carrega os recursos do showcase apenas quando o shortcode é renderizado.
 *
 * @return bool Verdadeiro quando deve usar os ícones locais de reserva.
 */
function rmbz_showcase_enqueue_assets() {
	$css_path          = RMBZ_PLUGIN_PATH . 'assets/css/showcase-m3.css';
	$js_path           = RMBZ_PLUGIN_PATH . 'assets/js/showcase-m3.js';
	$style_dependencies = array();
	$use_icon_fallback  = true;

	// Em visitantes, alguns sites deixam o handle "dashicons" sem registo.
	if ( function_exists( 'wp_style_is' ) && wp_style_is( 'dashicons', 'registered' ) ) {
		$style_dependencies[] = 'dashicons';
		$use_icon_fallback    = false;
	} elseif ( defined( 'WPINC' ) ) {
		$core_icons_path = ABSPATH . WPINC . '/css/dashicons.min.css';

		if ( file_exists( $core_icons_path ) ) {
			$icon_handle = 'rmbz-showcase-core-icons';

			if ( ! function_exists( 'wp_style_is' ) || ! wp_style_is( $icon_handle, 'registered' ) ) {
				wp_register_style(
					$icon_handle,
					includes_url( 'css/dashicons.min.css' ),
					array(),
					(string) filemtime( $core_icons_path )
				);
			}

			$style_dependencies[] = $icon_handle;
			$use_icon_fallback    = false;
		}
	}

	wp_enqueue_style(
		'rmbz-showcase-m3',
		RMBZ_PLUGIN_URL . 'assets/css/showcase-m3.css',
		$style_dependencies,
		file_exists( $css_path ) ? (string) filemtime( $css_path ) : RMBZ_PLUGIN_VERSION
	);
	wp_enqueue_script(
		'rmbz-showcase-m3',
		RMBZ_PLUGIN_URL . 'assets/js/showcase-m3.js',
		array(),
		file_exists( $js_path ) ? (string) filemtime( $js_path ) : RMBZ_PLUGIN_VERSION,
		true
	);

	return $use_icon_fallback;
}

/**
 * Renderiza a apresentação pública do produto.
 *
 * @return string
 */
function rmbz_render_showcase_shortcode() {
	static $instance = 0;
	$instance++;

	$use_icon_fallback = rmbz_showcase_enqueue_assets();

	$root_id  = 'onemz-showcase-' . $instance;
	$hero_url = RMBZ_PLUGIN_URL . 'assets/images/showcase-hero-m3.webp';
	$app_url  = 'https://play.google.com/store/apps/details?id=com.onemzrecords.artists';
	$main_url = home_url( '/minha-conta/' );
	$cta_text     = is_user_logged_in() ? 'Abrir o meu painel' : 'Criar conta de artista';
	$service_cta = is_user_logged_in() ? 'Abrir serviços no painel' : 'Criar conta para começar';

	$stats = array(
		array( 'value' => '100%', 'label' => 'controlo do catálogo' ),
		array( 'value' => '24/7', 'label' => 'dados disponíveis' ),
		array( 'value' => '1 lugar', 'label' => 'para lançar e crescer' ),
		array( 'value' => 'Direto', 'label' => 'da música ao pagamento' ),
	);

	$filters = array(
		'all'    => 'Tudo',
		'launch' => 'Lançar',
		'grow'   => 'Crescer',
		'earn'   => 'Receber',
	);

	$features = array(
		array(
			'category' => 'launch',
			'icon'     => 'dashicons-upload',
			'title'    => 'Lançamentos organizados',
			'text'     => 'Submete áudio, capa e metadados num fluxo claro, com o estado de cada etapa sempre visível.',
		),
		array(
			'category' => 'launch',
			'icon'     => 'dashicons-playlist-audio',
			'title'    => 'Catálogo num só lugar',
			'text'     => 'Consulta faixas, versões e informações editoriais sem perder tempo entre várias ferramentas.',
		),
		array(
			'category' => 'grow',
			'icon'     => 'dashicons-chart-line',
			'title'    => 'Desempenho que se entende',
			'text'     => 'Acompanha tendências, alcance e evolução com indicadores preparados para decisões reais.',
		),
		array(
			'category' => 'grow',
			'icon'     => 'dashicons-megaphone',
			'title'    => 'Músicas patrocinadas',
			'text'     => 'Cria campanhas profissionais com regras transparentes, revisão e controlo das reproduções.',
		),
		array(
			'category' => 'earn',
			'icon'     => 'dashicons-money-alt',
			'title'    => 'Ganhos e pagamentos',
			'text'     => 'Vê saldo, histórico e elegibilidade antes de pedir pagamento, sem números escondidos.',
		),
		array(
			'category' => 'earn',
			'icon'     => 'dashicons-shield-alt',
			'title'    => 'Dados protegidos',
			'text'     => 'Permissões, validações e registos ajudam a manter a conta e o trabalho do artista seguros.',
		),
	);

	$services = array(
		array(
			'key'      => 'distribuicao',
			'number'   => '01',
			'icon'     => 'dashicons-admin-site-alt3',
			'title'    => 'Distribuição digital',
			'text'     => 'Prepara e envia os teus lançamentos para plataformas digitais, com metadados e estados organizados.',
			'items'    => array( 'Spotify, Apple Music e YouTube Music', 'TikTok e outras plataformas elegíveis' ),
			'audience' => 'Artistas com música original pronta, capa final e créditos confirmados.',
			'includes' => array(
				'Revisão dos dados essenciais do lançamento',
				'Entrega às plataformas selecionadas e elegíveis',
				'Acompanhamento do estado no painel',
				'Organização de versões, créditos e identificadores',
			),
			'process'  => array(
				'Cria o lançamento e envia áudio, capa e metadados.',
				'A equipa ou o sistema valida o material e informa pendências.',
				'Depois da aprovação, acompanha a entrega e as atualizações.',
			),
			'note'     => 'Prazos, plataformas disponíveis e aprovação dependem da qualidade dos ficheiros, dos direitos declarados e das regras de cada loja.',
		),
		array(
			'key'      => 'promocao',
			'number'   => '02',
			'icon'     => 'dashicons-megaphone',
			'title'    => 'Promoção e músicas patrocinadas',
			'text'     => 'Planeia campanhas com orçamento, período, revisão e métricas transparentes de desempenho.',
			'items'    => array( 'Campanhas dentro do ecossistema 1MZ', 'Controlo de reproduções válidas' ),
			'audience' => 'Artistas que pretendem aumentar a descoberta de uma faixa sem comprar reproduções artificiais.',
			'includes' => array(
				'Definição de orçamento, duração e objetivo',
				'Revisão da música e dos materiais da campanha',
				'Indicadores de alcance e reproduções consideradas válidas',
				'Saldo, histórico e estado da campanha',
			),
			'process'  => array(
				'Seleciona uma música elegível e prepara a campanha.',
				'Confirma orçamento, período e condições de divulgação.',
				'Acompanha resultados e alertas de conformidade no painel.',
			),
			'note'     => 'A promoção aumenta a exposição, mas não promete um número fixo de fãs, receitas ou sucesso comercial.',
		),
		array(
			'key'      => 'audiovisual',
			'number'   => '03',
			'icon'     => 'dashicons-video-alt3',
			'title'    => 'Produção audiovisual',
			'text'     => 'Acede a candidaturas e oportunidades de produção de videoclipes com acompanhamento do processo.',
			'items'    => array( 'Submissão de propostas e projetos', 'Estado e comunicação num único painel' ),
			'audience' => 'Artistas com uma música definida e uma proposta visual que possa ser avaliada pela equipa.',
			'includes' => array(
				'Candidatura para oportunidades disponíveis',
				'Envio de briefing, referências e informação do projeto',
				'Acompanhamento das etapas de avaliação e produção',
				'Comunicação e documentos associados ao projeto',
			),
			'process'  => array(
				'Consulta as oportunidades e confirma os requisitos.',
				'Apresenta a música, o conceito e os materiais pedidos.',
				'Se o projeto for aceite, acompanha as etapas combinadas.',
			),
			'note'     => 'A candidatura não garante produção. Seleção, agenda, orçamento e responsabilidades são confirmados antes do início.',
		),
		array(
			'key'      => 'royalties',
			'number'   => '04',
			'icon'     => 'dashicons-money-alt',
			'title'    => 'Royalties e pagamentos',
			'text'     => 'Consulta ganhos, movimentos e elegibilidade antes de enviar um pedido de pagamento.',
			'items'    => array( 'Relatórios e saldos em USD', 'Levantamento por métodos disponíveis' ),
			'audience' => 'Artistas com receitas reportadas, conta validada e saldo que cumpra as condições de levantamento.',
			'includes' => array(
				'Saldo disponível, pendente e movimentos anteriores',
				'Relatórios recebidos das fontes disponíveis',
				'Pedido de pagamento com confirmação de dados',
				'Histórico do estado de cada levantamento',
			),
			'process'  => array(
				'Confere os relatórios e o saldo elegível.',
				'Escolhe um método disponível e confirma os dados.',
				'Envia o pedido e acompanha a validação até à conclusão.',
			),
			'note'     => 'Valores e datas dependem dos relatórios das plataformas, do saldo mínimo, da validação da conta e dos métodos disponíveis.',
		),
		array(
			'key'      => 'dados',
			'number'   => '05',
			'icon'     => 'dashicons-chart-line',
			'title'    => 'Dados e crescimento',
			'text'     => 'Compreende o alcance da tua música através de indicadores preparados para decisões práticas.',
			'items'    => array( 'Streams, ouvintes e territórios', 'Comparação por faixa e período' ),
			'audience' => 'Artistas que querem perceber o comportamento do catálogo e decidir onde concentrar o próximo esforço.',
			'includes' => array(
				'Resumo de streams, ouvintes e territórios disponíveis',
				'Comparação entre faixas e períodos',
				'Leitura de evolução, alcance e conclusão',
				'Sinais que ajudam a orientar lançamentos e campanhas',
			),
			'process'  => array(
				'Escolhe uma faixa, período ou área do catálogo.',
				'Compara os indicadores e identifica mudanças relevantes.',
				'Usa o contexto para ajustar promoção e calendário.',
			),
			'note'     => 'Os dados podem chegar em momentos diferentes conforme a origem. Indicadores incompletos são identificados no painel.',
		),
		array(
			'key'      => 'apoio',
			'number'   => '06',
			'icon'     => 'dashicons-admin-users',
			'title'    => 'Apoio ao artista',
			'text'     => 'Recebe orientação sobre informação editorial, submissões e etapas que exigem a tua atenção.',
			'items'    => array( 'Acompanhamento dos processos', 'Histórico, avisos e suporte centralizados' ),
			'audience' => 'Artistas com dúvidas sobre a conta, um lançamento, uma campanha, um pagamento ou um projeto.',
			'includes' => array(
				'Histórico das informações e decisões importantes',
				'Alertas sobre dados em falta ou ações necessárias',
				'Orientação nos fluxos disponíveis na plataforma',
				'Encaminhamento para a área responsável quando necessário',
			),
			'process'  => array(
				'Abre a área relacionada com o assunto no painel.',
				'Consulta o estado e reúne os dados pedidos.',
				'Entra em contacto pelo canal indicado e acompanha a resposta.',
			),
			'note'     => 'Nunca partilhes PIN, palavra-passe, código de recuperação ou dados completos de pagamento fora dos canais oficiais.',
		),
	);
	$modules = array(
		'overview' => array(
			'label'   => 'Visão geral',
			'icon'    => 'dashicons-dashboard',
			'title'   => 'O essencial, logo ao entrar',
			'text'    => 'Um resumo limpo do catálogo, das campanhas e do que precisa da tua atenção.',
			'metrics' => array(
				array( 'label' => 'Faixas ativas', 'value' => '128', 'trend' => '+12 este mês' ),
				array( 'label' => 'Alcance total', 'value' => '84,2 mil', 'trend' => '+18,4%' ),
				array( 'label' => 'Saldo disponível', 'value' => '$ 326,40', 'trend' => 'Pronto para pedir' ),
			),
			'items'   => array(
				'Novo lançamento aprovado para distribuição',
				'A campanha de “Meu Lugar” atingiu a meta',
				'Relatório de desempenho atualizado',
			),
		),
		'releases' => array(
			'label'   => 'Lançamentos',
			'icon'    => 'dashicons-album',
			'title'   => 'Cada lançamento com o seu estado',
			'text'    => 'Identifica rapidamente o que está pronto, em revisão ou ainda incompleto.',
			'metrics' => array(
				array( 'label' => 'Publicados', 'value' => '94', 'trend' => 'Catálogo ativo' ),
				array( 'label' => 'Em revisão', 'value' => '3', 'trend' => 'Dentro do prazo' ),
				array( 'label' => 'Rascunhos', 'value' => '2', 'trend' => 'Faltam dados' ),
			),
			'items'   => array(
				'Capa, áudio e créditos validados em conjunto',
				'Histórico de alterações disponível por faixa',
				'Alertas claros antes de qualquer submissão',
			),
		),
		'growth' => array(
			'label'   => 'Crescimento',
			'icon'    => 'dashicons-chart-area',
			'title'   => 'Transforma números em próximos passos',
			'text'    => 'Compara períodos e entende quais músicas estão a ganhar atenção.',
			'metrics' => array(
				array( 'label' => 'Novos ouvintes', 'value' => '12,8 mil', 'trend' => '+9,2%' ),
				array( 'label' => 'Taxa de conclusão', 'value' => '71%', 'trend' => '+4 pontos' ),
				array( 'label' => 'Em destaque', 'value' => 'Meu Lugar', 'trend' => '24,6 mil plays' ),
			),
			'items'   => array(
				'Comparação simples entre campanhas',
				'Sinais de crescimento por faixa e período',
				'Recomendações com contexto, não só números',
			),
		),
		'wallet' => array(
			'label'   => 'Carteira',
			'icon'    => 'dashicons-portfolio',
			'title'   => 'Dinheiro com contexto e transparência',
			'text'    => 'Consulta movimentos, requisitos e pedidos sem sair do painel.',
			'metrics' => array(
				array( 'label' => 'Disponível', 'value' => '$ 326,40', 'trend' => 'Pode ser solicitado' ),
				array( 'label' => 'Pendente', 'value' => '$ 84,10', 'trend' => 'Em processamento' ),
				array( 'label' => 'Último pagamento', 'value' => '$ 190,00', 'trend' => '12 Jul 2026' ),
			),
			'items'   => array(
				'Estado do pedido atualizado em tempo real',
				'Histórico completo e pesquisável',
				'Confirmação antes de enviar um novo pedido',
			),
		),
	);

	$steps = array(
		array(
			'icon'  => 'dashicons-admin-users',
			'title' => 'Cria o teu perfil',
			'text'  => 'Adiciona os dados do artista e mantém tudo preparado para os próximos lançamentos.',
		),
		array(
			'icon'  => 'dashicons-format-audio',
			'title' => 'Organiza a tua música',
			'text'  => 'Envia ficheiros e informações com validação antes da submissão final.',
		),
		array(
			'icon'  => 'dashicons-chart-bar',
			'title' => 'Acompanha e cresce',
			'text'  => 'Segue resultados, promove as faixas certas e controla os teus ganhos.',
		),
	);

	$faqs = array(
		array(
			'question' => 'Preciso pagar para criar uma conta?',
			'answer'   => 'Podes criar a conta e conhecer a plataforma antes de escolher serviços ou campanhas que tenham custos.',
		),
		array(
			'question' => 'Consigo acompanhar o estado de um lançamento?',
			'answer'   => 'Sim. Cada lançamento mostra o estado atual, os dados recebidos e o que ainda precisa de atenção.',
		),
		array(
			'question' => 'Como funcionam as músicas patrocinadas?',
			'answer'   => 'A campanha é configurada com orçamento, período e regras próprias. O painel apresenta resultados válidos e alertas de conformidade.',
		),
		array(
			'question' => 'Onde vejo os meus ganhos?',
			'answer'   => 'A carteira reúne saldo disponível, valores pendentes, histórico e as condições para pedir pagamento.',
		),
		array(
			'question' => 'Os meus dados ficam protegidos?',
			'answer'   => 'A plataforma usa controlo de acesso, validações e registos operacionais. Nunca partilhes a tua palavra-passe nem códigos de acesso.',
		),
		array(
			'question' => 'Posso usar no telefone e no computador?',
			'answer'   => 'Sim. A experiência foi preparada para ecrãs grandes e pequenos, mantendo as funções importantes acessíveis.',
		),
	);

	ob_start();
	?>
	<div id="<?php echo esc_attr( $root_id ); ?>" class="onemz-showcase<?php echo $use_icon_fallback ? ' onemz-showcase--icon-fallback' : ''; ?>" data-showcase-root style="--onemz-hero-image:url('<?php echo esc_url( $hero_url ); ?>')">
		<section class="onemz-showcase__hero" id="<?php echo esc_attr( $root_id ); ?>-inicio" aria-labelledby="<?php echo esc_attr( $root_id ); ?>-title">
			<div class="onemz-showcase__hero-shade" aria-hidden="true"></div>
			<nav class="onemz-showcase__nav" aria-label="Navegação da apresentação">
				<a class="onemz-showcase__brand" href="#<?php echo esc_attr( $root_id ); ?>-inicio" aria-label="1MZ For Artists, início">
					<span class="onemz-showcase__brand-mark" aria-hidden="true">1</span>
					<span>1MZ For Artists</span>
				</a>
				<div class="onemz-showcase__nav-links">
					<a href="#<?php echo esc_attr( $root_id ); ?>-servicos">Serviços</a>
					<a href="#<?php echo esc_attr( $root_id ); ?>-recursos">Recursos</a>
					<a href="#<?php echo esc_attr( $root_id ); ?>-produto">Produto</a>
					<a href="#<?php echo esc_attr( $root_id ); ?>-duvidas">Dúvidas</a>
				</div>
				<a class="onemz-button onemz-button--nav" href="<?php echo esc_url( $main_url ); ?>"><?php echo esc_html( $cta_text ); ?></a>
			</nav>

			<div class="onemz-showcase__hero-content">
				<p class="onemz-showcase__eyebrow">A plataforma dos artistas 1MZ</p>
				<h1 id="<?php echo esc_attr( $root_id ); ?>-title">1MZ For Artists</h1>
				<p class="onemz-showcase__lead">Lança música, acompanha o crescimento e gere os teus ganhos numa experiência profissional feita para artistas independentes.</p>
				<div class="onemz-showcase__hero-actions">
					<a class="onemz-button onemz-button--primary" href="<?php echo esc_url( $main_url ); ?>">
						<span class="dashicons dashicons-arrow-right-alt" aria-hidden="true"></span>
						<?php echo esc_html( $cta_text ); ?>
					</a>
					<a class="onemz-button onemz-button--tonal" href="<?php echo esc_url( $app_url ); ?>" target="_blank" rel="noopener">
						<span class="dashicons dashicons-smartphone" aria-hidden="true"></span>
						Obter o aplicativo
					</a>
				</div>
				<button class="onemz-showcase__share" type="button" data-showcase-share>
					<span class="dashicons dashicons-share" aria-hidden="true"></span>
					Partilhar
				</button>
			</div>
			<a class="onemz-showcase__scroll-cue" href="#<?php echo esc_attr( $root_id ); ?>-metricas">
				<span>Explorar</span>
				<span class="dashicons dashicons-arrow-down-alt2" aria-hidden="true"></span>
			</a>
		</section>

		<section class="onemz-showcase__metrics" id="<?php echo esc_attr( $root_id ); ?>-metricas" aria-label="Resumo da plataforma">
			<div class="onemz-showcase__metrics-inner">
				<?php foreach ( $stats as $stat ) : ?>
					<div class="onemz-showcase__metric">
						<strong><?php echo esc_html( $stat['value'] ); ?></strong>
						<span><?php echo esc_html( $stat['label'] ); ?></span>
					</div>
				<?php endforeach; ?>
			</div>
		</section>

		<section class="onemz-showcase__service-band" id="<?php echo esc_attr( $root_id ); ?>-servicos" aria-labelledby="<?php echo esc_attr( $root_id ); ?>-services-title">
			<div class="onemz-showcase__section onemz-showcase__section--services">
				<div class="onemz-showcase__section-heading">
					<div>
						<p class="onemz-showcase__eyebrow onemz-showcase__eyebrow--green">Serviços da 1MZ For Artists</p>
						<h2 id="<?php echo esc_attr( $root_id ); ?>-services-title">Da distribuição ao crescimento</h2>
						<p>Escolhe um serviço e consulta o que inclui, para quem serve, as etapas e as condições importantes.</p>
					</div>
				</div>
				<div class="onemz-showcase__services-grid">
					<?php foreach ( $services as $service ) : ?>
						<article class="onemz-showcase__service">
							<div class="onemz-showcase__service-top">
								<span class="onemz-showcase__service-number"><?php echo esc_html( $service['number'] ); ?></span>
								<span class="onemz-showcase__service-icon dashicons <?php echo esc_attr( $service['icon'] ); ?>" aria-hidden="true"></span>
							</div>
							<h3><?php echo esc_html( $service['title'] ); ?></h3>
							<p><?php echo esc_html( $service['text'] ); ?></p>
							<ul>
								<?php foreach ( $service['items'] as $service_item ) : ?>
									<li><span class="dashicons dashicons-yes-alt" aria-hidden="true"></span><?php echo esc_html( $service_item ); ?></li>
								<?php endforeach; ?>
							</ul>
							<button
								class="onemz-showcase__service-more"
								type="button"
								data-service-open="<?php echo esc_attr( $service['key'] ); ?>"
								aria-haspopup="dialog"
								aria-controls="<?php echo esc_attr( $root_id . '-service-' . $service['key'] ); ?>"
							>
								<span>Saber mais</span>
								<span class="dashicons dashicons-arrow-right-alt" aria-hidden="true"></span>
							</button>
						</article>
					<?php endforeach; ?>
				</div>
				<div class="onemz-showcase__service-footer">
					<p>Alguns serviços dependem da elegibilidade do projeto e das condições apresentadas no painel.</p>
					<a class="onemz-button onemz-button--service" href="<?php echo esc_url( $main_url ); ?>">
						<?php echo esc_html( $service_cta ); ?>
						<span class="dashicons dashicons-arrow-right-alt" aria-hidden="true"></span>
					</a>
				</div>
			</div>
		</section>

		<dialog class="onemz-showcase__service-dialog" data-service-dialog aria-modal="true">
			<div class="onemz-showcase__service-dialog-surface">
				<header class="onemz-showcase__service-dialog-header">
					<div class="onemz-showcase__service-dialog-brand">
						<span aria-hidden="true">1MZ</span>
						<div>
							<small>Serviços da 1MZ For Artists</small>
							<strong data-service-modal-heading>Detalhes do serviço</strong>
						</div>
					</div>
					<button type="button" data-service-close aria-label="Fechar detalhes" title="Fechar">
						<span class="dashicons dashicons-no-alt" aria-hidden="true"></span>
					</button>
				</header>
				<div class="onemz-showcase__service-dialog-content">
					<?php foreach ( $services as $service ) : ?>
						<section
							id="<?php echo esc_attr( $root_id . '-service-' . $service['key'] ); ?>"
							class="onemz-showcase__service-detail"
							data-service-detail="<?php echo esc_attr( $service['key'] ); ?>"
							hidden
						>
							<div class="onemz-showcase__service-detail-heading">
								<div>
									<span class="onemz-showcase__service-number"><?php echo esc_html( $service['number'] ); ?></span>
									<span class="onemz-showcase__service-icon dashicons <?php echo esc_attr( $service['icon'] ); ?>" aria-hidden="true"></span>
								</div>
								<h3 id="<?php echo esc_attr( $root_id . '-service-title-' . $service['key'] ); ?>"><?php echo esc_html( $service['title'] ); ?></h3>
								<p><?php echo esc_html( $service['text'] ); ?></p>
							</div>

							<div class="onemz-showcase__service-audience">
								<span class="dashicons dashicons-admin-users" aria-hidden="true"></span>
								<div>
									<h4>Para quem serve</h4>
									<p><?php echo esc_html( $service['audience'] ); ?></p>
								</div>
							</div>

							<div class="onemz-showcase__service-detail-grid">
								<section>
									<h4>O que inclui</h4>
									<ul>
										<?php foreach ( $service['includes'] as $included_item ) : ?>
											<li><span class="dashicons dashicons-yes-alt" aria-hidden="true"></span><?php echo esc_html( $included_item ); ?></li>
										<?php endforeach; ?>
									</ul>
								</section>
								<section>
									<h4>Como funciona</h4>
									<ol>
										<?php foreach ( $service['process'] as $process_index => $process_item ) : ?>
											<li>
												<span><?php echo esc_html( (string) ( $process_index + 1 ) ); ?></span>
												<p><?php echo esc_html( $process_item ); ?></p>
											</li>
										<?php endforeach; ?>
									</ol>
								</section>
							</div>

							<aside class="onemz-showcase__service-note">
								<span class="dashicons dashicons-info-outline" aria-hidden="true"></span>
								<div>
									<h4>Importante</h4>
									<p><?php echo esc_html( $service['note'] ); ?></p>
								</div>
							</aside>

							<div class="onemz-showcase__service-detail-action">
								<a class="onemz-button onemz-button--detail" href="<?php echo esc_url( $main_url ); ?>">
									<?php echo esc_html( $service_cta ); ?>
									<span class="dashicons dashicons-arrow-right-alt" aria-hidden="true"></span>
								</a>
							</div>
						</section>
					<?php endforeach; ?>
				</div>
			</div>
		</dialog>		<section class="onemz-showcase__section" id="<?php echo esc_attr( $root_id ); ?>-recursos" aria-labelledby="<?php echo esc_attr( $root_id ); ?>-features-title">
			<div class="onemz-showcase__section-heading">
				<div>
					<p class="onemz-showcase__eyebrow onemz-showcase__eyebrow--green">Ferramentas conectadas</p>
					<h2 id="<?php echo esc_attr( $root_id ); ?>-features-title">Tudo o que move a tua carreira</h2>
					<p>Escolhe uma área para conhecer as funções que acompanham a música, do envio ao resultado.</p>
				</div>
				<div class="onemz-showcase__segments" role="group" aria-label="Filtrar recursos">
					<?php foreach ( $filters as $filter_key => $filter_label ) : ?>
						<button type="button" data-feature-filter="<?php echo esc_attr( $filter_key ); ?>" aria-pressed="<?php echo 'all' === $filter_key ? 'true' : 'false'; ?>">
							<?php echo esc_html( $filter_label ); ?>
						</button>
					<?php endforeach; ?>
				</div>
			</div>
			<div class="onemz-showcase__feature-grid" data-feature-grid>
				<?php foreach ( $features as $feature ) : ?>
					<article class="onemz-showcase__feature" data-feature-card="<?php echo esc_attr( $feature['category'] ); ?>">
						<span class="onemz-showcase__feature-icon dashicons <?php echo esc_attr( $feature['icon'] ); ?>" aria-hidden="true"></span>
						<h3><?php echo esc_html( $feature['title'] ); ?></h3>
						<p><?php echo esc_html( $feature['text'] ); ?></p>
					</article>
				<?php endforeach; ?>
			</div>
		</section>

		<section class="onemz-showcase__product-band" id="<?php echo esc_attr( $root_id ); ?>-produto" aria-labelledby="<?php echo esc_attr( $root_id ); ?>-product-title">
			<div class="onemz-showcase__section onemz-showcase__section--product">
				<div class="onemz-showcase__section-heading onemz-showcase__section-heading--compact">
					<div>
						<p class="onemz-showcase__eyebrow onemz-showcase__eyebrow--green">Uma vista do produto</p>
						<h2 id="<?php echo esc_attr( $root_id ); ?>-product-title">Informação pronta para agir</h2>
						<p>Explora as áreas principais e vê como o painel organiza o trabalho diário.</p>
					</div>
				</div>
				<div class="onemz-showcase__product">
					<div class="onemz-showcase__product-tabs" role="tablist" aria-label="Áreas do produto">
						<?php $module_index = 0; ?>
						<?php foreach ( $modules as $module_key => $module ) : ?>
							<button
								id="<?php echo esc_attr( $root_id . '-tab-' . $module_key ); ?>"
								type="button"
								role="tab"
								aria-selected="<?php echo 0 === $module_index ? 'true' : 'false'; ?>"
								aria-controls="<?php echo esc_attr( $root_id . '-panel-' . $module_key ); ?>"
								tabindex="<?php echo 0 === $module_index ? '0' : '-1'; ?>"
								data-showcase-tab="<?php echo esc_attr( $module_key ); ?>"
							>
								<span class="dashicons <?php echo esc_attr( $module['icon'] ); ?>" aria-hidden="true"></span>
								<?php echo esc_html( $module['label'] ); ?>
							</button>
							<?php $module_index++; ?>
						<?php endforeach; ?>
					</div>
					<div class="onemz-showcase__product-panels">
						<?php $module_index = 0; ?>
						<?php foreach ( $modules as $module_key => $module ) : ?>
							<section
								id="<?php echo esc_attr( $root_id . '-panel-' . $module_key ); ?>"
								class="onemz-showcase__product-panel"
								role="tabpanel"
								aria-labelledby="<?php echo esc_attr( $root_id . '-tab-' . $module_key ); ?>"
								data-showcase-panel="<?php echo esc_attr( $module_key ); ?>"
								<?php echo 0 === $module_index ? '' : 'hidden'; ?>
							>
								<div class="onemz-showcase__panel-heading">
									<span class="dashicons <?php echo esc_attr( $module['icon'] ); ?>" aria-hidden="true"></span>
									<div>
										<h3><?php echo esc_html( $module['title'] ); ?></h3>
										<p><?php echo esc_html( $module['text'] ); ?></p>
									</div>
								</div>
								<div class="onemz-showcase__panel-metrics">
									<?php foreach ( $module['metrics'] as $metric ) : ?>
										<div>
											<span><?php echo esc_html( $metric['label'] ); ?></span>
											<strong><?php echo esc_html( $metric['value'] ); ?></strong>
											<small><?php echo esc_html( $metric['trend'] ); ?></small>
										</div>
									<?php endforeach; ?>
								</div>
								<div class="onemz-showcase__activity">
									<h4>O que encontras aqui</h4>
									<ul>
										<?php foreach ( $module['items'] as $item ) : ?>
											<li><span class="dashicons dashicons-yes-alt" aria-hidden="true"></span><?php echo esc_html( $item ); ?></li>
										<?php endforeach; ?>
									</ul>
								</div>
							</section>
							<?php $module_index++; ?>
						<?php endforeach; ?>
					</div>
				</div>
			</div>
		</section>

		<section class="onemz-showcase__section onemz-showcase__section--steps" aria-labelledby="<?php echo esc_attr( $root_id ); ?>-steps-title">
			<div class="onemz-showcase__section-heading">
				<div>
					<p class="onemz-showcase__eyebrow onemz-showcase__eyebrow--green">Começar é simples</p>
					<h2 id="<?php echo esc_attr( $root_id ); ?>-steps-title">Da primeira faixa ao próximo nível</h2>
				</div>
			</div>
			<ol class="onemz-showcase__steps">
				<?php foreach ( $steps as $step_index => $step ) : ?>
					<li>
						<span class="onemz-showcase__step-number"><?php echo esc_html( (string) ( $step_index + 1 ) ); ?></span>
						<span class="onemz-showcase__step-icon dashicons <?php echo esc_attr( $step['icon'] ); ?>" aria-hidden="true"></span>
						<div>
							<h3><?php echo esc_html( $step['title'] ); ?></h3>
							<p><?php echo esc_html( $step['text'] ); ?></p>
						</div>
					</li>
				<?php endforeach; ?>
			</ol>
		</section>

		<section class="onemz-showcase__faq-band" id="<?php echo esc_attr( $root_id ); ?>-duvidas" aria-labelledby="<?php echo esc_attr( $root_id ); ?>-faq-title">
			<div class="onemz-showcase__section onemz-showcase__section--faq">
				<div class="onemz-showcase__faq-heading">
					<div>
						<p class="onemz-showcase__eyebrow onemz-showcase__eyebrow--green">Perguntas frequentes</p>
						<h2 id="<?php echo esc_attr( $root_id ); ?>-faq-title">Encontra uma resposta</h2>
					</div>
					<label class="onemz-showcase__search">
						<span class="screen-reader-text">Pesquisar nas perguntas frequentes</span>
						<span class="dashicons dashicons-search" aria-hidden="true"></span>
						<input type="search" placeholder="Pesquisar uma dúvida" data-faq-search autocomplete="off">
						<button type="button" data-faq-clear hidden aria-label="Limpar pesquisa">
							<span class="dashicons dashicons-no-alt" aria-hidden="true"></span>
						</button>
					</label>
				</div>
				<p class="onemz-showcase__result-count" data-faq-count aria-live="polite"><?php echo esc_html( count( $faqs ) ); ?> perguntas</p>
				<div class="onemz-showcase__faqs">
					<?php foreach ( $faqs as $faq ) : ?>
						<details data-faq-item data-search="<?php echo esc_attr( $faq['question'] . ' ' . $faq['answer'] ); ?>">
							<summary>
								<span><?php echo esc_html( $faq['question'] ); ?></span>
								<span class="dashicons dashicons-plus-alt2" aria-hidden="true"></span>
							</summary>
							<div><p><?php echo esc_html( $faq['answer'] ); ?></p></div>
						</details>
					<?php endforeach; ?>
				</div>
				<div class="onemz-showcase__empty" data-faq-empty hidden>
					<span class="dashicons dashicons-search" aria-hidden="true"></span>
					<h3>Nenhuma resposta encontrada</h3>
					<p>Tenta outra palavra ou limpa a pesquisa.</p>
				</div>
			</div>
		</section>

		<section class="onemz-showcase__cta" aria-labelledby="<?php echo esc_attr( $root_id ); ?>-cta-title">
			<div>
				<p class="onemz-showcase__eyebrow">O próximo passo é teu</p>
				<h2 id="<?php echo esc_attr( $root_id ); ?>-cta-title">A tua música merece uma gestão à altura</h2>
				<p>Entra no 1MZ For Artists e transforma o teu catálogo num trabalho organizado, visível e sustentável.</p>
			</div>
			<div class="onemz-showcase__cta-actions">
				<a class="onemz-button onemz-button--light" href="<?php echo esc_url( $main_url ); ?>">
					<?php echo esc_html( $cta_text ); ?>
					<span class="dashicons dashicons-arrow-right-alt" aria-hidden="true"></span>
				</a>
				<a class="onemz-button onemz-button--outline-light" href="<?php echo esc_url( $app_url ); ?>" target="_blank" rel="noopener">
					<span class="dashicons dashicons-smartphone" aria-hidden="true"></span>
					Aplicativo Android
				</a>
			</div>
		</section>
		<div class="onemz-showcase__toast" role="status" aria-live="polite" aria-atomic="true" data-showcase-toast hidden></div>
	</div>
	<?php

	return (string) ob_get_clean();
}
add_shortcode( '1mz_showcase', 'rmbz_render_showcase_shortcode' );
