*{box-sizing:border-box;margin:0}
html{scroll-behavior:auto}
body{background:var(--bg);color:var(--fg);font-family:var(--font-body);line-height:1.5;-webkit-font-smoothing:antialiased}
section{padding:clamp(4rem,10vw,10rem) clamp(1.25rem,6vw,8rem)}
h1,h2,h3{font-family:var(--font-display);letter-spacing:-.03em;line-height:1.02}
h1{font-size:clamp(2.75rem,9vw,9rem)}
h2{font-size:clamp(2rem,5vw,5rem);margin-bottom:2rem}
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;gap:1.5rem}
.hero p{max-width:40ch;opacity:.7;font-size:clamp(1rem,1.6vw,1.5rem)}
.btn{align-self:flex-start;display:inline-block;padding:.9em 1.8em;border:1px solid var(--accent);color:var(--fg);text-decoration:none;border-radius:999px;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.btn:hover,.btn:focus-visible{background:var(--accent);color:var(--bg)}
.grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.grid article{background:var(--surface);padding:2rem;border:1px solid color-mix(in srgb,var(--fg) 15%,transparent);border-radius:1.25rem}
.grid article img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:.9rem;margin-bottom:1.25rem}
.text p{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,4rem);max-width:24ch;line-height:1.1}
.cta .btn{align-self:center}
.cta{text-align:center;display:flex;flex-direction:column;align-items:center;gap:2rem}
.scrollvideo{padding:0;height:calc(var(--h,400) * 1vh)}
.sv-stick{position:sticky;top:0;height:100svh;overflow:hidden}
.sv-stick video{width:100%;height:100%;object-fit:cover}
.sv-cap{position:absolute;left:clamp(1.25rem,6vw,8rem);bottom:12vh;font-family:var(--font-display);font-size:clamp(1.5rem,4vw,4rem);opacity:0;transform:translateY(2rem);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.sv-stick::after{content:'';position:absolute;inset:auto 0 0 0;height:55%;background:linear-gradient(to top,color-mix(in srgb,var(--bg) 88%,transparent),transparent);pointer-events:none}
.sv-cap{z-index:1;text-shadow:0 2px 24px rgba(0,0,0,.6)}
.sv-cap.on{opacity:1;transform:none}
[data-reveal]{opacity:0;transform:translateY(1.5rem);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
[data-reveal].in{opacity:1;transform:none}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.w>span{display:inline-block;transform:translateY(110%);transition:transform var(--dur) var(--ease)}
.in .w>span,.w.in>span{transform:none}
@media (max-width:768px){.grid article{padding:1.25rem}}
@media (min-width:1920px){section{padding-inline:12vw}}
@media (min-width:2560px){body{font-size:1.25rem}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}[data-reveal],.w>span{opacity:1;transform:none}.sv-cap{transform:none}}
/* hero com video, split, timeline, contato, nav */
.hero.has-video{position:relative;overflow:hidden}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero.has-video::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,color-mix(in srgb,var(--bg) 88%,transparent) 15%,color-mix(in srgb,var(--bg) 35%,transparent))}
.hero.has-video>*:not(video){position:relative;z-index:2}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.split figure img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:1.25rem;filter:grayscale(.15)}
.split p{max-width:60ch;margin-bottom:1.1rem;opacity:.78;font-size:clamp(1rem,1.3vw,1.2rem)}
.timeline ol{list-style:none;padding:0;border-left:1px solid var(--accent);margin-left:.5rem}
.timeline li{display:grid;grid-template-columns:7rem 1fr;gap:1.5rem;padding:0 0 2.5rem 2rem;position:relative}
.timeline li::before{content:'';position:absolute;left:-.3rem;top:.6rem;width:.6rem;height:.6rem;border-radius:50%;background:var(--accent)}
.timeline .yr{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.5rem);color:var(--accent)}
.timeline h3{font-size:1.4rem;margin-bottom:.4rem}.timeline p{opacity:.72;max-width:60ch}
.contact{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.75rem;border-top:1px solid color-mix(in srgb,var(--fg) 14%,transparent)}
.ct-logo{max-width:14rem;width:60%;border-radius:.5rem}
.contact>p:first-of-type,.contact p[data-reveal]{max-width:52ch;opacity:.8;font-size:clamp(1.05rem,1.6vw,1.4rem)}
.ct-tag{letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;opacity:.6}.ct-legal{font-size:.8rem;opacity:.45}
.topnav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(1.25rem,6vw,8rem);background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 85%,transparent),transparent);backdrop-filter:blur(6px)}
.topnav a{color:var(--fg);text-decoration:none;font-size:.9rem;margin-left:1.5rem;opacity:.8}.topnav a:hover{color:var(--accent);opacity:1}
.topnav .brand{margin:0;font-family:var(--font-display);letter-spacing:.14em;color:var(--accent);opacity:1}
@media (max-width:768px){.split{grid-template-columns:1fr}.timeline li{grid-template-columns:1fr;gap:.25rem}.topnav div a:not(:last-child){display:none}}
.hero h1{font-size:clamp(2.5rem,6.5vw,6.5rem);max-width:12ch}
.grid:has(article:nth-child(4):last-child){grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr))}
.contact .btn{align-self:center}

