/* Palhari & Teófilo · Sociedade de Advogados */

:root{
  --navy-950:#0c1a2e;
  --navy-900:#10223b;
  --navy-800:#172e4e;
  --navy-700:#1e3a5f;
  --navy-600:#2b4a72;
  --gold:#d9a520;
  --gold-hi:#f0c95a;
  --gold-deep:#8a6410;
  --gold-line:rgba(217,165,32,.28);
  --gold-whisper:rgba(217,165,32,.12);
  --paper:#f5f1e8;
  --paper-2:#ebe4d4;
  --paper-line:rgba(20,35,60,.14);
  --ink:#14233c;
  --ink-2:#4a5568;
  --text:#f3eee2;
  --text-2:#b9c3d3;
  --line:rgba(185,195,211,.18);

  --foil:linear-gradient(105deg,#a77a12 0%,#e9bf45 20%,#fbe7a1 32%,#d9a520 46%,#b8860f 64%,#f0cf62 82%,#a77a12 100%);

  --f-display:"Marcellus",Georgia,"Times New Roman",serif;
  --f-text:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-label:"Josefin Sans","Figtree",system-ui,sans-serif;

  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);

  --wrap:1200px;
  --gutter:clamp(16px,4vw,40px);
  --header-h:76px;
  --radius:18px;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 8px)}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--navy-800);color:var(--text);font-family:var(--f-text);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;line-height:1.12;margin:0;letter-spacing:.005em}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
::selection{background:var(--gold);color:var(--navy-900)}

.skip{position:fixed;left:16px;top:-80px;z-index:100;background:var(--gold);color:var(--navy-900);padding:12px 18px;border-radius:999px;font-weight:600;text-decoration:none;transition:top .3s var(--ease-out)}
.skip:focus{top:16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.paper :focus-visible{outline-color:var(--gold-deep)}
main:focus{outline:none}

.wrap{width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto}

/* ---------- ambiente ---------- */
.ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse 90% 70% at 70% 0%,#1d3860 0%,rgba(23,46,78,0) 60%),var(--navy-800)}
.ambient i{position:absolute;border-radius:50%;opacity:.55;will-change:transform}
.ambient i:nth-child(1){width:70vmax;height:70vmax;left:-20vmax;top:10vh;background:radial-gradient(circle,rgba(217,165,32,.10) 0%,rgba(217,165,32,0) 62%);animation:drift-a 84s var(--ease-io) -20s infinite alternate}
.ambient i:nth-child(2){width:60vmax;height:60vmax;right:-22vmax;bottom:-18vmax;background:radial-gradient(circle,rgba(120,160,220,.10) 0%,rgba(120,160,220,0) 60%);animation:drift-b 110s var(--ease-io) -45s infinite alternate}
.ambient::after{content:"";position:absolute;inset:0;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes drift-a{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(18vmax,-12vmax,0) scale(1.15)}}
@keyframes drift-b{from{transform:translate3d(0,0,0) scale(1.1)}to{transform:translate3d(-16vmax,-20vmax,0) scale(.95)}}

/* ---------- tipografia comum ---------- */
.kicker{display:inline-flex;align-items:center;gap:12px;font-family:var(--f-label);font-weight:600;font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.paper .kicker{color:var(--gold-deep)}
.kicker .num{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;padding:3px 10px 0;border:1px solid currentColor;border-radius:999px;letter-spacing:.12em;font-size:.72rem}
.foil{background:var(--foil);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding-bottom:.08em}
.paper .foil{background:none;color:var(--gold-deep);-webkit-text-fill-color:var(--gold-deep)}
.h2{font-size:clamp(2.1rem,4.4vw,3.6rem);max-width:18ch}
.lede{font-size:clamp(1.08rem,1.4vw,1.22rem);color:var(--text-2);max-width:56ch}
.paper .lede{color:var(--ink-2)}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 26px 11px;border-radius:999px;font-family:var(--f-label);font-weight:600;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color .35s var(--ease-out),color .35s var(--ease-out),border-color .35s var(--ease-out)}
.btn svg{width:16px;height:16px;transition:transform .45s var(--ease-out)}
.btn:hover svg{transform:translateX(4px)}
.btn-gold{background:var(--gold);color:var(--navy-900)}
.btn-gold:hover{background:var(--gold-hi)}
.btn-ghost{border-color:rgba(217,165,32,.55);color:var(--text)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-hi)}
.paper .btn-ghost{border-color:var(--gold-deep);color:var(--ink)}
.paper .btn-ghost:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn-navy{background:var(--ink);color:var(--paper)}
.btn-navy:hover{background:var(--navy-700)}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-label);font-weight:600;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--gold);padding-block:6px}
.paper .link-arrow{color:var(--gold-deep)}
.link-arrow svg{width:15px;height:15px;transition:transform .45s var(--ease-out)}
.link-arrow:hover svg{transform:translateX(4px)}

/* ---------- cabeçalho ---------- */
.site-header{position:fixed;inset:0 0 auto;z-index:50;height:var(--header-h);display:flex;align-items:center;transition:background-color .5s var(--ease-out),border-color .5s var(--ease-out),backdrop-filter .5s;border-bottom:1px solid transparent}
.site-header.solid{background:rgba(16,34,59,.95);border-bottom-color:var(--gold-line);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex-shrink:0}
.brand img{width:27px;height:auto}
.brand-name{display:flex;flex-direction:column;line-height:1}
.brand-name b{font-family:var(--f-label);font-weight:600;font-size:1rem;letter-spacing:.1em;color:var(--gold);padding-top:3px}
.brand-name small{font-family:var(--f-label);font-weight:400;font-size:.56rem;letter-spacing:.42em;color:var(--gold);opacity:.9;margin-top:6px}
.nav ul{display:flex;align-items:center;gap:clamp(14px,2vw,30px)}
.nav a{position:relative;display:inline-block;white-space:nowrap;padding:10px 0 8px;font-family:var(--f-label);font-weight:600;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--text-2);transition:color .35s var(--ease-out)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
.nav a:hover,.nav a[aria-current="true"],.nav a[aria-current="page"]{color:var(--text)}
.nav a:hover::after,.nav a[aria-current="true"]::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
@media (min-width:1240px) and (max-width:1439px){
  .nav,.nav ul{gap:17px}
  .nav a{letter-spacing:.13em}
  .nav-social{padding-left:17px}
}
.nav{display:flex;align-items:center;gap:clamp(18px,2vw,28px)}
.nav-social{display:flex;align-items:center;gap:8px;padding-left:clamp(18px,2vw,28px);border-left:1px solid var(--line)}
.nav .nav-social a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:50%;color:var(--text-2);transition:border-color .3s var(--ease-out),color .3s var(--ease-out)}
.nav .nav-social a::after{display:none}
.nav .nav-social a:hover{border-color:var(--gold);color:var(--gold)}
.nav-social svg{width:15px;height:15px}
.menu-btn{display:none;width:48px;height:48px;border:1px solid var(--gold-line);border-radius:999px;background:transparent;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:6px}
.menu-btn span{display:block;width:18px;height:1.5px;background:var(--gold);transition:transform .4s var(--ease-out),opacity .3s}
.menu-open .menu-btn span:nth-child(1){transform:translateY(3.75px) rotate(45deg)}
.menu-open .menu-btn span:nth-child(2){transform:translateY(-3.75px) rotate(-45deg)}

