/* Site público da produtora (vitrine e ingresso). Mesma base clara da página de compra: papel, tinta e um acento. */
:root { --pz-papel: #f6f5f2; --pz-tinta: #161418; --pz-apagado: #66625f; --pz-linha: #dedbd5; --pz-acento: #ffb62e; --pz-ok: #15623f; --pz-erro: #a72d20; }
.pz-wordmark { font: 800 22px/1 "Arial Black", Arial, Helvetica, sans-serif; letter-spacing: .08em; text-decoration: none; color: inherit; }

.pz-site { margin: 0; min-height: 100dvh; background: var(--pz-papel); color: var(--pz-tinta); font: 15px/1.5 Arial, Helvetica, sans-serif; }
.pz-site * { box-sizing: border-box; }
.pz-faixa { padding-inline: max(16px, env(safe-area-inset-left, 0px)) max(16px, env(safe-area-inset-right, 0px)); }
.pz-miolo { max-width: 1040px; margin: 0 auto; }

.pz-cabeca { padding-block: 18px; border-bottom: 1px solid var(--pz-linha); }
.pz-cabeca .pz-miolo { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pz-cabeca nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 16px; font-size: 14px; }
.pz-cabeca nav a { color: var(--pz-apagado); text-decoration: none; }

.pz-abertura { padding-block: 56px 32px; }
.pz-abertura h1 { margin: 0; font: 800 clamp(48px, 11vw, 120px)/.9 "Arial Black", Arial, Helvetica, sans-serif; letter-spacing: .02em; }
.pz-abertura p { margin: 14px 0 0; font-size: 18px; color: var(--pz-apagado); max-width: 40ch; }

.pz-secao { padding-block: 24px 48px; }
.pz-secao h2 { margin: 0 0 16px; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--pz-apagado); }
.pz-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 16px; }
.pz-card { display: grid; grid-template-rows: auto 1fr; background: #fff; border: 1px solid var(--pz-linha); border-radius: 10px; overflow: hidden; color: inherit; text-decoration: none; }
.pz-card figure { margin: 0; aspect-ratio: 4 / 5; background: var(--pz-tinta); display: grid; place-items: center; color: var(--pz-papel); font: 800 28px/1 "Arial Black", Arial, sans-serif; letter-spacing: .06em; }
.pz-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pz-card .pz-info { display: grid; gap: 4px; padding: 14px 16px 16px; align-content: start; }
.pz-card b { font-size: 18px; line-height: 1.2; }
.pz-card small { color: var(--pz-apagado); }
.pz-botao { justify-self: start; margin-top: 8px; display: inline-block; padding: 10px 16px; border-radius: 6px; background: var(--pz-tinta); color: #fff; font-weight: 700; text-decoration: none; }
.pz-card:hover .pz-botao, .pz-botao:hover { background: #000; }
.pz-passados { display: grid; gap: 8px; }
.pz-passados div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--pz-linha); flex-wrap: wrap; }
.pz-passados small { color: var(--pz-apagado); }
.pz-vazio { color: var(--pz-apagado); }

.pz-rodape { padding-block: 24px 40px; border-top: 1px solid var(--pz-linha); color: var(--pz-apagado); font-size: 13px; }
.pz-rodape .pz-miolo { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pz-rodape a { color: inherit; }

/* Ingresso */
.pz-ingresso { max-width: 420px; margin: 32px auto; background: #fff; border: 1px solid var(--pz-linha); border-radius: 14px; padding: 24px; display: grid; gap: 14px; text-align: center; }
.pz-ingresso h1 { margin: 0; font-size: 24px; line-height: 1.2; }
.pz-ingresso .pz-qr { width: min(300px, 100%); aspect-ratio: 1; margin: 0 auto; image-rendering: pixelated; }
.pz-ingresso dl { margin: 0; display: grid; gap: 8px; text-align: left; }
.pz-ingresso dl div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--pz-linha); padding-bottom: 6px; }
.pz-ingresso dt { color: var(--pz-apagado); }
.pz-ingresso dd { margin: 0; font-weight: 700; text-align: right; }
.pz-aviso { padding: 10px 12px; border-radius: 8px; font-weight: 700; }
.pz-aviso.ok { background: #e3f1e9; color: var(--pz-ok); }
.pz-aviso.erro { background: #f6e3e0; color: var(--pz-erro); }
.pz-dica { color: var(--pz-apagado); font-size: 14px; margin: 0; }
