/* ==========================================================================
   MC CONSULTING — identidade visual
   Paleta do brandbook: #0d3378 (azul), #d2d2d2 (cinza), preto e branco.
   ========================================================================== */

/* ---------- Fontes ---------- */
@font-face { font-family: Outfit; src: local(Outfit), url(../fonts/outfit/Outfit-Light.ttf);    font-weight: 300; font-display: swap; }
@font-face { font-family: Outfit; src: local(Outfit), url(../fonts/outfit/Outfit-Regular.ttf);  font-weight: 400; font-display: swap; }
@font-face { font-family: Outfit; src: local(Outfit), url(../fonts/outfit/Outfit-Medium.ttf);   font-weight: 500; font-display: swap; }
@font-face { font-family: Outfit; src: local(Outfit), url(../fonts/outfit/Outfit-SemiBold.ttf); font-weight: 600; font-display: swap; }
@font-face { font-family: Outfit; src: local(Outfit), url(../fonts/outfit/Outfit-Bold.ttf);     font-weight: 700; font-display: swap; }

/* ---------- Tokens ---------- */
:root {
  /* Marca */
  --azul:        #0d3378;
  --azul-esc:    #08224f;   /* hover / faixas mais profundas */
  --azul-claro:  #1a4a9e;
  --azul-leve:   #eef2f9;   /* superfícies tingidas          */
  --cinza:       #d2d2d2;
  --preto:       #0a0a0a;

  /* Interface */
  --texto:       #16181d;
  --texto-fraco: #6b7280;
  --borda:       #e6e7ea;
  --superficie:  #f7f8fa;
  --verde:       #25d366;   /* WhatsApp — cor funcional     */

  --nav-h:       72px;
  --radius:      12px;
  --radius-sm:   8px;
  --sombra:      0 1px 2px rgba(13,51,120,.04), 0 6px 20px rgba(13,51,120,.07);
  --sombra-alta: 0 8px 30px rgba(13,51,120,.16);
  --container:   1280px;
  --trilha:      .06em;     /* tracking dos títulos, ecoa o wordmark */
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: Outfit, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--texto);
  background: #fff;
}
img, svg { vertical-align: middle; }
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; font-weight: 600; letter-spacing: -.01em; }
button { font: inherit; cursor: pointer; }
input, select { font: inherit; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 20px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

/* ==========================================================================
   HEADER — barra clara, logo escura
   ========================================================================== */
#menu {
  position: sticky; top: 0; z-index: 1000;
  background: #fff;
  border-bottom: 1px solid var(--borda);
}
.navbar-inner {
  max-width: 1600px; margin: 0 auto; padding: 0 24px;
  min-height: var(--nav-h);
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}

.navbar-brand { display: flex; align-items: center; padding: 10px 0; }
.navbar-brand img { height: 44px; width: auto; display: block; }

.navbar-collapse { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: flex-end; }
.navbar-nav { display: flex; align-items: center; gap: 4px; }
.navbar-nav > li > a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 12px; border-radius: var(--radius-sm);
  color: var(--texto); font-size: 14px; font-weight: 500;
  transition: background-color .15s ease, color .15s ease;
}
.navbar-nav > li > a:hover { background: var(--azul-leve); color: var(--azul); }
.navbar-nav > li.active > a { color: var(--azul); background: var(--azul-leve); }
.navbar-nav svg { fill: currentColor; }

