/*
 * Portal público de doulas (portal.minhadoula.com.br) — MOBILE FIRST.
 * Base = celular de 320px; `min-width` só expande. Tokens da marca em tokens.css.
 * Prefixo `pd-` (portal doulas). Spec visual: .ai/frontend.md §7.15.
 */

.pd {
  --pd-wrap: min(1360px, calc(100% - 32px));
  --pd-zap: #25D366;       /* WhatsApp oficial; texto #062E18 (7,5:1) — branco sobre ele reprova */
  --pd-zap-ink: #062E18;
  --pd-card-r: 20px;
  --pd-ease: cubic-bezier(.2, .8, .2, 1);
  margin: 0;
  font-family: var(--md-font-ui);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--md-ink);
  background: var(--md-surface);
  -webkit-text-size-adjust: 100%;
}

.pd *, .pd *::before, .pd *::after { box-sizing: border-box; }
.pd img { max-width: 100%; display: block; }
.pd :where(a) { color: inherit; text-decoration: none; }
.pd :where(h1, h2, h3, p, ul) { margin: 0; }
.pd :where(ul, ol) { padding: 0; list-style: none; }
.pd :where(button) { font: inherit; cursor: pointer; }

.pd-wrap { width: var(--pd-wrap); margin-inline: auto; }

.pd-ico { width: 20px; height: 20px; flex: none; }
.pd-ico--sm { width: 15px; height: 15px; }
.pd-ico--xl { width: 34px; height: 34px; }

.pd-pular {
  position: fixed; left: 12px; top: -60px; z-index: 100;
  background: var(--md-primary); color: var(--md-white); padding: 10px 16px; border-radius: 10px; font-weight: 700;
}
.pd-pular:focus { top: 12px; }

:where(.pd a, .pd button, .pd select):focus-visible { outline: 2px solid var(--md-accent); outline-offset: 2px; }

/* ---------------------------------------------------------------- topo (vidro flutuante sobre o hero) */

.pd-topo {
  position: fixed; z-index: 50; top: max(10px, env(safe-area-inset-top)); left: 0; right: 0;
  pointer-events: none;
}
.pd-topo__in {
  pointer-events: auto;
  width: var(--pd-wrap); margin-inline: auto;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 6px 8px 6px 14px;
  background: rgba(255, 255, 255, .86);
  -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: var(--md-radius-pill);
  box-shadow: 0 8px 30px rgba(32, 33, 61, .16);
  transition: box-shadow .3s var(--pd-ease), background .3s var(--pd-ease);
}
.pd-topo.is-rolou .pd-topo__in { background: rgba(255, 255, 255, .95); box-shadow: 0 10px 36px rgba(32, 33, 61, .22); }
.pd-topo__marca { display: inline-flex; align-items: center; min-height: 44px; }
.pd-topo__marca img { width: 128px; height: 46px; object-fit: contain; object-position: left center; }
.pd-topo__nav { display: flex; align-items: center; gap: 4px; }
.pd-topo__link { display: none; min-height: 44px; padding: 0 14px; align-items: center; font-weight: 700; font-size: .9rem; color: var(--md-primary); border-radius: var(--md-radius-pill); }
.pd-topo__cta {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px;
  background: var(--md-primary); color: var(--md-white); border-radius: var(--md-radius-pill);
  font-weight: 800; font-size: .88rem; white-space: nowrap;
}

/* ---------------------------------------------------------------- hero com slide */

.pd-hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: clamp(540px, 86svh, 720px);
  display: flex; align-items: flex-end;
  padding: 120px 0 112px;
  background: var(--md-ink);
  color: var(--md-white);
}
.pd-hero__slides, .pd-slide { position: absolute; inset: 0; }
.pd-hero__slides { z-index: -3; }
.pd-slide { opacity: 0; will-change: opacity; }
.pd-slide.is-ativo { opacity: 1; }
.pd-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; transform-origin: 60% 40%; will-change: transform; }

