:root{
  --navy-900:#0A1D2E;
  --navy-800:#112E47;
  --navy-700:#163C5C;
  --navy-600:#1F4E78;
  --navy-500:#2E6FA6;
  --red-600:#D00C39;
  --red-500:#E8354F;
  --ink-900:#0D1B26;
  --ink-700:#3C4C58;
  --ink-500:#64737D;
  --paper-0:#FFFFFF;
  --paper-50:#F4F7F9;
  --paper-100:#E9EEF1;
  --silver-300:#CBD3D8;
  --silver-500:#98A4AB;

  --bg:var(--paper-50);
  --surface:var(--paper-0);
  --surface-2:var(--paper-100);
  --text:var(--ink-900);
  --text-dim:var(--ink-700);
  --text-faint:var(--ink-500);
  --brand:var(--navy-700);
  --brand-strong:var(--navy-900);
  --accent:var(--red-600);
  --accent-text:#FFFFFF;
  --line:var(--silver-300);
  --hero-grad: linear-gradient(115deg, var(--navy-900) 0%, var(--navy-700) 38%, var(--navy-600) 58%, var(--red-600) 100%);
  --shadow: 0 18px 40px -20px rgba(10,29,46,0.35);
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:var(--navy-900);
    --surface:var(--navy-800);
    --surface-2:#0E2335;
    --text:#EAF1F6;
    --text-dim:#B9C6CE;
    --text-faint:#8599A4;
    --brand:#6FA3D6;
    --brand-strong:#9CC0E8;
    --accent:var(--red-500);
    --accent-text:#0A1D2E;
    --line:#22425F;
    --shadow: 0 18px 40px -20px rgba(0,0,0,0.6);
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:var(--navy-900);
  --surface:var(--navy-800);
  --surface-2:#0E2335;
  --text:#EAF1F6;
  --text-dim:#B9C6CE;
  --text-faint:#8599A4;
  --brand:#6FA3D6;
  --brand-strong:#9CC0E8;
  --accent:var(--red-500);
  --accent-text:#0A1D2E;
  --line:#22425F;
  --shadow: 0 18px 40px -20px rgba(0,0,0,0.6);
  color-scheme: dark;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:'Montserrat',sans-serif;margin:0;text-wrap:balance;}
p{margin:0;}
.u-label{
  font-family:'Barlow Condensed',sans-serif;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:600;
}
.wrap{
  max-width:1180px;
  margin-inline:auto;
  padding-inline:20px;
}
@media (min-width:640px){ .wrap{padding-inline:32px;} }

/* ---------- NAV ---------- */
.nav{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:50;
  padding-block:14px;
  background:transparent;
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 10px 10px 18px;
  border-radius:999px;
  background:rgba(10,29,46,.78);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 18px 40px -18px rgba(0,0,0,.5);
}
.brand{display:flex;align-items:center;gap:10px;}
.brand-logo{height:40px;width:auto;display:block;}
.nav-links{display:flex;align-items:center;gap:4px;}
.nav-links a{
  display:flex;align-items:center;gap:7px;
  font-size:14px;
  font-weight:500;
  color:rgba(255,255,255,.72);
  white-space:nowrap;
  padding:9px 15px;
  border-radius:999px;
  transition:background .15s ease, color .15s ease;
}
.nav-links a svg{width:15px;height:15px;flex:none;}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,.08);}
@media (max-width:860px){ .nav-links{display:none;} }
.nav-actions{display:flex;align-items:center;gap:8px;}
.nav-icon-btn{
  width:38px;height:38px;flex:none;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  color:#fff;
  background:rgba(255,255,255,.08);
  transition:background .15s ease;
}
.nav-icon-btn svg{width:17px;height:17px;}
.nav-icon-btn:hover{background:rgba(255,255,255,.18);}
.nav-actions .btn-pill{border-radius:999px;padding:11px 22px;margin-right:4px;}
@media (max-width:640px){
  .nav{padding-inline:14px;}
  .nav-inner{padding:7px 7px 7px 12px;gap:10px;}
  .brand-logo{height:30px;}
  .nav-actions{gap:6px;}
  .nav-icon-btn{width:33px;height:33px;}
  .nav-icon-btn svg{width:15px;height:15px;}
}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:'Inter',sans-serif;font-weight:600;font-size:14.5px;
  padding:11px 20px;border-radius:7px;border:1.5px solid transparent;
  cursor:pointer;white-space:nowrap;transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:active{transform:translateY(1px);}
