/* =========================================================
   PANTERA MOTORS — design system
   Shibuya garage (concreto, neon, noite) × KTM (laranja, corte seco)
   ========================================================= */

:root{
  --preto:    #0B0B0D;
  --grafite:  #131317;
  --aco:      #1C1C21;
  --aco-2:    #26262D;
  --linha:    #32323B;
  --texto:    #F2F2F4;
  --texto-2:  #A5A5B0;
  --texto-3:  #6E6E7A;
  --laranja:  #FF5A00;
  --laranja-2:#FF7A2E;
  --acido:    #C6F24E;
  --raio:     4px;
  --fonte: ui-sans-serif, -apple-system, "Segoe UI Variable", "Segoe UI", Roboto, Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;
}

/* A Pantera é uma garagem — nasce escura. O tema claro é opcional. */
:root[data-tema="claro"]{
  --preto:#F4F4F6; --grafite:#FFFFFF; --aco:#FFFFFF; --aco-2:#ECECF0;
  --linha:#D8D8DF; --texto:#0B0B0D; --texto-2:#4A4A55; --texto-3:#83838F;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--preto);color:var(--texto);
  font-family:var(--fonte);font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
button{font-family:inherit}
.envolto{width:100%;max-width:1240px;margin:0 auto;padding:0 16px}

.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ---------- Faixa demo ---------- */
.faixa-demo{
  background:var(--acido);color:#0B0B0D;font-size:12.5px;font-weight:600;
  text-align:center;padding:7px 16px;letter-spacing:.01em;line-height:1.35;
}
.faixa-demo a{color:#0B0B0D}

/* ---------- Topo ---------- */
.topo{
  position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--preto) 88%,transparent);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--linha);
}
.topo-in{display:flex;align-items:center;gap:18px;height:64px}
.marca{display:flex;align-items:center;gap:9px;text-decoration:none;flex-shrink:0}
.marca-nome{
  font-size:17px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
}
.marca-nome span{color:var(--laranja)}
.topo-nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.topo-nav a{
  text-decoration:none;font-size:12.5px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--texto-2);padding:9px 12px;border-radius:var(--raio);
}
.topo-nav a:hover{color:var(--texto);background:var(--aco)}
.btn-tema{
  border:1px solid var(--linha);background:transparent;color:var(--texto-2);
  width:36px;height:36px;border-radius:var(--raio);cursor:pointer;display:grid;place-items:center;
}
.btn-tema:hover{border-color:var(--laranja);color:var(--laranja)}

/* ---------- Hero ---------- */
.hero{
  position:relative;border-bottom:1px solid var(--linha);overflow:hidden;
  background:
    radial-gradient(900px 420px at 78% -10%, color-mix(in srgb,var(--laranja) 18%, transparent), transparent 70%),
    linear-gradient(180deg, var(--grafite), var(--preto));
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--linha) 1px, transparent 1px),
                   linear-gradient(90deg, var(--linha) 1px, transparent 1px);
  background-size:52px 52px;opacity:.22;
  mask-image:linear-gradient(180deg, transparent, #000 40%, transparent);
}
.hero-in{position:relative;z-index:1;padding:56px 0 48px;display:grid;gap:34px;grid-template-columns:1.05fr .95fr;align-items:center}
.selo{
  display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--laranja);
  border:1px solid color-mix(in srgb,var(--laranja) 42%,transparent);
  padding:5px 11px;border-radius:999px;margin-bottom:16px;
}
.hero h1{
  font-size:clamp(34px,5.6vw,60px);line-height:.98;margin:0 0 14px;
  letter-spacing:-.025em;font-weight:800;text-transform:uppercase;
}
.hero h1 em{font-style:normal;color:var(--laranja)}
.hero p{margin:0 0 24px;color:var(--texto-2);font-size:16.5px;max-width:46ch}
.hero-acoes{display:flex;gap:10px;flex-wrap:wrap}

