/* Public pricing: shared credit packs and costs, with the site's light palette. */
.pricing-page { max-width:1280px; padding-bottom:40px; }
.pricing-hero { max-width:800px; margin:0 auto; padding:36px 12px 20px; text-align:center; }
.pricing-hero h1 { margin:0 0 12px; font-size:36px; font-weight:700; line-height:1.25; letter-spacing:-.035em; }
.pricing-hero > p { max-width:700px; margin:0 auto; color:var(--ink-2); font-size:15px; line-height:1.7; }
.pricing-assurances { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 16px; margin-top:18px; color:var(--ink-2); font-size:12px; }
.pricing-assurances span { display:inline-flex; align-items:center; gap:6px; }
.pricing-assurances span::before { content:'✓'; color:var(--purple); font-weight:700; }
.pricing-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:5px; width:fit-content; max-width:100%; margin:4px auto 42px; padding:4px; border:1px solid var(--border); border-radius:999px; background:var(--card); }
.pricing-nav a { padding:8px 18px; border-radius:999px; color:var(--ink-2); font-size:13px; font-weight:600; text-align:center; }
.pricing-nav a:hover { background:var(--purple-50); color:var(--purple-dark); }
.pricing-page :is(button,a,summary,[tabindex]):focus-visible { outline:2px solid var(--purple); outline-offset:3px; }
.pricing-page :is(section[id]) { scroll-margin-top:88px; }
.price-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; align-items:stretch; margin:0; }
.price-card { position:relative; min-width:0; display:flex; flex-direction:column; padding:26px 20px 22px; border:1px solid var(--border); border-radius:18px; background:var(--card); box-shadow:0 3px 12px rgba(76,29,149,.035); }
.price-card.featured { border-color:var(--purple); background:linear-gradient(180deg,var(--purple-50),#fff 52%); box-shadow:0 8px 28px rgba(124,58,237,.1); border-top-left-radius:0; border-top-right-radius:0; }
.price-badge { position:absolute; top:-13px; right:16px; padding:4px 10px; border:1px solid var(--purple-200); border-radius:999px; background:var(--purple-100); color:var(--purple-dark); font-size:11px; font-weight:650; line-height:1.4; }
.featured .price-badge { top:-27px; right:-1px; left:-1px; height:27px; display:grid; place-items:center; padding:0; border-color:var(--purple); border-radius:14px 14px 0 0; background:var(--purple); color:#fff; letter-spacing:.025em; }
.price-card-head { min-height:66px; }
.price-name { margin:0 0 6px; font-size:19px; font-weight:650; color:var(--ink); line-height:1.3; }
.price-card-head p { margin:0; color:var(--ink-3); font-size:12px; line-height:1.5; }
.price-amount { margin:10px 0 2px; font-size:40px; line-height:1.2; font-weight:700; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.price-period { margin-bottom:20px; color:var(--ink-3); font-size:12px; }
.price-credit-panel { min-height:114px; padding:14px; margin-bottom:18px; border:1px solid var(--border); border-radius:12px; background:var(--purple-50); }
.price-credits { font-size:24px; font-weight:700; color:var(--purple-dark); line-height:1.35; font-variant-numeric:tabular-nums; }
.price-credits span { font-size:12px; font-weight:500; }
.price-per { display:block; margin-top:4px; color:var(--purple); font-size:11px; }
.price-images { margin-top:8px; color:var(--ink-2); font-size:12px; line-height:1.5; }
.price-cta { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--purple); border-radius:10px; background:var(--purple); color:#fff; font:inherit; font-size:14px; font-weight:600; text-align:center; cursor:pointer; transition:background .16s,border-color .16s; }
.price-cta:hover { background:var(--purple-dark); border-color:var(--purple-dark); }
.price-card.secondary .price-cta { background:#fff; color:var(--purple-dark); border-color:var(--purple-200); }
.price-card.secondary .price-cta:hover { background:var(--purple-50); border-color:var(--purple-light); }
.price-cta:disabled { cursor:wait; opacity:.7; }
.price-includes { display:flex; flex-direction:column; gap:10px; list-style:none; margin:20px 0 0; padding:18px 0 0; border-top:1px solid var(--border); }
.price-includes li { display:flex; align-items:flex-start; gap:8px; color:var(--ink-2); font-size:12px; line-height:1.55; }
.price-includes svg { flex:none; margin-top:2px; color:var(--purple); }
.pricing-estimate,.pricing-table-note { color:var(--ink-3); font-size:12px; line-height:1.6; }
.pricing-estimate { margin:16px 0 0; text-align:center; }
.pricing-section { margin:56px auto 0; }
.pricing-section-head { margin-bottom:20px; text-align:center; }
.pricing-section-head h2 { margin:0 0 8px; font-size:28px; line-height:1.35; letter-spacing:-.025em; }
.pricing-section-head p { margin:0; color:var(--ink-2); font-size:14px; line-height:1.65; }
.pricing-table-wrap { overflow:auto; isolation:isolate; border:1px solid var(--border); border-radius:16px; background:var(--card); }
.pricing-table { width:100%; border-collapse:separate; border-spacing:0; font-size:13px; }
.pricing-table th,.pricing-table td { padding:14px 18px; text-align:left; border-bottom:1px solid var(--border); line-height:1.5; }
.pricing-table thead th { background:var(--purple-50); color:var(--ink-2); font-size:12px; font-weight:600; }
.pricing-table tbody tr:last-child > * { border-bottom:0; }
.pricing-table tbody tr:hover td { background:rgba(245,243,255,.6); }
.pricing-table td.num { font-variant-numeric:tabular-nums; font-weight:600; }
.pricing-compare { min-width:800px; table-layout:fixed; }
.pricing-compare th:first-child { width:23%; }
.pricing-compare thead th { padding:20px 16px; background:#fff; vertical-align:bottom; }
.pricing-compare :is(th,td):not(:first-child) { text-align:center; }
.pricing-compare tbody th { color:var(--ink-2); font-weight:500; }
.pricing-compare .compare-featured { background:var(--purple-50); }
.compare-plan-name { display:block; margin-bottom:8px; color:var(--ink); font-size:16px; font-weight:650; }
.compare-plan-price { margin-bottom:12px; font-size:23px; font-weight:650; color:var(--ink); font-variant-numeric:tabular-nums; }
.pricing-compare .price-cta { min-height:38px; font-size:12px; padding:7px 8px; }
.pricing-compare thead th:not(.compare-featured) .price-cta { color:var(--purple-dark); background:#fff; border-color:var(--purple-200); }
.pricing-compare thead th:not(.compare-featured) .price-cta:hover { background:var(--purple-50); }
.pricing-compare td { font-size:14px; font-variant-numeric:tabular-nums; }
.pricing-compare td svg { display:block; margin:0 auto; color:var(--purple); width:18px; height:18px; }
.pricing-table-note { margin:10px 0 0; }
.pricing-usage-panel { padding:24px; margin-top:16px; border:1px solid var(--border); border-radius:18px; background:#fff; }
.pricing-usage-panel h3 { margin:0 0 6px; font-size:18px; font-weight:650; }
.pricing-usage-panel > p { margin:0 0 18px; color:var(--ink-3); font-size:12.5px; line-height:1.7; }
.pricing-usage-panel .pricing-table-wrap { border-radius:12px; }
.pricing-faq { max-width:900px; }
.pricing-facts { border-top:1px solid var(--border); }
.pricing-fact { border-bottom:1px solid var(--border); }
.pricing-fact summary { position:relative; padding:20px 30px 20px 0; list-style:none; color:var(--ink); font-size:15px; font-weight:600; line-height:1.5; cursor:pointer; }
.pricing-fact summary::-webkit-details-marker { display:none; }
.pricing-fact summary::after { content:'+'; position:absolute; right:3px; top:18px; color:var(--purple); font-size:22px; font-weight:400; }
.pricing-fact[open] summary::after { content:'−'; }
.pricing-fact p { margin:0; padding:0 24px 20px 0; color:var(--ink-2); font-size:14px; line-height:1.8; }
.pricing-foot { max-width:900px; margin:28px auto 0; color:var(--ink-3); font-size:11px; line-height:1.8; }
@media(max-width:1150px) and (min-width:641px) {
 .price-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px 18px; }
}
@media(max-width:640px) {
 .pricing-page { padding-left:16px; padding-right:16px; }
 .pricing-hero { padding:20px 0 16px; }
 .pricing-hero h1 { font-size:28px; }
 .pricing-hero > p { font-size:13px; }
 .pricing-assurances { gap:6px 12px; font-size:11px; margin-top:14px; }
 .pricing-nav { width:100%; margin:4px auto 38px; gap:0; }
 .pricing-nav a { flex:1; padding:9px 5px; font-size:12px; }
 .price-grid { grid-template-columns:minmax(0,1fr); gap:38px; }
 .price-card { padding:22px; }
 .price-card-head { min-height:54px; }
 .price-credit-panel { min-height:0; }
 .price-period { margin-bottom:16px; }
 .price-includes { gap:8px; margin-top:18px; padding-top:16px; }
 .pricing-section { margin-top:40px; }
 .pricing-section-head h2 { font-size:24px; }
 .pricing-section-head p { font-size:13px; }
 .pricing-usage-panel { padding:16px; border-radius:14px; }
 .pricing-table { font-size:12px; }
 .pricing-table th,.pricing-table td { padding:12px 13px; }
 .pricing-usage-panel .pricing-table { min-width:470px; }
 .pricing-compare { min-width:780px; }
 .pricing-compare th:first-child { position:sticky; left:0; z-index:1; width:150px; background:#fff; border-right:1px solid var(--border); }
 .pricing-compare thead th:first-child { z-index:2; }
 .pricing-fact summary { padding-top:18px; padding-bottom:18px; font-size:14px; }
 .pricing-fact p { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { .price-cta { transition:none; } }
