/* Conta da Safra · página do parceiro (/parceiros/<slug>) e lista dos parceiros (/parceiros). O HTML sai de
   lib/parceiros.mjs. A cor que o parceiro escolhe (data-cor) só muda o destaque: botão, borda e banner sem imagem.
   Cada cor tem a versão do tema escuro, com contraste de pelo menos 4,5:1 sobre o fundo. */
.pc { --pc: var(--accent); --pc-ink: var(--accent-ink); --pc-soft: var(--accent-soft); display: grid; gap: 18px; padding-block: 20px 48px; min-width: 0; }
:is(.pc, .pc-card)[data-cor="terra"] { --pc: #9a4a1c; --pc-ink: #ffffff; --pc-soft: #f3e3d6; }
:is(.pc, .pc-card)[data-cor="cafe"] { --pc: #5b3a24; --pc-ink: #ffffff; --pc-soft: #ece2d8; }
:is(.pc, .pc-card)[data-cor="azul"] { --pc: #1f5a96; --pc-ink: #ffffff; --pc-soft: #dfe9f4; }
:is(.pc, .pc-card)[data-cor="vinho"] { --pc: #7d2242; --pc-ink: #ffffff; --pc-soft: #f1dde4; }
:is(.pc, .pc-card)[data-cor="grafite"] { --pc: #2f3a33; --pc-ink: #ffffff; --pc-soft: #e3e7e3; }
:root[data-theme="dark"] :is(.pc, .pc-card)[data-cor="terra"] { --pc: #e0925f; --pc-ink: #1b120c; --pc-soft: #3a261a; }
:root[data-theme="dark"] :is(.pc, .pc-card)[data-cor="cafe"] { --pc: #c99a76; --pc-ink: #1b140e; --pc-soft: #33261d; }
:root[data-theme="dark"] :is(.pc, .pc-card)[data-cor="azul"] { --pc: #8db8e8; --pc-ink: #0e1724; --pc-soft: #1c2a3a; }
:root[data-theme="dark"] :is(.pc, .pc-card)[data-cor="vinho"] { --pc: #e08aa6; --pc-ink: #210d14; --pc-soft: #3a1c26; }
:root[data-theme="dark"] :is(.pc, .pc-card)[data-cor="grafite"] { --pc: #c3cec6; --pc-ink: #151a17; --pc-soft: #262d28; }

.pc-main { min-width: 0; }
.pc-previa { padding: 10px 14px; border-radius: 8px; background: var(--warn-soft); color: var(--warn-text); font-weight: 600; font-size: 14.5px; }

/* banner: a imagem do parceiro ou, sem ela, a cor dele */
.pc-capa {
  position: relative; aspect-ratio: 16 / 5; min-height: 150px; border-radius: var(--r); overflow: hidden;
  background: linear-gradient(120deg, var(--pc-soft), var(--surface-2)); background-size: cover; background-position: center;
  border: 1px solid var(--line); display: flex; align-items: flex-end; padding: 14px;
}
/* sem a imagem do parceiro, o banner é só uma faixa de cor, mais baixa */
.pc-capa:not([style]) { aspect-ratio: auto; min-height: 120px; }
.pc-destaque {
  max-width: min(60ch, 100%); margin-bottom: 52px; padding: 8px 12px; border-radius: 8px; border-left: 4px solid var(--pc);
  background: var(--surface); color: var(--ink); font-weight: 600; font-size: 15px; line-height: 1.35; box-shadow: var(--shadow);
}

/* cartão de quem é, sobre a parte de baixo do banner */
.pc-cartao { position: relative; margin: -56px 16px 0; display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 20px; align-items: start; padding: 20px; box-shadow: var(--shadow); }
.pc-foto { width: 148px; height: 148px; border-radius: 50%; object-fit: cover; border: 4px solid var(--surface); background: var(--surface-2); }
.pc-inicial { display: grid; place-items: center; background: var(--pc); color: var(--pc-ink); font: 800 64px/1 var(--f-display); border-radius: 50%; }
.pc-quem { display: grid; gap: 8px; min-width: 0; }
.pc-quem h1 { font: 800 clamp(30px, 4.4vw, 46px)/1.02 var(--f-display); text-wrap: balance; overflow-wrap: anywhere; }
.pc-titulo { font-weight: 600; font-size: 16px; color: var(--ink-2); }
.pc-regiao { font: 500 12.5px/1.4 var(--f-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.pc-chamada { margin-top: 2px; }
.pc-contatos { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 6px; }
.pc .btn-prim { background: var(--pc); border-color: var(--pc); color: var(--pc-ink); }
.pc .btn:not(.btn-prim):hover { border-color: var(--pc); }

.pc-sobre p { max-width: 70ch; color: var(--ink-2); }
.pc-espec { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pc-espec li { padding: 4px 10px; border-radius: 999px; background: var(--pc-soft); color: var(--ink); font-size: 13.5px; font-weight: 600; }

/* ferramentas */
.pc-ferrs { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }
.pc-ferr a {
  height: 100%; display: grid; gap: 6px; align-content: start; padding: 16px; border: 1px solid var(--line); border-radius: var(--r);
  background: var(--surface-2); color: var(--ink); text-decoration: none; transition: border-color .15s, transform .15s;
}
.pc-ferr a:hover { border-color: var(--pc); }
.pc-ferr a:focus-visible { outline: 2px solid var(--pc); outline-offset: 2px; }
.pc-ferr-nome { font: 700 20px/1.15 var(--f-display); }
.pc-ferr-cult { justify-self: start; font: 500 11px/1 var(--f-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.pc-ferr-desc { font-size: 14px; color: var(--ink-2); }
.pc-preco { font-size: 14px; color: var(--ink-2); }
.pc-preco strong { color: var(--ink); }
.pc-ferr-abrir { margin-top: 4px; font-weight: 600; font-size: 14px; text-decoration: underline; text-decoration-color: var(--pc); text-underline-offset: 3px; }

/* logo da empresa, acima do nome */
.pc-logo { display: block; max-width: 200px; height: auto; max-height: 48px; object-fit: contain; }

/* serviços */
.pc-servs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }
.pc-serv { display: grid; gap: 4px; align-content: start; padding: 14px 16px; border: 1px solid var(--line); border-left: 4px solid var(--pc); border-radius: var(--r); background: var(--surface-2); }
.pc-serv strong { font: 700 18px/1.2 var(--f-display); }
.pc-serv span { font-size: 14px; color: var(--ink-2); }
.pc-serv-pedir { justify-self: start; margin-top: 4px; font-weight: 600; font-size: 14px; color: var(--ink); text-decoration: underline; text-decoration-color: var(--pc); text-underline-offset: 3px; }

/* calculadora embutida: a altura vem da própria calculadora (assets/js/parceiro.js) */
.pc-calc { display: block; width: 100%; height: 900px; border: 1px solid var(--line); border-radius: var(--r); background: var(--bg); }

/* galeria */
.pc-galeria { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); }
.pc-galeria figure { margin: 0; display: grid; gap: 6px; }
.pc-galeria img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r); background: var(--surface-2); }
.pc-galeria figcaption { font-size: 13.5px; color: var(--ink-2); }

.pc-aviso { display: grid; gap: 6px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13.5px; color: var(--muted); max-width: 80ch; }
.pc-aviso a { color: var(--ink-2); }

/* Encontre um profissional (/parceiros): a busca, os cartões (com a cor de cada parceiro) e o convite para ser parceiro */
.pc-lista-pag { display: grid; gap: 18px; padding-bottom: 48px; min-width: 0; }
.pc-busca { display: grid; gap: 12px; padding: 16px; grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); align-items: end; }
.pc-busca label { display: grid; gap: 4px; font-size: 13.5px; font-weight: 600; color: var(--ink-2); min-width: 0; }
.pc-busca input, .pc-busca select { width: 100%; min-width: 0; font: inherit; font-weight: 400; font-size: 16px; color: var(--ink); background: var(--surface); border: 1px solid var(--line-2); border-radius: 8px; padding: 9px 10px; }
.pc-busca-q { grid-column: 1 / -1; }
@media (min-width: 900px) { .pc-busca { grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto; } .pc-busca-q { grid-column: auto; } }
.pc-contagem { font: 500 12.5px/1.4 var(--f-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.pc-contagem a { text-transform: none; letter-spacing: 0; }
.pc-dir { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); }
.pc-card { --pc: var(--accent); --pc-ink: var(--accent-ink); min-width: 0; }
.pc-card[hidden] { display: none; }
.pc-card a { height: 100%; display: grid; grid-template-columns: 72px minmax(0, 1fr); align-content: start; gap: 12px 14px; padding: 16px; border: 1px solid var(--line); border-top: 4px solid var(--pc); border-radius: var(--r); background: var(--surface); color: var(--ink); text-decoration: none; }
.pc-card a:hover { border-color: var(--pc); }
.pc-card-foto { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; background: var(--surface-2); }
.pc-card .pc-inicial { font-size: 32px; background: var(--pc); color: var(--pc-ink); }
.pc-card-quem { display: grid; gap: 4px; align-content: center; min-width: 0; }
.pc-card-nome { font: 700 22px/1.08 var(--f-display); overflow-wrap: anywhere; }
.pc-card-sub { font-size: 14px; color: var(--ink-2); }
.pc-card-chamada, .pc-card-cult, .pc-card-ver { grid-column: 1 / -1; }
.pc-card-chamada { font-size: 15px; line-height: 1.45; color: var(--ink-2); }
.pc-card-cult { display: flex; flex-wrap: wrap; gap: 6px; }
.pc-card-cult span { padding: 3px 9px; border-radius: 999px; background: var(--surface-2); font-size: 13px; font-weight: 600; color: var(--ink-2); }
.pc-card-ver { align-self: end; font-weight: 700; color: var(--pc); }
.pc-card-ver::after { content: " →"; }
:root[data-theme="dark"] .pc-card-ver { color: var(--ink); }
.pc-seja { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 18px 20px; border-left: 6px solid var(--grain); }
.pc-seja h2 { font: 800 24px/1.1 var(--f-display); }
.pc-seja p { color: var(--ink-2); max-width: 60ch; }

@media (max-width: 640px) {
  .pc-capa { aspect-ratio: 16 / 8; min-height: 140px; padding: 10px; }
  .pc-capa:not([style]) { min-height: 150px; }
  .pc-destaque { font-size: 14px; margin-bottom: 76px; }
  .pc-cartao { margin: -40px 0 0; grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px; }
  .pc-foto { width: 104px; height: 104px; margin-top: -60px; }
  .pc-inicial.pc-foto { font-size: 46px; }
  .pc-contatos .btn { flex: 1 1 auto; }
}
