/* =========================================
   PRICENOW — SINGLE-PRODUCT.CSS
   ========================================= */

.pn-single { padding-bottom: var(--space-3xl); }

/* ── TOP SECTION ─────────────────────────────────────── */
.pn-single-wrap { padding-top: var(--space-xl); }

.pn-single-top {
  display: grid;
  grid-template-columns: 30% 70%;
  gap: var(--space-2xl);
  margin-bottom: var(--space-xl);
}

/* Gallery */
.pn-single-gallery {}
.pn-single-gallery__main {
  width: 100%; aspect-ratio: 1;
  background: var(--color-bg-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  cursor: zoom-in;
}
.pn-single-gallery__img { width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow); }
.pn-single-gallery__main:hover .pn-single-gallery__img { transform: scale(1.04); }
.pn-single-gallery__placeholder { width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-bg-soft); }
.pn-single-gallery__thumbs { display:flex;gap:8px;margin-top:10px;flex-wrap:wrap; }
.pn-single-gallery__thumb { width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;border:2px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast); padding:0; }
.pn-single-gallery__thumb img { width:100%;height:100%;object-fit:cover; }
.pn-single-gallery__thumb.is-active { border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-glow); }
.pn-single-gallery__thumb:hover { border-color:var(--color-text-muted); }

/* Product Info */
.pn-single-info {}
.pn-single-badges { display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--space-md); }
.pn-single-title { font-family:var(--font-display);font-size:clamp(1.4rem,2.5vw,2rem);font-weight:800;color:var(--pn-foreground);line-height:1.2;margin-bottom:var(--space-sm); }
.pn-single-brand { font-size:0.88rem;color:var(--color-text-muted);margin-bottom:var(--space-md); }
.pn-single-brand__link { color:var(--color-primary);font-weight:700;transition:opacity var(--transition-fast); }
.pn-single-brand__link:hover { opacity:0.75; }
.pn-single-intro { font-size:0.97rem;color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border); }

/* Platform Table */
.pn-platform-table { margin-bottom:var(--space-lg); }
.pn-platform-table__header { display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm); }
.pn-platform-table__header span:first-child { font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-text-faint); }
.pn-platform-table__count { font-size:0.75rem;color:var(--color-text-faint); }
.pn-platform-table__rows { display:flex;flex-direction:column;gap:8px; }

.pn-platform-row {
  display:flex;align-items:center;gap:var(--space-md);
  background:var(--color-bg-card);border:1px solid var(--color-border);
  border-radius:var(--radius-md);padding:14px var(--space-lg);
  position:relative;transition:all var(--transition-fast);
}
.pn-platform-row:hover { border-color:var(--color-border-soft); }
.pn-platform-row--featured { background:rgba(245,166,35,0.05);border-top:2px solid var(--pn-accent); }
.pn-platform-row--featured { order:-1; }
.pn-platform-row__featured-tag { position:absolute;top:-10px;left:var(--space-md);background:var(--pn-primary);color:#111827;font-size:0.65rem;font-weight:800;letter-spacing:0.06em;text-transform:uppercase;padding:2px 8px;border-radius:var(--radius-full); }
.pn-platform-row__platform { display:flex;align-items:center;gap:8px;flex:1;min-width:0; }
.pn-platform-row__logo { height:24px;width:auto;max-width:90px;object-fit:contain;filter:brightness(0) invert(1);opacity:0.75; }
.pn-platform-row__name { font-size:0.88rem;font-weight:700;color:var(--color-text); }
.pn-platform-row__featured-badge { font-size:0.85rem; }
.pn-platform-row__price { }
.pn-platform-row__amount { font-family:var(--font-display);font-size:1.2rem;font-weight:800;color:var(--color-primary);white-space:nowrap; }
.pn-platform-row--best .pn-platform-row__amount { font-size:1.4rem; }
.pn-platform-row__na { font-size:0.82rem;color:var(--color-text-faint); }
.pn-platform-row__unavailable { font-size:0.78rem;color:var(--color-text-faint);padding:8px 16px; }
.pn-platform-empty { background:var(--color-bg-card);border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-xl);text-align:center;color:var(--color-text-muted); }

/* Share */
.pn-single-share { display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border); }
.pn-single-share__label { font-size:0.78rem;color:var(--color-text-faint);font-weight:600; }
.pn-share-btn { width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast); }
.pn-share-btn:hover { color:var(--pn-primary);border-color:var(--pn-primary);background:rgba(30,48,104,0.06); }