@media (max-width:1239px){
  .menu-btn{display:inline-flex}
  .nav{position:fixed;inset:0;z-index:-1;background:var(--navy-900);display:flex;align-items:center;padding:calc(var(--header-h) + 24px) var(--gutter) 40px;opacity:0;visibility:hidden;transition:opacity .45s var(--ease-out),visibility 0s linear .45s}
  .menu-open .nav{opacity:1;visibility:visible;transition:opacity .45s var(--ease-out)}
  .nav ul{flex-direction:column;align-items:flex-start;gap:4px;width:100%}
  .nav li{width:100%;border-bottom:1px solid var(--line)}
  .nav a{display:block;padding:18px 0 14px;font-family:var(--f-display);font-size:1.7rem;letter-spacing:.01em;text-transform:none;color:var(--text)}
  .nav a::after{display:none}
  .nav li{opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}
  .menu-open .nav li{opacity:1;transform:none}
  .menu-open .nav li:nth-child(2){transition-delay:.05s}
  .menu-open .nav li:nth-child(3){transition-delay:.1s}
  .menu-open .nav li:nth-child(4){transition-delay:.15s}
  .menu-open .nav li:nth-child(5){transition-delay:.2s}
  .menu-open .nav li:nth-child(6){transition-delay:.25s}
  .nav{flex-direction:column;justify-content:center;align-items:stretch;gap:36px}
  .nav-social{padding-left:0;border-left:0;gap:12px;opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}
  .menu-open .nav-social{opacity:1;transform:none;transition-delay:.3s}
  .nav .nav-social a{width:48px;height:48px;border-color:var(--gold-line)}
  .nav-social svg{width:20px;height:20px}
  .menu-open{overflow:hidden}
  .site-header,.site-header.solid{background:rgba(16,34,59,.97);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:var(--gold-line)}
}
@media (max-width:420px){.brand-name small{letter-spacing:.3em}.brand-name b{font-size:.92rem}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:calc(var(--header-h) + 40px) 0 96px;isolation:isolate}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(32px,5vw,80px)}
.hero-copy{transform:translate3d(0,calc(var(--hp,0) * -7vh),0);opacity:calc(1 - var(--hp,0) * 1.1)}
/* tamanho calculado para "Menos juridiquês." (cerca de 8 vezes a altura da letra) caber numa linha só, da coluna do computador ao celular pequeno */
.hero h1{font-size:clamp(min(3rem,11vw),6.1vw,4.9rem);line-height:1.02;margin:0 0 28px}
.hero h1 .line{display:block;overflow:hidden;padding:.06em .1em .14em;margin:-.06em -.1em -.14em}
.hero h1 .line>span{display:inline-block}
.hero .lede{max-width:46ch;text-align:justify;text-justify:inter-word}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}
.hero-areas{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:56px;font-family:var(--f-label);font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--text-2)}
.hero-areas i{display:inline-block;width:4px;height:8px;background:var(--gold);border-radius:999px;opacity:.8}
.hero-art{display:flex;flex-direction:column;align-items:center;gap:26px;transform:translate3d(0,calc(var(--hp,0) * 12vh),0) scale(calc(1 + var(--hp,0) * .06));opacity:calc(1 - var(--hp,0) * .9);will-change:transform}
.mark{position:relative;height:min(62vh,540px);aspect-ratio:507/822}
.mark::before{content:"";position:absolute;inset:-18% -30%;background:radial-gradient(ellipse 50% 45% at 50% 50%,rgba(217,165,32,.16),rgba(217,165,32,0) 70%);opacity:.8}
.mark svg,.mark img,.mark .sheen{position:absolute;inset:0;width:100%;height:100%}
.mark-ring rect{fill:none;stroke:url(#foil-stroke);stroke-width:7;stroke-dasharray:1;stroke-dashoffset:0}
.mark-ring .ghost{stroke:var(--gold-whisper);stroke-width:1.5}
.sheen{overflow:hidden;pointer-events:none;-webkit-mask-image:url(../img/mono-t.png),url(../img/mono-p.png);mask-image:url(../img/mono-t.png),url(../img/mono-p.png);-webkit-mask-size:100% 100%;mask-size:100% 100%}
.sheen i{position:absolute;inset:-10% -60%;background:linear-gradient(105deg,rgba(255,244,210,0) 42%,rgba(255,244,210,.85) 50%,rgba(255,244,210,0) 58%);transform:translateX(-70%)}

/* entrada do hero (só com JS e movimento liberado) */
.js .mono-t{animation:join-t 1.6s var(--ease-out) .25s both}
.js .mono-p{animation:join-p 1.6s var(--ease-out) .25s both}
.js .mark-ring .draw{animation:ring 2.1s var(--ease-io) 1.05s both}
.js .mark::before{animation:fade 2.4s var(--ease-out) 1.2s both}
.js .hero.live .sheen i{animation:sheen 9s var(--ease-io) 2.6s infinite}
.js .hero-art .kicker{animation:rise 1.2s var(--ease-out) 2.2s both}
.js .hero h1 .line>span{animation:line-up 1.2s var(--ease-out) both}
.js .hero h1 .line:nth-child(1)>span{animation-delay:.35s}
.js .hero h1 .line:nth-child(2)>span{animation-delay:.5s}
.js .hero .lede{animation:rise 1.1s var(--ease-out) .8s both}
.js .hero-cta{animation:rise 1.1s var(--ease-out) 1s both}
.js .hero-areas{animation:fade 1.4s var(--ease-out) 1.3s both}
/* símbolo do início: luzes na moldura, ondas, halo que respira e reflexo */
@property --lx{syntax:"<number>";inherits:true;initial-value:0}
@property --ly{syntax:"<number>";inherits:true;initial-value:0}
@property --op{syntax:"<number>";inherits:false;initial-value:0}
.mark-ring{overflow:visible}
.mark-ring .orbits{opacity:0}
.js .mark-ring .orbits{animation:fade 1.4s var(--ease-out) 3s both}
.mark-ring .orbit{fill:none;stroke:#fbe7a1;stroke-width:6;stroke-linecap:round;stroke-dasharray:var(--l) calc(1 - var(--l));stroke-dashoffset:calc(var(--o) - var(--op))}
.mark-ring .orbit.tail{stroke:#e9bf45;stroke-width:7;opacity:.32}
.mark-ring .orbit.mid{opacity:.72}
.mark-ring .orbit.head{stroke:#fffaf0;stroke-width:9}
.hero.live .mark-ring .orbit{animation:orbit 9s linear infinite}
.hero.live .mark-ring .orbit.c2{animation-delay:-4.5s}
.mark-ring .echo{fill:none;stroke:rgba(217,165,32,.65);stroke-width:1.3;vector-effect:non-scaling-stroke;stroke-dasharray:none;transform-box:fill-box;transform-origin:center;opacity:0}
.hero.live .mark-ring .echo{animation:echo 7s var(--ease-out) 3.6s infinite}
.hero.live .mark-ring .echo+.echo{animation-delay:7.1s}
.hero.live .mark::before{animation:fade 2.4s var(--ease-out) 1.2s both,halo 7s var(--ease-io) 3.6s infinite}
.sheen b{position:absolute;inset:0;background:radial-gradient(ellipse 46% 30% at calc(50% + var(--lx) * 46%) calc(50% + var(--ly) * 40%),rgba(255,250,232,.95),rgba(255,250,232,0) 72%);opacity:0;transition:opacity .7s var(--ease-out)}
.mark.lit .sheen b{opacity:1}
@media (hover:none),(pointer:coarse){
  .hero.live .mark{animation:wander 11s var(--ease-io) 3.4s infinite}
  .hero.live .mark .sheen b{opacity:.75}
}
@keyframes orbit{from{--op:0}to{--op:1}}
@keyframes echo{0%{transform:scale(1);opacity:0}8%{opacity:.75}100%{transform:scale(1.24);opacity:0}}
@keyframes halo{0%,100%{opacity:1;scale:1}50%{opacity:.55;scale:1.12}}
@keyframes wander{0%,100%{--lx:-.7;--ly:-.55}33%{--lx:.75;--ly:-.15}66%{--lx:-.15;--ly:.7}}
@keyframes join-t{from{transform:translateX(-46%);opacity:0}35%{opacity:1}to{transform:none;opacity:1}}
@keyframes join-p{from{transform:translateX(46%);opacity:0}35%{opacity:1}to{transform:none;opacity:1}}
@keyframes ring{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes sheen{0%{transform:translateX(-70%)}22%,100%{transform:translateX(70%)}}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes line-up{from{transform:translateY(105%)}to{transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* ---------- seções ---------- */
.sec{position:relative;padding:clamp(96px,12vw,168px) 0}
.paper{background-color:var(--paper);color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .2 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E")}
.arch-top{border-radius:50% 50% 0 0 / clamp(28px,5vw,72px) clamp(28px,5vw,72px) 0 0;margin-top:-1px}
.sec-head{display:grid;gap:22px;margin-bottom:clamp(48px,7vw,88px)}
.sec-head.center{justify-items:center;text-align:center}
.sec-head.center .h2,.sec-head.center .lede{margin-inline:auto}
.divider{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold)}
.divider::before,.divider::after{content:"";width:min(18vw,160px);height:1px;background:currentColor;opacity:.45}
.divider i{width:7px;height:13px;background:currentColor;border-radius:999px;opacity:.85}
.paper .divider{color:var(--gold-deep)}

/* ---------- O Escritório ---------- */
.about-top{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:start}
/* duas linhas fixas, alinhadas à esquerda, com os espaços normais (a segunda termina um pouco antes da primeira) */
.about-top .h2{margin-top:22px;max-width:none}
.story{display:grid;gap:20px;color:var(--ink-2);max-width:60ch}
.story p{text-align:justify;text-justify:inter-word}
.founders{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,72px);align-items:center;margin-top:clamp(64px,9vw,120px)}
.photo{position:relative;overflow:hidden;background:radial-gradient(ellipse 80% 70% at 50% 30%,#24446c 0%,var(--navy-800) 60%,var(--navy-900) 100%);isolation:isolate}
.photo::after{content:"";position:absolute;inset:10px;border:1px solid var(--gold-line);border-radius:inherit;pointer-events:none}
.founders-photo{position:relative;width:min(100% - 24px,420px);justify-self:center}
.photo-founders{margin:0;width:100%;aspect-ratio:507/822;border-radius:999px;background:var(--navy-900)}
.founders-photo>svg{position:absolute;left:-10px;top:-10px;width:calc(100% + 20px);height:calc(100% + 20px);max-width:none;pointer-events:none;overflow:visible}
.founders-photo rect{fill:none;stroke:var(--gold-deep);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease-io)}
.founders-photo:hover rect{stroke-dashoffset:0}
.photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.photo .initials{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.28em;font-family:var(--f-display);font-size:clamp(4rem,11vw,9rem);line-height:1}
.photo .initials span{background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;opacity:.9}
.founders-copy{display:grid;gap:18px}
.founders-copy h3{font-size:clamp(1.6rem,2.4vw,2.1rem)}
.founders-copy p{color:var(--ink-2)}
.founders-copy p:not(.kicker){text-align:justify;text-justify:inter-word}
.mvv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(72px,10vw,128px);border-top:1px solid var(--paper-line)}
.mvv article{padding:40px clamp(20px,3vw,44px) 8px;border-left:1px solid var(--paper-line)}
.mvv article:first-child{border-left:0}
.mvv h3{font-size:1.75rem;margin-bottom:14px;text-align:center}
.mvv p{color:var(--ink-2)}
.mvv article > p{text-align:justify;text-justify:inter-word}
.mvv article > p + p{margin-top:14px}
/* valores resumidos: nome em negrito e uma frase curta na mesma linha, para o bloco ficar da altura de Missão e Visão */
.values{display:grid;gap:12px;margin-top:4px}
.values li{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:baseline}
.values b{font-weight:600;color:var(--ink)}
.values span{grid-column:2;color:var(--ink-2);line-height:1.5}
.values li::before{content:"";width:5px;height:10px;background:var(--gold-deep);border-radius:999px;transform:translateY(-1px)}

/* ---------- Áreas ---------- */

/* lista de áreas */
.area-list{display:grid;gap:12px;max-width:860px;margin:0 auto}
.area-link{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:84px;padding:18px 26px 18px 36px;border-radius:999px;text-decoration:none;color:var(--text);transition:background-color .45s var(--ease-out)}
.area-link svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.area-link rect{fill:none;stroke:var(--gold);stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1s var(--ease-io)}
.area-link .base{stroke:var(--line);stroke-dashoffset:0;transition:none}
.area-link b{position:relative;font-family:var(--f-display);font-weight:400;font-size:clamp(1.25rem,2.2vw,1.6rem);line-height:1.2}
.area-more{position:relative;flex-shrink:0;display:inline-flex;align-items:center;min-height:40px;padding:9px 18px 7px;border:1px solid var(--gold-line);border-radius:999px;font-family:var(--f-label);font-weight:600;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--gold);transition:border-color .35s var(--ease-out),background-color .35s var(--ease-out),color .35s var(--ease-out)}
.area-more .plus{font-family:var(--f-text);font-size:1.35em;font-weight:500;line-height:1;margin:-.12em .45em 0 0}
.area-link:hover,.area-link:focus-visible{background:rgba(30,58,95,.55)}
.area-link:hover rect.draw,.area-link:focus-visible rect.draw{stroke-dashoffset:0}
.area-link:hover .area-more,.area-link:focus-visible .area-more{border-color:var(--gold);background:var(--gold);color:var(--navy-900)}
.area-link:focus-visible{outline-offset:4px;border-radius:999px}
@media (max-width:720px){
  .area-link{min-height:68px;padding:14px 14px 14px 22px;gap:12px;border-radius:24px}
  .area-link:focus-visible{border-radius:24px}
  .area-link b{font-size:1.1rem}
  .area-more{min-height:36px;padding:8px 12px 6px;font-size:.62rem;letter-spacing:.12em}
}

/* páginas de área */
.area-hero .wrap{position:relative}
.area-hero h1{font-size:clamp(2.8rem,6vw,5rem);margin:20px 0 22px;max-width:14ch}
.area-hero .lede{max-width:52ch;text-align:justify;text-justify:inter-word}
.area-hero .profile-actions .btn{text-transform:uppercase;letter-spacing:.16em;font-family:var(--f-label);font-size:.82rem;font-weight:600}
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px}
.svc{display:grid;gap:8px;align-content:start;padding:22px 0 24px;border-top:1px solid var(--paper-line)}
.svc h3{font-size:1.3rem;color:var(--ink)}
.svc p{color:var(--ink-2);line-height:1.55;text-align:justify;text-justify:inter-word}
.faq{display:grid;border-bottom:1px solid var(--paper-line)}
.faq details{border-top:1px solid var(--paper-line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;cursor:pointer;list-style:none;font-family:var(--f-display);font-size:1.25rem;line-height:1.3;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--gold-deep);border-radius:50%;font-family:var(--f-text);font-size:1.1rem;color:var(--gold-deep);transition:transform .35s var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 24px;color:var(--ink-2);max-width:70ch;text-align:justify;text-justify:inter-word}
.faq details p a{color:var(--ink);text-underline-offset:3px}
.more-areas{display:flex;flex-wrap:wrap;gap:10px}

.process{margin-top:clamp(88px,11vw,140px)}
.process-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:20px;margin-bottom:56px}
.process-head h3{font-size:clamp(1.8rem,3vw,2.5rem);max-width:20ch}
.track{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.track .track-line{position:absolute;left:0;right:0;top:27px;height:1px;background:var(--line)}
.track-line i{position:absolute;inset:0;background:linear-gradient(90deg,var(--gold),var(--gold-hi));transform-origin:left;transform:scaleX(var(--pp,0))}
.track li{position:relative}
.track .node{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:34px;height:54px;border-radius:999px;background:var(--navy-800);border:1px solid var(--line);font-family:var(--f-label);font-weight:600;font-size:.76rem;color:var(--text-2);padding-top:2px;transition:border-color .6s var(--ease-out),color .6s var(--ease-out),background-color .6s var(--ease-out)}
.track li.on .node{border-color:var(--gold);color:var(--navy-900);background:var(--gold)}
.track h4{font-size:1.35rem;margin:26px 0 10px}
.track p{color:var(--text-2);font-size:.98rem;line-height:1.55;text-align:justify;text-justify:inter-word}
@media (max-width:1239px){
  .track{grid-template-columns:1fr;gap:34px;padding-left:0}
  .track .track-line{left:17px;right:auto;top:0;bottom:0;width:1px;height:auto}
  .track-line i{transform-origin:top;transform:scaleY(var(--pp,0))}
  .track li{display:grid;grid-template-columns:34px 1fr;gap:0 22px}
  .track .node{grid-row:span 2}
  .track h4{margin:6px 0 6px}
  .track p{max-width:70ch}
}

/* ---------- Equipe ---------- */
.team-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:end;margin-bottom:clamp(48px,6vw,72px)}
.team-head .h2{max-width:13ch;margin-top:22px}
.team-head .lede{text-align:justify;text-justify:inter-word}
.growth{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line)}
.growth li{padding:30px clamp(16px,2vw,28px);border-left:1px solid var(--paper-line);display:grid;gap:14px;align-content:start}
.growth li:first-child{border-left:0;padding-left:0}
.growth svg{width:34px;height:34px;color:var(--gold-deep)}
.growth b{font-family:var(--f-display);font-weight:400;font-size:1.25rem;line-height:1.25;color:var(--ink);text-align:justify;text-justify:inter-word}
.growth span{color:var(--ink-2);font-size:.96rem;line-height:1.5;text-align:justify;text-justify:inter-word}
@media (max-width:1239px) and (min-width:481px){
  .growth{grid-template-columns:1fr 1fr}
  .growth li:nth-child(3){border-left:0;padding-left:0}
  .growth li:nth-child(n+3){border-top:1px solid var(--paper-line)}
  .growth li:nth-child(even){padding-left:clamp(20px,3vw,40px)}
}
.partners-title{margin:clamp(72px,9vw,112px) 0 44px}
/* seção Equipe só com o título centralizado: o divisor fica perto dele, entre o título e as fotos */
.team-title{margin-bottom:0}
.team-title + .partners-title{margin-top:clamp(30px,3.6vw,44px)}
.partners{display:grid;grid-template-columns:repeat(3,minmax(0,370px));justify-content:center;gap:56px clamp(28px,3vw,48px)}
.photo-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--gold-line);background:radial-gradient(ellipse 80% 70% at 50% 30%,#24446c 0%,var(--navy-800) 60%,var(--navy-900) 100%)}
.photo-empty svg{width:34%;height:auto;color:rgba(217,165,32,.45)}
.photo-empty span{font-family:var(--f-label);font-weight:600;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--text-2)}
.partner-photo .photo-empty span{display:none}
@media (max-width:1100px) and (min-width:721px){
  .partners{grid-template-columns:repeat(2,minmax(0,340px))}
  .partners .partner:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:min(100%,340px)}
}
.partner-photo{position:relative;display:block;width:min(100%,345px);aspect-ratio:507/822;margin-inline:auto;border-radius:999px;text-decoration:none;outline-offset:6px}
.partner-photo .photo{position:absolute;inset:0;border-radius:inherit}
.partner-photo .initials{font-size:clamp(6rem,11vw,9.5rem)}
.partner-photo>svg{position:absolute;left:-10px;top:-10px;width:calc(100% + 20px);height:calc(100% + 20px);max-width:none;pointer-events:none;overflow:visible}
.partner-photo .see svg{width:14px;height:14px}
.partner-photo rect{fill:none;stroke:var(--gold-deep);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease-io)}
.partner-photo:hover rect,.partner-photo:focus-visible rect{stroke-dashoffset:0}
.partner-photo .photo{overflow:hidden}
.partner-photo .photo img{transition:transform 1s var(--ease-out)}
.partner-photo:hover .photo img,.partner-photo:focus-visible .photo img{transform:scale(1.05)}
.partner-photo .photo::before{content:"";position:absolute;inset:auto 0 0;height:45%;z-index:1;background:linear-gradient(180deg,rgba(12,26,46,0),rgba(12,26,46,.55));pointer-events:none}
.partner-photo .see{position:absolute;left:50%;bottom:9%;z-index:2;translate:-50% 0;display:inline-flex;align-items:center;white-space:nowrap;min-height:40px;padding:9px 18px 7px;border-radius:999px;background:rgba(16,34,59,.82);border:1px solid var(--gold-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--f-label);font-weight:600;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-hi);transition:background-color .4s var(--ease-out),color .4s var(--ease-out),border-color .4s var(--ease-out)}
.partner-photo .see .plus{font-family:var(--f-text);font-size:1.4em;font-weight:500;line-height:1;margin:-.12em .45em 0 0}
.partner-photo:hover .see,.partner-photo:focus-visible .see{background:var(--gold);border-color:var(--gold);color:var(--navy-900)}
.partner{display:flex;flex-direction:column}
.partner-cta{margin-top:auto;white-space:nowrap}
.partner-info .areas{margin-bottom:14px}
@media (max-width:1239px){.partner-cta{padding-inline:20px;font-size:.72rem;letter-spacing:.1em}}
.partner-info{flex:1;text-align:center;margin-top:34px;display:flex;flex-direction:column;gap:8px;align-items:center}
.partner-info .oab{font-family:var(--f-label);font-weight:600;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-deep)}
.partner-info h3{font-size:clamp(1.8rem,2.4vw,2.2rem)}
.partner-info h3 a{text-decoration:none}
.partner-info .areas{color:var(--ink-2);font-size:.98rem}

