/**
 * Dahab Circle — storefront styles.
 *
 * Matches the live Dahab Perfumes (WoodMart) theme tokens rather than
 * introducing a new visual system:
 *   --dc-gold:        #B08D57  (site primary/accent — --wd-primary-color)
 *   --dc-gold-hover:  #FBBC34  (site link hover — --wd-link-color-hover)
 *   --dc-cream:       #FBF8F2  (site off-white section background)
 *   --dc-ink:         #242424  (site title colour — --wd-title-color)
 *   --dc-body:        #777777  (site body text — --wd-text-color)
 *   --dc-border:      rgba(0,0,0,.1) (site form border colour)
 *   Headings: "Playfair Display", serif (site --wd-title-font)
 *   Body/buttons: "Jost", Arial, Helvetica, sans-serif (site --wd-text-font)
 * Border radius is 0 throughout — the live theme uses sharp corners
 * everywhere (--wd-brd-radius: 0px), never rounded pills or cards.
 */

.dc-account, .dc-programme-page, .dc-order-confirmation, .dc-cart-summary,
.dc-redeem-box, .dc-earn-notice, .dc-registration-notice {
	--dc-gold: #b08d57;
	--dc-gold-hover: #fbbc34;
	--dc-cream: #fbf8f2;
	--dc-ink: #242424;
	--dc-body: #777777;
	--dc-border: rgba(0, 0, 0, 0.1);
	font-family: "Jost", Arial, Helvetica, sans-serif;
	color: var(--dc-body);
}

.dc-account h2, .dc-account h3,
.dc-programme-page h1, .dc-programme-page h2,
.dc-order-confirmation h2 {
	font-family: "Playfair Display", Georgia, serif;
	color: var(--dc-ink);
	font-weight: 600;
	letter-spacing: 0.02em;
}

/* ---------- My Account ---------- */

.dc-account section {
	border: 1px solid var(--dc-border);
	padding: 28px;
	margin-bottom: 24px;
	background: #fff;
}

.dc-eyebrow {
	font-family: "Jost", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--dc-gold);
	margin: 0 0 8px;
}

.dc-tier-summary {
	background: var(--dc-cream);
	border-color: var(--dc-border);
}

.dc-tier-name {
	margin: 0 0 20px;
	font-size: 32px;
	position: relative;
	padding-bottom: 14px;
}
.dc-tier-name::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 48px;
	height: 2px;
	background: var(--dc-gold);
}

.dc-progress-bar {
	height: 4px;
	background: rgba(0, 0, 0, 0.08);
	margin: 10px 0;
	overflow: hidden;
}
.dc-progress-bar span {
	display: block;
	height: 100%;
	background: var(--dc-gold);
}

.dc-progress-copy, .dc-spend-note { font-size: 14px; margin: 4px 0; }
.dc-spend-note { color: #9a9a9a; }

.dc-tier-benefits {
	list-style: none;
	margin: 20px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid var(--dc-border);
}
.dc-tier-benefits li {
	font-size: 14px;
	padding-left: 18px;
	position: relative;
	margin-bottom: 8px;
}
.dc-tier-benefits li::before {
	content: "—";
	position: absolute;
	left: 0;
	color: var(--dc-gold);
}

.dc-balance-summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
}
.dc-balance-figure {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 44px;
	color: var(--dc-ink);
	margin: 0;
	line-height: 1;
}
.dc-balance-sub { font-size: 13px; margin: 6px 0 0; }
.dc-expiry-warning {
	font-size: 13px;
	color: #a15c1f;
	background: #fbf1e4;
	border: 1px solid #eddcc0;
	padding: 10px 14px;
}