.btn-accent{background:var(--accent);color:var(--accent-text);}
.btn-accent:hover{box-shadow:0 10px 24px -10px rgba(208,12,57,.5);}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--text);}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand);}
.btn-light{background:var(--paper-0);color:var(--navy-900);}
.btn-light:hover{box-shadow:0 10px 24px -10px rgba(0,0,0,.4);}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  overflow:hidden;
  color:#fff;
  height:100vh;
  height:100dvh;
  display:flex;
  align-items:center;
}
.hero-bg{position:absolute;inset:0;z-index:0;background:var(--navy-900);}
.hero-canvas{width:100%;height:100%;display:block;}
.hero-photo{width:100%;height:100%;object-fit:cover;object-position:70% 50%;display:none;}
.hero .wrap{max-width:none;margin-inline:0;padding-inline:clamp(20px,6vw,88px);}
@media (max-width:860px){
  .hero{height:auto;min-height:0;}
  .hero-canvas{display:none;}
  .hero-photo{display:block;object-position:38% 42%;}
}
.hero-scrim{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(100deg, var(--navy-900) 0%, rgba(10,29,46,.92) 26%, rgba(10,29,46,.55) 46%, rgba(10,29,46,.08) 64%, rgba(10,29,46,0) 78%),
    linear-gradient(0deg, rgba(10,29,46,.55) 0%, rgba(10,29,46,0) 30%);
}
.hero-content{
  position:relative;z-index:2;
  padding-block:60px;
  max-width:620px;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.25);
  padding:6px 14px;border-radius:999px;
  font-size:11.5px;color:#fff;margin-bottom:22px;
}
.hero-eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--red-500);display:inline-block;flex:none;}
.hero h1{
  font-size:clamp(34px,5.2vw,58px);
  font-weight:900;line-height:1.04;letter-spacing:-.01em;
  color:#fff;
}
.hero h1 em{font-style:normal;color:var(--red-500);}
.hero-sub{
  margin-top:20px;max-width:46ch;
  font-size:17px;color:rgba(255,255,255,.82);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px;}
.hero-stats{
  display:grid;grid-template-columns:repeat(3,auto);gap:28px 36px;
  margin-top:48px;padding-top:28px;border-top:1px solid rgba(255,255,255,.18);
}
@media (max-width:560px){ .hero-stats{grid-template-columns:repeat(2,auto);} }
.hero-stat b{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:30px;
  display:block;color:#fff;font-variant-numeric:tabular-nums;
}
.hero-stat span{font-size:12.5px;color:rgba(255,255,255,.68);}
@media (max-width:860px){
  .hero-content{padding-block:118px 48px;}
  .hero-sub{margin-top:16px;font-size:15.5px;}
  .hero-actions{margin-top:24px;gap:12px;}
  .hero-stats{margin-top:32px;padding-top:22px;gap:18px 24px;}
}
@media (max-width:420px){
  .hero h1{font-size:clamp(28px,9vw,36px);}
  .hero-stats{gap:16px 20px;}
  .hero-stat b{font-size:26px;}
}

