/* case-dialog.css: o modal guiado dos cases (case-dialog.js).
   Folha grande (até 90% da tela) com rolagem própria; abas de etapa presas no topo
   da rolagem; rodapé fixo com Voltar/Avançar à esquerda e Fechar/Próximo case à direita.
   Medidas na grade de 8. */
.cd-aberto,.cd-aberto body{overflow:hidden}
dialog.cd{width:min(1160px,calc(100vw - 64px));height:min(90vh,920px);max-width:none;max-height:none;margin:auto;padding:0;
  border:1px solid var(--linha);border-radius:var(--r-xl);background:var(--papel);color:var(--tinta);
  box-shadow:0 32px 96px -24px rgba(12,28,20,.38);overflow:hidden}
dialog.cd::backdrop{background:rgba(14,22,18,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.cd-folha{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%}
.cd-rolagem{overflow-y:auto;overscroll-behavior:contain;scroll-padding-top:80px}
.cd-ico{width:20px;height:20px;fill:currentColor;flex:none}

/* cabeçalho: chips, título e ficha técnica */
.cd-cabeca{position:relative;padding:40px 64px 24px}
.cd-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding-right:56px}
.cd-chips .chip-nda::before{display:none}
.cd-chips .chip .cd-ico{width:12px;height:12px}
.cd-titulo{font:600 clamp(28px,3vw,40px)/1.12 var(--font-heading);letter-spacing:-.035em;margin:0;max-width:24ch;text-wrap:balance;outline:none}
.cd-site{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:8px 16px;border-radius:999px;
  border:1px solid color-mix(in srgb,var(--verde) 40%,transparent);background:color-mix(in srgb,var(--verde) 8%,transparent);
  color:var(--verde);font:500 15px/1.2 var(--font);text-decoration:none;transition:background .2s,border-color .2s}
.cd-site:hover{background:color-mix(in srgb,var(--verde) 14%,transparent);border-color:var(--verde)}
.cd-site:focus-visible{outline:2px solid var(--verde);outline-offset:3px}
.cd-site .cd-ico{width:18px;height:18px}
.cd-site .cd-ico:last-child{width:14px;height:14px;transition:transform .2s}
.cd-site:hover .cd-ico:last-child{transform:translate(2px,-2px)}
.cd-site[hidden]{display:none}
.cd-ficha{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:24px 0 0;padding-top:16px;border-top:1px solid var(--linha)}
.cd-ficha dt{font:500 11px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--tinta-3);margin-bottom:8px}
.cd-ficha dd{margin:0;font:400 14px/1.55 var(--font);color:var(--tinta-2)}
.cd-x{position:absolute;top:32px;right:48px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;
  border:1px solid var(--linha-forte);background:var(--papel-1);color:var(--tinta);cursor:pointer;transition:background .2s,border-color .2s}
.cd-x:hover{border-color:var(--tinta-3)}
.cd-x .cd-ico{width:18px;height:18px}

