/**
 * Provision storefront styles — Direction B (bold & distinctive).
 *
 * Uses the shared tokens (tokens.css). Scoped to .provision-store so it never
 * touches the host theme's other content. Quality floor: responsive, visible
 * focus, reduced-motion handled in tokens.css.
 */

.provision-store {
	max-width: 64rem;
	margin: 0 auto;
	color: var(--prov-text);
	font-family: var(--prov-font-sans);
	font-size: var(--prov-fs-body);
	line-height: 1.6;
}

.provision-store * {
	box-sizing: border-box;
}

/* Hero — branded, warm, greets the customer */
.prov-account-hero {
	background: var(--prov-violet-500);
	color: #fff;
	border-radius: var(--prov-radius-lg);
	padding: var(--prov-space-5) var(--prov-space-5);
	margin-bottom: var(--prov-space-5);
}

.prov-eyebrow {
	font-size: var(--prov-fs-caption);
	text-transform: none;
	opacity: 0.85;
	margin-bottom: var(--prov-space-1);
}

.prov-h1 {
	font-size: var(--prov-fs-display);
	font-weight: var(--prov-fw-medium);
	margin: 0;
	color: #fff;
}

.prov-account-hero .prov-h1 {
	color: #fff;
}

.prov-h2 {
	font-size: var(--prov-fs-h2);
	font-weight: var(--prov-fw-medium);
	margin: 0 0 var(--prov-space-3);
	color: var(--prov-text);
}

.prov-h3 {
	font-size: var(--prov-fs-h3);
	font-weight: var(--prov-fw-medium);
	margin: 0;
	color: var(--prov-text);
}

.prov-section {
	margin-bottom: var(--prov-space-6);
}

/* Cards */
.prov-card {
	background: var(--prov-surface);
	border: 1px solid var(--prov-border);
	border-radius: var(--prov-radius-lg);
	padding: var(--prov-space-4) var(--prov-space-4);
}

.prov-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--prov-space-3);
}

.prov-entitlement-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--prov-space-2);
	margin-bottom: var(--prov-space-3);
}

/* License key block */
.prov-license {
	background: var(--prov-surface-2);
	border-radius: var(--prov-radius-md);
	padding: var(--prov-space-2) var(--prov-space-3);
	margin-bottom: var(--prov-space-3);
}

.prov-license-label {
	display: block;
	font-size: var(--prov-fs-caption);
	color: var(--prov-text-muted);
	margin-bottom: 2px;
}

.prov-license-key {
	font-family: var(--prov-font-mono);
	font-size: var(--prov-fs-small);
	color: var(--prov-violet-800);
	word-break: break-all;
}

.prov-meta {
	font-size: var(--prov-fs-small);
	color: var(--prov-text-muted);
	margin-bottom: var(--prov-space-3);
}

.prov-downloads {
	display: flex;
	flex-wrap: wrap;
	gap: var(--prov-space-2);
}

