<?php
/* Paginas por veiculo: ?v=<slug> | ?marca=<slug> | (sem) indice de marcas */
require __DIR__.'/_cat.php';
require __DIR__.'/_layout.php';
if(isset($_GET['json'])){require_once __DIR__.'/_veic.php';header('Content-Type: application/json; charset=utf-8');header('Access-Control-Allow-Origin: *');$out=array();foreach($GLOBALS['VEICULOS'] as $v){ $m=$v[1]; if($m===''){continue;} if(!isset($out[$m])){$out[$m]=array();} $nome=$v[2]; $rest=ltrim(substr($nome,strlen($m))); $modelo=($rest!=='')?explode(' ',$rest)[0]:$nome; $out[$m][]=array('v'=>$v[0],'nome'=>$nome,'modelo'=>$modelo,'motor'=>$v[3],'chassi'=>$v[4]); }echo json_encode($out, JSON_UNESCAPED_UNICODE); exit;}
header('Content-Type: text/html; charset=utf-8');
header('Access-Control-Allow-Origin: *');
function h($s){ return htmlspecialchars((string)$s,ENT_QUOTES,'UTF-8'); }
function brand_logo($m){
  $k=strtolower($m);
  $sl=cat_slug($m); foreach(array('png','webp','jpg','jpeg','svg') as $ext){ if(is_file(__DIR__.'/logos/'.$sl.'.'.$ext)){ return '<img src="logos/'.$sl.'.'.$ext.'" alt="'.h($m).'" style="max-height:104px;max-width:180px;object-fit:contain">'; } }
  if(strpos($k,'audi')!==false){ return '<svg viewBox="0 0 150 46" height="44"><g fill="none" stroke="#8b95a1" stroke-width="4">'.'<circle cx="22" cy="23" r="18"/><circle cx="56" cy="23" r="18"/><circle cx="90" cy="23" r="18"/><circle cx="124" cy="23" r="18"/></g></svg>'; }
  if(strpos($k,'bmw')!==false){ return '<svg viewBox="0 0 64 64" height="60"><circle cx="32" cy="32" r="30" fill="#000"/><circle cx="32" cy="32" r="23" fill="#fff"/><path d="M32 9 A23 23 0 0 1 55 32 L32 32 Z" fill="#0a5bb5"/><path d="M32 55 A23 23 0 0 1 9 32 L32 32 Z" fill="#0a5bb5"/><circle cx="32" cy="32" r="23" fill="none" stroke="#000" stroke-width="1.5"/></svg>'; }
  if(strpos($k,'mercedes')!==false){ return '<svg viewBox="0 0 64 64" height="60"><circle cx="32" cy="32" r="29" fill="none" stroke="#7a8794" stroke-width="3.5"/><g stroke="#7a8794" stroke-width="3.5"><line x1="32" y1="32" x2="32" y2="6"/><line x1="32" y1="32" x2="10" y2="45"/><line x1="32" y1="32" x2="54" y2="45"/></g></svg>'; }
  if($k==='vw'||strpos($k,'volks')!==false){ return '<svg viewBox="0 0 64 64" height="60"><circle cx="32" cy="32" r="30" fill="none" stroke="#13357b" stroke-width="3.5"/><text x="32" y="41" text-anchor="middle" font-family="Arial" font-weight="bold" font-size="26" fill="#13357b">VW</text></svg>'; }
  if(strpos($k,'volvo')!==false){ return '<svg viewBox="0 0 70 64" height="58"><circle cx="30" cy="36" r="22" fill="none" stroke="#13357b" stroke-width="3.5"/><line x1="45" y1="21" x2="62" y2="4" stroke="#13357b" stroke-width="3.5"/><line x1="50" y1="4" x2="62" y2="4" stroke="#13357b" stroke-width="3.5"/><line x1="62" y1="4" x2="62" y2="16" stroke="#13357b" stroke-width="3.5"/></svg>'; }
  return '<svg viewBox="0 0 210 44" height="40" style="max-width:170px"><text x="105" y="31" text-anchor="middle" fill="#0b1f3a" font-family="Arial,Helvetica,sans-serif" font-weight="bold" font-size="23" textLength="200" lengthAdjust="spacingAndGlyphs">'.strtoupper(h($m)).'</text></svg>';
}
$BASE='https://www.revutoautoparts.com.br';
$vSlug    = isset($_GET['v'])     ? preg_replace('/[^a-z0-9\-]/','',strtolower($_GET['v']))     : '';
$mSlug    = isset($_GET['marca']) ? preg_replace('/[^a-z0-9\-]/','',strtolower($_GET['marca'])) : '';
$nomeQ    = isset($_GET['nome']) ? trim($_GET['nome']) : '';
$gSlug    = isset($_GET['g'])     ? preg_replace('/[^a-z0-9\-]/','',strtolower($_GET['g']))     : '';