/* ---------- Insights ---------- */
.insights-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 64px;align-items:end;margin-bottom:clamp(48px,6vw,80px)}
.insights-head .h2{margin-top:22px;max-width:16ch;text-align:justify;text-justify:inter-word}
@media (max-width:480px){.insights-head .h2{text-align:left}}
.insights-head .lede{text-align:justify;text-justify:inter-word}
.insights-block + .insights-block{margin-top:clamp(64px,8vw,104px)}
.col-title{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px;margin-bottom:26px;border-bottom:1px solid var(--line);font-family:var(--f-label);font-weight:600;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.col-title span{color:var(--text-2);letter-spacing:.14em}
.col-title h3{margin:0;font:inherit;letter-spacing:inherit;color:inherit}
.col-more{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 16px 6px;border:1px solid var(--gold-line);border-radius:999px;font-size:.68rem;letter-spacing:.16em;text-decoration:none;color:var(--gold);white-space:nowrap;transition:border-color .3s var(--ease-out),background-color .3s var(--ease-out),color .3s var(--ease-out)}
.col-more svg{width:15px;height:15px;transition:transform .45s var(--ease-out)}
.col-more:hover{border-color:var(--gold);background:var(--gold);color:var(--navy-900)}
.col-more:hover svg{transform:translateX(3px)}
@media (max-width:480px){.col-title{flex-wrap:wrap;row-gap:12px}}
/* listas completas: artigos e decisões */
.list-sec{padding-top:0}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.filter{display:inline-flex;align-items:center;min-height:40px;padding:9px 18px 7px;border:1px solid var(--line);border-radius:999px;background:transparent;cursor:pointer;font-family:var(--f-label);font-weight:600;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-2);transition:border-color .3s var(--ease-out),background-color .3s var(--ease-out),color .3s var(--ease-out)}
.filter:hover{border-color:var(--gold);color:var(--text)}
.filter[aria-pressed="true"]{border-color:var(--gold);background:var(--gold);color:var(--navy-900)}
[data-filter-list] > [hidden]{display:none!important}
.articles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.card{position:relative;display:flex;flex-direction:column;gap:14px;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(30,58,95,.4);text-decoration:none;transition:border-color .45s var(--ease-out),background-color .45s var(--ease-out)}
.card:hover{border-color:var(--gold-line);background:rgba(30,58,95,.7)}
.card .meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-family:var(--f-label);font-weight:600;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-2)}
.tag{display:inline-flex;align-items:center;padding:5px 11px 3px;border:1px solid var(--gold-line);border-radius:999px;color:var(--gold)}
.card h3{font-size:1.45rem;line-height:1.22;color:var(--text);text-align:justify;text-justify:inter-word}
.card p{color:var(--text-2);font-size:.98rem;line-height:1.55}
.card > p:not(.meta):not(.by):not(.court){text-align:justify;text-justify:inter-word}
/* no celular os títulos dos cartões ficam à esquerda: justificados em coluna estreita abrem espaços grandes */
@media (max-width:480px){.card h3{text-align:left}}
.card .by{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.88rem;color:var(--text-2)}
.card .go{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-family:var(--f-label);font-weight:600;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--gold)}
.card .go svg{width:16px;height:16px}
.card .by svg{width:18px;height:18px;color:var(--gold);transition:transform .45s var(--ease-out)}
.card:hover .by svg{transform:translateX(4px)}

