/* ====================================================================
   SARBOMIX CONCRETO USINADO — Landing Page
   Preto · vermelho · branco. Fotografia real, tipografia editorial.
   ==================================================================== */

:root{
  --black:#0B0B0C;
  --black-2:#0F0F11;
  --ink:#141519;
  --ink-2:#54565E;
  --ink-3:#6A6D77;
  --line-d:#26262A;
  --line-l:#E0E1E5;
  --red:#E01E26;
  --red-dark:#A8121A;
  --white:#FFFFFF;
  --paper:#F7F7F8;
  --paper-2:#EDEEF0;
  --gray:#9A9AA0;
  --wa:#25D366;
  --wa-dark:#128C4B;

  --font:'Archivo', system-ui, -apple-system, sans-serif;
  --font-cond:'Barlow Condensed', 'Archivo', sans-serif;

  --max:1240px;
  --r-sm:10px;
  --r-md:16px;
  --r-lg:22px;
  --ease:cubic-bezier(.22,1,.36,1);
}

*{margin:0; padding:0; box-sizing:border-box}
[hidden]{display:none !important}
html{scroll-behavior:smooth; scroll-padding-top:84px; background:var(--black)}
:focus-visible{outline:2px solid var(--red); outline-offset:3px}
.stats :focus-visible,.cta-band :focus-visible,.svc-red :focus-visible,.hero :focus-visible{outline-color:#fff}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.skip-link{position:fixed; top:8px; left:8px; z-index:2000; padding:12px 18px; border-radius:999px; background:var(--red); color:#fff; font-family:var(--font-cond); font-weight:700; letter-spacing:.06em; text-transform:uppercase; transform:translateY(-200%); transition:transform .25s}
.skip-link:focus{transform:none; outline:2px solid #fff; outline-offset:2px}

body{
  font-family:var(--font); color:var(--white);
  font-size:1.0625rem; line-height:1.62; overflow-x:hidden; -webkit-font-smoothing:antialiased;
  /* chão escuro: concreto texturizado, sem gradiente neon */
  background-color:var(--black);
  background-image:
    radial-gradient(120% 80% at 50% 0%, rgba(255,255,255,.035), transparent 60%),
    repeating-linear-gradient(58deg, rgba(255,255,255,.014) 0 1px, transparent 1px 7px),
    repeating-linear-gradient(-58deg, rgba(0,0,0,.28) 0 1px, transparent 1px 7px);
}
a{color:inherit; text-decoration:none}
ul,ol{list-style:none}
img,svg,iframe,video{display:block; max-width:100%}
button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit}
input,select,textarea{font-family:inherit; font-size:1rem}
::selection{background:var(--red); color:#fff}

::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:#141416}
::-webkit-scrollbar-thumb{background:#3A3A40; border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:var(--red)}

.container{width:100%; max-width:var(--max); margin:0 auto; padding:0 26px}
.section{padding:clamp(76px,9vw,132px) 0; position:relative}

/* display expandido — sistema tipográfico da casa */
.hero-title,.section-title,.svc-title,.stat-num,.rating-num,.city-card h3,
.blog-empty h3,.hero-marks b,.svc-num,.city-index,.lg-word,.cta-title,.orc-steps span{
  font-family:var(--font); font-stretch:118%; font-weight:800; letter-spacing:-.02em;
}

/* ===== LOGO ===== */
.logo{display:block; color:#fff}
.logo-svg{width:158px; height:53px}
.lg-word{font-size:40px; letter-spacing:-.035em; fill:currentColor}
.lg-sub{
  font-family:var(--font-cond); font-size:13.5px; font-weight:600;
  letter-spacing:.245em; fill:currentColor; opacity:.72;
}

/* ===== BARRA DE PROGRESSO ===== */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:1000;
  background:var(--red); transition:width .1s linear;
}

/* ========================= BOTÕES ========================= */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-cond); font-weight:700; font-size:1.06rem;
  letter-spacing:.05em; text-transform:uppercase; line-height:1;
  padding:16px 32px; border-radius:999px; overflow:hidden; white-space:nowrap;
  will-change:transform;
  transition:transform .22s var(--ease), box-shadow .25s, background .25s, color .25s, border-color .25s;
}
.btn.sm{padding:11px 20px; font-size:.96rem}
.btn.lg{padding:19px 38px; font-size:1.2rem}
.btn.xl{padding:20px 28px; font-size:1.1rem; gap:14px; justify-content:flex-start; text-align:left; border-radius:var(--r-lg)}
.btn.full{width:100%; white-space:normal; text-align:center; line-height:1.15}
.btn:active{transform:translateY(0) scale(.98)}
/* brilho varrendo */
.btn::after{
  content:''; position:absolute; top:0; left:-120%; width:55%; height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.4),transparent);
  transform:skewX(-20deg); transition:left .6s var(--ease); pointer-events:none;
}
.btn:hover::after{left:130%}
.btn-stack{display:flex; flex-direction:column; gap:3px; white-space:normal}
.btn-stack b{font-size:1.06rem; line-height:1.1}
.btn-stack small{
  font-family:var(--font); font-weight:600; font-size:.78rem;
  letter-spacing:.02em; text-transform:none; opacity:.75;
}