.pd-hero__veu {
  position: absolute; inset: 0; z-index: -2;
  background:
    radial-gradient(120% 80% at 15% 100%, rgba(217, 144, 168, .42), transparent 60%),
    linear-gradient(180deg, rgba(32, 33, 61, .62) 0%, rgba(57, 58, 143, .5) 50%, rgba(32, 33, 61, .86) 100%);
}

.pd-hero__conteudo { max-width: 760px; margin-inline: 16px; width: auto; }

.pd-eyebrow {
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 14px;
  font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  color: var(--md-accent-soft);
}
.pd-eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--md-accent); border-radius: 2px; }
.pd-eyebrow--claro { color: var(--md-accent-soft); }

.pd-hero__titulo {
  font-family: var(--md-font-display); font-weight: 700;
  font-size: clamp(2.05rem, 7.4vw, 4.1rem); line-height: 1.06; letter-spacing: -.02em;
  text-wrap: balance;
  text-shadow: 0 2px 24px rgba(32, 33, 61, .35);
}
.pd-hero__sub { margin-top: 16px; max-width: 560px; font-size: 1.05rem; color: rgba(255, 255, 255, .9); text-wrap: pretty; }

.pd-hero__dots { position: absolute; left: 16px; bottom: 76px; display: flex; gap: 6px; z-index: 1; }
.pd-dot {
  position: relative; width: 28px; height: 20px; padding: 0; border: 0; background: none; display: grid; place-items: center;
}
.pd-dot::before { content: ""; width: 100%; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, .38); }
.pd-dot i { position: absolute; left: 0; top: 8px; height: 4px; width: 100%; border-radius: 4px; background: var(--md-white); transform: scaleX(0); transform-origin: left; }
.pd-dot.is-ativo i { transform: scaleX(1); }

/* ---------------------------------------------------------------- card de busca (sobrepõe o hero) */

.pd-busca-sec { position: relative; z-index: 5; margin-top: -76px; }
.pd-busca {
  display: grid; gap: 14px; padding: 18px;
  background: var(--md-white);
  border: 1px solid var(--md-line); border-radius: 26px;
  box-shadow: 0 30px 80px rgba(32, 33, 61, .22), 0 2px 0 rgba(255, 255, 255, .6) inset;
}
.pd-campo { display: grid; gap: 6px; min-width: 0; }
.pd-campo label { font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--md-muted); }
.pd-campo .md-select__gatilho { min-height: 54px; border-radius: 14px; font-weight: 600; }
.pd-campo select:not(.md-select__native) { width: 100%; min-height: 54px; border: 1px solid var(--md-line); border-radius: 14px; padding: 0 14px; font: inherit; background: var(--md-white); color: var(--md-ink); }

.pd-busca__ok {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 54px; padding: 0 26px; border: 0; border-radius: 14px;
  background: var(--md-primary); color: var(--md-white); font-weight: 800; font-size: 1rem;
  transition: background .2s, transform .2s var(--pd-ease), box-shadow .2s;
}
.pd-stats { display: flex; justify-content: space-between; gap: 8px; padding-top: 14px; border-top: 1px dashed var(--md-line); }
.pd-stats li { display: flex; align-items: baseline; gap: 6px; }
.pd-stats strong { font-family: var(--md-font-kpi); font-size: 1.25rem; line-height: 1; color: var(--md-primary); font-variant-numeric: tabular-nums; }
.pd-stats span { font-size: .8rem; color: var(--md-muted); font-weight: 600; }

/* ---------------------------------------------------------------- resultados */