$title=''; $desc=''; $canon=''; $h1=''; $sub2=''; $crumb=array(); $body='';

if($vSlug!=='' || $nomeQ!==''){
  if($vSlug!==''){
    require_once __DIR__.'/_veic.php';
    $v=veic_by_slug($vSlug);
    if($v===null){ http_response_code(404); $v=array($vSlug,'','Veículo não encontrado','','','',''); }
    $marca=$v[1]; $nome=$v[2]; $motor=$v[3]; $chassi=$v[4]; $ano=$v[5]; $cv=$v[6];
    $canon=$BASE.'/veiculo.php?v='.$vSlug;
  } else {
    $nome=$nomeQ; $motor=isset($_GET['motor'])?trim($_GET['motor']):''; $chassi=isset($_GET['chassi'])?trim($_GET['chassi']):''; $ano=''; $cv=''; $marca='';
    foreach($GLOBALS['CAT_BRANDS'] as $bb){ if(preg_match('/\b'.preg_quote($bb,'/').'\b/i',$nome)){ $marca=$bb; break; } }
    if(stripos($marca,'mercedes')!==false){ $marca='Mercedes'; }
    if($marca==='Volkswagen'){ $marca='VW'; }
    $canon=$BASE.'/veiculo.php?nome='.rawurlencode($nome);
  }
  $title='Peças para '.$nome.' | Revuto Auto Parts';
  $desc='Peças originais e OEM para '.$nome.($motor?(' (motor '.$motor.')'):'').($ano?(' '.$ano):'').'. Freios, motor, suspensão, sensores, filtros e mais, com garantia e entrega para todo o Brasil.';
  $h1='Peças para '.$nome;
  $det=array(); if($marca){$det[]='Marca: '.$marca;} if($motor){$det[]='Motor: '.$motor;} if($cv){$det[]='Potência: '.$cv;} if($ano){$det[]='Ano: '.$ano;} if($chassi && $chassi!=='.'){$det[]='Chassi: '.$chassi;}
  $sub2=implode(' · ',$det);
  $crumb=array(array('Início','/'),array('Catálogo','catalogo/'),array('Veículos','veiculo'));
  if($marca!==''){ $crumb[]=array($marca,'veiculo.php?marca='.cat_slug($marca)); }
  $crumb[]=array($nome,'');
  $nomeNoMarca = $marca!=='' ? trim(preg_replace('/^'.preg_quote($marca,'/').'\s*/i','',$nome)) : $nome;
  $mt=explode(' ',trim($nomeNoMarca)); $modelo=isset($mt[0])?$mt[0]:'';
  if($gSlug!==''){
    require_once __DIR__.'/_db.php';
    $subNome=''; $grupo='';
    foreach($GLOBALS['CAT_FAM'] as $ff){ if(cat_slug($ff[1])===$gSlug){ $subNome=$ff[1]; $grupo=$ff[0]; break; } }
    if($subNome===''){ $subNome=ucwords(str_replace('-',' ',$gSlug)); }
    $title=$subNome.' para '.$nome.' | Revuto Auto Parts';
    $h1=$subNome.' para '.$nome;
    $desc='Compre '.$subNome.' para '.$nome.($motor?(' (motor '.$motor.')'):'').'. Pe&ccedil;a original/OEM, garantia de 12 meses, nota fiscal e entrega para todo o Brasil.'.($grupo?(' Categoria: '.$grupo.'.'):'');
    $canon=$BASE.'/veiculo.php?v='.$vSlug.'&g='.$gSlug;
    $crumb=array(array('Início','/'),array('Catálogo','catalogo/'),array('Veículos','veiculo'));
    if($marca!==''){ $crumb[]=array($marca,'veiculo.php?marca='.cat_slug($marca)); }
    $crumb[]=array($nome,'veiculo.php?v='.$vSlug); $crumb[]=array($subNome,'');
    $db=loja_db();
    $qtext=$subNome.' '.$marca.' '.$modelo; $terms=preg_split('/[^0-9A-Za-zà-ÿÀ-ß]+/u',trim($qtext)); $mm2=array();
    foreach($terms as $t){ if($t!=='') $mm2[]='"'.$t.'"*'; } $match=implode(' ',$mm2); $prods=array();
    if($match!==''){ $stp=$db->prepare("SELECT l.id,l.nome,l.preco,l.foto,l.fotos FROM loja_fts f JOIN loja l ON l.id=f.id WHERE loja_fts MATCH :m LIMIT 60"); $stp->bindValue(':m',$match); $rs=$stp->execute(); while($xx=$rs->fetchArray(SQLITE3_ASSOC)) $prods[]=$xx; }
    $body='<p style="font-size:13.5px;color:#475569;margin-bottom:14px">'.h($subNome).' compatível com <b>'.h($nome).'</b>'.($motor?(' &middot; motor '.h($motor)):'').'. Peças OEM com garantia de 12 meses.</p><p style="margin-bottom:16px"><a href="veiculo.php?v='.h($vSlug).'" style="color:#2563eb;text-decoration:none;font-weight:bold">&larr; Ver todas as peças do '.h($nome).'</a></p>';
    if($prods){ $body.='<div class="pgrid">'; foreach($prods as $pp){ $img='img.php?id='.$pp['id'].'&n=0'; $pix=round($pp['preco']*0.83,2); $body.='<a class="pcard" href="produto?id='.$pp['id'].'"><div class="pimg"><img src="'.$img.'" alt="'.h($pp['nome']).'" loading="lazy" onerror="this.src=&#39;/sem-foto.png&#39;"></div><div class="pn">'.h($pp['nome']).'</div><div class="pp">R$ '.number_format($pix,2,',','.').' <span>no Pix</span></div></a>'; } $body.='</div>'; }
    else { $body.='<div style="padding:24px;color:#64748b">Não encontramos '.h($subNome).' específico para este veículo agora. <a href="https://wa.me/5519999380825" style="color:#16a34a;font-weight:bold">Fale no WhatsApp</a> que conseguimos para você.</div>'; }
  } else {
  $body='<div class="vlayout"><aside class="vside"><div class="vsel">Seleção atual</div><div class="vcar"><div class="vlogo">'.brand_logo($marca).'</div><div class="vnm">'.h($nome).'</div></div><div class="vdt"><h3>DADOS TÉCNICOS</h3>';
  $cilindrada=''; if(preg_match('/(\d[.,]\d)/',$nome,$mm)){ $cilindrada=$mm[1]; }
  $comb=''; foreach(array('Diesel','Flex','Gasolina','Etanol','Híbrido') as $cb){ if(stripos($nome,$cb)!==false){ $comb=$cb; break; } }
  if($cv===''){ if(preg_match('/(\d{2,4})\s*CV/i',$nome,$mm)){ $cv=$mm[1].'CV'; } }
  if($ano===''){ if(preg_match('/(\d{2}\/\d{2})/',$nome,$mm)){ $ano=$mm[1]; } }
  $dt=array(); if($marca){$dt[]=array('Marca',$marca);} if($cilindrada){$dt[]=array('Cilindrada',$cilindrada.' L');} if($comb){$dt[]=array('Combustível',$comb);} if($cv){$dt[]=array('Potência',$cv);} if($motor){$dt[]=array('Motor',$motor);} if($ano){$dt[]=array('Ano',$ano);} if($chassi && $chassi!=='.'){$dt[]=array('Chassi',$chassi);}
  foreach($dt as $r){ $body.='<div class="vrow"><span class="k">'.h($r[0]).'</span><span class="v">'.h($r[1]).'</span></div>'; }
  $body.='</div><a class="btnhome" style="margin-top:14px;display:flex;justify-content:center" href="/">&larr; Trocar veículo</a></aside><div class="vgrid">';
  $icmap=array('Freio'=>'🛑','Motor'=>'🔧','Motor Interno'=>'⚙️','Suspensão'=>'🛞','Direção'=>'🧭','Filtros'=>'🧴','Ignição'=>'⚡','Correias'=>'🔁','Coxins'=>'🧱','Mangueiras'=>'🧵','Arrefecimento'=>'❄️','Escape'=>'💨','Embreagem'=>'🛠️','Câmbio'=>'⚙️','Elétrica'=>'🔌','Sensores'=>'📡','Ar Condicionado'=>'❄️','Combustível'=>'⛽','Turbo'=>'🌀','Iluminação'=>'💡','Carroceria'=>'🚪','Molas e Estabilizadores'=>'🌀','Transmissão'=>'⚙️','Filtro Ar Condicionado'=>'🧴');
  foreach(cat_sessoes() as $g){ $ic=isset($icmap[$g])?$icmap[$g]:'🔧';
    $subs=cat_subs($g); $tot=count($subs); $lim=10;
    $body.='<div class="vpanel"><h2><span class="vpi">'.$ic.'</span> '.h($g).'<span class="vstar">&#9734;</span></h2><ul>';
    for($ii=0;$ii<$tot;$ii++){ $sn=$subs[$ii]; $q=trim($sn.' '.$marca.' '.$modelo); $cls=$ii>=$lim?' class="vhid"':''; $href=($vSlug!=='')?('veiculo.php?v='.$vSlug.'&g='.cat_slug($sn)):('buscar?q='.rawurlencode($q)); $body.='<li'.$cls.'><a href="'.h($href).'">'.h($sn).'</a></li>'; }
    $body.='</ul>';
    if($tot>$lim){ $body.='<button class="vmore" data-o="0" onclick="toggleMore(this)">Exibir todos ('.($tot-$lim).')</button>'; }
    $body.='</div>';
  }
  $body.='</div></div>';
  }
} elseif($mSlug!==''){
  require_once __DIR__.'/_veic.php';
  $marca=''; $lista=array();
  foreach($GLOBALS['VEICULOS'] as $v){ if(cat_slug($v[1])===$mSlug){ $marca=$v[1]; $lista[]=$v; } }
  if($marca===''){ http_response_code(404); $marca='Marca'; }
  $title='Peças para '.$marca.' | Revuto Auto Parts';
  $desc='Catálogo de peças para veículos '.$marca.': escolha o modelo, motor e ano. Peças originais e OEM com garantia.';
  $canon=$BASE.'/veiculo.php?marca='.$mSlug;
  $h1='Veículos '.$marca;
  $sub2=count($lista).' versões catalogadas';
  $crumb=array(array('Início','/'),array('Catálogo','catalogo/'),array('Veículos','veiculo'),array($marca,''));
  $body='<div class="cats">'; foreach($lista as $v){ $body.='<a class="cat" href="veiculo.php?v='.h($v[0]).'">'.h($v[2]).($v[3]?(' <small>'.h($v[3]).'</small>'):'').'</a>'; } $body.='</div>';
} else {
  require_once __DIR__.'/_veic.php';
  $marcas=array(); foreach($GLOBALS['VEICULOS'] as $v){ if($v[1]!=='') $marcas[$v[1]]=isset($marcas[$v[1]])?$marcas[$v[1]]+1:1; }
  ksort($marcas);
  $title='Peças por Veículo | Revuto Auto Parts';
  $desc='Encontre peças pelo seu carro: Audi, BMW, Mercedes, Volvo, Porsche, Land Rover, Jaguar, VW, Mini e Smart. Peças originais e OEM.';
  $canon=$BASE.'/veiculo';
  $h1='Peças por Veículo';
  $crumb=array(array('Início','/'),array('Catálogo','catalogo/'),array('Veículos',''));
  $body='<div class="cats">'; foreach($marcas as $m=>$c){ $body.='<a class="cat" href="veiculo.php?marca='.h(cat_slug($m)).'">'.h($m).' <small>'.$c.' modelos</small></a>'; } $body.='</div>';
}

