/*
 * PromoCodes.Guru Premium Rebase v3.0.0
 * UI-only override layer for the commercial v2.0.1 application.
 * No routes, models, services, installer logic, provider logic, auth or DB code is changed.
 */

:root {
  --pcg-v3-max: 1540px;
  --pcg-v3-navy: #071d2f;
  --pcg-v3-navy-2: #0a2940;
  --pcg-v3-green: #087a55;
  --pcg-v3-green-2: #059669;
  --pcg-v3-bg: #f6f8f7;
  --pcg-v3-line: #e3e9e6;
  --pcg-v3-text: #14212d;
  --pcg-v3-muted: #5b6975;
  --pcg-v3-radius: 16px;
  --pcg-v3-radius-lg: 22px;
  --pcg-v3-shadow: 0 14px 36px rgba(7,29,47,.08);
  --pcg-v3-shadow-soft: 0 5px 18px rgba(7,29,47,.055);
}

/* ---------- global / readable premium scale ---------- */
.pcg-premium-v3 {
  background: var(--pcg-v3-bg);
  color: var(--pcg-v3-text);
  font-size: 16px;
  line-height: 1.55;
}
.pcg-premium-v3 .container,
.pcg-premium-v3 .container-xxl,
.pcg-premium-v3 .container-xl,
.pcg-premium-v3 .container-lg,
.pcg-premium-v3 .container-md,
.pcg-premium-v3 .container-sm {
  width: min(calc(100% - 48px), var(--pcg-v3-max));
  max-width: var(--pcg-v3-max) !important;
  margin-inline: auto;
}
.pcg-premium-v3 h1,
.pcg-premium-v3 h2,
.pcg-premium-v3 h3,
.pcg-premium-v3 h4 { letter-spacing: -.025em; }
.pcg-premium-v3 p { color: var(--pcg-v3-muted); }

/* ---------- header ---------- */
.pcg-premium-v3 .pcg-header {
  min-height: 72px;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(7,29,47,.07);
  box-shadow: 0 1px 0 rgba(7,29,47,.025);
  backdrop-filter: blur(16px);
}
.pcg-premium-v3 .pcg-brand { font-size: 1.04rem; font-weight: 800; }
.pcg-premium-v3 .pcg-brand-mark { width: 40px; height: 40px; border-radius: 11px; }
.pcg-premium-v3 .pcg-nav a { font-size: .91rem; font-weight: 700; }
.pcg-premium-v3 .pcg-header .btn { min-height: 42px; padding-inline: 18px; font-size: .88rem; }

/* ---------- homepage ---------- */
.pcg-premium-v3 .pcg-home .pcg-hero { padding: 42px 0 30px; }
.pcg-premium-v3 .pcg-home .pcg-hero-grid {
  grid-template-columns: minmax(340px,.78fr) minmax(0,1.22fr);
  gap: 42px;
  align-items: center;
}
.pcg-premium-v3 .pcg-home .pcg-hero-title {
  font-size: clamp(3rem, 4.65vw, 4.6rem);
  line-height: .99;
  letter-spacing: -.052em;
  margin: 16px 0 18px;
  max-width: 650px;
}
.pcg-premium-v3 .pcg-home .pcg-hero-lede {
  max-width: 620px;
  font-size: 1.02rem;
  line-height: 1.66;
}
.pcg-premium-v3 .pcg-eyebrow { font-size: .78rem; font-weight: 800; }
.pcg-premium-v3 .pcg-hero-card,
.pcg-premium-v3 .pcg-featured-slide {
  border-radius: var(--pcg-v3-radius-lg);
}
.pcg-premium-v3 .pcg-hero-card {
  border-color: var(--pcg-v3-line);
  box-shadow: var(--pcg-v3-shadow);
}
.pcg-premium-v3 .pcg-hero-offer-title { font-size: 1.18rem; line-height: 1.28; }
.pcg-premium-v3 .pcg-hero-store-name { font-size: .96rem; }
.pcg-premium-v3 .pcg-hero-price strong { font-size: 1.38rem; }
.pcg-premium-v3 .pcg-hero-offer-actions .btn { min-height: 44px; font-size: .88rem; }

.pcg-premium-v3 .pcg-home .pcg-section { padding: 34px 0; }
.pcg-premium-v3 .pcg-home .pcg-section-tight { padding: 24px 0; }
.pcg-premium-v3 .pcg-home .pcg-section-head { margin-bottom: 18px; align-items: center; }
.pcg-premium-v3 .pcg-section-head h2 { font-size: clamp(1.5rem,1.9vw,1.82rem); }
.pcg-premium-v3 .pcg-section-head p { font-size: .94rem; }
.pcg-premium-v3 .pcg-section-head .btn { min-height: 40px; font-size: .84rem; }

