/* Immersive visual treatment for AFWeb's existing services. */
#servicos.afweb-metrics { background:linear-gradient(145deg,#090908,#11100d) !important; }
.afweb-metrics-head { max-width:700px; margin:0 auto 46px; text-align:center; }
.afweb-metrics-head .eyebrow { color:var(--blue); text-transform:uppercase; letter-spacing:.16em; font-size:.76rem; margin-bottom:14px; }
.afweb-metrics-head h2 { margin:0; font-size:clamp(2rem,4vw,4rem); letter-spacing:-.05em; line-height:1.02; }
.afweb-metrics-head p { color:var(--mid); line-height:1.5; margin:18px auto 0; max-width:55ch; }
.afweb-metrics-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; max-width:1200px; margin:0 auto; }
.afweb-metric { min-height:230px; padding:28px; border:1px solid var(--hair); border-radius:24px; background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008)); }
.afweb-metric { opacity:0; transform:translateY(28px); animation:afwebMetricIn 1.35s cubic-bezier(.23,1,.32,1) forwards; }
.afweb-metric:nth-child(2){animation-delay:.18s}.afweb-metric:nth-child(3){animation-delay:.36s}.afweb-metric:nth-child(4){animation-delay:.54s}
@keyframes afwebMetricIn { to { opacity:1; transform:translateY(0); } }
.afweb-metric strong { display:block; color:var(--blue); font-size:clamp(2.8rem,5vw,4.5rem); letter-spacing:-.07em; line-height:.9; }
.afweb-metric h3 { margin:18px 0 8px; font-size:1.05rem; letter-spacing:-.025em; }
.afweb-metric p { margin:0; color:var(--mid); font-size:.92rem; line-height:1.45; }
#sites.afweb-immersive {
  position:relative; overflow:hidden; isolation:isolate; min-height:850px;
  background:radial-gradient(ellipse 74% 42% at 50% 61%,rgba(227,179,65,.16),transparent 64%),linear-gradient(#080807,#000 66%,#070706) !important;
}
#sites.afweb-immersive .afweb-services-head { max-width:760px; margin:0 auto; text-align:center; position:relative; z-index:2; }
#sites.afweb-immersive .afweb-services-head .eyebrow { color:var(--blue); text-transform:uppercase; letter-spacing:.16em; font-size:.76rem; margin-bottom:14px; }
#sites.afweb-immersive .afweb-services-head h2 { margin:0; font-size:clamp(2.35rem,5.6vw,5.4rem); line-height:.96; letter-spacing:-.06em; }
#sites.afweb-immersive .afweb-services-head p { color:var(--mid); font-size:clamp(1rem,1.7vw,1.22rem); line-height:1.5; margin:20px auto 0; max-width:52ch; }
.afweb-ring-stage { position:relative; height:570px; margin:8px auto -48px; perspective:1500px; cursor:grab; touch-action:pan-y; user-select:none; }
.afweb-ring-stage.is-dragging { cursor:grabbing; }
.afweb-ring-stage::before { content:''; position:absolute; left:50%; bottom:65px; width:min(1140px,110vw); height:190px; transform:translateX(-50%); background:radial-gradient(ellipse,rgba(227,179,65,.2),rgba(227,179,65,.045) 40%,transparent 72%); filter:blur(18px); }
.afweb-ring-stage::after { content:''; position:absolute; z-index:-1; left:-12%; right:-12%; bottom:-105px; height:255px; background:repeating-radial-gradient(ellipse at 50% 0,rgba(227,179,65,.16) 0 1px,transparent 2px 23px),linear-gradient(180deg,rgba(227,179,65,.08),#030303 70%); mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent); animation:afwebPool 7s ease-in-out infinite alternate; }
@keyframes afwebPool { from { transform:skewX(-1deg) scaleY(.94); } to { transform:skewX(1.5deg) scaleY(1.06); } }
.afweb-ring { position:absolute; inset:0; transform-style:preserve-3d; }
.afweb-ring-card { position:absolute; top:50%; left:50%; width:min(332px,74vw); min-height:384px; overflow:visible; border:1px solid rgba(227,179,65,.4); border-radius:25px; background:#111; box-shadow:0 24px 68px rgba(0,0,0,.76),0 0 38px rgba(227,179,65,.12),inset 0 1px rgba(255,255,255,.11); transform-style:preserve-3d; transition:border-color .25s,filter .25s; }
.afweb-ring-card:hover { border-color:var(--blue); filter:brightness(1.12); }
.afweb-ring-card::after { content:''; position:absolute; left:0; right:0; top:calc(100% + 12px); height:172px; border-radius:25px; background:var(--image) center/cover; transform:scaleY(-1); opacity:.25; filter:blur(2px) saturate(.7); mask-image:linear-gradient(to bottom,rgba(0,0,0,.72),transparent); }
.afweb-ring-card img { display:block; width:100%; height:208px; object-fit:cover; border-radius:24px 24px 0 0; }
.afweb-ring-card .number { display:block; padding:20px 22px 8px; color:var(--blue); letter-spacing:.16em; font-size:.72rem; }
.afweb-ring-card h3 { margin:0; padding:0 22px; font-size:1.68rem; letter-spacing:-.045em; }
.afweb-ring-card p { margin:0; padding:10px 22px 24px; color:var(--mid); line-height:1.48; }
.afweb-ring-hint { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:var(--mid); font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; white-space:nowrap; }
@media(max-width:860px){ #sites.afweb-immersive{min-height:710px}.afweb-ring-stage{height:490px;margin-bottom:-60px;perspective:900px}.afweb-ring-card{min-height:330px}.afweb-ring-card img{height:170px}.afweb-ring-card h3{font-size:1.42rem}.afweb-ring-card p{font-size:.88rem}.afweb-ring-hint{bottom:4px} }
@media(max-width:860px){.afweb-metrics-grid{grid-template-columns:repeat(2,1fr)}.afweb-metric{min-height:190px;padding:22px}}
@media(prefers-reduced-motion:reduce){.afweb-ring-stage::after{animation:none}}

/* User-directed composition: remove the promo ribbon, hero artwork, project grid, old sites grid, and contact form block. */
body > x-dc > div > a[href="#servicos"] + div, body > x-dc > div > div:first-child:not(.neo-hero-pad), .neo-hero-frame, #trabalhos, #sites, #contato { display:none !important; }

/* Cinematic, drag-driven site carousel inside "Empresas que já crescem". */
#parceiros.afweb-immersive { position:relative; overflow:hidden; background:#090909 !important; padding-bottom:84px !important; }
#parceiros.afweb-immersive .afweb-services-head { max-width:1200px; padding:0 40px; margin:0 auto 30px; text-align:left; position:relative; z-index:2; }
#parceiros.afweb-immersive .afweb-services-head h2 { font-size:clamp(2rem,4vw,3.8rem); }
#parceiros.afweb-immersive .afweb-ring-stage { height:440px; margin:0 30px; overflow:hidden; perspective:1250px; border:1px solid #242424; border-radius:0 0 18px 18px; cursor:grab; }
#parceiros.afweb-immersive .afweb-ring-stage { position:relative; z-index:2; background:rgba(0,0,0,.58); }
#parceiros.afweb-immersive .afweb-ring-stage::before { display:none; }
#parceiros.afweb-immersive .afweb-ring-stage::after { content:''; display:block; position:absolute; z-index:2; top:0; bottom:0; left:calc(50% - 1px); width:2px; height:auto; background:linear-gradient(transparent,#e3b341 18%,#f4d278 50%,#e3b341 82%,transparent); box-shadow:0 0 26px rgba(227,179,65,.8); animation:none; transform:none; }
#parceiros.afweb-immersive .afweb-ring { position:absolute; inset:0; transform-style:preserve-3d; perspective:inherit; will-change:transform; }
#parceiros.afweb-immersive .afweb-ring-card { position:absolute; top:50%; left:50%; width:290px; min-height:315px; overflow:hidden; border-radius:17px; background:#151515; box-shadow:0 18px 48px rgba(0,0,0,.64),0 0 24px rgba(227,179,65,.06); transform-style:preserve-3d; will-change:transform,opacity,filter; transition:border-color .25s ease,box-shadow .25s ease; }
#parceiros.afweb-immersive .afweb-ring-card.is-front,
#parceiros.afweb-immersive .afweb-ring-card.is-hover-front { border-color:var(--blue); box-shadow:0 24px 62px rgba(0,0,0,.78),0 0 30px rgba(227,179,65,.2); }
#parceiros.afweb-immersive .afweb-ring-card::after { display:none; }
#parceiros.afweb-immersive .afweb-ring-card img { height:190px; border-radius:16px 16px 0 0; }
#parceiros.afweb-immersive .afweb-ring-card .number { padding:14px 16px 4px; }
#parceiros.afweb-immersive .afweb-ring-card h3 { padding:0 16px; font-size:1.2rem; }
#parceiros.afweb-immersive .afweb-ring-card p { padding:6px 16px 14px; font-size:.82rem; }
#parceiros.afweb-immersive .afweb-ring-card { color:inherit; text-decoration:none; }
#parceiros.afweb-immersive .afweb-ring-card:active { cursor:grabbing; }
#parceiros.afweb-immersive .afweb-ring-card .visit { display:inline-flex; align-items:center; justify-content:center; min-height:42px; margin:0 16px 16px; padding:0 14px; border-radius:999px; background:var(--blue); color:#111; font-size:.82rem; font-weight:800; text-decoration:none; touch-action:manipulation; position:relative; z-index:5; }
#parceiros.afweb-immersive .afweb-ring-card .visit:hover { opacity:1; filter:brightness(1.12); text-decoration:none; }
#parceiros.afweb-immersive .afweb-ring-hint { z-index:3; bottom:14px; }
@media(max-width:860px){#parceiros.afweb-immersive .afweb-services-head{padding:0 20px}#parceiros.afweb-immersive .afweb-ring-stage{height:360px;margin:0 12px;perspective:900px}#parceiros.afweb-immersive .afweb-ring-card{width:225px;min-height:270px}#parceiros.afweb-immersive .afweb-ring-card img{height:145px}#parceiros.afweb-immersive .afweb-ring-card .number{padding-top:10px}#parceiros.afweb-immersive .afweb-ring-card p{padding-bottom:9px}}
@media(prefers-reduced-motion:reduce){#parceiros.afweb-immersive .afweb-ring-card{transition:none}}

/* React Bits SpringCheck treatment for the four delivery stages. */
.neo-step .neo-step-led { display:none; }
.spring-check { --sc-ink:var(--ink); --sc-fill:#22c55e; --sc-check:#07140b; display:inline-flex; align-items:center; gap:10px; min-height:36px; margin:0 0 2px; padding:0; border:0; background:none; color:var(--sc-ink); font:500 13px var(--font); text-align:left; cursor:pointer; user-select:none; }
.spring-check__press { width:26px; height:26px; flex:none; border-radius:8px; transition:transform 160ms cubic-bezier(.23,1,.32,1); }.spring-check[data-pressed] .spring-check__press{transform:scale(.95)}
.spring-check__box{position:relative;display:grid;place-items:center;width:100%;height:100%;border-radius:inherit;overflow:hidden}.spring-check__ring{position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 2px #22c55e;opacity:.55}.spring-check__fill{position:absolute;inset:0;border-radius:inherit;background:var(--sc-fill);transform:scale(0);transition:transform .55s cubic-bezier(.23,1,.32,1);box-shadow:0 0 18px rgba(34,197,94,.42)}
.spring-check__tick{position:relative;width:68%;height:68%;fill:none;stroke:var(--sc-check);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .42s .18s ease}.spring-check__label{position:relative;display:inline-block}.spring-check__word{display:inline-block;transition:opacity .45s ease}.spring-check__rule{position:absolute;left:0;right:0;top:46%;height:1.5px;border-radius:2px;background:#22c55e;transform:scaleX(0);transform-origin:left center;transition:transform .55s .08s cubic-bezier(.23,1,.32,1)}
.spring-check.is-complete .spring-check__fill{transform:scale(1)}.spring-check.is-complete .spring-check__tick{stroke-dashoffset:0}.spring-check.is-complete .spring-check__word{opacity:.48}.spring-check.is-complete .spring-check__rule{transform:scaleX(.84)}
.neo-step.is-step-complete { border-color:rgba(34,197,94,.38) !important; box-shadow:0 18px 60px rgba(34,197,94,.06); }
.spring-check:focus-visible .spring-check__press{outline:2px solid #22c55e;outline-offset:3px}@media(prefers-reduced-motion:reduce){.spring-check__press,.spring-check__fill,.spring-check__tick,.spring-check__word,.spring-check__rule,.afweb-metric{transition:none;animation:none;opacity:1;transform:none}}

/* React Bits PillNav treatment adapted for the existing initial menu. */
.afweb-pill-nav { height:58px !important; overflow:visible; }
.afweb-pill-logo { width:42px; height:42px; margin-right:auto !important; border-radius:999px; background:var(--canvas); border:1px solid var(--hair); display:flex !important; align-items:center !important; justify-content:center !important; overflow:hidden; transition:transform .2s cubic-bezier(.23,1,.32,1), background .2s ease, border-color .2s ease; animation:afwebPillLogoIn .6s cubic-bezier(.23,1,.32,1) both; }
.afweb-pill-logo:hover { transform:rotate(10deg) scale(1.04); }
.afweb-pill-logo img { max-width:84%; height:auto !important; max-height:32px; }
.afweb-pill-list { position:relative; display:flex; align-items:center; gap:3px !important; height:42px; padding:3px; border-radius:999px; background:var(--canvas); border:1px solid var(--hair); overflow:hidden; animation:afwebPillListIn .72s cubic-bezier(.23,1,.32,1) both; transition:background .25s ease,border-color .25s ease,box-shadow .25s ease; }
.afweb-pill { position:relative; display:inline-flex !important; align-items:center; justify-content:center; height:36px; padding:0 16px; border-radius:999px; overflow:hidden; color:var(--ink) !important; background:var(--paper); font-size:12px !important; font-weight:700; text-transform:uppercase; line-height:1; transition:background .25s ease,color .25s ease; }
.afweb-pill .hover-circle { position:absolute; left:50%; bottom:-44px; width:92px; height:92px; border-radius:999px; background:#22c55e; transform:translateX(-50%) scale(0); transform-origin:center bottom; transition:transform .45s cubic-bezier(.23,1,.32,1); z-index:1; pointer-events:none; }
.afweb-pill .label-stack { position:relative; z-index:2; display:inline-block; line-height:1; overflow:hidden; }
.afweb-pill .pill-label, .afweb-pill .pill-label-hover { display:block; transition:transform .34s cubic-bezier(.23,1,.32,1), opacity .24s ease; }
.afweb-pill .pill-label { color:var(--ink); transform:translateY(0); }
.afweb-pill .pill-label-hover { position:absolute; inset:0 auto auto 0; color:#07140b; transform:translateY(120%); opacity:0; white-space:nowrap; }
.afweb-pill:hover { opacity:1; }
.afweb-pill:hover .hover-circle { transform:translateX(-50%) scale(1.1); }
.afweb-pill:hover .pill-label { transform:translateY(-120%); }
.afweb-pill:hover .pill-label-hover { transform:translateY(0); opacity:1; }
.afweb-pill-nav.is-scrolled .afweb-pill-list { box-shadow:0 14px 44px rgba(0,0,0,.28); }
@keyframes afwebPillLogoIn { from { transform:scale(.92); opacity:0; } to { transform:scale(1); opacity:1; } }
@keyframes afwebPillListIn { from { clip-path:inset(0 100% 0 0 round 999px); opacity:.4; } to { clip-path:inset(0 0 0 0 round 999px); opacity:1; } }
@media(max-width:860px){.afweb-pill-logo{width:38px;height:38px}.afweb-pill-list{display:none}}

/* Staggered text reveal adapted from the React Bits starter text treatment. */
.is-staggered-text { overflow:visible; }
.staggered-word { display:inline-block; opacity:0; transform:translateY(34px) scale(.96); filter:blur(8px); animation:afwebStaggerWord .95s cubic-bezier(.23,1,.32,1) forwards; will-change:transform,opacity,filter; }
@keyframes afwebStaggerWord { to { opacity:1; transform:translateY(0) scale(1); filter:blur(0); } }
@media(prefers-reduced-motion:reduce){.staggered-word{opacity:1;transform:none;animation:none}}

/* RisingLines: Three.js horizon effect in the last visible container. */
.rising-lines-host, .neo-footer-pad { position:relative; overflow:hidden; isolation:isolate; min-height:260px; background:#070604 !important; }
.rising-lines-host .neo-footer-flex { position:relative; z-index:2; }
.rising-lines-host .afweb-services-head, .rising-lines-host .afweb-ring-stage { position:relative; z-index:2; }
.rising-lines { position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.94; }
.rising-lines canvas { display:block; width:100%; height:100%; }
.rising-lines-fallback { background:radial-gradient(ellipse at 50% 100%,rgba(235,198,107,.86),rgba(227,179,65,.25) 22%,transparent 58%),repeating-linear-gradient(90deg,transparent 0 42px,rgba(235,198,107,.34) 43px,transparent 45px); animation:afwebRisingFallback 4.5s linear infinite; }
.rising-lines-host::before { content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background:radial-gradient(ellipse at 50% 100%,rgba(235,198,107,.9),rgba(227,179,65,.34) 18%,transparent 50%),repeating-linear-gradient(90deg,transparent 0 28px,rgba(235,198,107,.3) 29px,transparent 31px),repeating-linear-gradient(90deg,transparent 0 72px,rgba(201,154,59,.28) 73px,transparent 75px); opacity:.95; animation:afwebFooterRising 3.2s linear infinite; }
.rising-lines-host::after { content:''; position:absolute; left:0; right:0; bottom:0; height:74%; z-index:1; pointer-events:none; background:linear-gradient(to top,rgba(0,0,0,.36),rgba(0,0,0,.04),transparent),radial-gradient(circle at 50% 42%,transparent 0 32%,rgba(0,0,0,.08) 54%,rgba(0,0,0,.62) 100%); }
@keyframes afwebRisingFallback { from { background-position:0 0,0 0; } to { background-position:0 -220px,180px 0; } }
@keyframes afwebFooterRising { from { background-position:0 0,0 0,0 0; } to { background-position:0 -240px,180px 0,-120px 0; } }
@media(prefers-reduced-motion:reduce){.rising-lines{opacity:.58}}
.neo-footer-pad .neo-footer-flex { position:relative; z-index:4; }
.afweb-footer-lines { position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; background:radial-gradient(ellipse at 50% 100%,rgba(235,198,107,.72),rgba(227,179,65,.18) 12%,transparent 42%); opacity:1; }
.afweb-footer-lines::before { content:''; position:absolute; left:0; right:0; bottom:-8px; height:100%; background:
  radial-gradient(circle at 8% 88%,rgba(235,198,107,.55) 0 1px,transparent 3px),
  radial-gradient(circle at 14% 74%,rgba(235,198,107,.42) 0 1px,transparent 3px),
  radial-gradient(circle at 22% 92%,#ebc66b 0 2px,transparent 5px),
  radial-gradient(circle at 31% 80%,rgba(227,179,65,.75) 0 1px,transparent 4px),
  radial-gradient(circle at 42% 94%,#ebc66b 0 4px,transparent 9px),
  radial-gradient(circle at 54% 82%,rgba(235,198,107,.72) 0 2px,transparent 5px),
  radial-gradient(circle at 67% 91%,rgba(227,179,65,.9) 0 2px,transparent 6px),
  radial-gradient(circle at 78% 76%,rgba(235,198,107,.48) 0 1px,transparent 4px),
  radial-gradient(circle at 91% 86%,rgba(235,198,107,.58) 0 1px,transparent 4px),
  linear-gradient(90deg,transparent,#8f6e15 18%,#ebc66b 50%,#c99a3b 78%,transparent);
  background-repeat:no-repeat;
  background-size:100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 2px;
  background-position:0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 100%;
  filter:drop-shadow(0 0 11px rgba(235,198,107,.78));
  animation:afwebFooterDroplets 5.8s linear infinite;
}
.afweb-footer-lines::after { content:''; position:absolute; left:0; right:0; bottom:0; height:5px; background:linear-gradient(90deg,transparent,#8f6e15 16%,#ebc66b 48%,#e3b341 76%,transparent); box-shadow:0 -8px 28px rgba(235,198,107,.85),0 -24px 72px rgba(227,179,65,.36); animation:afwebFooterHorizon 2.4s ease-in-out infinite alternate; }
.afweb-footer-lines .laser { position:absolute; width:1px; height:90px; background:linear-gradient(to top,transparent,rgba(235,198,107,.92),transparent); box-shadow:0 0 13px rgba(235,198,107,.85); animation:afwebFooterLineDrop 4.8s linear infinite; }
.afweb-footer-lines .laser-a { left:27%; bottom:-12px; animation-delay:-1.2s; }
.afweb-footer-lines .laser-b { left:73%; bottom:-12px; opacity:.72; animation-duration:6.2s; animation-delay:-3.1s; }
.afweb-footer-lines .spark { position:absolute; bottom:6px; width:4px; height:4px; border-radius:999px; background:#ebc66b; box-shadow:0 0 18px #ebc66b,0 0 32px rgba(227,179,65,.75); animation:afwebFooterSpark 4.2s linear infinite; }
.afweb-footer-lines .spark::before { content:''; position:absolute; left:50%; bottom:-42px; width:1px; height:48px; transform:translateX(-50%); background:linear-gradient(to bottom,rgba(235,198,107,.85),transparent); }
.afweb-footer-lines .spark-a { left:18%; animation-delay:-.4s; }
.afweb-footer-lines .spark-b { left:38%; animation-delay:-1.7s; animation-duration:5.1s; }
.afweb-footer-lines .spark-c { left:62%; animation-delay:-2.5s; animation-duration:4.4s; }
.afweb-footer-lines .spark-d { left:81%; animation-delay:-.9s; animation-duration:5.6s; }
@keyframes afwebFooterDroplets { from { transform:translateY(18px); opacity:.92; } to { transform:translateY(-210px); opacity:.1; } }
@keyframes afwebFooterHorizon { from { opacity:.72; transform:scaleX(.92); } to { opacity:1; transform:scaleX(1.04); } }
@keyframes afwebFooterLineDrop { from { transform:translateY(0); opacity:0; } 18% { opacity:.9; } to { transform:translateY(-190px); opacity:0; } }
@keyframes afwebFooterSpark { from { transform:translateY(0) scale(.8); opacity:0; } 12% { opacity:1; } to { transform:translateY(-205px) scale(1.55); opacity:0; } }
@media(prefers-reduced-motion:reduce){.afweb-footer-lines::before,.afweb-footer-lines::after,.afweb-footer-lines .laser,.afweb-footer-lines .spark{animation:none}}
