/* ==========================================================================
   KS Smart Offers — public/storefront styles
   ========================================================================== */

/* ----- Offer bar ----- */
.ksop-offer-bar {
	position: relative;
	width: 100%;
	padding: 10px 50px 10px 18px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	z-index: 999;
}
.ksop-offer-bar.is-sticky {
	position: sticky; top: 0;
	box-shadow: 0 1px 0 rgba(0,0,0,.08);
}
.ksop-offer-bar.is-hidden { display: none !important; }
.ksop-bar-inner { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: center; }
.ksop-bar-link { text-decoration: underline; text-underline-offset: 3px; }
.ksop-bar-timer {
	display: inline-block;
	font-variant-numeric: tabular-nums;
	padding: 2px 8px;
	background: rgba(255,255,255,.18);
	border-radius: 6px;
	font-size: .92em;
}
.ksop-bar-close {
	position: absolute; top: 50%; right: 14px; transform: translateY(-50%);
	background: transparent; border: none; color: inherit; opacity: .7;
	font-size: 22px; line-height: 1; cursor: pointer; padding: 2px 8px;
}
.ksop-bar-close:hover { opacity: 1; }

/* ----- Bulk discount table ----- */
.ksop-bulk-table {
	margin: 18px 0;
	padding: 16px;
	border: 1px solid #e7e5e4;
	border-radius: 12px;
	background: #fafaf9;
}
.ksop-bulk-table h4 {
	margin: 0 0 12px;
	font-size: 15px;
	font-weight: 700;
	color: #1c1917;
	letter-spacing: -.01em;
}
.ksop-bulk-table table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ksop-bulk-table th, .ksop-bulk-table td {
	text-align: left; padding: 10px 12px; border-bottom: 1px solid #e7e5e4;
}
.ksop-bulk-table thead th {
	font-size: 11px; letter-spacing: .05em; text-transform: uppercase;
	color: #78716c; font-weight: 600;
}
.ksop-bulk-table tbody tr:last-child td { border-bottom: none; }
.ksop-savings-chip {
	display: inline-block; padding: 3px 9px;
	background: #fee2e2; color: #b91c1c;
	border-radius: 999px;
	font-size: 12px; font-weight: 700;
}

