*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#0a0a0a;--panel:#111214;--ink:#eee;--muted:#bfbfbf;--gold:#D4AF37;--gold-2:#F5D67B;--radius:16px;--shadow:0 20px 40px rgba(0,0,0,.45)}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:radial-gradient(1200px 800px at 20% -10%, rgba(212,175,55,.10), transparent 60%),var(--bg);color:var(--ink);line-height:1.6}
.container{max-width:1180px;margin:0 auto;padding:0 22px}
header{position:sticky;top:0;background:rgba(10,10,10,.85);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.06);z-index:1000}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 0}
.brand{display:flex;align-items:center;gap:14px}
.brand img{height:48px;border-radius:8px}
nav a{color:var(--ink);text-decoration:none;margin-left:18px;opacity:.9}
nav a:hover{opacity:1}
.btn{display:inline-block;padding:12px 18px;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--gold-2));color:#161616;text-decoration:none;font-weight:800;box-shadow:var(--shadow)}
.section{padding:70px 0}
.section h2{font-size:clamp(22px,3.2vw,34px); margin-bottom:14px}
.card{background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)); border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:18px; box-shadow:var(--shadow)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
footer{padding:34px 0;color:#bfbfbf;border-top:1px solid rgba(255,255,255,.06)}

.partner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.partner-card{background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)); border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:18px; box-shadow:0 20px 40px rgba(0,0,0,.45)}
.partner-card h3{margin-bottom:6px}
.partner-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.partner-links a{border:1px solid rgba(212,175,55,.35);background:rgba(212,175,55,.08);color:#f4e4a0;border-radius:999px;padding:8px 12px;text-decoration:none;font-size:14px}


/* --- Global background: Praça do Comércio (optimized) --- */
.remove-me-bg{
  content:"";
  position:fixed; inset:0;
  background: url('./assets/praca-comercio-day.webp') center/cover no-repeat fixed;
  z-index:-2; /* behind all content */
}
body::after{
  content:"";
  position:fixed; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.55));
  z-index:-1; /* overlay to ensure readability */
}


/* === Background tuning & mobile image === */
:root{
  --overlay-top: 0.32;   /* desktop overlay start */
  --overlay-bottom: 0.52;/* desktop overlay end   */
}
@media (max-width: 768px){
  :root{ --overlay-top: 0.42; --overlay-bottom: 0.62; }
}
.remove-me-bg{
  background: url('./assets/praca-comercio-day.webp') center/cover no-repeat fixed;
}
@media (max-width: 768px){
  .remove-me-bg{
    background: url('./assets/praca-comercio-day-mobile.webp') center/cover no-repeat fixed;
  }
}
body::after{
  background: linear-gradient(180deg, rgba(0,0,0,var(--overlay-top)), rgba(0,0,0,var(--overlay-bottom)));
}

/* === Preloader === */
#preloader{
  position:fixed; inset:0; display:grid; place-items:center; background:#0a0a0a; z-index:9999;
  transition: opacity .4s ease, visibility .4s ease;
}
#preloader .ring{
  width:54px; height:54px; border-radius:50%;
  border:3px solid rgba(255,255,255,.15); border-top-color:#D4AF37;
  animation: spin 1s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
body.loaded #preloader{ opacity:0; visibility:hidden; }

/* Language toggle */
.lang-toggle{display:flex;gap:8px;align-items:center;margin-left:12px}
.lang-toggle button{background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:6px 10px;color:#eee;font-weight:700;cursor:pointer}
.lang-toggle button.active{border-color:#D4AF37;color:#f4e4a0;background:rgba(212,175,55,.08)}
@media (max-width:720px){ .lang-toggle{display:none} }


/* === Background Slideshow === */
#bg-slides{
  position:fixed; inset:0; z-index:-3; overflow:hidden;
}
.bg-layer{
  position:absolute; inset:0;
  background-position:center; background-size:cover; background-repeat:no-repeat;
  opacity:0; transition: opacity 1.4s ease;
  will-change: opacity;
}
.bg-layer.show{ opacity:1; }
body::after{
  content:""; position:fixed; inset:0; z-index:-2;
  /* overlay */
  background: linear-gradient(180deg, rgba(0,0,0,var(--overlay-top,0.32)), rgba(0,0,0,var(--overlay-bottom,0.52)));
}


/* === Fundo luxuoso (páginas internas) === */
body.internal::before{
  content:""; position:fixed; inset:0; z-index:-3;
  background: url('./assets/marmore-luxo.webp') center/cover no-repeat fixed;
}
/* Overlay já existente em body::after é mantido */


/* === Tipografia premium === */
h1, h2, h3, .display-title{
  font-family: 'Playfair Display', serif;
  letter-spacing: 0.2px;
}
/* Hero phrase */
.hero-title{
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(28px, 5.2vw, 54px);
  line-height: 1.12;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0,0,0,.35);
  margin: 0 0 14px 0;
}
.hero-actions{
  display:flex; gap:14px; flex-wrap:wrap;
}


