:root{--orange:#ff6600;--black:#121214;--graphite:#303033;--gray:#64676b;--light:#f4f4f2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--black);background:white}a{text-decoration:none;color:inherit}.header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);background:#121214;color:white;position:sticky;top:0;z-index:10;border-bottom:1px solid #ffffff20}.logo{font-size:29px;font-weight:950;letter-spacing:-1.8px;line-height:.75;display:inline-flex;flex-direction:column}.logo small{font-size:9px;letter-spacing:5px;color:var(--orange);margin-top:11px;text-align:center}.header nav{display:flex;align-items:center;gap:30px;font-size:13px;font-weight:650}.header nav a:hover{color:var(--orange)}.nav-cta,.btn.primary{background:var(--orange);color:white!important}.nav-cta{padding:14px 19px;border-radius:5px}.menu-toggle{display:none}.hero{min-height:640px;background:#121214;color:white;display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden}.hero-inner{padding:115px 5vw 65px;position:relative;z-index:1}.eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:3px;color:var(--orange);margin-bottom:23px}.hero h1{font-size:clamp(46px,5.2vw,86px);letter-spacing:-3.8px;line-height:1.04;margin:0 0 25px;max-width:850px}em{font-style:normal;color:var(--orange)}.hero p{font-size:17px;line-height:1.75;max-width:620px;color:#d5d5d5}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:35px}.btn{border:0;display:inline-block;padding:17px 23px;border-radius:5px;font-weight:800;font-size:14px;cursor:pointer}.btn:hover,.nav-cta:hover{filter:brightness(1.12)}.btn.secondary{border:1px solid #777;color:white}.hero-tags{display:flex;gap:20px;flex-wrap:wrap;margin-top:75px;color:#ddd;font-size:12px}.hero-tags span:first-letter{color:var(--orange)}.hero-art{background:linear-gradient(145deg,#343437,#1c1c1e);position:relative;display:flex;align-items:center;justify-content:center;min-height:400px}.hero-art:before{content:"";position:absolute;width:68%;height:70%;border:2px solid #ff660066;transform:skew(-14deg) rotate(-8deg)}.orange-panel{background:var(--orange);width:72%;aspect-ratio:1.2;transform:skew(-8deg) rotate(-4deg);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:28px 32px 0 #0007}.orange-panel span{font-size:clamp(38px,6vw,100px);font-weight:950;letter-spacing:-6px;color:#121214}.orange-panel small{font-size:11px;letter-spacing:3px;font-weight:900;color:#121214}.hero-number{position:absolute;bottom:40px;right:50px;letter-spacing:3px;font-size:11px}.section{padding:105px 6vw}.section h2{font-size:clamp(34px,4vw,61px);line-height:1.1;letter-spacing:-2px;margin:0 0 26px;max-width:800px}.section p{color:var(--gray);line-height:1.8;font-size:16px}.intro{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.text-link{font-weight:800;color:var(--orange)}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.feature-grid article{padding:27px;background:var(--light);border-radius:8px}.feature-grid b{color:var(--orange);font-size:22px}.feature-grid h3{margin-bottom:4px}.feature-grid p{font-size:14px;margin:0}.dark{background:#1b1b1d;color:white}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:48px}.cards article{background:#303033;padding:34px 25px;min-height:280px;border-bottom:4px solid var(--orange)}.cards h3{font-size:21px}.cards p{color:#c9c9c9;font-size:14px}.symbol{font-size:40px;color:var(--orange)}.segment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:45px}.segment-grid div{padding:35px 20px;background:var(--light);font-size:25px;color:var(--orange);display:flex;gap:18px;align-items:center}.segment-grid strong{font-size:17px;color:var(--black)}.coverage{background:#252528;color:white;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.coverage p{color:#ccc}.locations{border:1px solid #555;padding:30px;border-radius:10px}.plan-label{display:block;color:#ff9b58;font-size:10px;font-weight:800;letter-spacing:1px;margin-bottom:22px}#cities{display:grid;grid-template-columns:1fr 1fr;gap:12px}#cities span{font-size:13px;padding:8px 0;border-bottom:1px solid #ffffff22}#cities span:before{content:'●';color:var(--orange);margin-right:10px}.tech{background:#f5f5f3}.tech p{max-width:850px}.tech-points{display:flex;flex-wrap:wrap;gap:15px;margin:35px 0}.tech-points span{background:white;padding:15px 18px;font-weight:700}.tech small{color:var(--gray)}.contact{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.contact form{display:grid;gap:14px}.contact label{font-size:13px;font-weight:750}.contact input,.contact textarea{width:100%;margin-top:8px;padding:14px;font:inherit;border:1px solid #ccc;border-radius:4px}.contact textarea{min-height:110px}.contact .form-note{font-size:12px;margin:0}footer{background:#121214;color:white;padding:55px 6vw;display:flex;gap:25px;justify-content:space-between;align-items:center;flex-wrap:wrap}footer p,footer span{font-size:12px;color:#aaa}@media(max-width:950px){.header nav{display:none;position:absolute;top:82px;left:0;right:0;background:#121214;padding:25px;flex-direction:column;align-items:stretch}.header nav.open{display:flex}.menu-toggle{display:block;background:transparent;color:white;border:0;font-size:28px}.hero{grid-template-columns:1fr}.hero-inner{padding-top:75px}.hero-art{min-height:360px}.intro,.coverage,.contact{grid-template-columns:1fr;gap:40px}.cards{grid-template-columns:repeat(2,1fr)}.segment-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:550px){.hero h1{letter-spacing:-2px}.section{padding:65px 22px}.cards,.segment-grid,.feature-grid{grid-template-columns:1fr}.hero-tags{margin-top:40px}.orange-panel span{letter-spacing:-3px}.hero-art{min-height:290px}#cities{grid-template-columns:1fr}footer{display:block}footer>*{margin-bottom:25px}}

/* Gravvi v2 — páginas internas e acessibilidade */
.skip{position:absolute;left:-9999px;top:0;background:#ff6600;color:#121214;padding:12px;z-index:100}.skip:focus{left:12px}.page-hero{background:linear-gradient(115deg,#121214 0%,#303033 100%);color:#fff;padding:120px max(5vw,24px) 90px;min-height:390px}.page-hero h1{font-size:clamp(2.4rem,5vw,5rem);line-height:1.04;max-width:900px;margin:20px 0}.page-hero p{max-width:720px;color:#ddd;font-size:1.15rem;line-height:1.7}.page-hero .btn{margin-top:20px}.inner-section{max-width:1280px;margin:auto}.light-cards article{background:#f3f3f3;color:#121214;border:1px solid #e6e6e6}.light-cards article p{color:#555}.light-cards .symbol{color:#ff6600}.notice{background:#fff4ea;border-left:4px solid #ff6600;padding:17px 20px;color:#303033;margin:24px 0}.coverage-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;margin:35px 0}.map-panel{background:radial-gradient(circle at 50% 40%,#ff8b35,#ff6600 35%,#303033 36%,#121214 100%);min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:18px;color:white;letter-spacing:3px}.map-panel span{font-size:3rem;font-weight:900}.map-panel small{margin-top:15px;letter-spacing:0}.city-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-left:22px}.city-list li::marker{color:#ff6600}.consult{background:#121214;color:#fff;padding:30px;border-radius:18px;margin-top:30px}.consult h3{color:#fff}.demo-dashboard{background:#121214;color:#fff;border-radius:20px;padding:26px;margin:35px 0;box-shadow:0 18px 35px #0002}.demo-top{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #555;padding-bottom:20px}.demo-top span{color:#ff9955;font-size:.8rem}.demo-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:25px 0}.demo-kpis>div{background:#303033;padding:22px;border-radius:12px}.demo-kpis b{display:block;color:#ff6600;font-size:2.4rem}.demo-kpis small{color:#ddd}.demo-progress{display:grid;gap:12px}.demo-progress i{display:block;height:8px;background:#ff6600;border-radius:12px;max-width:100%}.demo-dashboard>small{display:block;margin-top:25px;color:#aaa}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}#quote-form{max-width:900px;margin:25px auto;background:#f6f6f6;padding:28px;border-radius:18px}#quote-form label{display:flex;flex-direction:column;gap:8px;font-weight:600;margin-bottom:15px}#quote-form input,#quote-form select,#quote-form textarea{width:100%;padding:14px;border:1px solid #bdbdbd;border-radius:8px;background:white;color:#121214;font:inherit}#quote-form input:focus,#quote-form textarea:focus,#quote-form select:focus{outline:3px solid #ffb580}#quote-form .consent{flex-direction:row;align-items:flex-start;font-weight:400}#quote-form .consent input{width:20px;margin-top:3px}.form-note{font-size:.85rem;color:#666}#form-feedback{white-space:pre-line}.header nav a:focus-visible,.btn:focus-visible{outline:3px solid #ff6600;outline-offset:3px}footer a{color:inherit}@media(max-width:800px){.page-hero{padding-top:100px}.coverage-layout,.form-grid{grid-template-columns:1fr}.demo-kpis{grid-template-columns:1fr}.city-list{grid-template-columns:1fr}.demo-top{flex-direction:column}}
@media(min-width:1101px){.header nav{gap:clamp(9px,1.3vw,21px);font-size:12px}.header{padding-left:3vw;padding-right:3vw}.nav-cta{padding:12px}}
@media(max-width:1100px){.menu-toggle{display:block;background:transparent;color:white;border:1px solid #777;padding:10px 13px;font-size:22px;cursor:pointer}.header nav{display:none;position:absolute;top:82px;left:0;right:0;background:#121214;padding:25px;flex-direction:column;align-items:stretch;gap:18px}.header nav.open{display:flex}}

.hero-art{background:#121214;overflow:hidden}.hero-art:before{display:none}.hero-art img{width:100%;height:100%;object-fit:cover;display:block;min-height:460px}.art-caption{position:absolute;bottom:16px;left:16px;background:#121214e8;color:#ddd;padding:10px;font-size:10px;letter-spacing:1px;border-left:3px solid #ff6600}.btn.primary{color:#121214!important}input:focus-visible,textarea:focus-visible,select:focus-visible,.menu-toggle:focus-visible{outline:3px solid #ff6600;outline-offset:2px}@media(max-width:950px){.hero-art img{min-height:290px;max-height:430px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Gravvi v3: direção visual clara, uniforme em todas as páginas */
:root{--light:#f7f8fa;--gray:#626873}
.header{background:#fff;color:#171b23;border-bottom:1px solid #e9ebee;box-shadow:0 2px 18px #161a2310}
.header nav a:hover,.header nav a[aria-current="page"]{color:var(--orange)}
.nav-cta,.btn.primary{border-radius:28px;color:#fff!important}
.btn{border-radius:28px}
.btn.secondary{border-color:#cbd1d8;color:#252a33}
.hero{background:#fff;color:#171b23}
.hero p{color:#555f69}
.hero-art{background:#f5f6f7}
.hero-tags{color:#343b45}
.dark,.tech,.contact{background:#f7f8fa!important;color:#1b2028!important}
.dark p,.tech p,.contact p{color:#5b6570!important}
.dark .card,.tech .card,.contact .card{background:#fff!important;color:#1b2028!important;border:1px solid #e7e9ed!important}
.section{background:#fff}
.section:nth-of-type(even){background:#f8f9fa}
input,select,textarea{background:#fff!important;color:#1b2028!important;border:1px solid #dce1e6!important}
footer,.footer{background:#f6f7f8!important;color:#252a31!important;border-top:1px solid #e5e8eb}
.hero-art img{object-fit:contain}
@media(max-width:850px){.header nav{background:#fff;color:#171b23}}

.destinations-section{background:#fff;color:#171b23;padding:76px 0}
.destinations-section .eyebrow{color:#ff6600;font-weight:800;letter-spacing:.15em;font-size:.78rem}
.destinations-section h2{max-width:850px;font-size:clamp(1.8rem,3.5vw,2.7rem);margin:12px 0}
.destinations-section>div>p{max-width:900px;color:#5b6470;line-height:1.7}
.destinations-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:32px}
.destinations-grid article{background:#f8f9fa;border:1px solid #e9ebef;border-radius:18px;padding:24px}
.destinations-grid article span{font-size:2rem}
.destinations-grid article h3{color:#191e26;font-size:1.1rem;margin:14px 0 8px}
.destinations-grid article p{color:#626b76;line-height:1.55;margin:0}
@media(max-width:800px){.destinations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.destinations-grid{grid-template-columns:1fr}}

/* Portfólio comercial — Gravvi v5 */
.portfolio-section,.portfolio-teaser{background:#fff;color:#19202a;padding:72px 0}
.portfolio-section .container,.portfolio-teaser .container{max-width:1200px;margin:0 auto;padding:0 28px}
.portfolio-section h2,.portfolio-teaser h2{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.15;margin:12px 0}
.portfolio-lead,.portfolio-teaser p{color:#5c6571;max-width:820px;line-height:1.65}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}
.portfolio-card{background:#f8f9fb;border:1px solid #e7eaef;border-radius:18px;padding:22px;min-height:165px}
.portfolio-index{color:#ff6600;font-weight:800;font-size:.82rem}
.portfolio-card h3{font-size:1.08rem;color:#1a2029;margin:12px 0 8px}
.portfolio-card p{font-size:.94rem;line-height:1.5;color:#606975;margin:0}
.portfolio-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
@media(max-width:800px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.portfolio-grid{grid-template-columns:1fr}}

.sp-notice{background:#fff5ee;color:#242a31;border-block:1px solid #ffdfca;padding:17px 7%;font-size:.98rem;text-align:center}.sp-notice strong{color:#d45100}

/* Ajustes pontuais: foto Fiorino correta e mapa de referência fornecido */
.gravvi-fleet{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;background:#fff!important}
.gravvi-fleet-copy h2{max-width:480px;color:#1c2430}
.gravvi-fleet-copy p{color:#5f6874}
.gravvi-fiorino{background:#f8f9fb;border:1px solid #e8ebee;border-radius:20px;padding:16px}
.gravvi-fiorino img{display:block;width:100%;max-height:265px;object-fit:contain;background:#fff;border-radius:12px}
.gravvi-fiorino h3{color:#1c2430;margin:12px 0 4px}
.gravvi-fiorino p,.gravvi-fiorino small{color:#626a76}
.gravvi-map-wrap{max-width:100%;background:#fff;border-radius:16px;overflow:hidden}
.gravvi-map-wrap img{display:block;width:100%;height:auto}
.gravvi-map-wrap p{padding:10px 14px;color:#48515d;font-size:.84rem;line-height:1.5}
@media(max-width:760px){.gravvi-fleet{grid-template-columns:1fr}}

/* seo-geografico: diretório estadual, sem alterar os componentes anteriores */
h2[id],h3[id],.portfolio-card,#city-directory li,.geo-letter{scroll-margin-top:96px}
.geo-search{background:#f7f8fa;border:1px solid #e7eaef;border-radius:18px;padding:22px;margin:22px 0}
.geo-search h3{margin:0 0 8px;font-size:clamp(1.35rem,2vw,1.8rem)}
.geo-search label{display:block;font-weight:800;margin-top:14px}
.geo-search input,.geo-search select{width:100%;margin-top:8px;padding:14px;font:inherit;font-size:16px;border:1px solid #dce1e6;border-radius:8px;background:#fff;color:#1b2028}
.geo-search .portfolio-actions{margin-top:16px}
.geo-search button.btn{font:inherit;cursor:pointer}
.geo-note{color:#5c6571;font-size:.92rem;line-height:1.55}
.geo-result{margin-top:16px;background:#fff;border:1px solid #e7eaef;border-left:4px solid #ff6600;border-radius:12px;padding:16px}
.geo-result .btn{margin-top:12px}
#city-match-list{margin:12px 0 0;padding-left:18px;display:grid;gap:8px}
#city-match-list a{color:#d45100;font-weight:800}
.geo-alpha{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 18px}
.geo-alpha a{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e7eaef;border-radius:8px;font-weight:800;background:#fff}
.geo-alpha a:hover,.city-list-alpha a:hover{color:#ff6600;border-color:#ff6600}
.geo-letter{font-size:1.25rem;font-weight:800;color:#ff6600;margin:22px 0 8px}
.city-list-alpha{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 16px;list-style:none;padding:0;margin:0 0 12px}
.city-list-alpha a{display:inline-block;padding:7px 0;color:#252a33}
.is-hidden{display:none !important}
.geo-faq details{background:#f8f9fb;border:1px solid #e7eaef;border-radius:12px;padding:14px 16px;margin:10px 0}
.geo-faq summary{cursor:pointer;font-weight:800}
.geo-faq p{margin:10px 0 0}
.geo-alpha a:focus-visible,.city-list-alpha a:focus-visible,.geo-search button:focus-visible{outline:3px solid #ff6600;outline-offset:2px}
@media(max-width:800px){.city-list-alpha{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.city-list-alpha{grid-template-columns:1fr}.geo-search{padding:16px}}