.pd-resultado { padding-top: 44px; padding-bottom: 8px; scroll-margin-top: 90px; }
.pd-resultado__topo { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.pd-resultado__titulo { font-family: var(--md-font-display); font-weight: 700; font-size: clamp(1.35rem, 4.6vw, 2rem); letter-spacing: -.01em; }
.pd-resultado__sub { margin-top: 4px; color: var(--md-muted); font-size: .92rem; }
.pd-limpar {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px;
  background: var(--md-white); border: 1px solid var(--md-line); border-radius: var(--md-radius-pill);
  color: var(--md-primary); font-weight: 700; font-size: .85rem;
}
.pd-limpar[hidden] { display: none; }

.pd-lista { transition: opacity .2s; }
.pd-lista[aria-busy="true"] { opacity: .55; pointer-events: none; }

.pd-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pd-item { display: flex; min-width: 0; container-type: inline-size; }

/* ---------------------------------------------------------------- card da doula */

.pd-card {
  position: relative; display: flex; flex-direction: column; width: 100%; overflow: hidden;
  background: var(--md-white); border: 1px solid var(--md-line); border-radius: var(--pd-card-r);
  box-shadow: 0 2px 10px rgba(32, 33, 61, .05);
  transition: transform .35s var(--pd-ease), box-shadow .35s var(--pd-ease), border-color .35s;
}
.pd-card__foto { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: linear-gradient(145deg, var(--md-secondary), var(--md-accent)); }
.pd-card__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--pd-ease); }
.pd-card__foto::after { content: ""; position: absolute; inset: auto 0 0 0; height: 55%; background: linear-gradient(to top, rgba(32, 33, 61, .78), transparent); pointer-events: none; }
.pd-card__iniciais { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--md-font-display); font-weight: 700; font-size: 2.6rem; color: rgba(255, 255, 255, .92); letter-spacing: .02em; }
.pd-card__local {
  position: absolute; z-index: 1; left: 10px; right: 10px; bottom: 9px;
  display: flex; align-items: center; gap: 5px; color: var(--md-white); font-size: .74rem; font-weight: 700; min-width: 0;
}
.pd-card__local span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pd-card__aceita {
  position: absolute; z-index: 1; top: 9px; left: 9px; display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 9px 4px 8px; border-radius: var(--md-radius-pill);
  background: rgba(255, 255, 255, .92); color: var(--md-success); font-size: .66rem; font-weight: 800; letter-spacing: .02em;
}
.pd-card__aceita i, .pd-ficha__aceita i { width: 7px; height: 7px; border-radius: 50%; background: var(--md-success); box-shadow: 0 0 0 0 rgba(63, 107, 86, .5); animation: pd-pulso 2.2s infinite; }

