/* Feitaz — componentes compartilhados das páginas internas (serviços, IA, trabalhos, institucional).
   Cada página soma o próprio CSS em /assets/css/paginas/<nome>.css. Tokens: feitaz.css. */

/* ---------- Migalhas ---------- */
.migalhas { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; list-style: none; margin: 0 0 22px; padding: 0; font-family: var(--f-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--cinza); }
.migalhas a { color: var(--cinza); text-decoration: none; }
.migalhas a:hover { color: var(--osso); }
.migalhas li + li::before { content: "/"; margin-right: 8px; color: var(--cinza-2); }
.migalhas [aria-current] { color: var(--brasa); }

/* ---------- Herói de página interna (arte à direita, texto à esquerda) ---------- */
.pg-heroi { position: relative; min-height: min(100svh, 980px); display: grid; grid-template-columns: minmax(0, 1fr); align-items: end; padding: calc(var(--topo-h) + 60px) 0 clamp(56px, 8vw, 110px); overflow: hidden; isolation: isolate; border-bottom: 1px solid var(--linha); }
.pg-heroi__arte { position: absolute; inset: 0; z-index: -2; }
.pg-heroi__arte picture, .pg-heroi__arte img { width: 100%; height: 100%; }
.pg-heroi__arte img { object-fit: cover; object-position: 72% 50%; }
.pg-heroi__arte::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--carvao) 0%, rgba(11, 10, 9, .86) 34%, rgba(11, 10, 9, .15) 70%, rgba(11, 10, 9, .35) 100%), linear-gradient(0deg, var(--carvao) 0%, transparent 38%); }
.pg-heroi--direita .pg-heroi__arte img { object-position: 28% 50%; }
.pg-heroi--direita .pg-heroi__arte::after { background: linear-gradient(270deg, var(--carvao) 0%, rgba(11, 10, 9, .86) 34%, rgba(11, 10, 9, .15) 70%, rgba(11, 10, 9, .35) 100%), linear-gradient(0deg, var(--carvao) 0%, transparent 38%); }
.pg-heroi--direita .pg-heroi__texto { margin-left: auto; }
.pg-heroi__texto { position: relative; min-width: 0; max-width: 820px; }
.pg-heroi__titulo { font-size: clamp(3rem, 7.2vw, 7.6rem); margin: 8px 0 26px; }
.pg-heroi .lead { color: rgba(244, 239, 230, .78); }
.pg-heroi .acoes { margin-top: 34px; }
.pg-heroi__fatos { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--linha); font-family: var(--f-mono); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; color: var(--cinza); list-style: none; padding-left: 0; }
.pg-heroi__fatos li::before { content: "✦ "; color: var(--brasa); }
@media (max-width: 899px) {
  .pg-heroi { min-height: auto; padding-top: calc(var(--topo-h) + 36vw); }
  .pg-heroi__arte { bottom: auto; height: 78vw; }
  .pg-heroi__arte img, .pg-heroi--direita .pg-heroi__arte img { object-position: 70% 50%; }
  .pg-heroi__arte::after, .pg-heroi--direita .pg-heroi__arte::after { background: linear-gradient(0deg, var(--carvao) 2%, rgba(11, 10, 9, .25) 55%, rgba(11, 10, 9, .4) 100%); }
  .pg-heroi__titulo { font-size: clamp(2.7rem, 12.5vw, 4.4rem); }
  .pg-heroi .acoes .btn { flex: 1 1 100%; min-width: 0; max-width: 100%; padding-block: 12px; white-space: normal; text-align: center; overflow-wrap: anywhere; }
}

