:root{
  --flex-black:#0d0e0d;
  --flex-graphite:#1d1e1c;
  --flex-gray:#f2f2f2;
  --flex-orange:#e8521d;
  --flex-white:#ffffff;
  --container:1180px;
}
*{box-sizing:border-box}
html,body{
  margin:0;
  padding:0;
  background:var(--flex-black);
  color:#fff;
  font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  scroll-behavior:smooth
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--container);margin:0 auto;padding:0 16px}

/* Topbar / Navegação */
.topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(13,14,13,.7);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.06)
}
.nav{display:flex;align-items:center;gap:24px;height:68px;position:relative;transition:height .25s ease}
.nav .left{display:flex;align-items:center;gap:16px;flex:1}
.nav img.logo{height:36px}
.nav .menu{display:flex;gap:18px;flex-wrap:wrap}
.nav .menu a{padding:8px 10px;border-radius:10px;color:#ddd}
.nav .menu a:hover{background:rgba(255,255,255,.06);color:#fff}
.lang-switch{margin-left:auto;display:flex;gap:8px}
.lang-switch button{
  background:transparent;border:1px solid rgba(255,255,255,.15);
  color:#ddd;padding:6px 10px;border-radius:10px;cursor:pointer
}
.lang-switch button.active,.lang-switch button:hover{border-color:var(--flex-orange);color:#fff}
.mobile-menu{display:none}
.topbar.shrink .nav{height:58px}

/* Hero / Carrossel */
.hero.bg-home{background:var(--flex-black)}
.carousel{
  position:relative;
  height:74vh; min-height:220px;
  border-bottom:1px solid rgba(255,255,255,.06);
  overflow:hidden;
}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 300ms ease}
.slide.active{opacity:1}
.slide img{width:100%;height:100%;object-fit:cover;filter:brightness(.6)}
.slide .caption{position:absolute;inset:auto 0 10% 0;text-align:center}
.badge{
  display:inline-block;padding:6px 10px;border:1px solid rgba(255,255,255,.2);
  border-radius:999px;color:#ddd;font-size:12px;letter-spacing:.12em
}
.h1{font-size:clamp(28px,5vw,56px);font-weight:800;line-height:1.05;margin:14px 0}
.lead{font-size:clamp(14px,2.2vw,18px);color:#c9c9c9;max-width:760px;margin:0 auto 18px}
.cta{display:inline-block;background:var(--flex-orange);color:#fff;padding:12px 18px;border-radius:12px;font-weight:600}

/* Controles do carrossel */
.carousel-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  z-index:5; width:42px; height:42px; border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(13,14,13,.45); color:#fff; cursor:pointer;
  display:grid; place-items:center; font-size:22px; line-height:1;
  backdrop-filter: blur(6px);
}
.carousel-btn:hover{ background:rgba(13,14,13,.7); }
.carousel-btn:focus-visible{ outline:2px solid var(--flex-orange); outline-offset:2px; }
.carousel-btn.prev{ left:16px; }
.carousel-btn.next{ right:16px; }

/* Indicadores (dots) */
.carousel-dots{
  position:absolute; left:0; right:0; bottom:14px; z-index:5;
  display:flex; gap:8px; justify-content:center; align-items:center;
}
.carousel-dots button{
  width:10px; height:10px; border-radius:999px; padding:0;
  border:1px solid rgba(255,255,255,.6); background:transparent; cursor:pointer;
}
.carousel-dots button[aria-selected="true"]{
  background:var(--flex-orange); border-color:var(--flex-orange);
}

/* Seções */
.section{padding:72px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.bg-about{ background:var(--flex-graphite); color:#fff; }
.bg-capacity{ background:var(--flex-white); color:#0d0e0d; }
.bg-services{ background:var(--flex-graphite); color:#fff; }
.bg-quote{ background:var(--flex-gray); color:#0d0e0d; }
.bg-contact{ background:var(--flex-graphite); color:#fff; }

/* Galeria */
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.gallery img{width:100%;height:170px;object-fit:cover;border-radius:10px;border:1px solid rgba(255,255,255,.06)}

/* Grids / Cards */
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.stack{display:grid;grid-template-columns:1fr;gap:22px}
.card{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
  border-radius:16px;
  overflow:hidden;
  position:relative;
}
.card .pad{padding:20px 18px 14px}
.card h3{margin:0 0 8px}
.card p{margin:0;color:#cfcfcf}
.grid-3 .card{background:#fff;border:1px solid #e8e8e8;color:#0d0e0d}
.grid-3 .card p{color:#333}
.grid-3 .card img{width:100%;height:auto;display:block;border-top:1px solid rgba(0,0,0,.06)}
.stack .card img{width:100%;height:auto;display:block;border-top:1px solid rgba(255,255,255,.06)}

/* Formulários */
.form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.form .full{grid-column:1/-1}
.input, .textarea, .select{
  width:100%;padding:12px 14px;border-radius:12px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:#fff
}
.textarea{min-height:140px;resize:vertical}
.button{
  background:var(--flex-orange);
  border:none;
  color:#fff;
  padding:12px 16px;
  border-radius:12px;
  font-weight:700;
  cursor:pointer
}
.bg-quote .card{ background:#ffffff; border:1px solid #e8e8e8; }
.bg-quote .input, .bg-quote .textarea, .bg-quote .select{
  background:#ffffff; color:#0d0e0d; border:1px solid #cfcfcf;
}
.bg-quote ::placeholder{ color:#6b6b6b; }
.bg-quote .button{ background:var(--flex-orange); color:#fff; border:1px solid #cc471b; }

/* Rodapé */
.footer{padding:38px 0;background:#0d0e0d;color:#9a9a9a;font-size:14px}
.footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:22px}
.footer a{color:#bbb}
.footer strong{color:#fff}

/* Social links */
.social-links{list-style:none;padding:0;margin:8px 0 0 0;line-height:1.9}
.social-links li{margin-bottom:6px}
.social-links a{display:flex;align-items:center;gap:8px;color:#bbb;transition:color .3s}
.social-links a:hover{color:var(--flex-orange)}
.social-links svg{flex-shrink:0}
@media (max-width:960px){
  .social-links{display:flex;gap:14px;margin-top:12px}
  .social-links li{margin:0}
  .social-links a{justify-content:center;color:#bbb;font-size:0}
  .social-links a span,.social-links a strong,.social-links a br{display:none}
  .social-links a svg{width:26px;height:26px}
}

/* WhatsApp flutuante */
.whatsapp-float{
  position:fixed; right:16px; bottom:16px; z-index:60;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff; display:grid; place-items:center;
  box-shadow:0 10px 28px rgba(0,0,0,.35);
  transition:transform .2s ease, box-shadow .2s ease;
}
.whatsapp-float:hover{ transform:translateY(-2px); box-shadow:0 14px 36px rgba(0,0,0,.45); }
.whatsapp-float svg{ width:28px; height:28px; }
@media (max-width: 480px){ .whatsapp-float{ width:52px; height:52px; right:12px; bottom:12px; } }

/* Sobreposição de imagem na seção About */
#about{position:relative; overflow:hidden;}
#about::before{
  content:""; position:absolute; inset:0;
  background:url('../assets/img/about-bg.png') center/cover no-repeat fixed;
  opacity:.28; z-index:0;
}
#about > .container{ position:relative; z-index:1; }

/* Acessibilidade / focos / âncoras */
section[id]{ scroll-margin-top:84px; }
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--flex-orange);
  outline-offset:2px;
}

/* Menu mobile aberto */
.nav .menu.open{
  display:flex !important;
  flex-direction:column;
  gap:12px;
  position:absolute;
  right:16px;
  top:68px;
  background:rgba(13,14,13,.95);
  border:1px solid rgba(255,255,255,.1);
  padding:12px;
  border-radius:12px;
  min-width:60vw;
  box-shadow:0 6px 24px rgba(0,0,0,.4);
}
.nav .menu.open a{ padding:10px 12px; border-radius:8px; }
.nav .menu.open a:hover,
.nav .menu.open a:focus-visible{ background:rgba(255,255,255,.06); color:#fff; outline:none; }

/* Invalidação visual de campos */
.input.is-invalid, .textarea.is-invalid {
  border-color:#b91c1c !important;
  box-shadow:0 0 0 2px rgba(185,28,28,.15);
}

/* Mobile */
@media (max-width:960px){
  .grid-3{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .form{grid-template-columns:1fr}
  .nav .menu{display:none}
  .mobile-menu{display:block;margin-left:8px}
}
@media (max-width: 640px){
  .carousel-btn.prev{ left:8px; }
  .carousel-btn.next{ right:8px; }
}

/* ===== Scroll effects (reveal com direção X/Y) ===== */
[data-reveal]{
  --rx: 0px;  /* deslocamento X inicial */
  --ry: 22px; /* deslocamento Y inicial (default) */
  opacity:0;
  transform:translate(var(--rx), var(--ry));
  transition:opacity .6s ease, transform .6s ease;
  will-change: opacity, transform;
}
[data-reveal].is-in{
  opacity:1;
  transform:translate(0, 0);
}
@media (prefers-reduced-motion: reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}
}

/* Parallax: aplicado inline via JS (translateY) */

/* Counter-up (estilo) + Stats */
.count{font-variant-numeric: tabular-nums;}
.stats{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
  margin-top:10px;
}
.stat{
  background:rgba(0,0,0,.03);
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  padding:14px 16px;
  text-align:center;
}
.bg-capacity .stat{ background:#fff; border-color:#e6e6e6; }
.stat-number{
  font-size:clamp(22px,4.8vw,34px);
  font-weight:800;
  color:#0d0e0d;
  line-height:1.1;
}
.stat-label{
  font-size:13px;
  color:#666;
  margin-top:4px;
  letter-spacing:.02em;
}
@media (max-width:960px){
  .stats{ grid-template-columns:1fr; }
}

/* Barra de progresso global */
#scroll-progress{
  position:fixed; left:0; top:0; height:3px; width:0;
  background:linear-gradient(90deg, #e8521d, #ff9b6f);
  z-index:1000; box-shadow:0 0 10px rgba(232,82,29,.6);
}