/* ── AD BANNER ───────────────────────────────────────── */
.pn-ad-banner--single { margin:var(--space-xl) 0; }

/* ── BOTTOM SECTION ──────────────────────────────────── */
.pn-single-bottom {
  display:grid;
  grid-template-columns:60% 40%;
  gap:var(--space-2xl);
  align-items:start;
}

/* Description */
.pn-single-section-title { font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--pn-foreground);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-primary);display:inline-flex;align-items:center;gap:8px; }
.pn-reviews__count { font-size:0.88rem;color:var(--color-text-faint);font-family:var(--font-body); }
.pn-single-desc__body { color:var(--color-text-muted);line-height:1.8;font-size:0.95rem; }
.pn-single-desc__body h2,.pn-single-desc__body h3,.pn-single-desc__body h4 { color:var(--pn-foreground);margin:var(--space-lg) 0 var(--space-sm); }
.pn-single-desc__body p { margin-bottom:var(--space-md); }
.pn-single-desc__body ul,.pn-single-desc__body ol { list-style:initial;padding-left:var(--space-lg);margin-bottom:var(--space-md); }
.pn-single-desc__body li { margin-bottom:4px; }
.pn-single-desc__body table { width:100%;border-collapse:collapse;margin-bottom:var(--space-md); }
.pn-single-desc__body th,.pn-single-desc__body td { padding:10px 14px;border:1px solid var(--color-border);font-size:0.88rem; }
.pn-single-desc__body th { background:var(--color-bg-soft);font-weight:700;color:var(--pn-foreground); }

/* Reviews */
.pn-reviews-summary { background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg); }
.pn-reviews-summary__score { display:flex;align-items:center;gap:var(--space-md); }
.pn-reviews-summary__num { font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--color-warning); }
.pn-reviews-summary__total { font-size:0.82rem;color:var(--color-text-muted); }
.pn-reviews__empty { font-style:italic; }
.pn-reviews__list { display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl); }
.pn-review-card { background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-lg); }
.pn-review-card__header { display:flex;gap:var(--space-md);align-items:flex-start;margin-bottom:var(--space-sm); }
.pn-review-card__avatar { width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;color:#111827;flex-shrink:0; }
.pn-review-card__author { font-weight:700;color:var(--pn-foreground);font-size:0.9rem;display:block; }
.pn-review-card__row { display:flex;align-items:center;gap:8px;margin-top:2px; }
.pn-review-card__date { font-size:0.75rem;color:var(--color-text-faint); }
.pn-review-card__body { font-size:0.88rem;color:var(--color-text-muted);line-height:1.7; }

/* Review Form */
.pn-review-form { background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-xl); }
.pn-review-form__title { font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--pn-foreground);margin-bottom:var(--space-lg); }
.pn-review-form__label { display:block;font-size:0.82rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:8px; }
.pn-review-form__rating-wrap { margin-bottom:var(--space-md); }
.pn-star-rating { display:flex;gap:4px; }
.pn-star { font-size:1.6rem;color:var(--color-border);cursor:pointer;transition:color var(--transition-fast);line-height:1; }
.pn-star.is-active,.pn-star:hover { color:var(--color-warning); }
.comment-form .form-submit { margin-top:var(--space-md); }
.comment-form label { display:block;font-size:0.82rem;font-weight:600;color:var(--color-text-muted);margin-bottom:5px;margin-top:var(--space-md); }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form textarea { width:100%;background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 14px;color:var(--color-text);outline:none;font-family:var(--font-body);transition:border-color var(--transition-fast); }
.comment-form input:focus,.comment-form textarea:focus { border-color:var(--color-primary); }
.comment-form-comment,.comment-form-author,.comment-form-email { margin-bottom:0; }
.comment-form .required { color:var(--color-primary); }
.comment-form-cookies-consent { display:none; }

