/* VALIRA · v4 "Silêncio": muito branco, tipografia leve e grande, uma foto por vez, um momento escuro. Sem decoração. */
@font-face{font-family:Montserrat;src:url(../fonts/Montserrat-300-600.woff2) format("woff2");font-weight:300 600;font-display:swap}
:root{
  --azul:#0089D0;--escuro:#07569A;--profundo:#07152D;--gelo:#EAF7FC;--branco:#fff;
  --texto:#1B2B40;--texto-2:#4A5F78;--linha:#DDE6EE;--palco:#F4F6F9;--luz:#7CCBF2;
  --ease:cubic-bezier(.16,1,.3,1);--w:min(1180px,90vw);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%;scrollbar-color:#9FB4C7 #fff}
body{font-family:Montserrat,system-ui,Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.7;color:var(--texto);background:#fff;overflow-x:hidden;caret-color:var(--escuro);font-variant-numeric:tabular-nums}
img,svg{display:block;max-width:100%}
a{color:var(--escuro);text-decoration:none;font-weight:500;text-underline-offset:.25em}
a:hover{color:var(--profundo)}
::selection{background:#BFE6F7;color:var(--profundo)}
:focus-visible{outline:2px solid var(--escuro);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:12px;top:-60px;background:var(--profundo);color:#fff;padding:12px 18px;border-radius:999px;z-index:200;font-weight:500}
.skip:focus{top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:var(--w);margin-inline:auto}
h1,h2,h3{color:var(--profundo);text-wrap:balance;font-weight:300}
h1{font-size:clamp(2.3rem,6vw,4.4rem);line-height:1.06;letter-spacing:-.03em}
h2{font-size:clamp(1.9rem,4.2vw,3.1rem);line-height:1.1;letter-spacing:-.025em}
h3{font-size:1.1rem;font-weight:500;line-height:1.35;letter-spacing:-.005em}
p{max-width:60ch;text-wrap:pretty;color:var(--texto-2)}
.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.6}
em{font-style:normal;color:var(--azul)}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:48px;padding:.75em 1.7em;border-radius:999px;font:500 .95rem/1 Montserrat,sans-serif;border:1px solid transparent;cursor:pointer;transition:background .3s,color .3s,border-color .3s,transform .5s var(--ease)}
.btn-primary{background:var(--escuro);color:#fff}
.btn-primary:hover{background:var(--profundo);color:#fff}
.btn-ghost{border-color:#9DB4C8;color:var(--profundo);background:transparent}
.btn-ghost:hover{border-color:var(--profundo);color:var(--profundo)}
.btn[aria-disabled=true]{opacity:.65;cursor:progress}
.seta{display:inline-flex;align-items:center;gap:.5em;font-weight:500;color:var(--escuro);min-height:48px}
.seta::after{content:"→";transition:transform .5s var(--ease)}
.seta:hover::after{transform:translateX(5px)}

/* cabeçalho: branco sólido (o logotipo é JPEG com fundo branco) */
.top{position:fixed;inset:0 0 auto 0;z-index:60;background:#fff;border-bottom:1px solid transparent;transition:border-color .3s}
.top.scrolled{border-color:var(--linha)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.brand img{height:42px;width:auto}
.nav{display:flex;align-items:center;gap:34px}
.nav a:not(.btn){font-size:.875rem;font-weight:500;color:var(--texto-2);padding:10px 0;transition:color .25s}
.nav a:not(.btn):hover{color:var(--profundo)}
.nav .btn{min-height:44px;padding:.6em 1.3em;font-size:.875rem}
.menu-btn{display:none;width:48px;height:48px;border:0;background:transparent;border-radius:12px;cursor:pointer;color:var(--profundo)}
.menu-btn svg{margin:auto;width:26px;height:26px}
@media(max-width:900px){
  .menu-btn{display:grid}
  .nav{position:fixed;inset:72px 0 auto 0;max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain;flex-direction:column;align-items:stretch;gap:0;background:#fff;padding:8px 5vw 24px;border-bottom:1px solid var(--linha);transform:translateY(-8px);opacity:0;visibility:hidden;transition:.35s var(--ease)}
  .nav.open{transform:none;opacity:1;visibility:visible}
  .nav a:not(.btn){padding:16px 2px;border-bottom:1px solid var(--linha);font-size:1.05rem}
  .nav .btn{margin-top:18px}
}

/* seções */
section{padding:clamp(72px,10vw,152px) 0}
.palco{background:var(--palco)}

/* hero: título, depois o veículo grande no palco claro */
.hero{padding:calc(72px + clamp(28px,4.5vw,64px)) 0 0;text-align:center;background:#fff;overflow:hidden}
.hero h1{font-size:clamp(2.1rem,4.9vw,3.8rem);max-width:none;margin:0 auto 18px}
.hero .lead{margin:0 auto 24px;max-width:64ch}
.ctas{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 22px}
.hero{position:relative;overflow:hidden;background:#fff}
.stage{position:relative;margin-top:clamp(28px,4vw,56px)}
.stage figure{margin:0;overflow:hidden;animation:vehIn 1.8s .15s var(--ease) both}
.stage img{width:100%;height:auto;display:block;transform:scale(calc(1 + var(--hp,0) * .06));transform-origin:50% 60%;mix-blend-mode:multiply}
@media(max-width:700px){.stage img{aspect-ratio:4/3;object-fit:cover;object-position:50% 72%}}
.hero-in{animation:heroIn 1.4s var(--ease) both}
@keyframes heroIn{from{opacity:0;transform:translateY(22px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes vehIn{from{opacity:0;scale:1.05}to{opacity:1;scale:1}}

/* afirmação: o momento escuro, palavras acendem com a rolagem */
.afirma{position:relative;z-index:1;background:var(--profundo);padding:clamp(96px,16vw,220px) 0}
.afirma p{max-width:22ch;margin:0 auto;font-weight:300;font-size:clamp(2rem,5.6vw,4.2rem);line-height:1.14;letter-spacing:-.03em;color:#fff;text-align:left}
.afirma .wrap{display:flex;justify-content:center}
.afirma .w{opacity:.22;transition:opacity .5s var(--ease)}
.afirma .w.on{opacity:1}
.afirma .w.az.on{color:var(--luz)}
html.still .afirma .w,.no-js .afirma .w{opacity:1}

/* cabeçalho de seção */
.titulo{margin-bottom:clamp(36px,6vw,80px)}
.titulo h2{max-width:18ch}
.titulo p{margin-top:18px}

/* serviços: lista tipográfica, título fixo à esquerda */
.srv{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,7vw,120px);align-items:start}
.srv .titulo{position:sticky;top:120px;margin:0}
.srv ul{list-style:none}
.srv li{display:grid;grid-template-columns:minmax(0,1fr);padding:clamp(20px,2.6vw,34px) 0;border-top:1px solid var(--linha);transition:padding-left .6s var(--ease)}
.srv li:last-child{border-bottom:1px solid var(--linha)}
.srv li:hover{padding-left:12px}
.srv h3{font-weight:300;font-size:clamp(1.5rem,2.8vw,2.1rem);letter-spacing:-.02em;margin-bottom:6px}
.srv p{font-size:.97rem}
@media(max-width:860px){.srv{grid-template-columns:1fr}.srv .titulo{position:static}}

/* frota: modelos por porte, sem números */
.modelos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,28px)}
.modelo{margin:0;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 1px 0 var(--linha)}
.modelo img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;background:#8d9299}
.modelo figcaption{padding:clamp(20px,2.4vw,32px)}
.modelo h3{font-weight:300;font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.03em;color:var(--profundo);margin-bottom:4px;overflow-wrap:anywhere}
.modelo b{display:block;font-weight:500;font-size:.8125rem;color:var(--escuro);margin-bottom:10px}
.modelo p{font-size:.95rem}
.nota{font-size:.8125rem;margin-top:28px;max-width:70ch}
@media(max-width:900px){.modelos{grid-template-columns:1fr}}

/* operação: quatro etapas em linha, a linha acende ao entrar */
.etapas{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,44px)}
.etapas li{position:relative;padding-top:26px}
.etapas li::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--linha)}
.etapas li::after{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:var(--azul);transition:width 1.4s var(--ease);transition-delay:var(--d,0s)}
.etapas li.in::after{width:100%}
.etapas h3{font-weight:300;font-size:clamp(1.4rem,2.2vw,1.75rem);letter-spacing:-.02em;margin-bottom:10px}
.etapas p{font-size:.95rem}
.praticas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px clamp(20px,3vw,44px);margin-top:clamp(48px,7vw,96px)}
.praticas h3{font-size:.95rem;margin-bottom:6px}
.praticas p{font-size:.92rem;line-height:1.6}
@media(max-width:860px){.etapas,.praticas{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.etapas,.praticas{grid-template-columns:1fr}}

/* quem somos */
.sobre{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,7vw,120px);align-items:start}
.sobre .grande{font-weight:300;font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.25;letter-spacing:-.02em;color:var(--profundo);max-width:24ch}
.sobre .fecho{margin-top:28px;color:var(--escuro);font-weight:500}
.sobre h3{margin-bottom:8px}
.lista{list-style:none;margin-bottom:34px}
.lista li{padding:12px 0;border-top:1px solid var(--linha);color:var(--texto);font-size:.97rem}
@media(max-width:860px){.sobre{grid-template-columns:1fr}}

/* faq */
.faq{max-width:820px}
.faq details{border-top:1px solid var(--linha)}
.faq details:last-child{border-bottom:1px solid var(--linha)}
.faq summary{cursor:pointer;padding:24px 44px 24px 0;font-weight:400;font-size:1.12rem;list-style:none;position:relative;color:var(--profundo)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:9px;height:9px;border-right:1.5px solid var(--escuro);border-bottom:1.5px solid var(--escuro);transform:translateY(-70%) rotate(45deg);transition:transform .4s var(--ease)}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{padding:0 0 26px}

/* contato */
.contato{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,7vw,120px);align-items:start}
.contato ul{list-style:none;margin-top:34px;display:grid;gap:4px}
.contato li{display:block}
.contato li span{display:block;font-size:.8125rem;color:var(--texto-2);margin-top:14px}
.contato a{overflow-wrap:anywhere;display:inline-block;padding-block:.5em;font-size:1.1rem}
form.card{background:#fff;border-radius:24px;padding:clamp(24px,4vw,48px);box-shadow:0 1px 0 var(--linha),0 30px 60px -36px rgba(7,21,45,.28)}
form h3{font-weight:300;font-size:1.6rem;letter-spacing:-.02em;margin-bottom:6px}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:18px}
.field label{display:block;font-weight:500;font-size:.85rem;margin-bottom:6px;color:var(--profundo)}
.field .opt{font-weight:400;color:var(--texto-2)}
.field input,.field select,.field textarea{width:100%;min-height:50px;padding:.75em 1em;border:1px solid #8AA2B8;border-radius:12px;font:inherit;font-size:.97rem;color:var(--texto);background:#fff;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:130px;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--escuro)}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid transparent;outline-offset:2px;border-color:var(--escuro);box-shadow:0 0 0 4px rgba(0,137,208,.22)}
.field [aria-invalid=true]{border-color:#B3261E}
.err{color:#B3261E;font-size:.85rem;font-weight:500;margin-top:6px}
.hint{font-size:.85rem;color:var(--texto-2);margin-top:6px}
.req{font-size:.85rem;color:var(--texto-2);margin-bottom:18px}
.check{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px;font-size:.9rem;color:var(--texto-2)}
.check input{width:24px;height:24px;flex:none;margin-top:2px;accent-color:var(--escuro)}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.status{margin-top:16px;border-radius:12px;font-weight:500;font-size:.92rem}
.status.ok,.status.bad{padding:12px 14px}
.status.ok{background:#E3F5E8;color:#0F5B2A}
.status.bad{background:#FDE8E6;color:#7A1710}
.priv-note{font-size:.85rem;color:var(--texto-2);margin-top:14px}
@media(max-width:860px){.contato{grid-template-columns:1fr}form .row{grid-template-columns:1fr}}

/* rodapé */
footer{background:#fff;color:var(--texto-2);padding:88px 0 32px;font-size:.9rem;border-top:1px solid var(--linha)}
footer .cols{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:40px;margin-bottom:40px}
footer h2{font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--profundo);margin-bottom:12px}
footer ul{list-style:none;display:grid;gap:2px}
footer a{color:var(--escuro);overflow-wrap:anywhere}
footer li a{display:inline-block;padding-block:.78em}
.linklike{background:none;border:0;color:var(--escuro);font:inherit;font-weight:500;cursor:pointer;padding:.78em 0;min-height:44px}
.linklike:hover{color:var(--profundo)}
.foot-logo{height:48px;width:auto;margin-bottom:16px}
footer .legal{border-top:1px solid var(--linha);padding-top:24px;font-size:.85rem;line-height:1.8;color:var(--texto-2)}
@media(max-width:760px){footer .cols{grid-template-columns:minmax(0,1fr)}}

/* WhatsApp */
.wa{position:fixed;right:clamp(14px,2vw,26px);bottom:clamp(14px,2vw,26px);z-index:95;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#0F7A40;color:#fff;box-shadow:0 10px 26px -10px rgba(0,0,0,.5);transition:transform .4s var(--ease)}
.wa:hover{color:#fff;transform:scale(1.07)}
.wa svg{width:28px;height:28px}

/* consentimento */
.cc{position:fixed;left:clamp(10px,2vw,24px);bottom:clamp(10px,2vw,24px);z-index:90;width:min(340px,calc(100vw - 20px));max-height:calc(100dvh - 20px);overflow-y:auto;overscroll-behavior:contain;background:#fff;color:var(--texto);border:1px solid var(--linha);border-radius:18px;padding:18px;box-shadow:0 22px 50px -20px rgba(7,21,45,.4)}
.cc[hidden]{display:none}
.cc h2{font-size:.95rem;font-weight:600;margin-bottom:6px;letter-spacing:0}
.cc p{font-size:.875rem;line-height:1.55;margin-bottom:12px}
.cc fieldset{border:0;margin:0 0 12px}
.cc label{display:flex;gap:10px;align-items:flex-start;font-size:.82rem;margin-bottom:8px}
.cc input{width:20px;height:20px;flex:none;accent-color:var(--escuro)}
.cc .acts{display:flex;flex-wrap:wrap;gap:8px}
.cc .btn{min-height:40px;padding:.5em 1.2em;font-size:.85rem}
@media(max-width:600px){.cc{left:0;right:0;bottom:0;width:100%;border-radius:18px 18px 0 0;max-height:45dvh}.cc p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}body.cc-open .wa{bottom:calc(var(--cch,140px) + 14px)}}

/* páginas legais */
.legal-page{padding:calc(72px + 56px) 0 96px}
.legal-page .wrap{max-width:780px}
.legal-page h1{margin-bottom:10px;font-size:clamp(2rem,4.5vw,3rem)}
.legal-page h2{font-size:1.3rem;font-weight:500;letter-spacing:-.01em;margin:40px 0 10px}
.legal-page h3{margin:24px 0 8px}
.legal-page p,.legal-page li{margin-bottom:12px;max-width:none;color:var(--texto)}
.legal-page ul,.legal-page ol{padding-left:1.3em;margin-bottom:12px}
.tablewrap{overflow-x:auto;margin:16px 0}
.legal-page table{border-collapse:collapse;width:100%;min-width:560px;font-size:.9rem}
.legal-page th,.legal-page td{border:1px solid var(--linha);padding:10px 12px;text-align:left;vertical-align:top}
.legal-page th{background:var(--palco);font-weight:600}
.legal-page .meta{color:var(--texto-2);font-size:.9rem;margin-bottom:28px}
.pend{background:#FFF3C4;color:#5A4500;padding:0 .3em;border-radius:4px;font-weight:500}

/* movimento: uma entrada só, sem efeito repetido */
.rv{opacity:0;transform:translateY(26px);filter:blur(6px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease),filter 1.1s var(--ease);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none;filter:none}
.no-js .rv{opacity:1;transform:none;filter:none}
html.still *,html.still *::before,html.still *::after{animation:none!important;transition:none!important}
html.still{scroll-behavior:auto}
html.still .rv,html.still .stage figure{opacity:1;transform:none;filter:none;translate:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv,.stage figure{opacity:1;transform:none;filter:none;translate:none}
  .afirma .w{opacity:1}
}