/* ---------- Contato ---------- */
.contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,96px);align-items:start}
.contact-intro{display:grid;gap:22px;position:sticky;top:calc(var(--header-h) + 40px)}
.contact-intro .h2{max-width:12ch;margin-top:0}
.contact-intro .lede{text-align:justify;text-justify:inter-word}
.info-card{margin-top:18px;padding:30px;border-radius:24px;background:var(--navy-800);color:var(--text);display:grid;gap:18px;position:relative;overflow:hidden}
.info-card::after{content:"";position:absolute;right:-60px;top:-80px;width:170px;height:280px;border:1px solid var(--gold-line);border-radius:999px;pointer-events:none}
.info-card a,.info-card div{display:grid;grid-template-columns:22px 1fr;gap:2px 14px;align-items:start;text-decoration:none;font-size:.98rem;line-height:1.45}
.info-card svg{width:20px;height:20px;color:var(--gold);margin-top:2px}
.info-card small{grid-column:2;font-family:var(--f-label);font-weight:600;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-2);order:-1}
.info-card a:hover span{color:var(--gold-hi)}
.info-card span{transition:color .3s}
.seal{display:flex;gap:12px;align-items:flex-start;font-size:.9rem;color:var(--ink-2);line-height:1.5}
.seal svg{width:20px;height:20px;color:var(--gold-deep);flex-shrink:0;margin-top:1px}