/* Related Sidebar */
.pn-related-sidebar { background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-lg);position:sticky;top:calc(var(--topbar-height) + var(--header-height) + var(--space-lg)); }
.pn-related-sidebar__title { font-family:var(--font-display);font-size:0.95rem;font-weight:700;color:var(--pn-foreground);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border); }
.pn-related-list { display:flex;flex-direction:column;gap:var(--space-sm); }
.pn-related-item { display:flex;gap:var(--space-md);align-items:center;padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid transparent;transition:all var(--transition-fast); }
.pn-related-item:hover { border-color:var(--color-border);background:var(--color-bg-soft); }
.pn-related-item__image { width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-bg-soft);flex-shrink:0; }
.pn-related-item__image img { width:100%;height:100%;object-fit:cover; }
.pn-related-item__placeholder { width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.5rem; }
.pn-related-item__body { flex:1;min-width:0; }
.pn-related-item__brand { font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-primary);display:block; }
.pn-related-item__title { font-size:0.83rem;font-weight:600;color:var(--color-text);line-height:1.35;margin-bottom:2px; }
.pn-related-item:hover .pn-related-item__title { color:var(--color-primary); }
.pn-related-item__price { font-size:0.82rem;font-weight:800;color:var(--color-primary);font-family:var(--font-display); }

/* ── RESPONSIVE ──────────────────────────────────────── */
@media (max-width:1024px) {
  .pn-single-top { grid-template-columns:35% 65%; gap:var(--space-xl); }
  .pn-single-bottom { grid-template-columns:55% 45%; }
}
@media (max-width:768px) {
  .pn-single-top { grid-template-columns:1fr;gap:var(--space-lg); }
  .pn-single-gallery__main { aspect-ratio:16/10; }
  .pn-single-bottom { grid-template-columns:1fr; }
  .pn-related-sidebar { position:static; }
}


/* ============================================================
   PRICE ALERT BUTTON (product page)
   ============================================================ */

.pn-alert-btn-wrap {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  margin: var(--space-md) 0;
  flex-wrap: wrap;
}

.pn-alert-trigger-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  background: linear-gradient(135deg, #1A2B5F 0%, #0e1d4a 100%);
  color: #fff;
  border: none;
  border-radius: var(--radius-md);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  transition: opacity 0.18s, transform 0.15s, box-shadow 0.18s;
  box-shadow: 0 4px 14px rgba(26,43,95,0.22);
  position: relative;
  overflow: hidden;
}
.pn-alert-trigger-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(233,160,32,0.15), transparent);
  opacity: 0;
  transition: opacity 0.2s;
}
.pn-alert-trigger-btn:hover { opacity: 0.92; transform: translateY(-1px); box-shadow: 0 6px 20px rgba(26,43,95,0.3); }
.pn-alert-trigger-btn:hover::before { opacity: 1; }
.pn-alert-trigger-btn:active { transform: translateY(0); }

.pn-alert-trigger-btn svg { flex-shrink: 0; }

.pn-alert-hint {
  font-size: 0.72rem;
  color: var(--color-text-faint);
  font-weight: 500;
}

/* ============================================================
   PRICE ALERT MODAL
   ============================================================ */

.pn-alert-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}

.pn-alert-modal[hidden] { display: none; }

.pn-alert-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(9, 17, 46, 0.65);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  animation: pn-modal-fade 0.22s ease;
}

.pn-alert-modal__dialog {
  position: relative;
  width: 100%;
  max-width: 440px;
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 24px 80px rgba(9,17,46,0.22);
  padding: 2rem;
  animation: pn-modal-slide 0.24s cubic-bezier(0.34, 1.42, 0.64, 1);
  overflow: hidden;
}