$cr=array(); $items=array(); $i=1;
foreach($crumb as $c){ $nm=$c[0]; $u=$c[1];
  $cr[]= $u!=='' ? '<a href="'.h($u).'">'.h($nm).'</a>' : '<span>'.h($nm).'</span>';
  $it=array('@type'=>'ListItem','position'=>$i,'name'=>$nm); if($u!=='') $it['item']=$BASE.'/'.$u; $items[]=$it; $i++;
}
$ldcrumb=json_encode(array('@context'=>'https://schema.org','@type'=>'BreadcrumbList','itemListElement'=>$items),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
?><!DOCTYPE html>
<html lang="pt-BR"><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title><?php echo h($title); ?></title>
<meta name="description" content="<?php echo h($desc); ?>">
<meta name="robots" content="index,follow">
<link rel="canonical" href="<?php echo h($canon); ?>">
<link rel="icon" href="favicon.ico">
<meta property="og:title" content="<?php echo h($title); ?>"><meta property="og:description" content="<?php echo h($desc); ?>"><meta property="og:type" content="website"><meta property="og:url" content="<?php echo h($canon); ?>">
<script type="application/ld+json"><?php echo $ldcrumb; ?></script>
<style>
*{box-sizing:border-box;margin:0;padding:0}body{font-family:Arial,Helvetica,sans-serif;background:#eef0f5;color:#1e293b}
header{background:linear-gradient(120deg,#0b1f3a,#13294d);padding:14px 18px;display:flex;align-items:center;gap:18px}
header .lg{color:#fff;font-weight:bold;font-size:20px;text-decoration:none;display:flex;align-items:center;gap:8px}
header .lg span{color:#f59e0b;font-size:12px;font-weight:normal}
header form{flex:1;display:flex;max-width:680px}header input{flex:1;border:none;border-radius:6px 0 0 6px;padding:11px 14px;font-size:14px}
header button{background:#2563eb;color:#fff;border:none;border-radius:0 6px 6px 0;padding:0 20px;font-weight:bold;cursor:pointer}
.wrap{max-width:1180px;margin:0 auto;padding:0 18px}
.crumb{font-size:12px;color:#64748b;padding:14px 0}.crumb a{color:#2563eb;text-decoration:none}.crumb span{color:#334155}
h1{font-size:22px;color:#0f172a;margin:6px 0 4px}.sub2{font-size:13px;color:#64748b;margin-bottom:18px}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:32px}
.cat{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:14px;text-decoration:none;color:#1e293b;font-weight:bold;font-size:13.5px;transition:.15s}
.cat small{display:block;color:#64748b;font-weight:normal;font-size:11px;margin-top:3px}
.cat:hover{box-shadow:0 6px 18px rgba(0,0,0,.1);transform:translateY(-2px);border-color:#2563eb}
.sess{background:#fff;border:1px solid #eef0f3;border-radius:12px;padding:14px 16px;margin-bottom:14px}
.sess h2{font-size:15px;color:#0f172a;margin-bottom:10px}
.subs{display:flex;flex-wrap:wrap;gap:8px}
.sb{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:6px 10px;font-size:12px;color:#2563eb;text-decoration:none}
.sb:hover{background:#2563eb;color:#fff}
footer{background:#0b1f3a;color:#cbd5e1;font-size:12px;text-align:center;padding:20px;margin-top:30px}footer a{color:#93c5fd;text-decoration:none}
.vsel{font-size:12px;font-weight:bold;color:#0f172a;background:#f1f5f9;border-radius:8px;padding:9px 12px;margin-bottom:12px}.vstar{margin-left:auto;color:#cbd5e1;font-size:16px}.vhid{display:none}.vmore{margin-top:8px;width:100%;background:#2563eb;color:#fff;border:none;border-radius:8px;padding:9px;font-weight:bold;font-size:12.5px;cursor:pointer}.vmore:hover{background:#1d4ed8}.vlayout{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}.vside{background:#fff;border:1px solid #e6e9ef;border-radius:14px;padding:18px;position:sticky;top:14px}.vcar{text-align:center;border-bottom:1px solid #eef0f3;padding-bottom:14px;margin-bottom:14px}.vcar .vic{font-size:46px}.vlogo{display:flex;justify-content:center;align-items:center;height:110px;margin-bottom:8px}.vlogo svg{max-height:104px;max-width:180px}.vlogo img{max-height:104px;max-width:180px;object-fit:contain}.vcar .vnm{font-weight:bold;color:#0f172a;margin-top:8px;font-size:14px;line-height:1.3}.vdt{margin:0 -18px}.vdt h3{font-size:12px;color:#2563eb;letter-spacing:.6px;margin:0 0 8px;padding:0 18px}.vrow{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:8px 18px}.vrow:nth-child(even){background:#f1f5f9}.vrow .k{color:#64748b}.vrow .v{color:#0f172a;font-weight:bold;text-align:right}.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.vpanel{background:#fff;border:1px solid #e6e9ef;border-radius:14px;padding:16px 18px}.vpanel h2{font-size:15px;color:#0f172a;display:flex;align-items:center;gap:8px;margin-bottom:12px;border-bottom:2px solid #f1f5f9;padding-bottom:9px}.vpanel .vpi{font-size:18px}.vpanel ul{list-style:none;margin:0;padding:0}.vpanel li{padding:4px 0}.vpanel li a{color:#334155;font-size:13px;text-decoration:none;display:flex;align-items:center;gap:6px}.vpanel li a:before{content:'›';color:#f97316;font-weight:bold}.vpanel li a:hover{color:#2563eb}@media(max-width:860px){.vlayout{grid-template-columns:1fr}.vside{position:static}}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:26px}.pcard{background:#fff;border:1px solid #eef0f3;border-radius:12px;padding:12px;text-decoration:none;color:inherit;transition:.15s;display:block}.pcard:hover{box-shadow:0 6px 18px rgba(0,0,0,.1);transform:translateY(-2px)}.pimg{height:140px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.pimg img{max-width:100%;max-height:100%;object-fit:contain}.pn{font-size:12.5px;color:#334155;line-height:1.35;height:52px;overflow:hidden;margin-bottom:6px}.pp{font-size:15px;font-weight:bold;color:#16a34a}.pp span{font-size:11px;color:#64748b;font-weight:normal}
<?php echo lay_css(); ?>
</style></head><body>
<?php echo lay_header(); ?>
<div class="wrap">
<div class="crumb"><?php echo implode(' &rsaquo; ',$cr); ?></div>
<?php echo lay_home_btn(); ?>
<h1><?php echo h($h1); ?></h1>
<?php if($sub2!==''){ echo '<div class="sub2">'.h($sub2).'</div>'; } ?>
<?php echo $body; ?>
</div>
<?php echo lay_footer(); ?>
<script>function toggleMore(b){var p=b.parentNode;var hid=p.querySelectorAll('.vhid');var open=b.getAttribute('data-o')==='1';for(var i=0;i<hid.length;i++){hid[i].style.display=open?'none':'block';}b.setAttribute('data-o',open?'0':'1');b.textContent=open?('Exibir todos ('+hid.length+')'):'Mostrar menos';}</script>
</body></html>
