/* Blink Checkout — frontend drawer v2. (c) Nexus Legion */
:root { --blinkco-accent: #1D4ED8; --blinkco-btntext: #ffffff; --blinkco-ink: #14161b; --blinkco-mut: #6b7280; --blinkco-line: #e7e9ee; --blinkco-soft: #f6f7f9; }
/* Tints derived from the accent. The merchant sets ONE colour and every tinted
   surface — strips, badges, notices — follows it. Nothing is hard-coded to a
   hue, so a green accent no longer leaves blue strips behind. Only the accent
   itself is overridden inline from settings; these recompute from it. */
:root {
	--blinkco-tint-bg: color-mix(in srgb, var(--blinkco-accent) 8%, #fff);
	--blinkco-tint-bg2: color-mix(in srgb, var(--blinkco-accent) 16%, #fff);
	--blinkco-tint-bd: color-mix(in srgb, var(--blinkco-accent) 30%, #fff);
	--blinkco-tint-tx: color-mix(in srgb, var(--blinkco-accent) 78%, #000);
	--blinkco-accent-dk: color-mix(in srgb, var(--blinkco-accent) 62%, #000);
}

#blinkco-drawer, #blinkco-drawer input, #blinkco-drawer button, #blinkco-drawer select, #blinkco-drawer h3, #blinkco-drawer h4, #blinkco-drawer p, #blinkco-drawer span, #blinkco-drawer strong, #blinkco-drawer small, #blinkco-drawer a, #blinkco-drawer label, #blinkco-drawer em {
	font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

.blinkco-hidden { display: none !important; }
html.blinkco-lock, body.blinkco-lock { overflow: hidden !important; overscroll-behavior: none; }

#blinkco-overlay {
	position: fixed; inset: 0; z-index: 2147483646;
	background: rgba(10, 12, 16, .55); backdrop-filter: blur(2px);
	animation: blinkcoFade .18s ease;
}
#blinkco-drawer {
	position: fixed; top: 50%; left: 50%; z-index: 2147483647;
	transform: translate(-50%, -50%);
	width: 430px; max-width: calc(100vw - 24px);
	height: auto; max-height: 92vh; min-height: 480px;
	border-radius: 20px; overflow: hidden;
	background: linear-gradient(180deg, #fff 0%, var(--blinkco-soft) 120px); color: var(--blinkco-ink);
	display: flex; flex-direction: column;
	font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: 14px; line-height: 1.5;
	box-shadow: 0 24px 70px rgba(0,0,0,.28);
	animation: blinkcoPop .2s cubic-bezier(.22,.9,.3,1);
}
@keyframes blinkcoPop { from { transform: translate(-50%, -48%) scale(.97); opacity: 0; } to { transform: translate(-50%, -50%) scale(1); opacity: 1; } }
@keyframes blinkcoFade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { #blinkco-drawer, #blinkco-overlay { animation: none; } }

/* ---------- Header ---------- */
.blinkco-head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 14px 18px; background: #fff; border-bottom: 1px solid var(--blinkco-line);
}
.blinkco-brand { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14.5px; }
.blinkco-bolt {
	color: #fff; font-size: 15px; width: 26px; height: 26px; display: inline-flex;
	align-items: center; justify-content: center; border-radius: 8px;
	background: linear-gradient(135deg, var(--blinkco-accent), color-mix(in srgb, var(--blinkco-accent) 65%, #000));
	box-shadow: 0 3px 8px color-mix(in srgb, var(--blinkco-accent) 40%, transparent);
}
.blinkco-head-right { display: flex; align-items: center; gap: 12px; }
.blinkco-cartmeta { font-size: 12.5px; color: var(--blinkco-mut); font-weight: 600; }
.blinkco-close {
	display: inline-flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; padding: 0; margin: 0;
	border: 0; border-radius: 50%; box-shadow: none;
	background: transparent; color: var(--blinkco-mut);
	font-size: 24px; line-height: 1; cursor: pointer;
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
	transition: background .15s ease, color .15s ease;
}
.blinkco-close:hover { background: rgba(15, 23, 42, .06); color: var(--blinkco-ink); }
.blinkco-close:active { background: rgba(15, 23, 42, .11); }
.blinkco-close:focus-visible { outline: 2px solid var(--blinkco-accent); outline-offset: 2px; }

.blinkco-body { flex: 1; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 16px; }

.blinkco-notice {
	padding: 9px 12px; border-radius: 9px; margin-bottom: 12px; font-size: 13px;
	background: var(--blinkco-tint-bg); color: var(--blinkco-tint-tx);
}
.blinkco-notice[data-type="ok"] { background: var(--blinkco-tint-bg); color: var(--blinkco-tint-tx); }
.blinkco-notice[data-type="error"] { background: #fef2f2; color: #991b1b; }

/* ---------- Screen 1 : login ---------- */
.blinkco-login-hero { text-align: center; padding: 26px 6px 18px; }
.blinkco-login-hero h3 { margin: 0 0 6px; font-size: 18px; font-weight: 600; color: var(--blinkco-ink); }
.blinkco-login-hero p { margin: 0; font-size: 13px; color: var(--blinkco-mut); }

.blinkco-phonefield {
	display: flex; align-items: center; background: #fff;
	border: 1.5px solid var(--blinkco-line); border-radius: 12px; overflow: hidden; margin-bottom: 12px;
}
.blinkco-phonefield:focus-within { border-color: var(--blinkco-accent); }
.blinkco-cc {
	padding: 0 12px 0 14px; font-weight: 700; font-size: 15px; color: var(--blinkco-ink);
	border-right: 1px solid var(--blinkco-line); align-self: stretch; display: flex; align-items: center;
}
.blinkco-phonefield input {
	flex: 1; border: 0 !important; outline: none !important; box-shadow: none !important;
	padding: 14px 14px !important; font-size: 16px !important; letter-spacing: .02em;
	background: #fff !important; color: var(--blinkco-ink) !important; margin: 0 !important;
}

.blinkco-ghostlink {
	display: block; margin: 12px auto 0; background: none; border: 0; cursor: pointer;
	color: var(--blinkco-accent); font-size: 13px; font-weight: 600;
}

#blinkco-otp-wrap { margin-top: 18px; background: #fff; border: 1px solid var(--blinkco-line); border-radius: 12px; padding: 14px; }
.blinkco-otprow { display: flex; gap: 8px; }
.blinkco-otprow input {
	flex: 1; text-align: center; letter-spacing: .35em; font-size: 18px !important; font-weight: 700;
	border: 1.5px solid var(--blinkco-line) !important; border-radius: 10px !important;
	padding: 11px !important; background: #fff !important; color: var(--blinkco-ink) !important; margin: 0 !important;
}
.blinkco-otprow input:focus { border-color: var(--blinkco-accent) !important; outline: none !important; }

.blinkco-trust {
	display: flex; justify-content: center; gap: 16px; margin-top: 26px;
	font-size: 12px; color: var(--blinkco-mut);
}

/* ---------- Screen 2 : checkout ---------- */
.blinkco-sect {
	margin: 18px 2px 9px; font-size: 11px; font-weight: 600; letter-spacing: .06em;
	text-transform: uppercase; color: var(--blinkco-ink); display: flex; align-items: center; gap: 7px;
}
.blinkco-sect::after { content: ""; flex: 1; height: 1px; background: var(--blinkco-line); }

.blinkco-summary { background: #fff; border: 1px solid var(--blinkco-line); border-radius: 14px; overflow: hidden; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.blinkco-sumhead {
	width: 100%; display: flex; justify-content: space-between; align-items: center;
	background: #fff; border: 0; padding: 13px 14px; cursor: pointer; font-size: 13.5px; color: var(--blinkco-ink);
}
.blinkco-sumhead em { font-style: normal; color: var(--blinkco-mut); }
.blinkco-sumtotal { font-weight: 600; font-size: 15px; }
.blinkco-items { padding: 4px 14px 8px; border-top: 1px dashed var(--blinkco-line); }
.blinkco-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px dashed var(--blinkco-line); font-size: 13px; }
.blinkco-item:last-child { border-bottom: 0; }
.blinkco-item img { width: 38px; height: 38px; border-radius: 8px; object-fit: cover; flex: 0 0 auto; }
.blinkco-iname { flex: 1; }

/* Coupon */
.blinkco-coupon { margin-top: 10px; }
.blinkco-couponrow { display: flex; gap: 8px; }
.blinkco-couponrow input {
	flex: 1; background: #fff !important; border: 1.5px solid var(--blinkco-line) !important;
	border-radius: 10px !important; padding: 11px 12px !important; font-size: 13.5px !important;
	color: var(--blinkco-ink) !important; text-transform: uppercase; letter-spacing: .04em; margin: 0 !important; box-shadow: none !important;
}
.blinkco-couponrow input:focus { border-color: var(--blinkco-accent) !important; outline: none !important; }
.blinkco-couponapplied {
	display: flex; justify-content: space-between; align-items: center;
	background: var(--blinkco-tint-bg); border: 1px solid var(--blinkco-tint-bd); color: var(--blinkco-tint-tx);
	border-radius: 10px; padding: 10px 12px; font-size: 13px; font-weight: 600;
}
.blinkco-couponapplied em { font-style: normal; font-weight: 800; }
.blinkco-couponremove { background: none; border: 0; color: var(--blinkco-tint-tx); font-size: 18px; cursor: pointer; line-height: 1; }

/* Address card */
.blinkco-addrcard {
	display: flex; justify-content: space-between; gap: 12px; align-items: flex-start;
	background: #fff; border: 1.5px solid var(--blinkco-accent); border-radius: 12px; padding: 13px 14px;
}
.blinkco-addrtext { display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--blinkco-ink); }
.blinkco-addrtext strong { font-size: 14px; }
.blinkco-addrphone { color: var(--blinkco-mut); font-size: 12.5px; }
.blinkco-changebtn {
	background: none; border: 0; cursor: pointer; flex: 0 0 auto;
	color: var(--blinkco-accent); font-size: 13px; font-weight: 700;
}

/* Address form */
#blinkco-addrform { background: #fff; border: 1px solid var(--blinkco-line); border-radius: 12px; padding: 12px; }
#blinkco-addrform input {
	width: 100%; background: #fff !important; border: 1.5px solid var(--blinkco-line) !important;
	border-radius: 10px !important; padding: 11px 12px !important; font-size: 14px !important;
	color: var(--blinkco-ink) !important; margin: 0 0 8px !important; box-shadow: none !important;
}
#blinkco-addrform input:focus { border-color: var(--blinkco-accent) !important; outline: none !important; }
.blinkco-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 8px; }
.blinkco-grid-3 { grid-template-columns: 1fr 1fr 1fr; }

/* Payment */
.blinkco-paychoice { display: flex; flex-direction: column; gap: 8px; }
.blinkco-payopt {
	display: block; background: #fff; border: 1.5px solid var(--blinkco-line);
	border-radius: 12px; padding: 13px 14px; cursor: pointer; transition: border-color .12s ease;
}
.blinkco-payopt.is-selected { border-color: var(--blinkco-accent); background: color-mix(in srgb, var(--blinkco-accent) 5%, #fff); box-shadow: 0 2px 10px color-mix(in srgb, var(--blinkco-accent) 14%, transparent); }
.blinkco-payrow { display: flex; align-items: center; gap: 10px; }
.blinkco-payopt input { accent-color: var(--blinkco-accent); margin: 0; width: 16px; height: 16px; flex: 0 0 auto; }
.blinkco-paymain { font-weight: 500; font-size: 13.5px; flex: 1; }
.blinkco-paynote { font-size: 12px; color: var(--blinkco-mut); }
.blinkco-savestrip {
	margin: 10px 0 0 26px; color: var(--blinkco-tint-tx);
	background: linear-gradient(90deg, var(--blinkco-tint-bg2), var(--blinkco-tint-bg), var(--blinkco-tint-bg2));
	background-size: 200% 100%;
	font-size: 12.5px; font-weight: 800; border-radius: 8px; padding: 7px 10px; text-align: center;
}
.blinkco-savestrip::before { content: "⚡ "; }
.blinkco-caret { color: var(--blinkco-mut); font-size: 11px; }

/* Totals */
.blinkco-totals { background: #fff; border: 1px solid var(--blinkco-line); border-radius: 14px; padding: 6px 16px 12px; margin-top: 14px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.blinkco-trow { display: flex; justify-content: space-between; align-items: baseline; padding: 7px 0; font-size: 13.5px; color: var(--blinkco-mut); }
.blinkco-trow span:last-child { color: var(--blinkco-ink); font-variant-numeric: tabular-nums; }
.blinkco-ttotal { border-top: 1.5px dashed var(--blinkco-line); margin-top: 6px; padding-top: 11px; font-size: 16px; font-weight: 700; color: var(--blinkco-ink); }
.blinkco-ttotal span:last-child { color: var(--blinkco-accent); font-weight: 800; font-size: 17px; }
.blinkco-paypad { height: 8px; }

/* ---------- Buttons ---------- */
#blinkco-drawer .blinkco-btn {
	border: 0 !important; border-radius: 11px !important; padding: 12px 18px !important;
	font-size: 14px !important; font-weight: 600 !important; line-height: 1.3 !important;
	cursor: pointer !important; transition: filter .12s ease, transform .06s ease, box-shadow .12s ease !important;
	text-transform: none !important; letter-spacing: 0 !important; box-shadow: none;
}
#blinkco-drawer .blinkco-btn:active { transform: scale(.985); }
#blinkco-drawer .blinkco-primary {
	background: linear-gradient(135deg, var(--blinkco-accent), color-mix(in srgb, var(--blinkco-accent) 72%, #000)) !important;
	color: var(--blinkco-btntext, #fff) !important;
	box-shadow: 0 6px 16px color-mix(in srgb, var(--blinkco-accent) 35%, transparent) !important;
}
#blinkco-drawer .blinkco-primary:hover { filter: brightness(1.1); }
#blinkco-drawer .blinkco-primary:disabled { opacity: .65 !important; cursor: wait !important; }
#blinkco-drawer .blinkco-outline { background: #fff !important; border: 1.5px solid var(--blinkco-accent) !important; color: var(--blinkco-accent) !important; }
.blinkco-wide { width: 100%; }
.blinkco-label { display: block; font-size: 12.5px; font-weight: 700; margin: 0 0 8px; color: var(--blinkco-ink); }

/* ---------- Sticky pay bar ---------- */
.blinkco-paybar {
	display: flex; align-items: center; justify-content: space-between; gap: 14px;
	padding: 12px 16px; background: #fff; border-top: 1px solid var(--blinkco-line);
	box-shadow: 0 -6px 18px rgba(0,0,0,.05);
}
.blinkco-paybar-amt { display: flex; flex-direction: column; }
.blinkco-paybar-amt span { font-size: 18px; font-weight: 700; color: var(--blinkco-accent); }
.blinkco-paybar-amt small { font-size: 11px; color: var(--blinkco-mut); }
.blinkco-paybtn { min-width: 170px; }
#blinkco-drawer .blinkco-paybtn { animation: blinkcoPulse 2.2s ease-in-out infinite; }
@keyframes blinkcoPulse { 0%,100% { box-shadow: 0 6px 16px color-mix(in srgb, var(--blinkco-accent) 35%, transparent); } 50% { box-shadow: 0 6px 24px color-mix(in srgb, var(--blinkco-accent) 60%, transparent); } }
@media (prefers-reduced-motion: reduce) { #blinkco-drawer .blinkco-paybtn { animation: none; } }

.blinkco-foot {
	display: flex; justify-content: space-between; align-items: center;
	padding: 11px 18px; background: #fff; border-top: 1px solid var(--blinkco-line);
	font-size: 12px; color: var(--blinkco-mut);
}
.blinkco-powered { font-weight: 700; color: var(--blinkco-accent); }

/* Buy Now */
.blinkco-buynow { margin-left: 8px !important; background: var(--blinkco-accent) !important; color: #fff !important; }

/* Mobile: full-height bottom sheet */
@media (max-width: 640px) {
	#blinkco-drawer {
		top: auto; left: 0; right: 0; bottom: 0; width: 100%; max-width: 100vw;
		transform: none; min-height: 0;
		max-height: 94vh; border-radius: 18px 18px 0 0;
		animation: blinkcoUp .2s ease;
	}
	@keyframes blinkcoUp { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
	.blinkco-paybtn { min-width: 150px; }
}

/* ---------- Success screen (in-app thank you) ---------- */
.blinkco-success { text-align: center; padding: 22px 4px 8px; }
.blinkco-success h3 { margin: 14px 0 6px; font-size: 19px; font-weight: 600; color: var(--blinkco-ink); }
.blinkco-success-sub { margin: 0 0 18px; font-size: 13px; color: var(--blinkco-mut); }
.blinkco-check { width: 74px; height: 74px; margin: 6px auto 0; }
.blinkco-check svg { width: 100%; height: 100%; }
.blinkco-check-c { stroke: var(--blinkco-accent); stroke-width: 3; stroke-dasharray: 160; stroke-dashoffset: 160; animation: blinkcoDraw .5s ease forwards; }
.blinkco-check-m { stroke: var(--blinkco-accent); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 50; stroke-dashoffset: 50; animation: blinkcoDraw .35s ease .45s forwards; }
@keyframes blinkcoDraw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .blinkco-check-c, .blinkco-check-m { animation: none; stroke-dashoffset: 0; } }
.blinkco-orderbox { background: #fff; border: 1px solid var(--blinkco-line); border-radius: 12px; padding: 10px 14px; margin: 0 0 16px; text-align: left; }
.blinkco-orow { display: flex; justify-content: space-between; padding: 5px 0; font-size: 13px; color: var(--blinkco-mut); }
.blinkco-orow strong { color: var(--blinkco-ink); font-weight: 700; }
.blinkco-oitems { border-top: 1px dashed var(--blinkco-line); border-bottom: 1px dashed var(--blinkco-line); margin: 4px 0; padding: 3px 0; }
.blinkco-oitem span:first-child { color: var(--blinkco-ink); }
.blinkco-ototal { font-size: 14.5px; }
.blinkco-ototal strong { font-weight: 800; }

.blinkco-gone { display: none !important; }


/* ---------- Buy Now bar (product page) ---------- */
.blinkco-bn-wrap { position: relative; margin-top: 20px; width: 100%; clear: both; }
.blinkco-bn-strip {
	position: absolute; top: -7px; left: 0; z-index: 2;
	background: linear-gradient(90deg, #ffe9a8, #fff3c9); color: #6b4e00;
	font-size: 8px; font-weight: 600; letter-spacing: .01em;
	padding: 1.5px 6px .5px; border-radius: 6px;
}
button.blinkco-bn-bar, button.blinkco-bn-bar:hover, button.blinkco-bn-bar:focus {
	position: relative; width: 100% !important; height: 44px !important;
	display: flex !important; align-items: center !important; justify-content: center !important; gap: 10px !important;
	border: 0 !important; border-radius: 4px !important; padding: 0 16px !important;
	color: #fff !important; cursor: pointer !important; margin: 0 !important;
	box-shadow: none !important; text-transform: none !important; line-height: 1 !important;
	font-family: "Poppins", -apple-system, sans-serif !important;
	transition: transform .08s ease, filter .12s ease !important;
}
button.blinkco-bn-bar:active { transform: scale(.98); }
button.blinkco-bn-bar:hover { filter: brightness(1.12); }
.blinkco-bn-text { font-size: 12px !important; font-weight: 600 !important; letter-spacing: .04em !important; color: #fff !important; font-family: "Poppins", sans-serif !important; white-space: nowrap; }
.blinkco-bn-icons { display: inline-flex !important; align-items: center !important; gap: 5px !important; float: none !important; margin: 0 !important; }
.blinkco-bn-icons img {
	height: 20px !important; width: auto !important; max-width: 62px !important;
	display: inline-block !important; margin: 0 !important;
	object-fit: contain !important; border-radius: 0 !important;
	image-rendering: auto !important; filter: none !important; opacity: 1 !important;
}
.blinkco-bn-arrow { font-size: 16px; color: #fff; margin-left: 4px; font-weight: 700; }
.blinkco-bn-powered { position: absolute !important; bottom: 4px !important; right: 10px !important; left: auto !important; top: auto !important; font-size: 8px !important; color: #bbb !important; line-height: 1 !important; font-weight: 500 !important; letter-spacing: .02em !important; width: auto !important; }
@media (max-width: 500px) {
	button.blinkco-bn-bar { gap: 8px !important; padding: 0 12px !important; }
	.blinkco-bn-text { font-size: 12px; }
	.blinkco-bn-icons img { max-width: 52px !important; }
	.blinkco-bn-powered { font-size: 7px; right: 8px; bottom: 2px; }
}


/* ---------- Featured coupon chips ---------- */
.blinkco-paystrip {
	background: linear-gradient(90deg, var(--blinkco-accent-dk), var(--blinkco-accent)); color: var(--blinkco-btntext);
	border-radius: 10px; padding: 9px 14px; font-size: 12.5px; font-weight: 600;
	margin: 6px 0 12px; text-align: center;
}
.blinkco-paystrip.blinkco-hidden { display: none; }

.blinkco-sumtitle { font-size: 12.5px; font-weight: 700; color: var(--blinkco-mut); margin: 0 0 8px; letter-spacing: .01em; }
.blinkco-sumtitle em { font-style: normal; color: var(--blinkco-ink); }

.blinkco-featured { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.blinkco-featured:empty { display: none; }
#blinkco-drawer .blinkco-chip {
	display: inline-flex; align-items: center; gap: 6px;
	background: color-mix(in srgb, var(--blinkco-accent) 7%, #fff) !important;
	border: 1.5px dashed var(--blinkco-accent) !important; color: var(--blinkco-accent) !important;
	border-radius: 999px !important; padding: 5px 12px !important; cursor: pointer !important;
	font-size: 11.5px !important; line-height: 1.3 !important; box-shadow: none !important;
}
#blinkco-drawer .blinkco-chip strong { font-weight: 700; letter-spacing: .04em; }
#blinkco-drawer .blinkco-chip span { color: var(--blinkco-tint-tx); font-weight: 500; }
#blinkco-drawer .blinkco-chip:hover { background: color-mix(in srgb, var(--blinkco-accent) 14%, #fff) !important; }

/* Admin media row */


/* ---------- Feature pack ---------- */
.blinkco-eta { background: var(--blinkco-tint-bg); color: var(--blinkco-tint-tx); border-radius: 10px; padding: 9px 12px; font-size: 12.5px; font-weight: 600; margin-top: 10px; }

.blinkco-bumpcard {
	display: flex; align-items: center; gap: 10px; margin-top: 12px;
	background: #fff; border: 1.5px dashed var(--blinkco-accent); border-radius: 12px; padding: 10px 12px;
}
.blinkco-bumpcard img { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; flex: 0 0 auto; }
.blinkco-bumpinfo { flex: 1; display: flex; flex-direction: column; line-height: 1.35; }
.blinkco-bumpinfo small { color: var(--blinkco-accent); font-weight: 600; font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; }
.blinkco-bumpinfo strong { font-size: 13px; font-weight: 600; }
.blinkco-bumpinfo span { font-size: 12.5px; color: var(--blinkco-mut); }
#blinkco-drawer .blinkco-bumpadd { padding: 8px 14px !important; font-size: 12.5px !important; flex: 0 0 auto; }

.blinkco-addrlist { display: flex; flex-direction: column; gap: 7px; margin-bottom: 8px; }
.blinkco-addrlist:empty { display: none; }
#blinkco-drawer .blinkco-addrpick {
	text-align: left; background: #fff !important; border: 1.5px solid var(--blinkco-line) !important;
	border-radius: 11px !important; padding: 10px 13px !important; cursor: pointer !important;
	display: flex; flex-direction: column; gap: 2px; box-shadow: none !important; width: 100%;
}
#blinkco-drawer .blinkco-addrpick:hover { border-color: var(--blinkco-accent) !important; }
#blinkco-drawer .blinkco-addrpick strong { font-size: 13px; font-weight: 600; color: var(--blinkco-ink); }
#blinkco-drawer .blinkco-addrpick span { font-size: 12px; color: var(--blinkco-mut); }

/* Last-chance offer sits above everything in the drawer, pay bar included. */
.blinkco-exit {
	position: absolute; inset: 0; z-index: 70; background: rgba(255,255,255,.97);
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	gap: 12px; padding: 28px; text-align: center; border-radius: inherit;
}
.blinkco-exit p { margin: 0; font-size: 16px; font-weight: 600; color: var(--blinkco-ink); max-width: 300px; }


/* ---------- Buy Now loader (app-style) ---------- */
#blinkco-loader {
	position: fixed; inset: 0; z-index: 1000000; display: none;
	align-items: center; justify-content: center;
	background: rgba(12,14,18,.5); backdrop-filter: blur(3px);
	font-family: "Poppins", -apple-system, sans-serif;
}
.blinkco-loader-card {
	display: flex; flex-direction: column; align-items: center; gap: 12px;
	background: #fff; border-radius: 18px; padding: 26px 34px;
	box-shadow: 0 20px 60px rgba(0,0,0,.28);
}
/* A bare spinning ring says "hung". An indeterminate bar that keeps sweeping
   reads as real progress, and the pulsing dots show it is still alive. */
.blinkco-loader-spin {
	position: relative;
	width: 168px; height: 5px; border-radius: 999px; overflow: hidden;
	background: color-mix(in srgb, var(--blinkco-accent) 16%, #e9ebf0);
}
.blinkco-loader-spin::after {
	content: ""; position: absolute; inset: 0 auto 0 0;
	width: 42%; border-radius: 999px;
	background: linear-gradient(90deg,
		color-mix(in srgb, var(--blinkco-accent) 45%, #fff),
		var(--blinkco-accent),
		color-mix(in srgb, var(--blinkco-accent) 45%, #fff));
	animation: blinkcoSweep 1.15s cubic-bezier(.65, .05, .36, 1) infinite;
}
@keyframes blinkcoSweep {
	0%   { transform: translateX(-100%); }
	100% { transform: translateX(240%); }
}
@media (prefers-reduced-motion: reduce) {
	.blinkco-loader-spin::after { animation-duration: 3s; }
}
.blinkco-loader-txt { font-size: 13.5px; font-weight: 600; color: #14161b; letter-spacing: .01em; }
.blinkco-loader-txt::after {
	content: ""; display: inline-block; width: 1.1em; text-align: left;
	animation: blinkcoDots 1.2s steps(4, end) infinite;
}
@keyframes blinkcoDots {
	0%   { content: ""; }
	25%  { content: "."; }
	50%  { content: ".."; }
	75%  { content: "..."; }
	100% { content: ""; }
}
/* The Place order button while it is working. */
#blinkco-drawer .blinkco-paybtn.is-busy { position: relative; overflow: hidden; }
#blinkco-drawer .blinkco-paybtn.is-busy::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
	transform: translateX(-100%);
	animation: blinkcoBtnSweep 1.25s ease-in-out infinite;
}
@keyframes blinkcoBtnSweep { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { #blinkco-drawer .blinkco-paybtn.is-busy::after { animation: none; } }
@keyframes blinkcoZap {
	0%,100% { transform: scale(1) rotate(0); opacity: 1; }
	50% { transform: scale(1.25) rotate(-8deg); opacity: .75; }
}
@media (prefers-reduced-motion: reduce) { .blinkco-loader-bolt { animation: none; } }


/* ---------- Phone field in address form ---------- */
.blinkco-phoneinline { display: flex; align-items: stretch; margin: 0 0 8px; }
.blinkco-cc2 {
	display: flex; align-items: center; padding: 0 11px; font-weight: 600; font-size: 14px;
	color: var(--blinkco-ink); background: #fff; border: 1.5px solid var(--blinkco-line);
	border-right: 0; border-radius: 10px 0 0 10px;
}
#blinkco-drawer .blinkco-phoneinline input {
	flex: 1; border-radius: 0 10px 10px 0 !important; margin: 0 !important;
}

.blinkco-nopay {
	background: #fef2f2; color: #991b1b; border-radius: 10px;
	padding: 12px 14px; font-size: 13px; text-align: center;
}

/* ===== Brand logo in header ===== */
.blinkco-brand .blinkco-logo {
	max-height: 34px; width: auto; max-width: 150px; display: block;
	object-fit: contain; border-radius: 6px;
}

/* ===== Coupons "View All" row ===== */
.blinkco-couponhead {
	display: flex; align-items: center; justify-content: space-between; margin-top: 10px;
}
.blinkco-couponhead.blinkco-hidden { display: none; }
.blinkco-cavail { font-size: 12.5px; color: var(--blinkco-mut); display: inline-flex; align-items: center; gap: 6px; }
.blinkco-cavail em { font-style: normal; font-weight: 700; color: var(--blinkco-ink); }
#blinkco-drawer .blinkco-viewall {
	border: 0; background: transparent; color: var(--blinkco-accent);
	font-weight: 700; font-size: 12.5px; cursor: pointer; padding: 2px 4px;
}

/* ===== Bottom sheets (coupons / feedback) ===== */
/* Sheets are direct children of the drawer and sit above the pay bar, so the
   whole card — including its buttons — is always reachable. */
.blinkco-sheet {
	position: absolute; inset: 0; z-index: 60; display: flex; flex-direction: column;
	justify-content: flex-end; background: rgba(0,0,0,.38);
}
.blinkco-sheet.blinkco-hidden { display: none; }
.blinkco-sheet-card {
	position: relative; background: #fff; border-radius: 18px 18px 0 0;
	max-height: 84%; overflow-y: auto; overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: 18px 18px calc(18px + env(safe-area-inset-bottom, 0px));
	box-shadow: 0 -8px 30px rgba(0,0,0,.18);
	animation: blinkcoSheetUp .22s ease;
}
@keyframes blinkcoSheetUp { from { transform: translateY(40px); opacity: .5; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .blinkco-sheet-card { animation: none; } }
/* Close lives INSIDE the card, pinned top-right and sticky, so it is reachable
   no matter how far the card is scrolled. It used to float 46px ABOVE the card,
   which put it off the card entirely — and out of reach once the list was long. */
#blinkco-drawer .blinkco-sheet-close {
	/* Block-level + margin-left:auto right-aligns it on its own line, so the
	   title can never overlap it (a float would not be avoided by the flex
	   title row). Sticky keeps it in view as the card scrolls. */
	position: sticky; top: 0;
	display: flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; min-height: 0; margin: -4px -4px -6px auto; padding: 0;
	border: 0; border-radius: 50%; background: var(--blinkco-soft); color: var(--blinkco-ink);
	font-size: 21px; font-weight: 400; line-height: 1; text-transform: none;
	cursor: pointer; z-index: 2;
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
	transition: background .15s ease;
}
#blinkco-drawer .blinkco-sheet-close:hover { background: #e9ebf0; }
#blinkco-drawer .blinkco-sheet-close:focus-visible { outline: 2px solid var(--blinkco-accent); outline-offset: 2px; }
.blinkco-sheet-title { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; margin-bottom: 12px; color: var(--blinkco-ink); }

/* Coupon sheet tabs + offers */
.blinkco-ctabs { display: flex; gap: 8px; margin: 12px 0 14px; }
#blinkco-drawer .blinkco-ctab {
	border: 1px solid var(--blinkco-line); background: #fff; border-radius: 20px;
	padding: 6px 14px; font-size: 12.5px; cursor: pointer; color: var(--blinkco-mut);
}
#blinkco-drawer .blinkco-ctab.is-active {
	border-color: var(--blinkco-accent); color: var(--blinkco-accent); font-weight: 700;
	background: color-mix(in srgb, var(--blinkco-accent) 8%, #fff);
}
.blinkco-csec-title { font-size: 11.5px; font-weight: 700; color: var(--blinkco-mut); text-transform: uppercase; letter-spacing: .05em; margin: 14px 0 8px; }
.blinkco-coffer { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid var(--blinkco-line); border-radius: 12px; padding: 12px; margin-bottom: 8px; }
.blinkco-coffer-code { font-weight: 700; letter-spacing: .04em; color: var(--blinkco-ink); }
.blinkco-coffer small { display: block; color: var(--blinkco-mut); font-size: 11.5px; margin-top: 2px; }

/* Feedback survey */
.blinkco-fbhead { font-size: 15.5px; font-weight: 700; color: var(--blinkco-ink); margin: 0 0 4px; }
.blinkco-fbhead b { color: #c2410c; }
.blinkco-fbsub { font-size: 12.5px; color: var(--blinkco-mut); margin: 0 0 12px; }
.blinkco-fbopt { display: flex; align-items: center; gap: 10px; padding: 11px 2px; border-bottom: 1px solid var(--blinkco-line); font-size: 13px; cursor: pointer; color: var(--blinkco-ink); }
.blinkco-fbopt input { width: 16px; height: 16px; accent-color: var(--blinkco-accent); }
.blinkco-fbrow { display: flex; gap: 10px; margin-top: 16px; }
.blinkco-fbrow .blinkco-btn { flex: 1; }
