/* Страницы персонажей и миров (/personazhi/). Цвета и шрифты — переменные style.css. */
.pz-body { min-height: 100vh; display: flex; flex-direction: column; background: radial-gradient(1200px 600px at 80% -10%, rgba(107,111,174,.18), transparent 60%), var(--bg); }
.pz-body main { flex: 1; }
.pz-wrap { padding-top: calc(var(--nav-h) + 20px); padding-bottom: 64px; }

.pz-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: .85rem; color: var(--text-3); margin-bottom: 20px; }
.pz-crumbs a { color: var(--text-2); text-decoration: none; }
.pz-crumbs a:hover { color: var(--gold-2); }

/* Карточка: портрет слева, текст справа; на телефоне портрет сверху */
.pz-card { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: clamp(20px, 4vw, 48px); align-items: start; }
.pz-media { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--radius); border: 1px solid var(--border-strong); box-shadow: var(--shadow); background: var(--bg-2); }
.pz-ph { display: grid; place-items: center; font: 700 clamp(4rem, 12vw, 7rem)/1 var(--font-display); color: hsl(var(--h) 70% 85%);
  background: radial-gradient(circle at 30% 20%, hsl(var(--h) 60% 40% / .9), hsl(var(--h) 50% 12%)); }
.pz-title { font-size: clamp(2.2rem, 5vw, 3.6rem); margin: 6px 0 0; }
.pz-title-sub { display: block; margin-top: 10px; font: 500 clamp(.95rem, 1.6vw, 1.1rem)/1.3 var(--font-body); color: var(--gold-2); letter-spacing: .02em; }
.pz-short { font-size: clamp(1.05rem, 1.5vw, 1.2rem); color: var(--text); margin: 16px 0 0; max-width: 60ch; line-height: 1.55; }
.pz-source { margin: 10px 0 0; color: var(--text-2); font-size: .92rem; }
.pz-tags { list-style: none; padding: 0; margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pz-tags li { padding: 5px 10px; border-radius: 999px; background: var(--surface-2); border: 1px solid var(--border); font-size: .8rem; color: var(--text-2); }
/* Теги справочника (09.10) — ссылки на ленту Таверны с этим тегом */
.pz-tags li:has(a) { padding: 0; }
.pz-tags a { display: inline-block; padding: 5px 10px; border-radius: 999px; color: var(--gold-2); text-decoration: none; }
.pz-tags a:hover { color: var(--text); }
.pz-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
/* Длинные имена («Геральт из Ривии», «Микаса Аккерман») переносятся внутри кнопки, а не выталкивают её за край экрана */
.pz-cta .btn { max-width: 100%; min-width: 0; white-space: normal; text-align: center; overflow-wrap: anywhere; }
.pz-share { margin-top: 18px; }

.pz-sec { margin-top: clamp(36px, 6vw, 64px); }
.pz-h2 { font: 600 clamp(1.5rem, 3vw, 2rem)/1.15 var(--font-display); margin: 0 0 16px; }
.pz-count { font: 500 .9rem var(--font-body); color: var(--text-3); vertical-align: middle; }
.pz-dl { margin: 0; display: grid; gap: 10px; max-width: 820px; }
.pz-row { padding: 14px 16px; border-radius: var(--radius-sm); background: var(--surface); border: 1px solid var(--border); }
.pz-row dt { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--gold); margin-bottom: 4px; }
.pz-row dd { margin: 0; line-height: 1.6; color: var(--text); }
.pz-note { margin-top: 14px; max-width: 820px; font-size: .85rem; color: var(--text-3); line-height: 1.6; }
.pz-lore { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.pz-lore-item { padding: 16px; border-radius: var(--radius-sm); background: var(--surface); border: 1px solid var(--border); }
.pz-lore-item h3 { margin: 0 0 6px; font: 600 1.1rem var(--font-display); color: var(--gold-2); }
.pz-lore-item p { margin: 0; line-height: 1.6; color: var(--text-2); }
.pz-steps { margin: 0; padding-left: 1.3em; max-width: 760px; display: grid; gap: 10px; line-height: 1.6; color: var(--text-2); }
.pz-steps li::marker { color: var(--gold); font-weight: 700; }

/* «Ещё персонажи» — мини-плитки; на хабе — крупные плитки с описанием */
.pz-minis { list-style: none; padding: 0; margin: 0 0 16px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.pz-mini { display: block; text-decoration: none; color: var(--text); }
.pz-mini-img { display: grid; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--bg-2); font-size: 2.6rem; }
.pz-mini-name { display: block; margin-top: 6px; font-size: .88rem; line-height: 1.3; }
.pz-mini:hover .pz-mini-name { color: var(--gold-2); }
.pz-all { color: var(--gold-2); }

.pz-hub-head { max-width: 760px; }
.pz-hub-title { font-size: clamp(2.2rem, 5vw, 3.6rem); margin: 8px 0 14px; }
.pz-hub-meta { color: var(--text-3); font-size: .9rem; margin-top: 12px; }
.pz-tiles { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.pz-tile { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; align-items: center; padding: 10px; border-radius: var(--radius-sm); background: var(--surface); border: 1px solid var(--border); text-decoration: none; color: var(--text); height: 100%; transition: border-color .15s ease, background .15s ease; }
.pz-tile:hover { border-color: rgba(240,180,111,.5); background: var(--surface-2); }
.pz-tile-img { display: grid; width: 84px; height: 112px; object-fit: cover; border-radius: 10px; background: var(--bg-2); font-size: 2.2rem; }
.pz-tile-txt b { display: block; font: 600 1.05rem/1.25 var(--font-display); }
.pz-tile-txt span { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-top: 4px; font-size: .82rem; line-height: 1.45; color: var(--text-2); }

@media (max-width: 900px) {
  .pz-minis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .pz-card { grid-template-columns: minmax(0, 1fr); }
  .pz-media { max-width: 260px; }
  .pz-cta .btn { flex: 1 1 100%; justify-content: center; }
}

/* Зоны нажатия на телефоне, 44 px (U1-008, 29.10): хлебные крошки были 21 px, теги 30 */
@media (max-width: 767px) {
  .pz-crumbs { gap: 0 14px; }
  .pz-crumbs a { display: inline-flex; align-items: center; min-height: 44px; }
  .pz-tags a { display: inline-flex; align-items: center; min-height: 44px; }
}