.pd-card__corpo { display: flex; flex-direction: column; flex: 1; padding: 12px 12px 6px; gap: 9px; }
.pd-card__nome { font-family: var(--md-font-display); font-weight: 600; font-size: .95rem; line-height: 1.25; min-height: 2.5em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pd-card__nome a::after { content: none; }

.pd-chips { display: flex; flex-wrap: wrap; gap: 4px; max-height: 3.4rem; overflow: hidden; min-height: 1.55rem; }
.pd-chips li { max-width: 100%; padding: 3px 8px; border-radius: var(--md-radius-pill); background: #ECEAF8; color: var(--md-primary); font-size: .68rem; font-weight: 700; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pd-chips .pd-chips__mais { background: var(--md-accent-soft); color: var(--md-rose); }

.pd-card__acoes { display: flex; gap: 6px; margin-top: auto; padding-top: 2px; }
.pd-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; border-radius: 12px;
  font-weight: 800; font-size: .8rem; transition: transform .2s var(--pd-ease), background .2s, box-shadow .2s, color .2s;
}
.pd-btn--zap { flex: 1; min-width: 0; padding: 0 8px; background: var(--pd-zap); color: var(--pd-zap-ink); }
.pd-btn--insta { flex: none; width: 44px; background: var(--md-accent-soft); color: var(--md-rose); }
.pd-btn--site { flex: none; width: 44px; background: rgba(57, 58, 143, .1); color: var(--md-primary); }
/* Site não publicado: mesmo botão, apagado e sem ação nenhuma (nem cursor de clique). */
.pd-btn.is-desativado, .pd-btn-grande.is-desativado {
  opacity: .42; cursor: default; pointer-events: auto; box-shadow: none; transform: none;
}
/* Card estreito: com Instagram e Site ao lado, o WhatsApp vira só o ícone — o rótulo não cabe. */
@container (max-width: 260px) {
  .pd-card__acoes:has(.pd-btn--site) .pd-btn--zap span { display: none; }
}
.pd-card__mais {
  display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; margin: 0 -12px;
  border-top: 1px solid var(--md-line); color: var(--md-primary); font-weight: 800; font-size: .84rem;
  transition: background .2s, gap .25s var(--pd-ease);
}

/* ---------------------------------------------------------------- paginação, vazio, esqueleto */

.pd-pag { display: grid; justify-items: center; gap: 12px; margin-top: 30px; }
.pd-pag__resumo, .pd-resumo-pag { color: var(--md-muted); font-size: .88rem; font-weight: 600; }
.pd-resumo-pag { text-align: center; margin-top: 26px; }
.pd-pag__lista { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.pd-pag__link, .pd-pag__gap { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 6px; border-radius: 12px; font-weight: 700; }
.pd-pag__link { background: var(--md-white); border: 1px solid var(--md-line); color: var(--md-primary); transition: background .2s, color .2s; }
.pd-pag__link.is-atual { background: var(--md-primary); border-color: var(--md-primary); color: var(--md-white); }
.pd-pag__gap { color: var(--md-muted); }

.pd-vazio { display: grid; justify-items: center; gap: 10px; text-align: center; padding: 44px 20px; background: var(--md-white); border: 1px dashed rgba(57, 58, 143, .28); border-radius: 24px; }
.pd-vazio__ico { display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; background: #ECEAF8; color: var(--md-primary); }
.pd-vazio h1, .pd-vazio h3 { font-family: var(--md-font-display); font-size: 1.3rem; font-weight: 700; }
.pd-vazio p { max-width: 460px; color: var(--md-muted); }
.pd-vazio__acoes { display: grid; gap: 10px; width: 100%; max-width: 360px; margin-top: 8px; }
.pd-vazio-pagina { padding-top: 120px; padding-bottom: 40px; }

.pd-btn-grande {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 24px;
  border-radius: 14px; border: 1px solid transparent; background: var(--md-primary); color: var(--md-white);
  font-weight: 800; transition: transform .2s var(--pd-ease), box-shadow .2s, background .2s;
}
.pd-btn-grande--ghost { background: var(--md-white); border-color: var(--md-line); color: var(--md-primary); }
.pd-btn-grande--claro { background: var(--md-white); color: var(--md-primary); }
.pd-btn-grande--zap { background: var(--pd-zap); color: var(--pd-zap-ink); }
.pd-btn-grande--insta { background: var(--md-accent-soft); color: var(--md-rose); }
.pd-btn-grande--site { background: rgba(57, 58, 143, .1); color: var(--md-primary); }

.pd-esq { border-radius: var(--pd-card-r); background: var(--md-white); border: 1px solid var(--md-line); overflow: hidden; }
.pd-esq i { display: block; background: linear-gradient(100deg, #ECEAF8 30%, #F8F6FD 50%, #ECEAF8 70%); background-size: 220% 100%; animation: pd-brilho 1.3s linear infinite; }
.pd-esq__foto { aspect-ratio: 1 / 1; }
.pd-esq__l { height: 12px; margin: 12px 12px 0; border-radius: 6px; }
.pd-esq__b { height: 44px; margin: 14px 12px 12px; border-radius: 12px; }

.pd-erro { text-align: center; padding: 36px 16px; }
.pd-erro button { margin-top: 12px; }

/* ---------------------------------------------------------------- atalhos de cidade + CTA + rodapé */

.pd-atalhos { padding-top: 52px; }
.pd-atalhos h2 { font-family: var(--md-font-display); font-size: 1.15rem; margin-bottom: 14px; }
.pd-atalhos__lista { display: flex; flex-wrap: wrap; gap: 8px; }
.pd-atalhos__lista a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px 0 12px; background: var(--md-white); border: 1px solid var(--md-line); border-radius: var(--md-radius-pill); font-weight: 700; font-size: .88rem; color: var(--md-primary); transition: background .2s, transform .2s var(--pd-ease); }
.pd-atalhos__lista small { color: var(--md-muted); font-weight: 600; }

.pd-cta { margin-top: 64px; padding: 0 0 8px; }
.pd-cta__in {
  display: grid; gap: 22px; align-items: center; padding: 30px 24px; border-radius: 28px; color: var(--md-white);
  background: radial-gradient(90% 140% at 100% 0%, rgba(217, 144, 168, .55), transparent 60%), linear-gradient(135deg, var(--md-primary) 0%, #4A4B9D 55%, var(--md-secondary) 130%);
  box-shadow: 0 24px 60px rgba(57, 58, 143, .28);
}
.pd-cta h2 { font-family: var(--md-font-display); font-size: clamp(1.5rem, 5vw, 2.2rem); line-height: 1.15; letter-spacing: -.01em; }
.pd-cta p:not(.pd-eyebrow) { margin-top: 8px; max-width: 560px; color: rgba(255, 255, 255, .9); }

.pd-rodape { margin-top: 72px; padding: 40px 0 32px; background: var(--md-white); border-top: 1px solid var(--md-line); }
.pd-rodape__in { display: grid; gap: 10px; justify-items: center; text-align: center; }
.pd-rodape__marca img { width: 150px; height: 54px; object-fit: contain; }
.pd-rodape__texto { max-width: 460px; color: var(--md-muted); }
.pd-rodape__links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 4px 12px; font-weight: 700; font-size: .88rem; color: var(--md-primary); }
.pd-rodape__links a { min-height: 44px; display: inline-flex; align-items: center; }
.pd-rodape__copy { font-size: .78rem; color: var(--md-muted); }

/* ---------------------------------------------------------------- página individual */

.pd-perfil-capa { position: relative; height: clamp(280px, 40vw, 440px); overflow: hidden; background: linear-gradient(135deg, #393A8F 0%, #9B8ACB 45%, #D990A8 100%); }
.pd-perfil-capa img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.pd-perfil-capa::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(32, 33, 61, .35), transparent 40%, rgba(32, 33, 61, .25)); }

.pd-perfil { position: relative; z-index: 2; margin-top: -64px; padding-bottom: 8px; }
.pd-migalhas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 84px; min-height: 30px; font-size: .8rem; font-weight: 700; color: var(--md-white); text-shadow: 0 1px 8px rgba(32, 33, 61, .5); }
.pd-migalhas a { min-height: 30px; display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255, 255, 255, .5); }
.pd-perfil__grade { display: grid; gap: 20px; }

.pd-ficha { display: grid; justify-items: center; gap: 4px; padding: 0 20px 24px; text-align: center; background: var(--md-white); border: 1px solid var(--md-line); border-radius: 28px; box-shadow: 0 24px 60px rgba(32, 33, 61, .14); }
.pd-ficha__foto { width: 132px; height: 132px; margin-top: -66px; border-radius: 50%; object-fit: cover; border: 5px solid var(--md-white); background: linear-gradient(145deg, var(--md-secondary), var(--md-accent)); box-shadow: 0 10px 28px rgba(32, 33, 61, .22); }
.pd-ficha__foto--iniciais { display: grid; place-items: center; font-family: var(--md-font-display); font-weight: 700; font-size: 2.2rem; color: var(--md-white); }
.pd-ficha__nome { margin-top: 10px; font-family: var(--md-font-display); font-weight: 700; font-size: 1.5rem; line-height: 1.15; text-wrap: balance; }
.pd-ficha__papel { color: var(--md-primary); font-weight: 800; font-size: .86rem; letter-spacing: .03em; }
.pd-ficha__local { display: inline-flex; align-items: center; gap: 5px; color: var(--md-muted); font-weight: 600; font-size: .9rem; }
.pd-ficha__aceita { display: inline-flex; align-items: center; gap: 7px; margin-top: 6px; padding: 5px 12px; border-radius: var(--md-radius-pill); background: var(--md-app-sage-soft); color: var(--md-success); font-size: .8rem; font-weight: 800; }
.pd-ficha__acoes { display: grid; gap: 10px; width: 100%; margin-top: 16px; }

.pd-perfil__corpo { display: grid; gap: 16px; align-content: start; }
.pd-perfil__chamada { font-family: var(--md-font-display); font-size: clamp(1.15rem, 3.6vw, 1.55rem); line-height: 1.35; font-weight: 600; color: var(--md-ink); text-wrap: pretty; }
.pd-bloco, .pd-fale { padding: 22px 20px; background: var(--md-white); border: 1px solid var(--md-line); border-radius: 24px; }
.pd-bloco h2, .pd-fale h2 { font-family: var(--md-font-display); font-size: 1.1rem; font-weight: 700; margin-bottom: 12px; }
.pd-pills, .pd-selos { display: flex; flex-wrap: wrap; gap: 8px; }
.pd-pills li { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px 8px 10px; border-radius: var(--md-radius-pill); background: #ECEAF8; color: var(--md-primary); font-weight: 700; font-size: .88rem; }
.pd-selos li { padding: 8px 14px; border-radius: 12px; background: var(--md-accent-soft); color: var(--md-rose); font-weight: 800; font-size: .86rem; }
.pd-texto { color: #36374F; line-height: 1.75; text-wrap: pretty; }
.pd-galeria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pd-foto { display: block; width: 100%; padding: 0; border: 0; border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--md-surface); }
.pd-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--pd-ease); }
.pd-fale { display: grid; gap: 10px; justify-items: start; background: linear-gradient(135deg, #ECEAF8, var(--md-accent-soft)); border: 0; }
.pd-fale h2 { margin: 0; }
.pd-fale p { color: #36374F; }

.pd-barra { position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid var(--md-line); }
.pd-barra .pd-btn-grande { width: 100%; }
.pd:has(.pd-barra) .pd-rodape { padding-bottom: calc(110px + env(safe-area-inset-bottom, 0px)); }

.pd-lightbox { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; background: rgba(20, 21, 40, .94); color: var(--md-white); }
.pd-lightbox[open] { display: grid; grid-template-columns: 52px 1fr 52px; align-items: center; }
.pd-lightbox::backdrop { background: rgba(20, 21, 40, .6); }
.pd-lightbox__fig { margin: 0; display: grid; gap: 10px; justify-items: center; min-width: 0; }
.pd-lightbox__fig img { max-width: 100%; max-height: 80dvh; object-fit: contain; border-radius: 12px; }
.pd-lightbox figcaption { font-size: .9rem; color: rgba(255, 255, 255, .85); text-align: center; padding: 0 8px; }
.pd-lightbox__fechar, .pd-lightbox__nav { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: var(--md-white); }
.pd-lightbox__fechar { position: absolute; top: 12px; right: 12px; z-index: 2; }
.pd-lightbox__nav { justify-self: center; }

/* ---------------------------------------------------------------- conteúdo editorial (SEO) */

.pd-conteudo { padding-top: 56px; display: grid; gap: 28px; }
.pd-trilha ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: .84rem; font-weight: 600; color: var(--md-muted); }
.pd-trilha li + li::before { content: "›"; margin-right: 8px; color: var(--md-secondary); }
.pd-trilha a { display: inline-flex; align-items: center; min-height: 32px; color: var(--md-primary); text-decoration: underline; text-underline-offset: 3px; }
.pd-trilha [aria-current] { color: var(--md-ink); }

.pd-conteudo__texto { max-width: 820px; }
.pd-conteudo__texto h2, .pd-faq h2, .pd-links h2 { font-family: var(--md-font-display); font-size: clamp(1.25rem, 3.6vw, 1.7rem); line-height: 1.2; letter-spacing: -.01em; margin-bottom: 12px; }
.pd-conteudo__texto p { color: #36374F; line-height: 1.75; text-wrap: pretty; }
.pd-conteudo__texto p + p { margin-top: 12px; }
.pd-conteudo a:not([class]), .pd-guia a:not([class]), .pd-conteudo__texto a { color: var(--md-primary); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.pd-faq { max-width: 820px; }
.pd-faq__item { background: var(--md-white); border: 1px solid var(--md-line); border-radius: 16px; margin-bottom: 8px; overflow: hidden; }
.pd-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 10px 18px; font-weight: 700; cursor: pointer; list-style: none; }
.pd-faq__item summary::-webkit-details-marker { display: none; }
.pd-faq__item summary::after { content: "+"; flex: none; font-size: 1.4rem; line-height: 1; color: var(--md-primary); transition: transform .25s var(--pd-ease); }
.pd-faq__item[open] summary::after { transform: rotate(45deg); }
.pd-faq__item p { padding: 0 18px 16px; color: #36374F; line-height: 1.7; }

.pd-links ul { display: flex; flex-wrap: wrap; gap: 8px; }
.pd-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; background: var(--md-white); border: 1px solid var(--md-line); border-radius: var(--md-radius-pill); font-weight: 700; font-size: .88rem; color: var(--md-primary); transition: background .2s, transform .2s var(--pd-ease); }

.pd-pagina-interna { padding-top: 104px; }
.pd-guia { max-width: 820px; display: grid; gap: 26px; padding-bottom: 8px; }
.pd-guia header h1 { font-family: var(--md-font-display); font-size: clamp(1.8rem, 6vw, 2.8rem); line-height: 1.1; letter-spacing: -.02em; text-wrap: balance; }
.pd-eyebrow--escuro { color: var(--md-rose); margin-bottom: 10px; }
.pd-guia__intro { margin-top: 14px; font-size: 1.1rem; color: #36374F; line-height: 1.7; }
.pd-guia__meta { margin-top: 8px; font-size: .8rem; color: var(--md-muted); font-weight: 600; }
.pd-guia section h2 { font-family: var(--md-font-display); font-size: 1.3rem; line-height: 1.25; margin-bottom: 10px; }
.pd-guia section p { color: #36374F; line-height: 1.8; text-wrap: pretty; }
.pd-guia section p + p { margin-top: 12px; }
.pd-guia__cta { display: grid; gap: 10px; justify-items: start; padding: 24px; border-radius: 24px; background: linear-gradient(135deg, #ECEAF8, var(--md-accent-soft)); }
.pd-guia__cta h2 { font-family: var(--md-font-display); font-size: 1.25rem; }
.pd-guia__cta p { color: #36374F; }
.pd-guias { display: grid; gap: 14px; }
.pd-guias__card { display: grid; gap: 8px; height: 100%; padding: 22px; background: var(--md-white); border: 1px solid var(--md-line); border-radius: 22px; transition: transform .3s var(--pd-ease), box-shadow .3s var(--pd-ease); }
.pd-guias__card h2 { font-family: var(--md-font-display); font-size: 1.15rem; line-height: 1.25; }
.pd-guias__card p { color: var(--md-muted); font-size: .92rem; }
.pd-guias__card span { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; color: var(--md-primary); }

/* ---------------------------------------------------------------- movimento */

@keyframes pd-pulso { 0% { box-shadow: 0 0 0 0 rgba(63, 107, 86, .5); } 70% { box-shadow: 0 0 0 7px rgba(63, 107, 86, 0); } 100% { box-shadow: 0 0 0 0 rgba(63, 107, 86, 0); } }
@keyframes pd-brilho { to { background-position: -120% 0; } }

/* Estado inicial das entradas só existe com JS + GSAP; sem eles o conteúdo já nasce visível. */
.js:not(.pd-sem-motion) [data-pd-anim], .js:not(.pd-sem-motion) [data-pd-card] { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .js [data-pd-anim], .js [data-pd-card] { opacity: 1 !important; }
  .pd *, .pd *::before, .pd *::after { animation: none !important; transition: none !important; }
}

@media (hover: hover) {
  .pd-card:hover { transform: translateY(-5px); border-color: rgba(57, 58, 143, .3); box-shadow: 0 22px 44px rgba(57, 58, 143, .16); }
  .pd-card:hover .pd-card__foto img { transform: scale(1.06); }
  .pd-card__mais:hover { background: #F6F5FC; gap: 10px; }
  .pd-btn--zap:hover, .pd-btn-grande--zap:hover { background: #1FBE5B; transform: translateY(-1px); }
  .pd-btn--insta:hover, .pd-btn-grande--insta:hover { background: var(--md-rose); color: var(--md-white); transform: translateY(-1px); }
  .pd-btn--site:not(.is-desativado):hover, .pd-btn-grande--site:not(.is-desativado):hover { background: var(--md-primary); color: var(--md-white); transform: translateY(-1px); }
  .pd-busca__ok:hover, .pd-btn-grande:not([class*="--"]):hover { background: var(--md-primary-hover); transform: translateY(-2px); box-shadow: 0 14px 28px rgba(57, 58, 143, .3); }
  .pd-btn-grande--ghost:hover, .pd-btn-grande--claro:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(32, 33, 61, .18); }
  .pd-pag__link:hover:not(.is-atual), .pd-atalhos__lista a:hover { background: #ECEAF8; }
  .pd-atalhos__lista a:hover { transform: translateY(-2px); }
  .pd-links a:hover { background: #ECEAF8; transform: translateY(-2px); }
  .pd-guias__card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(57, 58, 143, .14); }
  .pd-foto:hover img { transform: scale(1.06); }
  .pd-topo__link:hover { background: #ECEAF8; }
}

/* ---------------------------------------------------------------- tablet e desktop (só expandem) */

@media (min-width: 640px) {
  .pd-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  .pd-topo__link { display: inline-flex; }
  .pd-galeria { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pd-vazio__acoes { grid-auto-flow: column; max-width: none; width: auto; }
}

@media (min-width: 720px) {
  .pd-hero__conteudo { margin-inline: max(16px, calc((100% - 1360px) / 2)); }
  .pd-hero__dots { left: max(16px, calc((100% - 1360px) / 2)); }
  .pd-busca { grid-template-columns: 1fr 1fr auto; align-items: end; padding: 22px; }
  .pd-stats { grid-column: 1 / -1; justify-content: flex-start; gap: 28px; }
  .pd-cta__in { grid-template-columns: 1fr auto; padding: 38px 40px; }
}

@media (min-width: 900px) {
  .pd-guias { grid-template-columns: 1fr 1fr; }
  .pd-grade { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pd-perfil__grade { grid-template-columns: 340px 1fr; gap: 28px; align-items: start; }
  .pd-perfil__lateral { position: sticky; top: 96px; }
  .pd-barra { display: none; }
  .pd:has(.pd-barra) .pd-rodape { padding-bottom: 32px; }
  .pd-bloco, .pd-fale { padding: 28px; }
}

@media (min-width: 1180px) {
  .pd-grade { gap: 20px; }
  .pd-card__nome { font-size: .92rem; }
  .pd-resultado { padding-top: 56px; }
}

@media (min-width: 1440px) {
  .pd-card__corpo { padding-inline: 14px; }
  .pd-card__mais { margin-inline: -14px; }
}