/* Buttons */
.prov-btn {
	display: inline-block;
	font-size: var(--prov-fs-small);
	font-weight: var(--prov-fw-medium);
	line-height: 1.2;
	padding: 10px 16px;
	border-radius: var(--prov-radius-md);
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.prov-btn-primary {
	background: var(--prov-violet-500);
	color: #fff;
}

.prov-btn-primary:hover {
	background: var(--prov-violet-600);
}

.prov-btn-secondary {
	background: var(--prov-surface-2);
	color: var(--prov-violet-800);
	border-color: var(--prov-border-strong);
}

.prov-btn-secondary:hover {
	background: var(--prov-violet-50);
}

.prov-btn:focus-visible {
	outline: 2px solid var(--prov-blue-500);
	outline-offset: 2px;
}

/* Pills */
.prov-pill {
	display: inline-block;
	font-size: var(--prov-fs-caption);
	font-weight: var(--prov-fw-medium);
	padding: 2px 10px;
	border-radius: var(--prov-radius-pill);
}

.prov-pill.is-success { background: #e1f5ee; color: #0f6e56; }
.prov-pill.is-warning { background: #faeeda; color: #854f0b; }
.prov-pill.is-danger  { background: #fcebeb; color: #791f1f; }
.prov-pill.is-muted   { background: var(--prov-surface-2); color: var(--prov-text-muted); }

/* Table */
.prov-table-card {
	padding: 0;
	overflow: hidden;
}

.prov-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--prov-fs-small);
}

.prov-table th {
	text-align: left;
	font-weight: var(--prov-fw-medium);
	color: var(--prov-text-muted);
	padding: var(--prov-space-3) var(--prov-space-4);
	border-bottom: 1px solid var(--prov-border);
}

.prov-table td {
	padding: var(--prov-space-3) var(--prov-space-4);
	border-bottom: 1px solid var(--prov-border);
}

.prov-table tr:last-child td {
	border-bottom: none;
}

.prov-num { text-align: right; }
.prov-mono, .prov-table .prov-mono { font-family: var(--prov-font-mono); color: var(--prov-text-muted); }

.prov-muted { color: var(--prov-text-muted); }
.prov-small { font-size: var(--prov-fs-small); }

.prov-empty {
	text-align: center;
	padding: var(--prov-space-6) var(--prov-space-4);
}

.prov-empty .prov-btn {
	margin-top: var(--prov-space-3);
}

/* Responsive */
@media (max-width: 600px) {
	.prov-account-hero { padding: var(--prov-space-4); }
	.prov-h1 { font-size: var(--prov-fs-h1); }
	.prov-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Storefront: shop grid, product cards, buy form, cart.
   Direction B — bold, branded. Scoped under .provision-store.
   ============================================================ */

.prov-shop-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	gap: var(--prov-space-4);
}

.prov-card {
	background: var(--prov-surface);
	border: 1px solid var(--prov-border);
	border-radius: var(--prov-radius-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 6px 22px rgba(11, 35, 64, 0.12), 0 2px 6px rgba(11, 35, 64, 0.06);
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.prov-card:hover {
	transform: translateY(-3px);
	border-color: var(--prov-violet-500);
	box-shadow: 0 16px 40px rgba(11, 35, 64, 0.18), 0 3px 10px rgba(11, 35, 64, 0.08);
}
.prov-card-media img {
	width: 100%;
	height: 10rem;
	object-fit: cover;
	display: block;
}
.prov-card-body {
	padding: var(--prov-space-4);
	display: flex;
	flex-direction: column;
	gap: var(--prov-space-2);
	flex: 1;
}
.prov-card-title {
	font-size: var(--prov-fs-h3);
	font-weight: var(--prov-fw-medium);
	margin: 0;
	color: var(--prov-text);
}
.prov-card-price {
	color: var(--prov-text-muted);
	font-size: var(--prov-fs-small);
}
.prov-card-price strong {
	color: var(--prov-text);
	font-size: var(--prov-fs-body);
}
.prov-card-desc {
	color: var(--prov-text-muted);
	font-size: var(--prov-fs-small);
	line-height: 1.6;
}

.prov-buy {
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: var(--prov-space-2);
}
.prov-tier-select {
	width: 100%;
	padding: 0.5rem 0.6rem;
	border-radius: var(--prov-radius-md);
	border: 1px solid var(--prov-border-strong);
	background: var(--prov-surface-2);
	color: var(--prov-text);
	font-size: var(--prov-fs-small);
}

.prov-btn {
	display: inline-block;
	text-align: center;
	cursor: pointer;
	border: none;
	border-radius: var(--prov-radius-pill);
	padding: 0.65rem 1.2rem;
	font-size: var(--prov-fs-small);
	font-weight: var(--prov-fw-medium);
	text-decoration: none;
	transition: background 0.15s ease, transform 0.1s ease;
}
.prov-btn-primary {
	background: var(--prov-violet-500);
	color: #fff;
}
.prov-btn-primary:hover {
	background: var(--prov-violet-600);
	transform: translateY(-1px);
}

/* Single product */
.prov-product-single .prov-card {
	max-width: 40rem;
}

/* Empty state */
.prov-empty {
	text-align: center;
	padding: var(--prov-space-6) var(--prov-space-4);
	color: var(--prov-text-muted);
}
.prov-empty h2 {
	color: var(--prov-text);
	margin: 0 0 var(--prov-space-2);
}

/* Cart */
.prov-cart-head {
	font-size: var(--prov-fs-h2);
	color: var(--prov-text);
	margin: 0 0 var(--prov-space-4);
}
.prov-cart-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--prov-space-4);
}
.prov-cart-table th,
.prov-cart-table td {
	text-align: left;
	padding: var(--prov-space-3);
	border-bottom: 1px solid var(--prov-border);
	color: var(--prov-text);
}
.prov-cart-table th {
	color: var(--prov-text-muted);
	font-size: var(--prov-fs-caption);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.prov-cart-total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--prov-space-3) 0;
	font-size: var(--prov-fs-h3);
	color: var(--prov-text);
	border-top: 2px solid var(--prov-border-strong);
	margin-bottom: var(--prov-space-4);
}
.prov-checkout-link {
	width: 100%;
}

/* Feature comparison table */
.prov-compare {
	margin-top: var(--prov-space-5);
}
.prov-compare-head {
	font-size: var(--prov-fs-h2);
	color: var(--prov-text);
	margin: 0 0 var(--prov-space-4);
}
.prov-compare-scroll {
	overflow-x: auto;
}
.prov-compare-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 32rem;
}
.prov-compare-table th,
.prov-compare-table td {
	padding: var(--prov-space-3);
	text-align: center;
	border-bottom: 1px solid var(--prov-border);
}
.prov-compare-table thead th {
	background: var(--prov-surface-2);
	border-bottom: 2px solid var(--prov-border-strong);
}
.prov-compare-note {
	font-size: var(--prov-fs-small);
	color: var(--prov-accent);
	font-weight: var(--prov-fw-medium);
}

