/* ============================================================================
   Linkin Solution — Winning Products
   "The Research Vault" — a premium research-dossier aesthetic built for a
   paid intelligence product: deep ink-navy fields, a brass "verified" accent,
   warm paper surfaces, a serif display face for authority, monospace for
   real data figures (revenue, BSR, prices) so the numbers read as a live
   data feed rather than decoration. Every class name below is unchanged
   from the previous stylesheet — only the values change — so nothing in
   class-lswp-shortcodes.php or frontend.js needs to know this happened.
   ============================================================================ */

:root {
	--lswp-ink:        #0A1626;
	--lswp-navy:       #0F2E52;
	--lswp-navy-2:     #16406D;
	--lswp-navy-3:     #1E5389;
	--lswp-brass:      #B8843A;
	--lswp-brass-2:    #9C6C2B;
	--lswp-brass-light:#E7C583;
	--lswp-brass-pale: #F6E9CE;
	--lswp-teal:       #128A73;
	--lswp-teal-light: #E1F3EE;
	--lswp-paper:      #FBF9F4;
	--lswp-paper-alt:  #F3EEE3;
	--lswp-card:       #FFFFFF;
	--lswp-ink-1:      #1A2333;
	--lswp-ink-2:      #4E5768;
	--lswp-ink-3:      #838C9B;
	--lswp-line:       #E6E0D2;
	--lswp-line-2:     #EEE9DC;
	--lswp-danger:     #A23B2E;
	--lswp-danger-light:#FBEAE6;

	--lswp-r-sm:  7px;
	--lswp-r-md:  11px;
	--lswp-r-lg:  18px;
	--lswp-r-pill: 999px;

	--lswp-shadow-sm: 0 1px 2px rgba(15,46,82,.07), 0 1px 1px rgba(15,46,82,.05);
	--lswp-shadow-md: 0 10px 26px rgba(15,46,82,.11), 0 2px 6px rgba(15,46,82,.06);
	--lswp-shadow-lg: 0 24px 56px rgba(8,17,30,.22), 0 6px 18px rgba(8,17,30,.12);
	--lswp-shadow-navy: 0 16px 38px rgba(9,26,46,.34);

	--lswp-font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
	--lswp-font-body: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--lswp-font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

	--lswp-ease: cubic-bezier(.22,.9,.3,1);
}

/* Fine film-grain, applied via ::after on a few large dark surfaces —
   pure CSS/SVG, no image request, no JS. Depth without a busy texture. */
.lswp-grain { position: relative; }
.lswp-grain::after {
	content: '';
	position: absolute; inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	opacity: .05;
	mix-blend-mode: overlay;
	pointer-events: none;
}

.lswp-listing, .lswp-single, .lswp-countries {
	font-family: var(--lswp-font-body);
	color: var(--lswp-ink-1);
	line-height: 1.5;
}

/* ---------- Filters ---------- */
.lswp-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 26px; }
.lswp-filter-select {
	padding: 10px 14px;
	border: 1.5px solid var(--lswp-line);
	border-radius: var(--lswp-r-sm);
	background: var(--lswp-card);
	font-family: inherit;
	font-size: 14px;
	color: var(--lswp-ink-1);
	transition: border-color .15s var(--lswp-ease);
}
.lswp-filter-select:hover { border-color: var(--lswp-navy-3); }
.lswp-clear { font-size: 13px; color: var(--lswp-ink-3); text-decoration: underline; text-underline-offset: 2px; }
.lswp-clear:hover { color: var(--lswp-navy); }