/* ---------- Entregáveis em grade ---------- */
.entregas { display: grid; gap: 1px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--r-xl); overflow: hidden; }
@media (min-width: 760px) { .entregas { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .entregas { grid-template-columns: repeat(3, 1fr); } }
.entrega { position: relative; display: grid; gap: 10px; align-content: start; padding: clamp(24px, 2.8vw, 40px); background: var(--carvao); min-height: 220px; }
.entrega__ico { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; background: rgba(255, 90, 31, .1); border: 1px solid rgba(255, 90, 31, .25); margin-bottom: 10px; }
.entrega__ico svg { width: 24px; height: 24px; fill: none; stroke: var(--brasa); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.entrega h3 { font-size: 1.24rem; font-weight: 760; font-stretch: 112%; letter-spacing: -.02em; line-height: 1.15; }
.entrega p { color: var(--cinza); }
.sec--claro .entregas { background: rgba(11, 10, 9, .1); border-color: rgba(11, 10, 9, .1); }
.sec--claro .entrega { background: var(--osso); }
.sec--claro .entrega p { color: var(--cinza-2); }
.sec--claro .entrega__ico { background: rgba(184, 57, 10, .08); border-color: rgba(184, 57, 10, .2); }
.sec--claro .entrega__ico svg { stroke: var(--brasa-escura); }

/* ---------- Etapas (como trabalhamos) ---------- */
.etapas { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; counter-reset: etapa; }
@media (min-width: 900px) { .etapas { grid-template-columns: repeat(var(--n, 4), 1fr); } }
.etapa { position: relative; display: grid; gap: 10px; align-content: start; padding: 28px 24px 30px; border-radius: var(--r-l); background: var(--carvao-3); border: 1px solid var(--linha); counter-increment: etapa; }
.etapa::before { content: counter(etapa, decimal-leading-zero); font-family: var(--f-mono); font-size: .78rem; color: var(--brasa); letter-spacing: .1em; }
.etapa h3 { font-size: 1.14rem; font-weight: 740; font-stretch: 110%; letter-spacing: -.015em; line-height: 1.2; }
.etapa p { color: var(--cinza); font-size: .97rem; }
@media (min-width: 900px) { .etapa:not(:last-child)::after { content: ""; position: absolute; top: 38px; right: -14px; width: 14px; height: 1px; background: var(--linha-2); } }
.sec--claro .etapa { background: #fff; border-color: rgba(11, 10, 9, .08); }
.sec--claro .etapa p { color: var(--cinza-2); }
.sec--claro .etapa::before { color: var(--brasa-escura); }

/* ---------- Faixa de prova (captura grande com legenda) ---------- */
.prova { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.prova > * { min-width: 0; }
.prova .acoes .btn { min-width: 0; max-width: 100%; white-space: normal; text-align: center; padding-block: 12px; }
@media (min-width: 1000px) { .prova { grid-template-columns: 1.3fr 1fr; } .prova--inversa > :first-child { order: 2; } }
.prova__midia { position: relative; }
.prova__legenda { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-top: 16px; font-size: .88rem; color: var(--cinza); }
.sec--claro .prova__legenda { color: var(--cinza-2); }

/* ---------- Antes / depois (arrastar) ---------- */
.antes-depois { --pos: 50%; position: relative; overflow: hidden; border-radius: var(--r-l); user-select: none; touch-action: pan-y; background: #111; }
.antes-depois img { display: block; width: 100%; height: auto; }
.antes-depois__depois { position: absolute; inset: 0; clip-path: inset(0 0 0 var(--pos)); }
.antes-depois__depois img { width: 100%; height: 100%; object-fit: cover; }
.antes-depois__linha { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: var(--osso); box-shadow: 0 0 20px rgba(0, 0, 0, .5); pointer-events: none; }
.antes-depois__alca { position: absolute; top: 50%; left: var(--pos); width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: var(--osso); color: var(--tinta); display: grid; place-items: center; box-shadow: 0 10px 30px rgba(0, 0, 0, .5); pointer-events: none; font-weight: 800; letter-spacing: -.1em; }
.antes-depois input[type="range"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.antes-depois input[type="range"]:focus-visible ~ .antes-depois__alca { outline: 3px solid var(--brasa); outline-offset: 3px; }
.antes-depois__rot { position: absolute; top: 14px; padding: 6px 10px; border-radius: 999px; background: rgba(11, 10, 9, .7); color: var(--osso); font-family: var(--f-mono); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; pointer-events: none; }
.antes-depois__rot--antes { left: 14px; }
.antes-depois__rot--depois { right: 14px; }

/* ---------- Faixa de outros serviços (navegação cruzada) ---------- */
.outros { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.outros a { position: relative; display: grid; gap: 8px; align-content: start; padding: 26px 24px; text-decoration: none; transition: border-color .3s, background-color .3s, transform .45s var(--ease); }
.outros a::after { content: ""; position: absolute; top: 0; left: 24px; right: 24px; height: 1px; background: linear-gradient(90deg, var(--brasa), transparent); opacity: .4; transition: opacity .3s; pointer-events: none; }
.outros a:hover, .outros a:focus-visible { transform: translateY(-3px); border-color: rgba(255,90,31,.45); }
.outros a:hover::after, .outros a:focus-visible::after { opacity: 1; }
.outros strong { font-weight: 740; font-stretch: 110%; letter-spacing: -.02em; line-height: 1.2; transition: color .3s; }
.outros a:hover strong, .outros a:focus-visible strong { color: var(--brasa); }
.outros span { color: var(--cinza); font-size: .9rem; }
.sec--claro .outros a:hover strong, .sec--claro .outros a:focus-visible strong { color: var(--brasa-escura); }
.sec--claro .outros span { color: var(--cinza-2); }

/* ---------- Palco de demo ---------- */
.palco-demo { position: relative; padding: clamp(18px, 3vw, 44px); border-radius: var(--r-xl); background: radial-gradient(80% 70% at 80% 0%, rgba(255, 90, 31, .16), transparent 60%), var(--carvao-2); border: 1px solid var(--linha); }
.palco-demo__rot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }

/* ---------- Texto longo (legais) ---------- */
.legal { max-width: 760px; }
.legal h2 { font-size: 1.5rem; font-weight: 760; font-stretch: 110%; letter-spacing: -.02em; margin: 44px 0 14px; }
.legal p, .legal li { color: rgba(244, 239, 230, .82); }
.legal p + p { margin-top: 1em; }
.legal ul { padding-left: 1.2em; display: grid; gap: .5em; margin: 1em 0; }
.legal a { color: var(--brasa); }
