  :root{
    --bg:#F3F6FB; --surface:#FFFFFF; --surface-2:#E9EEF7; --surface-3:#DCE4F1;
    --ink:#0A1121; --ink-2:#454F67; --ink-3:#6E7A93;
    --line:#CFD9E8; --line-2:#A9B7CE;
    --brand:#0C3090; --brand-2:#08215F; --brand-deep:#061741; --brand-soft:#DFE6F7; --brand-on:#FFFFFF;
    --mark:#FCE400;
    --ok:#12664A; --ok-soft:#D8EDE3; --ok-line:#2F8F6C;
    --r:6px; --r-lg:12px;
    --shadow:0 1px 2px rgba(10,17,33,.05), 0 14px 34px -18px rgba(10,17,33,.28);
    --f:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
    --fm:ui-monospace,"Cascadia Mono","SF Mono",Consolas,"Liberation Mono",Menlo,monospace;
    --maxw:1180px;
  }
  @media (prefers-color-scheme:dark){
    :root{
      --bg:#080D16; --surface:#101827; --surface-2:#182234; --surface-3:#212D42;
      --ink:#E9EFF9; --ink-2:#A6B3C9; --ink-3:#77869E;
      --line:#263246; --line-2:#3A4964;
      --brand:#7BA5EE; --brand-2:#A2C0F5; --brand-deep:#050F26; --brand-soft:#13233F; --brand-on:#08152E;
      --ok:#54C293; --ok-soft:#0D2A20; --ok-line:#2E7D5E;
      --shadow:0 1px 2px rgba(0,0,0,.4), 0 14px 34px -18px rgba(0,0,0,.8);
    }
  }
  :root[data-theme="dark"]{
    --bg:#080D16; --surface:#101827; --surface-2:#182234; --surface-3:#212D42;
    --ink:#E9EFF9; --ink-2:#A6B3C9; --ink-3:#77869E;
    --line:#263246; --line-2:#3A4964;
    --brand:#7BA5EE; --brand-2:#A2C0F5; --brand-deep:#050F26; --brand-soft:#13233F; --brand-on:#08152E;
    --ok:#54C293; --ok-soft:#0D2A20; --ok-line:#2E7D5E;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 14px 34px -18px rgba(0,0,0,.8);
  }
  :root[data-theme="light"]{
    --bg:#F3F6FB; --surface:#FFFFFF; --surface-2:#E9EEF7; --surface-3:#DCE4F1;
    --ink:#0A1121; --ink-2:#454F67; --ink-3:#6E7A93;
    --line:#CFD9E8; --line-2:#A9B7CE;
    --brand:#0C3090; --brand-2:#08215F; --brand-deep:#061741; --brand-soft:#DFE6F7; --brand-on:#FFFFFF;
    --ok:#12664A; --ok-soft:#D8EDE3; --ok-line:#2F8F6C;
    --shadow:0 1px 2px rgba(10,17,33,.05), 0 14px 34px -18px rgba(10,17,33,.28);
  }

  *{box-sizing:border-box}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f);font-size:16px;line-height:1.65;
       -webkit-font-smoothing:antialiased}
  h1,h2,h3,h4{margin:0;letter-spacing:-.025em;line-height:1.15;text-wrap:balance}
  p{margin:0}
  a{color:inherit;text-decoration:none}
  img{max-width:100%}
  .mono{font-family:var(--fm);font-variant-numeric:tabular-nums}
  .in{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}
  .eyebrow{font-family:var(--fm);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
  section{padding:clamp(2.8rem,6vw,4.5rem) 0}
  .shead{margin-bottom:clamp(1.4rem,3vw,2.2rem)}
  .shead .eyebrow{display:block;margin-bottom:.5rem}
  .shead h2{font-size:clamp(1.5rem,3.4vw,2.1rem)}
  .shead p{color:var(--ink-2);max-width:60ch;margin-top:.6rem}
  .more{font-size:.85rem;font-weight:600;color:var(--brand);display:inline-flex;gap:.35rem;align-items:center}
  .more:hover{text-decoration:underline}

  .btn{font:inherit;font-size:.94rem;font-weight:600;padding:.72rem 1.35rem;border-radius:var(--r);
       border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;
       min-height:46px;transition:background .15s,border-color .15s,color .15s}
  .btn.pri{background:var(--brand);color:var(--brand-on)}
  .btn.pri:hover{background:var(--brand-2)}
  .btn.onDark{background:var(--mark);color:#0A1121;border-color:var(--mark)}
  .btn.onDark:hover{background:#FFF04D}
  .btn.ghostDark{background:transparent;color:#fff;border-color:rgba(255,255,255,.42)}
  .btn.ghostDark:hover{border-color:#fff;background:rgba(255,255,255,.08)}
  .btn.sec{background:transparent;color:var(--brand);border-color:var(--line-2)}
  .btn.sec:hover{border-color:var(--brand);background:var(--brand-soft)}

  /* ---------------- header ---------------- */
  header.site{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface) 88%,transparent);
              backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .navrow{display:flex;align-items:center;gap:1.1rem;padding:.6rem 0;max-width:var(--maxw);margin:0 auto;
          padding-left:clamp(1rem,4vw,2rem);padding-right:clamp(1rem,4vw,2rem)}
  .brand{display:flex;align-items:center;gap:.55rem;flex:0 0 auto}
  .brand svg{flex:0 0 auto}
  .brand .t{font-weight:800;font-size:1rem;letter-spacing:-.02em;line-height:1.05}
  .brand .t small{display:block;font-weight:400;font-size:.6rem;letter-spacing:.11em;color:var(--ink-3)}
  nav.main{display:flex;gap:.15rem;margin-left:auto;flex-wrap:wrap}
  nav.main a{font-size:.85rem;font-weight:500;color:var(--ink-2);padding:.45rem .6rem;border-radius:var(--r)}
  nav.main a:hover{background:var(--surface-2);color:var(--ink)}
  nav.main a.on{color:var(--brand);font-weight:700}
  .navcta{display:flex;gap:.45rem;align-items:center;flex:0 0 auto}
  .navcta .btn{min-height:38px;padding:.42rem .9rem;font-size:.84rem}
  @media (max-width:1040px){ nav.main{display:none} }

  /* ---------------- hero ---------------- */
  .hero{position:relative;background:var(--brand-deep);color:#fff;overflow:hidden;isolation:isolate}
  .hero .in{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,3.5rem);
            align-items:center;padding-top:clamp(3rem,7vw,5.5rem);padding-bottom:clamp(3rem,7vw,5.5rem)}
  @media (max-width:880px){ .hero .in{grid-template-columns:1fr} .heroart{order:-1} }
  .hero .eyebrow{color:var(--mark);letter-spacing:.2em}
  .hero h1{font-size:clamp(2rem,5.4vw,3.4rem);margin:.9rem 0 1.1rem;letter-spacing:-.035em}
  .hero h1 em{font-style:normal;color:var(--mark)}
  .hero .lead{font-size:clamp(1rem,1.9vw,1.14rem);color:#C6D2EA;max-width:52ch;margin-bottom:1.8rem}
  .hero .cta{display:flex;gap:.7rem;flex-wrap:wrap}
  .hero .rule{width:58px;height:3px;background:var(--mark);margin-bottom:1.4rem}
  .heroart{position:relative}
  .heroart svg{width:100%;height:auto;display:block}
  .hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:radial-gradient(1100px 420px at 78% 42%, rgba(124,165,238,.20), transparent 62%)}

  /* ---------------- numbers ---------------- */
  .nums{background:var(--surface);border-bottom:1px solid var(--line)}
  .nums .in{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;
            background:var(--line);border-left:1px solid var(--line);border-right:1px solid var(--line)}
  .nums .n{background:var(--surface);padding:1.4rem 1.2rem;text-align:center}
  .nums .n b{display:block;font-family:var(--fm);font-size:clamp(1.5rem,3.4vw,2rem);font-weight:700;
             letter-spacing:-.03em;color:var(--brand);line-height:1.05}
  .nums .n span{font-size:.8rem;color:var(--ink-3);display:block;margin-top:.3rem}

  /* ---------------- cards ---------------- */
  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:1.1rem}
  .np{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
      display:flex;flex-direction:column;transition:border-color .15s,transform .15s}
  .np:hover{border-color:var(--brand);transform:translateY(-2px)}
  .np .thumb{aspect-ratio:16/9;background:var(--surface-2);position:relative;overflow:hidden;
             border-bottom:1px solid var(--line)}
  .np .thumb svg{position:absolute;inset:0;width:100%;height:100%}
  .np .bd{padding:.95rem 1.05rem 1.15rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
  .np .kb{display:flex;gap:.6rem;align-items:center}
  .tagc{font-family:var(--fm);font-size:.63rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;
        color:var(--brand);background:var(--brand-soft);padding:.16rem .45rem;border-radius:3px}
  .np time{font-family:var(--fm);font-size:.72rem;color:var(--ink-3)}
  .np h3{font-size:1rem;line-height:1.32;letter-spacing:-.015em}
  .np p{font-size:.86rem;color:var(--ink-2)}
  .np .more{margin-top:auto;padding-top:.5rem}

  /* ---------------- agenda ---------------- */
  .agenda{display:grid;gap:.6rem}
  .ag{display:grid;grid-template-columns:64px 1fr auto;gap:1rem;align-items:center;background:var(--surface);
      border:1px solid var(--line);border-radius:var(--r-lg);padding:.85rem 1rem;transition:border-color .15s}
  .ag:hover{border-color:var(--brand)}
  .ag .d{background:var(--brand);color:var(--brand-on);border-radius:var(--r);text-align:center;padding:.4rem 0;
         font-family:var(--fm);line-height:1.05}
  .ag .d b{display:block;font-size:1.25rem;font-weight:700}
  .ag .d span{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}
  .ag h3{font-size:.98rem;letter-spacing:-.01em}
  .ag .meta{font-size:.8rem;color:var(--ink-3);margin-top:.15rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
  .pill{font-size:.68rem;font-weight:700;letter-spacing:.04em;padding:.14rem .45rem;border-radius:99px;
        color:var(--ok);background:var(--ok-soft);border:1px solid var(--ok-line)}
  @media (max-width:640px){ .ag{grid-template-columns:56px 1fr} .ag > .btn{grid-column:2;justify-self:start} }

  /* ---------------- areas ---------------- */
  .areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:.7rem}
  .ar{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.05rem;
      display:grid;gap:.5rem;transition:border-color .15s,background .15s}
  .ar:hover{border-color:var(--brand);background:var(--brand-soft)}
  .ar .ic{width:30px;height:30px;color:var(--brand)}
  .ar b{font-size:.92rem;letter-spacing:-.01em}
  .ar span{font-size:.78rem;color:var(--ink-3);line-height:1.45}

  /* ---------------- associe ---------------- */
  .assoc{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .assoc .in{display:grid;grid-template-columns:1fr 340px;gap:clamp(1.5rem,4vw,3rem);align-items:start}
  @media (max-width:880px){ .assoc .in{grid-template-columns:1fr} }
  .benef{display:grid;gap:.85rem;margin-top:1.4rem}
  .be{display:grid;grid-template-columns:26px 1fr;gap:.75rem;align-items:start}
  .be svg{width:22px;height:22px;color:var(--ok);margin-top:.2rem}
  .be b{display:block;font-size:.94rem}
  .be span{font-size:.86rem;color:var(--ink-2)}
  .price{background:var(--brand-deep);color:#fff;border-radius:var(--r-lg);padding:1.5rem;position:sticky;top:80px}
  .price .eyebrow{color:var(--mark)}
  .price .v{font-family:var(--fm);font-size:2.6rem;font-weight:700;letter-spacing:-.04em;line-height:1;margin:.6rem 0 .2rem}
  .price .u{color:#C6D2EA;font-size:.9rem;margin-bottom:1.1rem}
  .price ul{list-style:none;margin:0 0 1.3rem;padding:0;display:grid;gap:.5rem;font-size:.86rem;color:#D7E0F2}
  .price li{display:flex;gap:.5rem;align-items:flex-start}
  .price li svg{width:16px;height:16px;color:var(--mark);flex:0 0 auto;margin-top:.24rem}
  .price .btn{width:100%;justify-content:center}
  .price small{display:block;text-align:center;color:#98A9C9;font-size:.74rem;margin-top:.7rem}

  /* ---------------- diretório ---------------- */
  .find{background:var(--surface-2)}
  .finder{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.2rem;
          box-shadow:var(--shadow)}
  .frow{display:grid;grid-template-columns:1fr 1fr auto;gap:.6rem}
  @media (max-width:720px){ .frow{grid-template-columns:1fr} }
  .frow label{display:grid;gap:.28rem}
  .frow span{font-size:.76rem;font-weight:600;color:var(--ink-2)}
  .frow select,.frow input{font:inherit;font-size:.9rem;padding:.6rem .7rem;border:1px solid var(--line-2);
                           border-radius:var(--r);background:var(--surface);color:var(--ink);min-height:44px}
  .frow .btn{align-self:end}
  .fex{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.9rem;align-items:center}
  .fex b{font-size:.76rem;color:var(--ink-3);font-weight:600}
  .fex a{font-size:.76rem;border:1px solid var(--line);border-radius:99px;padding:.2rem .6rem;color:var(--ink-2)}
  .fex a:hover{border-color:var(--brand);color:var(--brand)}

  /* ---------------- biblioteca ---------------- */
  .docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.7rem}
  .doc{display:grid;grid-template-columns:34px 1fr;gap:.75rem;align-items:start;background:var(--surface);
       border:1px solid var(--line);border-radius:var(--r-lg);padding:.9rem;transition:border-color .15s}
  .doc:hover{border-color:var(--brand)}
  .doc .fi{width:30px;height:34px;color:var(--brand)}
  .doc b{font-size:.88rem;line-height:1.3;display:block}
  .doc span{font-family:var(--fm);font-size:.7rem;color:var(--ink-3)}
  .lock{font-family:var(--fm);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
        border:1px solid var(--line-2);border-radius:3px;padding:.08rem .35rem;display:inline-block;margin-top:.3rem}

  /* ---------------- parceiros ---------------- */
  .partners{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
  .partners .in{display:flex;gap:2rem;align-items:center;justify-content:center;flex-wrap:wrap;
                padding-top:1.8rem;padding-bottom:1.8rem}
  .partners .p{font-family:var(--fm);font-size:.9rem;font-weight:700;letter-spacing:.06em;color:var(--ink-3)}

  /* ---------------- cta final ---------------- */
  .final{background:var(--brand-deep);color:#fff;text-align:center}
  .final h2{font-size:clamp(1.5rem,3.6vw,2.2rem);margin-bottom:.8rem}
  .final p{color:#C6D2EA;max-width:52ch;margin:0 auto 1.6rem}
  .final .cta{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}

  /* ---------------- footer ---------------- */
  footer.site{background:var(--surface);border-top:1px solid var(--line);padding:2.5rem 0 1.5rem}
  .fgrid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:1.8rem}
  @media (max-width:820px){ .fgrid{grid-template-columns:1fr 1fr} }
  .fgrid h4{font-family:var(--fm);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
            color:var(--ink-3);margin-bottom:.7rem;font-weight:600}
  .fgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
  .fgrid a{font-size:.85rem;color:var(--ink-2)}
  .fgrid a:hover{color:var(--brand)}
  .fbot{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.1rem;display:flex;gap:1rem;
        flex-wrap:wrap;justify-content:space-between;font-size:.76rem;color:var(--ink-3)}
  .fbot .mono{font-size:.72rem}

  :focus-visible{outline:2px solid var(--brand);outline-offset:2px}
  @media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