/* ----- Urgency block (product page) ----- */
.ksop-urgency-block {
	display: flex; flex-direction: column; gap: 7px;
	margin: 14px 0 18px;
	padding: 14px 16px;
	background: linear-gradient(135deg, #fff7ed 0%, #fef2f2 100%);
	border: 1px solid #fed7aa;
	border-radius: 12px;
	font-size: 14px;
	line-height: 1.45;
}
.ksop-urgency-item { display: flex; align-items: center; gap: 8px; font-weight: 600; color: #44403c; }
.ksop-urgency-item.ksop-sold      { color: #c2410c; }
.ksop-urgency-item.ksop-lowstock  { color: #b45309; }
.ksop-urgency-item.ksop-viewers   { color: #0284c7; }
.ksop-urgency-item.ksop-countdown { color: #b91c1c; font-variant-numeric: tabular-nums; }
.ksop-urgency-item .ksop-timer {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-weight: 700;
	background: rgba(185,28,28,.08);
	padding: 2px 6px; border-radius: 5px;
	margin-left: 4px;
}
.ksop-urgency-disclosure {
	font-size: 11px; color: #a8a29e; margin-top: 4px; font-style: italic;
}

/* ----- Cart goal progress (cart + checkout) ----- */
.ksop-cart-goal {
	margin: 0 0 18px;
	padding: 16px 18px;
	background: linear-gradient(135deg, #fff7ed 0%, #ffffff 100%);
	border: 1px solid #fed7aa;
	border-radius: 12px;
}
.ksop-goal-msg {
	font-size: 14px; font-weight: 600; color: #1c1917;
	margin-bottom: 10px;
}
.ksop-goal-bar {
	width: 100%; height: 10px;
	background: #fee2e2; border-radius: 999px;
	overflow: hidden; position: relative;
}
.ksop-goal-fill {
	height: 100%;
	background: linear-gradient(90deg, #ea580c, #b91c1c);
	transition: width .35s ease;
	border-radius: 999px;
}
.ksop-goal-unlocked { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ksop-goal-chip {
	padding: 5px 12px;
	background: #16a34a; color: #fff;
	font-size: 12px; font-weight: 700;
	border-radius: 999px;
}

/* ----- Total savings row in cart totals ----- */
.ksop-total-savings .ksop-savings-amount {
	color: #16a34a; font-weight: 700;
}

/* ----- Cart line strikethrough + savings ----- */
.ksop-strike { color: #a8a29e; }
.ksop-new-price { font-weight: 700; color: #c2410c; }
.ksop-line-savings {
	display: block; margin-top: 4px;
	font-size: 12px; font-weight: 600; color: #16a34a;
}

/* ----- Free gift chip on cart line ----- */
.ksop-gift-chip {
	display: inline-block;
	padding: 2px 9px;
	margin-left: 8px;
	font-size: 11px; font-weight: 700; letter-spacing: .04em;
	color: #fff;
	border-radius: 999px;
	vertical-align: middle;
}
.ksop-gift-fixed {
	display: inline-block;
	padding: 4px 10px;
	background: #f0fdf4; color: #16a34a;
	border: 1px solid #bbf7d0;
	border-radius: 8px;
	font-size: 13px; font-weight: 600;
}

/* ----- Product/shop badge stack ----- */
.ksop-badge-stack {
	position: absolute;
	display: flex; flex-direction: column; gap: 5px;
	z-index: 5;
	pointer-events: none;
}
.ksop-pos-top-left     { top: 10px; left: 10px; align-items: flex-start; }
.ksop-pos-top-right    { top: 10px; right: 10px; align-items: flex-end; }
.ksop-pos-bottom-left  { bottom: 10px; left: 10px; align-items: flex-start; }
.ksop-pos-bottom-right { bottom: 10px; right: 10px; align-items: flex-end; }
.ksop-badge {
	display: inline-block;
	padding: 4px 10px;
	font-size: 12px; font-weight: 700; letter-spacing: .04em;
	border-radius: 8px;
	background: #e11d48; color: #fff;
	box-shadow: 0 2px 6px rgba(0,0,0,.18);
	white-space: nowrap;
}

/* Make sure the WC product wrapper is positioned so badges can absolutely position */
.woocommerce ul.products li.product, .woocommerce div.product { position: relative; }

/* ==========================================================================
   Combo deal card (single product page + shortcode)
   ========================================================================== */
.ksop-combo-card {
	margin: 18px 0;
	padding: 18px 20px;
	border: 1px solid #fed7aa;
	border-radius: 14px;
	background: linear-gradient(135deg, #ffffff 0%, #fff7ed 100%);
	box-shadow: 0 4px 14px -6px rgba(234, 88, 12, 0.18);
}
.ksop-combo-card__title {
	font-size: 17px;
	font-weight: 700;
	color: #1c1917;
	margin-bottom: 14px;
	letter-spacing: -.01em;
}
.ksop-combo-card__items {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 14px;
	margin-bottom: 16px;
}
.ksop-combo-item {
	display: flex; flex-direction: column; align-items: center; text-align: center;
	padding: 12px 10px;
	background: #ffffff;
	border: 1px solid #f5f5f4;
	border-radius: 10px;
	font-size: 13px;
}
.ksop-combo-thumb {
	width: 64px !important; height: 64px !important;
	object-fit: cover;
	border-radius: 8px;
	margin-bottom: 8px;
}
.ksop-combo-item__name {
	font-weight: 600; color: #44403c;
	margin-bottom: 4px;
	line-height: 1.3;
	font-size: 12px;
}
.ksop-combo-item__price {
	font-size: 12px; color: #78716c;
}
.ksop-combo-card__footer {
	display: flex; align-items: center; justify-content: space-between;
	flex-wrap: wrap; gap: 12px;
	padding-top: 14px;
	border-top: 1px solid #fed7aa;
}
.ksop-combo-prices { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ksop-combo-final {
	font-size: 22px; font-weight: 700;
	color: #c2410c; letter-spacing: -.01em;
}
.ksop-combo-btn {
	display: inline-block;
	padding: 12px 24px;
	background: linear-gradient(120deg, #ea580c 0%, #b91c1c 100%);
	color: #fff !important;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .02em;
	text-decoration: none !important;
	border-radius: 10px;
	box-shadow: 0 6px 18px -6px rgba(234,88,12,.45);
	transition: transform .15s ease, box-shadow .25s ease;
}
.ksop-combo-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px -8px rgba(234,88,12,.55);
	color: #fff !important;
}