.form{position:relative;padding:clamp(28px,4vw,52px);background:#fbf9f4;border:1px solid var(--paper-line);border-radius:28px;box-shadow:0 30px 80px -40px rgba(20,35,60,.35)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px}
.field{display:grid;gap:8px;align-content:start}
.field.full{grid-column:1 / -1}
.field label,.field .label{font-family:var(--f-label);font-weight:600;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.field label small{font-family:var(--f-text);font-weight:400;letter-spacing:0;text-transform:none;font-size:.8rem;color:var(--ink-2)}
.input{width:100%;min-height:52px;padding:13px 18px;border:1px solid rgba(20,35,60,.28);border-radius:14px;background:#fff;color:var(--ink);font-size:1rem;transition:border-color .3s var(--ease-out),box-shadow .3s var(--ease-out)}
.input::placeholder{color:#7b8494}
.input:hover{border-color:rgba(20,35,60,.5)}
.input:focus{outline:none;border-color:var(--gold-deep);box-shadow:0 0 0 4px rgba(217,165,32,.2)}
textarea.input{min-height:160px;resize:vertical;line-height:1.55}
select.input{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%238a6410' stroke-width='1.6'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;padding-right:44px}
.input.invalid{border-color:#b3261e}
.err{font-size:.84rem;color:#b3261e;min-height:0}
.consent{grid-column:1 / -1;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;font-size:.92rem;color:var(--ink-2);line-height:1.5;cursor:pointer}
.consent input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--gold-deep)}
.consent a{color:var(--ink);text-underline-offset:3px}
.form-foot{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:6px}
.form-foot p{font-size:.84rem;color:var(--ink-2);max-width:34ch;line-height:1.45;text-align:justify;text-justify:inter-word}
.btn[disabled]{opacity:.6;cursor:progress}
.status{grid-column:1 / -1;font-size:.95rem}
.status.error{color:#b3261e}
.success{display:none;text-align:center;justify-items:center;gap:18px;padding:40px 10px}
.success svg{width:64px;height:64px;color:var(--gold-deep)}
.success h3{font-size:2rem;color:var(--ink)}
.success p{color:var(--ink-2);max-width:42ch}
.sent .form-grid{display:none}
.sent .success{display:grid;animation:rise .9s var(--ease-out) both}
.success .check{stroke-dasharray:1;stroke-dashoffset:1;animation:ring 1.1s var(--ease-io) .25s forwards}

/* ---------- Newsletter ---------- */
.news{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.news li{display:flex}
.news .card{flex:1}
.news .card h3{font-size:1.3rem;line-height:1.28}
.news .court{margin-top:-4px;font-family:var(--f-label);font-weight:600;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-2)}
/* localização e destaque "Alcance nacional" */
.sec-flush{padding-top:0}
.sec-flush .contact{padding-top:clamp(72px,9vw,120px);border-top:1px solid var(--paper-line)}
.location{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,96px);align-items:center}
.loc-copy{display:grid;gap:22px}
.loc-copy .h2{max-width:14ch}
.loc-copy .lede{text-align:justify;text-justify:inter-word}
.loc-list{list-style:none;margin:6px 0 0;padding:0}
.loc-list li{display:grid;grid-template-columns:22px 1fr;gap:14px;align-items:start;padding:16px 0;border-top:1px solid var(--paper-line)}
.loc-list li:last-child{border-bottom:1px solid var(--paper-line)}
.loc-list svg{width:20px;height:20px;color:var(--gold-deep);margin-top:2px}
.loc-list small{display:block;margin-bottom:4px;font-family:var(--f-label);font-weight:600;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep)}
.loc-list span{display:block;color:var(--ink);line-height:1.5}
.loc-cta{display:grid;grid-template-columns:1fr;gap:10px;margin-top:8px;max-width:480px}
.loc-cta .btn{padding-inline:16px}
.loc-map{position:relative;margin:0;aspect-ratio:1 / .86;border-radius:28px;overflow:hidden;background:var(--navy-800);box-shadow:0 34px 70px -38px rgba(16,34,59,.55)}
.loc-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.8)}
.loc-map::after{content:"";position:absolute;inset:10px;border:1px solid var(--gold-line);border-radius:20px;pointer-events:none}
.reach{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;gap:40px clamp(32px,5vw,72px);margin-bottom:clamp(72px,9vw,128px);padding:clamp(56px,7vw,88px) clamp(24px,6vw,80px);border-radius:32px;background:radial-gradient(ellipse 48% 78% at 76% 55%,rgba(217,165,32,.12),transparent 65%),var(--navy-800);color:var(--text)}
.reach-ring{position:absolute;z-index:-1;pointer-events:none;overflow:visible;width:300px;height:500px}
.reach-ring.r1{left:-200px;top:-390px}
.reach-ring.r2{right:-200px;bottom:-390px}
.reach-ring rect{fill:none;stroke:var(--gold-line);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}
.reach-copy{display:grid;gap:32px;justify-items:start}
.paper .reach .kicker{color:var(--gold)}
.reach h3{margin-top:18px;font-family:var(--f-display);font-weight:400;font-size:clamp(2.1rem,3.9vw,3.3rem);line-height:1.1;color:var(--paper);text-align:justify;text-justify:inter-word}
.reach h3 .line{display:block;overflow:hidden;padding:.06em .1em .14em;margin:-.06em -.1em -.14em}
.reach h3 .line>span{display:inline-block;text-align:justify;text-justify:inter-word}
/* no celular as linhas ficam curtas demais para justificar sem abrir buracos: volta a centralizar */
@media (max-width:480px){.reach h3,.reach h3 .line>span{text-align:center}}
.paper .reach .foil{background:var(--foil);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.reach p:not(.kicker){margin-top:18px;max-width:46ch;color:var(--text-2);font-size:1.08rem;line-height:1.55}
/* mapa do Brasil: pontos, linhas saindo de Urupês e capitais */
.reach-map{width:100%;max-width:470px;justify-self:center;overflow:visible}
.map-dots{fill:none;stroke:rgba(217,165,32,.34);stroke-width:2.3;stroke-linecap:round}
.map-reveal{transform-box:fill-box;transform-origin:center}
.arc{fill:none;stroke:rgba(217,165,32,.5);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}
.run{fill:none;stroke:#fbe7a1;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-dasharray:.07 2;stroke-dashoffset:.07;opacity:0}
.cap{fill:rgba(217,165,32,.7);transform-box:fill-box;transform-origin:center}
.cap.hub{fill:var(--gold)}
.home-dot{fill:#fbe7a1}
.home-ring{fill:none;stroke:var(--gold);stroke-width:1.2;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center}
.map-home .wave{fill:none;stroke:rgba(217,165,32,.55);stroke-width:1;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;opacity:0}
.home-label{font-family:var(--f-label);font-weight:600;font-size:10.5px;letter-spacing:.2em;fill:var(--gold);paint-order:stroke;stroke:var(--navy-800);stroke-width:4px;stroke-linejoin:round}
/* efeitos de entrada (quando a parte aparece na tela) */
.js .reach-ring rect{stroke-dashoffset:1}
.js .reach.in .reach-ring rect{animation:ring 2.6s var(--ease-out) .35s forwards}
.js .reach.in .reach-ring.r2 rect{animation-delay:.75s}
.js .reach h3 .line>span{transform:translateY(105%)}
.js .reach.in h3 .line>span{animation:line-up 1.1s var(--ease-out) .3s both}
.js .reach.in h3 .line+.line>span{animation-delay:.46s}
.js .reach .kicker,.js .reach p:not(.kicker),.js .reach .reach-copy>.btn{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.js .reach.in .kicker,.js .reach.in p:not(.kicker),.js .reach.in .reach-copy>.btn{opacity:1;transform:none}
.js .reach.in .kicker{transition-delay:.15s}
.js .reach.in p:not(.kicker){transition-delay:.8s}
.js .reach.in .reach-copy>.btn{transition-delay:.95s}
.js .reach .map-reveal{transform:scale(0)}
.js .reach.in .map-reveal{animation:map-reveal 2.8s cubic-bezier(.2,.7,.2,1) .4s both}
.js .reach .arc{stroke-dashoffset:1}
.js .reach.in .arc{animation:ring 1.2s var(--ease-out) var(--d) forwards}
.js .reach .cap{transform:scale(0)}
.js .reach.in .cap{animation:cap-pop .7s cubic-bezier(.3,1.6,.5,1) var(--d) both}
.js .reach .map-home{opacity:0;transition:opacity .8s var(--ease-out) .3s}
.js .reach.in .map-home{opacity:1}
/* efeitos contínuos (só enquanto a parte está na tela) */
.reach.live .foil{animation:foil-pan 6s var(--ease-io) infinite alternate}
.reach.live .home-ring{animation:home-pulse 2.6s var(--ease-out) infinite}
.reach.live .map-home .wave{animation:reach-wave 9s cubic-bezier(.22,.61,.36,1) infinite}
.reach.live .map-home .wave:nth-child(2){animation-delay:3s}
.reach.live .map-home .wave:nth-child(3){animation-delay:6s}
.reach.live .run{animation:run 5.2s linear var(--d) infinite}
@keyframes map-reveal{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes cap-pop{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes home-pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(2.8);opacity:0}}
@keyframes reach-wave{0%{transform:scale(1);opacity:0}12%{opacity:.8}100%{transform:scale(16);opacity:0}}
@keyframes run{0%{stroke-dashoffset:.07;opacity:1;animation-timing-function:cubic-bezier(.45,0,.3,1)}46%{stroke-dashoffset:-1;opacity:1}47%,100%{stroke-dashoffset:-1;opacity:0}}
@keyframes foil-pan{from{background-position:0% 50%}to{background-position:100% 50%}}
@media (max-width:1080px){
  .location{grid-template-columns:1fr}
  .loc-map{aspect-ratio:4 / 3}
}
@media (max-width:900px){
  .reach{grid-template-columns:1fr;text-align:center;background:radial-gradient(ellipse 70% 42% at 50% 74%,rgba(217,165,32,.12),transparent 65%),var(--navy-800)}
  .reach-copy{justify-items:center}
  .reach p:not(.kicker){margin-inline:auto}
  .reach-map{max-width:380px}
}
@media (max-width:720px){
  .reach-ring{width:220px;height:360px}
  .reach-ring.r1{left:-150px;top:-250px}
  .reach-ring.r2{right:-150px;bottom:-250px}
}
@media (max-width:480px){
  .loc-map{aspect-ratio:1 / 1.05;border-radius:22px}
  .loc-map::after{border-radius:14px}
  .loc-cta{grid-template-columns:1fr}
  .reach{border-radius:24px}
  .reach .btn{justify-self:stretch}
}

.newsletter{padding:clamp(80px,10vw,128px) 0;position:relative;overflow:hidden}
.newsletter::before{content:"";position:absolute;left:50%;top:50%;width:min(92vw,1100px);height:min(46vw,460px);translate:-50% -50%;border:1px solid var(--gold-line);border-radius:999px;pointer-events:none}
.newsletter .wrap{position:relative;display:grid;justify-items:center;text-align:center;gap:20px}
.newsletter .h2{max-width:20ch;font-size:clamp(2rem,3.8vw,3.1rem)}
.newsletter .lede{max-width:50ch}
.nl-form{width:min(100%,560px);margin-top:14px}
.nl-row{display:flex;align-items:center;gap:8px;padding:7px;border:1px solid var(--gold-line);border-radius:999px;background:rgba(16,34,59,.6);transition:border-color .35s,box-shadow .35s}
.nl-row:focus-within{border-color:var(--gold);box-shadow:0 0 0 4px rgba(217,165,32,.16)}
.nl-row input{flex:1;min-width:0;min-height:48px;padding:0 18px;border:0;background:transparent;color:var(--text);font-size:1rem}
.nl-row input::placeholder{color:#8e9ab0}
.nl-row input:focus{outline:none}
.nl-form .micro{margin-top:14px;font-size:.84rem;color:var(--text-2)}
.nl-form .micro a{color:var(--text);text-underline-offset:3px}
.nl-form .status{margin-top:12px}
.nl-form .status.error{color:#ffb4ab}
.nl-done{display:none;align-items:center;justify-content:center;gap:12px;min-height:64px;padding:0 24px;border:1px solid var(--gold-line);border-radius:999px;color:var(--text)}
.nl-done svg{width:22px;height:22px;color:var(--gold)}
.nl-form.sent .nl-row,.nl-form.sent .micro{display:none}
.nl-form.sent .nl-done{display:flex;animation:rise .8s var(--ease-out) both}

/* ---------- Rodapé ---------- */
.site-footer{background:var(--navy-950);padding:clamp(64px,8vw,96px) 0 32px;color:var(--text-2);font-size:.95rem}
.foot-grid{display:grid;grid-template-columns:minmax(0,4.5fr) minmax(0,2.5fr) minmax(0,4fr) minmax(min-content,3fr);gap:40px}
.foot-brand{display:grid;gap:18px;align-content:start}
.foot-brand .brand{display:flex;padding:0;justify-self:start}
/* registro na OAB e CNPJ, embaixo dos ícones das redes: cada um numa linha só (a última coluna nunca fica mais estreita que eles) */
.site-footer .reg{display:grid;gap:4px;margin-top:22px;line-height:1.55;font-family:var(--f-label);font-weight:600;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.site-footer .reg span{white-space:nowrap}
.site-footer h2{font-family:var(--f-label);font-weight:600;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.site-footer ul{display:grid;gap:6px}
.site-footer a{text-decoration:none;transition:color .3s;display:inline-block;padding:3px 0}
.site-footer .foot-contact{gap:12px}
.site-footer .foot-contact .loc,.site-footer .foot-contact a{display:grid;grid-template-columns:16px auto;column-gap:10px;align-items:start;justify-content:start;line-height:1.45;padding:0}
.foot-contact svg{width:16px;height:16px;margin-top:2px;color:var(--gold)}
.foot-contact .addr{display:grid}
.foot-contact .addr span{white-space:nowrap}
.site-footer a:hover{color:var(--text)}
.social{display:flex;gap:10px;margin-top:6px}
.social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;transition:border-color .3s,color .3s}
.social a:hover{border-color:var(--gold);color:var(--gold)}
.social svg{width:18px;height:18px}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:.82rem;line-height:1.5}
.foot-bottom p{max-width:70ch}

/* ---------- páginas internas ---------- */
.page-hero{position:relative;padding:calc(var(--header-h) + clamp(48px,7vw,96px)) 0 clamp(72px,9vw,120px)}
.back{display:inline-flex;align-items:center;gap:10px;margin-bottom:36px;font-family:var(--f-label);font-weight:600;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-2);text-decoration:none;min-height:44px;transition:color .3s}
.back svg{width:16px;height:16px;transition:transform .45s var(--ease-out)}
.back:hover{color:var(--gold)}
.back:hover svg{transform:translateX(-4px)}
.profile{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(40px,7vw,110px);align-items:center}
.profile .photo{aspect-ratio:507/822;border-radius:999px;max-height:620px;width:100%;max-width:380px;justify-self:center}
.profile .photo .initials{font-size:clamp(6rem,12vw,10rem)}
.profile h1{font-size:clamp(2.8rem,6vw,5rem);margin:18px 0 18px}
.profile .areas{font-size:1.15rem;color:var(--text-2)}
.profile .lede{margin-top:22px;text-align:justify;text-justify:inter-word}
.profile-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.profile-actions .btn{text-transform:none;letter-spacing:.02em;font-family:var(--f-text);font-size:.98rem;font-weight:500}
/* botão de WhatsApp dos perfis: contorno, ícone e número sempre em dourado */
.profile .profile-actions .btn-ghost{border-color:var(--gold);color:var(--gold)}
.profile .profile-actions .btn-ghost:hover{border-color:var(--gold-hi);color:var(--gold-hi)}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.chips a,.chips span{display:inline-flex;align-items:center;min-height:36px;padding:7px 16px 5px;border:1px solid var(--gold-line);border-radius:999px;font-family:var(--f-label);font-weight:600;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--text);transition:border-color .3s,color .3s}
.chips a:hover{border-color:var(--gold);color:var(--gold-hi)}
.cv{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,6vw,96px)}
.cv + .cv{margin-top:clamp(72px,9vw,112px);padding-top:clamp(72px,9vw,112px);border-top:1px solid var(--paper-line)}
.cv h2{font-size:clamp(2rem,3.4vw,2.8rem);margin-top:18px}
.timeline{position:relative;display:grid;gap:34px;padding-left:36px}
.timeline::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:var(--paper-line)}
.timeline li{position:relative;display:grid;gap:4px}
.timeline li::before{content:"";position:absolute;left:-36px;top:6px;width:13px;height:22px;border:1px solid var(--gold-deep);border-radius:999px;background:var(--paper)}
.timeline .when{font-family:var(--f-label);font-weight:600;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep)}
.timeline b{font-family:var(--f-display);font-weight:400;font-size:1.4rem;line-height:1.25;color:var(--ink)}
.timeline span{color:var(--ink-2)}
.prose{display:grid;gap:20px;color:var(--ink-2);max-width:66ch}
.prose p:first-child{font-size:1.18rem;color:var(--ink)}
.cv .prose p{text-align:justify;text-justify:inter-word}
.cv .prose p:first-child{font-size:inherit;color:inherit}
.prose h2{font-size:clamp(1.6rem,2.6vw,2.1rem);color:var(--ink);margin-top:24px}
.prose h3{font-family:var(--f-text);font-weight:600;font-size:1.12rem;color:var(--ink);margin-top:8px}
.cv-areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:36px 44px}
.cv-areas .prose{gap:14px;align-content:start}
.cv-areas .prose li{text-align:justify;text-justify:inter-word}
@media (max-width:1239px){.cv-areas{grid-template-columns:1fr}}
.cv-areas .prose h3{margin-top:0;font-family:var(--f-display);font-weight:400;font-size:1.4rem}
@media (min-width:1240px){.cv-areas .prose h3{min-height:2.3em}}
.cv-more{margin-top:32px;color:var(--ink-2)}
.prose ul{display:grid;gap:10px}
.prose li{position:relative;padding-left:22px;line-height:1.55}
.prose li::before{content:"";position:absolute;left:0;top:.55em;width:5px;height:10px;background:var(--gold-deep);border-radius:999px}
.prose ol{display:grid;gap:10px;counter-reset:item}
.prose ol>li{counter-increment:item;padding-left:26px}
.prose ol>li::before{content:counter(item) ".";width:auto;height:auto;top:0;background:none;border-radius:0;color:var(--gold-deep);font-weight:600}
.prose li>ul{margin-top:10px}
.prose strong{color:var(--ink);font-weight:600}
.prose a{color:var(--ink);text-underline-offset:3px}
.placeholder-note{display:flex;gap:12px;align-items:flex-start;padding:16px 20px;border:1px dashed var(--gold-deep);border-radius:14px;background:rgba(217,165,32,.08);color:var(--ink-2);font-size:.9rem;line-height:1.5}
.placeholder-note svg{width:20px;height:20px;color:var(--gold-deep);flex-shrink:0;margin-top:1px}
.article-hero{padding-bottom:clamp(56px,7vw,96px)}
.article-sec{padding-top:clamp(56px,7vw,96px)}
.article-hero .wrap{max-width:900px}
.article-hero h1{font-size:clamp(2.4rem,5vw,4.2rem);margin:22px 0 26px;max-width:20ch}
.article-meta{display:flex;flex-wrap:wrap;gap:10px 22px;font-family:var(--f-label);font-weight:600;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-2)}
.article-body{max-width:900px}
.article-body .prose{max-width:68ch;margin-inline:auto;font-size:1.08rem}
.article-body .prose p,.article-body .prose li{text-align:justify;text-justify:inter-word}
.article-body .prose p:first-child{color:inherit;font-size:inherit}
.disclaimer{margin-top:48px;padding-top:24px;border-top:1px solid var(--paper-line);font-size:.9rem;color:var(--ink-2)}
.cta-band{padding:clamp(72px,9vw,112px) 0;text-align:center}
.cta-band .wrap{display:grid;justify-items:center;gap:22px}
.cta-band h2{font-size:clamp(2rem,3.6vw,3rem);max-width:24ch}
.related{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:40px}

/* ---------- entradas ---------- */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.js .reveal.in{opacity:1;transform:none}
.js .stagger>*{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out),border-color .45s var(--ease-out),background-color .45s var(--ease-out)}
.js .stagger.in>*{opacity:1;transform:none}
.js .stagger.in>:nth-child(2){transition-delay:.09s}
.js .stagger.in>:nth-child(3){transition-delay:.18s}
.js .stagger.in>:nth-child(4){transition-delay:.27s}
.js .stagger.in>:nth-child(5){transition-delay:.36s}
.js .stagger.in>:nth-child(6){transition-delay:.45s}
.js .stagger.in.settled>*,.js .stagger.in.settled>:nth-child(n){transition-delay:0s!important}
.js .draw-in rect.frame,.js .draw-in .frame{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease-io) .2s}
.js .draw-in.in rect.frame,.js .draw-in.in .frame{stroke-dashoffset:0}

