/* AI Solutions · Módulo: cartões de casos, grelha de setores, equipa (e fichas genéricas, no fim). */
/* =========================================================
   Histórias de sucesso (compactas)
   ========================================================= */
.casos { padding: var(--sec-y) var(--margem); }
.casos__lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 22px); }
.caso {
  display: grid; grid-template-columns: 76px minmax(0, 1fr); grid-template-areas: "video cab" "texto texto" "num num" "acoes acoes";
  column-gap: 14px; row-gap: 12px; align-content: start; padding: 16px 18px 18px; border-radius: 18px; border: 1px solid var(--traco); background: rgba(243, 240, 255, .03);
}
.caso__video { grid-area: video; position: relative; display: block; width: 76px; aspect-ratio: 3 / 4; padding: 0; border: 0; border-radius: 12px; overflow: hidden; cursor: pointer; background: var(--indigo); box-shadow: 0 0 0 1px var(--traco-forte); }
.caso__video img { width: 100%; height: 100%; object-fit: cover; }
.caso__video .play { width: 30px; height: 30px; margin: -15px 0 0 -15px; box-shadow: 0 0 0 4px rgba(243, 240, 255, .18); }
.caso__video .play::after { border-width: 6px 0 6px 9px; }
.caso__cab { grid-area: cab; min-width: 0; align-self: center; }
.caso__quem { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; }
.caso__quem img { width: 26px; height: 26px; object-fit: contain; flex: none; padding: 3px; border-radius: 7px; background: rgba(243, 240, 255, .06); border: 1px solid var(--traco); }
.caso__quem span { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.caso__quem b { font-size: .9rem; }
.caso__quem small { font-size: .74rem; color: var(--texto-3); }
.caso__titulo { margin: 0; font-family: var(--f-display); font-stretch: 112.5%; font-weight: 680; font-size: var(--t-h3); line-height: 1.22; letter-spacing: -.01em; text-wrap: balance; }
.caso__texto { grid-area: texto; margin: 0; font-size: .9rem; line-height: 1.5; color: var(--texto-2); }
.caso__numeros { grid-area: num; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; padding-top: 12px; border-top: 1px solid var(--traco); }
.caso__numeros div { min-width: 0; }
.caso__numeros dt { font-family: var(--f-display); font-stretch: 112.5%; font-weight: 720; font-size: 1.15rem; line-height: 1.1; letter-spacing: -.015em; font-variant-numeric: tabular-nums; }
.caso__numeros dd { margin: 3px 0 0; font-size: .76rem; line-height: 1.3; color: var(--texto-2); }
.caso__acoes { grid-area: acoes; display: flex; justify-content: space-between; gap: 12px; margin: 0; font-size: .88rem; }
/* =========================================================
   Setores: uma grelha com fios
   ========================================================= */
.setores { padding: var(--sec-y) var(--margem); }
.setores__grelha { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--traco); border: 1px solid var(--traco); border-radius: 18px; overflow: hidden; }
.setores__grelha li { display: flex; background: var(--noite); }
.setor { flex: 1; display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: center; column-gap: 14px; min-height: 72px; padding: 16px 20px; font-weight: 600; font-size: 1rem; line-height: 1.3; text-decoration: none; }
a.setor { transition: background-color .2s; }
a.setor:hover { background: rgba(243, 240, 255, .04); }
.setor svg { width: 26px; height: 26px; color: #cfc6ff; }
.setor__t { display: flex; flex-direction: column; gap: 2px; }
.setor__t small { font-size: .8rem; font-weight: 500; color: var(--texto-2); text-decoration: underline; text-decoration-color: rgba(243, 240, 255, .3); text-underline-offset: .22em; }
.setores__mais { margin: 20px 0 0; }
.equipa { padding: 20px; border-radius: 20px; border: 1px solid var(--traco); background: rgba(243, 240, 255, .03); }
.equipa__titulo { margin: 0 0 14px; font-family: var(--f-display); font-stretch: 112.5%; font-weight: 680; font-size: var(--t-h3); }
.equipa__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.equipa__lista li { display: flex; flex-direction: column; min-width: 0; }
.equipa__lista img, .equipa__iniciais { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 14px; margin-bottom: 8px; background: #1c0a66; box-shadow: 0 0 0 1px var(--traco); }
.equipa__iniciais { display: grid; place-items: center; font: 700 clamp(1.1rem, 1.8vw, 1.6rem)/1 var(--f-display); color: var(--luz); letter-spacing: -.02em; background: radial-gradient(120% 90% at 30% 15%, #3a1fb8 0%, #1c0a66 55%, #110043 100%); }
.equipa__lista b { font-size: .86rem; line-height: 1.25; }
.equipa__lista small { font-size: .74rem; line-height: 1.3; color: var(--texto-3); margin-top: 2px; }
@media (max-width: 1100px) {
  .casos__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .setores__grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .casos__lista { grid-template-columns: 1fr; }
  .caso { grid-template-columns: 64px minmax(0, 1fr); padding: 14px 14px 16px; }
  .caso__video { width: 64px; }
  .setores__grelha { grid-template-columns: 1fr 1fr; }
  .setor { grid-template-columns: 22px minmax(0, 1fr); column-gap: 10px; min-height: 62px; padding: 12px 12px; font-size: .9rem; }
  .setor svg { width: 22px; height: 22px; }
  .equipa { padding: 16px; }
  .equipa__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 10px; }
}
@media (max-width: 720px) {
  .equipa__lista { grid-template-columns: 1fr 1fr; gap: 12px 10px; }
  .equipa__lista li { display: grid; grid-template-columns: 46px minmax(0, 1fr); column-gap: 10px; align-items: center; }
  .equipa__lista img, .equipa__iniciais { grid-row: 1 / 3; width: 46px; height: 46px; margin: 0; border-radius: 12px; font-size: 1rem; }
  .equipa__lista b { align-self: end; }
  .equipa__lista small { align-self: start; margin: 0; }
}

/* ---------- ficha: cartão genérico (serviços, vantagens, passos, artigos) ---------- */
.fichas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: clamp(14px, 1.6vw, 22px); margin: 0; padding: 0; list-style: none; }
.ficha { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 22px 22px 20px; border-radius: 18px; border: 1px solid var(--traco); background: rgba(243, 240, 255, .03); }
.ficha--destaque { border-color: rgba(107, 83, 249, .42); background: var(--superficie); }
.ficha__icone { width: 42px; height: 42px; padding: 9px; border-radius: 12px; color: #cfc6ff; background: rgba(107, 83, 249, .16); border: 1px solid rgba(107, 83, 249, .35); box-sizing: border-box; }
.ficha__titulo { margin: 0; font-family: var(--f-display); font-stretch: 112.5%; font-weight: 680; font-size: var(--t-h3); line-height: 1.25; letter-spacing: -.01em; }
.ficha__texto { margin: 0; font-size: .95rem; line-height: 1.55; color: var(--texto-2); }
.ficha__numero { font-family: var(--f-display); font-stretch: 112.5%; font-weight: 740; font-size: 1.6rem; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.ficha__ligacao { margin-top: auto; padding-top: 6px; font-size: .92rem; }
a.ficha { text-decoration: none; transition: border-color .2s, background-color .2s; }
a.ficha:hover { border-color: rgba(228, 220, 255, .4); background: rgba(243, 240, 255, .05); }
.ficha__imagem { margin: -22px -22px 6px; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 18px 18px 0 0; background: var(--indigo); }
.ficha__imagem img { width: 100%; height: 100%; object-fit: cover; }
.fichas > li:not(.ficha) { display: flex; }
.fichas > li > a.ficha { flex: 1; }
