
/* Layout: fotografia real de campo em destaque, superfícies limpas sem grade, azul da marca como única cor de acento e o carimbo técnico como assinatura no rodapé. */
:root{
  --paper:#F3F5F6; --paper-2:#E6EBED; --sheet:#FFFFFF; --ink:#13212B; --ink-2:#4B5C66; --ink-3:#566771;
  --line:rgba(19,33,43,.14); --line-2:rgba(19,33,43,.28); --grid:rgba(26,150,196,.075);
  --cyan:#1E8DB8; --cyan-hi:#43A8CE; --logo-ink:#231F20; --cyan-soft:rgba(21,144,188,.12); --amber:#C98A00;
  --on-ink:#ECF0F1; --band:#13212B; --band-2:#1B2C38;
  --f-display:"Saira","Arial Narrow",system-ui,sans-serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --gut:clamp(16px,4vw,48px); --max:1280px; --hdr:72px;
  --ease:cubic-bezier(.7,0,.2,1); --ease-out:cubic-bezier(.16,1,.3,1);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0C1419; --paper-2:#101B22; --sheet:#14212A; --ink:#E2EBEE; --ink-2:#97A9B2; --ink-3:#8FA2AC;
  --line:rgba(226,235,238,.11); --line-2:rgba(226,235,238,.24); --grid:rgba(53,190,232,.06);
  --cyan:#43A8CE; --cyan-hi:#6CC0E0; --cyan-soft:rgba(67,168,206,.14); --amber:#F0B42A; --logo-ink:#E2EBEE;
  --on-ink:#0C1419; --band:#060B0E; --band-2:#0F1A21; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#0C1419; --paper-2:#101B22; --sheet:#14212A; --ink:#E2EBEE; --ink-2:#97A9B2; --ink-3:#8FA2AC;
  --line:rgba(226,235,238,.11); --line-2:rgba(226,235,238,.24); --grid:rgba(53,190,232,.06);
  --cyan:#43A8CE; --cyan-hi:#6CC0E0; --cyan-soft:rgba(67,168,206,.14); --amber:#F0B42A; --logo-ink:#E2EBEE;
  --on-ink:#0C1419; --band:#060B0E; --band-2:#0F1A21; color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background-color:var(--paper);color:var(--ink);font:400 16px/1.6 var(--f-body);
overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:500;margin:0;text-wrap:balance;letter-spacing:-.01em}
p{margin:0}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.mono{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}
.eyebrow{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);display:flex;align-items:center;gap:.6rem}
.eyebrow::before{content:"";width:18px;height:1px;background:currentColor}
.muted{color:var(--ink-2)}
.skip{position:fixed;left:8px;top:-60px;z-index:200;background:var(--cyan);color:var(--sheet);padding:8px 12px}
.skip:focus{top:8px}