/* ===== blocos de landing (steps, stats, faq, compare, checklist, form, demo, footer) ===== */
:root{--line:color-mix(in srgb,var(--fg) 14%,transparent)}
.kicker{display:block;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem}
.tone-alt{background:var(--surface)}
.tone-wine{background:var(--accent);color:#fff}
.tone-wine h1,.tone-wine h2,.tone-wine h3{color:#fff}
.tone-wine .btn{border-color:#fff;color:#fff}.tone-wine .btn:hover{background:#fff;color:var(--accent)}
body.btn-solid .btn{background:var(--accent);color:#fff}
body.btn-solid .btn:hover,body.btn-solid .btn:focus-visible{background:transparent;color:var(--accent)}
body.btn-solid .tone-wine .btn{background:#fff;color:var(--accent);border-color:#fff}
body.btn-solid .tone-wine .btn:hover{background:transparent;color:#fff}
.tone-wine .grid article{background:color-mix(in srgb,#fff 8%,transparent);border-color:color-mix(in srgb,#fff 25%,transparent)}
.tone-wine p{opacity:.9}
.demo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.demo p{max-width:42ch;opacity:.75;font-size:1.15rem}
.searchbox{background:#fff;border:1px solid var(--line);border-radius:1rem;padding:1.5rem;box-shadow:0 20px 50px color-mix(in srgb,var(--accent) 12%,transparent)}
.sq{border:1px solid var(--accent);border-radius:.6rem;padding:.85rem 1rem;min-height:3.1rem;font-size:1.05rem}
.caret{display:inline-block;width:1px;height:1.1em;background:var(--accent);margin-left:2px;vertical-align:middle;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.results{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.75rem}
.res{opacity:0;transform:translateY(.75rem);transition:opacity .5s var(--ease),transform .5s var(--ease);padding:1rem;border-left:3px solid var(--accent-2);background:var(--surface);border-radius:.4rem}
.res.show{opacity:1;transform:none}.res b{display:block;color:var(--accent);font-size:.85rem;margin-bottom:.3rem}.res p{font-size:.95rem;max-width:none;opacity:.8}
.steps ol{list-style:none;padding:0;counter-reset:s;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.steps li{counter-increment:s;border-top:2px solid var(--accent);padding-top:1.25rem}
.steps li::before{content:counter(s);display:block;font-family:var(--font-display);font-size:3rem;color:var(--accent);line-height:1;margin-bottom:.75rem}
.steps h3{font-size:1.35rem;margin-bottom:.5rem}.steps p{opacity:.75}
.note{margin-top:2rem;opacity:.65;font-size:.95rem;max-width:60ch}
.stats .row{display:flex;flex-wrap:wrap;gap:clamp(2rem,6vw,6rem);justify-content:center}
.stats strong{display:block;padding-bottom:.1em;font-family:var(--font-display);font-size:clamp(2.5rem,6vw,5rem);line-height:1}
.stats .row span{display:block;opacity:.85;font-size:1rem;margin-top:.6rem}.stats .row>div{text-align:center}
.stats h2{text-align:center;max-width:24ch;margin-inline:auto}
.faq .faq-list{max-width:52rem}
.faq details{border-bottom:1px solid var(--line);padding:1.1rem 0}
.faq summary{cursor:pointer;font-family:var(--font-display);font-size:1.25rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'+';color:var(--accent);font-size:1.5rem;line-height:1}
.faq details[open] summary::after{content:'\2212'}.faq details p{margin-top:.75rem;opacity:.75;max-width:60ch}
.compare .sub{opacity:.7;margin:-1rem 0 2rem;max-width:60ch}
.compare .cols{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
.compare .col{padding:2rem;border-radius:1.25rem;border:1px solid var(--line)}
.compare .before{background:var(--surface);opacity:.9}.compare .after{background:var(--accent);color:#fff;border-color:var(--accent)}
.compare .after h3{color:#fff}.compare h3{font-size:1.3rem;margin-bottom:1rem}
.compare ul{list-style:none;padding:0;display:grid;gap:.75rem}.compare li{padding-left:1.25rem;position:relative}
.compare li::before{content:'';position:absolute;left:0;top:.65em;width:.5rem;height:1px;background:currentColor}
.checklist{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.checklist ul{list-style:none;padding:0;display:grid;gap:1rem}
.checklist li{padding:1rem 0 1rem 2rem;border-bottom:1px solid var(--line);position:relative}
.checklist li::before{content:'';position:absolute;left:0;top:1.35rem;width:.9rem;height:.5rem;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.formsec{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.formsec .intro p{opacity:.8;max-width:40ch;font-size:1.15rem}
.lead{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.lead>div:nth-last-of-type(1),.lead .btn,.lead .form-msg{grid-column:1/-1}
.lead label{display:block;font-size:.85rem;margin-bottom:.35rem;opacity:.85}
.lead input,.lead select,.lead textarea{width:100%;font:inherit;color:#2b2a2a;background:#fff;border:1px solid color-mix(in srgb,#2b2a2a 25%,transparent);border-radius:.5rem;padding:.8rem 1rem}
.lead input:focus,.lead select:focus,.lead textarea:focus{outline:2px solid var(--accent-2);outline-offset:1px;border-color:var(--accent)}
.tone-wine .lead .btn{justify-self:start}
.form-msg{min-height:1.2em;font-size:.95rem}.form-msg.error{color:#ffd9d9}
.sitefooter{display:flex;flex-wrap:wrap;gap:2rem 4rem;justify-content:space-between;padding:3rem clamp(1.25rem,6vw,8rem);background:var(--fg);color:#fff;font-size:.95rem}
.sitefooter .brand{font-family:var(--font-display);font-size:1.5rem}.sitefooter .brand .a,.topnav .brand .a{color:var(--accent-2)}
.sitefooter nav{display:flex;gap:1.5rem;flex-wrap:wrap}.sitefooter a{color:#fff;opacity:.8;text-decoration:none}.sitefooter a:hover{opacity:1;color:var(--accent-2)}
.sitefooter .legal{flex-basis:100%;opacity:.5;font-size:.8rem}
.topnav .navcta{border:1px solid var(--accent);padding:.5em 1.1em;border-radius:999px;color:var(--accent);opacity:1}
.topnav .navcta:hover{background:var(--accent);color:#fff}
body.light .topnav{background:color-mix(in srgb,var(--bg) 92%,transparent);border-bottom:1px solid var(--line)}
body.light .topnav a{color:var(--fg)}body.light .topnav .brand{color:var(--accent)}
@media (max-width:768px){.demo,.checklist,.formsec,.lead{grid-template-columns:1fr}.topnav div a:not(:last-child){display:none}.topnav div a.navcta{display:inline-block}}
.hero.sm h1{font-size:clamp(2.25rem,5vw,4.75rem);max-width:20ch}.hero.sm p{max-width:52ch}
.tone-wine .checklist li{border-color:color-mix(in srgb,#fff 25%,transparent)}
.tone-wine .checklist li::before{border-color:var(--accent-2)}
.stats h2{font-size:clamp(1.5rem,3vw,2.5rem);margin-bottom:3rem}
.checklist li::before{content:'\2713';width:auto;height:auto;border:0!important;transform:none;top:1rem;font-size:1.1rem;color:var(--accent)}
.tone-wine .checklist li::before{color:var(--accent-2)}
.formsec h2{font-size:clamp(1.75rem,3.2vw,3.25rem)}
