/* Talent Orbe · componentes compartilhados (início e páginas internas) */

/* Ilustrações */
.ill svg { width:100%; height:auto; display:block; border-radius:14px; box-shadow:0 10px 24px rgba(4,24,43,.16); }
.ill.lg svg { border-radius:22px; box-shadow:0 30px 60px rgba(4,24,43,.25); }

/* Fotografias (Unsplash, licença gratuita) */
.foto { position:relative; margin:0; border-radius:22px; overflow:hidden; box-shadow:0 30px 60px rgba(4,24,43,.25); aspect-ratio:4/3; background:#12304A; }
.foto img { width:100%; height:100%; object-fit:cover; display:block; }
.foto::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(4,24,43,0) 55%, rgba(4,24,43,.45)); pointer-events:none; }
.foto figcaption { position:absolute; right:12px; bottom:9px; z-index:2; font-size:10.5px; letter-spacing:.3px; color:rgba(255,255,255,.75); }
.foto .orb { position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; }

/* Cartões institucionais (sem preços) */
.ic-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:22px; margin-top:40px; }
.ic { background:#fff; border:1px solid var(--line); border-radius:22px; padding:16px 18px 24px; display:flex; flex-direction:column; gap:12px; transition:transform .25s, box-shadow .25s; }
.ic:hover { transform:translateY(-3px); box-shadow:0 24px 48px rgba(4,24,43,.12); }
.ic .nome { font:700 12px Montserrat, sans-serif; letter-spacing:3px; color:var(--dusty); margin-top:4px; }
.ic h3 { font-size:20px; color:var(--deep); margin:0; }
.ic p { font-size:15.5px; color:var(--dusty); margin:0; line-height:1.55; }
.ic ul { list-style:none; display:grid; gap:8px; font-size:14px; color:var(--ink); margin:2px 0 0; padding:0; }
.ic li { display:flex; gap:10px; }
.ic li::before { content:""; flex:none; width:7px; height:7px; border-radius:50%; background:var(--sky); margin-top:8px; }
.acoes-c { margin-top:auto; padding-top:10px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.lnk { font-weight:600; font-size:14px; color:var(--deep); border-bottom:1px solid var(--sky); }
.ic.livre { border-top:3px solid #2E7D5B; }
.selo-g { align-self:flex-start; font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:#2E7D5B; background:#E5F3EC; padding:4px 10px; border-radius:999px; }
.cv h3 { font-size:18px; color:var(--deep); margin:0; }
.dark .ic { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.1); }
.dark .ic h3 { color:#fff; } .dark .ic p { color:var(--stone); }

/* Cartões comerciais (Selection, Hunting, Executive) */
.ofertas { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:22px; margin-top:40px; }
.oferta { background:#fff; border:1px solid var(--line); border-radius:22px; padding:18px 18px 26px; display:flex; flex-direction:column; gap:14px; }
.oferta .nome { font:700 13px Montserrat, sans-serif; letter-spacing:3px; color:var(--dusty); }
.oferta h3 { font-size:21px; color:var(--deep); margin:0; }
.oferta ul { list-style:none; display:grid; gap:8px; font-size:14.5px; color:var(--ink); margin:0; padding:0; }
.oferta li { display:flex; gap:10px; }
.oferta li::before { content:""; flex:none; width:7px; height:7px; border-radius:50%; background:var(--sky); margin-top:8px; }
.oferta .valor { margin-top:auto; padding-top:12px; border-top:1px solid var(--line); font-size:13px; color:var(--dusty); }
.oferta .valor b { display:block; font-size:17px; color:var(--deep); }

/* Tabela de valores */
.tab-precos { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.tab-precos th, .tab-precos td { text-align:left; padding:15px 20px; border-bottom:1px solid var(--line); font-size:15px; }
.tab-precos th { background:var(--deep); color:var(--ivory); font-size:12px; letter-spacing:2px; text-transform:uppercase; font-weight:600; }
.tab-precos td:last-child, .tab-precos th:last-child { text-align:right; }
.tab-precos td:last-child { font-weight:600; color:var(--deep); white-space:nowrap; }
.tab-precos tr:last-child td { border-bottom:0; }
.nota { font-size:14.5px; color:var(--dusty); margin-top:14px; max-width:760px; }

/* Planos */
.pl-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:22px; margin-top:40px; align-items:stretch; }
.pl { position:relative; background:#fff; border:1px solid var(--line); border-radius:24px; padding:30px 26px; display:flex; flex-direction:column; gap:12px; }
.pl.destaque { background:linear-gradient(165deg, #1E4561, var(--night)); color:#fff; border:0; box-shadow:0 30px 60px rgba(4,24,43,.3); }
.pl .selo { position:absolute; top:-12px; left:26px; background:var(--sky); color:var(--night); font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; padding:5px 12px; border-radius:999px; }
.pl .nome { font:700 13px Montserrat, sans-serif; letter-spacing:3px; text-transform:uppercase; color:var(--dusty); }
.pl.destaque .nome { color:var(--sky); }
.pl .preco { font-size:34px; font-weight:700; color:var(--deep); line-height:1.1; }
.pl.destaque .preco { color:#fff; }
.pl .preco small { font-size:15px; font-weight:500; color:var(--dusty); }
.pl.destaque .preco small, .pl.destaque .pub { color:var(--mineral); }
.pl .pub { font-size:15px; color:var(--dusty); }
.pl ul { list-style:none; display:grid; gap:9px; font-size:14.5px; margin:8px 0 18px; padding:0; }
.pl li { display:flex; gap:10px; }
.pl li::before { content:"✓"; flex:none; color:#2E7D5B; font-weight:700; }
.pl.destaque li::before { color:#5FC79A; }
.pl .btn { margin-top:auto; justify-content:center; }
.pl.destaque .btn-dark { background:var(--ivory); color:var(--deep); }

/* Comparativo */
.comp-wrap { overflow-x:auto; margin-top:24px; border-radius:18px; border:1px solid var(--line); background:#fff; }
.comp { width:100%; border-collapse:collapse; min-width:620px; }
.comp th, .comp td { padding:13px 18px; border-bottom:1px solid var(--line); font-size:14.5px; text-align:center; }
.comp th:first-child, .comp td:first-child { text-align:left; }
.comp thead th { font-size:13px; letter-spacing:2px; text-transform:uppercase; color:var(--deep); background:var(--ivory); }
.comp thead th.d { background:var(--deep); color:#fff; }
.comp .s { color:#2E7D5B; font-weight:700; }
.comp .n { color:#A0AEB6; }
.comp tr:last-child td { border-bottom:0; }

/* Talent Career */
.career-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:18px; margin-top:36px; }
.cv { background:#fff; border:1px solid var(--line); border-radius:20px; padding:24px 22px; display:flex; flex-direction:column; gap:10px; }
.cv .nome { font:700 12.5px Montserrat, sans-serif; letter-spacing:2.5px; color:var(--dusty); }
.cv .preco { font-size:28px; font-weight:700; color:var(--deep); }
.cv ul { list-style:none; display:grid; gap:7px; font-size:14px; margin:4px 0 14px; padding:0; color:var(--ink); }
.cv li { display:flex; gap:8px; }
.cv li::before { content:"—"; color:var(--sky); flex:none; }
.cv .btn { margin-top:auto; justify-content:center; }
.aviso { display:flex; gap:14px; align-items:flex-start; background:#fff; border:1px solid var(--line); border-left:4px solid var(--sky); border-radius:14px; padding:16px 18px; margin-top:28px; font-size:14.5px; color:var(--deep); max-width:900px; }
.aviso svg { flex:none; margin-top:2px; }
.dark .aviso { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.12); border-left-color:var(--sky); color:var(--stone); }

/* Diagramas */
.diag { background:#fff; border:1px solid var(--line); border-radius:24px; padding:28px; margin-top:28px; }
.diag h3 { font-size:15px; letter-spacing:2px; text-transform:uppercase; color:var(--dusty); margin:0 0 20px; font-weight:600; }
.dg-root { display:block; width:max-content; max-width:100%; margin:0 auto; background:var(--deep); color:#fff; font-weight:700; letter-spacing:3px; padding:12px 26px; border-radius:999px; font-size:14px; text-align:center; }
.dg-cols { display:grid; gap:18px; margin-top:22px; position:relative; }
.dg-cols.c2 { grid-template-columns:1fr 1fr; }
.dg-cols.c3 { grid-template-columns:repeat(3, 1fr); }
.dg-col { border:1px solid var(--line); border-radius:18px; padding:16px; background:var(--paper); position:relative; }
.dg-col::before { content:""; position:absolute; top:-23px; left:50%; width:2px; height:22px; background:var(--mineral); }
.dg-col > b { display:block; text-align:center; color:var(--deep); letter-spacing:2px; font-size:13px; margin-bottom:12px; }
.dg-row { display:grid; grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr); align-items:center; gap:6px; margin-top:8px; }
.dg-row .a { background:#fff; border:1px solid var(--line); border-radius:12px; padding:9px 12px; font-size:13.5px; color:var(--deep); font-weight:500; }
.dg-row .seta { text-align:center; color:var(--dusty); font-weight:700; }
.dg-row .r { border-radius:12px; padding:9px 12px; font-size:12.5px; font-weight:600; text-align:center; }
.r.proj { background:#E1ECF3; color:#2C5878; } .r.rec { background:#E5F3EC; color:#2E7D5B; } .r.serv { background:#F3EAD9; color:#8A5A14; } .r.gr { background:#EFEDE8; color:#6A7880; }
.dg-flow { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:30px 34px; counter-reset:f; }
.dg-step { position:relative; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:14px 14px 14px 46px; font-size:14px; font-weight:600; color:var(--deep); min-height:64px; display:flex; align-items:center; }
.dg-step::before { counter-increment:f; content:counter(f); position:absolute; left:12px; top:50%; transform:translateY(-50%); width:24px; height:24px; border-radius:50%; background:var(--deep); color:#fff; font-size:12px; display:grid; place-items:center; }
.dg-step::after { content:"→"; position:absolute; right:-26px; top:50%; transform:translateY(-50%); color:var(--dusty); font-weight:700; }
.dg-step:nth-child(4n)::after, .dg-step:last-child::after { display:none; }
.dg-step small { display:block; font-size:11px; font-weight:600; letter-spacing:1px; text-transform:uppercase; margin-top:2px; }
.dg-step .ia { color:#2C5878; } .dg-step .hu { color:#2E7D5B; } .dg-step .ca { color:#8A5A14; } .dg-step .em { color:#6B5296; }
.dg-step > span { display:block; }
.dark .dg-step::after { color:var(--sky); }
.dg-leg { display:flex; flex-wrap:wrap; gap:16px; margin-top:20px; font-size:13.5px; color:var(--dusty); }

/* Menu do celular */
.mbtn { display:none; width:42px; height:42px; border-radius:12px; border:1px solid rgba(26,61,79,.18); background:#fff; cursor:pointer; position:relative; }
.mbtn span, .mbtn span::before, .mbtn span::after { position:absolute; left:11px; width:18px; height:2px; background:var(--deep); border-radius:2px; content:""; }
.mbtn span { top:20px; } .mbtn span::before { top:-6px; left:0; } .mbtn span::after { top:6px; left:0; }
.mnav { position:fixed; top:64px; left:0; right:0; z-index:49; background:#fff; box-shadow:0 20px 40px rgba(4,24,43,.18); padding:10px 16px 18px; display:grid; }
.mnav a { padding:13px 4px; border-bottom:1px solid var(--line); font-weight:600; color:var(--deep); font-size:15px; }
.mnav a:last-child { border-bottom:0; }

@media (max-width: 1080px) {
  .ofertas, .pl-grid { grid-template-columns:1fr; max-width:560px; }
  .ic-grid { grid-template-columns:1fr 1fr; }
  .career-grid { grid-template-columns:1fr 1fr; }
  .dg-flow { grid-template-columns:1fr 1fr; }
  .dg-step:nth-child(4n)::after { display:block; }
  .dg-step:nth-child(2n)::after { display:none; }
}
@media (max-width: 720px) {
  .ic-grid, .career-grid, .dg-cols.c2, .dg-cols.c3, .dg-flow { grid-template-columns:1fr; }
  .dg-col::before { display:none; }
  .dg-flow { gap:22px; }
  .dg-step { min-height:52px; }
  .dg-step::after { content:"↓"; right:auto; left:19px; top:auto; bottom:-21px; transform:none; display:block !important; }
  .dg-step:last-child::after { display:none !important; }
  .diag { padding:18px; }
  .tab-precos th, .tab-precos td { padding:12px 14px; font-size:14px; }
  .tab-precos td:last-child { white-space:normal; }
}

/* ---------- Aviso LGPD nos formulários e links legais do rodapé ---------- */
.aviso-lgpd { font-size:12.5px; line-height:1.55; color:#4A6378; margin:2px 0 0; }
.aviso-lgpd a, footer .legal a { text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
footer .legal { display:flex; flex-wrap:wrap; gap:6px; }

/* ---------- Páginas legais (privacidade, termos) e 404 ---------- */
.legal-pg { padding:64px 0 96px; background:#fff; }
.legal-pg .wrap { max-width:820px; }
.legal-pg .sumario { background:#F5F0E9; border-radius:14px; padding:18px 22px; margin:0 0 36px; font-size:14.5px; }
.legal-pg .sumario ol { margin:8px 0 0 18px; columns:2; column-gap:28px; }
.legal-pg .sumario a { color:#1A3D4F; }
.legal-pg h2 { font-size:22px; margin:40px 0 12px; color:#1A3D4F; scroll-margin-top:96px; }
.legal-pg h3 { font-size:16.5px; margin:22px 0 8px; color:#1A3D4F; }
.legal-pg p, .legal-pg li { font-size:15.5px; line-height:1.75; color:#22343F; }
.legal-pg p { margin:0 0 12px; }
.legal-pg ul { margin:0 0 14px 20px; display:grid; gap:6px; }
.legal-pg table { width:100%; border-collapse:collapse; margin:8px 0 18px; font-size:14.5px; }
.legal-pg th, .legal-pg td { text-align:left; vertical-align:top; padding:11px 12px; border-bottom:1px solid #D6E0E7; color:#22343F; }
.legal-pg th { background:#F3F6F8; color:#1A3D4F; font-weight:600; }
.legal-pg .destaque { border-left:4px solid #4A7599; background:#EEF4F8; border-radius:0 12px 12px 0; padding:14px 18px; margin:16px 0; }
.legal-pg .atualizado { color:#4A6378; font-size:14px; }
/* ===== Talent Career · seção da página inicial (index.html #career): foto e cartões sobrepostos ===== */
.tc-hero { --tc-navy:#102C4A; --tc-azul:#2C6A9A; padding:0; position:relative; overflow:hidden;
  background:radial-gradient(60% 50% at 100% 100%, #E2F2F5 0%, rgba(226,242,245,0) 70%), linear-gradient(180deg, #F2F5F9 0%, #F7F9FB 100%); }
.tc-topo { position:relative; min-height:500px; }
.tc-foto { position:absolute; top:0; right:0; bottom:-70px; width:60%; margin:0; z-index:0;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 26%), linear-gradient(180deg, #000 78%, transparent 100%); -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg, transparent 0, #000 26%), linear-gradient(180deg, #000 78%, transparent 100%); mask-composite:intersect; }
.tc-foto img { width:100%; height:100%; object-fit:cover; object-position:68% 22%; display:block; }
.tc-arco { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.tc-arco path { vector-effect:non-scaling-stroke; }
.tc-arco path:first-child { stroke-width:18px; } .tc-arco path:last-child { stroke-width:22px; }
.tc-txt { position:relative; z-index:1; width:47%; max-width:560px; padding:84px 0 96px; }
.tc-eyebrow { font:600 12.5px/1.3 Montserrat, sans-serif; letter-spacing:.26em; text-transform:uppercase; color:var(--tc-azul); }
.tc-hero .tc-titulo { font-size:clamp(34px, 3.75vw, 54px); line-height:1.07; font-weight:600; letter-spacing:-.022em; color:var(--tc-navy); margin:18px 0 26px; text-wrap:balance; }
.tc-txt p { font-size:17px; line-height:1.6; color:#21405E; max-width:31em; margin:0; text-wrap:pretty; }
.tc-cards .ver .btn-dark { background:var(--tc-navy); }
.tc-cards .ver .btn-line, .tc-cards .cv .btn { color:var(--tc-navy); border:1.5px solid var(--tc-navy); background:rgba(255,255,255,.7); }
.tc-cards { position:relative; z-index:2; padding-bottom:80px; }
.tc-cards .career-grid { margin-top:0; gap:18px; align-items:stretch; }
.tc-cards .cv { padding:30px 28px 28px; gap:0; border-radius:20px; border:1px solid #D9E6F0; background:#fff;
  box-shadow:0 14px 34px rgba(16,44,74,.08), 0 2px 6px rgba(16,44,74,.04); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.tc-cards .cv:hover { transform:translateY(-4px); border-color:#B9D3E6; box-shadow:0 20px 44px rgba(16,44,74,.13), 0 2px 6px rgba(16,44,74,.05); }
.tc-cards .cv .nome { font-size:12.5px; font-weight:600; letter-spacing:.24em; color:var(--tc-azul); }
.tc-cards .cv h3 { font-size:22px; line-height:1.22; font-weight:600; color:var(--tc-navy); margin:12px 0 18px; }
.tc-cards .cv ul { gap:11px; font-size:15.5px; line-height:1.45; color:#2A4560; margin:0 0 28px; }
.tc-cards .cv li { gap:12px; }
.tc-cards .cv li::before { color:#8EC3DD; }
.tc-cards .cv .btn { margin-top:auto; width:100%; padding:15px 18px; font-size:15px; letter-spacing:.01em; }
.tc-cards .cv .btn:hover { background:var(--tc-navy); color:#fff; transform:none; }
.tc-cards .btn:focus-visible { outline:3px solid #8EC3DD; outline-offset:3px; }
.tc-cards .aviso { margin-top:36px; }
@media (max-width:1100px) and (min-width:901px) { .tc-txt { width:50%; } .tc-foto { width:58%; } .tc-cards .cv { padding:26px 22px; } }
@media (max-width:900px) {
  .tc-topo { min-height:0; display:flex; flex-direction:column; }
  .tc-txt { width:auto; max-width:none; padding:48px 0 32px; }
  .tc-foto { position:relative; order:2; width:100%; height:clamp(260px, 55vw, 420px); bottom:auto;
    -webkit-mask-image:linear-gradient(180deg, transparent 0, #000 18%, #000 82%, transparent 100%); mask-image:linear-gradient(180deg, transparent 0, #000 18%, #000 82%, transparent 100%); }
  .tc-foto img { object-position:70% 20%; }
  .tc-cards { margin-top:-40px; padding-bottom:56px; }
  .tc-cards .career-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px) {
  .tc-hero .tc-titulo { font-size:34px; }
  .tc-txt p { font-size:16px; }
  .tc-cards .ver .btn { flex:1 1 100%; justify-content:center; }
  .tc-cards .career-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) { .tc-cards .cv { transition:none; } .tc-cards .cv:hover { transform:none; } }
@media (max-width:640px) { .legal-pg .sumario ol { columns:1; } .legal-pg table, .legal-pg thead, .legal-pg tbody, .legal-pg tr, .legal-pg th, .legal-pg td { display:block; } .legal-pg thead { display:none; } .legal-pg td { border:0; padding:4px 0; } .legal-pg tr { border-bottom:1px solid #D6E0E7; padding:10px 0; } .legal-pg td:first-child { font-weight:600; color:#1A3D4F; } }