/* ka-coupons front-end stylesheet.
 *
 * Three modules share one stylesheet so the cache footprint stays tiny.
 * Site Tokens (var(--ka-token-*)) are honored where set; sensible
 * fallbacks ensure the modules render correctly without wes-agent-bridge.
 */

/* ---------- KA Coupon Banner ----------------------------------------- */
.ka_coupon_banner {
	background: var(--ka-token-color-cream, #fff5e6);
	border-radius: var(--ka-token-radius-md, 12px);
	padding: 32px;
	text-align: center;
	color: var(--ka-token-color-dark, #1c1d23);
}

.ka_coupon_banner__inner > * + * {
	margin-top: 12px;
}

.ka_coupon_banner__title {
	margin: 0;
	font-size: 1.75rem;
	line-height: 1.2;
	color: var(--ka-token-color-dark, #1c1d23);
}

.ka_coupon_banner__subtitle {
	color: var(--ka-token-color-dark, #1c1d23);
	opacity: 0.85;
}

.ka_coupon_banner__code-row {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	font-size: 1rem;
}

.ka_coupon_banner__code-label {
	font-weight: 600;
}

.ka_coupon_banner__code {
	background: var(--ka-token-color-dark, #1c1d23);
	color: var(--ka-token-color-cream, #fff5e6);
	padding: 6px 14px;
	border-radius: 6px;
	font-family: var(--ka-token-font-mono, ui-monospace, Menlo, Consolas, monospace);
	font-size: 1.1rem;
	letter-spacing: 1px;
}

.ka_coupon_banner__expiry {
	font-size: 0.9rem;
	opacity: 0.7;
}

.ka_coupon_banner__countdown {
	display: inline-flex;
	gap: 12px;
	margin-top: 12px;
}

.ka_coupon_banner__cd-seg {
	display: inline-flex;
	flex-direction: column;
	min-width: 56px;
	background: rgba(28, 29, 35, 0.08);
	padding: 8px 12px;
	border-radius: 8px;
}

.ka_coupon_banner__cd-num {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--ka-token-color-dark, #1c1d23);
	font-variant-numeric: tabular-nums;
}

.ka_coupon_banner__cd-lbl {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	opacity: 0.7;
}

.ka_coupon_banner__countdown.is-expired .ka_coupon_banner__cd-num {
	opacity: 0.4;
}

.ka_coupon_banner__button {
	display: inline-block;
	padding: 12px 28px;
	background: var(--ka-token-color-gold, #f7a83f);
	color: var(--ka-token-color-dark, #1c1d23);
	text-decoration: none;
	border-radius: 6px;
	font-weight: 700;
	transition: opacity 0.2s ease;
}

.ka_coupon_banner__button:hover {
	opacity: 0.85;
}

/* ---------- KA Coupon Input ------------------------------------------ */
.ka_coupon_input__form {
	display: flex;
	gap: 8px;
	align-items: stretch;
	flex-wrap: wrap;
}

.ka_coupon_input__field {
	flex: 1 1 200px;
	padding: 10px 14px;
	border: 1px solid var(--ka-token-color-dark, #1c1d23);
	border-radius: 6px;
	font-size: 1rem;
	background: #ffffff;
}

.ka_coupon_input__field:focus {
	outline: 2px solid var(--ka-token-color-gold, #f7a83f);
	outline-offset: 1px;
}

.ka_coupon_input__button {
	padding: 10px 22px;
	background: var(--ka-token-color-dark, #1c1d23);
	color: #ffffff;
	border: 0;
	border-radius: 6px;
	font-weight: 600;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.ka_coupon_input__button:hover { opacity: 0.85; }

.ka_coupon_input__button:disabled { cursor: not-allowed; opacity: 0.5; }

.ka_coupon_input__message {
	flex: 1 0 100%;
	font-size: 0.9rem;
	min-height: 1.2em;
}

.ka_coupon_input__message.is-success { color: #2e7d32; }
.ka_coupon_input__message.is-error   { color: #c62828; }

.ka_coupon_input__wc-notice {
	font-size: 0.85rem;
	opacity: 0.65;
	margin-top: 8px;
}

/* Hide the WC-inactive notice on real front end (the .wp-admin body is
 * absent there). Editor still sees it. */
body:not(.wp-admin) .ka_coupon_input__wc-notice { display: none; }

/* ---------- KA Gift Card --------------------------------------------- */
.ka_gift_card {
	background: var(--ka-token-color-cream, #fff5e6);
	border-radius: var(--ka-token-radius-md, 12px);
	padding: 28px;
}

.ka_gift_card__head {
	margin-bottom: 16px;
}

.ka_gift_card__title {
	margin: 0 0 6px;
	font-size: 1.4rem;
}

.ka_gift_card__description {
	color: var(--ka-token-color-dark, #1c1d23);
	opacity: 0.85;
}

.ka_gift_card__tiers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
	gap: 8px;
	margin-bottom: 12px;
}

.ka_gift_card__tier {
	padding: 12px 8px;
	background: #ffffff;
	border: 2px solid var(--ka-token-color-dark, #1c1d23);
	border-radius: 6px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.ka_gift_card__tier:hover { background: rgba(28, 29, 35, 0.05); }

.ka_gift_card__tier.is-active {
	background: var(--ka-token-color-dark, #1c1d23);
	color: var(--ka-token-color-cream, #fff5e6);
}

.ka_gift_card__custom-row {
	display: flex;
	gap: 8px;
	align-items: center;
	margin-bottom: 12px;
}

.ka_gift_card__custom-label {
	font-weight: 600;
}

.ka_gift_card__custom-input {
	flex: 1;
	padding: 8px 12px;
	border: 1px solid var(--ka-token-color-dark, #1c1d23);
	border-radius: 6px;
}

.ka_gift_card__action {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ka_gift_card__button {
	padding: 12px 24px;
	background: var(--ka-token-color-gold, #f7a83f);
	color: var(--ka-token-color-dark, #1c1d23);
	border: 0;
	border-radius: 6px;
	font-weight: 700;
	cursor: pointer;
	font-size: 1rem;
}

.ka_gift_card__button--disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.ka_gift_card__notice {
	font-size: 0.85rem;
	opacity: 0.7;
	margin: 0;
}

/* ---------- Gift card balance shortcode ------------------------------ */
.ka-giftcard-balance {
	display: inline-block;
	font-family: var(--ka-token-font-mono, ui-monospace, Menlo, Consolas, monospace);
}

.ka-giftcard-balance--missing,
.ka-giftcard-balance--none {
	color: #c62828;
}

.ka-giftcard-balance--ok {
	color: #2e7d32;
	font-weight: 700;
}