.dc-referral-link {
	display: flex;
	gap: 0;
	max-width: 480px;
	margin: 16px 0;
}
.dc-referral-link input {
	flex: 1;
	border: 1px solid var(--dc-border);
	padding: 10px 12px;
	font-family: "Jost", Arial, Helvetica, sans-serif;
	font-size: 13px;
	background: #fafafa;
}
.dc-copy-link,
.dc-account .button,
.dc-redeem-box .button {
	background: transparent;
	border: 1px solid var(--dc-gold);
	color: var(--dc-ink);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 12px;
	font-weight: 600;
	padding: 10px 18px;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.dc-copy-link:hover,
.dc-account .button:hover,
.dc-redeem-box .button:hover {
	background: var(--dc-gold);
	color: #fff;
}

.dc-referral-history, .dc-ledger-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 12px;
	font-size: 13px;
}
.dc-referral-history th, .dc-referral-history td,
.dc-ledger-table th, .dc-ledger-table td {
	text-align: left;
	padding: 10px 8px;
	border-bottom: 1px solid var(--dc-border);
}
.dc-positive { color: #4a7a4a; }
.dc-negative { color: #a33; }

.dc-status {
	display: inline-block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 3px 8px;
	border: 1px solid var(--dc-border);
}
.dc-status-converted { border-color: #4a7a4a; color: #4a7a4a; }
.dc-status-pending { border-color: var(--dc-gold); color: var(--dc-gold); }
.dc-status-expired, .dc-status-blocked { border-color: #999; color: #999; }

.dc-ledger-pagination { margin-top: 16px; }
.dc-ledger-pagination a {
	display: inline-block;
	padding: 4px 10px;
	margin-right: 4px;
	border: 1px solid var(--dc-border);
	color: var(--dc-ink);
	text-decoration: none;
	font-size: 13px;
}
.dc-ledger-pagination a.is-active { background: var(--dc-gold); border-color: var(--dc-gold); color: #fff; }

.dc-gold-day-form { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dc-gold-day-form input[type="date"] {
	border: 1px solid var(--dc-border);
	padding: 8px 10px;
	font-family: "Jost", Arial, Helvetica, sans-serif;
}
.dc-gold-day-message { font-size: 13px; }

.dc-explainer p { font-size: 14px; line-height: 1.7; }

/* ---------- Storefront snippets ---------- */

.dc-earn-notice, .dc-registration-notice {
	font-size: 13px;
	color: var(--dc-gold);
	margin: 10px 0;
	letter-spacing: 0.01em;
}
.dc-earn-notice strong { color: var(--dc-ink); }
.dc-earn-notice--guest { color: var(--dc-body); }

.dc-cart-summary {
	margin-bottom: 16px;
	font-size: 13px;
}
.dc-cart-balance strong { color: var(--dc-ink); }

.dc-redeem-box {
	background: var(--dc-cream);
	border: 1px solid var(--dc-border);
	padding: 20px;
	margin: 0 0 24px;
}
.dc-redeem-box--blocked { background: #fbf1e4; }
.dc-redeem-heading {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 18px;
	color: var(--dc-ink);
	margin: 0 0 6px;
}
.dc-redeem-balance { font-size: 13px; margin: 0 0 14px; }
.dc-redeem-controls { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.dc-redeem-controls input[type="range"] { flex: 1; min-width: 160px; accent-color: var(--dc-gold); }
.dc-redeem-message { font-size: 12px; color: var(--dc-gold); margin-top: 8px; }

.dc-order-confirmation {
	border: 1px solid var(--dc-border);
	padding: 24px;
	margin: 24px 0;
	background: var(--dc-cream);
}

/* ---------- Public programme page ---------- */

.dc-programme-page { --dc-gold: #b08d57; }
.dc-programme-hero {
	text-align: center;
	padding: 60px 20px;
	background: #0c0c0c;
	color: #fbf8f2;
	margin-bottom: 40px;
}
.dc-programme-hero .dc-eyebrow { color: var(--dc-gold-hover); }
.dc-programme-hero h1 {
	color: #fbf8f2;
	font-size: 40px;
	margin: 0 0 16px;
}
.dc-programme-intro { max-width: 620px; margin: 0 auto 28px; font-size: 15px; line-height: 1.7; color: #e3dfd6; }
.dc-cta {
	display: inline-block;
	border: 1px solid var(--dc-gold);
	color: #fbf8f2;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 12px;
	font-weight: 600;
	padding: 14px 30px;
	transition: background-color .2s ease;
}
.dc-cta:hover { background: var(--dc-gold); }

.dc-tiers-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--dc-border);
	margin-bottom: 60px;
}
.dc-tier-card {
	background: #fff;
	padding: 32px 26px;
}
.dc-tier-card-label {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 24px;
	color: var(--dc-ink);
	margin: 0 0 6px;
}
.dc-tier-card-threshold {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--dc-gold);
	margin: 0 0 20px;
}
.dc-tier-card ul { list-style: none; margin: 0; padding: 0; }
.dc-tier-card li {
	font-size: 14px;
	color: var(--dc-body);
	padding: 10px 0;
	border-top: 1px solid var(--dc-border);
}
.dc-tier-card--gold { background: #fdfaf4; }

.dc-how-it-works, .dc-referral-explainer, .dc-terms-note {
	max-width: 860px;
	margin: 0 auto 60px;
	padding: 0 20px;
}
.dc-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 24px; }
.dc-step { text-align: left; }
.dc-step-number {
	display: block;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 26px;
	color: var(--dc-gold);
	margin-bottom: 8px;
}
.dc-step p { font-size: 14px; line-height: 1.6; margin: 0; }

.dc-terms-note p { font-size: 12px; color: #9a9a9a; text-align: center; }

@media (max-width: 782px) {
	.dc-tiers-grid, .dc-steps { grid-template-columns: 1fr; }
	.dc-balance-summary { flex-direction: column; align-items: flex-start; }
}