/* ---------- Buttons ---------- */
.lswp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 11px 22px;
	border-radius: var(--lswp-r-sm);
	font-family: var(--lswp-font-body);
	font-weight: 700;
	font-size: 13.5px;
	letter-spacing: .01em;
	text-decoration: none;
	cursor: pointer;
	border: 1.5px solid transparent;
	transition: transform .15s var(--lswp-ease), box-shadow .15s var(--lswp-ease), background .15s var(--lswp-ease), border-color .15s var(--lswp-ease);
}
.lswp-btn:hover { text-decoration: none; transform: translateY(-1px); }
.lswp-btn:active { transform: translateY(0); }
.lswp-btn-solid {
	background: linear-gradient(155deg, var(--lswp-teal) 0%, #0F7864 100%);
	color: #fff;
	box-shadow: 0 6px 16px rgba(18,138,115,.28);
}
.lswp-btn-solid:hover { box-shadow: 0 10px 22px rgba(18,138,115,.36); }
.lswp-btn-outline { background: transparent; color: var(--lswp-navy); border-color: var(--lswp-navy); }
.lswp-btn-outline:hover { background: var(--lswp-navy); color: #fff; }
.lswp-btn-lg { padding: 16px 34px; font-size: 15.5px; letter-spacing: .02em; }

/* ---------- Grid / Cards ---------- */
.lswp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(272px, 1fr)); gap: 24px; }
.lswp-card {
	display: block;
	background: var(--lswp-card);
	border: 1px solid var(--lswp-line-2);
	border-radius: var(--lswp-r-md);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: var(--lswp-shadow-sm);
	transition: box-shadow .28s var(--lswp-ease), transform .28s var(--lswp-ease), border-color .28s var(--lswp-ease);
	position: relative;
}
.lswp-card::before {
	/* Brass top rule that draws in on hover — a quiet "seal of approval"
	   flourish rather than a generic lift-and-shadow hover. */
	content: '';
	position: absolute; top: 0; left: 0; right: 0; height: 3px;
	background: linear-gradient(90deg, var(--lswp-brass), var(--lswp-brass-light));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .32s var(--lswp-ease);
	z-index: 1;
}
.lswp-card:hover {
	box-shadow: var(--lswp-shadow-md);
	transform: translateY(-4px);
	border-color: var(--lswp-line);
	text-decoration: none; color: inherit;
}
.lswp-card:hover::before { transform: scaleX(1); }
.lswp-card-media { position: relative; aspect-ratio: 4/3; background: var(--lswp-paper-alt); overflow: hidden; }
.lswp-card-img { width: 100%; height: 100%; object-fit: cover; }

/* Blurred cover photo for non-buyers (see maybe_blur_thumbnail() in
   class-lswp-shortcodes.php) — a clear product photo alone is enough
   to reverse-image-search or screenshot the exact product, so it gets
   the same "never shown to a non-buyer" treatment as every text field.
   Scaled up slightly so the blur never shows a sharp, un-blurred edge. */
.lswp-img-blur-wrap { display: block; width: 100%; height: 100%; position: relative; overflow: hidden; }
.lswp-blur-img {
	filter: blur(20px);
	transform: scale(1.15);
	user-select: none;
	pointer-events: none;
}
.lswp-img-blur-lock {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	width: 54px; height: 54px;
	border-radius: 50%;
	background: rgba(10,22,38,.68);
	border: 1px solid rgba(231,197,131,.5);
	color: var(--lswp-brass-light);
	display: flex; align-items: center; justify-content: center;
	font-size: 22px;
	pointer-events: none;
}

.lswp-card-lock {
	position: absolute; top: 10px; right: 10px;
	font-family: var(--lswp-font-body);
	font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
	padding: 5px 11px; border-radius: var(--lswp-r-pill);
}
.lswp-card-lock.lswp-locked { background: rgba(10,22,38,.86); color: var(--lswp-brass-light); }
.lswp-card-lock.lswp-unlocked { background: var(--lswp-teal); color: #fff; }
.lswp-card-body { padding: 18px 20px 20px; }
.lswp-card-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.lswp-tag { font-size: 10.5px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; padding: 4px 10px; border-radius: var(--lswp-r-pill); }
.lswp-tag-market { background: #E7EEF5; color: var(--lswp-navy); }
.lswp-tag-model { background: var(--lswp-brass-pale); color: var(--lswp-brass-2); }
.lswp-card-title {
	font-family: var(--lswp-font-display);
	font-size: 19px; font-weight: 600; margin: 0 0 10px;
	color: var(--lswp-ink-1); line-height: 1.32;
}
.lswp-card-stat { display: flex; justify-content: space-between; align-items: baseline; font-size: 12.5px; color: var(--lswp-ink-3); padding: 6px 0; border-top: 1px solid var(--lswp-line-2); }
.lswp-card-stat strong { color: var(--lswp-ink-1); font-family: var(--lswp-font-mono); font-weight: 600; font-size: 13px; }
.lswp-card-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; }
.lswp-card-price { font-weight: 700; color: var(--lswp-navy); font-size: 17px; font-family: var(--lswp-font-mono); }
.lswp-card-footer .lswp-btn { padding: 9px 16px; font-size: 12.5px; }
.lswp-empty { padding: 48px; text-align: center; color: var(--lswp-ink-3); font-family: var(--lswp-font-display); font-size: 17px; }

/* ---------- Single view ---------- */
.lswp-single-tags { display: flex; gap: 8px; margin-bottom: 16px; }
.lswp-teaser-summary { font-size: 16.5px; color: var(--lswp-ink-2); line-height: 1.65; margin-bottom: 24px; }

.lswp-stat-row { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 28px; }
.lswp-stat-box {
	flex: 1 1 200px;
	background: var(--lswp-paper-alt);
	border-radius: var(--lswp-r-md);
	padding: 16px 20px;
	border-left: 3px solid var(--lswp-teal);
}
.lswp-stat-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--lswp-ink-3); margin-bottom: 5px; }
.lswp-stat-value { font-size: 19px; color: var(--lswp-navy); font-family: var(--lswp-font-mono); font-weight: 600; }