/* abas de etapa: número, ícone e nome; a ativa ganha o verde e a linha de baixo */
.cd-abas{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0 64px;
  background:color-mix(in srgb,var(--papel) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.cd-aba{display:flex;align-items:center;gap:12px;height:64px;padding:0 16px;border:0;border-bottom:2px solid var(--linha);
  border-radius:var(--r-md) var(--r-md) 0 0;background:transparent;color:var(--tinta-3);font:500 17px var(--font);cursor:pointer;text-align:left;
  transition:color .25s,background .25s,border-color .25s}
.cd-aba:hover{color:var(--tinta);background:color-mix(in srgb,var(--papel-2) 60%,transparent)}
.cd-aba[aria-selected=true]{color:var(--verde);border-color:var(--verde);background:var(--papel-2)}
.cd-aba.is-feita{color:var(--tinta-2);border-color:color-mix(in srgb,var(--verde) 45%,var(--linha))}
.cd-aba-num{font:400 12px var(--mono);color:var(--tinta-3)}
.cd-aba[aria-selected=true] .cd-aba-num{color:var(--verde)}
.cd-aba:focus-visible{outline:2px solid var(--verde);outline-offset:2px}

/* conteúdo da etapa */
.cd-painel{padding:48px 64px 64px;outline:none}
.cd-painel.cd-duas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px}
.cd-bloco h3{font:600 22px/1.2 var(--font-heading);letter-spacing:-.025em;margin:0 0 16px;color:var(--tinta)}
.cd-bloco p{font:400 17px/1.7 var(--font);color:var(--tinta-2);margin:0;max-width:62ch}
.cd-bloco+.cd-bloco{margin-top:40px}
.cd-duas .cd-bloco+.cd-bloco{margin-top:0}
.cd-lista{list-style:none;margin:0;padding:0;display:grid;gap:16px;max-width:66ch}
.cd-lista li{font:400 17px/1.65 var(--font);color:var(--tinta-2);padding-left:24px;position:relative}
.cd-lista li::before{content:"";position:absolute;left:0;top:.72em;width:8px;height:2px;background:var(--verde)}
.cd-lista strong{font-weight:600;color:var(--tinta)}
/* respiro entre parágrafos e listas dentro de um bloco */
.cd-bloco :is(p,.cd-itens)+:is(p,.cd-itens),.cl-parte :is(p,.cd-itens)+:is(p,.cd-itens){margin-top:14px}
.cd-itens{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-width:62ch}
.cd-itens li{font:400 17px/1.65 var(--font);color:var(--tinta-2);padding-left:22px;position:relative}
.cd-itens li::before{content:"";position:absolute;left:2px;top:.72em;width:8px;height:2px;background:var(--verde)}
.cl-parte .cd-itens li{font-size:16px}
.cd-citacao{margin:32px 0 0;padding:4px 0 4px 24px;border-left:2px solid var(--verde)}
.cd-citacao p{font:500 20px/1.4 var(--font-heading);letter-spacing:-.02em;color:var(--tinta)}
.cd-citacao cite{display:block;margin-top:8px;font:400 12px var(--mono);font-style:normal;color:var(--tinta-3)}

/* etapa final: texto à esquerda, o desenho ou a gravação do projeto à direita */
.cd-painel.cd-final{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:64px;align-items:start}
.cd-nda{display:flex;gap:8px;align-items:flex-start;margin:32px 0 0;font:400 13px/1.5 var(--font);color:var(--tinta-3)}
.cd-nda .cd-ico{width:16px;height:16px;margin-top:1px}
.cd-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.cd-links .btn{gap:8px}
.cd-links .cd-ico{width:16px;height:16px}
.cd-visual{margin:0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--linha)}
.cd-visual .prancha{aspect-ratio:4/3;width:100%;border-radius:0!important;box-shadow:none!important}
.cd-gravacao{aspect-ratio:3/4;max-width:360px;justify-self:end;width:100%;background:var(--papel-1)}
.cd-gravacao img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}

/* rodapé: navegação das etapas e saídas */
.cd-rodape{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 64px;border-top:1px solid var(--linha);background:var(--papel)}
.cd-rodape .btn{gap:8px;height:48px;padding:0 24px}
.cd-rodape .btn .cd-ico{width:18px;height:18px}
.cd-rodape .btn:disabled{opacity:.4;cursor:default;box-shadow:none}
.cd-contador{font:400 12px var(--mono);color:var(--tinta-3)}
/* nas pontas o botão some sem tirar o outro do lugar */
.cd-rodape .is-oculto{visibility:hidden}

