.pricing-hero {
  text-align: center; padding: 80px 6vw 60px;
}
.pricing-label {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--accent); background: var(--accent-bg);
  padding: 5px 13px; border-radius: 100px; margin-bottom: 20px;
}
.pricing-hero h1 { margin-bottom: 14px; }
.pricing-hero p  { font-size: 1.05rem; color: var(--muted); max-width: 520px; margin: 0 auto 40px; }

.pricing-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px; max-width: 960px; margin: 0 auto; padding: 0 6vw 80px;
}
.price-card {
  background: var(--surface); border: 1.5px solid var(--border);
  border-radius: var(--radius); padding: 28px 24px;
  box-shadow: var(--shadow-xs); position: relative;
  transition: box-shadow .2s, transform .2s, border-color .2s;
}
.price-card:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); border-color: var(--border-2); }
.price-card.popular { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), var(--shadow-md); }
.price-badge {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  background: var(--accent); color: #fff; font-size: .7rem; font-weight: 700;
  padding: 4px 14px; border-radius: 100px; letter-spacing: .04em; white-space: nowrap;
}

.price-name  { font-size: .8rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 14px; }
.price-amt   { font-size: 2.6rem; font-weight: 800; color: var(--text); letter-spacing: -.04em; line-height: 1; }
.price-amt span { font-size: 1.1rem; font-weight: 500; vertical-align: top; margin-top: 6px; display: inline-block; color: var(--muted); }
.price-credits { font-size: .85rem; color: var(--muted); margin: 6px 0 20px; }
.price-features { list-style: none; display: flex; flex-direction: column; gap: 9px; margin-bottom: 24px; }
.price-features li {
  font-size: .87rem; color: var(--text-2); display: flex; align-items: center; gap: 8px;
}
.price-features li::before { content: '✓'; color: var(--accent); font-weight: 800; flex-shrink: 0; }
.price-card .btn { width: 100%; justify-content: center; }

/* FAQ section on pricing */
.pricing-faq { max-width: 720px; margin: 0 auto; padding: 0 6vw 80px; }
.pricing-faq h2 { margin-bottom: 28px; font-size: 1.4rem; }

/* ─── Custom buy widget ───────────────────────────────────────────────────── */
.plans-custom {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 32px; max-width: 860px; margin: 0 auto; padding: 0 6vw 80px;
}
.custom-buy-card {
  background: var(--surface); border: 1.5px solid var(--border);
  border-radius: var(--radius); padding: 32px 28px;
  box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column; gap: 20px;
}
.custom-rate-label { font-size: .72rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.custom-rate { display: flex; align-items: baseline; gap: 8px; }
.custom-rate-price { font-size: 2rem; font-weight: 800; color: var(--text); letter-spacing: -.03em; }
.custom-rate-per { font-size: .9rem; color: var(--muted); }

.custom-input-row { display: flex; align-items: center; gap: 16px; }
.custom-input-wrap { display: flex; align-items: center; border: 1.5px solid var(--border-2); border-radius: var(--radius-sm); overflow: hidden; background: var(--bg-2); }
.custom-input-prefix { padding: 10px 12px; font-weight: 700; color: var(--muted); font-size: .95rem; border-right: 1px solid var(--border-2); }
.custom-input {
  border: none; background: transparent; padding: 10px 12px;
  font-size: 1.1rem; font-weight: 700; color: var(--text); width: 90px;
  font-family: inherit;
}
.custom-input:focus { outline: none; }

.custom-credits-preview { font-size: .9rem; color: var(--muted); }
.custom-credits-preview #creditsPreview { font-size: 1.5rem; font-weight: 800; color: var(--accent); }
.credits-unit { margin-left: 4px; font-size: .85rem; }

.custom-breakdown { background: var(--bg-2); border-radius: var(--radius-sm); padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.breakdown-row { display: flex; justify-content: space-between; font-size: .85rem; color: var(--text-2); }
.breakdown-row span:last-child { font-weight: 700; color: var(--text); }

.custom-buy-btn { width: 100%; justify-content: center; }
.custom-error { color: var(--danger); font-size: .85rem; margin-top: -8px; }

.custom-info { display: flex; flex-direction: column; gap: 20px; padding-top: 4px; }
.info-item { padding: 18px 20px; background: var(--bg-2); border-radius: var(--radius-sm); border: 1px solid var(--border); }
.info-item strong { display: block; font-size: .88rem; color: var(--text); margin-bottom: 6px; }
.info-item p, .info-item ul { font-size: .85rem; color: var(--text-2); }
.info-item ul { padding-left: 16px; }
.info-item li { margin-bottom: 3px; }
.info-item em { color: var(--accent); font-style: normal; font-weight: 600; }

@media (max-width: 700px) {
  .plans-custom { grid-template-columns: 1fr; }
}