.lswp-lock-panel {
	position: relative;
	overflow: hidden;
	background: radial-gradient(120% 140% at 20% 0%, var(--lswp-navy-3) 0%, var(--lswp-navy) 45%, var(--lswp-ink) 100%);
	color: #fff;
	border-radius: var(--lswp-r-lg);
	padding: 52px 34px;
	text-align: center;
	margin-top: 12px;
	box-shadow: var(--lswp-shadow-navy);
}
.lswp-lock-panel > * { position: relative; z-index: 1; }
.lswp-lock-icon {
	font-size: 26px; margin-bottom: 16px;
	display: inline-flex; align-items: center; justify-content: center;
	width: 54px; height: 54px; border-radius: 50%;
	background: rgba(231,197,131,.14);
	border: 1px solid rgba(231,197,131,.35);
	color: var(--lswp-brass-light);
	position: relative; z-index: 1;
}
.lswp-lock-panel h3 { font-family: var(--lswp-font-display); font-weight: 600; font-size: 27px; margin: 0 0 12px; color: #fff; }
.lswp-lock-panel p { color: #C7D6E6; max-width: 520px; margin: 0 auto 24px; line-height: 1.65; font-size: 15px; }
.lswp-lock-panel .lswp-btn-solid {
	background: linear-gradient(155deg, var(--lswp-brass-light), var(--lswp-brass));
	color: var(--lswp-ink);
	box-shadow: 0 8px 22px rgba(184,132,58,.4);
}
.lswp-lock-panel .lswp-btn-solid:hover { box-shadow: 0 12px 28px rgba(184,132,58,.5); }
.lswp-lock-panel .lswp-btn-outline { color: #fff; border-color: rgba(255,255,255,.55); }
.lswp-lock-panel .lswp-btn-outline:hover { background: rgba(255,255,255,.12); color: #fff; }

.lswp-unlocked-badge {
	display: inline-flex; align-items: center; gap: 6px;
	background: var(--lswp-teal-light); color: var(--lswp-teal);
	font-weight: 700; font-size: 12.5px; letter-spacing: .02em; text-transform: uppercase;
	padding: 7px 16px; border-radius: var(--lswp-r-pill); margin-bottom: 20px;
}

.lswp-section-title {
	font-family: var(--lswp-font-display);
	font-weight: 600;
	font-size: 20px; color: var(--lswp-ink-1);
	background: none;
	padding: 0;
	margin: 38px 0 18px;
	position: relative;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--lswp-line);
}
.lswp-section-title::before {
	content: '';
	position: absolute; left: 0; bottom: -2px;
	width: 46px; height: 2px;
	background: var(--lswp-brass);
}
.lswp-kv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px 26px; margin-bottom: 10px; }
.lswp-kv-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--lswp-ink-3); margin-bottom: 4px; }
.lswp-kv-value { font-size: 15.5px; color: var(--lswp-ink-1); font-family: var(--lswp-font-mono); font-weight: 500; }
.lswp-keywords { color: var(--lswp-ink-2); font-size: 14px; }

.lswp-table { width: 100%; border-collapse: collapse; margin: 12px 0 22px; }
.lswp-table th { text-align: left; background: var(--lswp-paper-alt); padding: 11px 13px; font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--lswp-navy); }
.lswp-table td { padding: 11px 13px; border-bottom: 1px solid var(--lswp-line-2); font-size: 14px; font-family: var(--lswp-font-mono); }
.lswp-table td:first-child { font-family: var(--lswp-font-body); font-weight: 600; }

.lswp-text-block { color: var(--lswp-ink-2); line-height: 1.75; }

.lswp-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.lswp-gallery-img { width: 100%; border-radius: var(--lswp-r-sm); }