/* ---------- cards / surfaces ---------- */
.pcg-premium-v3 .pcg-coupon-card,
.pcg-premium-v3 .pcg-category-card,
.pcg-premium-v3 .pcg-store-tile,
.pcg-premium-v3 .pcg-process-card,
.pcg-premium-v3 .pcg-home-trust-card,
.pcg-premium-v3 .pcg-home-editorial-card,
.pcg-premium-v3 .pcg-saving-tip-card,
.pcg-premium-v3 .pcg-side-card,
.pcg-premium-v3 .pcg-table-card,
.pcg-premium-v3 .pcg-form-card {
  border-color: var(--pcg-v3-line);
  border-radius: var(--pcg-v3-radius);
  box-shadow: var(--pcg-v3-shadow-soft);
}
.pcg-premium-v3 .pcg-coupon-card:hover,
.pcg-premium-v3 .pcg-category-card:hover,
.pcg-premium-v3 .pcg-store-tile:hover {
  transform: translateY(-2px);
  box-shadow: var(--pcg-v3-shadow);
}

.pcg-premium-v3 .pcg-home-offer-grid {
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 18px;
  align-items: start;
}
.pcg-premium-v3 .pcg-home-offer-grid .pcg-coupon-card { padding: 18px; height: auto; min-height: 100%; }
.pcg-premium-v3 .pcg-coupon-card h3,
.pcg-premium-v3 .pcg-coupon-card .pcg-coupon-title { font-size: .98rem; line-height: 1.42; }
.pcg-premium-v3 .pcg-coupon-card p,
.pcg-premium-v3 .pcg-coupon-card .pcg-coupon-desc { font-size: .85rem; line-height: 1.55; }
.pcg-premium-v3 .pcg-pill { font-size: .74rem; }
.pcg-premium-v3 .pcg-coupon-card .btn { min-height: 40px; font-size: .82rem; }

/* ---------- categories: compact, readable, premium ---------- */
.pcg-premium-v3 .pcg-home .pcg-category-grid {
  grid-template-columns: repeat(8,minmax(0,1fr));
  gap: 12px;
}
.pcg-premium-v3 .pcg-home .pcg-category-card {
  min-height: 138px;
  padding: 16px 13px;
  text-align: center;
  align-items: center;
}
.pcg-premium-v3 .pcg-category-card h3,
.pcg-premium-v3 .pcg-category-card strong { font-size: .83rem; line-height: 1.3; }
.pcg-premium-v3 .pcg-category-card p,
.pcg-premium-v3 .pcg-category-card small { font-size: .72rem; }
.pcg-premium-v3 .pcg-category-icon { width: 44px; height: 44px; font-size: 1.15rem; }

/* ---------- store + trust sections ---------- */
.pcg-premium-v3 .pcg-store-list { gap: 14px; }
.pcg-premium-v3 .pcg-store-tile { min-height: 92px; padding: 16px; }
.pcg-premium-v3 .pcg-store-tile-name { font-size: .9rem; }
.pcg-premium-v3 .pcg-home-trust-card h3,
.pcg-premium-v3 .pcg-saving-tip-card h3 { font-size: 1rem; }
.pcg-premium-v3 .pcg-home-trust-card p,
.pcg-premium-v3 .pcg-saving-tip-card p { font-size: .86rem; }
.pcg-premium-v3 .pcg-authority-copy > p,
.pcg-premium-v3 .pcg-shopper-standard > p { font-size: .96rem; }

/* ---------- directory/search/detail readability ---------- */
.pcg-premium-v3 .pcg-directory-page,
.pcg-premium-v3 .pcg-editorial-page,
.pcg-premium-v3 .pcg-store-page { font-size: 1rem; }
.pcg-premium-v3 .pcg-directory-page .pcg-section-head h2 { font-size: clamp(1.7rem,2vw,2.1rem); }
.pcg-premium-v3 .pcg-directory-offer-grid { gap: 18px; align-items: start; }
.pcg-premium-v3 .pcg-directory-offer-grid .pcg-coupon-card { height: auto; }