@keyframes pn-modal-fade  { from { opacity: 0; } to { opacity: 1; } }
@keyframes pn-modal-slide { from { opacity: 0; transform: translateY(20px) scale(0.97); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* Close button */
.pn-alert-modal__close {
  position: absolute;
  top: 1rem; right: 1rem;
  width: 2rem; height: 2rem;
  border-radius: 50%;
  border: 1px solid var(--color-border);
  background: var(--color-bg-soft);
  color: var(--color-text-muted);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.15s;
  z-index: 1;
}
.pn-alert-modal__close:hover { background: #fee2e2; border-color: #fca5a5; color: #dc2626; }

/* Header */
.pn-alert-modal__head {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding-right: 2rem;
}
.pn-alert-modal__icon {
  flex-shrink: 0;
  width: 3rem; height: 3rem;
  border-radius: 0.875rem;
  background: linear-gradient(135deg, #1A2B5F 0%, #0e1d4a 100%);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
}
.pn-alert-modal__title {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--pn-foreground);
  margin: 0 0 0.3rem;
  line-height: 1.2;
}
.pn-alert-modal__subtitle {
  font-size: 0.82rem;
  color: var(--color-text-muted);
  margin: 0;
  line-height: 1.5;
}
.pn-alert-modal__subtitle strong { color: var(--pn-primary); }

/* Product chip */
.pn-alert-modal__product {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.625rem 0.875rem;
  background: var(--color-bg-soft);
  border: 1px solid var(--color-border);
  border-radius: 0.625rem;
  margin-bottom: 1.375rem;
}
.pn-alert-modal__product-img {
  width: 2.5rem; height: 2.5rem;
  border-radius: 0.375rem;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--color-border);
  padding: 2px;
  flex-shrink: 0;
}
.pn-alert-modal__product-name {
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--pn-foreground);
  line-height: 1.3;
}

/* Form */
.pn-alert-modal__form { display: flex; flex-direction: column; gap: 0; }

.pn-alert-modal__field { display: flex; flex-direction: column; gap: 0.375rem; margin-bottom: 0.875rem; }

.pn-alert-modal__field label {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--pn-foreground);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.pn-alert-modal__field label svg { color: var(--color-primary); flex-shrink: 0; }

.pn-alert-modal__field input {
  width: 100%;
  height: 2.75rem;
  padding: 0 0.875rem;
  border: 1.5px solid var(--color-border);
  border-radius: 0.625rem;
  font-size: 0.9rem;
  font-family: var(--font-body);
  color: var(--pn-foreground);
  background: #fff;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  box-sizing: border-box;
}
.pn-alert-modal__field input:focus {
  border-color: var(--pn-accent);
  box-shadow: 0 0 0 3px rgba(233,160,32,0.14);
}
.pn-alert-modal__field input::placeholder { color: #b0b8c8; }

/* Or divider */
.pn-alert-modal__or {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.875rem;
}
.pn-alert-modal__or::before,
.pn-alert-modal__or::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--color-border);
}
.pn-alert-modal__or span {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--color-text-faint);
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Error */
.pn-alert-modal__error {
  padding: 0.625rem 0.875rem;
  background: rgba(239,68,68,0.08);
  border: 1px solid rgba(239,68,68,0.25);
  border-radius: 0.5rem;
  font-size: 0.82rem;
  color: #b91c1c;
  margin-bottom: 0.875rem;
}
.pn-alert-modal__error[hidden] { display: none; }

/* Submit button */
.pn-alert-modal__submit {
  width: 100%;
  height: 3rem;
  background: linear-gradient(135deg, var(--pn-accent) 0%, #d08000 100%);
  color: #1A2B5F;
  border: none;
  border-radius: 0.75rem;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.95rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  transition: opacity 0.18s, transform 0.15s;
  box-shadow: 0 4px 14px rgba(233,160,32,0.3);
  margin-bottom: 0.75rem;
}
.pn-alert-modal__submit:hover { opacity: 0.92; transform: translateY(-1px); }
.pn-alert-modal__submit:active { transform: translateY(0); }
.pn-alert-modal__submit:disabled { opacity: 0.55; cursor: not-allowed; transform: none; }

.pn-alert-modal__note {
  font-size: 0.72rem;
  color: var(--color-text-faint);
  text-align: center;
  margin: 0;
  line-height: 1.5;
}

/* Success state */
.pn-alert-modal__success {
  text-align: center;
  padding: 1rem 0 0.5rem;
  animation: pn-modal-slide 0.3s ease;
}
.pn-alert-modal__success[hidden] { display: none; }
.pn-alert-modal__success-icon {
  width: 4rem; height: 4rem;
  border-radius: 50%;
  background: rgba(34,197,94,0.1);
  border: 2px solid rgba(34,197,94,0.25);
  color: #16a34a;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 1rem;
}
.pn-alert-modal__success h3 {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--pn-foreground);
  margin: 0 0 0.5rem;
}
.pn-alert-modal__success p {
  font-size: 0.875rem;
  color: var(--color-text-muted);
  margin: 0 0 1.25rem;
  line-height: 1.6;
}
.pn-alert-modal__done {
  padding: 0.625rem 2rem;
  background: var(--pn-primary);
  color: #fff;
  border: none;
  border-radius: 0.5rem;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  transition: opacity 0.15s;
}
.pn-alert-modal__done:hover { opacity: 0.85; }