/* elementos vivos (só quando a seção está na tela) */
.live .breathe{animation:breathe 7s var(--ease-io) -2s infinite}
@keyframes breathe{0%,100%{opacity:.55}50%{opacity:1}}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

/* ---------- dúvidas frequentes ---------- */
.faq-search{position:relative;max-width:560px;margin-top:34px}
.faq-search svg{position:absolute;left:20px;top:50%;translate:0 -50%;width:20px;height:20px;color:var(--gold);pointer-events:none}
.faq-search input{width:100%;min-height:56px;padding:14px 22px 14px 54px;border:1px solid var(--gold-line);border-radius:999px;background:rgba(16,34,59,.6);color:var(--text);font-size:1rem;transition:border-color .3s var(--ease-out),box-shadow .3s var(--ease-out)}
.faq-search input::placeholder{color:var(--text-2)}
.faq-search input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(217,165,32,.18)}
.faq-topics{margin-top:24px}
.faq-group.first{margin-top:0;padding-top:0;border-top:0}
.faq-group[hidden]{display:none}
/* dúvidas na página principal */
.home-faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,96px);align-items:start}
.home-faq-intro{display:grid;min-width:0;gap:22px;justify-items:start;position:sticky;top:calc(var(--header-h) + 40px)}
.home-faq .h2{max-width:none}
/* "Perguntas que costumamos" numa linha só; o tamanho da letra é ajustado à largura da coluna em site.js */
.fit-line{white-space:nowrap}
.home-faq-intro .lede{text-align:justify;text-justify:inter-word}
.home-faq-intro .btn{margin-top:8px}
@media (max-width:900px){
  .home-faq{grid-template-columns:minmax(0,1fr)}
  .home-faq-intro{position:static}
}
.faq-empty{padding:22px 26px;border:1px dashed var(--gold-deep);border-radius:18px;background:rgba(217,165,32,.06);color:var(--ink-2)}
.faq-empty a{color:var(--ink);text-underline-offset:3px}
/* perguntas abrem e fecham com movimento suave (navegadores recentes) */
@supports (interpolate-size:allow-keywords){
  .faq{interpolate-size:allow-keywords}
  .faq details::details-content{block-size:0;overflow:clip;transition:block-size .5s var(--ease-out),content-visibility .5s allow-discrete}
  .faq details[open]::details-content{block-size:auto}
}