.lswp-downloads { background: var(--lswp-paper-alt); border-radius: var(--lswp-r-md); padding: 30px; margin-top: 34px; text-align: center; border: 1px solid var(--lswp-line); }
.lswp-downloads .lswp-btn { margin: 0 6px 10px; }
.lswp-download-note { font-size: 12.5px; color: var(--lswp-ink-3); margin-top: 14px; }

/* =====================================================================
   Locked preview — "classified report" hook.
   Real field LABELS, real counts, but every value is a blurred
   placeholder generated server-side. Nothing sensitive is ever in
   this markup — see class-lswp-shortcodes.php render_locked_preview().
   ===================================================================== */

.lswp-locked-report { position: relative; margin-top: 10px; }

.lswp-locked-ribbon {
	display: inline-flex; align-items: center; gap: 7px;
	background: var(--lswp-ink); color: var(--lswp-brass-light);
	font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	padding: 8px 16px; border-radius: var(--lswp-r-pill); margin-bottom: 26px;
	border: 1px solid rgba(231,197,131,.3);
}

.lswp-locked-section { margin-bottom: 8px; }

.lswp-section-title-locked {
	background: none; color: var(--lswp-ink-1);
	border-bottom-color: var(--lswp-line-2);
}
.lswp-section-title-locked::before { background: var(--lswp-ink-3); opacity: .4; }
.lswp-field-count {
	font-size: 10.5px; font-weight: 700; background: var(--lswp-paper-alt);
	color: var(--lswp-ink-3); padding: 3px 10px; border-radius: var(--lswp-r-pill); margin-left: 10px;
	vertical-align: middle; text-transform: none; letter-spacing: 0;
}

.lswp-kv-grid-locked { margin-bottom: 28px; }
.lswp-kv-locked { display: flex; flex-direction: column; gap: 8px; }

/* Blurred data — the core "there's real data here" cue. Real-shaped
   synthetic text (see redacted_number()/redacted_label()/
   redacted_sentence() in class-lswp-shortcodes.php), rendered as
   actual text and blurred with CSS, not an empty shimmering skeleton
   bar — a shimmer reads as "still loading"; a blurred number or
   sentence reads unmistakably as "there's something here, unlock to
   read it." Not selectable/copyable, and it's synthetic either way. */
.lswp-blur-text {
	filter: blur(5px);
	-webkit-filter: blur(5px);
	user-select: none;
	-webkit-user-select: none;
	pointer-events: none;
	color: var(--lswp-ink-2);
	font-weight: 600;
	font-family: var(--lswp-font-mono);
	font-size: 14.5px;
}
.lswp-kv-locked .lswp-blur-text { display: inline-block; }
.lswp-redacted-paragraph { display: flex; flex-direction: column; gap: 6px; }
.lswp-blur-line { margin: 0; }
.lswp-blur-line .lswp-blur-text { font-family: var(--lswp-font-body); font-size: 14.5px; font-weight: 400; line-height: 1.55; }

.lswp-locked-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.lswp-chip-locked {
	display: inline-block;
	background: var(--lswp-paper-alt);
	border: 1px solid var(--lswp-line-2);
	border-radius: var(--lswp-r-pill);
	padding: 6px 14px;
}
.lswp-chip-locked .lswp-blur-text { font-size: 12.5px; color: var(--lswp-ink-2); }
.lswp-locked-caption { font-size: 12.5px; color: var(--lswp-ink-3); margin: 6px 0 0; }

.lswp-table-locked td { padding-top: 12px; padding-bottom: 12px; }
.lswp-table-locked .lswp-blur-text { font-size: 13px; }