/* ---------- newsletter / footer ---------- */
.pcg-premium-v3 .pcg-newsletter,
.pcg-premium-v3 .pcg-newsletter-section { border-radius: var(--pcg-v3-radius-lg); }
.pcg-premium-v3 .pcg-footer {
  margin-top: 56px;
  padding: 62px 0 28px;
  background: linear-gradient(135deg,#061a2b 0%,#08263c 100%);
}
.pcg-premium-v3 .pcg-footer-grid { gap: 34px; margin-top: 30px; }
.pcg-premium-v3 .pcg-footer-heading { font-size: .78rem; }
.pcg-premium-v3 .pcg-footer a { font-size: .9rem; padding: 6px 0; }
.pcg-premium-v3 .pcg-footer-tagline,
.pcg-premium-v3 .pcg-footer-contact { font-size: .9rem; }
.pcg-premium-v3 .pcg-footer-note { font-size: .78rem; }

/* ---------- Admin premium control center ---------- */
.pcg-premium-v3-admin { background: #f3f6f5; font-size: 15px; }
.pcg-premium-v3-admin .pcg-admin-topbar {
  height: 68px;
  padding-inline: 24px;
  border-color: #e2e8e5;
  box-shadow: 0 1px 0 rgba(7,29,47,.025);
}
.pcg-premium-v3-admin .pcg-admin-topbar-title { font-size: 1.02rem; }
.pcg-premium-v3-admin .pcg-admin-shell { grid-template-columns: 252px minmax(0,1fr); min-height: calc(100vh - 68px); }
.pcg-premium-v3-admin .pcg-admin-sidebar {
  background: linear-gradient(180deg,#071d2f 0%,#08263c 100%);
  border-right: 0;
}
.pcg-premium-v3-admin .pcg-admin-nav-group-toggle { font-size: .75rem; letter-spacing: .055em; }
.pcg-premium-v3-admin .pcg-admin-nav-link { font-size: .89rem; border-radius: 9px; }
.pcg-premium-v3-admin .pcg-admin-nav-link[aria-current="page"] {
  background: linear-gradient(90deg,rgba(16,185,129,.20),rgba(16,185,129,.07));
  color: #eafff7;
  box-shadow: inset 3px 0 0 #34d399;
}
.pcg-premium-v3-admin .pcg-admin-main {
  width: 100%;
  max-width: 1680px;
  margin-inline: auto;
  padding: 30px 30px 42px;
}
.pcg-premium-v3-admin .pcg-admin-page-header { margin-bottom: 22px; }
.pcg-premium-v3-admin .pcg-admin-page-header h1 { font-size: clamp(1.65rem,2vw,2.05rem); letter-spacing: -.03em; }
.pcg-premium-v3-admin .pcg-admin-page-header-desc { font-size: .9rem; }
.pcg-premium-v3-admin .pcg-admin-panel,
.pcg-premium-v3-admin .pcg-overview-card,
.pcg-premium-v3-admin .pcg-table-card,
.pcg-premium-v3-admin .pcg-form-card,
.pcg-premium-v3-admin .card {
  border-radius: 14px;
  border-color: #e0e7e3;
  box-shadow: 0 7px 24px rgba(7,29,47,.05);
}
.pcg-premium-v3-admin table { font-size: .84rem; }
.pcg-premium-v3-admin th { font-size: .72rem; letter-spacing: .04em; }
.pcg-premium-v3-admin .form-control,
.pcg-premium-v3-admin .form-select { min-height: 42px; font-size: .88rem; border-radius: 9px; }
.pcg-premium-v3-admin .btn { min-height: 40px; font-size: .84rem; font-weight: 750; }
.pcg-premium-v3-admin .pcg-overview-metric strong { font-size: 1.7rem; }
.pcg-premium-v3-admin .pcg-overview-metric span { font-size: .86rem; }
.pcg-premium-v3-admin .pcg-overview-metric small { font-size: .72rem; }

/* ---------- responsive ---------- */
@media (max-width: 1399px) {
  :root { --pcg-v3-max: 1380px; }
  .pcg-premium-v3 .pcg-home .pcg-category-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .pcg-premium-v3 .pcg-home .pcg-hero-grid { grid-template-columns: .9fr 1.1fr; gap: 30px; }
}
@media (max-width: 1099px) {
  .pcg-premium-v3 .pcg-home .pcg-hero-grid { grid-template-columns: 1fr; }
  .pcg-premium-v3 .pcg-home-offer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pcg-premium-v3-admin .pcg-admin-shell { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .pcg-premium-v3 .container,
  .pcg-premium-v3 .container-xxl,
  .pcg-premium-v3 .container-xl,
  .pcg-premium-v3 .container-lg,
  .pcg-premium-v3 .container-md,
  .pcg-premium-v3 .container-sm { width: min(calc(100% - 30px), var(--pcg-v3-max)); }
  .pcg-premium-v3 .pcg-home .pcg-hero { padding-top: 24px; }
  .pcg-premium-v3 .pcg-home .pcg-hero-title { font-size: clamp(2.45rem,11vw,3.4rem); }
  .pcg-premium-v3 .pcg-home-offer-grid,
  .pcg-premium-v3 .pcg-home .pcg-category-grid { grid-template-columns: 1fr; }
  .pcg-premium-v3 .pcg-home .pcg-category-card { min-height: 108px; }
  .pcg-premium-v3 .pcg-footer-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .pcg-premium-v3-admin .pcg-admin-main { padding: 20px 16px 32px; }
}
@media (max-width: 520px) {
  .pcg-premium-v3 .pcg-footer-grid { grid-template-columns: 1fr; }
}