/* ---------- página de erro 404 ---------- */
.nf-hero{min-height:calc(100vh - 120px);display:flex;align-items:center}
.nf{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:40px}
.nf h1{font-size:clamp(2.6rem,5.6vw,4.6rem);margin:20px 0 22px}
.nf .lede{max-width:48ch}
.nf-links{margin-top:40px}
.nf .profile-actions .btn{text-transform:uppercase;letter-spacing:.16em;font-family:var(--f-label);font-size:.82rem;font-weight:600}
.nf-code{font-family:var(--f-display);font-size:clamp(7rem,20vw,15rem);line-height:.9;text-align:center;background:var(--foil);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;opacity:.9;user-select:none}
@media (max-width:900px){
  .nf{grid-template-columns:1fr}
  .nf-code{order:-1;text-align:left;font-size:clamp(5rem,26vw,8rem)}
}

/* ---------- abertura (página inicial, sempre que é aberta) ---------- */
.intro{display:none}
html.intro-on .intro{position:fixed;inset:0;z-index:300;display:grid;place-items:center;animation:intro-failsafe .01s 8s forwards}
html.intro-lock,html.intro-lock body{overflow:hidden}
html.intro-on .hero,html.intro-on .hero *{animation-play-state:paused!important}
html.intro-on .hero .mark{visibility:hidden}
html.intro-done .hero .mono-t,html.intro-done .hero .mono-p,html.intro-done .hero .mark-ring .draw{animation:none}
.intro-bg{position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 44%,#1f3b63 0%,var(--navy-800) 45%,var(--navy-900) 100%);transition:opacity .8s var(--ease-out) .25s}
.intro-stage{position:relative;display:grid;justify-items:center;gap:30px}
.intro-mark{position:relative;height:min(46vh,400px);aspect-ratio:507/822;transform-origin:0 0}
.intro-mark svg,.intro-mark img,.intro-mark .sheen{position:absolute;inset:0;width:100%;height:100%}
.intro-mark svg{overflow:visible}
.intro-mark rect{fill:none;stroke-dasharray:1;stroke-dashoffset:1}
.intro-mark .ghost{stroke:var(--gold-whisper);stroke-width:1.5;stroke-dashoffset:0;opacity:0}
.intro-mark .draw{stroke:url(#intro-foil);stroke-width:7}
.intro-mark img{opacity:0}
.intro-name{display:grid;justify-items:center;gap:12px;text-align:center}
.intro-name b{font-family:var(--f-label);font-weight:600;font-size:clamp(1.05rem,2.4vw,1.45rem);letter-spacing:.34em;padding-left:.34em;color:var(--gold);opacity:0}
.intro-name i{display:block;width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);transform:scaleX(0)}
.intro-name small{font-family:var(--f-label);font-weight:400;font-size:clamp(.62rem,1.3vw,.74rem);letter-spacing:.5em;padding-left:.5em;color:rgba(217,165,32,.82);opacity:0}
.intro.go .intro-mark .i-t{animation:join-t 1.3s var(--ease-out) .1s both}
.intro.go .intro-mark .i-p{animation:join-p 1.3s var(--ease-out) .1s both}
.intro.go .intro-mark .ghost{animation:fade .8s var(--ease-out) .2s both}
.intro.go .intro-mark .draw{animation:ring 1.5s var(--ease-io) .55s both}
.intro.go .intro-mark .sheen i{animation:intro-sheen 1.1s var(--ease-io) 1.75s both}
.intro.go .intro-name b{animation:intro-name 1.1s var(--ease-out) 1.15s both}
.intro.go .intro-name i{animation:intro-line 1s var(--ease-out) 1.45s both}
.intro.go .intro-name small{animation:fade 1s var(--ease-out) 1.65s both}
.intro.out .intro-name{opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease-out),transform .4s var(--ease-out)}
.intro.out .intro-bg{opacity:0}
.intro.out:not(.fly) .intro-mark{opacity:0;transform:scale(1.04);transition:opacity .5s var(--ease-out),transform .6s var(--ease-out)}
.intro.fly .intro-mark{transition:transform .95s cubic-bezier(.65,0,.35,1)}
@keyframes intro-name{from{opacity:0;letter-spacing:.6em;padding-left:.6em}to{opacity:1;letter-spacing:.34em;padding-left:.34em}}
@keyframes intro-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes intro-sheen{from{transform:translateX(-70%)}to{transform:translateX(70%)}}
@keyframes intro-failsafe{to{opacity:0;visibility:hidden}}

/* ---------- efeitos extras (todas as páginas) ---------- */
/* barra de leitura embaixo do cabeçalho */
.read-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden;pointer-events:none}
.read-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--gold-deep),var(--gold) 45%,var(--gold-hi));transform-origin:left;transform:scaleX(var(--sp,0))}
/* títulos: palavras sobem em sequência */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.1em .03em .18em;margin:-.1em -.03em -.18em}
.split .w>span{display:inline-block}
.js .split.reveal{opacity:1;transform:none}
.js .split .w>span{transform:translateY(112%);transition:transform 1.05s var(--ease-out);transition-delay:calc(var(--i,0) * 55ms + 100ms)}
.js .split.in .w>span{transform:none}
/* fotos: surgem de baixo para cima com borda suave (sem corte reto), com um leve zoom que se acomoda */
.js .photo.fx:has(>img){background:transparent}
.js .photo.fx>img,.js .photo.fx>.photo-empty{
  -webkit-mask-image:linear-gradient(to top,#000 0%,#000 38%,transparent 62%,transparent 100%);mask-image:linear-gradient(to top,#000 0%,#000 38%,transparent 62%,transparent 100%);
  -webkit-mask-size:100% 300%;mask-size:100% 300%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:0 0%;mask-position:0 0%;
  opacity:0;transform:scale(1.05);
  transition:-webkit-mask-position 1.1s var(--ease-out),mask-position 1.1s var(--ease-out),opacity .7s var(--ease-out),transform 1.6s var(--ease-out),filter .6s var(--ease-out)}
.js .photo.fx.in>img,.js .photo.fx.in>.photo-empty{-webkit-mask-position:0 100%;mask-position:0 100%;opacity:1;transform:none}
.js .partner-photo:hover .photo.fx.in>img,.js .partner-photo:focus-visible .photo.fx.in>img{transform:scale(1.04);transition:transform 1s var(--ease-out),filter .6s var(--ease-out)}
/* Equipe: ao passar o mouse, o cartão sobe um pouco com sombra suave e os outros ficam em preto e branco, como numa revista */
@media (hover:hover) and (pointer:fine){
  .partner-photo{transition:transform .7s var(--ease-out)}
  .js .founders-photo.reveal.in{transition:opacity 1s var(--ease-out),transform .7s var(--ease-out)}
  .partner-photo .photo{transition:box-shadow .7s var(--ease-out)}
  .partner-photo:hover,.partner-photo:focus-visible{transform:translateY(-8px)}
  .partner-photo:hover .photo,.partner-photo:focus-visible .photo{box-shadow:0 34px 46px -30px rgba(16,34,59,.55)}
  /* foto dos sócios fundadores: mesmo efeito dos cartões da Equipe */
  .founders-photo .photo{transition:box-shadow .7s var(--ease-out)}
  .founders-photo:hover,.js .founders-photo.reveal.in:hover{transform:translateY(-8px)}
  .founders-photo:hover .photo{box-shadow:0 34px 46px -30px rgba(16,34,59,.55)}
  .js .founders-photo:hover .photo.fx.in>img{transform:scale(1.04);transition:transform 1s var(--ease-out),filter .6s var(--ease-out)}
  .partner-info{transition:opacity .6s var(--ease-out)}
  .partners:has(.partner:hover) .partner:not(:hover) .photo>img,
  .partners:has(.partner:focus-within) .partner:not(:focus-within) .photo>img{filter:grayscale(.85) brightness(.82)}
  .partners:has(.partner:hover) .partner:not(:hover) .partner-info,
  .partners:has(.partner:focus-within) .partner:not(:focus-within) .partner-info{opacity:.55}
}

/* deslizamento ao rolar: as fotos têm cerca de 10% de sobra na altura, e o JS percorre essa sobra (sem ampliar a foto) */
/* cartões: luz dourada que acompanha o mouse e leve elevação */
.card{overflow:hidden;isolation:isolate}
.card::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(217,165,32,.16),rgba(217,165,32,0) 62%);opacity:0;transition:opacity .5s var(--ease-out);pointer-events:none}
.card:hover::before{opacity:1}
@media (hover:hover) and (pointer:fine){
  .card{transition:border-color .45s var(--ease-out),background-color .45s var(--ease-out),transform .6s var(--ease-out),box-shadow .6s var(--ease-out)}
  .card:hover,.js .stagger.in>.card:hover{transform:translateY(-5px);box-shadow:0 26px 50px -30px rgba(0,0,0,.6)}
}
/* botões dourados: reflexo de luz ao passar o mouse */
.btn-gold{position:relative;overflow:hidden;isolation:isolate}
.btn-gold::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,rgba(255,250,230,0) 30%,rgba(255,250,230,.6) 50%,rgba(255,250,230,0) 70%);transform:translateX(-110%);pointer-events:none}
.btn-gold:hover::after,.btn-gold:focus-visible::after{transform:translateX(110%);transition:transform .9s var(--ease-out)}
/* ícones que se desenham */
.js .draw-icons svg :is(path,circle,rect,line){stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease-io);transition-delay:calc(var(--k,0) * 140ms + .35s)}
.js .draw-icons.in svg :is(path,circle,rect,line){stroke-dashoffset:0}
/* divisores se abrem do centro */
.js .divider::before{transform:scaleX(0);transform-origin:right;transition:transform 1.4s var(--ease-out) .25s}
.js .divider::after{transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease-out) .25s}
.js .divider i{transform:scale(0);transition:transform .7s cubic-bezier(.3,1.6,.5,1) .1s}
.js .divider.in::before,.js .divider.in::after,.js .in>.divider::before,.js .in>.divider::after,.js .divider.in i,.js .in>.divider i{transform:none}
/* linha do tempo dos perfis se desenha */
.js .timeline::before{transform:scaleY(0);transform-origin:top;transition:transform 1.8s var(--ease-io) .1s}
.js .timeline.in::before{transform:none}
/* símbolo do início inclina com o mouse */
.mark{transform:perspective(1100px) rotateY(calc(var(--tx,0) * 8deg)) rotateX(calc(var(--ty,0) * -8deg));transition:transform .9s var(--ease-out),--lx .6s var(--ease-out),--ly .6s var(--ease-out)}
.mark::before{translate:calc(var(--tx,0) * -18px) calc(var(--ty,0) * -18px);transition:translate .9s var(--ease-out)}
/* troca suave entre as páginas do site */
@view-transition{navigation:auto}
.site-header{view-transition-name:site-header}
::view-transition-old(root){animation:vt-out .3s var(--ease-io) both}
::view-transition-new(root){animation:vt-in .5s var(--ease-out) both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(14px)}}