.prov-compare-feat {
	text-align: left !important;
	color: var(--prov-text);
	font-weight: var(--prov-fw-medium);
}
.prov-compare-tier {
	display: block;
	color: var(--prov-text);
	font-weight: var(--prov-fw-medium);
	font-size: var(--prov-fs-body);
}
.prov-compare-price {
	display: block;
	color: var(--prov-violet-500);
	font-size: var(--prov-fs-small);
	margin-top: 2px;
}
.prov-compare-table .prov-yes {
	color: var(--prov-violet-500);
	font-weight: 700;
}
.prov-compare-table .prov-no {
	color: var(--prov-text-muted);
}

/* Account: installed sites per license */
.prov-sites {
	margin-top: var(--prov-space-3);
	padding-top: var(--prov-space-3);
	border-top: 1px solid var(--prov-border);
}
.prov-sites-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: var(--prov-space-2);
}
.prov-sites-count {
	font-size: var(--prov-fs-small);
	color: var(--prov-violet-500);
	font-weight: var(--prov-fw-medium);
}
.prov-site-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--prov-space-2);
}
.prov-site-item {
	display: flex;
	align-items: center;
	gap: var(--prov-space-2);
	padding: var(--prov-space-2) var(--prov-space-3);
	background: var(--prov-surface-2);
	border-radius: var(--prov-radius-md);
}
.prov-site-url {
	color: var(--prov-text);
	font-size: var(--prov-fs-small);
	word-break: break-all;
}
.prov-badge {
	font-size: var(--prov-fs-caption);
	padding: 2px 8px;
	border-radius: var(--prov-radius-pill);
	font-weight: var(--prov-fw-medium);
}
.prov-badge-staging {
	background: var(--prov-violet-50);
	color: var(--prov-violet-600);
}
.prov-badge-inactive {
	background: rgba(0,0,0,0.08);
	color: var(--prov-text-muted);
}
.prov-interval{font-size:0.7em;color:var(--prov-text-muted);font-weight:400;}