@media (max-width:900px){
  .cd-painel.cd-duas,.cd-painel.cd-final{grid-template-columns:1fr;gap:40px}
  .cd-gravacao{justify-self:start}
}
/* celular: folha inteira; o X fecha, o rodapé fica só com Voltar e Avançar */
@media (max-width:760px){
  dialog.cd{width:100vw;height:100dvh;max-height:none;border:0;border-radius:0}
  .cd-cabeca{padding:24px 16px 24px}
  .cd-x{top:16px;right:16px}
  .cd-chips{padding-right:56px}
  .cd-titulo{font-size:28px}
  .cd-ficha{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;padding-top:16px}
  .cd-ficha>div:last-child:nth-child(odd){grid-column:1/-1}
  .cd-abas{padding:0 16px;gap:4px}
  .cd-aba{height:56px;padding:0 8px;gap:8px;font-size:14px;justify-content:center}
  .cd-aba-num{display:none}
  .cd-aba .cd-ico{width:18px;height:18px}
  .cd-painel{padding:32px 16px 48px}
  .cd-bloco p,.cd-lista li,.cd-itens li{font-size:16px}
  .cd-bloco h3{font-size:20px}
  .cd-rodape{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .cd-contador{display:none}
  .cd-rodape .btn{flex:1;padding:0 16px}
}
@media (prefers-reduced-motion:reduce){.cd-aba,.cd-x{transition:none}}
/* hidden vence o display dos botões do site */
.cd-rodape [hidden],.cd-rodape[hidden]{display:none!important}
/* os quadros do Método são pretos; no modal o Framework mantém o mesmo quadro */
.cd-visual .prancha.quadro-negro{--prancha:#141918;--prancha-fundo:#101412;--prancha-tinta:#dce6df;background-color:#141918}
:root[data-theme="dark"] .cd-visual .prancha.quadro-negro{--prancha:#101311;background-color:#101311}

/* ---------- modal lateral do Lab ---------- */
dialog.cd-lateral{width:min(640px,100vw);height:100dvh;max-height:none;margin:0 0 0 auto;border:0;border-left:1px solid var(--linha);border-radius:var(--r-xl) 0 0 var(--r-xl)}
.cl-cabeca{position:relative;display:grid;grid-template-columns:136px minmax(0,1fr);gap:24px;align-items:start;padding:40px 40px 32px;border-bottom:1px solid var(--linha)}
.cl-visual{margin:0;aspect-ratio:3/4;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--linha);background:var(--papel-1)}
.cl-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:left top}
.cl-intro{padding-right:48px}
.cl-titulo{font:600 32px/1.12 var(--font-heading);letter-spacing:-.035em;margin:0;text-wrap:balance;outline:none}
.cl-ficha{display:grid;gap:12px;margin:16px 0 0}
.cl-ficha dt{font:500 11px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--tinta-3);margin-bottom:4px}
.cl-ficha dd{margin:0;font:400 14px/1.5 var(--font);color:var(--tinta-2)}
.cd-lateral .cd-x{top:32px;right:32px}
.cl-partes{padding:8px 40px 48px}
.cl-parte{padding:32px 0;border-bottom:1px solid var(--linha)}
.cl-parte:last-child{border-bottom:0}
.cl-parte h3{display:flex;align-items:center;gap:12px;font:600 20px/1.2 var(--font-heading);letter-spacing:-.025em;margin:0 0 16px;color:var(--tinta)}
.cl-parte h3 .cd-ico{color:var(--verde)}
.cl-parte p{font:400 16px/1.7 var(--font);color:var(--tinta-2);margin:0}
.cl-parte .cd-lista li{font-size:16px}
.cl-rodape{padding:16px 40px}
.cl-cta .btn .cd-ico,.cl-rodape .cd-ico{width:18px;height:18px}
@media (max-width:760px){
  dialog.cd-lateral{border-radius:0;border:0}
  .cl-cabeca{grid-template-columns:96px minmax(0,1fr);gap:16px;padding:24px 16px}
  .cl-intro{padding-right:40px}
  .cl-titulo{font-size:26px}
  .cd-lateral .cd-x{top:16px;right:16px}
  .cl-partes{padding:0 16px 32px}
  .cl-rodape{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .cl-cta{flex:1}.cl-cta .btn{width:100%}
}
/* Lab com quatro projetos: duas colunas, miniatura de largura fixa */
@media (min-width:761px){.lab-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 48px}.lab-mini{grid-template-columns:168px minmax(0,1fr);gap:24px}}

/* card de trabalho com site próprio: "Ler o case" e o endereço lado a lado */
.ler-linha{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:16px}
.ler-linha .ler{margin:0;padding:0}
.card-site{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;
  border:1px solid color-mix(in srgb,var(--verde) 40%,transparent);background:color-mix(in srgb,var(--verde) 8%,transparent);
  color:var(--verde);font:500 14px/1.2 var(--font);text-decoration:none;transition:background .2s,border-color .2s}
.card-site:hover{background:color-mix(in srgb,var(--verde) 14%,transparent);border-color:var(--verde)}
.card-site svg{width:13px;height:13px;fill:currentColor;transition:transform .2s}
.card-site:hover svg{transform:translate(2px,-2px)}