.lswp-gallery-locked-tile {
	aspect-ratio: 4/3;
	border-radius: var(--lswp-r-sm);
	background: linear-gradient(150deg, var(--lswp-paper-alt), #EAE4D5);
	display: flex; align-items: center; justify-content: center;
	font-size: 19px; color: var(--lswp-ink-3);
	border: 1px dashed var(--lswp-line);
}

.lswp-stat-price { border-left-color: var(--lswp-brass); }
.lswp-stat-price .lswp-stat-value { color: var(--lswp-brass-2); }

.lswp-btn-glow {
	position: relative;
	box-shadow: 0 0 0 0 rgba(184,132,58,.5);
	animation: lswpGlow 2.8s ease-in-out infinite;
}
@keyframes lswpGlow {
	0%, 100% { box-shadow: 0 0 0 0 rgba(184,132,58,.42); }
	50% { box-shadow: 0 0 0 12px rgba(184,132,58,0); }
}

/* =====================================================================
   Motion: scroll-reveal (progressive enhancement — see frontend.js).
   Content is fully visible by default; JS only adds the entrance
   animation, so nothing is ever hidden if JavaScript fails to load.
   ===================================================================== */
.lswp-reveal-item {
	opacity: 0; transform: translateY(18px);
	transition: opacity .5s var(--lswp-ease), transform .5s var(--lswp-ease);
}
.lswp-reveal-item.lswp-reveal-in,
.lswp-reveal-static .lswp-reveal-item {
	opacity: 1; transform: none;
}

/* Card hover tilt (JS sets the transform; this just makes it smooth). */
.lswp-card { transition: transform .22s var(--lswp-ease), box-shadow .28s var(--lswp-ease), border-color .28s var(--lswp-ease); will-change: transform; }
.lswp-card:hover, .lswp-card:focus-visible { cursor: pointer; }

/* Accessibility: visible focus rings everywhere interactive. */
.lswp-btn:focus-visible,
.lswp-filter-select:focus-visible,
.lswp-card:focus-visible,
.lswp-country-card:focus-visible,
.lswp-model-pill:focus-visible {
	outline: 2px solid var(--lswp-brass);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.lswp-btn-glow, .lswp-card {
		animation: none !important;
		transition: none !important;
	}
	.lswp-reveal-item { opacity: 1; transform: none; }
}

/* =====================================================================
   Upgrade pack: freshness badge, social proof, exclusivity/sold-out,
   related products, compare mode.
   ===================================================================== */

/* ---------- Freshness badge ---------- */
.lswp-freshness {
	display: inline-flex; align-items: center; gap: 5px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .01em;
	color: var(--lswp-teal);
	background: var(--lswp-teal-light);
	padding: 5px 12px;
	border-radius: var(--lswp-r-pill);
	margin: 2px 0 16px;
}
.lswp-freshness-stale { color: #8A5A16; background: #FBEED9; }
.lswp-freshness-compact { font-size: 10.5px; padding: 4px 10px; margin: 0 0 10px; }

/* ---------- Social proof + sold-out note (inside lock panel) ---------- */
.lswp-social-proof {
	background: rgba(231,197,131,.12);
	border: 1px solid rgba(231,197,131,.3);
	border-radius: var(--lswp-r-pill);
	display: inline-block;
	padding: 8px 18px;
	font-size: 13px;
	color: var(--lswp-brass-light) !important;
	margin: 0 0 20px !important;
}
.lswp-sold-out-note { color: var(--lswp-brass-light) !important; font-size: 13.5px; margin: 0 0 16px !important; }

/* ---------- Sold-out state (cards) ---------- */
.lswp-card-lock.lswp-sold-out { background: var(--lswp-danger); color: #fff; }
.lswp-card-wrap.lswp-is-sold-out .lswp-card { opacity: .68; }
.lswp-card-wrap.lswp-is-sold-out .lswp-card-img { filter: grayscale(.4); }
.lswp-btn[aria-disabled="true"] {
	background: var(--lswp-line-2); color: var(--lswp-ink-3); border-color: var(--lswp-line-2);
	cursor: not-allowed; pointer-events: none; box-shadow: none;
}

/* ---------- Related products ---------- */
.lswp-related-grid { margin-top: 10px; }

/* ---------- Compare mode ---------- */
.lswp-card-wrap { position: relative; }
.lswp-compare-check {
	position: absolute; top: 10px; left: 10px; z-index: 2;
	background: rgba(255,255,255,.96); color: var(--lswp-ink-1);
	font-size: 11.5px; font-weight: 700; padding: 6px 11px 6px 9px;
	border-radius: var(--lswp-r-pill); display: flex; align-items: center; gap: 6px;
	cursor: pointer; box-shadow: var(--lswp-shadow-sm);
	border: 1px solid var(--lswp-line-2);
}
.lswp-compare-check input { margin: 0; cursor: pointer; accent-color: var(--lswp-navy); }

.lswp-compare-bar {
	position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%);
	background: var(--lswp-ink); color: #fff;
	display: flex; align-items: center; gap: 20px;
	padding: 13px 22px; border-radius: var(--lswp-r-pill);
	box-shadow: var(--lswp-shadow-lg);
	z-index: 9000;
	border: 1px solid rgba(231,197,131,.2);
}
.lswp-compare-bar[hidden] { display: none; }
.lswp-compare-count { font-size: 13.5px; }
.lswp-compare-bar-actions { display: flex; gap: 8px; }
.lswp-compare-bar .lswp-btn { padding: 8px 16px; font-size: 12.5px; }

.lswp-compare-modal {
	position: fixed; inset: 0; background: rgba(10,22,38,.68);
	display: flex; align-items: center; justify-content: center;
	z-index: 9100; padding: 20px;
	backdrop-filter: blur(2px);
}
.lswp-compare-modal[hidden] { display: none; }
.lswp-compare-modal-inner {
	background: var(--lswp-card); border-radius: var(--lswp-r-lg); padding: 32px;
	max-width: 900px; width: 100%; max-height: 84vh; overflow-y: auto;
	position: relative;
	box-shadow: var(--lswp-shadow-lg);
}
.lswp-compare-close {
	position: absolute; top: 16px; right: 18px; background: none; border: none;
	font-size: 26px; line-height: 1; color: var(--lswp-ink-3); cursor: pointer;
}
.lswp-compare-close:hover { color: var(--lswp-ink-1); }
.lswp-compare-table-wrap { overflow-x: auto; }
.lswp-compare-table th, .lswp-compare-table td { white-space: nowrap; }
.lswp-compare-table td a.lswp-btn { padding: 6px 12px; font-size: 12px; }

/* =====================================================================
   Country hub — [lswp_countries]. A dedicated "choose your market"
   landing section, meant to sit on its own page ahead of the
   [lswp_products] listing.
   ===================================================================== */

.lswp-countries { color: var(--lswp-ink-1); }

.lswp-countries-hero {
	position: relative;
	overflow: hidden;
	background: radial-gradient(130% 160% at 15% -10%, var(--lswp-navy-3) 0%, var(--lswp-navy) 42%, var(--lswp-ink) 100%);
	border-radius: var(--lswp-r-lg);
	padding: 58px 32px 52px;
	margin-bottom: 40px;
	text-align: center;
}
.lswp-countries-hero > * { position: relative; z-index: 1; }
.lswp-countries-kicker {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--lswp-brass-light);
	margin: 0 0 18px;
}
.lswp-countries-kicker::before, .lswp-countries-kicker::after {
	content: ''; width: 20px; height: 1px; background: rgba(231,197,131,.5);
}
.lswp-countries-title {
	font-family: var(--lswp-font-display);
	font-size: clamp(30px, 4vw, 44px);
	font-weight: 600;
	color: #fff;
	margin: 0 0 14px;
	line-height: 1.15;
}
.lswp-countries-subtitle {
	color: #C7D6E6;
	font-size: 16px;
	max-width: 600px;
	margin: 0 auto;
	line-height: 1.65;
}

.lswp-admin-notice {
	background: #FBEED9;
	border: 1px dashed #C98A2C;
	color: #7A4E00;
	font-size: 13.5px;
	padding: 12px 16px;
	border-radius: var(--lswp-r-sm);
	max-width: 720px;
	margin: 0 auto 28px;
}
.lswp-admin-notice code { background: rgba(0,0,0,.06); padding: 1px 5px; border-radius: 3px; }

.lswp-countries-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
	gap: 22px;
}