/* ---------------------------------------------------------------------------
   Pricing cards — [provision_pricing] classic three-tier layout.
   Uses Provision's design tokens; the active theme can override via .prov-*.
   --------------------------------------------------------------------------- */
.prov-pricing{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
	gap:24px;
	align-items:stretch;
	margin:0 auto;
	max-width:1100px;
}
.prov-price-card{
	display:flex;
	flex-direction:column;
	background:var(--prov-surface,#fff);
	border:1px solid var(--prov-border,#e7e3ef);
	border-radius:16px;
	padding:32px 28px;
	box-shadow:0 2px 10px rgba(11,35,64,0.06);
	position:relative;
	transition:transform .18s ease, box-shadow .18s ease;
}
.prov-price-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(11,35,64,0.12);}
.prov-price-card--popular{
	border-color:var(--prov-accent,#5f249f);
	border-width:2px;
	box-shadow:0 16px 40px rgba(95,36,159,0.18);
}
.prov-price-flag{
	position:absolute;top:-13px;left:50%;transform:translateX(-50%);
	background:var(--prov-accent,#5f249f);color:#fff;
	font-family:var(--prov-font-display,inherit);
	font-size:11px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;
	padding:5px 14px;border-radius:999px;white-space:nowrap;
}
.prov-price-head{text-align:center;padding-bottom:18px;border-bottom:1px solid var(--prov-border,#e7e3ef);margin-bottom:18px;}
.prov-price-tier{
	font-family:var(--prov-font-display,inherit);
	font-size:1.4rem;margin:0 0 8px;color:var(--prov-text,#1c1726);
	text-transform:uppercase;letter-spacing:0.04em;
}
.prov-price-amount{
	font-family:var(--prov-font-display,inherit);
	font-size:2.4rem;font-weight:700;color:var(--prov-accent,#5f249f);line-height:1;
}
.prov-price-amount .prov-interval{font-size:0.4em;color:var(--prov-text-muted,#6b6680);}
.prov-price-note{font-size:0.85rem;color:var(--prov-text-muted,#6b6680);margin:10px 0 0;}
.prov-price-features{list-style:none;margin:0 0 20px;padding:0;flex:1 1 auto;}
.prov-price-features li{
	display:flex;align-items:flex-start;gap:10px;
	padding:7px 0;font-size:0.95rem;color:var(--prov-text,#3a3550);line-height:1.5;
}
.prov-price-check{color:var(--prov-success,#008c95);font-weight:700;flex:none;}
.prov-price-limit{
	text-align:center;font-size:0.85rem;color:var(--prov-text-muted,#6b6680);
	margin-bottom:18px;padding:8px;background:var(--prov-surface-2,#faf8fd);border-radius:8px;
}
.prov-price-card .prov-buy{margin-top:auto;}
.prov-price-card .prov-btn{width:100%;justify-content:center;}
.prov-btn-secondary{
	background:transparent;
	color:var(--prov-accent,#5f249f);
	border:2px solid var(--prov-accent,#5f249f);
}
.prov-btn-secondary:hover{background:var(--prov-accent,#5f249f);color:#fff;}
@media(max-width:600px){.prov-price-card{padding:26px 22px;}}

/* Product card icon + title row */
.prov-card-titlerow{display:flex;align-items:center;gap:12px;margin-bottom:6px;}
.prov-card-icon{width:44px;height:44px;border-radius:10px;flex:none;object-fit:cover;}
.prov-card-titlerow .prov-card-title{margin:0;}

/* ============================================================
   Interactive buy widget ([provision_buy]) — site pills,
   monthly/annual toggle, live price, real add-to-cart forms.
   ============================================================ */
.prov-buy-toggle-wrap { display:flex; justify-content:center; margin:0 0 26px; }
.prov-buy-toggle {
	display:inline-flex; align-items:center; gap:4px;
	background:var(--prov-violet-50); border-radius:999px; padding:5px;
	position:relative;
}
.prov-buy-toggle .prov-bp {
	border:0; background:transparent; cursor:pointer;
	font-family:var(--prov-font-sans); font-weight:600; font-size:14px;
	color:var(--prov-violet-600); padding:8px 20px; border-radius:999px;
	transition:background .15s,color .15s;
}
.prov-buy-toggle .prov-bp.is-active {
	background:linear-gradient(135deg,#7B40D6 0%,#3F9FE8 100%); color:#fff;
	box-shadow:0 4px 12px rgba(123,64,214,0.3);
}
.prov-buy-toggle .prov-bp-save {
	font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
	color:#fff; background:var(--prov-blue-500,#3F9FE8); padding:4px 10px;
	border-radius:999px; margin-left:6px;
}
.prov-buy-cards {
	display:flex; gap:22px; align-items:stretch; flex-wrap:wrap;
	max-width:1080px; margin:0 auto; justify-content:center;
}
.prov-buy-card {
	position:relative; flex:1 1 0; min-width:240px; background:#fff;
	border:1px solid #ece8f4; border-radius:16px; padding:32px 26px;
	box-shadow:0 4px 18px rgba(26,22,40,0.08);
	display:flex; flex-direction:column;
}
.prov-buy-card.is-popular {
	border:2px solid #7B40D6;
	box-shadow:0 16px 40px rgba(123,64,214,0.18);
}
.prov-buy-badge {
	position:absolute; top:-13px; left:50%; transform:translateX(-50%);
	background:#7B40D6; color:#fff; font-size:11px; font-weight:700;
	letter-spacing:.1em; text-transform:uppercase; padding:5px 16px; border-radius:999px;
	white-space:nowrap;
}
.prov-buy-tier {
	font-family:var(--prov-font-sans); font-size:24px; font-weight:700;
	color:var(--prov-ink,#2F2F3A); margin:0 0 6px; text-transform:uppercase; letter-spacing:.03em;
}
.prov-buy-price { margin:0 0 2px; }
.prov-buy-amount {
	font-family:var(--prov-font-sans); font-size:38px; font-weight:700; color:#7B40D6;
}
.prov-buy-interval { color:#8a85a0; font-size:14px; margin-left:6px; }
.prov-buy-permo { font-size:13px; color:#8a85a0; min-height:18px; margin:0 0 16px; }
.prov-buy-sites {
	display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin:0 0 18px;
}
.prov-buy-sites-label {
	font-size:12px; font-weight:600; color:#8a85a0; text-transform:uppercase;
	letter-spacing:.05em; margin-right:4px;
}
.prov-pill {
	border:1.5px solid #e0dcec; background:#fff; cursor:pointer;
	font-family:var(--prov-font-sans); font-weight:600; font-size:13px;
	color:var(--prov-violet-600); min-width:34px; padding:6px 12px; border-radius:8px;
	transition:all .15s;
}
.prov-pill.is-active {
	background:#7B40D6; color:#fff; border-color:#7B40D6;
}
.prov-buy-feats { list-style:none; margin:0 0 22px; padding:0; flex:1 1 auto; }
.prov-buy-feats li {
	position:relative; padding:5px 0 5px 22px; font-size:14px; line-height:1.5; color:#3A3550;
}
.prov-buy-feats li::before {
	content:"\2713"; position:absolute; left:0; color:#3F9FE8; font-weight:800;
}
.prov-buy-form { margin-top:auto; }
.prov-buy-btn {
	display:block; width:100%; text-align:center; cursor:pointer;
	background:linear-gradient(135deg,#7B40D6 0%,#3F9FE8 100%); color:#fff; border:0;
	font-family:var(--prov-font-sans); font-weight:600; font-size:15px;
	text-transform:uppercase; letter-spacing:.04em; padding:14px; border-radius:8px;
	box-shadow:0 6px 16px rgba(123,64,214,0.28);
	transition:transform .1s, box-shadow .15s;
}
.prov-buy-btn:hover { transform:translateY(-1px); box-shadow:0 8px 22px rgba(123,64,214,0.38); }
.prov-buy-card:not(.is-popular) .prov-buy-btn {
	background:#fff; color:#7B40D6; border:2px solid #7B40D6; box-shadow:none;
}
@media (max-width:760px){
	.prov-buy-cards { flex-direction:column; }
}

/* [provision_features] — per-tier live feature list (1.24.3) */
.prov-feature-block{margin:0 0 var(--prov-space-4,16px);}
.prov-feature-heading{
	font-family:var(--prov-font-sans);font-size:var(--prov-fs-h3,1.05rem);
	font-weight:var(--prov-fw-medium,600);color:var(--prov-text,#3a3550);
	margin:0 0 10px;
}
.prov-feature-list{list-style:none;margin:0;padding:0;}
.prov-feature-list li{
	display:flex;align-items:flex-start;gap:10px;
	padding:7px 0;font-size:0.95rem;color:var(--prov-text,#3a3550);line-height:1.5;
}
.prov-feature-check{color:var(--prov-success,#008c95);font-weight:700;flex:none;}
.prov-feature-list--2col{
	display:grid;grid-template-columns:1fr 1fr;gap:0 24px;
}
@media (max-width:600px){.prov-feature-list--2col{grid-template-columns:1fr;}}

/* [provision_features] included vs excluded rows (1.24.5) */
.prov-feature-list .prov-feat-no{opacity:0.5;}
.prov-feature-x{color:var(--prov-text-muted,#9a93ad);font-weight:700;flex:none;}
.prov-feature-list .prov-feat-no span:last-child{text-decoration:none;color:var(--prov-text-muted,#6b6680);}

/* [provision_compare] branded header — product icon + name (1.24.5) */
.prov-compare-brand{
	display:flex;align-items:center;gap:14px;
	margin:0 0 18px;padding:0 0 14px;
	border-bottom:1px solid var(--prov-border,#e7e2f0);
}
.prov-compare-icon{
	width:48px;height:48px;border-radius:12px;flex:none;object-fit:cover;
	box-shadow:0 4px 12px rgba(123,64,214,0.25);
}
.prov-compare-name{
	font-family:var(--prov-font-sans);
	font-size:var(--prov-fs-h2,1.5rem);font-weight:var(--prov-fw-medium,600);
	color:var(--prov-text,#1a1530);line-height:1.1;
}

/* [provision_installs] stat card (1.24.7) */
.prov-stat-wrap{display:flex;justify-content:center;margin:8px 0;}
.prov-stat-card{
	display:flex;align-items:center;gap:20px;
	background:linear-gradient(135deg,#1A1628 0%,#2a1e54 100%);
	border:1px solid rgba(123,64,214,0.4);
	border-radius:18px;padding:26px 34px;
	box-shadow:0 14px 40px rgba(123,64,214,0.22);
	min-width:280px;
}
.prov-stat-card--left{justify-content:flex-start;}
.prov-stat-icon{
	flex:none;width:56px;height:56px;border-radius:14px;
	display:flex;align-items:center;justify-content:center;
	background:linear-gradient(135deg,#7B40D6 0%,#A37CF2 100%);
	color:#fff;box-shadow:0 6px 16px rgba(123,64,214,0.45);
}
.prov-stat-icon svg{width:30px;height:30px;}
.prov-stat-number{
	font-family:var(--prov-font-sans,'Oswald',sans-serif);
	font-size:2.6rem;font-weight:700;line-height:1;color:#fff;
	letter-spacing:0.01em;
}
.prov-stat-label{
	font-family:var(--prov-font-sans);font-size:1rem;font-weight:600;
	color:#A37CF2;margin-top:4px;
}
.prov-stat-sublabel{
	font-size:0.8rem;color:rgba(255,255,255,0.55);margin-top:2px;
	text-transform:uppercase;letter-spacing:0.06em;
}
@media (max-width:480px){
	.prov-stat-card{padding:20px 22px;gap:14px;min-width:0;width:100%;}
	.prov-stat-number{font-size:2.1rem;}
}
