/* RONVE / V3 · Refinamento editorial e motion design sem bibliotecas externas */
:root {--ronve-ease:cubic-bezier(.22,1,.36,1);}
html {scroll-padding-top:95px;}
body {background:radial-gradient(ellipse 680px 380px at 80% 5%,#f58b2108,transparent 80%),var(--bg);}
body::after {content:"";inset:0;position:fixed;z-index:70;pointer-events:none;opacity:.115;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.2' filter='url(%23n)'/%3E%3C/svg%3E");}
/* Header: the orange arrow is THE standalone icon, never a duplicate R. */
.brand{gap:9px;transition:opacity .25s ease;}
.brand-arrow{width:27px;height:30px;display:inline-grid;place-items:center;flex:0 0 auto;color:var(--orange);transform:translateY(-1px);transition:transform .45s var(--ronve-ease),filter .45s var(--ronve-ease);}
.brand-arrow svg{width:26px;height:26px;display:block;}
.brand:hover .brand-arrow{transform:translate(3px,-4px);filter:drop-shadow(0 0 7px #f58b2180);}
.brand strong{letter-spacing:-1.6px;}
.header .nav{transition:height .35s var(--ronve-ease);}
.header.is-scrolled .nav{height:67px;}
.header.is-scrolled{border-bottom-color:#514130;background:#111214f5;}
.nav-cta{position:relative;overflow:hidden;}
.nav-cta::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#ff941911,transparent);transform:translateX(-110%);transition:transform .65s var(--ronve-ease);pointer-events:none;}
.nav-cta:hover::before{transform:translateX(110%);}
/* Display typography: accent has subtle shine and an animated underline, no fake counters. */
.hero-content{isolation:isolate;}
.hero h1{position:relative;}
.hero h1 em{position:relative;background:linear-gradient(115deg,#e2e2df 10%,#848489 48%,#e9e5dd 62%,#a6a4a5 76%);background-size:225% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:headline-sheen 14s ease-in-out infinite;}
@keyframes headline-sheen{0%,20%,100%{background-position:100% 50%}53%{background-position:0% 50%}}
.hero-description{position:relative;}
.eyebrow-line{width:28px;box-shadow:0 0 12px #f58b2170;}
/* Hero: scanning coordinate-grid and a third orbital signal, intentionally understated. */
.visual-scanline{position:absolute;inset:7% 2%;pointer-events:none;z-index:1;overflow:hidden;mask-image:linear-gradient(to bottom,transparent,black 28%,black 70%,transparent);}
.visual-scanline::after{content:"";position:absolute;left:-7%;right:-7%;height:1px;top:0;background:linear-gradient(90deg,transparent,#f58b2150 47%,#fff3,transparent);box-shadow:0 0 18px #f58b2130;animation:hero-scan 12s linear infinite;}
@keyframes hero-scan{0%{translate:0 -40px;opacity:0}10%{opacity:.75}80%{opacity:.45}100%{translate:0 610px;opacity:0}}
.signal-ring{position:absolute;inset:8%;border:1px dashed #f58b211a;border-radius:50%;pointer-events:none;animation:slow-orbit 110s linear infinite;}
@keyframes slow-orbit{to{rotate:360deg}}
.satellite-three{width:3px;height:3px;left:36%;top:13%;background:#ffcc8a;box-shadow:0 0 12px 4px #f58b213a;animation:sat-bob 7.5s -1s ease-in-out infinite;}
.visual-pill {border-radius:2px;}
/* Interactive service panels: real clickable contact action, accessible focus. */
.service-card{isolation:isolate;}
.service-card::after{content:"";pointer-events:none;position:absolute;inset:0;border:1px solid transparent;background:linear-gradient(120deg,#ffb25a88,transparent 35%,transparent 65%,#ffb25a35) border-box;mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;transition:opacity .45s;}
.service-card:hover::after,.service-card:focus-within::after{opacity:1;}
.service-card-link{position:absolute;inset:0;z-index:4;cursor:pointer;border-radius:0;}
.service-card-link:focus-visible{outline:2px solid var(--orange);outline-offset:-4px;}
.service-card:focus-within{border-color:#ff9b36!important;}
.service-card:focus-within .card-arrow{transform:translate(4px,-4px);color:var(--orange);}
/* More satisfying reading rhythm: labels draw an animated line when they enter view. */
.section-label{display:flex;align-items:center;gap:15px;}
.section-label::after{content:"";height:1px;flex:0 1 36px;background:linear-gradient(90deg,var(--orange),transparent);transform:scaleX(.28);transform-origin:left;opacity:.4;transition:transform 1.2s var(--ronve-ease),opacity 1.2s;}
.section.is-engaged .section-label::after{transform:scaleX(1);opacity:1;}
.intro-content,.services-top,.method-heading,.focus-inner>div:first-child,.blueprint-lead{position:relative;}
.signature i{display:inline-block;transition:translate .35s;}
.signature:hover i{translate:4px -4px;}
/* Process: amber signal moves through timeline once in view. */
.steps{position:relative;}
.steps::before{content:"";height:1px;position:absolute;top:0;left:0;right:0;z-index:2;background:linear-gradient(90deg,#ff9427,#ffd291 60%,#ff9427);box-shadow:0 0 9px #f58b2140;transform:scaleX(0);transform-origin:left;transition:transform 1.65s .12s var(--ronve-ease);pointer-events:none;}
.steps.is-progress-visible::before{transform:scaleX(1);}
.step-marker{z-index:3;}
.step h3{transition:color .3s;}
.step:hover h3{color:#fbb36d;}
/* Acquisition blueprint: animated nodes illuminate as the line progresses. */
.flow-diagram.is-visible .flow-item:nth-child(1) .flow-icon{animation:node-signal .7s .3s both;}
.flow-diagram.is-visible .flow-item:nth-child(2) .flow-icon{animation:node-signal .7s .8s both;}
.flow-diagram.is-visible .flow-item:nth-child(3) .flow-icon{animation:node-signal .7s 1.35s both;}
@keyframes node-signal{0%{box-shadow:0 0 0 0 #f58b2100;transform:scale(.94)}55%{box-shadow:0 0 0 11px #f58b2122;transform:scale(1.09)}100%{box-shadow:0 0 0 0 #f58b2100;transform:scale(1)}}
.flow-diagram:focus-within,.flow-diagram:hover{border-color:#715034;}
/* Editorial panel: slow scope sweep, crosshair accents. */
.focus-sweep{position:absolute;inset:-12%;background:conic-gradient(from 0deg at 50% 50%,transparent 0deg,transparent 270deg,#f58b210e 320deg,transparent 350deg);opacity:.55;animation:slow-orbit 28s linear infinite;}
.focus-crosshair{position:absolute;color:#ac743b99;font:400 18px/1 monospace;z-index:3;}
.focus-crosshair-a{top:22px;left:24px}.focus-crosshair-b{right:22px;bottom:24px}
/* CTA: subtle cursor-tracking light that makes the orange panel responsive. */
.contact-panel{--contact-x:50%;--contact-y:50%;background:radial-gradient(450px circle at var(--contact-x) var(--contact-y),#ffbf6c75,transparent 80%),var(--orange);}
.contact-topline{position:absolute;top:0;left:0;width:100%;height:3px;transform:scaleX(.0);transform-origin:left;background:#141414;transition:transform 1.1s .2s var(--ronve-ease);}
.contact-panel.is-visible .contact-topline{transform:scaleX(1);}
/* Buttons react to cursor, while preserving the native hover/keyboard actions. */
.button{translate:var(--mag-x,0px) var(--mag-y,0px);will-change:translate;}
.button:focus-visible,.nav-cta:focus-visible,.text-link:focus-visible{outline:2px solid #ffe2bf;outline-offset:5px;}
/* Floating mobile CTA appears only after the hero, hides near contact, never clutters desktop. */
.mobile-quick-cta{display:none;}
.footer-main .brand-arrow{width:24px;height:24px;}
.footer-main .brand-arrow svg{width:23px;height:23px;}
@media(max-width:1050px){.hero h1{font-size:clamp(36px,4.2vw,52px);} }
@media(max-width:760px){
  .header.is-scrolled .nav{height:61px;}
  .header.is-scrolled .nav-links{top:61px;}
  .brand-arrow{width:24px;height:25px;}
  .brand-arrow svg{width:23px;height:23px;}
  .brand strong{font-size:22px;letter-spacing:-1.2px;}
  .visual-scanline,.signal-ring{animation:none;}
  .mobile-quick-cta{display:flex;align-items:center;gap:10px;justify-content:center;position:fixed;bottom:max(18px,env(safe-area-inset-bottom));left:50%;width:max-content;max-width:calc(100% - 48px);z-index:79;border:1px solid #ffa74863;background:#ee8a24;color:#171819;box-shadow:0 11px 33px #000b,0 0 0 1px #f58b2120;min-height:48px;border-radius:24px;padding:11px 20px;font:800 12px/1.2 'Manrope',sans-serif;letter-spacing:.005em;transform:translate(-50%,110px);opacity:0;pointer-events:none;transition:transform .55s var(--ronve-ease),opacity .3s ease;}
  .mobile-quick-cta.is-visible{transform:translate(-50%,0);opacity:1;pointer-events:auto;}
  .mobile-quick-cta>span:last-child{font-size:18px;}
  .quick-cta-pulse{height:5px;width:5px;border-radius:50%;background:#141414;box-shadow:0 0 0 5px #14141412;}
  .nav-links.open a{animation:menu-arrive .45s var(--ronve-ease) both;}
  .nav-links.open a:nth-child(2){animation-delay:.07s;}
  .nav-links.open a:nth-child(3){animation-delay:.14s;}
  .nav-links.open a:nth-child(4){animation-delay:.21s;}
  @keyframes menu-arrive{from{opacity:0;translate:0 -8px;}to{opacity:1;translate:0 0;}}
  .focus-sweep{animation-duration:45s;}
  .steps::before{display:none;}
  .step{transition:background .35s;}
  .contact-panel{--contact-x:50%;--contact-y:50%;}
}
@media(prefers-reduced-motion:reduce){
 .hero h1 em,.visual-scanline::after,.signal-ring,.focus-sweep,.flow-diagram.is-visible .flow-item .flow-icon,.nav-links.open a{animation:none!important;}
 .steps::before,.contact-topline{transform:scaleX(1)!important;transition:none!important;}
 .section-label::after{transform:scaleX(1)!important;transition:none!important;opacity:1!important;}
 .button{translate:0 0!important;will-change:auto;}
 .mobile-quick-cta{transition:none!important;}
}