.nav-contato { display: flex; align-items: center; gap: 8px; }
.nav-contato a {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 18px; border-radius: 999px;
  font-size: 14px; font-weight: 500; color: #fff;
}
.nav-contato .telefone-menu a { background: var(--azul); }
.nav-contato .telefone-menu a:hover { background: var(--azul-esc); }
.nav-contato .whats-menu a { background: var(--verde); }
.nav-contato .whats-menu a:hover { background: #1eb857; }
.nav-contato svg { fill: #fff; }

.btn-favoritos svg { fill: var(--azul); }
.fav-count {
  display: inline-block; min-width: 20px; padding: 0 6px;
  background: var(--azul); color: #fff;
  border-radius: 10px; font-size: 11px; font-weight: 600; line-height: 20px; text-align: center;
}

.navbar-toggle {
  display: none; width: 44px; height: 40px; padding: 10px;
  background: transparent; border: 1px solid var(--borda); border-radius: var(--radius-sm);
}
.navbar-toggle .icon-bar { display: block; width: 100%; height: 2px; background: var(--texto); border-radius: 1px; }
.navbar-toggle .icon-bar + .icon-bar { margin-top: 4px; }

/* ==========================================================================
   HERO — banner da home
   ========================================================================== */
/* A arte aparece inteira, sem recorte: a altura acompanha a proporção do PNG. */
.hero { background: var(--azul); }
.hero img { display: block; width: 100%; height: auto; }

/* ==========================================================================
   LAYOUT
   ========================================================================== */
.page { background: #fff; }
.layout { display: flex; align-items: flex-start; }

/* ---------- Sidebar ---------- */
.sidebar {
  flex: 0 0 280px; max-width: 280px;
  position: sticky; top: var(--nav-h);
  height: calc(100vh - var(--nav-h));
  overflow-y: auto; scrollbar-width: thin;
  padding: 28px 20px 120px;
  background: #fff;
  border-right: 1px solid var(--borda);
  z-index: 9;
}
.sidebar > h4 {
  display: flex; align-items: center; gap: 10px;
  margin: 0 0 20px;
  font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em;
  color: var(--texto-fraco);
}
.sidebar > h4 svg { fill: var(--azul); }

.box-filtro { padding: 18px 0; border-bottom: 1px solid var(--borda); }
.box-filtro:last-child { border-bottom: none; }
.filtro-titulo {
  margin: 0 0 10px; padding: 0;
  font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em;
  color: var(--texto);
}
.filtro-grupo li { line-height: 1.4; }
.box-filtro label {
  display: flex; align-items: center; gap: 10px;
  margin: 3px 0; padding: 4px 6px; border-radius: 6px;
  cursor: pointer;
  color: var(--texto-fraco); font-size: 13px; font-weight: 400;
  transition: background-color .12s ease, color .12s ease;
}
.box-filtro label:hover { background: var(--azul-leve); color: var(--azul); }
.box-filtro input[type=checkbox] { margin: 0; cursor: pointer; accent-color: var(--azul); }
.box-filtro .filtro-cor svg { border: 1px solid var(--cinza); border-radius: 50%; padding: 2px; }

.thumb-placeholder {
  flex: 0 0 auto; width: 24px; height: 18px;
  border: 1px dashed var(--cinza); border-radius: 3px;
}

.range-group { display: flex; align-items: center; gap: 8px; }
.range-group span { font-size: 12px; color: var(--texto-fraco); }
.range-group input {
  width: 100%; height: 38px; padding: 6px 10px;
  border: 1px solid var(--borda); border-radius: var(--radius-sm);
  font-size: 14px; text-align: right;
}
.range-group input:focus { outline: 2px solid var(--azul); outline-offset: -1px; border-color: transparent; }

.aplicar-filtro { display: none; }

/* ---------- Coluna principal ---------- */
.main { flex: 1 1 auto; min-width: 0; padding: 0 24px 56px; }

.row-order-filter {
  position: sticky; top: var(--nav-h); z-index: 998;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 14px 0;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--borda);
}
.row-order-filter .busca-rapida { display: flex; align-items: center; gap: 10px; flex: 1 1 auto; }
.row-order-filter select {
  height: 40px; padding: 6px 12px;
  border: 1px solid var(--borda); border-radius: var(--radius-sm); background: #fff;
  font-size: 14px; color: var(--texto-fraco);
}
.row-order-filter select:focus { outline: 2px solid var(--azul); outline-offset: -1px; }
.row-order-filter .order { margin-left: auto; }

.tit-estoque-result {
  margin: 32px 0 20px;
  font-size: 15px; font-weight: 600; text-transform: uppercase; letter-spacing: var(--trilha);
  color: var(--texto-fraco);
}

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 10px 20px; border: 1px solid transparent; border-radius: var(--radius-sm);
  font-size: 14px; font-weight: 500; line-height: 1.4; text-align: center;
  transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.btn-lg { padding: 13px 28px; font-size: 15px; }
.btn-block { display: flex; width: 100%; }
.btn-primary { background: var(--azul); color: #fff; }
.btn-primary:hover { background: var(--azul-esc); }
.btn-danger { background: var(--preto); color: #fff; }
.btn-danger:hover { background: #262626; }
.btn-outline { background: #fff; border-color: var(--borda); color: var(--texto-fraco); }
.btn-outline:hover { border-color: var(--azul); color: var(--azul); }
.btn svg { fill: currentColor; }
.btn.btn-filtro-mobile { display: none; }

/* ==========================================================================
   GRID DE VEÍCULOS
   ========================================================================== */
.veiculos-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.carro { position: relative; }

.vitrine-favoritos .btn {
  position: absolute; top: 12px; right: 12px; z-index: 9;
  width: 38px; height: 38px; padding: 9px;
  background: rgba(255,255,255,.92); border: none; border-radius: 999px;
  color: var(--texto-fraco);
  box-shadow: 0 2px 6px rgba(0,0,0,.12);
}
.vitrine-favoritos .btn svg { fill: currentColor; }
.vitrine-favoritos .btn:hover,
.vitrine-favoritos .btn.active { color: var(--azul); background: #fff; }

.selo-oferta-home {
  position: absolute; top: 12px; left: 12px; z-index: 9;
  padding: 5px 12px;
  background: var(--preto); color: #fff;
  border-radius: 999px;
  font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
}

.box-veiculo-resultado {
  display: flex; flex-direction: column; height: 100%;
  background: #fff;
  border: 1px solid var(--borda); border-radius: var(--radius);
  box-shadow: var(--sombra);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.box-veiculo-resultado:hover {
  transform: translateY(-3px);
  border-color: transparent;
  box-shadow: var(--sombra-alta);
}

/* 4:3 em vez de 16:10: o grid continua uniforme e corta menos as fotos
   verticais de celular, que são a maioria do estoque. */
.carro-img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--superficie); }
.carro-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.box-veiculo-resultado:hover .carro-img img { transform: scale(1.04); }
.img-placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: repeating-linear-gradient(135deg, #f2f3f5 0 14px, #eceef1 14px 28px);
  color: #a8adb7; font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
}

.carro-info { display: flex; flex-direction: column; flex: 1; padding: 16px; }
.tit-marca { margin-bottom: 10px; font-size: inherit; }
.tit-marca a { display: block; color: var(--texto); }
.tit-marca a:hover .first-name { color: var(--azul); }
.tit-marca .year {
  margin-bottom: 6px;
  font-size: 11px; font-weight: 500; letter-spacing: .1em; color: var(--texto-fraco);
}
.tit-marca .first-name {
  font-size: 15px; font-weight: 600; text-transform: uppercase; letter-spacing: var(--trilha);
  transition: color .15s ease;
}
.tit-marca .last-name {
  margin-top: 2px;
  font-size: 13px; font-weight: 300; color: var(--texto-fraco); text-transform: uppercase;
}

.price2-col { margin: 10px 0; }
.preco-antigo {
  margin: 0; font-size: 13px; font-weight: 400; color: var(--texto-fraco);
  text-decoration: line-through;
}
.preco { margin: 0; font-size: 22px; font-weight: 700; color: var(--azul); letter-spacing: -.02em; }
.preco--consulte { font-size: 18px; font-weight: 600; color: var(--texto-fraco); letter-spacing: 0; }

.vitrine-cidade {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--texto-fraco);
}
.vitrine-cidade svg { fill: var(--cinza); }

/* Chips sem caixa — só divisores, mais leve que o tema de origem */
.opicionais {
  display: flex; align-items: stretch;
  margin-top: auto; padding-top: 14px;
  border-top: 1px solid var(--borda);
}
.box-opicionais-home {
  flex: 1; padding: 0 4px;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  text-align: center; font-size: 10px; font-weight: 500;
  color: var(--texto-fraco); text-transform: uppercase; letter-spacing: .04em;
}
.box-opicionais-home + .box-opicionais-home { border-left: 1px solid var(--borda); }
.box-opicionais-home svg { fill: var(--azul); }

.estado-vazio {
  grid-column: 1 / -1;
  padding: 72px 24px; text-align: center;
  background: var(--superficie); border-radius: var(--radius);
  color: var(--texto-fraco);
}

.show-more { padding: 44px 0; text-align: center; }

/* ==========================================================================
   PÁGINAS INTERNAS
   ========================================================================== */
.page-interna { padding: 48px 0 72px; min-height: 50vh; }
.page-interna h1 {
  margin-bottom: 10px; font-size: 32px; letter-spacing: -.02em;
}
.page-interna .lead { margin: 0 0 28px; color: var(--texto-fraco); font-size: 16px; }
.bloco-vazio {
  padding: 72px 24px; text-align: center;
  background: var(--superficie); border-radius: var(--radius);
  color: var(--texto-fraco);
}

/* ==========================================================================
   FOOTER — azul da marca
   ========================================================================== */
.page-footer {
  padding: 64px 0 0;
  background: var(--azul); color: #fff;
}
.page-footer a { color: rgba(255,255,255,.82); }
.page-footer a:hover { color: #fff; }
.page-footer h3 {
  margin-bottom: 16px;
  font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .14em;
  color: rgba(255,255,255,.6);
}
.page-footer li { line-height: 2; }
.page-footer svg { fill: rgba(255,255,255,.55); flex: 0 0 auto; }

.footer-marca { margin-bottom: 36px; }
.footer-marca img { height: 52px; width: auto; }

.footer-cols {
  display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px;
  padding-bottom: 48px;
}
.footer-cols address { font-style: normal; }
.footer-cols li { display: flex; align-items: flex-start; gap: 10px; }
.footer-cols li a { display: flex; align-items: center; gap: 10px; }

.tag-cloud { padding-bottom: 32px; }
.tag-cloud h3 { margin-top: 24px; }
.tag-cloud ul { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.tag-cloud a { font-size: 12px; }

.footer-copyright {
  margin-top: 24px; padding: 14px;
  background: var(--azul-esc); color: rgba(255,255,255,.75);
  text-align: center; font-size: 13px;
}
.footer-dev { padding: 18px 0; background: var(--preto); text-align: center; }
.footer-dev p { margin: 0; font-size: 11px; color: #6b7280; }

/* ==========================================================================
   WIDGETS FIXOS
   ========================================================================== */
.social-lateral { position: fixed; right: 0; z-index: 97; }
.social-lateral input[type=checkbox] { display: none; }
.social-lateral .lbl-toggle {
  display: block; padding: 13px; margin: 0;
  fill: #fff; cursor: pointer;
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  transition: all .25s ease-out;
}
.social-lateral .collapsible-content {
  position: absolute; right: 0; width: 210px;
  max-height: 0; overflow: hidden; transition: max-height .25s ease-in-out;
}
.social-lateral .toggle:checked + .lbl-toggle + .collapsible-content { max-height: 350px; }
.social-lateral .content-inner {
  padding: 12px 16px; color: #fff; font-size: 13px;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}
.facebook-lateral  { top: 240px; z-index: 99; }
.instagram-lateral { top: 296px; z-index: 98; }
.whatsapp-lateral  { top: 352px; z-index: 97; }
/* Redes na cor da marca — o verde fica só no WhatsApp */
.facebook-lateral  .lbl-toggle, .facebook-lateral  .content-inner { background: var(--azul); }
.instagram-lateral .lbl-toggle, .instagram-lateral .content-inner { background: var(--azul-claro); }
.whatsapp-lateral  .lbl-toggle, .whatsapp-lateral  .content-inner { background: var(--verde); }

.fixed-whats { display: none; position: fixed; right: 14px; bottom: 14px; z-index: 10000; }
.fixed-whats a {
  display: flex; align-items: center; justify-content: center;
  width: 56px; height: 56px;
  background: var(--verde); border-radius: 50%;
  box-shadow: 0 6px 18px rgba(0,0,0,.28);
}
.fixed-whats svg { fill: #fff; }

#cookieBar {
  position: fixed; right: 0; bottom: 0; left: 0; z-index: 999999;
  padding: 18px; background: #fff; color: var(--texto);
  border-top: 1px solid var(--borda);
  box-shadow: 0 -6px 24px rgba(13,51,120,.1);
}
#cookieBar .cookie-inner {
  max-width: var(--container); margin: 0 auto;
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
}
#cookieBar p { margin: 0; flex: 1; font-size: 13px; color: var(--texto-fraco); }
#cookieBar a { color: var(--azul); text-decoration: underline; }
#cookieBar[hidden] { display: none; }

/* ---------- Modal de favoritos ---------- */
.modal[hidden] { display: none; }
.modal {
  position: fixed; inset: 0; z-index: 1050;
  display: flex; justify-content: flex-end;
  background: rgba(10,10,10,.45);
}
.modal-content {
  width: 100%; max-width: 400px; height: 100%;
  display: flex; flex-direction: column;
  background: #fff;
}
.modal-header {
  display: flex; align-items: center; gap: 12px;
  padding: 18px 20px; border-bottom: 1px solid var(--borda);
}
.modal-header h4 {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; text-transform: uppercase; letter-spacing: .12em;
}
.modal-header h4 svg { fill: var(--azul); }
.modal-header .close {
  margin-left: auto; padding: 0 6px;
  background: none; border: none; font-size: 26px; line-height: 1; color: var(--texto-fraco);
}
.modal-body { flex: 1; padding: 20px; overflow-y: auto; }

/* ==========================================================================
   RESPONSIVO
   ========================================================================== */
@media (max-width: 1279px) {
  .veiculos-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
  :root { --nav-h: 64px; }
  .navbar-toggle { display: block; }
  .navbar-collapse {
    position: absolute; top: 100%; right: 0; left: 0;
    display: none; flex-direction: column;
    padding: 12px 24px 20px;
    background: #fff;
    border-bottom: 1px solid var(--borda);
    box-shadow: 0 10px 20px rgba(13,51,120,.08);
  }
  .navbar-collapse.is-open { display: flex; align-items: stretch; justify-content: flex-start; }
  .navbar-nav { flex-direction: column; align-items: stretch; width: 100%; }
  .navbar-nav > li > a { display: flex; padding: 12px; border-radius: var(--radius-sm); }
  .nav-contato { flex-direction: column; align-items: stretch; margin-top: 12px; order: 2; }
  .nav-contato a { justify-content: center; }
  .navbar-brand img { height: 36px; }

  .layout { display: block; }
  .sidebar {
    position: fixed; top: 0; left: 0; bottom: 0; z-index: 1040;
    width: 300px; max-width: 86vw; height: 100%;
    padding-bottom: 96px;
    border-right: none;
    transform: translateX(-100%); transition: transform .25s ease;
    box-shadow: 6px 0 24px rgba(0,0,0,.18);
  }
  .sidebar.is-open { transform: translateX(0); }
  .main { max-width: 100%; padding: 0 20px 48px; }
  .veiculos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .btn.btn-filtro-mobile { display: inline-flex; }
  .aplicar-filtro {
    display: block; position: fixed; bottom: 0; left: 0;
    width: 300px; max-width: 86vw; z-index: 1041;
  }
  .aplicar-filtro .btn { border-radius: 0; line-height: 36px; }
  .sidebar:not(.is-open) + .aplicar-filtro { display: none; }
  .social-lateral { display: none; }
  .fixed-whats { display: block; }
  .footer-cols { grid-template-columns: 1fr 1fr; gap: 28px; }
}

@media (max-width: 575px) {
  .veiculos-grid { grid-template-columns: 1fr; }
  .footer-cols { grid-template-columns: 1fr; }
  .row-order-filter { flex-direction: column; align-items: stretch; }
  .row-order-filter .order { margin-left: 0; }
  .row-order-filter select { width: 100%; }
  .page-interna h1 { font-size: 26px; }
}
