/* Быстрый просмотр: модальное окно (quick-view.js). Внутри — общие стили формы покупки (product-form.css). */

body.pb-qv-open { overflow: hidden; }
.pb-qv { position: fixed; inset: 0; z-index: 500; display: flex; align-items: center; justify-content: center; padding: 16px; }
.pb-qv[hidden] { display: none; }
.pb-qv__back { position: absolute; inset: 0; background: rgba(21, 23, 26, .55); }
.pb-qv__dialog {
	position: relative; width: min(100%, 980px); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain;
	background: #fff; border-radius: var(--pb-r-xl); padding: clamp(18px, 3vw, 32px);
	box-shadow: 0 30px 80px rgba(21, 23, 26, .35);
}
.pb-qv__close {
	position: absolute; top: 14px; right: 14px; z-index: 3; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
	background: var(--pb-bg); color: var(--pb-ink); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .15s, color .15s;
}
.pb-qv__close:hover { background: var(--pb-blue); color: #fff; }
.pb-qv__loading { min-height: 280px; display: flex; align-items: center; justify-content: center; font-size: 15px; color: var(--pb-muted); }
.pb-qv__loading::before { content: ''; width: 22px; height: 22px; margin-right: 12px; border-radius: 50%; border: 3px solid var(--pb-bg2); border-top-color: var(--pb-blue); animation: pb-qv-spin .8s linear infinite; }
@keyframes pb-qv-spin { to { transform: rotate(360deg); } }
.pb-qv__error { padding: 40px 12px; text-align: center; font-size: 16px; color: var(--pb-text2); display: flex; flex-direction: column; gap: 16px; align-items: center; }

.pb-qv__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(20px, 3vw, 36px); align-items: start; }
.pb-qv__media { position: sticky; top: 0; }
.pb-qv__img { display: block; aspect-ratio: 1 / 1; border-radius: var(--pb-r-lg); overflow: hidden; background: var(--pb-bg); }
.pb-qv__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pb-qv__media > .pb-badge { position: absolute; top: 14px; left: 14px; z-index: 2; pointer-events: none; }
.pb-qv__info { display: flex; flex-direction: column; gap: 20px; min-width: 0; padding-right: 36px; }
.pb-qv__head { display: flex; flex-direction: column; gap: 8px; }
.pb-qv__title { margin: 0; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.12; font-weight: 600; letter-spacing: -0.02em; overflow-wrap: anywhere; }
.pb-qv__title a { color: inherit; }
.pb-qv .pb-pricebox__now { font-size: clamp(28px, 3.2vw, 36px); }
.pb-qv__short { font-size: 15px; line-height: 1.55; color: var(--pb-text2); }
.pb-qv__short p + p { margin-top: 8px; }
.pb-qv__more { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: var(--pb-ink); }
.pb-qv__more:hover { color: var(--pb-blue-ink); }
.pb-qv .pb-buyform { gap: 20px; }

@media (max-width: 700px) {
	.pb-qv { padding: 0; align-items: flex-end; }
	.pb-qv__dialog { width: 100%; max-height: 92vh; max-height: 92dvh; border-radius: 24px 24px 0 0; padding: 16px 16px calc(20px + env(safe-area-inset-bottom)); }
	.pb-qv__grid { grid-template-columns: 1fr; gap: 16px; }
	.pb-qv__media { position: relative; max-width: 220px; }
	.pb-qv__info { padding-right: 0; }
	.pb-qv__head { padding-right: 48px; }
}