.btn-whatsapp{background:linear-gradient(135deg,#2EE074,#17A855); color:#04331A}
.btn-whatsapp:hover{transform:translateY(-3px) scale(1.02); background:linear-gradient(135deg,#3BF283,#1DB95C); box-shadow:0 16px 38px rgba(37,211,102,.45)}
.btn-primary{background:linear-gradient(135deg,#F5333B,#C4161D); color:#fff}
.btn-primary:hover{transform:translateY(-3px) scale(1.02); box-shadow:0 16px 38px rgba(224,30,38,.5)}
.btn-outline{border:2px solid rgba(255,255,255,.32); color:#fff}
.btn-outline:hover{transform:translateY(-3px) scale(1.02); border-color:#fff; background:#fff; color:var(--ink)}
.btn-light{background:#fff; color:var(--ink)}
.btn-light:hover{transform:translateY(-3px); box-shadow:0 14px 34px rgba(0,0,0,.3)}
.btn-ghost-light{border:2px solid rgba(255,255,255,.4); color:#fff}
.btn-ghost-light:hover{transform:translateY(-3px); background:rgba(255,255,255,.12); border-color:#fff}
.btn-dark{background:var(--ink); color:#fff}
.btn-dark:hover{transform:translateY(-3px) scale(1.02); background:linear-gradient(135deg,#F5333B,#C4161D); box-shadow:0 16px 36px rgba(224,30,38,.4)}

.ripple{
  position:absolute; border-radius:50%; transform:scale(0);
  background:rgba(255,255,255,.4); animation:ripple .65s linear forwards; pointer-events:none;
}
@keyframes ripple{to{transform:scale(4); opacity:0}}

.wa-ico{
  width:20px; height:20px; flex:none; background:currentColor; display:block;
  --m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.95 1.17-.17.2-.35.22-.65.07-.3-.15-1.26-.46-2.4-1.48-.89-.79-1.49-1.77-1.66-2.07-.17-.3-.02-.46.13-.61.14-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.02-.52-.08-.15-.67-1.61-.92-2.21-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48 0 1.46 1.06 2.87 1.21 3.07.15.2 2.1 3.2 5.08 4.49.71.3 1.26.49 1.69.63.71.22 1.36.19 1.87.12.57-.09 1.76-.72 2-1.41.25-.7.25-1.29.17-1.42-.07-.13-.27-.2-.57-.35zM12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38a9.86 9.86 0 0 0 4.79 1.22h.01c5.46 0 9.91-4.45 9.91-9.91C21.96 6.45 17.5 2 12.04 2zm0 18.02h-.01a8.2 8.2 0 0 1-4.18-1.15l-.3-.18-3.11.82.83-3.04-.2-.31a8.17 8.17 0 0 1-1.25-4.35c0-4.53 3.7-8.22 8.23-8.22 2.2 0 4.26.86 5.82 2.41a8.16 8.16 0 0 1 2.41 5.82c0 4.53-3.69 8.2-8.24 8.2z'/%3E%3C/svg%3E");
  -webkit-mask:var(--m) center/contain no-repeat; mask:var(--m) center/contain no-repeat;
}
.wa-ico.big{width:28px; height:28px}

/* ========================= NAVBAR ========================= */
.navbar{
  position:fixed; top:0; left:0; width:100%; z-index:900; padding:16px 0;
  border-bottom:1px solid transparent;
  transition:padding .3s, background .3s, border-color .3s, transform .38s var(--ease);
}
.navbar.tucked{transform:translateY(-105%)}
.navbar.tucked:focus-within{transform:none}
.navbar.scrolled{
  padding:9px 0; background:rgba(11,11,12,.92); backdrop-filter:blur(12px);
  border-bottom-color:var(--line-d);
}
.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:20px}

.nav{display:flex; gap:2px; margin-left:auto}
.nav-link{
  position:relative; padding:9px 14px;
  font-family:var(--font-cond); font-weight:600; font-size:1.08rem;
  letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.7);
  transition:color .25s;
}
.nav-link::after{
  content:''; position:absolute; left:14px; right:14px; bottom:3px; height:2px;
  background:var(--red); transform:scaleX(0); transform-origin:left;
  transition:transform .38s var(--ease);
}
.nav-link:hover{color:#fff}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1)}
.nav-link.active{color:#fff}

.nav-right{display:flex; align-items:center; gap:12px}
.burger{display:none; width:44px; height:44px; padding:11px 8px; flex-direction:column; justify-content:space-between}
.burger span{display:block; height:2px; background:#fff; border-radius:2px; transition:.35s var(--ease)}
.burger.open span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}

/* ========================= HERO ========================= */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  padding:150px 0 110px; overflow:hidden;
}
.hero-bg{position:absolute; inset:-18px; z-index:0; will-change:transform}
.hero-photo{
  width:100%; height:100%; object-fit:cover; object-position:58% 66%;
  animation:kenburns 26s ease-in-out infinite alternate; will-change:transform;
}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.08)}}
.hero-shade{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(100deg, rgba(8,8,9,.94) 0%, rgba(8,8,9,.84) 38%, rgba(8,8,9,.34) 68%, rgba(8,8,9,.6) 100%),
    linear-gradient(0deg, rgba(8,8,9,.92) 0%, transparent 32%);
}
.hero-inner{position:relative; z-index:2}
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:10px; margin-bottom:26px;
  font-family:var(--font-cond); font-size:1.02rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.86); padding:9px 20px; border-radius:999px;
  border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.35);
}
.hero-eyebrow .dot{
  width:8px; height:8px; border-radius:50%; background:var(--red); flex:none;
  box-shadow:0 0 0 0 rgba(224,30,38,.6); animation:beacon 2.4s ease-out infinite;
}
@keyframes beacon{0%{box-shadow:0 0 0 0 rgba(224,30,38,.55)}70%{box-shadow:0 0 0 10px rgba(224,30,38,0)}100%{box-shadow:0 0 0 0 rgba(224,30,38,0)}}

.hero-title{
  font-size:clamp(2.4rem,8.6vw,7.4rem); line-height:.9; text-transform:uppercase;
  text-shadow:0 4px 40px rgba(0,0,0,.5);
}
.hero-title .line{display:block; white-space:nowrap}
.hero-title .accent{color:var(--red)}
.hero-title .ch{
  display:inline-block; opacity:0; transform:translateY(.7em); filter:blur(8px);
  animation:chIn .75s var(--ease) forwards;
}
.hero-title .ch.space{width:.26em}
@keyframes chIn{to{opacity:1; transform:none; filter:blur(0)}}

.hero-sub{max-width:56ch; margin-top:28px; color:rgba(255,255,255,.8); font-size:1.1rem}
.hero-sub strong{color:#fff; font-weight:700}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:36px}

.hero-marks{display:flex; flex-wrap:wrap; margin-top:54px; border-top:1px solid rgba(255,255,255,.18); padding-top:24px}
.hero-marks li{padding-right:clamp(24px,5vw,54px); position:relative}
.hero-marks li+li{padding-left:clamp(24px,5vw,54px)}
.hero-marks li+li::before{content:''; position:absolute; left:0; top:6%; bottom:6%; width:1px; background:rgba(255,255,255,.18)}
.hero-marks b{display:block; font-size:1.75rem; line-height:1.1; color:#fff}
.hero-marks span{
  display:block; font-family:var(--font-cond); font-size:.95rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--gray); margin-top:2px;
}

.scroll-hint{
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%); z-index:3;
  font-family:var(--font-cond); font-size:.85rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gray); display:flex; flex-direction:column; align-items:center; gap:10px;
}
.scroll-hint span{width:1px; height:44px; background:linear-gradient(var(--red),transparent); animation:scrollLine 1.9s var(--ease) infinite}
@keyframes scrollLine{
  0%{transform:scaleY(.2); transform-origin:top}
  50%{transform:scaleY(1); transform-origin:top}
  50.1%{transform:scaleY(1); transform-origin:bottom}
  100%{transform:scaleY(.2); transform-origin:bottom}
}

/* ========================= NÚMEROS ========================= */
.stats{background:var(--red); color:#fff; padding:clamp(44px,5vw,64px) 0; position:relative; overflow:hidden}
.stats::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(115deg, rgba(255,255,255,.07) 0 2px, transparent 2px 22px);
}
.stats-grid{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:28px}
.stat{position:relative; padding-left:22px}
.stat::before{content:''; position:absolute; left:0; top:6px; bottom:6px; width:2px; background:rgba(255,255,255,.45)}
.stat-num{display:block; font-size:clamp(2.3rem,4.8vw,3.6rem); line-height:1}
.stat-label{
  display:block; margin-top:8px; font-family:var(--font-cond); font-size:1rem;
  letter-spacing:.1em; text-transform:uppercase; line-height:1.35;
}

/* ========================= TIPOGRAFIA DE SEÇÃO ========================= */
.eyebrow{
  display:inline-flex; align-items:center; gap:11px; margin-bottom:10px;
  font-family:var(--font-cond); font-size:1.02rem; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; color:var(--red);
}
.eyebrow i{display:block; width:28px; height:2px; background:var(--red)}
.section-title{
  font-size:clamp(2rem,4.8vw,3.6rem); line-height:1.02; text-transform:uppercase;
  margin:.08em 0 .3em; max-width:18ch; color:#fff;
}
.section-title em{font-style:normal; color:var(--red)}
.section-desc{color:var(--gray); max-width:52ch}
.sec-head{margin-bottom:clamp(40px,5vw,64px)}
.lead{color:rgba(255,255,255,.76); font-size:1.08rem; max-width:58ch}
.lead strong{color:#fff; font-weight:700}

/* reveal por palavra (títulos de seção)
   O estado padrão é VISÍVEL: o JS só esconde depois de armar o observer.
   Assim, se o script falhar, o título continua legível. */
.w{display:inline-block; overflow:hidden; vertical-align:top}
.w > i{display:inline-block; font-style:inherit; color:inherit; transition:transform .7s var(--ease)}
.words-armed .w > i{transform:translateY(105%)}
.words-armed.words-in .w > i{transform:none}

.link-arrow{
  position:relative; display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-cond); font-weight:700; font-size:1.1rem;
  letter-spacing:.06em; text-transform:uppercase; color:#fff; padding-bottom:4px;
}
.link-arrow::after{
  content:''; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--red);
  transform:scaleX(0); transform-origin:right; transition:transform .42s var(--ease);
}
.link-arrow:hover::after{transform:scaleX(1); transform-origin:left}
.link-arrow span{transition:transform .32s var(--ease)}
.link-arrow:hover span{transform:translateX(6px)}

.inline-link{
  font-weight:700; color:var(--red); box-shadow:inset 0 -2px 0 rgba(224,30,38,.35);
  transition:box-shadow .3s;
}
.inline-link:hover{box-shadow:inset 0 -2px 0 var(--red)}

/* ========================= SEÇÕES CLARAS ========================= */
.sec-light{
  background-color:var(--paper); color:var(--ink);
  background-image:
    repeating-linear-gradient(58deg, rgba(20,21,25,.022) 0 1px, transparent 1px 8px),
    repeating-linear-gradient(-58deg, rgba(20,21,25,.022) 0 1px, transparent 1px 8px);
}
.sec-light .section-title{color:var(--ink)}
.sec-light .eyebrow,.sec-light .eyebrow i{color:#C4161D; background-color:transparent}
.sec-light .eyebrow i{background:#C4161D}
.sec-light .section-desc,.sec-light .lead{color:var(--ink-2)}
.sec-light .lead strong{color:var(--ink)}
.sec-light .link-arrow{color:var(--ink)}
.sec-light .link-arrow:hover{color:var(--red)}

/* ========================= SOBRE ========================= */
.sobre-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(38px,5vw,76px); align-items:center}
.facts{margin:34px 0 32px; border-top:1px solid var(--line-l)}
.facts > div{
  display:grid; grid-template-columns:minmax(150px,.34fr) 1fr; gap:20px;
  padding:16px 4px; border-bottom:1px solid var(--line-l);
  transition:background .3s, padding-left .3s var(--ease);
}
.facts > div:hover{background:rgba(224,30,38,.05); padding-left:14px}
.facts dt{
  font-family:var(--font-cond); font-size:1.14rem; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase; color:var(--ink);
}
.facts dd{font-size:.98rem; color:var(--ink-2); line-height:1.5}

.sobre-figure{position:relative; margin:0}
.sobre-figure img{width:100%; height:auto; mix-blend-mode:multiply}
.sobre-figure--photo img{mix-blend-mode:normal; border-radius:6px; box-shadow:0 22px 54px rgba(20,21,25,.18)}
.sobre-figure figcaption{
  position:absolute; left:0; bottom:0; padding:9px 16px; background:var(--ink); color:#fff;
  font-family:var(--font-cond); font-size:.94rem; letter-spacing:.12em; text-transform:uppercase;
}
.sobre-figure::before{
  content:''; position:absolute; right:0; top:8%; width:64%; height:76%;
  background:var(--paper-2); z-index:-1;
}

/* ========================= O NOME (OBRAS ↔ SARBO) ========================= */
.nome{
  background:var(--black-2); padding:clamp(66px,8vw,104px) 0; overflow:hidden;
  border-top:1px solid var(--line-d); border-bottom:1px solid var(--line-d);
}
.nome-inner{display:flex; flex-direction:column; align-items:center; text-align:center}
.nome .section-title{max-width:none}

.flip-stage{
  display:flex; align-items:baseline; justify-content:center; gap:.3em;
  margin:clamp(18px,3vw,34px) 0 clamp(20px,3vw,30px);
  font-size:clamp(3.2rem,11vw,7.2rem); line-height:1;
}
.flip-row{display:inline-flex; gap:.05em; position:relative}
.fl{
  font-family:var(--font); font-stretch:118%; font-weight:800; letter-spacing:-.02em;
  display:inline-block; color:transparent; -webkit-text-stroke:2px rgba(255,255,255,.7);
  transition:transform .9s var(--ease), color .45s, -webkit-text-stroke-color .45s;
  will-change:transform;
}
.flip-stage.on .fl{color:var(--red); -webkit-text-stroke-color:transparent}
.flip-mix{
  font-family:var(--font); font-stretch:118%; font-weight:800; letter-spacing:-.02em;
  color:#fff; opacity:0; transform:translateX(-16px) scale(.94);
  transition:opacity .5s var(--ease) .6s, transform .5s var(--ease) .6s;
}
.flip-stage.on .flip-mix{opacity:1; transform:none}
.nome-caption{color:var(--gray); max-width:52ch; font-size:1.05rem}
.nome-caption b{color:#fff; font-weight:700}

/* ========================= FROTA ========================= */
.frota{background:var(--paper-2); color:var(--ink); padding:clamp(46px,6vw,74px) 0; overflow:hidden}
.frota-head{display:flex; align-items:baseline; gap:26px; flex-wrap:wrap; margin-bottom:18px}
.frota-desc{color:var(--ink-2); max-width:52ch; font-size:.99rem}
.frota-rail{
  overflow:hidden;
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.frota-track{display:flex; align-items:center; gap:10px; width:max-content; animation:railX 55s linear infinite}
.frota-rail:hover .frota-track{animation-play-state:paused}
.frota-track img{width:clamp(240px,26vw,380px); height:auto; mix-blend-mode:multiply; flex:none}
@keyframes railX{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ========================= VÍDEO (vertical, gravado em obra) ========================= */
.video-band{padding:clamp(70px,8vw,110px) 0; position:relative}
.video-grid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,6vw,84px);
  align-items:center;
}
.video-desc{color:var(--gray); max-width:48ch; font-size:1.04rem; margin-bottom:22px}
.video-points{margin:0 0 26px; border-top:1px solid var(--line-d)}
.video-points li{
  position:relative; padding:13px 4px 13px 26px; border-bottom:1px solid var(--line-d);
  color:rgba(255,255,255,.74); font-size:.99rem;
}
.video-points li::before{
  content:''; position:absolute; left:4px; top:1.35em; width:10px; height:10px;
  border-radius:2px; background:var(--red); transform:rotate(45deg);
}

.video-wrap{
  position:relative; margin:0 auto; width:min(100%, 400px);
  aspect-ratio:9/16; overflow:hidden; border-radius:var(--r-lg); background:#000;
  border:1px solid var(--line-d); box-shadow:0 30px 70px rgba(0,0,0,.5);
}
.video-el{width:100%; height:100%; object-fit:cover; background:#000}
.video-veil{
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg, rgba(6,6,7,.72) 0%, transparent 34%);
}
.video-ui{
  position:absolute; left:20px; bottom:18px; right:20px; z-index:2;
  display:flex; align-items:center; gap:12px;
}
.video-btn{
  width:52px; height:52px; flex:none; display:grid; place-items:center; border-radius:50%;
  background:rgba(12,12,14,.72); color:#fff; border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(8px);
  transition:transform .25s var(--ease), background .25s, border-color .25s;
}
.video-btn:hover{transform:scale(1.09); background:var(--red); border-color:var(--red)}
.video-btn svg{grid-area:1/1}
.video-btn .ico-pause,.video-btn .ico-sound{display:none}
.video-band.playing #videoPlay .ico-play{display:none}
.video-band.playing #videoPlay .ico-pause{display:block}
.video-band.unmuted #videoSound .ico-muted{display:none}
.video-band.unmuted #videoSound .ico-sound{display:block}
.video-tag{
  margin-left:auto; padding:9px 18px; border-radius:999px;
  background:rgba(12,12,14,.72); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.2);
  font-family:var(--font-cond); font-size:.95rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.9);
}

/* ========================= GALERIA ========================= */
.galeria-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:28px; flex-wrap:wrap;
}
.galeria-head .section-title{margin-bottom:0}
.galeria-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.gal-item{
  position:relative; margin:0; overflow:hidden; border-radius:var(--r-md); will-change:transform;
  aspect-ratio:3/4; background:var(--paper-2); border:1px solid var(--line-l);
}
.gal-item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s var(--ease);
}
.gal-item:hover img{transform:scale(1.06)}
.gal-item figcaption{
  position:absolute; left:0; right:0; bottom:0; display:flex; align-items:center; gap:10px;
  padding:24px 16px 13px;
  background:linear-gradient(0deg, rgba(8,8,9,.78), transparent);
  color:#fff; font-family:var(--font-cond); font-size:1.05rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase;
}
.gal-item figcaption span{color:var(--red); font-weight:700}

/* ========================= CIDADES ========================= */
.cidades{
  background:
    linear-gradient(rgba(11,11,12,.93), rgba(11,11,12,.96)),
    url('img/usina-frota.webp') center 32%/cover;
}
.cidades-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.city-card{
  position:relative; padding:32px 26px 30px; background:rgba(17,17,19,.88);
  border:1px solid var(--line-d); border-radius:var(--r-md); overflow:hidden;
  transition:background .35s, transform .4s var(--ease), border-color .35s, box-shadow .4s var(--ease);
}
.city-card::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .35s;
  background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%), rgba(224,30,38,.22), transparent 65%);
}
.city-card:hover::after{opacity:1}
.city-card::before{
  content:''; position:absolute; inset:auto 0 0 0; height:3px; background:var(--red);
  transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease);
}
.city-card:hover{background:#161618; transform:translateY(-5px); border-color:rgba(224,30,38,.45); box-shadow:0 18px 40px rgba(0,0,0,.45)}
.city-card:hover::before{transform:scaleX(1)}
.city-index{
  display:block; font-size:2.6rem; line-height:1; color:transparent;
  -webkit-text-stroke:1.4px rgba(255,255,255,.3);
  transition:-webkit-text-stroke-color .35s;
}
.city-card:hover .city-index{-webkit-text-stroke-color:var(--red)}
.city-card h3{font-size:1.75rem; text-transform:uppercase; margin:14px 0 8px; color:#fff}
.city-card p{color:var(--gray); font-size:.94rem; line-height:1.5}

.cidades-mais{
  margin-top:34px; display:flex; align-items:center; gap:20px; flex-wrap:wrap;
  padding-top:26px; border-top:1px solid var(--line-d);
}
.cidades-mais-label{
  font-family:var(--font-cond); font-size:.96rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--red); flex:none;
}
.cidades-mais ul{display:flex; flex-wrap:wrap; gap:8px}
.cidades-mais li{
  font-family:var(--font-cond); font-size:1.02rem; letter-spacing:.05em; text-transform:uppercase;
  padding:7px 16px; border:1px solid var(--line-d); border-radius:999px; color:rgba(255,255,255,.72);
  transition:border-color .3s, color .3s, transform .3s var(--ease);
}
.cidades-mais li:hover{border-color:var(--red); color:#fff; transform:translateY(-2px)}

/* ========================= SERVIÇOS ========================= */
.servicos-head{padding-top:clamp(76px,9vw,120px)}
.svc{position:relative; padding:clamp(64px,7vw,104px) 0; overflow:hidden}
.svc-inner{display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,74px); align-items:center}
.svc.reverse .svc-media{order:2}
.svc-media{position:relative; margin:0; overflow:hidden; border-radius:var(--r-md); will-change:transform}
.svc-media img{
  width:100%; height:clamp(280px,38vw,440px); object-fit:cover;
  transition:transform .8s var(--ease); will-change:transform;
}
.svc:hover .svc-media img{transform:scale(1.05)}
.svc-media::after{content:''; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.svc-num{display:block; font-size:1.1rem; letter-spacing:.1em; color:var(--red); margin-bottom:14px}
.svc-tag{
  display:inline-block; font-family:var(--font-cond); font-size:1rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; padding:8px 18px; border:1px solid currentColor; opacity:.85; border-radius:999px;
}
.svc-title{font-size:clamp(2rem,4.8vw,3.4rem); line-height:1; text-transform:uppercase; margin:.26em 0 .3em}
.svc-text p{max-width:50ch; margin:0 0 24px; font-size:1.05rem}

.svc-light{background:var(--paper); color:var(--ink)}
.svc-light .svc-title{color:var(--ink)}
.svc-light .svc-text p{color:var(--ink-2)}
.svc-light .link-arrow{color:var(--ink)}
.svc-light .link-arrow:hover{color:var(--red)}
.svc-light .svc-tag{color:var(--ink-2)}

.svc-red{background:var(--red); color:#fff}
.svc-red .svc-num{color:rgba(255,255,255,.75)}
.svc-red .svc-text p{color:#fff}
.svc-red .link-arrow::after{background:#fff}

.svc-dark{background:#111113; color:#fff}
.svc-dark .svc-text p{color:rgba(255,255,255,.74)}

/* ========================= CTA PRINCIPAL ========================= */
.cta-band{position:relative; overflow:hidden; background:var(--red); color:#fff; padding:clamp(58px,7vw,92px) 0}
.cta-stripes{
  position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(115deg, rgba(255,255,255,.08) 0 3px, transparent 3px 26px);
}
.cta-inner{position:relative; display:grid; gap:clamp(28px,4vw,44px)}
.cta-kicker{
  font-family:var(--font-cond); font-size:1.06rem; letter-spacing:.26em;
  text-transform:uppercase; color:#fff;
}
.cta-title{font-size:clamp(2.2rem,5.6vw,4.4rem); line-height:1; text-transform:uppercase; margin:.08em 0 .2em}
.cta-title em{font-style:normal; color:#0B0B0C}
.cta-sub{max-width:52ch; color:#fff; font-size:1.1rem}

.cta-actions{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
.cta-actions .btn{width:100%}

.cta-social{display:flex; align-items:center; gap:18px; flex-wrap:wrap; padding-top:8px}
.cta-social-label{
  font-family:var(--font-cond); font-size:1rem; letter-spacing:.22em;
  text-transform:uppercase; color:rgba(255,255,255,.85);
}

/* ===== redes sociais ===== */
.social-list{display:flex; gap:10px; flex-wrap:wrap}
.social-list a{
  width:46px; height:46px; display:grid; place-items:center; border-radius:6px;
  transition:transform .25s var(--ease), background .25s, color .25s, border-color .25s;
}
.social-list[data-variant="cta"] a{
  background:rgba(0,0,0,.22); color:#fff; border:1px solid rgba(255,255,255,.32);
}
.social-list[data-variant="cta"] a:hover{transform:translateY(-3px); background:#fff; color:var(--red); border-color:#fff}
.social-list[data-variant="footer"]{margin-top:18px}
.social-list[data-variant="footer"] a{
  background:rgba(255,255,255,.06); color:#fff; border:1px solid var(--line-d);
}
.social-list[data-variant="footer"] a:hover{transform:translateY(-3px); background:var(--red); border-color:var(--red)}

/* ========================= FAQ ========================= */
.faq-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(34px,5vw,72px); align-items:start}
.faq-aside{position:sticky; top:104px}
.faq-aside .btn{margin-top:24px}

.faq-list{border-top:1px solid var(--line-l)}
.faq-item{border-bottom:1px solid var(--line-l)}
.faq-item summary{
  display:flex; align-items:center; gap:18px; padding:22px 4px; cursor:pointer;
  list-style:none; color:var(--ink);
  font-family:var(--font-cond); font-size:1.28rem; font-weight:600; line-height:1.25;
  transition:color .25s, padding-left .3s var(--ease);
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--red); padding-left:10px}
.faq-item summary span{flex:1}
.faq-item summary i{
  position:relative; width:26px; height:26px; flex:none; border:1px solid var(--line-l);
  border-radius:50%; transition:transform .4s var(--ease), border-color .3s;
}
.faq-item summary i::before,.faq-item summary i::after{
  content:''; position:absolute; left:6px; right:6px; top:50%; height:2px; margin-top:-1px;
  background:currentColor; transition:transform .4s var(--ease), opacity .3s;
}
.faq-item summary i::after{transform:rotate(90deg)}
.faq-item[open] summary{color:var(--red)}
.faq-item[open] summary i{transform:rotate(180deg); border-color:var(--red)}
.faq-item[open] summary i::after{transform:rotate(90deg) scaleX(0); opacity:0}
.faq-body{overflow:hidden}
.faq-body p{padding:0 46px 14px 4px; color:var(--ink-2); font-size:1rem; max-width:64ch}
.faq-body p:last-child{padding-bottom:24px}
.faq-body strong{color:var(--ink)}
.faq-item[open] .faq-body{animation:faqOpen .45s var(--ease)}
@keyframes faqOpen{from{opacity:0; transform:translateY(-8px)}to{opacity:1; transform:none}}

/* ========================= AVALIAÇÕES ========================= */
.reviews-head{display:flex; align-items:flex-end; justify-content:space-between; gap:28px; flex-wrap:wrap}
.reviews-head .section-title{margin-bottom:0}
.google-badge{
  display:inline-flex; align-items:center; gap:16px; padding:16px 24px;
  background:rgba(255,255,255,.05); border:1px solid var(--line-d); border-radius:var(--r-md);
}
.rating-num{font-size:2.6rem; line-height:1; color:var(--red)}
.rating-side{display:flex; flex-direction:column; align-items:flex-start; gap:3px}
.stars{color:#F5A623; letter-spacing:.12em; font-size:1.1rem; line-height:1}
.rating-meta{font-family:var(--font-cond); font-size:1rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gray)}
.rating-meta b{color:#fff}

.marquee{
  margin:clamp(34px,4vw,50px) 0 40px; overflow:hidden; position:relative;
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.marquee-track{display:flex; gap:18px; width:max-content; animation:scrollX 62s linear infinite}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track,.marquee.paused .marquee-track{animation-play-state:paused}
@keyframes scrollX{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.review-card{
  width:352px; flex:none; padding:26px; background:#141416;
  border:1px solid var(--line-d); border-radius:var(--r-md); display:flex; flex-direction:column;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.review-card:hover{transform:translateY(-6px); border-color:rgba(224,30,38,.5); box-shadow:0 20px 44px rgba(0,0,0,.5)}
.review-top{display:flex; align-items:center; gap:12px; margin-bottom:12px}
.review-av{
  width:42px; height:42px; border-radius:50%; flex:none; display:grid; place-items:center;
  background:var(--red); color:#fff; font-weight:800; font-size:1.05rem;
}
.review-name{display:block; font-weight:700; font-size:.98rem; line-height:1.25; color:#fff}
.review-date{display:block; font-size:.82rem; color:var(--gray)}
.review-stars{color:#F5A623; font-size:.92rem; letter-spacing:.1em; margin-bottom:9px}
.review-text{font-size:.96rem; color:rgba(255,255,255,.76); line-height:1.55; flex:1}
.review-src{
  margin-top:16px; padding-top:12px; border-top:1px solid var(--line-d);
  font-family:var(--font-cond); font-size:.86rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gray);
}
.reviews-cta{text-align:center}

/* ========================= ORÇAMENTO ========================= */
.orc-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(34px,5vw,72px); align-items:start}
.orc-steps{margin:30px 0 26px; display:grid; gap:2px}
.orc-steps li{
  display:flex; align-items:center; gap:16px; padding:15px 4px;
  border-bottom:1px solid var(--line-l);
  font-family:var(--font-cond); font-size:1.16rem; color:var(--ink);
}
.orc-steps span{
  width:32px; height:32px; flex:none; display:grid; place-items:center; border-radius:50%;
  background:var(--red); color:#fff; font-size:1rem; letter-spacing:0;
}
.orc-note{color:var(--ink-2); font-size:.98rem}

.orc-form{
  background:var(--white); border:1px solid var(--line-l); border-radius:var(--r-lg);
  padding:clamp(24px,3.4vw,38px); display:grid; gap:18px;
  box-shadow:0 24px 60px rgba(20,21,25,.09);
}
.field{display:grid; gap:7px; min-width:0}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.field label,.field legend{
  font-family:var(--font-cond); font-size:1rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2);
}
.field .req{color:var(--red)}
.field input,.field select,.field textarea{
  width:100%; padding:14px 16px; border:1px solid var(--line-l); border-radius:var(--r-sm);
  background:var(--paper); color:var(--ink); line-height:1.4;
  transition:border-color .25s, background .25s, box-shadow .25s;
}
.field textarea{resize:vertical; min-height:92px}
.field select{
  appearance:none; cursor:pointer; padding-right:42px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2354565E' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:17px;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--red); background:#fff; box-shadow:0 0 0 3px rgba(224,30,38,.13);
}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-3)}
.field.invalid input,.field.invalid select{border-color:var(--red); background:rgba(224,30,38,.04)}
.field-err{display:none; font-style:normal; font-size:.86rem; color:var(--red); font-weight:600}
.field.invalid .field-err{display:block}

.field-check{border:0}
.chips{display:flex; gap:9px; flex-wrap:wrap}
.chip{position:relative; cursor:pointer}
.chip input{position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0)}
.chip span{
  display:block; padding:11px 22px; border:1px solid var(--line-l); border-radius:999px;
  background:var(--paper); color:var(--ink-2);
  font-family:var(--font-cond); font-size:1.06rem; letter-spacing:.06em; text-transform:uppercase;
  transition:border-color .25s, background .25s, color .25s, transform .25s var(--ease);
}
.chip:hover span{border-color:var(--ink-3); transform:translateY(-2px)}
.chip input:checked + span{background:var(--red); border-color:var(--red); color:#fff}
.chip input:focus-visible + span{outline:2px solid var(--red); outline-offset:2px}

.orc-legal{font-size:.84rem; color:var(--ink-3); text-align:center}
.form-status{
  display:none; padding:13px 16px; border-radius:5px; font-weight:600; font-size:.95rem;
  background:rgba(37,211,102,.12); color:#0B6B39; border:1px solid rgba(37,211,102,.4);
}
.form-status.show{display:block}
.form-status.err{background:rgba(224,30,38,.08); color:var(--red-dark); border-color:rgba(224,30,38,.35)}

/* ========================= BLOG ========================= */
.blog{background:var(--black-2)}
.blog-empty{border:1px solid var(--line-d); border-radius:var(--r-lg); padding:clamp(26px,4vw,44px); background:rgba(255,255,255,.02); display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,64px); align-items:center}
.blog-empty h3{
  font-family:var(--font); font-stretch:118%; font-weight:800;
  font-size:clamp(1.6rem,3.2vw,2.4rem); line-height:1.06; text-transform:uppercase;
  letter-spacing:-.02em; margin-bottom:16px; color:#fff;
}
.blog-empty p{color:var(--gray); max-width:46ch; margin-bottom:24px}
.blog-queue{border-top:1px solid var(--line-d)}
.blog-queue li{
  display:flex; gap:16px; align-items:baseline; padding:17px 4px;
  border-bottom:1px solid var(--line-d); color:rgba(255,255,255,.62);
  font-family:var(--font-cond); font-size:1.2rem; letter-spacing:.03em;
  transition:color .3s, padding-left .3s var(--ease);
}
.blog-queue li:hover{color:#fff; padding-left:12px}
.blog-queue span{color:var(--red); font-weight:700; flex:none}

/* ========================= CONTATO ========================= */
.contato-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(38px,5vw,68px); align-items:center}
.contact-list{border-top:1px solid var(--line-d)}
.contact-list li{
  display:flex; gap:16px; align-items:center; padding:15px 4px;
  border-bottom:1px solid var(--line-d);
  transition:padding-left .3s var(--ease), background .3s;
}
.contact-list li:hover{padding-left:14px; background:rgba(255,255,255,.03)}
.contact-list .ci{
  width:42px; height:42px; flex:none; border-radius:12px; display:grid; place-items:center;
  background:rgba(255,255,255,.06); color:#fff;
  transition:background .3s, color .3s;
}
.contact-list li:hover .ci{background:var(--red); color:#fff}
.contact-list .ci.wa{color:var(--wa)}
.contact-list li:hover .ci.wa{background:var(--wa); color:#06331B}
.contact-list b{
  display:block; font-family:var(--font-cond); font-size:.9rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--gray);
}
.contact-list a{font-weight:600; color:#fff; transition:color .3s}
.contact-list a:hover{color:var(--red)}
.ci-text{font-weight:600; color:#fff}

.contato-map{position:relative; overflow:hidden; border:1px solid var(--line-d); border-radius:var(--r-md); min-height:460px}
/* mapa claro ("em branco"), sem inversão escura */
.contato-map iframe{width:100%; height:100%; min-height:460px; border:0; filter:grayscale(.85)}
.map-pin-label{
  position:absolute; left:14px; bottom:14px; padding:11px 20px; background:var(--red); color:#fff; border-radius:999px;
  font-family:var(--font-cond); font-size:1rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}

/* ========================= FOOTER ========================= */
.footer{background:#08080A; border-top:1px solid var(--line-d); padding-top:clamp(52px,6vw,74px)}
.footer-grid{display:grid; grid-template-columns:1.7fr 1fr 1fr 1.2fr; gap:36px}
.footer-logo{margin-bottom:16px}
.footer-desc{color:var(--gray); font-size:.95rem; max-width:34ch}
.footer-nav{display:flex; flex-direction:column; gap:9px}
.footer-nav b{
  font-family:var(--font-cond); font-size:.94rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--red); margin-bottom:5px;
}
.footer-nav a{color:var(--gray); font-size:.94rem; padding:4px 0; transition:color .3s, transform .3s var(--ease)}
.footer-nav a:hover{color:#fff; transform:translateX(4px)}
.footer-bottom{margin-top:46px; border-top:1px solid var(--line-d); padding:22px 26px; text-align:center; color:#6C6C72; font-size:.86rem}

/* ========================= WHATSAPP FLUTUANTE ========================= */
/* barra fixa de contato no celular (substitui o botão flutuante) */
.mobile-bar{display:none}
.nav-mobile-cta{display:none}
.field .opt{font-weight:500; letter-spacing:0; text-transform:none; color:var(--ink-3); margin-left:4px}
.calc{border:1px solid var(--line-l); border-radius:var(--r-sm); background:var(--paper)}
.calc summary{list-style:none; cursor:pointer; padding:12px 16px; font-family:var(--font-cond); font-weight:600; font-size:1.02rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); display:flex; align-items:center; gap:8px}
.calc summary::-webkit-details-marker{display:none}
.calc summary i{font-style:normal; color:var(--red); transition:transform .3s var(--ease)}
.calc[open] summary i{transform:rotate(90deg)}
.calc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:0 16px}
.calc-grid label{display:grid; gap:5px; font-family:var(--font-cond); font-size:.92rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2)}
.calc-grid input{width:100%; padding:11px 12px; border:1px solid var(--line-l); border-radius:var(--r-sm); background:#fff; color:var(--ink); font-size:1rem}
.calc-grid input:focus{outline:none; border-color:var(--red); box-shadow:0 0 0 3px rgba(224,30,38,.13)}
.calc-out{padding:10px 16px 14px; font-size:.92rem; color:var(--ink-2)}
.calc-out b{color:var(--ink)}
.open-dot{display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:6px; vertical-align:middle; background:#2EE074; box-shadow:0 0 0 3px rgba(46,224,116,.22)}
.open-dot.closed{background:#F5A623; box-shadow:0 0 0 3px rgba(245,166,35,.22)}
.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:950;
  display:flex; align-items:center; gap:0; padding:15px; border-radius:999px;
  background:var(--wa); color:#06331B;
  font-family:var(--font-cond); font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  box-shadow:0 10px 28px rgba(37,211,102,.4);
  transition:gap .38s var(--ease), padding .38s var(--ease), transform .28s var(--ease);
}
.wa-float::before{
  content:""; position:absolute; inset:0; border-radius:999px; border:2px solid var(--wa);
  animation:waPulse 2.6s var(--ease) infinite; pointer-events:none;
}
@keyframes waPulse{0%{transform:scale(1); opacity:.65}100%{transform:scale(1.55); opacity:0}}
.wa-float-text{max-width:0; overflow:hidden; white-space:nowrap; transition:max-width .42s var(--ease)}
.wa-float:hover{gap:10px; padding-right:24px; transform:scale(1.05)}
.wa-float:hover .wa-float-text{max-width:200px}

/* ========================= CURSOR ANIMADO ========================= */
.cur-dot,.cur-ring{position:fixed; top:0; left:0; z-index:9999; pointer-events:none; border-radius:50%; opacity:0; transition:opacity .3s; mix-blend-mode:difference}
.cur-dot{width:7px; height:7px; background:#fff; margin:-3.5px 0 0 -3.5px}
.cur-ring{
  width:36px; height:36px; margin:-18px 0 0 -18px; border:1.5px solid rgba(255,255,255,.65);
  transition:opacity .3s, width .3s var(--ease), height .3s var(--ease), margin .3s var(--ease), border-color .3s, background .3s;
}
body.cur-on .cur-dot,body.cur-on .cur-ring{opacity:1}
body.cur-on,body.cur-on a,body.cur-on button,body.cur-on summary,body.cur-on label{cursor:none}
body.cur-hot .cur-ring{width:58px; height:58px; margin:-29px 0 0 -29px; border-color:var(--red); background:rgba(224,30,38,.16)}
@media (hover:none),(max-width:900px){.cur-dot,.cur-ring{display:none}}

/* ========================= SCROLL REVEAL ========================= */
.js .reveal{opacity:0; transition:opacity .85s var(--ease), transform .85s var(--ease), filter .85s var(--ease)}
.reveal[data-reveal="up"]{transform:translateY(40px)}
.reveal[data-reveal="left"]{transform:translateX(-50px)}
.reveal[data-reveal="right"]{transform:translateX(50px)}
.reveal[data-reveal="zoom"]{transform:scale(.94)}
.reveal[data-reveal="blur"]{filter:blur(10px); transform:translateY(14px)}
.js .reveal.in{opacity:1; transform:none; filter:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important}
  html{scroll-behavior:auto}
  .reveal{opacity:1; transform:none; filter:none}
  .hero-title .ch{opacity:1; transform:none; filter:none}
  .w > i{transform:none}
}

/* ========================= RESPONSIVO ========================= */
@media (max-width:1080px){
  .stats-grid{grid-template-columns:repeat(2,1fr); gap:30px}
  .cidades-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .sobre-grid,.blog-empty,.faq-grid,.orc-grid,.video-grid{grid-template-columns:1fr}
  .galeria-grid{grid-template-columns:repeat(3,1fr); gap:12px}
  .faq-aside{position:static}
  .sobre-figure{max-width:520px}
  .cta-actions{grid-template-columns:1fr}
}
@media (max-width:900px){
  html{scroll-padding-top:72px}
  .nav-cta{display:none}
  .burger{display:flex}
  .nav{
    position:fixed; inset:0 0 auto 0; padding:92px 26px 32px; margin:0;
    flex-direction:column; gap:0; background:rgba(9,9,10,.98); backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line-d); transform:translateY(-102%); visibility:hidden;
    transition:transform .5s var(--ease), visibility 0s .5s; z-index:-1;
  }
  .nav.open{transform:translateY(0); visibility:visible; transition-delay:0s}
  .nav-mobile-cta{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line-d)}
  .nav-mobile-cta .btn{padding:14px 12px; font-size:.98rem}
  .mobile-bar{display:grid; grid-template-columns:1.4fr 1fr; gap:8px; position:fixed; left:0; right:0; bottom:0; z-index:940; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:rgba(11,11,12,.94); backdrop-filter:blur(12px); border-top:1px solid var(--line-d)}
  .mobile-bar .btn{padding:14px 12px; font-size:1rem}
  .wa-float{display:none}
  body{padding-bottom:72px}
  .calc-grid{grid-template-columns:1fr}
  .nav-link{font-size:1.6rem; padding:11px 0}
  .nav-link::after{left:0; right:auto; width:44px}

  .contato-grid,.svc-inner,.field-row{grid-template-columns:1fr}
  .svc.reverse .svc-media{order:0}
  .contato-map,.contato-map iframe{min-height:340px}
  .hero{padding-top:130px}
  .hero-photo{object-position:56% 70%}
  .video-wrap{width:min(100%,360px)}
}
@media (max-width:600px){
  body{font-size:1rem}
  .cidades-grid,.footer-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr; gap:22px}

  /* HERO = primeira tela completa no celular:
     do selo "usina própria" até o botão de telefone, sem os números
     (o 4,9 aparece logo abaixo, na faixa vermelha) */
  .hero{padding:96px 0 64px}
  .hero-marks{display:none}
  .hero-title{font-size:clamp(1.9rem,9.7vw,3.9rem)}
  .hero-eyebrow{font-size:.9rem; padding:8px 14px; margin-bottom:22px}
  .hero-sub{margin-top:20px}
  .hero-actions{margin-top:26px; gap:12px}
  .hero-actions .btn{width:100%}
  .scroll-hint{display:none}
  .facts > div{grid-template-columns:1fr; gap:4px}
  .review-card{width:278px}
  .reviews-head{flex-direction:column; align-items:flex-start}
  .wa-float-text{display:none}
  .video-ui{left:12px; right:12px; bottom:12px; gap:8px}
  .video-tag{display:none}
  .faq-item summary{font-size:1.14rem; gap:12px}
  .faq-body p{padding-right:16px}
  .orc-form{padding:22px 18px}
  .galeria-grid{grid-template-columns:1fr}
  .gal-item{aspect-ratio:4/5}
}