.lswp-country-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 38px 22px 30px;
	border-radius: var(--lswp-r-lg);
	text-decoration: none;
	color: #fff;
	background: radial-gradient(140% 120% at 20% 0%, var(--lswp-navy-3) 0%, var(--lswp-navy) 55%, var(--lswp-ink) 130%);
	overflow: hidden;
	transition: transform .28s var(--lswp-ease), box-shadow .28s var(--lswp-ease);
	box-shadow: var(--lswp-shadow-navy);
	border: 1px solid rgba(231,197,131,.16);
}
.lswp-country-card::before {
	/* Faint decorative arc — depth without a busy texture image. */
	content: '';
	position: absolute;
	top: -60px; right: -60px;
	width: 170px; height: 170px;
	border-radius: 50%;
	background: rgba(231,197,131,.08);
}
.lswp-country-card:hover, .lswp-country-card:focus-visible {
	transform: translateY(-6px);
	box-shadow: 0 26px 50px rgba(9,26,46,.42);
	color: #fff;
	text-decoration: none;
	border-color: rgba(231,197,131,.4);
}
.lswp-country-flag { font-size: 44px; line-height: 1; margin-bottom: 16px; filter: drop-shadow(0 2px 6px rgba(0,0,0,.25)); }
.lswp-country-name {
	font-family: var(--lswp-font-display);
	font-size: 21px; font-weight: 600; color: #fff;
	margin: 0 0 7px;
}
.lswp-country-tagline { font-size: 13px; color: rgba(255,255,255,.72); margin: 0 0 20px; line-height: 1.55; }
.lswp-country-count {
	display: inline-block;
	font-size: 11.5px; font-weight: 700; letter-spacing: .02em;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.14);
	padding: 5px 14px;
	border-radius: var(--lswp-r-pill);
	margin-bottom: 14px;
}
.lswp-country-cta {
	font-size: 13px; font-weight: 700; letter-spacing: .01em; color: var(--lswp-brass-light);
	display: inline-flex; align-items: center; gap: 5px;
}