/* ---------- MARQUEE ---------- */
.marquee-band{
  background:linear-gradient(90deg, #0A1D2E, #0D2539 50%, #0A1D2E);
  color:rgba(222,234,244,.82);
  overflow:hidden;
  padding-block:14px;
  position:relative;
  border-block:1px solid rgba(95,168,232,.12);
}
/* filete de marca embaixo */
.marquee-band::before{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;z-index:2;
  background:linear-gradient(90deg, transparent, var(--red-600) 25%, #5FA8E8 75%, transparent);
  opacity:.7;
}
/* esfuma as pontas para o texto entrar/sair suave */
.marquee-band::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg, #0A1D2E 0%, transparent 9%, transparent 91%, #0A1D2E 100%);
}
.marquee-track{
  display:flex;gap:48px;white-space:nowrap;width:max-content;
  font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.14em;
  font-size:14px;text-transform:uppercase;
}
.marquee-track b{color:rgba(234,241,246,.9);font-weight:600;}
.marquee-track em{
  font-style:normal;color:var(--red-500);margin-inline:4px;
  text-shadow:0 0 10px rgba(232,53,79,.8);
}

/* ---------- SECTION GENERIC ---------- */
section[id]{scroll-margin-top:96px;}
section{padding-block:84px;}
@media (max-width:640px){ section{padding-block:56px;} }
.section-head{max-width:640px;margin-bottom:48px;}
.kicker{color:var(--accent);font-size:13px;margin-bottom:10px;display:block;}
.section-head h2{font-size:clamp(26px,3.6vw,38px);font-weight:800;color:var(--text);}
.section-head p{margin-top:14px;font-size:16px;color:var(--text-dim);max-width:54ch;}

/* ---------- TRUST BAR ---------- */
.trust{
  position:relative;
  background:
    radial-gradient(50% 120% at 50% 0%, rgba(46,111,166,.14), transparent 70%),
    #08182A;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.trust-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
@media (max-width:900px){ .trust-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .trust-grid{grid-template-columns:1fr;} }
.trust-item{
  position:relative;overflow:hidden;
  background:linear-gradient(160deg, rgba(22,60,92,.45), rgba(10,29,46,.6));
  border:1px solid rgba(95,168,232,.14);
  border-radius:14px;
  padding:20px 18px;
  display:flex;align-items:center;gap:14px;
  transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
/* filete vermelho que cresce no hover */
.trust-item::before{
  content:"";position:absolute;left:18px;right:18px;top:0;height:2px;border-radius:2px;
  background:linear-gradient(90deg, var(--red-600), #5FA8E8);
  transform:scaleX(.18);transform-origin:left;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.trust-item:hover{
  transform:translateY(-3px);
  border-color:rgba(95,168,232,.32);
  box-shadow:0 18px 36px -20px rgba(0,0,0,.8), 0 0 0 1px rgba(95,168,232,.06);
}
.trust-item:hover::before{transform:scaleX(1);}
.trust-item svg{
  flex:none;width:44px;height:44px;padding:10px;border-radius:12px;
  color:var(--red-500);
  background:rgba(208,12,57,.12);
  border:1px solid rgba(232,53,79,.25);
  box-shadow:inset 0 0 14px rgba(232,53,79,.12);
}
.trust-item b{display:block;font-size:14.5px;font-weight:700;color:#fff;}
.trust-item span{font-size:12.5px;color:rgba(222,234,244,.58);}
@media (prefers-reduced-motion:reduce){
  .trust-item,.trust-item::before{transition:none;}
}

/* ---------- FLEET ---------- */
#frota{
  background:
    radial-gradient(ellipse 60% 70% at 78% 45%, rgba(30,78,130,.28), transparent 70%),
    linear-gradient(180deg,#0A1622 0%,#0C1A28 55%,#09131E 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
  padding-block:96px 104px;
}
.frota-map{
  position:absolute;inset:0;z-index:0;width:100%;height:100%;display:block;
  -webkit-mask-image:linear-gradient(90deg,transparent 18%,rgba(0,0,0,.55) 38%,#000 58%);
          mask-image:linear-gradient(90deg,transparent 18%,rgba(0,0,0,.55) 38%,#000 58%);
  pointer-events:none;
}
.frota-vignette{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(180deg,#0A1622 0%,transparent 14%,transparent 86%,#09131E 100%),
    radial-gradient(ellipse 45% 60% at 18% 40%, rgba(10,22,34,.85), transparent 70%);
}
#frota .wrap{position:relative;z-index:1;}
#frota .section-head{margin-bottom:104px;}
#frota .section-head h2{color:#fff;font-weight:700;letter-spacing:-.01em;line-height:1.2;}
#frota .section-head p{color:rgba(220,232,242,.68);}
#frota .kicker{color:var(--red-500);}
.fleet-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:22px;
}
@media (max-width:980px){ .fleet-grid{grid-template-columns:repeat(2,1fr);row-gap:104px;} }
@media (max-width:560px){ .fleet-grid{grid-template-columns:1fr;row-gap:104px;} #frota .section-head{margin-bottom:96px;} .fleet-truck{width:min(100%,340px);align-self:center;} }
.fleet-card{
  --cut:18px;
  position:relative;isolation:isolate;
  padding:0 24px 30px;
  display:flex;flex-direction:column;gap:10px;
  transition:transform .3s ease;
}
/* card face: rounded corners + chamfered bottom-right, kept on a pseudo so the truck can overflow the top */
.fleet-card::before{
  content:"";position:absolute;inset:0;z-index:-1;
  border-radius:10px;
  border:1px solid rgba(232,53,79,.55);
  background:
    radial-gradient(ellipse 90% 55% at 60% 0%, rgba(70,120,170,.18), transparent 70%),
    linear-gradient(180deg,rgba(28,46,66,.94) 0%,rgba(17,31,46,.96) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), inset 0 0 30px rgba(0,0,0,.25);
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%);
  transition:border-color .3s ease, background .3s ease;
}
.fleet-card::after{
  content:"";position:absolute;z-index:-1;
  left:calc(100% - var(--cut));top:calc(100% - 1px);
  width:calc(var(--cut) * 1.4142);height:1px;
  background:rgba(232,53,79,.55);
  transform:rotate(-45deg);transform-origin:0 0;
  transition:background .3s ease;
}
.fleet-card:hover{transform:translateY(-6px);}
.fleet-card:hover::before{border-color:rgba(232,53,79,.95);}
.fleet-card:hover::after{background:rgba(232,53,79,.95);}
.fleet-card{filter:drop-shadow(0 24px 30px rgba(0,0,0,.45));}
.fleet-card:hover{filter:drop-shadow(0 26px 34px rgba(0,0,0,.5)) drop-shadow(0 0 18px rgba(208,12,57,.18));}
.fleet-truck{
  height:150px;margin:-84px -14px 10px;
  display:flex;align-items:flex-end;justify-content:center;
  pointer-events:none;
}
.fleet-truck svg{display:block;height:auto;max-height:170px;overflow:visible;transition:transform .35s ease;}
.fleet-card:hover .fleet-truck svg{transform:translateY(-4px);}
.fleet-card b.tag{
  font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:600;letter-spacing:.14em;
  color:var(--red-500);text-transform:uppercase;
}
.fleet-card h3{font-size:20px;font-weight:700;color:#fff;margin-top:-2px;}
.fleet-card p{font-size:14px;line-height:1.6;color:rgba(220,232,242,.66);}

/* ---------- COVERAGE / ROUTES ---------- */
.coverage{
  background:#050E18;
  color:#fff;
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
/* camada do mapa */
.coverage-map{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  display:block;width:100%;height:100%;
}
.coverage-map svg{width:100%;height:100%;display:block;}
/* fluxos animados em camada própria: repintar só ela, nunca o mapa com blur */
.cmap-anim{position:absolute;inset:0;will-change:transform;transform:translateZ(0);}
.cmap-anim svg{position:absolute;inset:0;}
/* pausa animações quando a section sai da tela */
.coverage.is-offscreen .cmap-flow,.coverage.is-offscreen .cmap-pulse{animation-play-state:paused;}
/* vinheta + brilho quente sobre o nordeste */
.coverage::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(60% 70% at 26% 50%, rgba(255,120,40,.10), transparent 70%),
    radial-gradient(120% 100% at 50% 50%, transparent 30%, rgba(3,8,14,.78) 100%);
}
.coverage .wrap{position:relative;z-index:2;}
.coverage .section-head p{color:rgba(226,238,248,.70);}
.coverage .section-head h2{color:#fff;text-shadow:0 2px 24px rgba(3,8,14,.85);}
.coverage .kicker{color:var(--red-500);}

/* traços do mapa */
.cmap-land{fill:#0B1B29;stroke:rgba(126,176,222,.26);stroke-width:1.2;}
.cmap-graticule{stroke:rgba(126,176,222,.10);stroke-width:.6;fill:none;}
.cmap-route{
  fill:none;stroke:#FF6A1A;stroke-linecap:round;
  filter:url(#cmapGlow);
}
.cmap-route.is-main{stroke-width:2.4;opacity:.95;}
.cmap-route.is-sec{stroke-width:1.4;opacity:.55;}
.cmap-route.is-faint{stroke-width:1;opacity:.3;}
.cmap-flow{
  fill:none;stroke:#FFD2A8;stroke-width:1.6;stroke-linecap:round;
  stroke-width:2.4;stroke-dasharray:14 240;opacity:.95;
  animation:cmapFlow 5.5s linear infinite;
}
.cmap-flow.d2{animation-delay:1.4s;}
.cmap-flow.d3{animation-delay:2.8s;}
.cmap-flow.d4{animation-delay:4.1s;}
@keyframes cmapFlow{ from{stroke-dashoffset:254;} to{stroke-dashoffset:0;} }
.cmap-node{fill:#FF8A3D;}
.cmap-node-base{fill:#fff;}
.cmap-pulse{fill:none;stroke:#FF8A3D;stroke-width:1.4;transform-origin:center;animation:cmapPulse 3s ease-out infinite;}
@keyframes cmapPulse{ 0%{r:3;opacity:.8;} 100%{r:22;opacity:0;} }
@media (prefers-reduced-motion:reduce){
  .cmap-flow,.cmap-pulse{animation:none;}
  .cmap-pulse{opacity:0;}
}
/* bússola decorativa */
.cmap-compass{fill:none;stroke:rgba(226,238,248,.35);stroke-width:1;}
.cmap-compass-fill{fill:rgba(226,238,248,.45);}
@media (max-width:860px){
  .coverage .route-line{grid-template-columns:1fr !important;gap:32px !important;}
  .coverage-map{opacity:.5;}
}
.coverage .section-head p{color:rgba(255,255,255,.72);}
.coverage .section-head h2{color:#fff;}
.coverage .kicker{color:var(--red-500);}
.route-line{position:relative;z-index:1;}
.route-rail{
  position:relative;
  margin-top:12px;
  padding:26px 22px 26px 30px;
  border-left:2px solid rgba(255,255,255,.22);
  display:flex;flex-direction:column;gap:30px;
  background:linear-gradient(180deg, rgba(5,14,24,.84), rgba(5,14,24,.72));
  border-radius:0 14px 14px 0;
}
.route-stop{position:relative;}
.route-stop::before{
  content:"";position:absolute;left:-42px;top:4px;width:14px;height:14px;border-radius:50%;
  background:#FF6A1A;border:3px solid #050E18;box-shadow:0 0 14px rgba(255,106,26,.75);
}
.route-stop.base::before{background:#fff;box-shadow:0 0 16px rgba(255,255,255,.7);}
.route-stop b{
  display:block;font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:19px;letter-spacing:.04em;color:#fff;
}
.route-stop span{font-size:13.5px;color:rgba(255,255,255,.6);}
.route-pill{
  display:inline-block;margin-top:6px;font-size:11px;
  font-family:'Barlow Condensed',sans-serif;letter-spacing:.1em;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);
  padding:3px 10px;border-radius:999px;color:rgba(255,255,255,.85);
}

/* ---------- VALUES ---------- */
.values-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
@media (max-width:980px){ .values-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:560px){ .values-grid{grid-template-columns:repeat(2,1fr);} }
.value-card{
  background:var(--surface);border:1px solid var(--line);border-radius:12px;
  padding:20px 16px;text-align:left;
}
.value-card b{
  font-family:'Barlow Condensed',sans-serif;font-size:26px;color:var(--accent);
  display:block;margin-bottom:8px;
}
.value-card span{font-size:13.5px;font-weight:600;color:var(--text);}

/* ---------- ABOUT ---------- */
.about-section{
  position:relative;overflow:hidden;isolation:isolate;
  background:#0E1F2F;color:#fff;
}
/* malha de ruas ao fundo */
.about-streets{
  position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  -webkit-mask-image:linear-gradient(100deg, #000 0%, rgba(0,0,0,.55) 42%, transparent 72%);
  mask-image:linear-gradient(100deg, #000 0%, rgba(0,0,0,.55) 42%, transparent 72%);
}
.about-streets svg{width:100%;height:100%;display:block;}
.about-section::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(55% 80% at 78% 55%, rgba(46,111,166,.22), transparent 70%),
    radial-gradient(120% 110% at 40% 50%, transparent 35%, rgba(4,10,18,.75) 100%);
}
.about{
  position:relative;z-index:2;
  display:grid;grid-template-columns:.92fr 1.08fr;gap:40px;align-items:center;
}
@media (max-width:900px){ .about{grid-template-columns:1fr;gap:36px;} }
.about-copy .kicker{color:var(--red-500);}
.about-copy h2{color:#fff;}
.about-copy p{font-size:15px;line-height:1.65;color:rgba(222,234,244,.72);margin-top:16px;max-width:52ch;}
.about-copy p+p{margin-top:14px;}
.badge-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.tagpill{
  font-family:'Barlow Condensed',sans-serif;letter-spacing:.08em;font-size:12.5px;
  text-transform:uppercase;padding:7px 13px;border-radius:999px;
  background:rgba(255,255,255,.06);color:rgba(226,238,248,.78);
  border:1px solid rgba(255,255,255,.16);
}
.tagpill.hot{
  background:var(--red-600);color:#fff;border-color:transparent;
  box-shadow:0 6px 22px -8px rgba(208,12,57,.9);
}
/* cena: camada da section ancorada à direita; topo/base/direita coincidem com
   as bordas da section e só a esquerda esfuma, então não aparece emenda */
.about-section{min-height:clamp(440px,36vw,620px);display:flex;align-items:center;}
.about-section > .wrap{width:100%;}
.about-art{min-height:1px;}
.about-scene{
  position:absolute;top:0;right:0;bottom:0;z-index:1;
  height:100%;width:auto;max-width:64%;
  object-fit:cover;object-position:right center;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 12%, #000 26%);
  mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 12%, #000 26%);
}
@media (max-width:900px){
  .about-section{display:block;min-height:0;}
  .about-art{display:none;}
  .about-scene{
    position:relative;display:block;width:100%;height:auto;max-width:none;margin-top:28px;
    -webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 14%, #000 88%, transparent 100%);
    mask-image:linear-gradient(180deg, transparent 0%, #000 14%, #000 88%, transparent 100%);
  }
}

/* ---------- PARCEIROS ---------- */
.partners{
  position:relative;overflow:hidden;isolation:isolate;
  background:#0B1826;color:#fff;
}
.partners::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(45% 60% at 18% 78%, rgba(255,138,61,.10), transparent 70%),
    radial-gradient(50% 70% at 72% 40%, rgba(46,111,166,.20), transparent 70%),
    radial-gradient(120% 110% at 50% 50%, transparent 40%, rgba(4,10,18,.7) 100%);
}
/* rastros de luz ao fundo */
.partners-trails{
  position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.55;
  -webkit-mask-image:linear-gradient(90deg, #000 0%, #000 45%, transparent 85%);
  mask-image:linear-gradient(90deg, #000 0%, #000 45%, transparent 85%);
}
.partners-trails svg{width:100%;height:100%;display:block;}
.partners-trails path{fill:none;stroke-width:1.6;stroke-linecap:round;opacity:.75;}
.partners-grid{
  position:relative;z-index:2;
  display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;
}
.partners-copy .kicker{color:var(--red-500);}
.partners-copy h2{color:#fff;font-size:clamp(26px,3.4vw,38px);font-weight:800;}
.partners-copy p{font-size:15.5px;line-height:1.65;color:rgba(222,234,244,.74);margin-top:16px;max-width:50ch;}
.partners-copy .btn{margin-top:28px;}

/* colagem: 3 imagens com cantos orgânicos e filetes de cor */
.partners-collage{
  position:relative;
  display:grid;grid-template-columns:.8fr 1.2fr;grid-template-rows:1fr 1fr;gap:12px;
  aspect-ratio:1.45/1;
}
.partners-collage::before{
  content:"";position:absolute;left:-26px;top:6%;bottom:6%;width:80px;pointer-events:none;
  border-left:2px solid rgba(95,168,232,.6);
  border-radius:100% 0 0 100% / 50% 0 0 50%;
  filter:drop-shadow(0 0 6px rgba(95,168,232,.6));
}
.pc-tile{
  margin:0;position:relative;overflow:hidden;
  border:1.5px solid rgba(95,168,232,.35);
  background:#0E2133;
  box-shadow:0 24px 50px -24px rgba(0,0,0,.7);
}
.pc-tile img{width:100%;height:100%;object-fit:cover;display:block;}
.pc-driver{
  grid-row:1 / 3;
  border-color:rgba(232,53,79,.75);
  border-radius:150px 26px 26px 26px / 210px 26px 26px 26px;
}
.pc-driver img{object-position:30% center;}
.pc-map{
  border-color:rgba(95,168,232,.6);
  border-radius:26px 26px 26px 80px;
}
.pc-deal{
  border-radius:80px 26px 26px 26px;
}
.pc-deal img{object-position:center 40%;}

@media (max-width:900px){
  .partners-grid{grid-template-columns:1fr;gap:40px;}
  .partners-collage::before{display:none;}
}
@media (max-width:520px){
  .partners-collage{grid-template-columns:1fr;grid-template-rows:auto;aspect-ratio:auto;}
  .pc-driver{grid-row:auto;aspect-ratio:4/5;border-radius:90px 22px 22px 22px;}
  .pc-map,.pc-deal{aspect-ratio:16/9;}
}

/* ---------- FORM ---------- */
.quote-section{
  position:relative;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(40% 60% at 12% 20%, rgba(208,12,57,.10), transparent 70%),
    radial-gradient(45% 70% at 90% 85%, rgba(46,111,166,.18), transparent 70%),
    #0A1724;
}
.quote-wrap{
  position:relative;
  display:grid;grid-template-columns:.9fr 1.1fr;gap:0;
  background:linear-gradient(180deg, rgba(17,46,71,.55), rgba(10,29,46,.75));
  border:1px solid rgba(95,168,232,.16);border-radius:22px;overflow:hidden;
  box-shadow:0 40px 80px -40px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.05);
}
/* filete de marca no topo do card */
.quote-wrap::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:2;
  background:linear-gradient(90deg, var(--red-600), #5FA8E8 60%, transparent);
}
@media (max-width:900px){ .quote-wrap{grid-template-columns:1fr;} }

/* lado esquerdo */
.quote-side{
  position:relative;overflow:hidden;color:#fff;padding:44px 38px;
  display:flex;flex-direction:column;gap:26px;
  background:
    radial-gradient(70% 55% at 100% 100%, rgba(208,12,57,.38), transparent 70%),
    radial-gradient(60% 50% at 0% 0%, rgba(46,111,166,.35), transparent 70%),
    linear-gradient(160deg, #0F2A42 0%, #0B1E31 100%);
  border-right:1px solid rgba(255,255,255,.06);
}
/* malha sutil de fundo */
.quote-side::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(150,185,220,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(150,185,220,.07) 1px, transparent 1px);
  background-size:28px 28px;
  -webkit-mask-image:linear-gradient(180deg, #000, transparent 85%);
  mask-image:linear-gradient(180deg, #000, transparent 85%);
}
.quote-side > *{position:relative;z-index:1;}
.quote-side .kicker{color:var(--red-500);}
.quote-side h3{font-size:clamp(24px,2.6vw,30px);font-weight:800;line-height:1.2;}
.quote-side p{margin-top:12px;color:rgba(222,234,244,.74);font-size:14.5px;line-height:1.65;max-width:42ch;}

/* ilustração de rota */
.quote-route{
  padding:16px 16px 12px;border-radius:14px;
  background:rgba(5,14,24,.45);border:1px solid rgba(95,168,232,.14);
}
.quote-route svg{width:100%;height:auto;display:block;overflow:visible;}
.qr-track{fill:none;stroke:rgba(150,185,220,.22);stroke-width:2;stroke-dasharray:2 7;stroke-linecap:round;}
.qr-flow{
  fill:none;stroke:#FF6A1A;stroke-width:2.6;stroke-linecap:round;
  stroke-dasharray:60 400;animation:qrFlow 3.6s cubic-bezier(.45,.05,.55,.95) infinite;
}
@keyframes qrFlow{ from{stroke-dashoffset:460;} to{stroke-dashoffset:0;} }
.qr-dot{fill:#5FA8E8;}
.qr-start{fill:#fff;stroke:rgba(255,255,255,.25);stroke-width:6;}
.qr-end{fill:var(--red-500);stroke:rgba(232,53,79,.3);stroke-width:6;}
.qr-labels{
  display:flex;justify-content:space-between;margin-top:6px;
  font-family:'Barlow Condensed',sans-serif;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(222,234,244,.55);
}

.quote-perks{list-style:none;margin:auto 0 0;padding:0;display:flex;flex-direction:column;gap:12px;}
.quote-perks li{display:flex;gap:12px;align-items:center;font-size:14px;color:rgba(234,241,246,.9);}
.quote-perks li svg{
  flex:none;width:24px;height:24px;padding:5px;border-radius:50%;
  color:#fff;background:var(--red-600);
  box-shadow:0 0 0 4px rgba(208,12,57,.16);
}

/* formulário */
.quote-form{padding:40px 38px;display:flex;flex-direction:column;gap:16px;}
.quote-form-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding-bottom:16px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.07);
}
.quote-form-head b{font-size:16px;color:#fff;}
.quote-form-head span{font-size:12.5px;color:rgba(222,234,244,.5);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:520px){ .form-row{grid-template-columns:1fr;} .quote-side,.quote-form{padding:32px 22px;} }
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-size:12.5px;font-weight:600;color:rgba(222,234,244,.78);letter-spacing:.01em;}
.ctl{position:relative;}
.ctl-ico{
  position:absolute;left:13px;top:50%;width:17px;height:17px;transform:translateY(-50%);
  color:rgba(150,185,220,.55);pointer-events:none;transition:color .2s ease;
}
.field input,.field select,.field textarea{
  width:100%;
  border:1.5px solid rgba(95,168,232,.16);border-radius:10px;padding:12px 14px 12px 40px;
  font-family:'Inter',sans-serif;font-size:14.5px;
  background:rgba(5,14,24,.55);color:#EAF1F6;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.field input::placeholder{color:rgba(222,234,244,.35);}
.field input:hover,.field select:hover{border-color:rgba(95,168,232,.32);}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--red-500);background:rgba(5,14,24,.8);
  box-shadow:0 0 0 4px rgba(232,53,79,.16);
}
.ctl:focus-within .ctl-ico{color:var(--red-500);}
.field select{
  appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2396B9DC' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;
}
.field select option{background:#0A1D2E;color:#EAF1F6;}
.form-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:8px;flex-wrap:wrap;}
.form-foot .btn{padding:13px 22px;}
.form-foot .btn svg{transition:transform .25s ease;}
.form-foot .btn:hover svg{transform:translateX(4px);}
.form-note{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:rgba(222,234,244,.5);}
.form-note svg{width:14px;height:14px;}
.toast{
  display:none;align-items:center;gap:10px;
  background:rgba(37,211,102,.08);border:1px solid rgba(37,211,102,.3);
  border-left:4px solid #25D366;padding:12px 14px;border-radius:10px;font-size:13.5px;color:#EAF1F6;
}
.toast.show{display:flex;}
.toast svg{flex:none;width:18px;height:18px;color:#25D366;}
@media (prefers-reduced-motion:reduce){ .qr-flow{animation:none;stroke-dasharray:none;} }

/* ---------- FOOTER ---------- */
footer{
  position:relative;overflow:hidden;isolation:isolate;
  background:#06111C;color:rgba(222,234,244,.72);
}
/* filete de marca no topo + brilho sutil */
footer::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:1;
  background:linear-gradient(90deg, transparent, var(--red-600) 22%, #5FA8E8 78%, transparent);
  opacity:.85;
}
footer::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(40% 80% at 8% 0%, rgba(208,12,57,.12), transparent 70%),
    radial-gradient(45% 90% at 92% 0%, rgba(46,111,166,.16), transparent 70%);
}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:36px;padding-block:56px 32px;}
@media (max-width:860px){ .foot-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .foot-grid{grid-template-columns:1fr;} }
.foot-grid h4{color:#fff;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-family:'Barlow Condensed',sans-serif;margin-bottom:14px;}
.foot-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:14px;}
.foot-grid h4{position:relative;padding-bottom:10px;}
.foot-grid h4::after{content:"";position:absolute;left:0;bottom:0;width:22px;height:2px;border-radius:2px;background:var(--red-600);}
.foot-grid a{transition:color .2s ease, transform .2s ease;display:inline-block;}
.foot-grid a:hover{color:#fff;transform:translateX(3px);}
.foot-logo-chip{
  background:#fff;border-radius:12px;padding:10px 14px;display:inline-flex;
  box-shadow:0 14px 30px -16px rgba(0,0,0,.8), 0 0 0 1px rgba(255,255,255,.08);
}
.foot-logo{height:42px;width:auto;display:block;}
.foot-brand p{margin-top:14px;font-size:13.5px;color:rgba(222,234,244,.58);max-width:30ch;}
.foot-pending{color:rgba(222,234,244,.4);font-style:italic;}
.foot-bottom{
  border-top:1px solid rgba(255,255,255,.08);padding-block:20px;
  display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  font-size:12.5px;color:rgba(222,234,244,.45);
}

/* crédito Monet */
.credit{
  position:relative;display:inline-flex;align-items:center;gap:9px;
  padding:7px 12px 7px 14px;border-radius:999px;
  color:rgba(222,234,244,.55);
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.02);
  transition:color .3s ease, border-color .3s ease, background .3s ease, box-shadow .3s ease, transform .3s ease;
}
.credit-label{letter-spacing:.02em;}
.credit-logo{position:relative;display:inline-block;line-height:0;overflow:hidden;}
.credit-logo img{
  height:13px;width:auto;display:block;opacity:.8;
  transition:opacity .3s ease, filter .3s ease;
}
/* reflexo que atravessa as letras, recortado pela própria logo */
.credit-logo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg, transparent 30%, rgba(255,255,255,.95) 48%, #9CC8F0 52%, transparent 70%);
  background-size:250% 100%;background-position:130% 0;
  -webkit-mask:url(../images/monet-logo.png) center / 100% 100% no-repeat;
  mask:url(../images/monet-logo.png) center / 100% 100% no-repeat;
}
.credit-arrow{
  opacity:0;transform:translate(-6px,6px) scale(.7);
  transition:opacity .3s ease, transform .35s cubic-bezier(.2,.8,.2,1);
  color:#fff;
}
.credit:hover,.credit:focus-visible{
  color:#fff;
  border-color:rgba(95,168,232,.45);
  background:linear-gradient(90deg, rgba(208,12,57,.10), rgba(46,111,166,.14));
  box-shadow:0 0 0 4px rgba(95,168,232,.08), 0 10px 28px -12px rgba(95,168,232,.55);
  transform:translateY(-1px);
}
.credit:focus-visible{outline:2px solid #5FA8E8;outline-offset:3px;}
.credit:hover .credit-logo img,.credit:focus-visible .credit-logo img{
  opacity:1;filter:drop-shadow(0 0 6px rgba(156,200,240,.55));
}
.credit:hover .credit-logo::after,.credit:focus-visible .credit-logo::after{
  animation:creditShine 1.1s cubic-bezier(.3,.6,.3,1) forwards;
}
.credit:hover .credit-arrow,.credit:focus-visible .credit-arrow{opacity:1;transform:translate(0,0) scale(1);}
@keyframes creditShine{ from{background-position:130% 0;} to{background-position:-30% 0;} }
@media (prefers-reduced-motion:reduce){
  .credit,.credit-arrow{transition:none;}
  .credit:hover .credit-logo::after{animation:none;}
}

/* folga para o parallax (GSAP move ±7%): camadas maiores que a section,
   assim a borda nunca aparece durante o movimento */
@media (min-width:861px) and (prefers-reduced-motion:no-preference){
  .coverage-map,.about-streets,.partners-trails{top:-14%;bottom:-14%;height:auto;will-change:transform;}
  .pc-tile img{height:116%;will-change:transform;}
}

.reveal{opacity:0;transform:translateY(22px);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;}
}
