/* V3 — consistent surfaces, measured motion and a continuous dark palette. */
:root {
  --ease-silk: cubic-bezier(.22,.68,.18,1);
  --ease-settle: cubic-bezier(.16,1,.3,1);
  --surface-gutter: clamp(20px,2.4vw,32px);
}

/* Hover light occupies the actual surface; typography never gets a shadow box. */
.hover-surface { position:relative; isolation:isolate; }
.cinematic .hover-surface > .surface-light {
  position:absolute; inset:0; z-index:-1; border-radius:inherit;
  pointer-events:none; opacity:0;
  background:radial-gradient(ellipse 520px 340px at var(--light-x,50%) var(--light-y,50%),rgba(100,237,216,.095),transparent 76%);
  transition:opacity .65s var(--ease-silk);
}
.hover-surface.is-hovered > .surface-light,
.hover-surface:focus-within > .surface-light { opacity:1; }
.service-card > .surface-light::after,.rpo-rto-card > .surface-light::after {
  content:''; position:absolute; inset:0; border:1px solid rgba(153,255,232,.6); border-radius:inherit;
  mask-image:radial-gradient(ellipse 300px 240px at var(--light-x,50%) var(--light-y,50%),#000,transparent 90%);
}
.cinematic .depth-target,.cinematic .depth-target.is-visible {
  transform:perspective(1500px) rotateX(var(--surface-rx,0deg)) rotateY(var(--surface-ry,0deg)) translate3d(0,var(--surface-lift,0px),0);
  transform-style:flat;
  transition:opacity .9s var(--ease-silk),border-color .6s var(--ease-silk),box-shadow .7s var(--ease-silk);
  transition-delay:0s;
}
.service-card {
  display:flex; flex-direction:column; container:service / inline-size;
  border-radius:12px; border-color:#26414c; background:linear-gradient(145deg,#10212c,#07131b 76%);
}
.service-card::before { display:none; }
.service-card:hover { box-shadow:0 22px 65px -32px #0009; border-color:#3b626a; }
.service-number { color:#85baca1c; transition:color .7s,translate .8s var(--ease-settle); }
.service-card.is-hovered .service-number { color:#8ee4da30; translate:-4px 2px; }
.service-card .icon-box { transition:color .45s,filter .6s; }
.service-card.is-hovered .icon-box { filter:drop-shadow(0 0 10px #6fffe33b); }
.service-card .check-list {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px;
  margin:28px 0 24px; padding:8px 0 0; border-color:#2d4954;
  counter-reset:service-item;
}
.service-card .check-list li {
  counter-increment:service-item; position:relative; min-width:0;
  display:grid; grid-template-columns:28px minmax(0,1fr); gap:12px; align-items:center;
  min-height:76px; padding:16px 4px; margin:0;
  border:0; border-bottom:1px solid #2b465060; border-radius:0; background:none;
  font-size:14px; line-height:1.65; color:#adc7d0;
  transition:color .45s var(--ease-silk),border-color .55s;
}
.service-card .check-list li:last-child:nth-child(odd) { grid-column:1 / -1; }
.service-card .check-list li::before {
  content:counter(service-item,decimal-leading-zero); position:static;
  display:grid; place-items:center; width:28px; height:28px; opacity:1;
  border:1px solid #36575e; border-radius:50%; background:#72e8cf05;
  font-family:var(--display); font-size:11px; font-weight:500; letter-spacing:.025em;
  color:#71b8b1; box-shadow:none;
  transition:color .5s,border-color .5s,background .5s,box-shadow .6s,transform .65s var(--ease-settle);
}
.service-card .check-list li::after {
  content:''; position:absolute; left:44px; right:4px; bottom:-1px; height:1px;
  background:linear-gradient(90deg,#8be7d5,#639a9900);
  transform:scaleX(.12); transform-origin:left; opacity:0;
  transition:transform .75s var(--ease-settle),opacity .5s;
}
.service-card.is-hovered .check-list li { color:#c2d9df; }
.service-card .check-list li:hover { color:#e1f8f1; border-color:#3c666e; }
.service-card .check-list li:hover::before {
  color:#bbf8e5; border-color:#73b6a9; background:#88eacf0c;
  box-shadow:0 0 20px -7px #7cecd744; transform:translateY(-1px);
}
.service-card .check-list li:hover::after { transform:scaleX(1); opacity:.8; }
.service-card .service-link { align-self:flex-start; margin-top:auto; }
@container service (max-width:460px) {
  .service-card .check-list { grid-template-columns:minmax(0,1fr); }
  .service-card .check-list li { min-height:65px; }
}

/* Give rows a wash of light and a gentle content response, without floating boxes. */
#desafios .info-card:hover,#continuidade .info-card:hover,#contratacao .info-card:hover,
.deliverables li:hover { background:transparent; box-shadow:none; transform:none; }
.info-card h3,.info-card .info-num,.deliverables h3,.trust-grid strong {
  transition:color .5s,translate .65s var(--ease-silk);
}
.info-card.is-hovered h3,.deliverables li.is-hovered h3 { color:#c7f6ed; translate:3px 0; }
.info-card.is-hovered .info-num { color:#8cebdc; }
.trust-grid article.is-hovered strong { color:#9ff5e1; }
.steps li.is-active { background:linear-gradient(90deg,#65ebd308,transparent 84%); }
.steps li.is-active::before {
  width:1px; background:linear-gradient(transparent,#74f2d7 25%,#74f2d7 75%,transparent);
  box-shadow:0 0 18px #6af1d333;
}
.steps h3 { transition:color .6s,translate .7s var(--ease-silk); }
.steps li.is-hovered h3 { translate:3px 0; }
.cinematic .about-mark.depth-target { transform:none; box-shadow:none; }
.about-mark img {
  transform:perspective(800px) rotateX(var(--surface-rx,0deg)) rotateY(var(--surface-ry,0deg)) translateY(var(--surface-lift,0px));
  filter:drop-shadow(0 0 42px #64dcca30);
}
.tags li { border-radius:5px; border-color:#28434d; padding:8px 14px; transition:color .45s,border-color .45s,background .45s; }
.tags li:hover { background:#59efdb06; border-color:#4e817e; }

/* Buttons move as one piece. Light and the specular sweep share the full footprint. */
.button {
  position:relative; isolation:isolate; border-radius:8px; overflow:hidden;
  transition:color .4s,background .4s,border-color .4s,box-shadow .6s var(--ease-silk),scale .25s;
}
.button.tactile-button {
  transform:translate3d(var(--magnet-x,0px),var(--magnet-y,0px),0);
}
.button::before {
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(ellipse 240px 120px at var(--light-x,50%) var(--light-y,50%),#fff3,transparent 78%);
  opacity:0; transition:opacity .5s;
}
.button::after {
  content:''; display:block; pointer-events:none; position:absolute; inset:-1px;
  background:linear-gradient(115deg,transparent 25%,#ffffff25 48%,transparent 70%);
  transform:translateX(-130%); transition:transform 1.05s var(--ease-silk);
}
.button:hover::before { opacity:1; }
.button:hover::after { transform:translateX(130%); }
.button-primary,.button-dark { color:#072220; background:#61e9d7; border-color:#72efdd; }
.button-primary:hover,.button-dark:hover { color:#072220; background:#8bf3de; box-shadow:0 12px 38px -14px #57e9d251; }
.button-secondary:hover { color:#e0fcf4; background:#0c232c; border-color:#537f83; box-shadow:0 10px 35px -22px #61e9d750; }
.button:active { scale:.985; }
.scene-explore { gap:10px; padding:12px 18px; }
.scene-explore.tactile-button { transform:translate(calc(-50% + var(--magnet-x,0px)),var(--magnet-y,0px)); }
.explore-icon { width:29px; height:29px; border-color:#43676d; transition:transform .8s var(--ease-settle),border-color .5s,box-shadow .6s; }
.scene-explore:hover .explore-icon { border-color:#85e3d3; box-shadow:0 0 22px -6px #82eed550; }

/* Text links have an uninterrupted baseline, instead of tight rectangular hovers. */
.service-link,.text-link,.contact-mail { position:relative; border-bottom:0; }
.service-link { padding:12px 0; font-size:12px; }
.text-link { min-height:44px; padding:9px 0; line-height:2; }
.service-link::after,.text-link::after,.contact-mail::after {
  content:''; position:absolute; height:1px; bottom:4px; left:0; right:0;
  background:linear-gradient(90deg,#91efdf,#49746f); transform:scaleX(.26); transform-origin:left;
  transition:transform .65s var(--ease-settle),opacity .4s; opacity:.65;
}
.service-link:hover::after,.text-link:hover::after,.contact-mail:hover::after,
.service-link:focus-visible::after,.text-link:focus-visible::after,.contact-mail:focus-visible::after { transform:scaleX(1); opacity:1; }
.desktop-nav a:not(.nav-cta),.footer-links a { position:relative; }
.desktop-nav a:not(.nav-cta)::after,.footer-links a::after {
  content:''; position:absolute; bottom:2px; left:0; width:100%; height:1px; background:#78dbcc;
  transform:scaleX(0); transform-origin:right; transition:transform .45s var(--ease-silk);
}
.desktop-nav a:hover::after,.desktop-nav a[aria-current]::after,.footer-links a:hover::after {
  transform:scaleX(1); transform-origin:left;
}
.desktop-nav .nav-cta { border-radius:7px; transition:border-color .5s,background .5s,box-shadow .5s; }
.desktop-nav .nav-cta:hover { border-color:#689b95; background:#66ecda08; box-shadow:0 0 24px -10px #7cf1d52a; }
.lang-switch button { position:relative; border-bottom:0!important; }
.lang-switch button::after {
  content:''; position:absolute; left:6px; right:6px; bottom:0; height:1px; background:#73e3cc;
  opacity:0; transform:scaleX(.2); transition:transform .4s var(--ease-settle),opacity .4s;
}
.lang-switch button[aria-pressed=true]::after,.lang-switch button:hover::after { opacity:1; transform:scaleX(1); }
.mobile-menu summary { border-radius:7px; transition:border-color .4s,background .4s; }
.mobile-menu[open] summary { background:#6debd80a; border-color:#527e7d; }
.mobile-menu nav { padding:14px; border-radius:12px; border-color:#375560; box-shadow:0 24px 60px #0008; }
.mobile-menu[open] nav { animation:menu-unfold .4s var(--ease-settle) both; transform-origin:90% 0; }
.mobile-menu nav a { border-radius:6px; min-height:48px; transition:color .35s,background .45s,translate .45s var(--ease-silk); }
.mobile-menu nav a:hover { background:#75ead509; translate:2px 0; }
@keyframes menu-unfold { from { opacity:0; transform:translateY(-7px) scale(.98); } to { opacity:1; transform:none; } }

/* Recovery is a dark, quiet pair of instruments within the same visual world. */
#objetivos {
  color:#e2f2f2; background:radial-gradient(ellipse at 14% 48%,#12383260,transparent 55%),radial-gradient(ellipse at 90% 65%,#12324f54,transparent 55%),#07131c;
  border-block:1px solid #1c3843; overflow:clip;
}
#objetivos .section-index { color:#73949e; }
#objetivos .eyebrow { color:#83d6c7; }
#objetivos .eyebrow::before { background:#83d6c7; }
#objetivos h2 { color:#e1f3f0; max-width:900px; }
#objetivos .section-lead { color:#9ab6c0; font-size:15px; max-width:690px; }
#objetivos .centered-heading { max-width:940px; }
.rpo-rto { max-width:1180px; grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr); gap:22px; }
.rpo-rto-card {
  position:relative; min-width:0; padding:34px 36px 30px; border:1px solid #2b4b53; border-radius:12px;
  background:linear-gradient(145deg,#112c31,#091b23 75%); color:#e2f3ef; box-shadow:none; overflow:hidden;
}
.rpo-rto-card:last-child { background:linear-gradient(145deg,#11283b,#0a1a29 75%); border-color:#2b455c; }
.rpo-rto-card:hover { box-shadow:0 24px 60px -35px #000a; }
.rpo-rto-badge {
  display:block; width:auto; height:auto; min-height:0; border-radius:0; padding:0; margin:0 0 6px;
  font-size:clamp(70px,6.5vw,98px); font-weight:400; line-height:1.1; letter-spacing:-.065em;
  color:#98e8d6; background:none; border:0; box-shadow:none;
}
.rpo-rto-card:last-child .rpo-rto-badge { color:#99c9f1; }
.recovery-trace { display:block; width:100%; height:64px; margin:8px 0 22px; opacity:.85; pointer-events:none; }
.rpo-rto-card h3 { color:#def2ed; font-size:25px; line-height:1.3; margin-bottom:14px; }
.rpo-rto-card p { color:#a3bdc4; font-size:14px; line-height:1.8; margin-bottom:23px; }
.rpo-rto-card .rpo-rto-hint { align-self:stretch; color:#bddbd8!important; font-size:12px!important; line-height:1.85; border-color:#305259; padding-top:19px; }
.rpo-rto-card:last-child .rpo-rto-hint { color:#bdd4e6!important; border-color:#2e485d; }
.rpo-rto-link { min-width:40px; gap:0; }
.rpo-rto-dot { width:4px; height:4px; background:#68beb4; box-shadow:0 0 9px #66d7c333; animation:none; }
.rpo-rto-bar { width:32px; height:1px; background:linear-gradient(90deg,#7cd8c6,#70acdf); box-shadow:none; opacity:.5; }

/* Native details keep their keyboard behavior; JS smooths their measured height. */
.faq-list details { position:relative; padding-inline:var(--surface-gutter); border-color:#2a444e; }
.faq-list details[open] { border-bottom-color:#426c6c; }
.faq-list summary { padding:27px 52px 27px 0; transition:color .45s; }
.faq-list summary::after {
  display:grid; place-items:center; right:2px; width:28px; height:28px; font-size:20px;
  border:1px solid #31515b; border-radius:50%; color:#8bccbf;
  transition:transform .55s var(--ease-settle),border-color .45s,color .45s,background .45s;
}
.faq-list summary:hover::after { border-color:#77b6a9; color:#b6f8e4; background:#8bf4dc07; }
.faq-list details[open] summary::after { content:'+'; transform:translateY(-50%) rotate(45deg); border-color:#609d94; }
.faq-list details p { padding-bottom:26px; padding-right:45px; font-size:14px; line-height:1.9; }
.faq-list details.is-animating { overflow:hidden; }
.faq-list details.is-opening p { animation:answer-arrive .5s var(--ease-silk) both; }
@keyframes answer-arrive { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:none; } }

.cursor-halo::before { width:22px; height:22px; border-color:#83cbb84d; background:none; transition:width .55s var(--ease-settle),height .55s var(--ease-settle),border-color .4s; }
.cursor-halo.is-interactive::before { width:36px; height:36px; border-color:#a5e9d65c; background:none; }
.kinetic-word { opacity:calc(.32 + var(--word-reveal,1)*.68); transition:opacity .25s linear,transform .42s var(--ease-silk); }
.section::after { opacity:.5; }
.contact-horizon { opacity:.72; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:2px solid #9ef1db; outline-offset:6px; }
main [tabindex='-1']:focus { outline:none; }

@media(max-width:1200px) { .rpo-rto { gap:16px; }.rpo-rto-card { padding:30px 28px; } }
@media(max-width:1100px) {
  .deliverables-layout { grid-template-columns:minmax(0,1fr); gap:36px; }
  .deliverables-layout > div { position:static; max-width:720px; }
  .deliverables { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .service-card { padding:28px; border-radius:10px; }
  .service-card .check-list li { font-size:13px; }
  .rpo-rto { grid-template-columns:minmax(0,1fr); gap:20px; }
  .rpo-rto-link { display:none; }.rpo-rto-card { padding:28px; }
  .rpo-rto-badge { font-size:76px; }.recovery-trace { height:58px; margin-bottom:20px; }
  .rpo-rto-card h3 { font-size:24px; }.rpo-rto-card p { font-size:14px; }
  #objetivos .section-lead { font-size:14px; }
  .faq-list summary { padding-block:25px; padding-right:43px; }
  .faq-list summary::after { width:25px; height:25px; }.faq-list details p { padding-right:20px; }
  .contact-mail { word-break:normal; overflow-wrap:anywhere; }
}
@media(max-width:600px) { #contratacao .card-grid,.deliverables { grid-template-columns:minmax(0,1fr); } }
@media(max-width:380px) { .service-card,.rpo-rto-card { padding:24px; }.rpo-rto-card h3 { font-size:22px; } }
@media(hover:none),(pointer:coarse) {
  .cinematic .depth-target,.cinematic .depth-target.is-visible { transform:none; }
  .surface-light,.cursor-halo { display:none; }
  .button::after { display:none; }.button:active { scale:.985; }
}
.motion-off .surface-light { display:none; }
.motion-off .depth-target,.motion-off .tactile-button,.motion-off .about-mark img { transform:none!important; }
.motion-off .scene-explore.tactile-button { transform:translateX(-50%)!important; }
.motion-off .button::after { display:none; }
@media(prefers-reduced-motion:reduce) {
  .surface-light,.button::after { display:none; }
  .cinematic .depth-target,.cinematic .depth-target.is-visible,.about-mark img { transform:none; }
  .mobile-menu[open] nav,.faq-list details.is-opening p { animation:none; }
}