.lswp-country-card.lswp-country-disabled {
	background: var(--lswp-paper-alt);
	color: var(--lswp-ink-3);
	box-shadow: none;
	cursor: default;
	border-color: var(--lswp-line);
}
.lswp-country-card.lswp-country-disabled::before { display: none; }
.lswp-country-card.lswp-country-disabled .lswp-country-name { color: var(--lswp-ink-2); }
.lswp-country-card.lswp-country-disabled .lswp-country-flag { filter: grayscale(.65) opacity(.75); }
.lswp-country-card.lswp-country-disabled .lswp-country-tagline { color: var(--lswp-ink-3); }
.lswp-country-soon { background: var(--lswp-line-2); color: var(--lswp-ink-2); border-color: var(--lswp-line); }

/* ---------- Active-market banner + model toggle (listing page) ---------- */
.lswp-active-market {
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
	background: linear-gradient(120deg, #E7EEF5, #EEF3F8);
	border: 1px solid var(--lswp-line);
	border-radius: var(--lswp-r-sm);
	padding: 12px 18px; margin-bottom: 18px;
	font-size: 14px; color: var(--lswp-navy);
}
.lswp-active-market-flag { font-size: 20px; }
.lswp-active-market-change { margin-left: auto; font-size: 13px; color: var(--lswp-navy); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }

.lswp-model-toggle { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.lswp-model-pill {
	display: inline-block;
	padding: 10px 20px;
	border-radius: var(--lswp-r-pill);
	background: var(--lswp-card);
	color: var(--lswp-ink-1);
	font-size: 13.5px; font-weight: 600;
	text-decoration: none;
	border: 1.5px solid var(--lswp-line);
	transition: background .18s var(--lswp-ease), color .18s var(--lswp-ease), border-color .18s var(--lswp-ease);
}
.lswp-model-pill:hover { border-color: var(--lswp-navy-3); color: var(--lswp-navy); text-decoration: none; }
.lswp-model-pill-active {
	background: var(--lswp-navy); border-color: var(--lswp-navy); color: #fff;
}
.lswp-model-pill-active:hover { background: var(--lswp-navy-2); border-color: var(--lswp-navy-2); color: #fff; }

/* =====================================================================
   Growth pack: Best Seller badge, recent-unlock toast, discount popup,
   email capture.
   ===================================================================== */

/* ---------- Best Seller badge ---------- */
.lswp-card-badge-best {
	position: absolute; top: 10px; left: 10px;
	font-size: 10.5px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
	padding: 5px 11px; border-radius: var(--lswp-r-pill);
	background: linear-gradient(120deg, var(--lswp-brass-light), var(--lswp-brass));
	color: var(--lswp-ink);
	display: inline-flex; align-items: center; gap: 4px;
	box-shadow: 0 3px 8px rgba(184,132,58,.4);
}
/* The "Compare" checkbox (only shown on already-unlocked cards) sits
   just outside .lswp-card-media in this same top-left corner — when
   both are present, drop the Best Seller badge below it instead of
   letting the two overlap. */
.lswp-compare-check ~ .lswp-card .lswp-card-badge-best { top: 46px; }

/* ---------- Recent-unlock toast ---------- */
.lswp-recent-toast {
	position: fixed; left: 18px; bottom: 18px; z-index: 40;
	max-width: 350px;
	display: flex; align-items: center; gap: 11px;
	background: var(--lswp-ink); color: #fff;
	border-radius: var(--lswp-r-md);
	padding: 13px 15px;
	box-shadow: var(--lswp-shadow-lg);
	border: 1px solid rgba(231,197,131,.18);
	opacity: 0; transform: translateY(14px);
	pointer-events: none;
	transition: opacity .4s var(--lswp-ease), transform .4s var(--lswp-ease);
}
.lswp-recent-toast.lswp-recent-toast-visible {
	opacity: 1; transform: translateY(0);
	pointer-events: auto;
}
.lswp-recent-toast-flag { font-size: 20px; line-height: 1; flex-shrink: 0; }
.lswp-recent-toast-text { font-size: 13px; line-height: 1.4; }
.lswp-recent-toast-text strong { color: var(--lswp-brass-light); font-family: var(--lswp-font-display); font-weight: 600; }
.lswp-recent-toast-close {
	background: none; border: 0; color: rgba(255,255,255,.4); font-size: 18px; line-height: 1;
	cursor: pointer; padding: 2px 4px; margin-left: 2px; flex-shrink: 0;
}
.lswp-recent-toast-close:hover { color: #fff; }
@media (max-width: 480px) {
	.lswp-recent-toast { left: 12px; right: 12px; bottom: 12px; max-width: none; }
}

/* ---------- Discount popup ---------- */
.lswp-discount-popup {
	position: fixed; inset: 0; z-index: 50;
	display: flex; align-items: center; justify-content: center;
	background: rgba(10,22,38,0);
	padding: 20px;
	opacity: 0;
	transition: opacity .32s var(--lswp-ease), background .32s var(--lswp-ease);
	pointer-events: none;
}
.lswp-discount-popup.lswp-discount-popup-visible {
	opacity: 1;
	background: rgba(10,22,38,.6);
	pointer-events: auto;
}
.lswp-discount-popup-card {
	background: var(--lswp-card); border-radius: var(--lswp-r-lg);
	max-width: 390px; width: 100%;
	padding: 34px 30px 28px;
	position: relative;
	text-align: center;
	transform: scale(.94);
	transition: transform .32s var(--lswp-ease);
	box-shadow: var(--lswp-shadow-lg);
	border-top: 3px solid var(--lswp-brass);
}
.lswp-discount-popup-visible .lswp-discount-popup-card { transform: scale(1); }
.lswp-discount-popup-card h3 {
	font-family: var(--lswp-font-display);
	font-weight: 600;
	font-size: 23px; margin: 0 0 10px; color: var(--lswp-ink-1);
}
.lswp-discount-popup-card p { font-size: 14.5px; color: var(--lswp-ink-3); margin: 0 0 20px; line-height: 1.55; }
.lswp-discount-popup-code {
	display: inline-block;
	font-family: var(--lswp-font-mono);
	font-size: 18px; font-weight: 700; letter-spacing: 1.5px;
	background: var(--lswp-paper-alt); border: 1.5px dashed var(--lswp-navy); color: var(--lswp-navy);
	border-radius: var(--lswp-r-sm); padding: 11px 24px;
}
.lswp-discount-popup-close {
	position: absolute; top: 12px; right: 14px;
	background: none; border: 0; font-size: 22px; line-height: 1; color: var(--lswp-ink-3);
	cursor: pointer; padding: 4px;
}
.lswp-discount-popup-close:hover { color: var(--lswp-ink-1); }

@media (prefers-reduced-motion: reduce) {
	.lswp-recent-toast, .lswp-discount-popup, .lswp-discount-popup-card {
		transition: none !important;
	}
}

/* ---------- Email capture (locked report, non-buyers) ---------- */
.lswp-lead-capture {
	margin-top: 20px;
	padding: 22px 24px;
	background: var(--lswp-paper-alt);
	border: 1px dashed var(--lswp-line);
	border-radius: var(--lswp-r-md);
	text-align: center;
}
.lswp-lead-capture h4 { margin: 0 0 5px; font-family: var(--lswp-font-display); font-weight: 600; font-size: 16.5px; color: var(--lswp-ink-1); }
.lswp-lead-capture p { margin: 0 0 16px; font-size: 13px; color: var(--lswp-ink-3); }
.lswp-lead-form { display: flex; flex-wrap: wrap; gap: 9px; justify-content: center; }
.lswp-lead-input {
	flex: 1 1 220px; max-width: 320px;
	padding: 11px 15px;
	border: 1.5px solid var(--lswp-line); border-radius: var(--lswp-r-sm);
	font-size: 14px; font-family: var(--lswp-font-body);
	background: var(--lswp-card);
}
.lswp-lead-input:focus { outline: 2px solid var(--lswp-navy); outline-offset: 1px; border-color: var(--lswp-navy); }
.lswp-lead-form .lswp-btn { padding: 11px 22px; }
.lswp-lead-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.lswp-lead-status { margin: 12px 0 0; font-size: 13px; color: var(--lswp-danger); font-weight: 600; }
.lswp-lead-status.lswp-lead-status-ok { color: var(--lswp-teal); }