.hero-arte{border:1px solid var(--linha);border-radius:var(--raio);overflow:hidden;background:var(--aco)}
.hero-arte svg{display:block;width:100%;height:auto}
.hero-legenda{
  padding:11px 14px;border-top:1px solid var(--linha);display:flex;
  justify-content:space-between;gap:12px;font-family:var(--mono);font-size:11.5px;color:var(--texto-3);
}

/* ---------- Botões ---------- */
.btn{
  border:0;border-radius:var(--raio);padding:13px 22px;font-size:13px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;cursor:pointer;text-decoration:none;
  display:inline-flex;align-items:center;gap:8px;
}
.btn-laranja{background:var(--laranja);color:#fff}
.btn-laranja:hover{background:var(--laranja-2)}
.btn-linha{background:transparent;color:var(--texto);border:1px solid var(--linha)}
.btn-linha:hover{border-color:var(--laranja);color:var(--laranja)}

/* ---------- Filtros ---------- */
.secao-topo{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:40px 0 18px}
.secao-topo h2{
  font-size:clamp(22px,3vw,30px);margin:0;text-transform:uppercase;letter-spacing:-.015em;font-weight:800;
}
.secao-topo p{margin:5px 0 0;color:var(--texto-3);font-size:14px}
.ordenar{margin-left:auto;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;color:var(--texto-3);text-transform:uppercase;letter-spacing:.08em}
.ordenar select{
  font-family:var(--mono);font-size:12px;color:var(--texto);background:var(--aco);
  border:1px solid var(--linha);border-radius:var(--raio);padding:8px 10px;cursor:pointer;
}

.trilho{display:flex;gap:7px;overflow-x:auto;padding:0 0 18px;scrollbar-width:none}
.trilho::-webkit-scrollbar{display:none}
.chip{
  flex-shrink:0;border:1px solid var(--linha);background:transparent;color:var(--texto-2);
  border-radius:var(--raio);padding:9px 14px;font-size:12px;font-weight:600;cursor:pointer;
  letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;transition:.14s;
}
.chip:hover{border-color:var(--texto-3);color:var(--texto)}
.chip[aria-pressed="true"]{background:var(--laranja);border-color:var(--laranja);color:#fff}

/* ---------- Grade ---------- */
.grade{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(286px,1fr));padding-bottom:48px}
.veiculo{
  background:var(--grafite);border:1px solid var(--linha);border-radius:var(--raio);
  overflow:hidden;cursor:pointer;text-align:left;padding:0;color:inherit;font-family:inherit;
  display:flex;flex-direction:column;transition:border-color .16s, transform .16s;
}
.veiculo:hover{border-color:var(--laranja);transform:translateY(-2px)}
.veiculo:focus-visible{outline:2px solid var(--laranja);outline-offset:2px}
.v-foto{position:relative;aspect-ratio:4/3;background:var(--aco);overflow:hidden}
.v-foto svg{width:100%;height:100%;display:block}
.v-tag{
  position:absolute;top:10px;left:10px;font-family:var(--mono);font-size:10.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;background:var(--laranja);color:#fff;padding:4px 8px;border-radius:2px;
}
.v-tag.frio{background:var(--aco-2);color:var(--texto-2)}
.v-ano{
  position:absolute;bottom:10px;right:10px;font-family:var(--mono);font-size:11px;
  background:rgba(11,11,13,.8);color:var(--texto);padding:3px 8px;border-radius:2px;
}
.v-corpo{padding:15px 15px 16px;display:flex;flex-direction:column;gap:5px;flex:1}
.v-cat{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--laranja)}
.v-nome{font-size:16px;font-weight:700;line-height:1.24}
.v-specs{font-family:var(--mono);font-size:12px;color:var(--texto-3);margin-top:2px}
.v-rodape{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:auto;padding-top:11px}
.v-preco{font-size:17px;font-weight:800;letter-spacing:-.01em}
.v-km{font-family:var(--mono);font-size:11.5px;color:var(--texto-3)}

.slot-ad{
  grid-column:1/-1;border:1px dashed var(--linha);border-radius:var(--raio);
  background:var(--grafite);padding:22px;text-align:center;color:var(--texto-3);
  font-size:12px;min-height:110px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:6px;
}
.slot-ad b{color:var(--texto-2);font-size:12.5px;display:block;letter-spacing:.08em;text-transform:uppercase;font-family:var(--mono)}