/* ---------- header ---------- */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--paper) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr{transition:background .4s,border-color .4s}
.hdr.over{background:transparent;border-bottom-color:rgba(255,255,255,.14);backdrop-filter:none;-webkit-backdrop-filter:none}
.hdr.over .logo .lg-ink{fill:#fff}
.hdr.over .nav a{color:rgba(255,255,255,.75)}
.hdr.over .nav a:hover,.hdr.over .nav a[aria-current="page"]{color:#fff}
.hdr.over .icon-btn{border-color:rgba(255,255,255,.3);color:#fff}
.hdr.over .btn{background:#fff;color:#13212B;border-color:#fff}
.hdr.over .btn:hover{color:#fff;border-color:var(--cyan)}
.hdr .wrap{display:flex;align-items:center;gap:24px;height:var(--hdr)}
.brand{display:flex;align-items:center;flex-shrink:0}
.logo{display:block;width:auto;height:44px}
.logo .lg-ink{fill:var(--logo-ink);transition:fill .4s}
.logo .lg-cy,.sym-logo path{fill:#43A8CE}
.nav{display:flex;gap:4px;margin-left:auto;position:relative}
.nav a{padding:8px 14px;font-size:.92rem;font-weight:500;color:var(--ink-2);transition:color .2s}
.nav a:hover,.nav a[aria-current="page"]{color:var(--ink)}
.nav .ind{position:absolute;bottom:-1px;height:2px;background:var(--cyan);transition:left .45s var(--ease-out),width .45s var(--ease-out);pointer-events:none}
.hdr-actions{display:flex;align-items:center;gap:10px}
.icon-btn{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line-2);background:transparent;cursor:pointer;transition:border-color .2s,background .2s}
.icon-btn:hover{border-color:var(--cyan);background:var(--cyan-soft)}
.icon-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6}
.menu-btn{display:none}

.btn{display:inline-flex;align-items:center;gap:14px;padding:13px 20px;font-weight:600;font-size:.92rem;border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;position:relative;overflow:hidden;isolation:isolate;transition:color .3s,border-color .3s}
.btn::before{content:"";position:absolute;inset:0;background:var(--cyan);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease);z-index:-1}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn:hover{border-color:var(--cyan);color:#fff}
.btn .arr{transition:transform .3s var(--ease-out)}
.btn:hover .arr{transform:translateX(4px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn.sm{padding:9px 14px;font-size:.84rem}
.btn.cyan{background:var(--cyan);border-color:var(--cyan);color:#fff}
.btn.cyan::before{background:var(--ink)}

/* mobile menu */
.mnav{position:fixed;inset:0;z-index:60;background:var(--band);color:#E2EBEE;padding:calc(var(--hdr) + 24px + env(safe-area-inset-top,0px)) var(--gut) 32px;display:flex;flex-direction:column;gap:6px;clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease);visibility:hidden}
.mnav.open{clip-path:inset(0 0 0 0);visibility:visible}
.mnav a{font-family:var(--f-display);font-size:2.3rem;font-weight:300;font-stretch:110%;border-bottom:1px solid rgba(226,235,238,.12);padding:10px 0;display:flex;justify-content:space-between;align-items:baseline;transform:translateY(20px);opacity:0;transition:transform .5s var(--ease-out),opacity .5s}
.mnav a span{font-family:var(--f-mono);font-size:.7rem;color:#62D2F2}
.mnav.open a{transform:none;opacity:1}
.mnav .close{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));right:var(--gut);color:#E2EBEE;border-color:rgba(226,235,238,.3)}

/* ---------- page transition ---------- */
.wipe{position:fixed;inset:0;z-index:90;pointer-events:none;display:grid;grid-template-rows:1fr;}
.wipe i{display:block;background:var(--band);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease)}
.wipe .wl{position:absolute;left:0;right:0;top:calc(50% + 46px);height:1px;background:var(--cyan-hi);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease) .05s}
.wipe .ws{position:absolute;left:50%;top:50%;width:64px;transform:translate(-50%,-50%) scale(.6);opacity:0;transition:opacity .3s,transform .5s var(--ease-out)}
.wipe.in .ws{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:.15s}
.wipe .wt{position:absolute;left:50%;top:50%;transform:translate(-50%,56px);font-family:var(--f-mono);font-size:.78rem;letter-spacing:.14em;color:#62D2F2;opacity:0;transition:opacity .25s;white-space:nowrap;text-transform:uppercase}
.wipe.in i{transform:scaleY(1)}
.wipe.in .wl{transform:scaleX(1)}
.wipe.in .wt{opacity:1;transition-delay:.2s}
.wipe.out i{transform:scaleY(0);transform-origin:top}
.wipe.out .wl{transform:scaleX(0);transform-origin:right}
main{min-height:60vh}
.page-enter > *{animation:pageIn .8s var(--ease-out) both}
.page-enter > *:nth-child(2){animation-delay:.06s}
.page-enter > *:nth-child(3){animation-delay:.12s}
@keyframes pageIn{from{transform:translateY(24px)}to{transform:none}}

/* reveal: visível em repouso, só desliza */
.rv{transform:translateY(22px);transition:transform .9s var(--ease-out)}
.rv.on{transform:none}

/* ---------- hero ---------- */
.hero{position:relative;margin-top:calc(var(--hdr) * -1);min-height:clamp(600px,88vh,820px);background:#0A1217;color:#fff;overflow:hidden;display:flex;isolation:isolate}
.hero .bg{position:absolute;inset:0;z-index:-2}
.hero .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;opacity:0;transform:scale(1.08);transition:opacity 1.2s ease,transform 7s linear}
.hero .bg img.on{opacity:1;transform:scale(1)}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,14,18,.92) 0%,rgba(8,14,18,.72) 42%,rgba(8,14,18,.25) 100%),linear-gradient(0deg,rgba(8,14,18,.85) 0%,transparent 45%)}
.hero .wrap{width:100%;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:end;padding-top:calc(var(--hdr) + clamp(48px,8vw,96px));padding-bottom:clamp(32px,5vw,56px)}
.hero .eyebrow{color:#6CC0E0}
.hero h1{font-size:clamp(2.6rem,5.6vw,5rem);line-height:.98;font-weight:300;font-stretch:92%;letter-spacing:-.025em;margin-top:22px}
.hero h1 strong{font-weight:600;color:#6CC0E0}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.04em}
.hero h1 .ln > span{display:inline-block;animation:lineUp 1s var(--ease-out) both}
.hero h1 .ln:nth-child(2) > span{animation-delay:.08s}
.hero h1 .ln:nth-child(3) > span{animation-delay:.16s}
@keyframes lineUp{from{transform:translateY(105%)}to{transform:none}}
.hero .lead{font-size:1.08rem;color:rgba(255,255,255,.78);max-width:46ch;margin-top:22px}
.hero .ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.hero .btn{background:#43A8CE;border-color:#43A8CE;color:#0A1217}
.hero .btn::before{background:#fff}
.hero .btn:hover{color:#0A1217;border-color:#fff}
.hero .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.hero .btn.ghost:hover{color:#0A1217}
.svc{background:rgba(8,14,18,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.14)}
.svc-h{display:flex;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.12);font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.svc ol{list-style:none;margin:0;padding:6px 0}
.svc li button{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:10px;align-items:center;padding:8px 18px;cursor:pointer;color:rgba(255,255,255,.62);position:relative;transition:color .3s}
.svc li button:focus-visible{outline:2px solid #6CC0E0;outline-offset:-2px}
.svc li .n{font-family:var(--f-mono);font-size:.72rem}
.svc li .t{font-family:var(--f-display);font-size:1rem;font-weight:400;line-height:1.3}
.svc li .a{opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s}
.svc li .bar{position:absolute;left:18px;right:18px;bottom:0;height:1px;background:rgba(255,255,255,.1)}
.svc li .bar i{display:block;height:100%;width:0;background:#6CC0E0}
.svc li.on button{color:#fff}
.svc li.on .n{color:#6CC0E0}
.svc li.on .a{opacity:1;transform:none}
.svc li.on .bar i{animation:prog var(--dur,6s) linear forwards}
.svc.paused li.on .bar i{animation-play-state:paused}
@keyframes prog{to{width:100%}}
.svc-cap{padding:14px 18px 16px;border-top:1px solid rgba(255,255,255,.12);font-size:.9rem;color:rgba(255,255,255,.75);min-height:96px}
.svc-cap a{display:inline-flex;gap:8px;margin-top:8px;color:#6CC0E0;font-weight:600;font-size:.86rem}
.scroll-cue{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);width:1px;height:38px;background:rgba(255,255,255,.2);overflow:hidden}
.scroll-cue::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:#6CC0E0;animation:cue 2s infinite}
@keyframes cue{to{top:100%}}

/* stats strip */
.stats{border-block:1px solid var(--line);background:var(--sheet)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{padding:26px 20px 24px 0;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.stat + .stat{padding-left:24px}
.stat:last-child{border-right:0}
.stat b{font-family:var(--f-display);font-weight:300;font-stretch:90%;font-size:clamp(2rem,3.6vw,2.9rem);line-height:1;font-variant-numeric:tabular-nums}
.stat b em{font-style:normal;color:var(--cyan)}
.stat > span{font-size:.86rem;color:var(--ink-2)}

/* sections */
.sec{padding-block:clamp(64px,9vw,120px)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:end;margin-bottom:clamp(32px,5vw,56px)}
.sec-head h2,.h2{font-size:clamp(2rem,3.8vw,3.2rem);line-height:1.05;font-weight:300;font-stretch:95%;margin-top:14px}
.sec-head h2 strong,.h2 strong{font-weight:600}
.sec-head > p{color:var(--ink-2);max-width:48ch;justify-self:end}

/* solution rows */
.rows{border-top:1px solid var(--line-2)}
.row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 48px;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);position:relative;isolation:isolate}
.row::before{content:"";position:absolute;inset:0 calc(var(--gut) * -1);background:var(--cyan-soft);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease);z-index:-1}
.row:hover::before,.row:focus-visible::before{transform:scaleY(1)}
.row .code{font-family:var(--f-mono);font-size:.72rem;color:var(--ink-3);letter-spacing:.06em}
.row h3{font-size:clamp(1.25rem,2.1vw,1.7rem);font-weight:400;transition:transform .45s var(--ease-out)}
.row:hover h3{transform:translateX(8px)}
.row p{color:var(--ink-2);font-size:.93rem}
.row .go{width:44px;height:44px;border:1px solid var(--line-2);display:grid;place-items:center;transition:background .3s,border-color .3s,color .3s}
.row:hover .go{background:var(--cyan);border-color:var(--cyan);color:#fff}
.row .kick{display:block;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;color:var(--cyan);text-transform:uppercase;margin-bottom:4px}
.peek{position:fixed;left:0;top:0;width:280px;aspect-ratio:4/3;z-index:40;pointer-events:none;opacity:0;transform:scale(.85);transition:opacity .25s,transform .35s var(--ease-out)}
.peek.show{opacity:1;transform:scale(1)}

/* fotos */
.ph{position:relative;margin:0;background:var(--paper-2);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;max-width:100%;isolation:isolate}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease-out)}
.ph.has::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(8,14,18,.72) 0%,rgba(8,14,18,0) 55%)}
a:hover .ph img,button:hover .ph img,.ph.zoom:hover img{transform:scale(1.05)}
.ph .tag{align-self:flex-start;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;background:#43A8CE;color:#0A1217;padding:4px 8px}
.ph .cap{font-size:.86rem;color:#fff;margin-top:8px;max-width:38ch}
.ph.empty{border:1px dashed var(--line-2);justify-content:center;align-items:center;text-align:center}
.ph.empty .mono{color:var(--ink-3)}
.ph.empty .ini{font-family:var(--f-display);font-weight:300;font-size:2.6rem;color:var(--cyan);line-height:1}
.peek{background:var(--paper-2);box-shadow:0 20px 50px rgba(0,0,0,.25)}

/* norms band */
.band{background:var(--band);color:#E2EBEE;overflow:hidden;border-block:1px solid var(--band-2)}
.marq{display:flex;width:max-content;animation:marq 40s linear infinite}
.marq:hover,.marq:focus-within,.clients:hover{animation-play-state:paused}
.marq span{font-family:var(--f-display);font-weight:300;font-stretch:110%;font-size:clamp(1.6rem,3vw,2.4rem);padding:22px 28px;white-space:nowrap;display:flex;align-items:center;gap:28px}
.marq span::after{content:"";width:8px;height:8px;border:1.5px solid #62D2F2;transform:rotate(45deg)}
.marq.slow{animation-duration:55s}
@keyframes marq{to{transform:translateX(-50%)}}

/* cards projetos */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.card{display:flex;flex-direction:column;gap:14px;cursor:pointer;background:none;border:0;padding:0;text-align:left}
.card .ph{aspect-ratio:4/3}
.card .meta{display:flex;justify-content:space-between;gap:10px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}
.card h3{font-size:1.3rem;font-weight:400;line-height:1.2}
.card p{color:var(--ink-2);font-size:.92rem}
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-2);padding:4px 8px;color:var(--ink-2)}
.chip.c{border-color:var(--cyan);color:var(--cyan)}
.chips{display:flex;flex-wrap:wrap;gap:6px}

/* método */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;position:relative;counter-reset:s}
.steps::before{content:"";position:absolute;left:0;right:0;top:22px;height:1px;background:var(--line-2)}
.steps .prog{position:absolute;left:0;top:21px;height:3px;background:var(--cyan);width:0;transition:width 1.6s var(--ease)}
.step{padding-right:28px;position:relative}
.step .node{width:44px;height:44px;border:1px solid var(--line-2);background:var(--paper);display:grid;place-items:center;font-family:var(--f-mono);font-size:.78rem;position:relative;z-index:1;transition:background .4s,border-color .4s,color .4s}
.step.lit .node{background:var(--cyan);border-color:var(--cyan);color:#fff}
.step h3{font-size:1.45rem;font-weight:400;margin:22px 0 8px}
.step p{color:var(--ink-2);font-size:.93rem}

/* clientes */
.clients{display:flex;width:max-content;animation:marq 34s linear infinite}
.clients span{font-family:var(--f-display);font-size:clamp(1.4rem,2.4vw,2rem);font-weight:500;font-stretch:100%;color:var(--ink-3);padding:26px 40px;border-right:1px solid var(--line);white-space:nowrap;transition:color .3s}
.clients span:hover{color:var(--ink)}
.cl-wrap{border-block:1px solid var(--line);overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}

/* cta */
.cta{background:var(--band);color:#E2EBEE;position:relative;overflow:hidden}
.cta .wrap{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:40px;align-items:end;padding-block:clamp(56px,8vw,104px)}
.cta h2{font-size:clamp(2.2rem,4.6vw,4rem);font-weight:300;font-stretch:92%;line-height:1}
.cta h2 strong{color:#62D2F2;font-weight:600}
.cta p{color:#97A9B2}
.cta .phone{font-family:var(--f-display);font-size:1.8rem;font-weight:300;display:block;margin-block:8px 18px;color:#E2EBEE}
.cta .btn{background:#36BDE6;border-color:#36BDE6;color:#0C1419}
.cta .btn::before{background:#E2EBEE}
.cta .btn:hover{color:#0C1419}
.cta canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.5;pointer-events:none}
.cta .wrap{position:relative}

/* page head (internas) */
.phead{padding-block:clamp(36px,6vw,72px) clamp(28px,4vw,48px);border-bottom:1px solid var(--line)}
.crumb{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;display:flex;gap:8px;flex-wrap:wrap}
.crumb a:hover{color:var(--cyan)}
.phead h1{font-size:clamp(2.4rem,6vw,5.2rem);line-height:.98;font-weight:300;font-stretch:90%;margin-top:22px;letter-spacing:-.025em}
.phead h1 strong{font-weight:600;color:var(--cyan)}
.phead .lead{font-size:1.1rem;color:var(--ink-2);max-width:56ch;margin-top:20px}
.phead-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;align-items:end}
.phead .side{display:flex;flex-direction:column;gap:14px;align-items:flex-start}

/* detalhe de solução */
.d-hero{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px;margin-top:36px}
.d-hero .ph{aspect-ratio:16/9}
.spec{border:1px solid var(--line-2);background:var(--sheet);display:flex;flex-direction:column}
.spec div{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.spec div:last-child{border-bottom:0;flex:1}
.spec dt,.spec .k{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase}
.spec .v{font-family:var(--f-display);font-size:1.1rem}
.ov{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px)}
.ov h2{font-size:clamp(1.9rem,3.4vw,2.9rem);font-weight:300;line-height:1.08}
.ov h2 em{font-style:normal;font-weight:600;color:var(--cyan);display:block}
.ov .txt{display:flex;flex-direction:column;gap:16px;color:var(--ink-2);font-size:1.02rem;max-width:60ch}
.hl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-2);border-left:1px solid var(--line)}
.hl > div{padding:24px 20px 28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px;transition:background .3s}
.hl > div:hover{background:var(--sheet)}
.hl svg{width:28px;height:28px;stroke:var(--cyan);fill:none;stroke-width:1.5}
.hl h3{font-size:1.2rem;font-weight:500}
.hl p{font-size:.9rem;color:var(--ink-2)}
.dl{width:100%;border-collapse:collapse;font-size:.95rem}
.dl-wrap{overflow-x:auto;border:1px solid var(--line-2);background:var(--sheet)}
.dl th{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);text-align:left;font-weight:400;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.dl td{padding:16px;border-bottom:1px solid var(--line);vertical-align:top}
.dl tr:last-child td{border-bottom:0}
.dl td:first-child{font-family:var(--f-mono);font-size:.78rem;color:var(--ink-3);width:70px;font-variant-numeric:tabular-nums}
.dl td:last-child{width:60px;text-align:right}
.ck{width:20px;height:20px;stroke:var(--cyan);fill:none;stroke-width:2}
.ck path{stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .6s var(--ease-out)}
.on .ck path,.ck.on path{stroke-dashoffset:0}
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gal.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.gal .ph{aspect-ratio:3/4}
.gal.lum-gal{grid-template-columns:repeat(3,minmax(0,1fr))}
.lum-gal .ph{aspect-ratio:3/2}
.lum-gal .lum-item{display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:zoom-in}
.lum-gal .lum-item:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
@media (max-width:1020px){.gal.lum-gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.gal.lum-gal{grid-template-columns:minmax(0,1fr)}}
.model{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:32px;align-items:center;border:1px solid var(--line-2);background:var(--sheet);padding:clamp(20px,3vw,36px)}
.model .views{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.model .views .ph{aspect-ratio:3/4;padding:10px;background:#EEF1F3}
.model .views .ph img{object-fit:contain}
.model .views .ph.has::before{display:none}
.model .views .ph .tag{background:#13212B;color:#fff}
.pager{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--line-2)}
.pager a{padding:28px 0;display:flex;flex-direction:column;gap:6px;transition:color .3s}
.pager a:last-child{text-align:right;border-left:1px solid var(--line);padding-left:24px;align-items:flex-end}
.pager a:first-child{padding-right:24px}
.pager a span{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase}
.pager a b{font-family:var(--f-display);font-weight:400;font-size:clamp(1.1rem,2vw,1.6rem)}
.pager a:hover b{color:var(--cyan)}

/* filtros */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.fbtn{border:1px solid var(--line-2);background:transparent;padding:8px 14px;font-size:.86rem;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.fbtn[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.fbtn:hover{border-color:var(--cyan)}
.card.hide{display:none}
.card.pop{animation:pop .5s var(--ease-out)}
@keyframes pop{from{transform:translateY(16px) scale(.98)}to{transform:none}}

/* drawer de projeto */
.drawer{position:fixed;inset:0;z-index:70;display:flex;justify-content:flex-end;visibility:hidden}
.drawer .scrim{position:absolute;inset:0;background:rgba(6,11,14,.5);opacity:0;transition:opacity .4s}
.drawer .panel{position:relative;width:min(560px,100%);height:100%;background:var(--paper);overflow-y:auto;transform:translateX(100%);transition:transform .55s var(--ease);padding:calc(24px + env(safe-area-inset-top,0px)) clamp(20px,4vw,40px) calc(40px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:20px}
.drawer.open{visibility:visible}
.drawer.open .scrim{opacity:1}
.drawer.open .panel{transform:none}
.drawer h3{font-size:2rem;font-weight:400;line-height:1.1}
.drawer .ph{aspect-ratio:16/10}
.drawer h4{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);font-weight:400;margin-bottom:6px}
.drawer ul{margin:0;padding-left:18px;color:var(--ink-2)}
.drawer .top{display:flex;justify-content:space-between;align-items:center}
.note{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.04em;color:var(--amber);border:1px dashed var(--amber);padding:8px 10px}

/* empresa */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.split .ph{aspect-ratio:4/5}
.vals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--line-2);margin-top:32px}
.vals div{padding:20px 16px 20px 0;border-bottom:1px solid var(--line)}
.vals div:nth-child(odd){border-right:1px solid var(--line)}
.vals div:nth-child(even){padding-left:20px}
.vals b{font-family:var(--f-display);font-size:1.25rem;font-weight:500;display:flex;align-items:center;gap:10px}
.vals b::before{content:"";width:8px;height:8px;border:1.5px solid var(--cyan);transform:rotate(45deg)}
.vals p{color:var(--ink-2);font-size:.9rem;margin-top:4px}
.crea{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:28px;align-items:center;border:1px solid var(--line-2);background:var(--sheet);padding:28px}
.seal{width:96px;height:96px}
.seal text{font-family:var(--f-mono);font-size:7.4px;letter-spacing:2.2px;fill:var(--ink-2)}
.seal .rot{transform-origin:50px 50px;animation:spin 24s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.recv{border-top:1px solid var(--line-2)}
.recv div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:32px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--line)}
.recv b{font-family:var(--f-display);font-weight:400;font-size:1.3rem}
.recv p{color:var(--ink-2);max-width:56ch}
@media (max-width:760px){.recv div{grid-template-columns:minmax(0,1fr);gap:6px}}
.tech{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line-2)}
.tech div{padding:22px 20px 22px 0;border-bottom:1px solid var(--line)}
.tech div + div{padding-left:20px;border-left:1px solid var(--line)}
.tech div:nth-child(3n+1){border-left:0;padding-left:0}
.tech .k{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;color:var(--cyan);text-transform:uppercase}
.tech b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.25rem;margin:6px 0 4px}
.tech p{color:var(--ink-2);font-size:.9rem}
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.team .ph{aspect-ratio:1}
.team b{display:block;font-family:var(--f-display);font-weight:500;font-size:1.15rem;margin-top:12px}
.team span{color:var(--ink-2);font-size:.88rem}

/* caso real: projeto x montado */
.case{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.cmp-tabs{display:flex;gap:6px;margin-bottom:12px}
.cmp{position:relative;aspect-ratio:941/1672;max-width:100%;overflow:hidden;background:#EEF1F3;user-select:none;-webkit-user-select:none;touch-action:pan-y;cursor:ew-resize;box-shadow:0 30px 60px -30px rgba(10,18,23,.45)}
.cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;transition:opacity .5s}
.cmp .top{clip-path:inset(0 calc(100% - var(--p,50%)) 0 0)}
.cmp .hd{position:absolute;top:0;bottom:0;left:var(--p,50%);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(10,18,23,.15);pointer-events:none}
.cmp .knob{position:absolute;top:50%;left:var(--p,50%);width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#43A8CE;color:#0A1217;display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.3);pointer-events:none;transition:transform .2s}
.cmp:active .knob{transform:scale(.92)}
.cmp .lb{position:absolute;top:14px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;pointer-events:none}
.cmp .lb.l{left:14px;background:#13212B;color:#fff}
.cmp .lb.r{right:14px;background:#43A8CE;color:#0A1217}
.cmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.cmp input:focus-visible ~ .knob{outline:3px solid #fff;outline-offset:3px}
.cmp-note{font-size:.82rem;color:var(--ink-3);margin-top:10px;display:flex;gap:8px;align-items:center}
.case h2{font-size:clamp(1.9rem,3.4vw,2.8rem);font-weight:300;line-height:1.08;margin-top:14px}
.case h2 strong{font-weight:600}
.specs{margin:26px 0 28px;border-top:1px solid var(--line-2)}
.specs div{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.specs dt{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding-top:3px}
.specs dd{margin:0;font-size:.95rem;font-variant-numeric:tabular-nums}
.layers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:clamp(40px,6vw,72px)}
.layer{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:10px}
.layer:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
.layer .fr{position:relative;aspect-ratio:3/4;background:#fff;border:1px solid var(--line);overflow:hidden}
.layer .fr.photo{background:#0A1217}
.layer .fr img{position:absolute;inset:6%;width:88%;height:88%;object-fit:contain;transition:transform .8s var(--ease-out)}
.layer .fr.photo img{inset:0;width:100%;height:100%;object-fit:cover}
.layer:hover .fr img{transform:scale(1.06)}
.layer .k{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan)}
.layer b{font-family:var(--f-display);font-weight:400;font-size:1.1rem;line-height:1.2}
.layer .fr .bd{position:absolute;left:10px;top:10px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;background:#13212B;color:#fff}
.layer .fr.photo .bd{background:#43A8CE;color:#0A1217}
.layers.wide{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (min-width:1021px){.layers.wide[data-case-gallery="bufalo"]{grid-template-columns:repeat(4,minmax(0,1fr))}}
.cmp.solo img{pointer-events:auto}
.lbx{position:fixed;inset:0;z-index:80;background:rgba(6,11,14,.94);display:grid;grid-template-rows:auto minmax(0,1fr) auto;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s;padding:calc(14px + env(safe-area-inset-top,0px)) 16px calc(16px + env(safe-area-inset-bottom,0px))}
.lbx.open{opacity:1;visibility:visible}
.lbx .bar{display:flex;justify-content:space-between;align-items:center;color:#E2EBEE;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}
.lbx .bar .icon-btn{color:#fff;border-color:rgba(255,255,255,.3)}
.lbx .stage{position:relative;display:grid;place-items:center;min-height:0;height:100%;overflow:hidden}
.lbx .stage img{max-width:100%;max-height:calc(100vh - 150px);object-fit:contain;background:#fff;transform:scale(.96);opacity:0;transition:transform .5s var(--ease-out),opacity .4s}
.lbx .stage img.photo{background:transparent}
.lbx.open .stage img.in{transform:none;opacity:1}
.lbx .cap{color:#E2EBEE;text-align:center;font-size:.92rem;display:flex;justify-content:center;align-items:center;gap:16px;padding-top:12px}
.lbx .cap b{font-family:var(--f-display);font-weight:400;font-size:1.15rem}
.lbx .nav-b{color:#fff;border-color:rgba(255,255,255,.3)}
@media (max-width:1020px){.case{grid-template-columns:minmax(0,1fr)}.cmp-wrap{max-width:440px}.layers,.layers.wide{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.specs div{grid-template-columns:minmax(0,1fr);gap:2px}}

/* contato */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(24px,5vw,72px);align-items:start}
.cinfo{display:flex;flex-direction:column;border-top:1px solid var(--line-2)}
.cinfo > div{padding:18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:16px;align-items:center}
.cinfo .k{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase}
.cinfo .v{font-size:1rem;overflow-wrap:anywhere;user-select:all}
.copy{border:1px solid var(--line-2);background:transparent;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:6px 9px;cursor:pointer}
.copy:hover{border-color:var(--cyan);color:var(--cyan)}
.form{border:1px solid var(--line-2);background:var(--sheet);padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:18px}
.form .fh{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding-bottom:14px}
.form .fh b{font-family:var(--f-display);font-weight:500;font-size:1.3rem}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.fld label{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.fld input,.fld select,.fld textarea{border:0;border-bottom:1px solid var(--line-2);background:transparent;padding:10px 0;font-size:1rem;border-radius:0;transition:border-color .25s;width:100%}
.fld select{background:var(--sheet)}
.fld textarea{resize:vertical;min-height:110px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-bottom-color:var(--cyan);box-shadow:0 1px 0 var(--cyan)}
.fld.err input,.fld.err select,.fld.err textarea{border-bottom-color:var(--amber)}
.fld .em{font-size:.78rem;color:var(--amber);min-height:0}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.fld .seg input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.seg label{font-family:var(--f-body);text-transform:none;letter-spacing:0;font-size:.86rem;border:1px solid var(--line-2);padding:7px 12px;cursor:pointer;color:var(--ink);transition:background .2s,color .2s,border-color .2s}
.seg input:checked + label{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.seg input:focus-visible + label{outline:2px solid var(--cyan);outline-offset:2px}
.result{border:1px solid var(--cyan);background:var(--cyan-soft);padding:18px;display:flex;flex-direction:column;gap:12px}
.result pre{white-space:pre-wrap;font-family:var(--f-mono);font-size:.8rem;margin:0;color:var(--ink)}
.result .acts{display:flex;flex-wrap:wrap;gap:8px}
.map{aspect-ratio:16/10;margin-top:24px}

/* rodapé = carimbo */
.foot{border-top:1px solid var(--line-2);padding-block:56px 32px;background:var(--sheet)}
.foot-top{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:32px;margin-bottom:48px}
.foot-top h4{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase;font-weight:400;margin-bottom:12px}
.foot-top p,.foot-top a{color:var(--ink-2);font-size:.92rem;display:block}
.foot-top a:hover{color:var(--cyan)}
.stamp{display:grid;grid-template-columns:minmax(0,2.2fr) repeat(5,minmax(0,1fr));border:1.5px solid var(--ink);font-variant-numeric:tabular-nums}
.stamp > div{padding:10px 12px;border-right:1px solid var(--line-2);display:flex;flex-direction:column;gap:3px;min-width:0}
.stamp > div:last-child{border-right:0}
.stamp .k{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase}
.stamp .v{font-family:var(--f-mono);font-size:.78rem;overflow-wrap:anywhere}
.stamp .big{flex-direction:row;align-items:center;gap:12px}
.stamp .big .logo{height:40px}
.stamp .sheet-v{font-family:var(--f-display);font-size:1.2rem}
.foot-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:20px;font-family:var(--f-mono);font-size:.72rem;color:var(--ink-3);letter-spacing:.04em}

.wa{position:fixed;right:clamp(14px,2vw,24px);bottom:calc(clamp(14px,2vw,24px) + env(safe-area-inset-bottom,0px));z-index:45;display:flex;align-items:center;gap:10px;background:#1F9D55;color:#fff;padding:12px 16px 12px 12px;font-weight:600;font-size:.88rem;box-shadow:0 8px 24px rgba(0,0,0,.18);transition:transform .3s var(--ease-out)}
.wa:hover{transform:translateY(-3px)}
.wa svg{width:22px;height:22px;fill:#fff}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--ink);color:var(--paper);padding:10px 16px;font-size:.86rem;opacity:0;transition:opacity .25s,transform .25s;z-index:95;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- clientes (faixa de logos) ---------- */
/* Faixa branca com bordas esfumadas que se dissolvem no fundo do site; as setas só aparecem quando os logos não cabem na largura. */
.cbar{--fade:64px;--vfade:26px;--cell:204px;--bh:136px;--u:1px;position:relative}
.cbar.is-scroll{--fade:104px}
.cbar-view{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--fade);scrollbar-width:none;background:#fff;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) calc(var(--fade) * 0),rgba(0,0,0,0.16) calc(var(--fade) * 0.3),rgba(0,0,0,0.5) calc(var(--fade) * 0.55),rgba(0,0,0,0.86) calc(var(--fade) * 0.8),rgba(0,0,0,1) calc(var(--fade) * 1),rgba(0,0,0,1) calc(100% - var(--fade) * 1),rgba(0,0,0,0.86) calc(100% - var(--fade) * 0.8),rgba(0,0,0,0.5) calc(100% - var(--fade) * 0.55),rgba(0,0,0,0.16) calc(100% - var(--fade) * 0.3),rgba(0,0,0,0) calc(100% - var(--fade) * 0)),linear-gradient(180deg,rgba(0,0,0,0) calc(var(--vfade) * 0),rgba(0,0,0,0.16) calc(var(--vfade) * 0.3),rgba(0,0,0,0.5) calc(var(--vfade) * 0.55),rgba(0,0,0,0.86) calc(var(--vfade) * 0.8),rgba(0,0,0,1) calc(var(--vfade) * 1),rgba(0,0,0,1) calc(100% - var(--vfade) * 1),rgba(0,0,0,0.86) calc(100% - var(--vfade) * 0.8),rgba(0,0,0,0.5) calc(100% - var(--vfade) * 0.55),rgba(0,0,0,0.16) calc(100% - var(--vfade) * 0.3),rgba(0,0,0,0) calc(100% - var(--vfade) * 0));-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,rgba(0,0,0,0) calc(var(--fade) * 0),rgba(0,0,0,0.16) calc(var(--fade) * 0.3),rgba(0,0,0,0.5) calc(var(--fade) * 0.55),rgba(0,0,0,0.86) calc(var(--fade) * 0.8),rgba(0,0,0,1) calc(var(--fade) * 1),rgba(0,0,0,1) calc(100% - var(--fade) * 1),rgba(0,0,0,0.86) calc(100% - var(--fade) * 0.8),rgba(0,0,0,0.5) calc(100% - var(--fade) * 0.55),rgba(0,0,0,0.16) calc(100% - var(--fade) * 0.3),rgba(0,0,0,0) calc(100% - var(--fade) * 0)),linear-gradient(180deg,rgba(0,0,0,0) calc(var(--vfade) * 0),rgba(0,0,0,0.16) calc(var(--vfade) * 0.3),rgba(0,0,0,0.5) calc(var(--vfade) * 0.55),rgba(0,0,0,0.86) calc(var(--vfade) * 0.8),rgba(0,0,0,1) calc(var(--vfade) * 1),rgba(0,0,0,1) calc(100% - var(--vfade) * 1),rgba(0,0,0,0.86) calc(100% - var(--vfade) * 0.8),rgba(0,0,0,0.5) calc(100% - var(--vfade) * 0.55),rgba(0,0,0,0.16) calc(100% - var(--vfade) * 0.3),rgba(0,0,0,0) calc(100% - var(--vfade) * 0));mask-composite:intersect}
.cbar-view::-webkit-scrollbar{display:none}
.cbar-view:focus-visible{outline:none}
.cbar:has(.cbar-view:focus-visible){outline:2px solid var(--cyan);outline-offset:3px}
.cbar-track{display:flex;width:max-content;min-width:100%;justify-content:center;margin:0;padding:0 var(--fade);list-style:none}
.cbar-cell{flex:0 0 var(--cell);height:var(--bh);display:grid;place-items:center;scroll-snap-align:start;position:relative}
.cbar-cell + .cbar-cell::before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;background:linear-gradient(rgba(19,33,43,0),rgba(19,33,43,.14),rgba(19,33,43,0))}
.cbar-cell img{width:calc(var(--w,128) * var(--u));height:calc(var(--h,44) * var(--u));max-width:82%;object-fit:contain;filter:grayscale(1);opacity:.8;transition:filter .3s,opacity .3s}
.cbar-cell:hover img{filter:none;opacity:1}
.cbar-nav{display:none;position:absolute;top:50%;z-index:2;transform:translateY(-50%);background:var(--paper);color:var(--ink)}
.cbar.is-scroll .cbar-nav{display:grid}
.cbar-nav:hover{background:var(--paper);border-color:var(--cyan);color:var(--cyan)}
.cbar-prev{left:0}
.cbar-next{right:0}
@media (max-width:1020px){.cbar{--fade:48px;--vfade:22px;--cell:184px;--bh:124px;--u:.9px}.cbar.is-scroll{--fade:88px}}
@media (max-width:640px){.cbar{--fade:28px;--vfade:18px;--cell:156px;--bh:104px;--u:.8px}.cbar.is-scroll{--fade:52px}.cbar-nav{width:36px;height:36px}}
.hero-all{display:inline-flex;gap:8px;margin-top:10px;color:#6CC0E0;font-weight:600;font-size:.86rem}
@media (max-width:640px){
  .wa{padding:13px;gap:0}
  .wa span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
/* ---------- NR10: retratos e galeria exclusiva ---------- */
.nr10-intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(28px,5vw,64px);align-items:center;margin-top:22px}
.nr10-copy{min-width:0}
.nr10-copy h1{margin-top:0}
.nr10-copy .lead{margin-top:24px;max-width:54ch}
.nr10-copy .nr10-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.nr10-copy .spec{margin:24px 0 0}
.nr10-portrait{margin:0;width:100%;max-width:380px;aspect-ratio:3/4;justify-self:end}
.nr10-portrait img{display:block;width:100%;height:100%;object-fit:contain}
.hero .bg img.nr10-bg{object-fit:contain;object-position:right center;transform:none}
.gal.nr10-gal{grid-template-columns:repeat(2,minmax(0,1fr));max-width:920px;margin-inline:auto}
.nr10-gal .ph{aspect-ratio:3/4}
.nr10-gal .ph img{object-fit:contain}
.nr10-gal .nr10-item{display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:zoom-in}
.nr10-gal .nr10-item:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
@media (max-width:1020px){.nr10-intro{grid-template-columns:minmax(0,1fr) minmax(240px,.65fr);gap:28px}.nr10-portrait{max-width:340px}}
@media (max-width:640px){.nr10-intro{grid-template-columns:minmax(0,1fr)}.nr10-portrait{justify-self:center;max-width:340px}.gal.nr10-gal{grid-template-columns:minmax(0,1fr);max-width:440px}.hero .bg img.nr10-bg{object-position:center bottom}}

/* ---------- Redes: paisagens e galeria exclusiva ---------- */
.d-hero.redes-hero .ph{aspect-ratio:3/2}
.gal.redes-gal{grid-template-columns:repeat(2,minmax(0,1fr))}
.gal.redes-gal.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.redes-gal .ph{aspect-ratio:3/2}
.redes-gal .redes-item.contain .ph img{object-fit:contain;transform:none!important}
.redes-gal .redes-item{display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:zoom-in}
.redes-gal .redes-item:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
@media (max-width:1020px){.gal.redes-gal.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.gal.redes-gal,.gal.redes-gal.g3{grid-template-columns:minmax(0,1fr)}}

/* ---------- responsivo ---------- */
@media (max-width:1020px){
  .nav,.hdr-actions .btn{display:none}
  .menu-btn{display:grid}
  .hdr-actions{margin-left:auto}
  .hero .wrap{grid-template-columns:minmax(0,1fr);align-items:start}
  .phead-grid,.ov,.split,.contact,.cta .wrap,.d-hero{grid-template-columns:minmax(0,1fr)}
  .sec-head{grid-template-columns:minmax(0,1fr)}
  .sec-head > p{justify-self:start}
  .row{grid-template-columns:minmax(0,1fr) 44px}
  .row p{display:none}
  .hl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}
  .steps::before,.steps .prog{display:none}
  .model{grid-template-columns:minmax(0,1fr)}
  .team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stamp{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stamp .big{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--line-2)}
  .stamp > div:nth-child(4){border-right:0}
  .stamp > div:nth-child(n+5){border-top:1px solid var(--line-2)}
  .gal.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  body{font-size:15px}
  .brand small{display:none}
  .stats .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat{padding:20px 12px 18px 0}
  .stat + .stat{padding-left:0}
  .stat:nth-child(2n){padding-left:16px;border-right:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .row{grid-template-columns:minmax(0,1fr) 40px;gap:12px}
  .row .code{grid-column:1/-1}
  .cards,.gal,.gal.g4,.hl,.steps,.tech,.vals,.team{grid-template-columns:minmax(0,1fr)}
  .tech div + div{padding-left:0;border-left:0}
  .vals div:nth-child(odd){border-right:0}
  .vals div:nth-child(even){padding-left:0}
  .model .views{grid-template-columns:repeat(2,minmax(0,1fr))}
  .f2{grid-template-columns:minmax(0,1fr)}
  .cinfo > div{grid-template-columns:minmax(0,1fr) auto}
  .cinfo .k{grid-column:1/-1}
  .crea{grid-template-columns:minmax(0,1fr)}
  .foot-top{grid-template-columns:minmax(0,1fr)}
  .stamp{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stamp > div{border-right:0;border-top:1px solid var(--line-2)}
  .stamp > div:nth-child(odd):not(.big){border-right:1px solid var(--line-2)}
  .stamp > div:nth-child(2n):not(:first-child){border-right:1px solid var(--line-2)}
  .stamp > div:nth-child(2n+1):not(.big){border-right:0}
  .stamp .big{border-top:0}
  .pager{grid-template-columns:minmax(0,1fr)}
  .pager a:last-child{border-left:0;border-top:1px solid var(--line);padding-left:0}
  .wa span{display:none}
  .wa{padding:12px}
  .logo{height:36px}
  .svc li button{padding:8px 16px}
  .svc-cap{display:none}
  .hero::before{background:linear-gradient(0deg,rgba(8,14,18,.94) 0%,rgba(8,14,18,.78) 55%,rgba(8,14,18,.55) 100%)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
  .marq,.clients{animation:none!important}
}
.layer .fr .bd.pre{background:#13212B;color:#fff}
.m3d{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center;margin-top:clamp(56px,8vw,96px);border:1px solid var(--line-2);background:var(--sheet);padding:clamp(16px,2.4vw,28px)}
.m3d-stage{position:relative;display:block;width:100%;aspect-ratio:1683.78/1190.55;padding:0;background:#fff;border:1px solid var(--line);overflow:hidden;cursor:zoom-in}
.m3d-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:transform .6s var(--ease-out)}
.m3d-stage:hover .m3d-poster{transform:scale(1.015)}
.m3d-play{position:absolute;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;background:#13212B;color:#fff;font-weight:600;font-size:.86rem;box-shadow:0 10px 30px -10px rgba(10,18,23,.5);transition:background .2s}
.m3d-stage:hover .m3d-play,.m3d-stage:focus-visible .m3d-play{background:var(--cyan)}
.m3d-txt h3{font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:400;line-height:1.15;margin:14px 0 12px}
.m3d-list{margin:18px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.m3d-list li{padding:10px 0;border-bottom:1px solid var(--line);font-size:.93rem;display:flex;gap:10px;align-items:center}
.m3d-list li::before{content:"";width:7px;height:7px;border:1.5px solid var(--cyan);transform:rotate(45deg);flex-shrink:0}
.lbx .stage img.sheet{cursor:zoom-in;transition:transform .35s var(--ease-out),opacity .4s}
.lbx.open .stage img.sheet.zoom{transform:scale(2.6);cursor:zoom-out}
@media (max-width:1020px){.m3d{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.m3d-play{right:10px;bottom:10px;padding:8px 12px;font-size:.8rem}}


/* caso inversor */
.inv-ctl{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.inv-vw{display:inline-flex;border:1px solid var(--line-2)}
.inv-vw button{all:unset;cursor:pointer;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:7px 11px;color:var(--ink-3);transition:background .25s,color .25s}
.inv-vw button[aria-pressed="true"]{background:var(--cyan-soft);color:var(--ink)}
.inv-vw button:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}
.inv-stage{position:relative;aspect-ratio:3/4;overflow:hidden;background:#fff;border:1px solid var(--line);cursor:pointer;box-shadow:0 30px 60px -30px rgba(10,18,23,.45)}
.inv-stage img{position:absolute;inset:0;width:100%;height:100%;transition:opacity .7s var(--ease),transform 1.2s var(--ease-out)}
.inv-stage img.p{object-fit:contain;padding:7%;box-sizing:border-box;background:#fff}
.inv-stage img.m{object-fit:cover;background:#0A1217}
.inv-stage[data-ph="p"] img.m,.inv-stage[data-ph="m"] img.p{opacity:0;transform:scale(1.03)}
.inv-stage.sw img{opacity:0!important}
.inv-stage .lb{position:absolute;top:14px;left:14px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;pointer-events:none;transition:opacity .4s}
.inv-stage .lb.p{background:#13212B;color:#fff}
.inv-stage .lb.m{background:#43A8CE;color:#0A1217}
.inv-stage[data-ph="p"] .lb.m,.inv-stage[data-ph="m"] .lb.p{opacity:0}
.inv-steps{list-style:none;margin:clamp(48px,7vw,80px) 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid var(--line-2)}
.inv-steps li{position:relative;padding:22px 18px 4px 0;display:flex;flex-direction:column;gap:6px}
.inv-steps li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px var(--paper)}
.inv-steps b{font-family:var(--f-display);font-weight:500;font-size:1.05rem}
.inv-steps span{color:var(--ink-2);font-size:.9rem;line-height:1.45}
@media (max-width:1020px){.inv-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:8px;border-top:0}.inv-steps li{border-top:1px solid var(--line-2)}}
@media (max-width:640px){.inv-steps{grid-template-columns:minmax(0,1fr)}}

/* Retrato aprovado do Diretor Técnico, sem interação de ampliação. */
.team .team-portrait{position:relative;aspect-ratio:1;margin:0;overflow:hidden;background:#CCD4DD;cursor:default}
.team .team-portrait img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;pointer-events:none;user-select:none;transform:none!important;transition:none}
/* Retrato e monogramas compactos, mesma largura em todos os cartões. */
.team .ph,.team .team-portrait{max-width:168px}


/* =====================================================================
   REFINO DE DESIGN · Systec · 2026-10-06
   Camada aplicada por cima do site, sem mexer em menus nem em fotos.
   Foco: tipografia, cor, ritmo de espaçamento e transições de imagem.
   ===================================================================== */

/* ---------- tokens refinados ---------- */
:root{
  --ink:#101E28; --ink-2:#42535D; --ink-3:#5A6B75;
  --line:rgba(16,30,40,.12); --line-2:rgba(16,30,40,.24);
  --paper:#F2F4F5; --paper-2:#E4E9EC;
  --ease-soft:cubic-bezier(.22,.61,.36,1);
  --ease-photo:cubic-bezier(.25,.46,.2,1);
  --shadow-1:0 1px 2px rgba(10,18,23,.05),0 8px 24px -12px rgba(10,18,23,.18);
  --shadow-2:0 2px 4px rgba(10,18,23,.06),0 24px 48px -20px rgba(10,18,23,.32);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ink:#E4ECEF; --ink-2:#9DAEB7; --ink-3:#8496A0;
  --line:rgba(228,236,239,.10); --line-2:rgba(228,236,239,.22);
  --paper:#0B1318; --paper-2:#111C23;
  --shadow-1:0 1px 2px rgba(0,0,0,.3),0 8px 24px -12px rgba(0,0,0,.6);
  --shadow-2:0 2px 4px rgba(0,0,0,.3),0 24px 48px -20px rgba(0,0,0,.7)}}
:root[data-theme="dark"]{
  --ink:#E4ECEF; --ink-2:#9DAEB7; --ink-3:#8496A0;
  --line:rgba(228,236,239,.10); --line-2:rgba(228,236,239,.22);
  --paper:#0B1318; --paper-2:#111C23;
  --shadow-1:0 1px 2px rgba(0,0,0,.3),0 8px 24px -12px rgba(0,0,0,.6);
  --shadow-2:0 2px 4px rgba(0,0,0,.3),0 24px 48px -20px rgba(0,0,0,.7)}

/* ---------- tipografia ---------- */
body{font-size:clamp(15.5px,.35vw + 14.4px,17px);line-height:1.62;text-rendering:optimizeLegibility;font-kerning:normal}
p,li,dd{text-wrap:pretty}
::selection{background:rgba(67,168,206,.28);color:inherit}
.eyebrow{font-size:.7rem;letter-spacing:.16em;font-weight:500;gap:.7rem}
.eyebrow::before{width:22px;transition:width .6s var(--ease-out)}
.rv.on .eyebrow::before,.sec-head.on .eyebrow::before{width:30px}
.mono{letter-spacing:.08em}

.sec-head{margin-bottom:clamp(36px,5vw,60px)}
.sec-head h2,.h2{font-size:clamp(2.05rem,3.9vw,3.3rem);line-height:1.04;letter-spacing:-.02em}
.sec-head > p{font-size:.98rem;line-height:1.65;max-width:44ch}
.ov h2,.case h2{letter-spacing:-.02em;line-height:1.06}
.ov .txt{font-size:1.04rem;line-height:1.72}
.ov .txt p + p{margin-top:2px}
.phead h1{letter-spacing:-.03em;line-height:.96}
.phead .lead{font-size:clamp(1.02rem,.4vw + .95rem,1.14rem);line-height:1.62}
.hero h1{letter-spacing:-.032em;line-height:.95}
.hero .lead{font-size:clamp(1rem,.35vw + .95rem,1.12rem);line-height:1.62;color:rgba(255,255,255,.82);max-width:44ch}
.row h3{letter-spacing:-.01em}
.card h3{font-size:1.28rem;line-height:1.22;letter-spacing:-.01em;transition:color .35s}
.card p{line-height:1.58}
.step h3{font-size:1.38rem;letter-spacing:-.01em}
.hl h3{font-size:1.16rem;letter-spacing:-.005em}
.muted{line-height:1.68}
.specs dd{line-height:1.5}
.stat b{letter-spacing:-.02em}
.stat > span{font-size:.84rem;line-height:1.45}

/* ---------- ritmo de seções ---------- */
.sec{padding-block:clamp(60px,8.4vw,112px)}
.cards{gap:clamp(18px,2.2vw,28px)}
.gal{gap:clamp(12px,1.6vw,20px)}

/* ---------- cabeçalho ---------- */
.hdr{transition:background .4s,border-color .4s,box-shadow .4s}
.hdr .wrap{transition:height .45s var(--ease-out)}
.logo{transition:height .45s var(--ease-out)}
html.rf-scrolled .hdr:not(.over){box-shadow:0 1px 0 var(--line),0 10px 30px -18px rgba(10,18,23,.35);border-bottom-color:transparent}
/* logotipo maior e legível ("Engenharia elétrica e automação") */
:root{--hdr:84px}
.hdr .logo{height:58px}
@media (min-width:1021px){
  html.rf-scrolled .hdr:not(.over) .wrap{height:68px}
  html.rf-scrolled .hdr:not(.over) .logo{height:48px}
}
@media (max-width:1020px){:root{--hdr:76px}.hdr .logo{height:52px}}
@media (max-width:640px){:root{--hdr:68px}.hdr .logo{height:44px}}
.nav a{letter-spacing:.005em}
.nav .ind{height:2px;border-radius:2px}

/* barra fina de progresso de leitura */
.rf-progress{position:fixed;left:0;top:0;height:2px;width:100%;z-index:55;pointer-events:none;background:linear-gradient(90deg,#1E8DB8,#62D2F2);transform-origin:0 50%;transform:scaleX(var(--rf-p,0));opacity:.9;transition:opacity .3s}
html:not(.rf-scrolled) .rf-progress{opacity:0}

/* ---------- botões ---------- */
.btn{letter-spacing:.01em;transition:color .3s,border-color .3s,box-shadow .35s var(--ease-out),transform .35s var(--ease-out)}
.btn:hover{box-shadow:0 10px 24px -14px rgba(30,141,184,.75)}
.btn:active{transform:translateY(1px)}
.btn.ghost:hover{box-shadow:none}

/* ---------- HERO: troca de fotos sem “apagão” ---------- */
.hero .bg img{
  opacity:0;transform:scale(1.06) translate3d(0,0,0);
  transition:opacity 1.6s var(--ease-soft),transform 9s var(--ease-photo);
  will-change:opacity,transform;filter:saturate(.92) contrast(1.03)}
.hero .bg img.on{opacity:1;transform:scale(1.02) translate3d(0,0,0);z-index:2}
.hero .bg img.on.rf-alt{transform:scale(1.02) translate3d(-.8%,0,0)}
.hero .bg img.rf-was{opacity:1;z-index:1;transition:opacity 0s 1.7s,transform 9s var(--ease-photo)}
.hero .bg img.nr10-bg{transform:none}
.hero .bg img.nr10-bg.on,.hero .bg img.nr10-bg.rf-was{transform:none}
/* fotos em pé (ou pequenas): inteiras à direita, sem esticar, com fundo escuro opaco
   para a foto anterior não aparecer pelas laterais durante a troca */
.hero .bg img.nr10-bg,.hero .bg img.rf-side{object-fit:contain;object-position:right center;background-color:#0A1217;transform:none!important;filter:none}
@media (max-width:640px){.hero .bg img.nr10-bg,.hero .bg img.rf-side{object-position:center bottom}}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 90% at 78% 30%,transparent 40%,rgba(6,11,14,.35) 100%)}
.hero h1 .ln > span{animation-duration:1.15s}
.hero .lead,.hero .ctas,.hero .eyebrow{animation:rfFadeUp 1s var(--ease-out) both}
.hero .eyebrow{animation-delay:.05s}
.hero .lead{animation-delay:.28s}
.hero .ctas{animation-delay:.38s}
.svc{animation:rfFadeUp 1.1s var(--ease-out) .3s both;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
@keyframes rfFadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.svc li button{transition:color .35s,background .35s}
.svc li button:hover{background:rgba(255,255,255,.04)}
.svc li .t{font-size:.98rem;letter-spacing:.005em}
.svc-cap{transition:opacity .35s var(--ease-soft),transform .35s var(--ease-soft)}
.svc-cap.rf-swap{opacity:0;transform:translateY(4px)}

/* ---------- fotos: revelação ao entrar na tela ---------- */
html.rf-js .rf-reveal{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease-out)}
html.rf-js .rf-reveal > img,html.rf-js .rf-reveal img.rf-in-img{transform:scale(1.12);transition:transform 1.6s var(--ease-photo)}
html.rf-js .rf-reveal.rf-on{clip-path:inset(0 0 0 0)}
html.rf-js .rf-reveal.rf-on > img,html.rf-js .rf-reveal.rf-on img.rf-in-img{transform:scale(1)}
html.rf-js .rf-reveal.rf-done{clip-path:none}
html.rf-js .rf-reveal.rf-done > img{transition:transform 1.2s var(--ease-out)}

/* entrada escalonada de blocos */
html.rf-js .rf-up{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease-soft),transform .9s var(--ease-out);transition-delay:var(--rf-d,0s)}
html.rf-js .rf-up.rf-on{opacity:1;transform:none}

/* contorno sutil nas fotos para nitidez em fundo claro */
.ph.has::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(10,18,23,.06)}
.ph img{transition:transform 1.2s var(--ease-photo)}
.ph .tag{font-size:.68rem;letter-spacing:.12em;padding:5px 9px}
.ph .cap{line-height:1.45;text-shadow:0 1px 12px rgba(0,0,0,.35)}

/* ---------- cards de projeto ---------- */
.card .ph{transition:box-shadow .5s var(--ease-out)}
.card:hover .ph,.card:focus-visible .ph{box-shadow:var(--shadow-2)}
.card:hover .ph img{transform:scale(1.06)}
.card .ph.has::before{transition:opacity .5s}
.card:hover .ph.has::before{opacity:.85}
.card:hover h3{color:var(--cyan)}
.card .meta{padding-top:2px;border-top:1px solid var(--line);padding-top:12px}
.card h3{position:relative}
.card:focus-visible{outline:2px solid var(--cyan);outline-offset:6px}

/* ---------- linhas de soluções ---------- */
.row{transition:border-color .4s}
.row::before{transition:transform .55s var(--ease-out)}
.row h3{transition:transform .55s var(--ease-out),color .3s}
.row:hover h3{color:var(--ink)}
.row .go{transition:background .35s,border-color .35s,color .35s,transform .45s var(--ease-out)}
.row:hover .go{transform:translateX(4px)}
.peek{box-shadow:var(--shadow-2);transition:opacity .3s var(--ease-soft),transform .45s var(--ease-out)}
.peek img{transition:opacity .25s}

/* ---------- faixa de normas ---------- */
.band.rf-band{position:relative;display:flex;align-items:stretch;overflow:hidden;background:#0D1820;border-block:1px solid rgba(98,210,242,.14);
  background-image:repeating-linear-gradient(90deg,rgba(98,210,242,.22) 0 1px,transparent 1px 12px),repeating-linear-gradient(90deg,rgba(98,210,242,.38) 0 1px,transparent 1px 60px),repeating-linear-gradient(90deg,rgba(98,210,242,.22) 0 1px,transparent 1px 12px);
  background-size:100% 6px,100% 10px,100% 6px;background-position:0 0,0 0,0 100%;background-repeat:no-repeat}
.rf-band-label{flex:0 0 auto;position:relative;z-index:3;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 clamp(20px,3vw,40px) 0 max(var(--gut),calc((100vw - var(--max))/2 + var(--gut)));background:#0D1820;box-shadow:28px 0 36px 6px #0D1820}
.rf-band-label span{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:#62D2F2}
.rf-band-label b{font-family:var(--f-display);font-weight:400;font-size:1.1rem;line-height:1.2;color:#E2EBEE}
.rf-band-label em{font-style:normal;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:#6F8591;margin-top:8px;display:flex;align-items:center;gap:8px}
.rf-band-label em::before{content:"";width:14px;height:1px;background:currentColor}
.rf-band-view{position:relative;flex:1 1 auto;min-width:0;overflow:hidden;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.rf-band.rf-dragging .rf-band-view{cursor:grabbing}
.rf-band::after{content:"";position:absolute;right:0;top:0;bottom:0;width:min(10vw,140px);z-index:2;pointer-events:none;background:linear-gradient(270deg,#0D1820,rgba(13,24,32,0))}
.rf-band .marq{display:flex;width:max-content;animation:none!important;will-change:transform;padding-block:26px;gap:14px;padding-right:14px}
.rf-norma{position:relative;flex:0 0 auto;width:268px;height:178px;display:grid;grid-template-rows:auto auto 1fr auto;gap:6px;padding:16px 20px 15px;border:1px solid rgba(226,235,238,.12);background:rgba(255,255,255,.025);color:#E2EBEE;text-decoration:none;overflow:hidden;isolation:isolate;
  transition:border-color .35s,background .35s,transform .45s var(--ease-out),box-shadow .45s var(--ease-out)}
.rf-norma::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:linear-gradient(90deg,#1E8DB8,#62D2F2);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
.rf-norma:hover,.rf-norma:focus-visible{border-color:rgba(98,210,242,.55);background:rgba(98,210,242,.075);transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(0,0,0,.9)}
.rf-norma:hover::before,.rf-norma:focus-visible::before{transform:scaleX(1)}
.rf-norma:focus-visible{outline:2px solid #62D2F2;outline-offset:3px}
.rf-norma i{font-style:normal}
.rf-n-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase}
.rf-n-area{color:#0C1419;background:#62D2F2;padding:2px 6px}
.rf-n-org{color:#7F95A0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rf-n-num{font-family:var(--f-display);font-weight:500;font-size:2rem;line-height:1;letter-spacing:-.015em;color:#fff;font-variant-numeric:tabular-nums}
.rf-n-txt{position:relative;min-height:0}
.rf-n-s,.rf-n-f{position:absolute;inset:0;transition:opacity .35s var(--ease-soft),transform .45s var(--ease-out)}
.rf-n-s{font-size:.92rem;line-height:1.35;color:#C6D3D9}
.rf-n-f{font-size:.78rem;line-height:1.4;color:#B4C4CC;opacity:0;transform:translateY(8px);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rf-norma:hover .rf-n-s,.rf-norma:focus-visible .rf-n-s{opacity:0;transform:translateY(-8px)}
.rf-norma:hover .rf-n-f,.rf-norma:focus-visible .rf-n-f{opacity:1;transform:none}
.rf-n-go{font-size:.78rem;font-weight:600;color:#62D2F2;opacity:.0;transform:translateX(-6px);transition:opacity .35s,transform .45s var(--ease-out)}
.rf-norma:hover .rf-n-go,.rf-norma:focus-visible .rf-n-go{opacity:1;transform:none}
div.rf-norma .rf-n-go{color:#7F95A0;font-weight:500}
@media (hover:none){.rf-n-go{opacity:.85;transform:none}}
@media (max-width:640px){.rf-band-label{display:none}.rf-norma{width:228px;height:170px;padding:14px 16px}.rf-n-num{font-size:1.7rem}}
@media (prefers-reduced-motion:reduce){
}

/* ---------- clientes: movimento guiado pelo mouse (igual à faixa de normas) ---------- */
.cbar.rf-auto .cbar-nav{display:none!important}
.cbar.rf-auto .cbar-view{overflow:hidden;scroll-snap-type:none;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.cbar.rf-auto.rf-dragging .cbar-view{cursor:grabbing}
.cbar.rf-auto .cbar-track{justify-content:flex-start;padding:0;min-width:0;animation:none!important;will-change:transform}
.cbar.rf-auto .cbar-cell{transition:background .35s var(--ease-soft)}
.cbar.rf-auto .cbar-cell::after{content:"";position:absolute;left:18%;right:18%;bottom:18%;height:2px;background:linear-gradient(90deg,#1E8DB8,#62D2F2);transform:scaleX(0);transition:transform .45s var(--ease-out)}
.cbar.rf-auto .cbar-cell:hover{background:radial-gradient(70% 70% at 50% 50%,rgba(67,168,206,.12),rgba(67,168,206,0) 72%)}
.cbar.rf-auto .cbar-cell:hover::after{transform:scaleX(1)}
.cbar.rf-auto .cbar-cell img{transition:filter .35s,opacity .35s,transform .5s var(--ease-out)}
.cbar.rf-auto .cbar-cell:hover img{filter:none;opacity:1;transform:scale(1.08)}

/* ---------- destaques (escopo) ---------- */
.hl > div{position:relative;transition:background .35s}
.hl > div::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--cyan);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease-out)}
.hl > div:hover::before{transform:scaleX(1)}
.hl svg{transition:transform .5s var(--ease-out)}
.hl > div:hover svg{transform:translateY(-2px)}
.hl p{line-height:1.55}

/* ---------- método ---------- */
.step .node{transition:background .5s,border-color .5s,color .5s,box-shadow .6s}
.step.lit .node{box-shadow:0 0 0 6px var(--cyan-soft)}
.step p{line-height:1.6;max-width:30ch}

/* ---------- galerias / camadas ---------- */
.layer .fr{transition:border-color .35s,box-shadow .5s var(--ease-out)}
.layer:hover .fr{border-color:var(--line-2);box-shadow:var(--shadow-1)}
.layer .fr img{transition:transform 1.1s var(--ease-photo)}
.layer b{transition:color .3s}
.layer:hover b{color:var(--cyan)}
.cmp,.inv-stage{box-shadow:var(--shadow-2)}
.inv-stage img{transition:opacity .9s var(--ease-soft),transform 1.4s var(--ease-out)}
.cmp img{transition:opacity .6s var(--ease-soft)}

/* ---------- lightbox: entrada e troca com direção ---------- */
.lbx{background:rgba(6,11,14,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .4s var(--ease-soft),visibility .4s}
.lbx .stage img{transform:scale(.97) translateX(var(--rf-dx,0px));transition:transform .6s var(--ease-out),opacity .45s var(--ease-soft);box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
.lbx .cap{transition:opacity .3s}
.lbx .cap b{letter-spacing:.005em}
.lbx .nav-b{transition:background .25s,border-color .25s}
.lbx .nav-b:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6)}

/* ---------- drawer ---------- */
.drawer .scrim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.drawer .panel{transition:transform .6s var(--ease-out);box-shadow:-30px 0 60px -30px rgba(0,0,0,.4)}
.drawer.open .panel > *{animation:rfFadeUp .6s var(--ease-out) both}
.drawer.open .panel > *:nth-child(2){animation-delay:.06s}
.drawer.open .panel > *:nth-child(3){animation-delay:.1s}
.drawer.open .panel > *:nth-child(n+4){animation-delay:.14s}

/* ---------- filtros e chips ---------- */
.fbtn{font-size:.85rem;letter-spacing:.01em;transition:background .3s,color .3s,border-color .3s}
.chip{font-size:.68rem;letter-spacing:.08em}

/* ---------- formulário ---------- */
.fld input,.fld select,.fld textarea{transition:border-color .3s,box-shadow .3s}
.fld input:focus,.fld select:focus,.fld textarea:focus{box-shadow:0 2px 0 -1px var(--cyan)}
.form{box-shadow:var(--shadow-1)}

/* ---------- CTA e rodapé ---------- */
.cta h2{letter-spacing:-.03em;line-height:.98}
.cta p{line-height:1.65;max-width:44ch}
.cta .phone{letter-spacing:.01em;transition:color .3s}
.foot-top p,.foot-top a{line-height:1.7}
.foot-top a{transition:color .25s,transform .35s var(--ease-out)}
.foot-top a:hover{transform:translateX(3px)}

/* ---------- rodapé: assinatura (substitui o carimbo) ---------- */
.fsig{position:relative;border-top:1px solid var(--line-2)}
.fsig::before{content:"";position:absolute;left:0;top:-1px;width:72px;height:2px;background:linear-gradient(90deg,var(--cyan),#62D2F2)}
.fsig-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center;padding:clamp(28px,4vw,40px) 0}
.fsig-brand{display:inline-flex;transition:opacity .3s}
.fsig-brand:hover{opacity:.8}
.fsig-brand .logo{height:clamp(46px,4.4vw,58px)}
.fsig-vals{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-self:end;width:min(100%,720px)}
.fsig-vals li{display:flex;flex-direction:column;gap:4px;padding:2px 0 2px 22px;border-left:1px solid var(--line);position:relative}
.fsig-vals li::before{content:"";position:absolute;left:-4.5px;top:9px;width:8px;height:8px;background:var(--sheet);border:1.5px solid var(--cyan);transform:rotate(45deg)}
.fsig-vals b{font-family:var(--f-display);font-weight:500;font-size:1.08rem;letter-spacing:-.005em;color:var(--ink)}
.fsig-vals span{font-size:.84rem;color:var(--ink-2);line-height:1.45}
.foot-bot{margin-top:0;padding-top:18px;border-top:1px solid var(--line);align-items:center;font-size:.7rem;letter-spacing:.06em}
.foot-bot i{font-style:normal;margin:0 .5em;color:var(--cyan)}
.fsig-top{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);padding:6px 0;transition:color .25s}
.fsig-top svg{transition:transform .4s var(--ease-out)}
.fsig-top:hover{color:var(--cyan)}
.fsig-top:hover svg{transform:translateY(-3px)}
.fsig-top:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
.foot-top{margin-bottom:clamp(32px,4vw,44px)}
@media (max-width:1020px){
  .fsig-main{grid-template-columns:minmax(0,1fr);gap:28px}
  .fsig-vals{justify-self:stretch;width:100%}
}
@media (max-width:640px){
  .fsig-vals{grid-template-columns:minmax(0,1fr);gap:16px}
  .foot-bot{flex-direction:column;align-items:flex-start;gap:10px}
}

/* ---------- WhatsApp ---------- */
.wa{box-shadow:0 10px 30px -10px rgba(31,157,85,.55);transition:transform .35s var(--ease-out),box-shadow .35s}
.wa:hover{box-shadow:0 14px 34px -10px rgba(31,157,85,.7)}

/* ---------- acessibilidade: sem movimento ---------- */
@media (prefers-reduced-motion:reduce){
  html.rf-js .rf-reveal,html.rf-js .rf-up{clip-path:none!important;opacity:1!important;transform:none!important}
  html.rf-js .rf-reveal > img{transform:none!important}
  .hero .bg img,.hero .bg img.on{transform:none!important}
  .rf-progress{display:none}
}



/* Infraestrutura: acabamento exclusivo desta aba. */
.infra-hero{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(230px,.85fr);gap:clamp(24px,4vw,48px);align-items:start;margin-top:clamp(28px,4vw,48px)}
.infra-feature{margin:0;min-width:0}
.infra-feature-image{display:block;width:100%;padding:0;border:0;background:var(--paper-2);cursor:zoom-in;overflow:hidden}
.infra-feature-image img{display:block;width:100%;height:auto}
.infra-feature-image:focus-visible,.infra-card:focus-visible{outline:2px solid var(--cyan);outline-offset:6px}
.infra-feature-foot{display:flex;justify-content:space-between;align-items:start;gap:18px;padding-top:14px;color:var(--ink-2);font-size:.86rem;line-height:1.5}
.infra-feature-foot b{display:block;color:var(--ink);font-family:var(--f-display);font-size:1.04rem;font-weight:500;margin-bottom:3px}
.infra-action{white-space:nowrap;color:var(--cyan);font-family:var(--f-mono);font-size:.7rem;letter-spacing:.06em;padding-top:4px}
.infra-spec{margin:0;border-top:1px solid var(--line-2)}
.infra-spec-row{padding:18px 0;border-bottom:1px solid var(--line)}
.infra-spec dt{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.infra-spec dd{margin:8px 0 0;font-size:.94rem;line-height:1.65;color:var(--ink)}
.infra-norms{display:flex;flex-wrap:wrap;gap:7px}
.infra-norm{padding:5px 8px;border:1px solid var(--line);font-size:.73rem;line-height:1.35;color:var(--ink-2)}
.infra-delivery{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(28px,5vw,72px);align-items:start}
.infra-delivery h2{margin-top:14px;max-width:13ch}
.infra-delivery-copy{margin-top:16px;max-width:40ch;color:var(--ink-2)}
.infra-delivery-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-2);counter-reset:infra-step}
.infra-delivery-list li{counter-increment:infra-step;display:grid;grid-template-columns:30px minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--line);line-height:1.6}
.infra-delivery-list li::before{content:counter(infra-step,decimal-leading-zero);font-family:var(--f-mono);font-size:.76rem;color:var(--cyan);padding-top:3px}
.infra-gallery-head{display:flex;justify-content:space-between;align-items:end;gap:clamp(24px,4vw,48px);margin-bottom:clamp(24px,4vw,40px)}
.infra-gallery-head h2{margin-top:14px}
.infra-gallery-head p:last-child{max-width:48ch;color:var(--ink-2);font-size:.95rem;line-height:1.6}
.infra-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,44px)}
.infra-card{display:flex;flex-direction:column;align-self:start;min-width:0;width:100%;padding:0;border:0;background:none;color:var(--ink);text-align:left;cursor:zoom-in}
.infra-card-wide{grid-column:1/-1}
.infra-image{display:block;width:100%;background:var(--paper-2);overflow:hidden;border:1px solid var(--line)}
.infra-image img{display:block;width:100%;height:auto}
.infra-caption{display:block;width:100%;padding:15px 0 0}
.infra-caption-line{display:flex;align-items:start;justify-content:space-between;gap:16px}
.infra-caption-title{display:block;font-family:var(--f-display);font-size:clamp(1.05rem,1.4vw,1.28rem);font-weight:500;line-height:1.3}
.infra-caption-text{display:block;font-size:.87rem;line-height:1.55;color:var(--ink-2);margin-top:6px;max-width:64ch}
.infra-badge{display:inline-block;margin-top:10px;padding:4px 7px;border:1px solid var(--line-2);color:var(--ink-3);font-size:.68rem;letter-spacing:.035em}
.infra-card:hover .infra-caption-title{color:var(--cyan)}
@media(max-width:900px){.infra-hero{grid-template-columns:minmax(0,1fr)}.infra-spec{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.infra-spec-row{padding:16px 0}.infra-delivery{grid-template-columns:minmax(0,1fr)}.infra-delivery h2{max-width:none}.infra-delivery-copy{max-width:58ch}}
@media(max-width:640px){.infra-grid{grid-template-columns:minmax(0,1fr)}.infra-gallery-head{display:block}.infra-gallery-head p:last-child{margin-top:16px}.infra-spec{grid-template-columns:minmax(0,1fr);gap:0}.infra-feature-foot{display:block}.infra-feature-foot .infra-action{display:block;margin-top:8px}.infra-card-wide{grid-column:auto}.infra-caption-line{gap:12px}.infra-action{font-size:.66rem}}


/* Linhas de produção: acabamento exclusivo desta solução. */
/* Linhas: caso e galeria no padrão das abas de painéis e NR-12 */
.lhint{display:none}
.lstrip{display:flex;gap:clamp(12px,1.6vw,20px);align-items:flex-start}
.lfig{all:unset;box-sizing:border-box;flex:var(--r) 1 0;min-width:0;cursor:zoom-in;display:flex;flex-direction:column;gap:12px}
.lfig:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
.lfr{position:relative;display:block;width:100%;aspect-ratio:var(--r);overflow:hidden;background:#0A1217;border:1px solid var(--line);box-shadow:0 30px 60px -34px rgba(10,18,23,.5)}
.lfr.draw{background:#fff}
.lfr img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.lfr.draw img{object-fit:contain;padding:5%;box-sizing:border-box}
.lfig:hover .lfr img{transform:scale(1.05)}
.lfr .lb{position:absolute;left:12px;top:12px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;background:#13212B;color:#fff;pointer-events:none}
.lfr:not(.draw) .lb{background:#43A8CE;color:#0A1217}
.lfr .lz{position:absolute;right:12px;bottom:12px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;padding:6px 10px;background:rgba(19,33,43,.9);color:#fff;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s;pointer-events:none}
.lfig:hover .lz,.lfig:focus-visible .lz{opacity:1;transform:none}
.lcap{display:flex;flex-direction:column;gap:3px;font-size:.86rem;line-height:1.5;color:var(--ink-2)}
.lcap b{font-family:var(--f-display);font-weight:500;font-size:1.08rem;line-height:1.3;color:var(--ink)}
.lstrip.rv{transform:none}
.lstrip .lfig{opacity:0;transform:translateX(56px);transition:opacity .9s ease calc(var(--i,0)*160ms),transform 1.1s cubic-bezier(.16,1,.3,1) calc(var(--i,0)*160ms)}
.lstrip.on .lfig{opacity:1;transform:none}
.lbelow{margin-top:clamp(32px,4vw,48px)}
.lbelow .btn{margin-top:28px}
.lspecs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,4vw,56px);margin:0;border-top:0}
.lspecs div{grid-template-columns:minmax(0,104px) minmax(0,1fr)}
.lspecs div:nth-child(-n+2){border-top:1px solid var(--line-2)}
.lgal.layers{grid-template-columns:repeat(4,minmax(0,1fr))}
.lgal.rv{transform:none}
.lgal .layer{opacity:0;transform:translateY(22px);transition:opacity .8s ease calc(var(--i,0)*90ms),transform .9s cubic-bezier(.2,.7,.2,1) calc(var(--i,0)*90ms)}
.lgal.on .layer{opacity:1;transform:none}
@media(max-width:1020px){.lgal.layers{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .lhint{display:block;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cyan);margin:-8px 0 14px}
  .lstrip{overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut)*-1);padding:0 var(--gut) 8px;scrollbar-width:none;overscroll-behavior-x:contain}
  .lstrip::-webkit-scrollbar{display:none}
  .lfig{flex:0 0 78%;scroll-snap-align:center}
  .lfr{aspect-ratio:1/1}
  .lspecs{grid-template-columns:minmax(0,1fr)}
  .lspecs div:nth-child(2){border-top:0}
  .lspecs div{grid-template-columns:minmax(0,1fr);gap:2px}
}
@media(prefers-reduced-motion:reduce){.lgal .layer,.lstrip .lfig{opacity:1;transform:none;transition:none}.lfr img{transition:none}}

.linhas-head .linhas-intro{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(24px,4vw,48px);align-items:end}
.linhas-intro h1{margin-top:22px}
.linhas-lead{display:flex;flex-direction:column;gap:18px;align-items:start}
.linhas-lead .lead{margin:0;max-width:52ch}
.linhas-actions{display:flex;gap:10px;flex-wrap:wrap}
.linhas-references{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.linhas-reference-label{font-family:var(--f-mono);font-size:.69rem;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;margin-right:6px}
.linhas-scope-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:start}
.linhas-scope-copy h2{margin-top:14px}
.linhas-scope-copy>p{color:var(--ink-2);margin-top:16px;max-width:53ch}
.linhas-delivery{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.linhas-delivery b{font-family:var(--f-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:400}
.linhas-delivery ul{margin:12px 0 0;padding-left:18px;list-style:disc;color:var(--ink-2);font-size:.86rem;line-height:1.6}
.linhas-delivery li+li{margin-top:5px}
.linhas-scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px}
.linhas-scope-item{padding-top:18px;border-top:1px solid var(--line-2)}
.linhas-scope-item h3{font-family:var(--f-display);font-size:clamp(1.15rem,1.7vw,1.45rem);font-weight:500;line-height:1.2}
.linhas-scope-item p{margin-top:10px;font-size:.88rem;line-height:1.6;color:var(--ink-2)}
.linhas-section-head{display:flex;justify-content:space-between;align-items:end;gap:clamp(24px,4vw,48px);margin-bottom:clamp(24px,4vw,38px)}
.linhas-section-head h2{margin-top:14px}
.linhas-section-head>p{max-width:52ch;color:var(--ink-2);font-size:.94rem;line-height:1.6}
.linhas-project-code{display:block;font-family:var(--f-mono);font-size:.69rem;letter-spacing:.05em;color:var(--ink-3);margin-top:12px}
.linhas-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,44px);align-items:start}
.linhas-case-grid h3{font-family:var(--f-display);font-size:1.35rem;font-weight:500;margin:0 0 16px}
.linhas-figure{margin:0;min-width:0}
.linhas-visual{display:block;width:100%;padding:0;border:1px solid var(--line);background:var(--paper-2);cursor:zoom-in;overflow:hidden}
.linhas-visual img{display:block;width:100%;height:auto}
.linhas-visual:focus-visible{outline:2px solid var(--cyan);outline-offset:6px}
.linhas-caption{display:block;padding-top:13px;color:var(--ink-2);font-size:.85rem;line-height:1.5}
.linhas-caption-row{display:flex;align-items:start;justify-content:space-between;gap:16px}
.linhas-caption-title{font-family:var(--f-display);font-size:1.08rem;font-weight:500;line-height:1.35;color:var(--ink)}
.linhas-caption p{margin-top:5px;max-width:60ch}
.linhas-zoom{white-space:nowrap;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.04em;color:var(--cyan);padding-top:3px}
.linhas-project-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.linhas-project-main{grid-column:1/-1}
.linhas-project-source{margin-top:18px;color:var(--ink-3);font-size:.78rem;line-height:1.5}
.linhas-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,44px)}
.linhas-pager{margin-top:8px}
.linhas-page-tail{height:clamp(48px,6vw,80px)}
@media(max-width:900px){.linhas-head .linhas-intro{grid-template-columns:minmax(0,1fr)}.linhas-scope-layout{grid-template-columns:minmax(0,1fr)}.linhas-scope-copy>p{max-width:65ch}.linhas-delivery ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 28px}.linhas-delivery li+li{margin-top:0}}
@media(max-width:640px){.linhas-case-grid,.linhas-photo-grid{grid-template-columns:minmax(0,1fr)}.linhas-section-head{display:block}.linhas-section-head>p{margin-top:16px}.linhas-scope-grid{grid-template-columns:minmax(0,1fr)}.linhas-delivery ul{grid-template-columns:minmax(0,1fr)}.linhas-project-grid{grid-template-columns:minmax(0,1fr)}.linhas-project-main{grid-column:auto}.linhas-caption-row{gap:12px}}


.ex-portrait{display:block;padding:0;border:0;background:none;cursor:zoom-in;text-align:left}
.ex-portrait .ph{width:100%;height:100%;aspect-ratio:auto}
.ex-portrait:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
.ex-portrait:hover .ph img{transform:scale(1.04)}


/* ===== rf-motion: transições entre abas ===== */
.wipe .wc{position:absolute;inset:0 -12%;display:flex;transform:skewX(-9deg)}
.wipe .wc i{flex:1;display:block;background:var(--band);transform:scaleY(0);transform-origin:bottom;
  transition:transform .46s cubic-bezier(.7,0,.2,1);transition-delay:calc(var(--k,0) * 46ms);margin-right:-1px}
.wipe .wc i:nth-child(even){background:var(--band-2)}
.wipe.in .wc i{transform:scaleY(1);transform-origin:bottom}
.wipe.out .wc i{transform:scaleY(0);transform-origin:top}
.wipe .wl{z-index:2}
.wipe[data-dir="r"] .wl{transform-origin:right}
.wipe[data-dir="r"].out .wl{transform-origin:left}
.wipe .ws,.wipe .wt{z-index:2}
.wipe.in .ws{transition-delay:.22s}
.wipe.out .ws{opacity:0;transform:translate(-50%,-80%) scale(.92);transition:opacity .25s,transform .4s var(--ease-out)}
.wipe .wt{transform:translate(-50%,72px)}
.wipe.in .wt{transform:translate(-50%,56px);transition:opacity .3s .28s,transform .5s var(--ease-out) .28s}
.wipe.out .wt{opacity:0;transform:translate(-50%,44px);transition:opacity .2s,transform .3s}

/* conteúdo saindo */
#conteudo{transition:opacity .34s ease,transform .42s cubic-bezier(.7,0,.2,1)}
#conteudo.pg-out{opacity:0;transform:translateX(calc(var(--pg-x,1) * -48px))}
#conteudo.pg-soft{opacity:0;transform:translateY(-14px);transition-duration:.24s}

/* conteúdo entrando em cascata */
.page-enter > *{animation:pgIn .95s var(--ease-out) both;animation-delay:var(--pg-d,0s)}
.page-enter > *:nth-child(2){animation-delay:calc(var(--pg-d,0s) + .08s)}
.page-enter > *:nth-child(3){animation-delay:calc(var(--pg-d,0s) + .16s)}
.page-enter > *:nth-child(n+4){animation-delay:calc(var(--pg-d,0s) + .22s)}
@keyframes pgIn{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}

/* topo das abas internas: migalha, título e texto em sequência + traço ciano que percorre a base */
.phead{position:relative}
.page-enter .phead .crumb,.page-enter .phead h1,.page-enter .phead .side>*{animation:pgUp .9s var(--ease-out) both}
.page-enter .phead .crumb{animation-delay:calc(var(--pg-d,0s) + .05s)}
.page-enter .phead h1{animation-delay:calc(var(--pg-d,0s) + .14s)}
.page-enter .phead .side>*{animation-delay:calc(var(--pg-d,0s) + .26s)}
.page-enter .phead::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg,transparent,var(--cyan) 30%,#62D2F2 60%,transparent);
  transform:scaleX(0);transform-origin:left;animation:pgLine 1.5s var(--ease-out) both;animation-delay:calc(var(--pg-d,0s) + .3s);pointer-events:none}
@keyframes pgUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes pgLine{0%{transform:scaleX(0);opacity:1}65%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}

/* página inicial: foto do topo aproxima e o texto entra em sequência */
.page-enter .hero .bg{animation:pgHeroBg 1.6s var(--ease-out) both;animation-delay:var(--pg-d,0s)}
@keyframes pgHeroBg{from{transform:scale(1.1);opacity:.35}to{transform:none;opacity:1}}
.page-enter .hero h1 .ln>span{animation-delay:calc(var(--pg-d,0s) + .1s)}
.page-enter .hero h1 .ln:nth-child(2)>span{animation-delay:calc(var(--pg-d,0s) + .18s)}
.page-enter .hero h1 .ln:nth-child(3)>span{animation-delay:calc(var(--pg-d,0s) + .26s)}
.page-enter .hero .eyebrow,.page-enter .hero .lead,.page-enter .hero .ctas,.page-enter .hero .svc{animation:pgUp .9s var(--ease-out) both}
.page-enter .hero .eyebrow{animation-delay:var(--pg-d,0s)}
.page-enter .hero .lead{animation-delay:calc(var(--pg-d,0s) + .36s)}
.page-enter .hero .ctas{animation-delay:calc(var(--pg-d,0s) + .46s)}
.page-enter .hero .svc{animation:pgSide 1s var(--ease-out) both;animation-delay:calc(var(--pg-d,0s) + .3s)}
@keyframes pgSide{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}

/* menu: traço fantasma no hover, o indicador ciano desliza até a aba clicada */
.nav a{position:relative}
.nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:currentColor;opacity:.22;transform:scaleX(0);transition:transform .35s var(--ease-out)}
.nav a:hover::after{transform:scaleX(1)}
.nav a[aria-current="page"]::after{transform:scaleX(0)}
.nav .ind{transition:left .55s cubic-bezier(.65,0,.25,1),width .55s cubic-bezier(.65,0,.25,1)}

@media (prefers-reduced-motion:reduce){
  #conteudo{transition:opacity .2s ease}
  #conteudo.pg-out,#conteudo.pg-soft{transform:none}
  .page-enter > *,.page-enter .phead .crumb,.page-enter .phead h1,.page-enter .phead .side>*,
  .page-enter .hero .eyebrow,.page-enter .hero .lead,.page-enter .hero .ctas,.page-enter .hero .svc,.page-enter .hero .bg{animation:pgFade .3s ease both!important}
  .page-enter .phead::after{display:none}
  @keyframes pgFade{from{opacity:0}to{opacity:1}}
}


/* NR-10: documentação e atuação em campo, exclusivamente nesta solução. */
.nr10docs-intro{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.75fr);gap:clamp(28px,5vw,64px);align-items:center}
.nr10docs-copy .lead{max-width:55ch}
.nr10docs-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.nr10docs-norms{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}
.nr10docs-norm-label{display:block;width:100%;font-family:var(--f-mono);font-size:.67rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:3px}
.nr10docs-team{width:100%;max-width:350px;justify-self:end;margin:0}
.nr10docs-visual{display:block;width:100%;padding:0;border:1px solid var(--line);background:var(--paper-2);cursor:zoom-in;overflow:hidden}
.nr10docs-visual img{display:block;width:100%;height:auto}
.nr10docs-visual:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
.nr10docs-figure{margin:0;min-width:0}
.nr10docs-caption{display:block;padding-top:14px;color:var(--ink-2);font-size:.87rem;line-height:1.55}
.nr10docs-caption-row{display:flex;justify-content:space-between;align-items:start;gap:14px}
.nr10docs-caption-title{font-family:var(--f-display);font-size:1.14rem;font-weight:500;color:var(--ink);line-height:1.3}
.nr10docs-caption p{margin-top:6px;max-width:60ch}
.nr10docs-zoom{white-space:nowrap;color:var(--cyan);font-family:var(--f-mono);font-size:.65rem;letter-spacing:.04em;padding-top:3px}
.nr10docs-highlight{border-top:1px solid var(--line)}
.nr10docs-highlight-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:start}
.nr10docs-highlight-head h2{margin-top:14px}
.nr10docs-description p{color:var(--ink-2);max-width:60ch;line-height:1.65}
.nr10docs-description p+p{margin-top:12px}
.nr10docs-contract{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:.85rem;color:var(--ink-2);line-height:1.6}
.nr10docs-contract ul{padding-left:18px;margin-top:8px}
.nr10docs-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:clamp(30px,4vw,46px)}
.nr10docs-step{padding-top:18px;border-top:2px solid var(--line-2)}
.nr10docs-step-number{font-family:var(--f-mono);font-size:.73rem;color:var(--cyan);letter-spacing:.08em}
.nr10docs-step h3{font-family:var(--f-display);font-size:1.25rem;font-weight:500;line-height:1.2;margin-top:12px}
.nr10docs-step p{margin-top:10px;font-size:.88rem;line-height:1.6;color:var(--ink-2)}
.nr10docs-section-head{display:flex;justify-content:space-between;align-items:end;gap:clamp(24px,4vw,48px);margin-bottom:clamp(24px,4vw,38px)}
.nr10docs-section-head h2{margin-top:14px}
.nr10docs-section-head>p{max-width:50ch;color:var(--ink-2);font-size:.94rem;line-height:1.6}
.nr10docs-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,32px)}
.nr10docs-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,44px);max-width:920px;margin:0 auto}
.nr10docs-tail{height:clamp(48px,6vw,80px)}
@media(max-width:1020px){.nr10docs-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.nr10docs-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.nr10docs-intro,.nr10docs-highlight-head{grid-template-columns:minmax(0,1fr)}.nr10docs-team{justify-self:start;max-width:420px}.nr10docs-section-head{display:block}.nr10docs-section-head>p{margin-top:16px}}
@media(max-width:640px){.nr10docs-flow,.nr10docs-gallery-grid,.nr10docs-field-grid{grid-template-columns:minmax(0,1fr)}.nr10docs-caption-row{gap:10px}}


/* NR-10: fotografia real de instrumentos, inteira e com proporção natural. */
.nr10docs-ensaios{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center;max-width:1000px;margin:0 auto}
.nr10docs-instrumentos{width:100%;max-width:420px;margin:0}
.nr10docs-ensaios-copy h2{margin-top:14px}
.nr10docs-ensaios-copy>p{margin-top:18px;color:var(--ink-2);max-width:48ch;line-height:1.65}
@media(max-width:760px){.nr10docs-ensaios{grid-template-columns:minmax(0,1fr)}.nr10docs-instrumentos{max-width:350px;justify-self:center}}



/* Páginas Ex: conteúdo editorial sem fotografias ou marcas de certificação. */
.ex-head{padding-bottom:clamp(38px,6vw,72px)}
.ex-intro{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);gap:clamp(32px,5vw,76px);align-items:start}
.ex-copy,.ex-basis,.ex-overview,.ex-step,.ex-related-copy{min-width:0}
.ex-copy h1{font-size:clamp(2.4rem,4.5vw,4.4rem);line-height:1.05;max-width:19ch;margin-top:20px}
.ex-copy .lead{max-width:58ch;margin-top:25px;font-size:clamp(1rem,1.4vw,1.13rem)}
.ex-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.ex-basis{padding:clamp(22px,3vw,35px);background:var(--sheet);border:1px solid var(--line);border-top:3px solid var(--cyan)}
.ex-basis-label{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.ex-basis h2{font-size:1.6rem;line-height:1.18;margin:14px 0 22px}
.ex-basis dl{margin:0}
.ex-basis dl>div{padding:14px 0;border-top:1px solid var(--line)}
.ex-basis dt{font-size:.88rem;font-weight:600;color:var(--ink)}
.ex-basis dd{margin:5px 0 0;font-size:.82rem;line-height:1.5;color:var(--ink-2)}
.ex-norms{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px;padding-top:22px;border-top:1px solid var(--line)}
.ex-norms-label{width:100%;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px}
.ex-norms .chip{max-width:100%;font-size:.7rem;white-space:normal;overflow-wrap:anywhere}
.ex-scope{border-top:1px solid var(--line)}
.ex-scope-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.15fr);gap:clamp(32px,6vw,86px)}
.ex-overview h2{margin:16px 0 24px;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.12;max-width:22ch}
.ex-overview h2 strong{display:block}
.ex-overview>p:not(.eyebrow){max-width:58ch;color:var(--ink-2);font-size:.94rem;line-height:1.7}
.ex-overview>p+p{margin-top:14px}
.ex-step{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:16px;padding:22px 0;border-top:1px solid var(--line)}
.ex-step:first-child{border-top:2px solid var(--cyan);padding-top:24px}
.ex-step-number{font-family:var(--f-mono);font-size:.7rem;color:var(--cyan);padding-top:5px}
.ex-step h3{font-size:1.4rem;font-weight:500;line-height:1.25}
.ex-step p{font-size:.9rem;line-height:1.65;color:var(--ink-2);margin-top:10px;max-width:59ch}
.ex-criteria{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1.4fr);gap:clamp(20px,4vw,52px);padding:clamp(22px,3vw,34px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:clamp(34px,5vw,64px)}
.ex-criteria h3{font-size:1.25rem;line-height:1.25}
.ex-criteria p{font-size:.94rem;line-height:1.65;color:var(--ink-2);max-width:78ch}
.ex-deliveries{padding-top:0}
.ex-delivery-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.15fr);gap:clamp(32px,6vw,86px)}
.ex-delivery-copy h2{margin-top:16px;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.12}
.ex-delivery-copy p:last-child{margin-top:20px;color:var(--ink-2);font-size:.94rem;line-height:1.7;max-width:49ch}
.ex-delivery-list{list-style:none;margin:0;padding:0;counter-reset:ex-delivery}
.ex-delivery-list li{counter-increment:ex-delivery;display:grid;grid-template-columns:34px minmax(0,1fr);gap:16px;border-top:1px solid var(--line);padding:18px 0;font-size:.94rem;color:var(--ink-2)}
.ex-delivery-list li::before{content:counter(ex-delivery,decimal-leading-zero);font-family:var(--f-mono);font-size:.68rem;color:var(--ink-3);padding-top:3px}
.ex-related{padding-top:0}
.ex-related-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,5vw,64px);padding:clamp(28px,4vw,48px);background:var(--paper-2);border-left:3px solid var(--cyan);align-items:center}
.ex-related-copy h2{font-size:clamp(1.6rem,2.5vw,2.3rem);line-height:1.12;margin:14px 0}
.ex-related-copy>p:last-child{font-size:.9rem;line-height:1.6;color:var(--ink-2);max-width:64ch}
.ex-related-link{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);font-family:var(--f-display);font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.2;transition:border-color .25s,color .25s}
.ex-related-link:hover{color:var(--cyan);border-color:var(--cyan)}
.ex-related-link .arr{flex:none;font-family:var(--f-body);font-size:1.25rem}
.ex-tail{height:clamp(48px,6vw,80px)}
@media(max-width:1020px){.ex-intro{grid-template-columns:minmax(0,1.25fr) minmax(250px,.8fr);gap:32px}.ex-copy h1{font-size:clamp(2.3rem,4.4vw,3.5rem)}.ex-scope-layout,.ex-delivery-layout{gap:36px}.ex-related-inner{gap:28px}}
@media(max-width:760px){.ex-intro,.ex-scope-layout,.ex-delivery-layout,.ex-related-inner,.ex-criteria{grid-template-columns:minmax(0,1fr)}.ex-copy h1{font-size:clamp(2.25rem,7.8vw,3.25rem);max-width:21ch}.ex-basis{margin-top:8px}.ex-norms{margin-top:26px}.ex-overview h2{max-width:28ch}.ex-related-inner{padding:26px}.ex-criteria{gap:14px}.ex-delivery-copy p:last-child{max-width:65ch}}
@media(max-width:420px){.ex-copy h1{font-size:2.23rem}.ex-actions{gap:10px}.ex-actions .btn{padding:12px 16px;font-size:.85rem}.ex-step{column-gap:10px;grid-template-columns:27px minmax(0,1fr)}.ex-step h3{font-size:1.26rem}.ex-related-inner{padding:23px}.ex-related-link{gap:18px}.ex-basis{padding:22px}}
@media(prefers-reduced-motion:reduce){.ex-related-link{transition:none}}
/* Imagens aprovadas Ex: proporção completa, ampliação compartilhada e cores do tema. */
.ex-intro.ex-intro-media{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:center}
.ex-intro.ex-intro-ground{grid-template-columns:minmax(0,1.12fr) minmax(0,.86fr);align-items:center}
.ex-figure{margin:0;min-width:0}
.ex-hero-figure{width:100%;justify-self:end}
.ex-hero-ground{max-width:460px;justify-self:center}
.ex-visual{display:block;padding:0;width:100%;background:var(--paper-2);border:1px solid var(--line);cursor:zoom-in;overflow:hidden}
.ex-visual img{display:block;width:100%;height:auto;object-fit:contain}
.ex-visual:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
.ex-visual img{transition:filter .25s}
.ex-visual:hover img{filter:brightness(1.025)}
.ex-caption{padding-top:14px;color:var(--ink-2);font-size:.84rem;line-height:1.55}
.ex-caption-head{display:flex;justify-content:space-between;align-items:start;gap:14px}
.ex-caption-head b{font-family:var(--f-display);font-size:1.19rem;font-weight:500;line-height:1.25;color:var(--ink)}
.ex-caption p{margin-top:7px;max-width:70ch}
.ex-zoom{font-family:var(--f-mono);font-size:.63rem;letter-spacing:.035em;color:var(--cyan);white-space:nowrap;padding-top:3px}
.ex-basis-wide{margin-top:32px;padding-bottom:20px}
.ex-basis-wide dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.ex-basis-wide h2{font-size:1.4rem;margin-bottom:18px}
.ex-gallery{padding-top:0}
.ex-gallery-head{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:30px}
.ex-gallery-head h2{font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.12;margin-top:16px}
.ex-gallery-head>p{max-width:48ch;font-size:.94rem;line-height:1.65;color:var(--ink-2)}
.ex-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,32px)}
.ex-gallery-grid .ex-visual{position:relative;aspect-ratio:3/2;display:block}
.ex-gallery-grid .ex-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
@media(max-width:1020px){.ex-intro.ex-intro-media,.ex-intro.ex-intro-ground{gap:32px}.ex-caption-head b{font-size:1.1rem}.ex-basis-wide dl{grid-template-columns:repeat(2,minmax(0,1fr))}.ex-gallery-head{gap:24px}}
@media(max-width:760px){.ex-intro.ex-intro-media,.ex-intro.ex-intro-ground{grid-template-columns:minmax(0,1fr)}.ex-hero-figure{justify-self:center}.ex-hero-ground{max-width:420px}.ex-gallery-head{display:block}.ex-gallery-head>p{max-width:65ch;margin-top:18px}.ex-gallery-grid{grid-template-columns:minmax(0,1fr);gap:30px}.ex-gallery-grid .ex-visual{aspect-ratio:auto;display:block}.ex-gallery-grid .ex-visual img{position:static;inset:auto;height:auto}}
@media(max-width:420px){.ex-basis-wide dl{grid-template-columns:minmax(0,1fr);gap:0}.ex-caption-head{gap:10px}.ex-caption-head b{font-size:1.14rem}.ex-caption{font-size:.84rem}}
@media(prefers-reduced-motion:reduce){.ex-visual img{transition:none}}


/* SPDA: página detalhada com cabeçalho padrão, registros reais completos e ampliação compartilhada. */
/* Conter overlays compartilhados após troca de página e redimensionamento. */
#peek:not(.show){display:none}
@media(max-width:1020px),(hover:none){#peek{display:none}}
#wipe{overflow:hidden}
.spda-head .phead-grid{align-items:start}
.spda-head h1{max-width:18ch}
.spda-head .side .lead{max-width:58ch;margin:0}
.spda-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}
.spda-summary{margin-top:26px;color:var(--ink-2);font-size:.96rem;line-height:1.6}
.spda-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.75fr);gap:clamp(28px,5vw,64px);align-items:center;margin-top:clamp(35px,5vw,64px)}
.spda-figure{margin:0;min-width:0}
.spda-visual{display:block;width:100%;padding:0;background:var(--paper-2);border:1px solid var(--line);cursor:zoom-in;overflow:hidden}
.spda-visual img{display:block;width:100%;height:auto;object-fit:contain}
.spda-visual:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
.spda-caption{padding-top:13px;font-size:.85rem;line-height:1.55;color:var(--ink-2)}
.spda-caption-head{display:flex;justify-content:space-between;align-items:start;gap:15px}
.spda-caption-head b{font-family:var(--f-display);font-size:1.22rem;font-weight:500;line-height:1.25;color:var(--ink)}
.spda-caption p{margin-top:7px}
.spda-zoom{font-family:var(--f-mono);font-size:.64rem;color:var(--cyan);white-space:nowrap;padding-top:3px}
.spda-hero .spec{margin:0}
.spda-hero .spec>div{padding:18px 0;border-top:1px solid var(--line)}
.spda-hero .spec>div:first-child{border-top:2px solid var(--cyan)}
.spda-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.spda-chip-list .chip{max-width:100%;font-size:.69rem;white-space:normal;overflow-wrap:anywhere}
.spda-index{position:sticky;top:var(--hdr);z-index:15;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}
.spda-index .wrap{display:flex;align-items:start;gap:28px}
.spda-index-label{font-family:var(--f-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);padding-top:7px;flex:none}
.spda-index-links{display:flex;flex-wrap:wrap;gap:7px 17px}
.spda-index a{font-size:.8rem;color:var(--ink-2);padding:4px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.spda-index a:hover,.spda-index a:focus-visible{color:var(--cyan);border-color:var(--cyan)}
.spda-anchor{scroll-margin-top:calc(var(--hdr) + 150px)}
.spda-stage{border-bottom:1px solid var(--line)}
.spda-stage-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,68px);align-items:end;margin-bottom:clamp(28px,4vw,44px)}
.spda-stage-head h2,.spda-section-head h2{font-size:clamp(1.9rem,3.5vw,3rem);line-height:1.1;font-weight:400;margin-top:15px;max-width:25ch}
.spda-stage-head>p,.spda-section-head>p{color:var(--ink-2);font-size:.97rem;line-height:1.7;max-width:66ch}
.spda-scope-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 32px;list-style:none;padding:0;margin:0}
.spda-scope-list li{padding-top:18px;border-top:1px solid var(--line);color:var(--ink-2);font-size:.92rem;line-height:1.65;min-width:0}
.spda-item-title{display:block;font-family:var(--f-display);font-weight:500;font-size:1.22rem;line-height:1.25;color:var(--ink);margin-bottom:8px}
.spda-stage-foot{border-left:2px solid var(--cyan);padding-left:19px;margin-top:28px;color:var(--ink-2);font-size:.89rem;line-height:1.65;max-width:95ch}
.spda-inspection-body{display:grid;grid-template-columns:minmax(0,.67fr) minmax(0,1.3fr);gap:clamp(26px,5vw,60px);align-items:start}
.spda-inspection-figure{max-width:350px;justify-self:center;width:100%}
.spda-inspection-figure .spda-visual{position:relative;height:450px}
.spda-inspection-figure .spda-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.spda-inspection-body .spda-scope-list{gap:18px 26px}
.spda-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:end;margin-bottom:clamp(28px,4vw,44px)}
.spda-flow-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;list-style:none;padding:0;margin:0}
.spda-flow-list li{border-top:2px solid var(--line-2);padding-top:19px;min-width:0}
.spda-flow-list li:first-child{border-color:var(--cyan)}
.spda-flow-number{font-family:var(--f-mono);font-size:.69rem;color:var(--cyan)}
.spda-flow-list h3{font-size:1.23rem;font-weight:500;line-height:1.2;margin:15px 0 10px}
.spda-flow-list p{font-size:.86rem;color:var(--ink-2);line-height:1.6}
.spda-note{color:var(--ink-2);font-size:.89rem;line-height:1.65;max-width:88ch;margin-top:25px}
.spda-gallery{border-block:1px solid var(--line);background:var(--paper-2)}
.spda-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.spda-gallery-grid .spda-visual{position:relative;display:block;height:290px;background:var(--sheet)}
.spda-gallery-grid .spda-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.spda-delivery-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 36px;list-style:none;padding:0;margin:0;counter-reset:spda-delivery}
.spda-delivery-list li{counter-increment:spda-delivery;display:grid;grid-template-columns:26px minmax(0,1fr);gap:14px;border-top:1px solid var(--line);padding-top:20px;color:var(--ink-2);font-size:.94rem;line-height:1.65}
.spda-delivery-list li::before{content:counter(spda-delivery,decimal-leading-zero);font-family:var(--f-mono);font-size:.67rem;color:var(--cyan);padding-top:3px}
.spda-faq{padding-top:0}
.spda-faq-list{max-width:1000px}
.spda-faq-item{border-top:1px solid var(--line);padding:0}
.spda-faq-item:last-child{border-bottom:1px solid var(--line)}
.spda-faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-family:var(--f-display);font-size:1.25rem;line-height:1.25;font-weight:500;cursor:pointer;list-style:none}
.spda-faq-item summary::-webkit-details-marker{display:none}
.spda-faq-item summary::after{content:"+";color:var(--cyan);font-family:var(--f-mono);font-size:1.3rem;flex:none}
.spda-faq-item[open] summary::after{content:"−"}
.spda-faq-item p{max-width:84ch;color:var(--ink-2);font-size:.94rem;line-height:1.7;padding-bottom:24px}
.spda-references{padding:0 0 clamp(50px,6vw,80px)}
.spda-references .wrap{border-top:1px solid var(--line);padding-top:27px}
.spda-references h2{font-size:1.35rem;margin-bottom:15px}
.spda-references ul{display:flex;flex-wrap:wrap;gap:13px 24px;list-style:none;margin:0;padding:0}
.spda-references a{font-size:.81rem;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--cyan);text-underline-offset:4px}
.spda-callout{background:var(--band);color:#e8f1f5;padding:clamp(35px,5vw,64px) 0;margin-top:clamp(45px,6vw,80px)}
.spda-callout .wrap{display:flex;justify-content:space-between;align-items:center;gap:32px}
.spda-callout h2{font-size:clamp(1.7rem,3vw,2.5rem);font-weight:400;line-height:1.15}
.spda-callout p{margin-top:15px;max-width:64ch;color:#b7c8d1;font-size:.94rem}
.spda-callout .btn{flex:none;background:#e8f1f5;color:#13212b;border-color:#e8f1f5}
.spda-callout .btn:hover{color:#fff;border-color:var(--cyan)}
@media(max-width:1020px){.spda-hero{grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:32px}.spda-stage-head{gap:32px}.spda-flow-list{grid-template-columns:repeat(3,minmax(0,1fr))}.spda-gallery-grid{gap:24px}.spda-gallery-grid .spda-visual{height:250px}.spda-inspection-body{gap:28px}.spda-inspection-body .spda-scope-list{grid-template-columns:minmax(0,1fr)}.spda-index-links{gap:5px 14px}}
@media(max-width:760px){.spda-hero,.spda-stage-head,.spda-section-head,.spda-inspection-body{grid-template-columns:minmax(0,1fr)}.spda-head h1{max-width:22ch}.spda-hero .spec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.spda-stage-head,.spda-section-head{gap:20px}.spda-scope-list,.spda-flow-list,.spda-delivery-list{grid-template-columns:minmax(0,1fr)}.spda-inspection-figure{max-width:330px}.spda-gallery-grid{grid-template-columns:minmax(0,1fr);gap:30px}.spda-gallery-grid .spda-visual{height:300px}.spda-index{position:static}.spda-index .wrap{display:block}.spda-index-label{display:block;margin-bottom:10px}.spda-index-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}.spda-index a{font-size:.79rem}.spda-anchor{scroll-margin-top:calc(var(--hdr) + 24px)}.spda-callout .wrap{display:block}.spda-callout .btn{margin-top:24px}.spda-flow-list{gap:24px}.spda-faq-item summary{font-size:1.18rem;gap:16px}}
@media(max-width:420px){.spda-hero .spec{grid-template-columns:minmax(0,1fr);gap:0}.spda-actions .btn{padding:12px 16px;font-size:.85rem}.spda-gallery-grid .spda-visual{height:290px}.spda-inspection-figure .spda-visual{height:410px}.spda-caption-head b{font-size:1.16rem}.spda-index-links{gap:8px 14px}}
@media(prefers-reduced-motion:reduce){.spda-index a{transition:none}}


/* ===== rf-spda: SPDA no padrão visual das demais soluções ===== */
.sp-page h1{max-width:none}
.sp-page h1 .sp-h1-sub{display:block;font-size:.42em;line-height:1.12;font-weight:300;letter-spacing:-.01em;margin-top:.35em;max-width:22ch;color:var(--ink-2)}
.sp-page .spda-actions{margin-top:22px}
/* foto clicável no padrão .ph (selo + legenda sobre a foto) */
.sp-ph{display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:zoom-in;color:inherit;font:inherit}
.sp-ph:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
.sp-ph .ph{width:100%;height:100%}
.sp-ph .ph img{object-fit:cover}
.sp-ph .cap b{display:block;font-family:var(--f-display);font-weight:500;font-size:1.02rem;line-height:1.25;margin-bottom:4px;color:#fff}
.sp-zoom{position:absolute;top:12px;right:12px;width:32px;height:32px;display:grid;place-items:center;background:rgba(10,18,23,.6);color:#fff;font-family:var(--f-mono);font-size:1rem;opacity:0;transform:scale(.8);transition:opacity .3s,transform .4s var(--ease-out);backdrop-filter:blur(4px)}
.sp-ph:hover .sp-zoom,.sp-ph:focus-visible .sp-zoom{opacity:1;transform:none}
.sp-ph .ph.has::before{transition:opacity .5s}
.sp-ph:hover .ph.has::before{opacity:.85}
/* topo: foto 3:2 e ficha com a mesma altura */
.sp-hero{align-items:stretch}
.sp-hero .sp-ph .ph{aspect-ratio:3/2}
.sp-hero-spec dd{margin-left:0}
.sp-hero-spec .spda-chip-list{margin-top:10px}
/* revelação das fotos */
.sp-rv .ph{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease-out);transition-delay:var(--sp-d,0s)}
.sp-rv .ph img{transform:scale(1.12);transition:transform 1.6s var(--ease-out);transition-delay:var(--sp-d,0s)}
.sp-rv.sp-on .ph{clip-path:inset(0 0 0 0)}
.sp-rv.sp-on .ph img{transform:scale(1)}
.sp-rv.sp-done .ph{clip-path:none;transition-delay:0s}
.sp-rv.sp-done .ph img{transition:transform 1.2s var(--ease-out);transition-delay:0s}
.sp-rv.sp-done:hover .ph img{transform:scale(1.05)}
/* entrada dos textos */
.sp-up{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease-soft),transform .9s var(--ease-out);transition-delay:var(--sp-d,0s)}
.sp-up.sp-on{opacity:1;transform:none}
/* inspeção: foto 3:4 acompanha a leitura da lista */
.sp-insp{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:clamp(28px,5vw,64px);align-items:start}
.sp-insp>.sp-ph{position:sticky;top:calc(var(--hdr) + 84px)}
.sp-insp .ph{aspect-ratio:3/4}
.sp-insp .spda-scope-list{gap:20px 30px}
.sp-insp .spda-stage-foot{margin-top:30px}
/* fluxo: a linha ciano percorre as etapas */
.spda-flow-list li{position:relative;border-top-color:var(--line-2)!important}
.spda-flow-list li::before{content:"";position:absolute;left:0;right:0;top:-2px;height:2px;background:var(--cyan);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out);transition-delay:calc(var(--i,0) * .26s + .15s)}
.spda-flow-list li>*{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease-soft),transform .8s var(--ease-out);transition-delay:calc(var(--i,0) * .26s + .3s)}
.spda-flow-list.sp-on li::before{transform:none}
.spda-flow-list.sp-on li>*{opacity:1;transform:none}
/* galeria: 2 fotos deitadas 3:2 + 5 em pé 3:4, sem faixas brancas */
.spda-gallery .spda-section-head{margin-bottom:clamp(26px,3.5vw,40px)}
.sp-gal-l{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sp-gal-l .ph{aspect-ratio:3/2}
.sp-gal-p{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:16px}
.sp-gal-p .ph{aspect-ratio:3/4;padding:14px}
.sp-gal-p .cap{font-size:.78rem;line-height:1.4}
.sp-gal-p .cap b{font-size:.95rem;margin-bottom:0}
.sp-gal-p .sp-desc{display:block;max-height:0;opacity:0;overflow:hidden;transition:max-height .45s var(--ease-out),opacity .35s,margin .45s var(--ease-out)}
.sp-gal-p .sp-ph:hover .sp-desc,.sp-gal-p .sp-ph:focus-visible .sp-desc{max-height:6em;opacity:1;margin-top:5px}
@media (hover:none){.sp-gal-p .sp-desc{max-height:none;opacity:1;margin-top:5px}}
.sp-drag-hint{display:none;margin-top:14px;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.sp-drag-hint span{display:inline-block;color:var(--cyan);animation:spNudge 1.6s ease-in-out infinite}
@keyframes spNudge{0%,100%{transform:none}50%{transform:translateX(5px)}}
/* índice: seção atual destacada */
.spda-index{backdrop-filter:saturate(1.2) blur(8px);background:color-mix(in srgb,var(--paper) 92%,transparent)}
.spda-index a.on{color:var(--cyan);border-color:var(--cyan)}
@media(min-width:761px){.spda-index{padding:14px 0}.spda-index .wrap{align-items:center}.spda-index-label{padding-top:0}.spda-index-links{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:0 22px;-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent);padding-right:40px}.spda-index-links::-webkit-scrollbar{display:none}.spda-index a{white-space:nowrap;flex:none}.spda-anchor{scroll-margin-top:calc(var(--hdr) + 90px)}}
/* perguntas: abertura suave */
.sp-page~.spda-faq .spda-faq-item,.spda-faq-item{interpolate-size:allow-keywords}
.spda-faq-item::details-content{block-size:0;overflow:hidden;transition:block-size .42s var(--ease-out),content-visibility .42s allow-discrete}
.spda-faq-item[open]::details-content{block-size:auto}
.spda-faq-item summary{transition:color .2s}
.spda-faq-item summary:hover{color:var(--cyan)}
.spda-faq-item summary::after{transition:transform .35s var(--ease-out)}
.spda-faq-item[open] summary::after{transform:rotate(180deg)}
.spda-faq-item[open] p{animation:spFaq .5s var(--ease-out) both}
@keyframes spFaq{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(max-width:1020px){
  .sp-insp{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
  .sp-gal-p{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 32px) / 3.15);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
  .sp-gal-p::-webkit-scrollbar{display:none}
  .sp-gal-p>.sp-ph{scroll-snap-align:start}
  .sp-drag-hint{display:block}
}
@media(max-width:760px){
  .sp-hero{grid-template-columns:minmax(0,1fr)}
  .sp-insp{grid-template-columns:minmax(0,1fr)}
  .sp-insp>.sp-ph{position:static;max-width:380px}
  .sp-gal-l{grid-template-columns:minmax(0,1fr);gap:14px}
  .sp-gal-p{grid-auto-columns:68%;gap:12px;margin-top:14px}
  .sp-page h1 .sp-h1-sub{font-size:.5em}
}
@media (prefers-reduced-motion:reduce){
  .sp-up,.sp-rv .ph,.sp-rv .ph img,.spda-flow-list li::before,.spda-flow-list li>*{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
  .sp-drag-hint span{animation:none}
}


/* ===== rf-strip: faixas com passagem automática ===== */
.rf-sc{display:flex;align-items:center;gap:14px;margin-top:14px}
.rf-sc[hidden]{display:none!important}
.rf-dots{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.rf-dot{position:relative;flex:1;max-width:46px;height:3px;padding:10px 0;border:0;background:none;cursor:pointer}
.rf-dot::before,.rf-dot i{content:"";position:absolute;left:0;right:0;top:50%;height:3px;margin-top:-1.5px;background:var(--line-2)}
.rf-dot i{background:var(--cyan);transform:scaleX(0);transform-origin:left}
.rf-dot.on i{transform:scaleX(1)}
.rf-sc.play .rf-dot.on i{animation:rfFill var(--rf-t,4s) linear both}
.rf-sc.paused .rf-dot.on i{animation:none;transform:scaleX(1)}
@keyframes rfFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.rf-dot:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.rf-cnt{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.rf-cnt b{color:var(--ink);font-weight:500}
.rf-arw{width:38px;height:38px;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);background:transparent;color:var(--ink);cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.rf-arw:hover{border-color:var(--cyan);color:var(--cyan)}
.rf-arw svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.rf-strip-on + .sp-drag-hint,.rf-has-sc .sp-drag-hint,.rf-has-sc .lhint{display:none!important}
/* foto ativa em destaque, vizinhas levemente apagadas */
.rf-strip-on>*{transition:opacity .5s ease,filter .5s ease}
.rf-strip-on>*:not(.rf-cur){opacity:.72}
@media (prefers-reduced-motion:reduce){.rf-sc.play .rf-dot.on i{animation:none;transform:scaleX(1)}.rf-strip-on>*{transition:none}}


.ex-gr{padding-top:0}
.ex-gr h2 em{display:block}
.ex-gr-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:clamp(28px,5vw,72px);align-items:start;border-top:1px solid var(--line);padding-top:clamp(40px,6vw,72px)}
.ex-gr-copy>p:not(.eyebrow){margin:18px 0 0;max-width:62ch;color:var(--ink-2,inherit)}
.ex-gr-list{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.ex-gr-list li{display:flex;gap:14px;padding:20px 18px 22px 0;border-bottom:1px solid var(--line)}
.ex-gr-list li:nth-child(odd){padding-right:24px;border-right:1px solid var(--line)}
.ex-gr-list li:nth-child(even){padding-left:24px}
.ex-gr-list span{font-family:var(--f-mono);font-size:.72rem;color:var(--cyan);padding-top:4px}
.ex-gr-list h3{margin:0 0 6px;font-size:1rem}
.ex-gr-list p{margin:0;font-size:.92rem;color:var(--ink-3,inherit)}
.ex-gr-photo{display:block;width:100%;max-width:400px;justify-self:end;padding:0;border:0;background:none;text-align:left;cursor:zoom-in;position:sticky;top:calc(var(--hdr) + 24px)}
.ex-gr-photo .ph{aspect-ratio:3/4}
.ex-gr-photo:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
@media(max-width:900px){.ex-gr-grid{grid-template-columns:minmax(0,1fr)}.ex-gr-photo{position:static;justify-self:center;max-width:380px}}
@media(max-width:640px){.ex-gr-list{grid-template-columns:minmax(0,1fr)}.ex-gr-list li:nth-child(n){padding:18px 0;border-right:0}}


/* grade inicial de soluções (exclusiva da homepage; .rows/.row seguem no catálogo) */
.home-solutions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-2);border-left:1px solid var(--line)}
.hs-card{display:flex;flex-direction:column;gap:10px;padding:24px 22px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;isolation:isolate;color:inherit;text-decoration:none}
.hs-card::before{content:"";position:absolute;inset:0;background:var(--cyan-soft);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease-out,ease);z-index:-1}
.hs-card:hover::before,.hs-card:focus-visible::before{transform:scaleY(1)}
.hs-card:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}
.hs-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.hs-k{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;color:var(--cyan);text-transform:uppercase;line-height:1.35}
.hs-n{font-family:var(--f-mono);font-size:.72rem;color:var(--ink-3);letter-spacing:.06em}
.hs-card h3{font-size:clamp(1.15rem,1.5vw,1.35rem);font-weight:400;line-height:1.25;transition:transform .45s var(--ease-out,ease)}
.hs-card:hover h3{transform:translateX(6px)}
.hs-card p{color:var(--ink-2);font-size:.9rem;line-height:1.5;margin:0}
.hs-go{margin-top:auto;width:40px;height:40px;border:1px solid var(--line-2);display:grid;place-items:center;transition:background .3s,border-color .3s,color .3s,transform .45s var(--ease-out,ease)}
.hs-card:hover .hs-go,.hs-card:focus-visible .hs-go{background:var(--cyan);border-color:var(--cyan);color:#fff}
@media (max-width:1020px){.home-solutions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .home-solutions-grid{grid-template-columns:minmax(0,1fr);border-left:0}
  .hs-card{display:grid;grid-template-columns:minmax(0,1fr) 40px;column-gap:12px;row-gap:4px;padding:16px 0;border-right:0}
  .hs-card p{display:none}
  .hs-top,.hs-card h3{grid-column:1}
  .hs-go{grid-column:2;grid-row:1/3;align-self:center;margin:0}
  .hs-card:hover h3{transform:none}
}
@media (prefers-reduced-motion:reduce){.hs-card::before,.hs-card h3,.hs-go{transition:none}.hs-card:hover h3{transform:none}}
/* páginas compactas */
.cp-k{margin-bottom:14px}
/* contato */
.cinfo a.v{color:var(--ink);text-decoration:none;user-select:text}
.cinfo a.v:hover{color:var(--cyan)}
a.copy{display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;white-space:nowrap}
a.copy:hover{border-color:var(--cyan);color:var(--cyan)}
.deps{margin-top:28px;display:flex;flex-direction:column}
.deps .eyebrow{margin-bottom:6px}
.dep{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid var(--line)}
.dep .k{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase}
.dep b{font-family:var(--f-display);font-weight:500;font-size:1.05rem}
.dep-l{display:flex;justify-content:space-between;align-items:center;gap:12px}
.dep-l a{color:var(--ink-2);text-decoration:none;overflow-wrap:anywhere}
.dep-l a:hover{color:var(--cyan)}
.cres-note{font-size:.84rem;margin-top:12px}
.cinfo > div.cinfo-addr{grid-template-columns:120px minmax(0,1fr);row-gap:10px}
.cinfo-addr a.maplink{grid-column:2;justify-self:start}
@media (max-width:640px){.cinfo > div.cinfo-addr{grid-template-columns:minmax(0,1fr)}.cinfo-addr a.maplink{grid-column:1}}
/* equipe sem fotografia: monograma definitivo, sem aparência de espaço reservado */
.team .ph.team-mono{border:1px solid var(--line);background:var(--sheet)}


/* Manutenção: mesma moldura e ampliação das galerias existentes. */
.gal.manutencao-gal{grid-template-columns:repeat(3,minmax(0,1fr))}
.manutencao-item{display:block;width:100%;min-width:0;padding:0;border:0;background:none;text-align:left;color:inherit;cursor:zoom-in}
.manutencao-item:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
.manutencao-gal .ph{aspect-ratio:3/4}
.manutencao-gal .ph img{object-fit:contain;transform:none!important}
html.rf-js .manutencao-gal .rf-reveal{transition-delay:calc(var(--i,0) * 110ms)}
@media(max-width:1020px){.gal.manutencao-gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.gal.manutencao-gal{grid-template-columns:minmax(0,1fr)}}


/* Infraestrutura no padrão das demais abas */
.d-hero.infra-top{margin-top:36px}
.gal.infra-gal{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.infra-item{display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:zoom-in;color:inherit}
.infra-item:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}
.infra-gal .ph{aspect-ratio:3/4}
.infra-gal .ph .tag{font-size:.66rem}
.infra-gal .ph .cap{font-size:.8rem;line-height:1.45;opacity:.88;transform:translateY(6px);transition:opacity .45s var(--ease-soft,ease),transform .55s var(--ease-out,ease)}
.infra-item:hover .ph .cap,.infra-item:focus-visible .ph .cap{opacity:1;transform:none}
.infra-item:hover .ph.has::before{background:linear-gradient(0deg,rgba(8,14,18,.82) 0%,rgba(8,14,18,0) 62%)}
/* revelação em cascata: cada foto entra depois da anterior */
html.rf-js .infra-gal .rf-reveal{transition-delay:calc(var(--i,0) * 110ms)}
html.rf-js .infra-gal .rf-reveal > img{transition-delay:calc(var(--i,0) * 110ms)}
.infra-gal .infra-item{--i:0}
.infra-gal .infra-item:nth-child(2) .ph{--i:1}.infra-gal .infra-item:nth-child(3) .ph{--i:2}.infra-gal .infra-item:nth-child(4) .ph{--i:3}
@media (max-width:1020px){.gal.infra-gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.gal.infra-gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.infra-gal .ph{padding:10px}.infra-gal .ph .tag{font-size:.6rem;padding:3px 6px}.infra-gal .ph .cap{display:none}}
@media (prefers-reduced-motion:reduce){.infra-gal .ph .cap{transition:none;transform:none}}


/* rf-herosvc: painel "Nossas soluções" com 12 itens, rolagem, destaque deslizante e fades */
@property --svc-mt{syntax:"<length>";inherits:false;initial-value:0px}
@property --svc-mb{syntax:"<length>";inherits:false;initial-value:0px}
.hero .svc{display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(10,18,23,.66),rgba(8,14,18,.52));border-color:rgba(255,255,255,.13)}
.hero .svc-h{align-items:center}
.hero .svc-ct{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;color:rgba(255,255,255,.42);font-variant-numeric:tabular-nums}
.hero .svc-ct b{display:inline-block;min-width:2ch;color:#6CC0E0;font-weight:500}
.hero .svc-list{position:relative;overflow-y:auto;overscroll-behavior:contain;max-height:clamp(230px,calc(100svh - 470px),362px);
  scrollbar-width:thin;scrollbar-color:rgba(108,192,224,.4) transparent;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 var(--svc-mt),#000 calc(100% - var(--svc-mb)),transparent 100%);
          mask-image:linear-gradient(180deg,transparent 0,#000 var(--svc-mt),#000 calc(100% - var(--svc-mb)),transparent 100%);
  transition:--svc-mt .35s ease,--svc-mb .35s ease}
.hero .svc-list.fade-t{--svc-mt:34px}
.hero .svc-list.fade-b{--svc-mb:46px}
.hero .svc-list::-webkit-scrollbar{width:4px}
.hero .svc-list::-webkit-scrollbar-track{background:transparent}
.hero .svc-list::-webkit-scrollbar-thumb{background:rgba(108,192,224,.32);border-radius:4px}
.hero .svc-list:hover::-webkit-scrollbar-thumb{background:rgba(108,192,224,.6)}
.hero .svc ol{margin:0;padding:6px 0}
/* destaque que desliza até o item ativo ou sob o mouse */
.hero .svc-hl{position:absolute;left:0;right:0;top:0;height:44px;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(108,192,224,.17) 0%,rgba(108,192,224,.06) 55%,rgba(108,192,224,0) 100%);
  transition:transform .5s cubic-bezier(.2,.8,.2,1),height .5s cubic-bezier(.2,.8,.2,1)}
.hero .svc-hl::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:2px;border-radius:2px;background:#6CC0E0;box-shadow:0 0 14px rgba(108,192,224,.75)}
.hero .svc li{position:relative;z-index:1;animation:svcIn .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.5s + var(--k,0) * 45ms)}
@keyframes svcIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.hero .svc li button{grid-template-columns:22px minmax(0,1fr) 18px;gap:12px;padding:10px 18px 10px 20px;background:none!important;color:rgba(255,255,255,.6)}
.hero .svc li .n{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.06em;color:rgba(255,255,255,.3);transition:color .35s}
.hero .svc li .t{display:block;transition:transform .45s cubic-bezier(.2,.8,.2,1),color .35s}
.hero .svc li .a{transition:opacity .35s,transform .45s cubic-bezier(.2,.8,.2,1),color .35s}
.hero .svc li .bar{left:20px;right:18px}
@media (hover:hover){
  .hero .svc li button:hover{color:rgba(255,255,255,.94)}
  .hero .svc li button:hover .t{transform:translateX(4px)}
  .hero .svc li button:hover .n{color:rgba(108,192,224,.85)}
  .hero .svc li button:hover .a{opacity:.6;transform:translateX(-2px)}
}
.hero .svc li.on button{color:#fff}
.hero .svc li.on .t{transform:translateX(6px)}
.hero .svc li.on .n{color:#6CC0E0}
.hero .svc li.on .a{opacity:1;transform:none;color:#6CC0E0}
/* barra de rolagem da lista: dica + setas (só aparece quando a lista não cabe inteira) */
.hero .svc-nav{display:none;align-items:center;justify-content:space-between;gap:12px;padding:6px 12px 6px 20px;border-top:1px solid rgba(255,255,255,.08);font-family:var(--f-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4)}
.hero .svc.scrolls .svc-nav{display:flex}
.hero .svc-btns{display:flex;gap:4px}
.hero .svc-btns button{all:unset;box-sizing:border-box;display:grid;place-items:center;width:28px;height:24px;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.75);font-size:.8rem;cursor:pointer;transition:border-color .3s,color .3s,background .3s,opacity .3s}
.hero .svc-btns button:hover:not(:disabled){border-color:#6CC0E0;color:#6CC0E0;background:rgba(108,192,224,.08)}
.hero .svc-btns button:focus-visible{outline:2px solid #6CC0E0;outline-offset:1px}
.hero .svc-btns button:disabled{opacity:.3;cursor:default}
.hero .svc-btns button[data-d="1"]:not(:disabled){animation:svcNudge 2.4s ease-in-out 2s infinite}
@keyframes svcNudge{0%,80%,100%{transform:none}88%{transform:translateY(2px)}}
/* legenda */
.hero .svc-cap{min-height:118px}
.hero .svc-cap .k{display:block;margin-bottom:6px;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(108,192,224,.85)}
.hero .svc-cap a span{display:inline-block;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.hero .svc-cap a:hover span{transform:translateX(4px)}
@media (max-width:1020px){.hero .svc-list{max-height:calc(5.5 * 44px + 6px)}}
@media (max-width:640px){
  .hero .svc-list{max-height:calc(4.5 * 42px + 6px)}
  .hero .svc li button{padding:9px 16px 9px 18px;gap:10px;grid-template-columns:20px minmax(0,1fr) 16px}
  .hero .svc li .bar{left:18px;right:16px}
}
@media (prefers-reduced-motion:reduce){
  .hero .svc li,.hero .svc-btns button{animation:none!important}
  .hero .svc-hl,.hero .svc li .t{transition:none}
}

/* rf-contato-v47 */
.form .f-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form .f-acts .btn{justify-content:space-between;width:100%;text-align:left}
.form .f-note{margin:12px 0 0;font-size:.8rem;line-height:1.5}
.form .cres-ok{margin:14px 0 0;padding:12px 14px;border-left:2px solid var(--cyan);font-size:.88rem;line-height:1.5}
.form .cres-ok a{color:var(--cyan);text-decoration:underline}
@media (max-width:640px){.form .f-acts{grid-template-columns:1fr}}

/* rf-lista-v54 */
.hl-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,5vw,80px);align-items:start}
.hl-col{border-top:1px solid var(--line-2)}
.hl-row{position:relative;display:grid;grid-template-columns:60px minmax(0,1fr) 40px;align-items:start;gap:14px;padding:22px 4px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.hl-row::before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--cyan);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out,ease)}
.hl-n{font:400 1.7rem/1 Saira,system-ui,sans-serif;color:var(--ink-2);opacity:.45;padding-top:2px;transition:color .3s ease,opacity .3s ease}
.hl-main{display:flex;flex-direction:column;gap:5px;min-width:0}
.hl-main b{font-family:Saira,system-ui,sans-serif;font-weight:400;font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.2;transition:transform .45s var(--ease-out,ease)}
.hl-k{font:500 .64rem/1.3 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan)}
.hl-more{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .45s var(--ease-out,ease),opacity .35s ease,margin .35s ease}
.hl-in{min-height:0;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start}
.hl-d{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:.9rem;line-height:1.5;color:var(--ink-2);max-width:56ch}
.hl-cta{display:inline-flex;gap:6px;margin-top:10px;font-weight:600;font-size:.88rem;color:var(--cyan)}
.hl-cta span{transition:transform .35s var(--ease-out,ease)}
.hl-go{align-self:center;width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line-2);transition:background .3s ease,border-color .3s ease,color .3s ease,transform .4s var(--ease-out,ease)}
.hl-go svg{width:15px;height:15px}
.hl-row:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
@media (hover:hover) and (pointer:fine){
 .hl-row:hover::before{transform:scaleX(1)}
 .hl-row:hover .hl-n{color:var(--cyan);opacity:1}
 .hl-row:hover .hl-main b{transform:translateX(6px)}
 .hl-row:hover .hl-more{grid-template-rows:1fr;opacity:1;margin-top:6px}
 .hl-row:hover .hl-cta span{transform:translateX(4px)}
 .hl-row:hover .hl-go{background:var(--cyan);border-color:var(--cyan);color:#fff;transform:translateX(4px)}
}
.hl-row:focus-visible .hl-more{grid-template-rows:1fr;opacity:1;margin-top:6px}
@media (prefers-reduced-motion:reduce){.hl-row,.hl-row *,.hl-row::before{transition:none!important}}
@media (max-width:760px){
 .hl-list{grid-template-columns:minmax(0,1fr)}
 .hl-col+.hl-col{border-top:0}
 .hl-row{grid-template-columns:40px minmax(0,1fr) 32px;padding:16px 0;align-items:center}
 .hl-n{font-size:1.15rem;padding-top:0}
 .hl-k,.hl-more{display:none}
 .hl-go{width:30px;height:30px}
}