/* === Hero mobile tuning === */
@media (max-width: 640px){
  .hero-title{
    font-weight: 600;
    font-size: clamp(22px, 6.2vw, 30px);
    line-height: 1.25;
    text-align: center;
    margin-top: 22vh; /* pushes the phrase towards the middle on mobile */
    margin-bottom: 10px;
    text-shadow: 0 2px 12px rgba(0,0,0,.28);
  }
  .hero-actions{
    justify-content: center;
  }
}

/* tighter spacing after removing testimonials */
.section{padding:3rem 0}


/* === Botões estilo WhatsApp (pílula dourada) === */
.btn{
  display:inline-block;
  background: #D4AF37;
  color:#1a1a1a;
  font-weight:700;
  padding:10px 18px;
  border-radius:999px;
  border:none;
  text-decoration:none;
  box-shadow: 0 6px 16px rgba(212,175,55,0.25);
  transition: transform .08s ease, box-shadow .2s ease, background .2s ease;
}
.btn:hover{ background:#e0bf56; transform: translateY(-1px); box-shadow:0 8px 20px rgba(212,175,55,0.32); }
.btn:active{ transform: translateY(0); box-shadow:0 4px 12px rgba(212,175,55,0.22); }

.btn-ghost{ all: unset; }
.btn-ghost{ display:inline-block;background:#D4AF37;color:#1a1a1a;font-weight:700;padding:10px 18px;border-radius:999px;text-decoration:none;box-shadow:0 6px 16px rgba(212,175,55,.25)}
.btn-ghost:hover{ background:#e0bf56; }

/* === Secção Parceiros — fundo fixo com overlay e texto dourado === */
.partners-hero{
  position: relative;
  min-height: 58vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 6rem 1rem;
  color: #D4AF37;
  isolation: isolate;
  overflow: hidden;
}
.partners-hero::before{
  content:"";
  position:absolute; inset:0; z-index:-2;
  background: url('./assets/parceiros-bg.webp') center/cover no-repeat fixed;
  transform: translateZ(0); /* parallax hint */
}
.partners-hero::after{
  content:"";
  position:absolute; inset:0; z-index:-1;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.35), rgba(0,0,0,.6));
}
.partners-hero h1, .partners-hero h2{
  color:#D4AF37;
  margin:0;
}
/* efeito brilho sutil no título */
.partners-hero .shine{
  background: linear-gradient(110deg, rgba(212,175,55,0.85) 0%, #f2e1a2 20%, rgba(212,175,55,0.85) 40%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: shimmer 4.5s linear infinite;
}
@keyframes shimmer{
  0%{ background-position: 200% 0; }
  100%{ background-position: -200% 0; }
}


/* === Frota: imagens com 'contain' e galeria por cartão === */
.vehicle-frame{
  position: relative;
  height: 240px;
  background: #0b0b0b;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-bottom: 10px;
}
.vehicle-frame img{
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.vehicle-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display:flex; align-items:center; gap:8px;
  pointer-events: none;
  width: calc(100% - 16px);
  justify-content: space-between;
  left: 8px;
}
.vehicle-nav button{
  pointer-events: all;
  background: rgba(0,0,0,.45);
  color: #f5e6a8;
  border: 1px solid rgba(212,175,55,.55);
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  transition: background .2s ease, transform .08s ease;
}
.vehicle-nav button:hover{ background: rgba(0,0,0,.65); transform: translateY(-1px); }
.vehicle-dots{
  position:absolute; bottom:6px; left:0; right:0; display:flex; justify-content:center; gap:6px;
}
.vehicle-dots i{ width:6px; height:6px; border-radius:999px; display:inline-block; background: rgba(245,230,168,.35); }
.vehicle-dots i.active{ background: #D4AF37; }
@media (max-width: 640px){
  .vehicle-frame{ height: 200px; }
}


/* === Navegação: botões no estilo WhatsApp (outline -> fill) === */
.btn-nav{
  display:inline-block;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(212,175,55,.55);
  color:#f5e6a8;
  text-decoration:none;
  font-weight:700;
  transition: background .2s ease, color .2s ease, box-shadow .2s ease, transform .08s ease;
}
.btn-nav:hover{
  background:#D4AF37;
  color:#1a1a1a;
  box-shadow:0 6px 16px rgba(212,175,55,.25);
  transform: translateY(-1px);
}
/* Espaçamento entre itens do menu */
header .nav nav a{ margin-left: 6px; }
@media (max-width: 720px){
  header .nav nav a{ margin-left: 4px; }
}


/* Footer pill links smaller */
footer .btn-nav{
  padding:5px 10px;
  font-size: 0.8rem;
  border-width: 1px;
}
footer .btn-nav:hover{
  background:#D4AF37;
  color:#1a1a1a;
}


/* === Nav: botões iguais ao WhatsApp (sólidos dourados) e menores === */
header .nav{ gap:10px; }
header .nav nav{ display:flex; flex-wrap:nowrap; gap:6px; white-space:nowrap; }
header .nav nav a.btn-nav{
  background:#D4AF37 !important;
  color:#111 !important;
  border:none !important;
  padding:6px 10px !important;
  border-radius:999px !important;
  font-weight:700 !important;
  font-size:0.95rem !important;
  line-height:1 !important;
  box-shadow:0 4px 12px rgba(212,175,55,.22);
}
header .nav nav a.btn-nav:hover{ background:#e0bf56 !important; box-shadow:0 6px 16px rgba(212,175,55,.28); }
header .nav nav a.btn{ /* WhatsApp CTA */
  background:#D4AF37;
  color:#111;
  padding:8px 14px;
  font-weight:800;
}
/* Ajustes para caber numa linha em telas médias */
@media (max-width: 1150px){
  header .nav nav a.btn-nav{ padding:6px 9px !important; font-size:0.9rem !important; }
}
@media (max-width: 1024px){
  header .nav nav a.btn-nav{ padding:5px 8px !important; font-size:0.86rem !important; }
}


/* === Brand stacked under logo === */
header .brand{ display:flex; flex-direction:column; align-items:center; gap:2px; min-width:90px }
header .brand img{ height:40px; width:auto; display:block }
header .brand strong{ display:block; font-size:12px; color:#f1e7bd; font-weight:700; letter-spacing:.2px }
@media (max-width: 1024px){ header .brand strong{ font-size:11px } }


/* === Botão flutuante Orçamento (WhatsApp) === */
.fab-orcamento{
  position: fixed;
  right: 16px;
  bottom: 18px;
  z-index: 9999;
  background: #D4AF37;
  color: #111;
  border-radius: 999px;
  padding: 10px 16px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(212,175,55,.35), 0 2px 8px rgba(0,0,0,.25);
  transition: transform .08s ease, box-shadow .2s ease, background .2s ease;
}
.fab-orcamento:hover{ background:#e0bf56; transform: translateY(-1px); box-shadow: 0 12px 28px rgba(212,175,55,.4), 0 4px 12px rgba(0,0,0,.25); }
@media (max-width: 640px){
  .fab-orcamento{ right: 12px; bottom: 14px; padding: 9px 14px; font-size: 0.95rem; }
}


/* === MOBILE FIRST TUNING (v39) === */

/* Base container breathing room on mobile */
@media (max-width: 768px){
  .container{ padding-left:16px; padding-right:16px; }
  .section{ padding: 2rem 0; }
}

/* Header: keep everything on one line via horizontal scroll (no wrap) */
header .nav nav{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  white-space:nowrap;
  scrollbar-width:none; /* Firefox */
}
header .nav nav::-webkit-scrollbar{ display:none; } /* Chrome/Safari */
header .nav nav a{ margin-left:6px; }
@media (max-width: 768px){
  header{ position:sticky; top:0; z-index:1000; backdrop-filter:saturate(120%) blur(6px); background:rgba(10,10,10,.45); }
  header .brand strong{ font-size:10px; opacity:.85; }
  header .nav nav a.btn-nav{ padding:5px 9px !important; font-size:.85rem !important; }
  header .nav nav a.btn{ padding:7px 12px !important; font-size:.9rem !important; }
}

/* Hero: better balance on small screens */
@media (max-width: 640px){
  .hero-title{ font-size: clamp(22px, 6vw, 30px); margin-top: 18vh; text-align:center; }
  .hero-actions{ justify-content:center; gap:10px; }
  .hero-actions .btn, .hero-actions .btn-nav{ padding:9px 14px; }
}

/* Cards & grids: single column on phones */
@media (max-width: 768px){
  .card-grid{ grid-template-columns: 1fr !important; gap:12px; }
  .card{ padding:16px; }
  .panel{ padding:16px; }
}

/* Fleet images: maintain full-vehicle visibility and adapt height */
@media (max-width: 640px){
  .vehicle-frame{ height: 180px; }
}

/* Forms: comfortable tap targets and readability */
form label{ display:block; font-size: 0.95rem; }
form input, form select, form textarea{
  width:100%;
  font-size: 16px; /* prevent iOS zoom */
  padding: 10px 12px;
  border-radius:10px;
}
form button.btn, a.btn{ min-height:44px; }

/* Floating WhatsApp budget button: safe area & spacing */
.fab-orcamento{ bottom: calc(14px + env(safe-area-inset-bottom)); right: 14px; }
@media (max-width: 640px){
  .fab-orcamento{ padding: 9px 14px; font-size: .95rem; }
}

/* General: improve tap feedback */
* { -webkit-tap-highlight-color: rgba(0,0,0,0); }

/* v41: centragem vertical/horizontal nos botões do menu */
header .nav nav a.btn-nav, header .nav nav a.btn{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  line-height:1 !important;
}

/* v41: logotipo maior e texto de marca apenas em baixo */
header .brand img{ height:52px !important; }
header .brand strong{ display:block; font-size:12px; margin-top:2px; }

/* v42: nav buttons slightly smaller to fit single line; logo at 56px */
header .nav nav a.btn-nav{
  padding:5px 8px !important;
  font-size:0.85rem !important;
}
header .brand img{ height:56px !important; }
@media (max-width: 1024px){
  header .nav nav a.btn-nav{ padding:5px 7px !important; font-size:0.83rem !important; }
}

/* v43: logo maior e sem texto da marca */
header .brand img{ height:64px !important; width:auto !important; }
header .brand strong{ display:none !important; }
@media (max-width: 768px){
  header .brand img{ height:58px !important; }
}


/* === v44 MOBILE POLISH === */
/* No accidental horizontal scroll & responsive images */
html, body{ overflow-x: hidden; }
img{ max-width: 100%; height: auto; }

/* Extra small screens (<= 380px) */
@media (max-width: 380px){
  header .nav nav a.btn-nav{ padding:4px 7px !important; font-size:0.8rem !important; }
  header .nav nav a.btn{ padding:6px 10px !important; font-size:0.87rem !important; }
  header .brand img{ height:52px !important; }
  .hero-title{ font-size: clamp(20px, 6.2vw, 26px); margin-top: 16vh; }
  .vehicle-frame{ height: 160px; }
}

/* Small phones (<= 420px) */
@media (max-width: 420px){
  .container{ padding-left:14px; padding-right:14px; }
  .section{ padding: 1.8rem 0; }
  .hero-actions .btn, .hero-actions .btn-nav{ padding:8px 12px; }
  .card{ padding:14px; }
  .panel{ padding:14px; }
}

/* Ensure hero buttons wrap nicely and center on narrow widths */
.hero-actions{ flex-wrap: wrap; justify-content: center; gap: 10px; }

/* Partners hero shorter on mobile to keep content visible */
@media (max-width: 640px){
  .partners-hero{ min-height: 44vh; padding: 4rem 1rem; }
}

/* Reserve space for floating FAB at bottom so it doesn't cover content */
@media (max-width: 640px){
  main, .section:last-child{ padding-bottom: calc(2.2rem + 56px); }
}

/* Form fields: comfy on mobile */
form input, form select, form textarea{
  font-size: 16px; /* avoid iOS zoom */
  padding: 12px 12px;
}

/* Buttons: minimum tap area and consistent line-height */
a.btn, .btn{ min-height: 44px; line-height: 1.05; display: inline-flex; align-items: center; justify-content: center; }
