:root{
    --ink:#16241F;
    --ink-soft:#4A5750;
    --paper:#FBF7F0;
    --paper-raised:#FFFFFF;
    --sage:#D9E4DA;
    --sage-line:#C3D2C5;
    --amber:#E8A93C;
    --amber-deep:#B97E1C;
    --amber-tint:#FBEDD3;
    --leaf:#3F7A5C;
    --leaf-deep:#2C5A41;
    --leaf-tint:#E2EEE6;
    --display: 'Space Grotesk', sans-serif;
    --body: 'Inter', sans-serif;
    --mono: 'JetBrains Mono', monospace;
    --radius: 14px;
  }

  *{box-sizing:border-box; margin:0; padding:0;}

  html{scroll-behavior:smooth;}

  body{
    background:var(--paper);
    color:var(--ink);
    font-family:var(--body);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  a{color:inherit;}

  img, svg{display:block; max-width:100%;}

  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 32px;
  }

  /* ---------- Skip link / focus ---------- */
  .skip-link{
    position:absolute; left:-999px; top:0;
    background:var(--ink); color:var(--paper);
    padding:12px 18px; z-index:999; border-radius:0 0 8px 0;
  }
  .skip-link:focus{ left:0; }

  :focus-visible{
    outline:3px solid var(--leaf);
    outline-offset:3px;
    border-radius:4px;
  }

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(251,247,240,0.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--sage-line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .logo{
    display:flex; align-items:center; gap:10px;
    font-family:var(--display); font-weight:700; font-size:20px;
    letter-spacing:-0.01em;
    text-decoration:none;
  }
  .logo-mark{
    width:30px; height:30px; flex-shrink:0;
  }
  .nav-links{
    display:flex; align-items:center; gap:26px;
    list-style:none;
  }
  .nav-links a{
    text-decoration:none; font-size:15px; font-weight:500;
    color:var(--ink-soft);
    transition:color .15s ease;
  }
  .nav-links a:hover{ color:var(--ink); }
  .nav-cta{
    display:flex; align-items:center; gap:12px;
  }
  .btn{
    font-family:var(--body); font-weight:600; font-size:14.5px;
    padding:11px 22px;
    border-radius:999px;
    border:1.5px solid transparent;
    cursor:pointer;
    text-decoration:none;
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
    white-space:nowrap;
  }
  .btn:active{ transform:translateY(1px); }
  .btn-ghost{
    background:transparent; color:var(--ink); border-color:var(--sage-line);
  }
  .btn-ghost:hover{ border-color:var(--ink); }
  .btn-leaf{
    background:var(--leaf); color:#fff;
  }
  .btn-leaf:hover{ background:var(--leaf-deep); box-shadow:0 6px 18px rgba(63,122,92,0.28); }
  .btn-amber{
    background:var(--amber); color:var(--ink);
  }
  .btn-amber:hover{ background:var(--amber-deep); color:#fff; box-shadow:0 6px 18px rgba(232,169,60,0.32); }
  .btn-outline-amber{
    background:transparent; color:var(--amber-deep); border-color:var(--amber);
  }
  .btn-outline-amber:hover{ background:var(--amber-tint); }
  .btn-outline-leaf{
    background:transparent; color:var(--leaf-deep); border-color:var(--leaf);
  }
  .btn-outline-leaf:hover{ background:var(--leaf-tint); }
  .btn-lg{ padding:15px 28px; font-size:16px; }

  .menu-toggle{
    display:none;
    background:transparent; border:1.5px solid var(--sage-line);
    border-radius:10px; width:42px; height:42px;
    align-items:center; justify-content:center;
    cursor:pointer; color:var(--ink);
  }
  .mobile-menu{
    display:none;
    border-top:1px solid var(--sage-line);
    background:var(--paper);
  }
  .mobile-menu ul{
    list-style:none;
    padding:8px 0 16px;
  }
  .mobile-menu a{
    display:block;
    padding:13px 0;
    margin:0 32px;
    font-size:16px; font-weight:500;
    text-decoration:none; color:var(--ink);
    border-bottom:1px solid var(--sage);
  }

  /* ---------- Hero (the seam) ---------- */
  .hero{
    position:relative;
    padding:64px 0 0;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    position:relative;
    border-radius:24px;
    overflow:hidden;
    border:1px solid var(--sage-line);
  }
  .hero-grid::before{
    content:"";
    position:absolute; left:50%; top:0; bottom:0; width:1px;
    background:linear-gradient(to bottom, transparent, var(--ink) 15%, var(--ink) 85%, transparent);
    opacity:.12;
    z-index:3;
  }
  .hero-side{
    padding:56px 48px 64px;
    position:relative;
  }
  .hero-side.empresas{
    background:linear-gradient(180deg, var(--amber-tint) 0%, var(--paper) 60%);
  }
  .hero-side.candidatos{
    background:linear-gradient(180deg, var(--leaf-tint) 0%, var(--paper) 60%);
  }
  .hero-eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--mono); font-size:12.5px; font-weight:600;
    letter-spacing:.06em; text-transform:uppercase;
    padding:6px 12px; border-radius:999px;
    margin-bottom:22px;
  }
  .empresas .hero-eyebrow{ background:rgba(232,169,60,0.22); color:var(--amber-deep); }
  .candidatos .hero-eyebrow{ background:rgba(63,122,92,0.16); color:var(--leaf-deep); }

  .hero-side h1{
    font-family:var(--display);
    font-size:clamp(28px, 3vw, 38px);
    line-height:1.08;
    letter-spacing:-0.015em;
    font-weight:700;
    margin-bottom:16px;
  }
  .hero-side p.lede{
    font-size:16.5px;
    color:var(--ink-soft);
    max-width:42ch;
    margin-bottom:28px;
  }
  .hero-side .btn{ margin-right:10px; }
  .hero-side-foot{
    margin-top:28px;
    font-size:13.5px;
    color:var(--ink-soft);
    display:flex; align-items:center; gap:8px;
  }

  /* center seam title, overlapping */
  .seam-title{
    position:absolute;
    left:50%; top:20px; transform:translateX(-50%);
    z-index:5;
    background:var(--paper-raised);
    border:1px solid var(--sage-line);
    padding:10px 20px;
    border-radius:999px;
    font-family:var(--mono);
    font-size:12.5px;
    font-weight:600;
    letter-spacing:.04em;
    color:var(--ink-soft);
    box-shadow:0 4px 14px rgba(22,36,31,0.06);
    white-space:nowrap;
  }

  /* ---------- Calculator (signature element) ---------- */
  .calc-section{
    margin-top:-1px;
    background:var(--ink);
    border-radius:0 0 24px 24px;
    padding:52px 48px 56px;
  }
  .calc-head{
    display:flex; align-items:flex-end; justify-content:space-between;
    gap:24px; flex-wrap:wrap;
    margin-bottom:30px;
  }
  .calc-head h2{
    font-family:var(--display);
    color:var(--paper);
    font-size:24px;
    font-weight:600;
    max-width:36ch;
    line-height:1.25;
  }
  .calc-head h2 em{
    font-style:normal; color:var(--amber);
  }
  .calc-head p{
    color:#C9D3CD;
    font-size:14.5px;
    max-width:34ch;
  }
  .calc-tabs{
    display:flex; gap:8px; margin-bottom:18px; flex-wrap:wrap;
  }
  .calc-tab{
    font-family:var(--display);
    font-size:14px; font-weight:600;
    padding:11px 20px;
    border-radius:11px 11px 0 0;
    border:none;
    background:rgba(255,255,255,0.08);
    color:#C9D3CD;
    cursor:pointer;
    display:flex; align-items:center; gap:8px;
    transition:background .15s ease, color .15s ease;
  }
  .calc-tab .tab-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
  .calc-tab[data-calc="pcd"] .tab-dot{ background:var(--leaf); }
  .calc-tab[data-calc="aprendiz"] .tab-dot{ background:var(--amber); }
  .calc-tab:hover{ background:rgba(255,255,255,0.14); color:var(--paper); }
  .calc-tab.active{ background:var(--paper-raised); color:var(--ink); }
  .calc-panel{ display:none; }
  .calc-panel.active{ display:block; }
  .calc-box{
    background:var(--paper-raised);
    border-radius:0 18px 18px 18px;
    padding:32px;
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:36px;
    align-items:center;
  }
  .calc-eligibility{
    margin-top:16px;
    display:flex; align-items:flex-start; gap:10px;
    padding:12px 14px;
    background:var(--amber-tint);
    border-radius:10px;
    font-size:12.5px;
    color:var(--ink);
    line-height:1.5;
  }
  .calc-eligibility svg{ flex-shrink:0; margin-top:2px; color:var(--amber-deep); }
  .calc-eligibility.is-warning{ background:var(--amber-tint); }
  .calc-percent-select{
    margin-top:18px;
  }
  .calc-percent-select label{
    display:block; font-family:var(--mono); font-size:12.5px;
    text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); margin-bottom:10px;
  }
  .calc-percent-chip{
    font-family:var(--mono); font-size:13px; font-weight:600;
    padding:7px 14px; border-radius:999px;
    border:1.5px solid var(--sage-line);
    background:var(--paper);
    color:var(--ink-soft);
    cursor:pointer;
  }
  .calc-percent-chip:hover{ border-color:var(--amber); color:var(--amber-deep); }
  .calc-percent-chip.selected{ border-color:var(--amber); background:var(--amber-tint); color:var(--amber-deep); }
  .calc-percent-row{ display:flex; gap:8px; flex-wrap:wrap; }
  .calc-input-col label{
    display:block;
    font-family:var(--mono);
    font-size:12.5px;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:var(--ink-soft);
    margin-bottom:10px;
  }
  .calc-input-wrap{
    display:flex; align-items:center; gap:12px;
    border:2px solid var(--sage-line);
    border-radius:12px;
    padding:6px 8px 6px 18px;
    transition:border-color .15s ease;
  }
  .calc-input-wrap:focus-within{
    border-color:var(--leaf);
  }
  .calc-input-wrap input[type=number]{
    border:none; outline:none;
    font-family:var(--mono);
    font-size:28px;
    font-weight:700;
    width:100%;
    background:transparent;
    color:var(--ink);
  }
  .calc-input-wrap input[type=number]::-webkit-inner-spin-button,
  .calc-input-wrap input[type=number]::-webkit-outer-spin-button{
    -webkit-appearance:none;
    margin:0;
  }
  .calc-input-wrap input[type=number]{
    -moz-appearance:textfield;
  }
  .calc-stepper{ display:flex; flex-direction:column; gap:4px; }
  .calc-step-btn{
    width:30px; height:26px;
    border:1px solid var(--sage-line);
    background:var(--sage);
    border-radius:6px;
    cursor:pointer;
    font-size:13px;
    color:var(--ink);
    display:flex; align-items:center; justify-content:center;
  }
  .calc-step-btn:hover{ background:var(--sage-line); }
  .calc-hint{
    font-size:12.5px; color:var(--ink-soft); margin-top:10px;
  }
  .calc-range{
    margin-top:18px;
    display:flex; gap:8px; flex-wrap:wrap;
  }
  .range-chip{
    font-family:var(--mono); font-size:12px;
    padding:5px 10px; border-radius:999px;
    border:1px solid var(--sage-line);
    background:var(--paper);
    color:var(--ink-soft);
    cursor:pointer;
  }
  .range-chip:hover{ border-color:var(--leaf); color:var(--leaf-deep); }

  .calc-result-col{
    border-left:1px dashed var(--sage-line);
    padding-left:36px;
  }
  .calc-result-row{
    display:flex; justify-content:space-between; align-items:baseline;
    padding:10px 0;
    border-bottom:1px solid var(--sage);
  }
  .calc-result-row:last-child{ border-bottom:none; }
  .calc-result-label{
    font-size:14px; color:var(--ink-soft);
  }
  .calc-result-value{
    font-family:var(--mono); font-weight:700; font-size:20px;
  }
  .calc-result-value.required{ color:var(--amber-deep); }
  .calc-result-value.pct{ color:var(--leaf-deep); }
  .calc-bracket-note{
    margin-top:14px;
    font-size:12.5px;
    color:var(--ink-soft);
    line-height:1.5;
  }
  .calc-bracket-note strong{ color:var(--ink); }

  /* ---------- Proof / numbers ---------- */
  .proof{
    padding:72px 0 8px;
  }
  .proof-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1px;
    background:var(--sage-line);
    border:1px solid var(--sage-line);
    border-radius:16px;
    overflow:hidden;
  }
  .proof-cell{
    background:var(--paper-raised);
    padding:30px 26px;
    text-align:left;
  }
  .proof-num{
    font-family:var(--display);
    font-size:34px;
    font-weight:700;
    letter-spacing:-0.02em;
    display:flex; align-items:baseline; gap:4px;
  }
  .proof-num .unit{ font-size:18px; color:var(--ink-soft); font-weight:500; }
  .proof-label{
    margin-top:6px;
    font-size:13.5px;
    color:var(--ink-soft);
    max-width:22ch;
  }

  /* ---------- Section shared ---------- */
  section{ padding:96px 0; }
  .section-head{
    max-width:640px;
    margin-bottom:52px;
  }
  .eyebrow{
    font-family:var(--mono);
    font-size:12.5px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--leaf-deep);
    font-weight:600;
    margin-bottom:14px;
    display:block;
  }
  .section-head h2{
    font-family:var(--display);
    font-size:clamp(26px, 3.4vw, 36px);
    font-weight:700;
    letter-spacing:-0.015em;
    line-height:1.15;
    margin-bottom:14px;
  }
  .section-head p{
    color:var(--ink-soft);
    font-size:16.5px;
    max-width:56ch;
  }

  /* ---------- Como funciona (real 3-step) ---------- */
  .steps{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
    counter-reset:step;
  }
  .step-card{
    position:relative;
    background:var(--paper-raised);
    border:1px solid var(--sage-line);
    border-radius:18px;
    padding:32px 26px 28px;
  }
  .step-card .step-num{
    font-family:var(--mono);
    font-size:13px;
    font-weight:700;
    color:var(--leaf-deep);
    background:var(--leaf-tint);
    width:34px; height:34px;
    border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    margin-bottom:18px;
  }
  .step-card h3{
    font-family:var(--display);
    font-size:18.5px;
    font-weight:600;
    margin-bottom:10px;
  }
  .step-card p{
    font-size:14.5px;
    color:var(--ink-soft);
    line-height:1.55;
  }
  .step-arrow{
    position:absolute;
    right:-22px; top:50%; transform:translateY(-50%);
    color:var(--sage-line);
    font-size:20px;
  }

  /* ---------- Value prop split ---------- */
  .value-split{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
    border:1px solid var(--sage-line);
    border-radius:20px;
    overflow:hidden;
  }
  .value-col{
    padding:40px;
  }
  .value-col.amber-col{ background:var(--amber-tint); border-right:1px solid var(--sage-line); }
  .value-col.leaf-col{ background:var(--leaf-tint); }
  .value-col .tag{
    font-family:var(--mono); font-size:12px; font-weight:700;
    text-transform:uppercase; letter-spacing:.05em;
    padding:5px 11px; border-radius:999px;
    display:inline-block; margin-bottom:18px;
  }
  .amber-col .tag{ background:rgba(232,169,60,.28); color:var(--amber-deep); }
  .leaf-col .tag{ background:rgba(63,122,92,.18); color:var(--leaf-deep); }
  .value-col h3{
    font-family:var(--display); font-size:22px; font-weight:700;
    margin-bottom:18px; letter-spacing:-0.01em;
  }
  .value-list{
    list-style:none;
    display:flex; flex-direction:column; gap:14px;
  }
  .value-list li{
    display:flex; align-items:flex-start; gap:11px;
    font-size:14.5px;
    color:var(--ink);
    line-height:1.5;
  }
  .value-list li svg{ flex-shrink:0; margin-top:3px; }
  .amber-col .value-list li svg{ color:var(--amber-deep); }
  .leaf-col .value-list li svg{ color:var(--leaf-deep); }

  /* ---------- Pricing ---------- */
  .pricing-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:24px;
    align-items:stretch;
  }
  .price-card{
    background:var(--paper-raised);
    border:1px solid var(--sage-line);
    border-radius:20px;
    padding:32px 28px;
    display:flex; flex-direction:column;
  }
  .price-card.featured{
    border:2px solid var(--leaf);
    box-shadow:0 12px 32px rgba(63,122,92,0.14);
    position:relative;
  }
  .price-badge{
    position:absolute; top:-13px; left:28px;
    background:var(--leaf); color:#fff;
    font-family:var(--mono); font-size:11.5px; font-weight:700;
    text-transform:uppercase; letter-spacing:.04em;
    padding:5px 12px; border-radius:999px;
  }
  .price-card h3{
    font-family:var(--display); font-size:19px; font-weight:600;
    margin-bottom:6px;
  }
  .price-sub{ font-size:13.5px; color:var(--ink-soft); margin-bottom:22px; }
  .price-amount{
    font-family:var(--display);
    font-size:32px; font-weight:700;
    letter-spacing:-0.01em;
    margin-bottom:2px;
  }
  .price-amount .per{ font-size:14px; font-weight:500; color:var(--ink-soft); }
  .price-amount-note{ font-size:12.5px; color:var(--ink-soft); margin-bottom:24px; }
  .price-list{
    list-style:none;
    display:flex; flex-direction:column; gap:11px;
    margin-bottom:28px;
    flex-grow:1;
  }
  .price-list li{
    font-size:13.8px;
    display:flex; align-items:flex-start; gap:9px;
    color:var(--ink-soft);
  }
  .price-list li svg{ flex-shrink:0; margin-top:3px; color:var(--leaf); }
  .price-foot-note{
    margin-top:28px;
    font-size:12.5px;
    color:var(--ink-soft);
    text-align:center;
  }

  /* ---------- Trust / LGPD ---------- */
  .trust{
    background:var(--sage);
    border-radius:24px;
    padding:56px;
    display:grid;
    grid-template-columns:1fr 1.3fr;
    gap:48px;
    align-items:center;
  }
  .trust-visual{
    display:flex; align-items:center; justify-content:center;
  }
  .trust h2{
    font-family:var(--display); font-size:26px; font-weight:700;
    margin-bottom:14px; letter-spacing:-0.01em;
  }
  .trust p{ color:var(--ink-soft); font-size:15px; margin-bottom:18px; max-width:54ch; }
  .trust-points{
    list-style:none; display:flex; flex-direction:column; gap:10px;
  }
  .trust-points li{
    font-size:14px; display:flex; gap:10px; align-items:flex-start;
    color:var(--ink);
  }
  .trust-points li svg{ flex-shrink:0; margin-top:3px; color:var(--leaf-deep); }

  /* ---------- Final CTA ---------- */
  .final-cta{
    background:var(--ink);
    border-radius:24px;
    padding:72px 56px;
    text-align:center;
  }
  .final-cta h2{
    font-family:var(--display);
    color:var(--paper);
    font-size:clamp(28px, 4vw, 40px);
    font-weight:700;
    letter-spacing:-0.015em;
    margin-bottom:18px;
  }
  .final-cta p{
    color:#C9D3CD;
    font-size:16px;
    max-width:50ch;
    margin:0 auto 32px;
  }
  .final-cta-btns{
    display:flex; gap:14px; justify-content:center; flex-wrap:wrap;
  }

  /* ---------- Footer ---------- */
  footer{
    border-top:1px solid var(--sage-line);
    padding:56px 0 36px;
    margin-top:40px;
  }
  .footer-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:32px;
    margin-bottom:40px;
  }
  .footer-brand .logo{ margin-bottom:14px; }
  .footer-brand p{
    font-size:13.5px; color:var(--ink-soft); max-width:32ch; line-height:1.6;
  }
  .footer-col h4{
    font-family:var(--mono); font-size:12px; text-transform:uppercase;
    letter-spacing:.05em; color:var(--ink-soft); margin-bottom:16px;
  }
  .footer-col ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
  .footer-col a{
    font-size:14px; text-decoration:none; color:var(--ink);
  }
  .footer-col a:hover{ color:var(--leaf-deep); }
  .footer-bottom{
    border-top:1px solid var(--sage-line);
    padding-top:24px;
    display:flex; justify-content:space-between; align-items:center;
    flex-wrap:wrap; gap:12px;
    font-size:12.5px; color:var(--ink-soft);
  }
  .footer-bottom .legal-note{ max-width:60ch; }

  /* ---------- misc ---------- */
  .visually-hidden{
    position:absolute; width:1px; height:1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;
  }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ transition:none !important; animation:none !important; }
  }

  /* ---------- Responsive ---------- */
  @media (max-width: 980px){
    .nav-links{ display:none; }
    .menu-toggle{ display:flex; }
    .mobile-menu.open{ display:block; }
    .hero-grid{ grid-template-columns:1fr; }
    .hero-grid::before{ display:none; }
    .hero-side.candidatos{ border-top:1px solid var(--sage-line); }
    .seam-title{ display:none; }
    .calc-box{ grid-template-columns:1fr; gap:28px; }
    .calc-result-col{ border-left:none; padding-left:0; border-top:1px dashed var(--sage-line); padding-top:24px; }
    .proof-grid{ grid-template-columns:repeat(2, 1fr); }
    .steps{ grid-template-columns:1fr; }
    .step-arrow{ display:none; }
    .value-split{ grid-template-columns:1fr; }
    .value-col.amber-col{ border-right:none; border-bottom:1px solid var(--sage-line); }
    .pricing-grid{ grid-template-columns:1fr; }
    .trust{ grid-template-columns:1fr; padding:40px 28px; }
    .trust-visual{ order:-1; }
    .footer-grid{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width: 600px){
    .wrap{ padding:0 20px; }
    .nav-row{ height:64px; }
    .logo{ font-size:17px; }
    .logo-mark{ width:24px; height:24px; }
    .nav-cta{ gap:8px; }
    .nav-cta .btn-ghost{ display:none; }
    .nav-cta .btn-leaf{ padding:9px 16px; font-size:13.5px; }
    .menu-toggle{ width:38px; height:38px; }
    .hero{ padding-top:28px; }
    .hero-side{ padding:40px 24px 44px; }
    .calc-section{ padding:36px 22px 40px; border-radius:0 0 18px 18px;}
    .calc-box{ padding:22px; }
    .proof-grid{ grid-template-columns:1fr 1fr; }
    .proof-cell{ padding:22px 18px; }
    section{ padding:64px 0; }
    .final-cta{ padding:48px 26px; }
    .footer-grid{ grid-template-columns:1fr 1fr; gap:28px; }
    .trust{ border-radius:18px; }
  }

/* ============================================================
   APP SHELL — shared across auth, onboarding, dashboard, search
   ============================================================ */

/* ---------- Simple top bar (used on app-internal pages) ---------- */
.app-topbar{
  position:sticky; top:0; z-index:100;
  background:rgba(251,247,240,0.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--sage-line);
  height:68px;
}
.app-topbar .nav-row{ height:68px; }
.app-topbar .logo{ font-size:18px; }
.app-topbar .logo-mark{ width:26px; height:26px; }

/* ---------- Auth pages (cadastro/login) ---------- */
.auth-shell{
  min-height:calc(100vh - 68px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px 20px;
}
.auth-card{
  width:100%;
  max-width:440px;
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:20px;
  padding:40px 36px;
}
.auth-card.wide{ max-width:560px; }
.auth-eyebrow{
  font-family:var(--mono); font-size:12px; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em;
  color:var(--leaf-deep);
  margin-bottom:10px;
  display:block;
}
.auth-eyebrow.amber{ color:var(--amber-deep); }
.auth-card h1{
  font-family:var(--display); font-size:25px; font-weight:700;
  letter-spacing:-0.01em;
  margin-bottom:8px;
}
.auth-card .auth-sub{
  font-size:14.5px; color:var(--ink-soft); margin-bottom:28px;
}
.field-group{ margin-bottom:18px; }
.field-group label{
  display:block;
  font-size:13.5px; font-weight:600;
  margin-bottom:7px;
  color:var(--ink);
}
.field-group .field-optional{
  font-weight:400; color:var(--ink-soft); font-size:12.5px;
}
.field-row{
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
input[type=text], input[type=email], input[type=password], input[type=tel], input[type=number], select, textarea{
  width:100%;
  font-family:var(--body); font-size:15px;
  padding:12px 14px;
  border:1.5px solid var(--sage-line);
  border-radius:10px;
  background:var(--paper-raised);
  color:var(--ink);
  outline:none;
  transition:border-color .15s ease;
}
input:focus, select:focus, textarea:focus{
  border-color:var(--leaf);
}
select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%234A5750' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:38px;
}
textarea{ resize:vertical; min-height:90px; }

.divider-row{
  display:flex; align-items:center; gap:14px;
  margin:24px 0;
  color:var(--ink-soft); font-size:13px;
}
.divider-row::before, .divider-row::after{
  content:""; flex:1; height:1px; background:var(--sage-line);
}

.btn-google{
  width:100%;
  background:var(--paper-raised);
  border:1.5px solid var(--sage-line);
  color:var(--ink);
  font-weight:600; font-size:14.5px;
  padding:12px 18px;
  border-radius:10px;
  display:flex; align-items:center; justify-content:center; gap:10px;
  cursor:pointer;
}
.btn-google:hover{ border-color:var(--ink); }

.checkbox-row{
  display:flex; align-items:flex-start; gap:10px;
  margin:20px 0;
}
.checkbox-row input[type=checkbox]{
  margin-top:3px; width:17px; height:17px; flex-shrink:0;
  accent-color:var(--leaf);
}
.checkbox-row label{
  font-size:13.5px; color:var(--ink-soft); line-height:1.5;
}
.checkbox-row a{ color:var(--leaf-deep); font-weight:600; text-decoration:underline; }

.btn-block{ width:100%; }

.auth-foot{
  text-align:center; margin-top:24px;
  font-size:14px; color:var(--ink-soft);
}
.auth-foot a{ color:var(--leaf-deep); font-weight:600; text-decoration:none; }
.auth-foot a:hover{ text-decoration:underline; }

.toggle-pill{
  display:flex; background:var(--sage); border-radius:999px; padding:4px;
  margin-bottom:28px;
}
.toggle-pill a{
  flex:1; text-align:center; padding:10px 16px;
  font-size:13.5px; font-weight:600; color:var(--ink-soft);
  text-decoration:none; border-radius:999px;
}
.toggle-pill a.active{
  background:var(--paper-raised); color:var(--ink);
  box-shadow:0 2px 8px rgba(22,36,31,0.08);
}

/* ---------- Onboarding wizard ---------- */
.wizard-shell{
  max-width:620px;
  margin:0 auto;
  padding:48px 20px 80px;
}
.wizard-progress{
  display:flex; align-items:center; gap:8px;
  margin-bottom:36px;
}
.wizard-dot{
  flex:1; height:6px; border-radius:999px;
  background:var(--sage-line);
}
.wizard-dot.done{ background:var(--leaf); }
.wizard-dot.current{ background:var(--amber); }
.wizard-step-label{
  font-family:var(--mono); font-size:12.5px; color:var(--ink-soft);
  margin-bottom:8px; display:block;
}
.wizard-card{
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:20px;
  padding:40px;
}
.wizard-card h2{
  font-family:var(--display); font-size:24px; font-weight:700;
  letter-spacing:-0.01em; margin-bottom:8px;
}
.wizard-card .wizard-sub{
  font-size:14.5px; color:var(--ink-soft); margin-bottom:30px;
}
.wizard-nav{
  display:flex; justify-content:space-between; align-items:center;
  margin-top:32px;
}
.wizard-skip{
  background:none; border:none; color:var(--ink-soft);
  font-size:14px; font-weight:600; cursor:pointer;
  text-decoration:underline;
}

.exp-item{
  border:1.5px solid var(--sage-line); border-radius:12px;
  padding:18px; margin-bottom:14px;
}
.exp-item-head{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:12px;
}
.exp-item-head span{ font-weight:600; font-size:14px; }
.exp-remove{
  background:none; border:none; color:var(--ink-soft);
  cursor:pointer; font-size:13px;
}
.add-exp-btn{
  width:100%; padding:13px;
  border:1.5px dashed var(--sage-line); border-radius:12px;
  background:none; color:var(--ink-soft); font-weight:600; font-size:14px;
  cursor:pointer;
}
.add-exp-btn:hover{ border-color:var(--leaf); color:var(--leaf-deep); }

.tag-input-wrap{
  display:flex; flex-wrap:wrap; gap:8px;
  border:1.5px solid var(--sage-line); border-radius:10px;
  padding:10px;
}
.tag-chip{
  background:var(--leaf-tint); color:var(--leaf-deep);
  font-size:13px; font-weight:600;
  padding:5px 10px; border-radius:999px;
  display:flex; align-items:center; gap:6px;
}
.tag-chip button{
  background:none; border:none; color:var(--leaf-deep);
  cursor:pointer; font-size:13px; line-height:1; padding:0;
}
.tag-input-wrap input{
  border:none; outline:none; flex:1; min-width:120px;
  font-size:14px; padding:5px;
}

.accessibility-callout{
  background:var(--leaf-tint);
  border:1px solid var(--leaf);
  border-radius:14px;
  padding:18px 20px;
  margin-bottom:24px;
  display:flex; gap:12px;
}
.accessibility-callout svg{ flex-shrink:0; color:var(--leaf-deep); margin-top:2px; }
.accessibility-callout p{ font-size:13.5px; color:var(--ink); line-height:1.55; }

.radio-card-group{ display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
.radio-card{
  display:flex; align-items:flex-start; gap:12px;
  border:1.5px solid var(--sage-line); border-radius:12px;
  padding:14px 16px; cursor:pointer;
}
.radio-card:has(input:checked){ border-color:var(--leaf); background:var(--leaf-tint); }
.radio-card input{ margin-top:3px; accent-color:var(--leaf); width:17px; height:17px; flex-shrink:0; }
.radio-card div span{ display:block; font-weight:600; font-size:14px; }
.radio-card div small{ color:var(--ink-soft); font-size:12.5px; }

/* ---------- Quota result panel (onboarding empresa) ---------- */
.quota-result-panel{
  background:var(--ink);
  border-radius:16px;
  padding:28px;
  margin-top:8px;
  margin-bottom:24px;
}
.quota-result-panel .label{
  font-family:var(--mono); font-size:12px; color:#C9D3CD;
  text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px; display:block;
}
.quota-result-big{
  color:var(--paper); font-family:var(--display);
  font-size:30px; font-weight:700; margin-bottom:4px;
}
.quota-result-big strong{ color:var(--amber); }
.quota-result-sub{ color:#C9D3CD; font-size:14px; }
.quota-mini-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:18px;
}
.quota-mini{
  background:rgba(255,255,255,0.06);
  border-radius:10px; padding:14px;
}
.quota-mini .n{ font-family:var(--mono); font-weight:700; font-size:20px; color:var(--paper); }
.quota-mini .l{ font-size:12px; color:#C9D3CD; margin-top:2px; }

/* ---------- App layout: sidebar + main (dashboards) ---------- */
.app-layout{
  display:flex;
  min-height:calc(100vh - 68px);
}
.app-sidebar{
  width:248px; flex-shrink:0;
  background:var(--paper-raised);
  border-right:1px solid var(--sage-line);
  padding:28px 16px;
  position:sticky; top:68px;
  height:calc(100vh - 68px);
  display:flex; flex-direction:column;
}
.sidebar-nav{ list-style:none; display:flex; flex-direction:column; gap:3px; flex-grow:1; }
.sidebar-nav a{
  display:flex; align-items:center; gap:11px;
  padding:10px 14px; border-radius:10px;
  text-decoration:none; color:var(--ink-soft);
  font-size:14.5px; font-weight:500;
}
.sidebar-nav a svg{ flex-shrink:0; }
.sidebar-nav a:hover{ background:var(--sage); color:var(--ink); }
.sidebar-nav a.active{
  background:var(--leaf-tint); color:var(--leaf-deep); font-weight:600;
}
.sidebar-nav a.active.amber-active{ background:var(--amber-tint); color:var(--amber-deep); }
.sidebar-foot{
  border-top:1px solid var(--sage-line);
  padding-top:16px; margin-top:16px;
  font-size:12.5px; color:var(--ink-soft);
}
.app-main{
  flex:1; min-width:0;
  padding:36px 40px 64px;
}
.app-main-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  flex-wrap:wrap; gap:16px;
  margin-bottom:32px;
}
.app-main-head h1{
  font-family:var(--display); font-size:26px; font-weight:700;
  letter-spacing:-0.01em;
}
.app-main-head p{ color:var(--ink-soft); font-size:14.5px; margin-top:4px; }

/* ---------- Profile completion card ---------- */
.profile-card{
  background:var(--leaf-tint);
  border:1px solid var(--leaf);
  border-radius:16px;
  padding:22px 26px;
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap;
  margin-bottom:32px;
}
.profile-card-text{ flex:1; min-width:220px; }
.profile-card-text strong{ font-size:15px; }
.progress-bar-track{
  width:100%; height:8px; background:rgba(63,122,92,0.18);
  border-radius:999px; margin-top:10px; overflow:hidden;
}
.progress-bar-fill{
  height:100%; background:var(--leaf); border-radius:999px;
}

/* ---------- Stat cards (dashboard quotas) ---------- */
.stat-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:18px;
  margin-bottom:36px;
}
.stat-card{
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:16px;
  padding:24px;
}
.stat-card .stat-label{
  font-family:var(--mono); font-size:11.5px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--ink-soft); margin-bottom:10px; display:block;
}
.stat-card .stat-value{
  font-family:var(--display); font-size:30px; font-weight:700;
}
.stat-card.warn .stat-value{ color:var(--amber-deep); }
.stat-card.good .stat-value{ color:var(--leaf-deep); }

.compliance-gauge-wrap{
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:16px;
  padding:28px;
  margin-bottom:36px;
  display:flex; align-items:center; gap:32px; flex-wrap:wrap;
}
.compliance-bar-track{
  flex:1; min-width:220px;
  height:14px; background:var(--sage);
  border-radius:999px; overflow:hidden;
}
.compliance-bar-fill{
  height:100%; border-radius:999px;
  background:linear-gradient(90deg, var(--amber), var(--leaf));
}

/* ---------- Job / candidate cards ---------- */
.content-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.panel{
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:16px;
  padding:24px;
}
.panel h3{
  font-family:var(--display); font-size:16.5px; font-weight:600;
  margin-bottom:16px;
}
.list-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:13px 0; border-bottom:1px solid var(--sage);
  gap:12px;
}
.list-row:last-child{ border-bottom:none; }
.list-row-main{ min-width:0; }
.list-row-main .title{ font-size:14.5px; font-weight:600; }
.list-row-main .meta{ font-size:12.5px; color:var(--ink-soft); margin-top:2px; }
.status-pill{
  font-size:12px; font-weight:600; padding:4px 10px; border-radius:999px;
  white-space:nowrap; display:inline-flex; align-items:center; gap:5px;
}
.status-pill.sent{ background:var(--sage); color:var(--ink-soft); }
.status-pill.viewed{ background:#DCE8F5; color:#2A5C8A; }
.status-pill.interview{ background:var(--amber-tint); color:var(--amber-deep); }
.status-pill.approved{ background:var(--leaf-tint); color:var(--leaf-deep); }
.status-pill.rejected{ background:#F3DCDC; color:#A23C3C; }

/* horizontal scroll job cards */
.hscroll{
  display:flex; gap:16px; overflow-x:auto; padding-bottom:8px;
  scroll-snap-type:x mandatory;
}
.job-card{
  flex:0 0 260px;
  scroll-snap-align:start;
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:14px;
  padding:18px;
}
.job-card .company-row{
  display:flex; align-items:center; gap:10px; margin-bottom:12px;
}
.company-logo{
  width:34px; height:34px; border-radius:9px;
  background:var(--sage); flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:700; font-size:13px; color:var(--ink-soft);
}
.job-card h4{ font-size:15px; font-weight:600; margin-bottom:4px; }
.job-card .job-meta{ font-size:12.5px; color:var(--ink-soft); margin-bottom:12px; }
.job-tag{
  display:inline-block; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.03em;
  padding:3px 9px; border-radius:999px;
  background:var(--amber-tint); color:var(--amber-deep);
  margin-bottom:14px;
}
.job-tag.leaf{ background:var(--leaf-tint); color:var(--leaf-deep); }

/* ---------- Search / filters layout ---------- */
.search-shell{
  display:grid; grid-template-columns:260px 1fr; gap:28px;
}
.search-bar-row{
  display:flex; gap:12px; margin-bottom:24px;
}
.search-input-wrap{
  flex:1; position:relative;
}
.search-input-wrap svg{
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  color:var(--ink-soft);
}
.search-input-wrap input{ padding-left:42px; }
.filter-panel{
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:16px;
  padding:22px;
  align-self:flex-start;
  position:sticky; top:88px;
}
.filter-panel h3{
  font-family:var(--display); font-size:15px; font-weight:600; margin-bottom:18px;
}
.filter-group{ margin-bottom:20px; }
.filter-group:last-child{ margin-bottom:0; }
.filter-group label{
  font-size:13px; font-weight:600; display:block; margin-bottom:8px;
}
.filter-checkbox-list{ display:flex; flex-direction:column; gap:9px; }
.filter-checkbox-list label{
  display:flex; align-items:center; gap:9px;
  font-weight:400; font-size:13.5px; color:var(--ink-soft);
  cursor:pointer;
}
.filter-checkbox-list input{ accent-color:var(--leaf); width:16px; height:16px; }

.result-list{ display:flex; flex-direction:column; gap:14px; }
.result-card{
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:14px;
  padding:20px 22px;
  display:flex; justify-content:space-between; align-items:center;
  gap:16px; flex-wrap:wrap;
}
.result-card-main{ flex:1; min-width:220px; }
.result-card-main h4{ font-size:16px; font-weight:600; margin-bottom:4px; }
.result-card-main .meta{ font-size:13px; color:var(--ink-soft); }
.result-card-actions{ display:flex; gap:8px; flex-shrink:0; }
.btn-sm{ padding:9px 16px; font-size:13.5px; }

/* candidate result card with avatar */
.candidate-card{
  display:flex; gap:16px; align-items:flex-start;
}
.avatar-circle{
  width:48px; height:48px; border-radius:50%;
  background:var(--leaf-tint); color:var(--leaf-deep);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:700; font-size:16px;
  flex-shrink:0;
}

/* ---------- Kanban ---------- */
.kanban-shell{
  display:flex; gap:16px; overflow-x:auto; padding-bottom:16px;
}
.kanban-col{
  flex:0 0 260px;
  background:var(--sage);
  border-radius:14px;
  padding:14px;
}
.kanban-col-head{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:14px; padding:0 4px;
}
.kanban-col-head span.name{ font-weight:700; font-size:13.5px; }
.kanban-col-head span.count{
  font-family:var(--mono); font-size:12px; color:var(--ink-soft);
  background:rgba(255,255,255,0.6); padding:2px 8px; border-radius:999px;
}
.kanban-cards{ display:flex; flex-direction:column; gap:10px; min-height:60px; }
.kanban-card{
  background:var(--paper-raised);
  border-radius:10px; padding:14px;
  border:1px solid var(--sage-line);
  cursor:grab;
}
.kanban-card .name{ font-weight:600; font-size:14px; margin-bottom:4px; }
.kanban-card .job{ font-size:12.5px; color:var(--ink-soft); margin-bottom:8px; }
.kanban-card .date{ font-size:11.5px; color:var(--ink-soft); font-family:var(--mono); }
.kanban-col.rejected-col{ background:#F3DCDC; }
.kanban-col.rejected-col .kanban-col-head span.name{ color:#A23C3C; }
.kanban-col.approved-col{ background:#CFE8D9; }
.kanban-col.approved-col .kanban-col-head span.name{ color:var(--leaf-deep); }

/* ---------- Notification bell ---------- */
.icon-btn{
  width:40px; height:40px; border-radius:10px;
  border:1.5px solid var(--sage-line); background:var(--paper-raised);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:var(--ink); position:relative;
}
.icon-btn:hover{ border-color:var(--ink); }
.notif-dot{
  position:absolute; top:7px; right:7px;
  width:8px; height:8px; border-radius:50%;
  background:var(--amber-deep); border:1.5px solid var(--paper-raised);
}
.user-chip{
  display:flex; align-items:center; gap:10px;
  padding:6px 14px 6px 6px; border-radius:999px;
  border:1.5px solid var(--sage-line); background:var(--paper-raised);
  cursor:pointer;
}
.user-chip .avatar-circle{ width:30px; height:30px; font-size:13px; }
.user-chip span{ font-size:13.5px; font-weight:600; }
.topbar-actions{ display:flex; align-items:center; gap:10px; }

@media (max-width: 600px){
  .nav-cta .hide-mobile{ display:none; }
  .app-topbar .wrap{ padding:0 16px; }
  .app-topbar .logo span, .app-topbar .logo{ font-size:16px; }
  .user-chip span{ display:none; }
  .user-chip{ padding:6px; }
  .user-chip .avatar-circle{ width:32px; height:32px; }
}
  .app-layout{ flex-direction:column; }
  .app-sidebar{
    width:100%; height:auto; position:static;
    flex-direction:row; overflow-x:auto;
    padding:14px 16px; border-right:none; border-bottom:1px solid var(--sage-line);
  }
  .sidebar-nav{ flex-direction:row; flex-grow:0; }
  .sidebar-nav a{ white-space:nowrap; }
  .sidebar-foot{ display:none; }
  .app-main{ padding:28px 20px 48px; }
  .stat-grid{ grid-template-columns:1fr 1fr; }
  .search-shell{ grid-template-columns:1fr; }
  .filter-panel{ position:static; }
  .content-grid-2{ grid-template-columns:1fr; }
  .field-row{ grid-template-columns:1fr; }
}
@media (max-width: 600px){
  .stat-grid{ grid-template-columns:1fr 1fr; gap:12px; }
  .stat-card{ padding:16px; }
  .stat-card .stat-value{ font-size:24px; }
  .auth-card{ padding:28px 22px; }
  .wizard-card{ padding:26px 22px; }
  .app-main-head h1{ font-size:22px; }
  .result-card{ flex-direction:column; align-items:flex-start; }
  .result-card-actions{ width:100%; }
  .result-card-actions .btn{ flex:1; }
}

/* ============================================================
   CONTENT PAGES — institutional/legal article-style layout
   ============================================================ */

.content-hero{
  padding:64px 0 48px;
  border-bottom:1px solid var(--sage-line);
}
.content-hero .eyebrow{ margin-bottom:16px; }
.content-hero h1{
  font-family:var(--display); font-weight:700;
  font-size:clamp(28px, 4vw, 42px);
  letter-spacing:-0.015em; line-height:1.12;
  max-width:18ch; margin-bottom:16px;
}
.content-hero .lede{
  font-size:17px; color:var(--ink-soft); max-width:62ch; line-height:1.6;
}
.content-hero.amber-hero{ background:linear-gradient(180deg, var(--amber-tint) 0%, var(--paper) 100%); border-bottom:none; }
.content-hero.leaf-hero{ background:linear-gradient(180deg, var(--leaf-tint) 0%, var(--paper) 100%); border-bottom:none; }

.content-shell{
  max-width:760px;
  margin:0 auto;
  padding:56px 32px 96px;
}
.content-shell.wide{ max-width:980px; }

.content-shell h2{
  font-family:var(--display); font-weight:700; font-size:24px;
  letter-spacing:-0.01em; margin:48px 0 16px;
}
.content-shell h2:first-child{ margin-top:0; }
.content-shell h3{
  font-family:var(--display); font-weight:600; font-size:18px;
  margin:28px 0 12px;
}
.content-shell p{
  font-size:15.5px; line-height:1.75; color:var(--ink);
  margin-bottom:16px;
}
.content-shell p.muted{ color:var(--ink-soft); font-size:14px; }
.content-shell ul, .content-shell ol{
  margin:0 0 20px 0; padding-left:22px;
}
.content-shell li{
  font-size:15.5px; line-height:1.7; color:var(--ink);
  margin-bottom:8px;
}
.content-shell a{ color:var(--leaf-deep); font-weight:600; text-decoration:underline; text-decoration-color:rgba(63,122,92,0.35); }
.content-shell a:hover{ text-decoration-color:var(--leaf-deep); }
.content-shell strong{ font-weight:700; }

.content-callout{
  background:var(--leaf-tint);
  border:1px solid var(--leaf);
  border-radius:14px;
  padding:20px 24px;
  margin:24px 0;
  display:flex; gap:14px;
}
.content-callout.amber{ background:var(--amber-tint); border-color:var(--amber); }
.content-callout svg{ flex-shrink:0; margin-top:3px; }
.content-callout.amber svg{ color:var(--amber-deep); }
.content-callout svg{ color:var(--leaf-deep); }
.content-callout p{ margin-bottom:0; font-size:14.5px; }

.toc-box{
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:14px;
  padding:22px 26px;
  margin-bottom:36px;
}
.toc-box .toc-label{
  font-family:var(--mono); font-size:11.5px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--ink-soft); margin-bottom:12px; display:block;
}
.toc-box ol{ margin:0; padding-left:18px; }
.toc-box li{ margin-bottom:6px; }
.toc-box a{ text-decoration:none; font-weight:500; color:var(--ink); }
.toc-box a:hover{ color:var(--leaf-deep); }

.content-divider{
  border:none; border-top:1px solid var(--sage-line);
  margin:40px 0;
}

.last-updated{
  font-family:var(--mono); font-size:12.5px; color:var(--ink-soft);
  margin-bottom:32px; display:block;
}

/* ---------- Artigos (blog / conteúdo de autoridade) ---------- */
.article-filters{
  display:flex; gap:8px; flex-wrap:wrap;
  margin-bottom:32px;
}
.filter-pill{
  font-family:var(--mono); font-size:12.5px; font-weight:500;
  padding:8px 16px; border-radius:999px;
  border:1.5px solid var(--sage-line);
  background:var(--paper-raised);
  color:var(--ink-soft);
  cursor:pointer;
}
.filter-pill:hover{ border-color:var(--leaf); color:var(--leaf-deep); }
.filter-pill.active{ background:var(--ink); border-color:var(--ink); color:var(--paper); }

.article-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:22px;
  margin-bottom:8px;
}
.article-card{
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:16px;
  padding:26px;
  display:flex; flex-direction:column; gap:12px;
  text-decoration:none;
  transition:box-shadow .15s ease, transform .15s ease;
}
.article-card:hover{ box-shadow:0 10px 28px rgba(22,36,31,0.10); transform:translateY(-2px); }
.article-card.featured{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:start;
  gap:20px;
  background:var(--ink);
}
.article-card.featured .article-tag{ background:rgba(232,169,60,0.22); color:var(--amber); }
.article-card.featured h3{ color:var(--paper); font-size:22px; }
.article-card.featured p{ color:#C9D3CD; }
.article-card.featured .article-meta{ color:#9FB0A8; }
.article-card.featured .featured-badge{
  font-family:var(--mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase;
  background:var(--amber); color:var(--ink); font-weight:700;
  padding:5px 10px; border-radius:999px; width:max-content;
}
.article-tags-row{ display:flex; gap:8px; flex-wrap:wrap; }
.article-tag{
  font-family:var(--mono); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  padding:4px 10px; border-radius:999px; width:max-content;
}
.article-tag.tag-pcd{ background:var(--leaf-tint); color:var(--leaf-deep); }
.article-tag.tag-aprendiz{ background:var(--amber-tint); color:var(--amber-deep); }
.article-tag.tag-lgpd{ background:var(--sage); color:var(--ink-soft); }
.article-tag.tag-compliance{ background:rgba(22,36,31,0.08); color:var(--ink); }
.article-card h3{
  font-family:var(--display); font-size:17px; font-weight:600; line-height:1.35; color:var(--ink);
}
.article-card p{ font-size:13.5px; color:var(--ink-soft); line-height:1.55; flex-grow:1; }
.article-meta{
  font-family:var(--mono); font-size:11.5px; color:var(--ink-soft);
  display:flex; align-items:center; gap:6px;
}
.article-hero-intro{
  max-width:640px; margin:0 auto 8px;
  text-align:center;
}
@media (max-width:760px){
  .article-grid{ grid-template-columns:1fr; }
  .article-card.featured{ grid-template-columns:1fr; }
}

/* ---------- Quota law table ---------- */
.law-table{
  width:100%; border-collapse:collapse;
  margin:20px 0 28px;
  font-size:14.5px;
}
.law-table th, .law-table td{
  text-align:left; padding:12px 16px;
  border-bottom:1px solid var(--sage-line);
}
.law-table th{
  font-family:var(--mono); font-size:11.5px; text-transform:uppercase;
  letter-spacing:.04em; color:var(--ink-soft); font-weight:600;
}
.law-table td{ color:var(--ink); }
.law-table tr:last-child td{ border-bottom:none; }
.law-table td.num{ font-family:var(--mono); font-weight:700; color:var(--leaf-deep); }

/* ---------- Partner logos grid ---------- */
.partner-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:18px;
  margin:28px 0;
}
.partner-card{
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:14px;
  padding:24px 20px;
  text-align:center;
}
.partner-card .partner-mark{
  width:52px; height:52px; border-radius:14px;
  background:var(--leaf-tint); color:var(--leaf-deep);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:700; font-size:17px;
  margin:0 auto 14px;
}
.partner-card h4{ font-family:var(--display); font-size:14.5px; font-weight:600; margin-bottom:6px; }
.partner-card p{ font-size:12.5px; color:var(--ink-soft); margin-bottom:0; line-height:1.5; }

/* ---------- Contact page ---------- */
.contact-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:48px;
  margin-top:8px;
}
.contact-method{
  display:flex; gap:14px; padding:18px 0;
  border-bottom:1px solid var(--sage-line);
}
.contact-method:last-child{ border-bottom:none; }
.contact-method .icon-wrap{
  width:40px; height:40px; border-radius:10px; flex-shrink:0;
  background:var(--leaf-tint); color:var(--leaf-deep);
  display:flex; align-items:center; justify-content:center;
}
.contact-method h4{ font-size:14.5px; font-weight:600; margin-bottom:3px; }
.contact-method p{ font-size:13.5px; color:var(--ink-soft); margin-bottom:0; }

/* ---------- Accessibility statement specific ---------- */
.a11y-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
  margin:20px 0 28px;
}
.a11y-item{
  display:flex; gap:12px; align-items:flex-start;
  background:var(--paper-raised);
  border:1px solid var(--sage-line);
  border-radius:12px; padding:16px 18px;
}
.a11y-item svg{ flex-shrink:0; color:var(--leaf-deep); margin-top:2px; }
.a11y-item span{ font-size:14px; color:var(--ink); line-height:1.5; }

@media (max-width: 760px){
  .content-shell{ padding:40px 20px 64px; }
  .content-hero{ padding:44px 0 32px; }
  .contact-grid{ grid-template-columns:1fr; gap:8px; }
  .partner-grid{ grid-template-columns:1fr; }
  .a11y-grid{ grid-template-columns:1fr; }
  .law-table{ font-size:13px; }
  .law-table th, .law-table td{ padding:10px 10px; }
}