/* ---------- responsivo ---------- */
@media (max-width:1080px){
  .hero .wrap{grid-template-columns:1fr;text-align:left}
  .hero-art{order:-1}
  .mark{height:min(40vh,340px)}
  .hero{padding-top:calc(var(--header-h) + 28px)}
  .hero h1{margin-top:18px}
  .contact{grid-template-columns:1fr}
  .contact-intro{position:static}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1 / -1}
}
@media (max-width:900px){
  .about-top,.founders,.team-head,.insights-head,.profile,.cv{grid-template-columns:1fr}
  .articles{grid-template-columns:1fr}
  .mvv{grid-template-columns:1fr}
  .mvv article{border-left:0;border-top:1px solid var(--paper-line);padding:32px 0 12px}
  .mvv article:first-child{border-top:0}
  .growth{grid-template-columns:1fr 1fr}
  .growth li:nth-child(3){border-left:0;padding-left:0}
  .growth li:nth-child(n+3){border-top:1px solid var(--paper-line)}
  .profile .photo{max-width:300px}
}
@media (max-width:720px){
  .partners{grid-template-columns:minmax(0,340px)}
  .partner-photo{width:min(100%,270px)}
  .news{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .related{grid-template-columns:1fr}
  .svc-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .nl-row{flex-direction:column;border-radius:28px;padding:10px}
  .nl-row input{width:100%;text-align:center}
  .nl-row .btn{width:100%}
  .newsletter::before{height:80%;width:130vw;border-radius:50%}
}
@media (max-width:480px){
  .growth{grid-template-columns:1fr}
  .growth li{border-left:0!important;padding-left:0!important;border-top:1px solid var(--paper-line)}
  .growth li:first-child{border-top:0}
  .hero-cta .btn{flex:1 1 100%}
}
@media (pointer:coarse){
  .btn,.link-arrow{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .nav a{min-height:44px}
}

/* ---------- movimento reduzido ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  .js .reveal,.js .stagger>*{opacity:1!important;transform:none!important}
  .js .mono-t,.js .mono-p{transform:none;opacity:1}
  .js .draw-in rect.frame,.js .draw-in .frame,.mark-ring rect,.reach-ring rect,.reach .arc,.js .draw-icons svg :is(path,circle,rect,line){stroke-dashoffset:0!important}
  .js .split .w>span,.js .photo.fx>img,.js .photo.fx>.photo-empty,.js .divider::before,.js .divider::after,.js .divider i,.js .timeline::before,.mark,.card:hover,.partner-photo:hover,.partner-photo:focus-visible,.founders-photo:hover{transform:none!important}
  .js .photo.fx>img,.js .photo.fx>.photo-empty{-webkit-mask-image:none!important;mask-image:none!important;opacity:1!important}
  .sheen b,.mark-ring .orbits,.mark-ring .echoes{display:none}
  @view-transition{navigation:none}
  .js .reach h3 .line>span,.js .reach .kicker,.js .reach p:not(.kicker),.js .reach .reach-copy>.btn,.js .reach .map-reveal,.js .reach .cap,.js .reach .map-home{opacity:1!important;transform:none!important}
  .track-line i{transform:none!important}
  .hero-copy,.hero-art{transform:none!important;opacity:1!important}
  .success .check{stroke-dashoffset:0}
}