.vazio{grid-column:1/-1;text-align:center;padding:62px 20px;color:var(--texto-3)}
.vazio h3{color:var(--texto);font-size:21px;margin:0 0 8px;text-transform:uppercase}

/* ---------- Painel ---------- */
.fundo-modal{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:90;opacity:0;pointer-events:none;transition:opacity .2s}
.fundo-modal.aberto{opacity:1;pointer-events:auto}
.painel{
  position:fixed;top:0;right:0;height:100%;width:min(660px,100%);background:var(--preto);
  z-index:100;overflow-y:auto;transform:translateX(100%);
  transition:transform .26s cubic-bezier(.4,0,.2,1);border-left:1px solid var(--linha);
}
.painel.aberto{transform:translateX(0)}
.painel-topo{
  position:sticky;top:0;background:color-mix(in srgb,var(--preto) 92%,transparent);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--linha);display:flex;align-items:center;gap:12px;padding:13px 18px;z-index:2;
}
.painel-topo h2{font-size:15px;margin:0;font-weight:700;flex:1;text-transform:uppercase;letter-spacing:.03em;line-height:1.3}
.fechar{border:1px solid var(--linha);background:transparent;color:var(--texto);width:34px;height:34px;border-radius:var(--raio);cursor:pointer;flex-shrink:0;display:grid;place-items:center}
.fechar:hover{border-color:var(--laranja);color:var(--laranja)}
.painel-corpo{padding:18px}

.galeria{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.galeria .g{aspect-ratio:4/3;background:var(--aco);position:relative;border-radius:2px;overflow:hidden}
.galeria .g:first-child{grid-column:span 3;aspect-ratio:16/9}
.galeria .g svg{width:100%;height:100%}
.galeria-mais{position:absolute;inset:0;background:rgba(11,11,13,.68);color:#fff;display:grid;place-items:center;font-family:var(--mono);font-size:13px;font-weight:700}

.tabela-specs{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px}
.tabela-specs tr{border-bottom:1px solid var(--linha)}
.tabela-specs th{
  text-align:left;padding:11px 0;color:var(--texto-3);font-weight:500;font-size:12px;
  letter-spacing:.08em;text-transform:uppercase;font-family:var(--mono);width:44%;
}
.tabela-specs td{text-align:right;padding:11px 0;font-weight:600;font-family:var(--mono)}

.bullets{list-style:none;padding:0;margin:16px 0;display:grid;gap:9px}
.bullets li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--texto-2)}
.bullets li::before{content:"—";color:var(--laranja);flex-shrink:0;font-weight:700}

.cta-linha{display:flex;gap:9px;flex-wrap:wrap;padding:18px 0;border-top:1px solid var(--linha);margin-top:18px}

/* ---------- Rodapé ---------- */
.rodape{border-top:1px solid var(--linha);background:var(--grafite);padding:38px 0 30px;margin-top:20px}
.rodape-grade{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.rodape h4{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:var(--texto-3);margin:0 0 11px}
.rodape ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}
.rodape a{font-size:14px;color:var(--texto-2);text-decoration:none}
.rodape a:hover{color:var(--laranja)}
.rodape-fim{margin-top:26px;padding-top:18px;border-top:1px solid var(--linha);font-size:12.5px;color:var(--texto-3);line-height:1.6}

@media (max-width:860px){
  .hero-in{grid-template-columns:1fr;padding:38px 0 34px;gap:26px}
}
@media (max-width:640px){
  .topo-in{height:56px;gap:8px}
  .topo-nav a.so-desktop,
  .topo-nav a[href="/painel/"]{display:none}
  .topo-nav a{padding:8px 9px}
  .grade{grid-template-columns:1fr;gap:13px}
  .galeria{grid-template-columns:repeat(2,1fr)}
  .galeria .g:first-child{grid-column:span 2}
  .painel-corpo{padding:14px}
}
