:root {
	--bs-red: #e32219;
	--bs-red-deep: #b91812;
	--bs-blue: #071d49;
	--bs-navy: #021433;
	--bs-navy-deep: #000d25;
	--bs-sky: #edf3ff;
	--bs-gold: #f2b447;
	--bs-green: #087f5b;
	--bs-ink: #071d49;
	--bs-muted: #566781;
	--bs-line: #d5deee;
	--bs-panel: #ffffff;
	--bs-soft: #f7f9fd;
	font-family: Arial, Helvetica, sans-serif;
}

.bs-platform {
	color: var(--bs-ink);
	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
	font-size: 16px;
	line-height: 1.55;
}

.bs-platform * {
	box-sizing: border-box;
}

.bs-platform h1,
.bs-platform h2,
.bs-platform h3,
.bs-platform h4,
.bs-button,
.bs-platform button {
	font-family: "Arial Black", "Trebuchet MS", Arial, Helvetica, sans-serif;
	letter-spacing: 0;
}

.bs-hero {
	background:
		radial-gradient(circle at 72% 8%, rgba(255, 255, 255, .18) 0 9%, transparent 10%),
		linear-gradient(135deg, rgba(2, 20, 51, .98), rgba(7, 29, 73, .9)),
		repeating-linear-gradient(45deg, transparent 0 36px, rgba(227, 34, 25, .28) 36px 46px, rgba(255,255,255,.14) 46px 58px);
	color: #fff;
	margin: -1rem -1rem 2rem;
	padding: clamp(2.5rem, 7vw, 5rem) 1rem 2rem;
	position: relative;
	overflow: hidden;
}

.bs-hero:after {
	background: linear-gradient(90deg, var(--bs-red), #fff, var(--bs-blue), var(--bs-red));
	bottom: 0;
	content: "";
	height: 8px;
	left: 0;
	position: absolute;
	right: 0;
}

.bs-hero-inner {
	margin: 0 auto;
	max-width: 1180px;
}

.bs-kicker {
	font-size: .86rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
}

.bs-hero h1,
.bs-page-head h1 {
	color: var(--bs-navy);
	font-size: 3.45rem;
	line-height: 1.03;
	margin: 0 0 1rem;
	max-width: 780px;
	text-transform: none;
}

.bs-hero p {
	font-size: 1.18rem;
	max-width: 760px;
}

.bs-retailer-profile-logo {
	background: #fff;
	border: 1px solid var(--bs-line);
	border-radius: 8px;
	display: block;
	height: 86px;
	margin: 1rem 0;
	max-width: 240px;
	object-fit: contain;
	padding: .65rem;
}

.bs-search-strip,
.bs-filter-panel,
.bs-form {
	background: #fff;
	border: 1px solid var(--bs-line);
	border-radius: 8px;
	box-shadow: 0 18px 48px rgba(1, 33, 105, .18);
	display: grid;
	gap: .75rem;
	margin-top: 1.5rem;
	padding: 1rem;
}

.bs-search-strip {
	grid-template-columns: 1fr 1fr 1fr auto;
}

.bs-search-strip-only {
	margin-top: 0;
}

.bs-filter-panel,
.bs-form-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bs-platform input,
.bs-platform select,
.bs-platform textarea {
	border: 1px solid #c7d3e4;
	border-radius: 6px;
	color: var(--bs-ink);
	font: inherit;
	min-height: 44px;
	padding: .68rem .75rem;
	width: 100%;
}

.bs-search-strip label,
.bs-filter-panel label {
	display: grid;
	gap: .35rem;
}

.bs-platform label {
	color: var(--bs-navy);
	font-weight: 700;
}

.bs-platform textarea {
	min-height: 140px;
}

.bs-button,
.bs-platform button {
	align-items: center;
	background: linear-gradient(135deg, var(--bs-red), #d91f2f);
	border: 0;
	border-radius: 6px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font-weight: 800;
	justify-content: center;
	min-height: 44px;
	padding: .7rem 1rem;
	text-decoration: none;
	text-transform: none;
	transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.bs-button:hover,
.bs-platform button:hover {
	background: linear-gradient(135deg, var(--bs-red-deep), var(--bs-red));
	box-shadow: 0 8px 20px rgba(227, 34, 25, .2);
	color: #fff;
	text-decoration: none;
	transform: translateY(-1px);
}

.bs-button-secondary {
	background: linear-gradient(135deg, var(--bs-navy-deep), var(--bs-blue));
	color: #fff;
}

.bs-button-secondary:hover {
	background: linear-gradient(135deg, var(--bs-blue), var(--bs-navy-deep));
	color: #fff;
}

.bs-band,
.bs-split,
.bs-page-head,
.bs-detail,
.bs-form,
.bs-dashboard-grid {
	margin: 0 auto 2rem;
	max-width: 1180px;
}

.bs-band-light {
	background: var(--bs-soft);
	border-bottom: 1px solid var(--bs-line);
	border-top: 1px solid var(--bs-line);
	max-width: none;
	padding: 2rem max(1rem, calc((100vw - 1180px) / 2));
}

.bs-section-head {
	align-items: end;
	border-left: 8px solid var(--bs-red);
	display: flex;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding-left: 1rem;
}

.bs-section-head h2,
.bs-page-head h1,
.bs-detail h1,
.bs-detail h2 {
	color: var(--bs-navy);
	font-weight: 900;
}

.bs-section-head h2 {
	font-size: 2.35rem;
	line-height: 1.08;
	margin: 0;
}

.bs-card-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bs-card-grid-compact {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bs-card-grid-six {
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.bs-results-band {
	margin-bottom: 1.5rem;
}

.bs-sale-card {
	background: var(--bs-panel);
	border: 1px solid var(--bs-line);
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(20, 33, 61, .08);
	display: flex;
	flex-direction: column;
	min-height: 100%;
	overflow: hidden;
	position: relative;
}

.bs-sale-card-featured {
	border-color: var(--bs-red);
	box-shadow: 0 12px 30px rgba(227, 34, 25, .16);
}

.bs-sale-card-featured .bs-card-media {
	background: linear-gradient(135deg, var(--bs-navy), var(--bs-red));
}

.bs-sale-card-secret .bs-card-media {
	background: linear-gradient(135deg, var(--bs-navy), var(--bs-red-deep));
}

.bs-sale-card-independent .bs-card-media {
	background: linear-gradient(135deg, var(--bs-blue), #1d3d79);
}

.bs-sale-card-national_brand .bs-card-media,
.bs-sale-card-regional_chain .bs-card-media {
	background: linear-gradient(135deg, var(--bs-navy), var(--bs-blue));
}

.bs-card-flags {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	left: .75rem;
	position: absolute;
	right: .75rem;
	top: .75rem;
	z-index: 2;
}

.bs-flag,
.bs-badge {
	border-radius: 999px;
	display: inline-flex;
	font-size: .75rem;
	font-weight: 900;
	line-height: 1;
	padding: .4rem .55rem;
	text-transform: uppercase;
}

.bs-flag-new { background: var(--bs-red); color: #fff; }
.bs-flag-featured { background: var(--bs-gold); color: #2d2100; }
.bs-flag-secret { background: var(--bs-navy); color: #fff; }

.bs-card-media {
	background: linear-gradient(135deg, var(--bs-blue), var(--bs-red));
	display: grid;
	min-height: 138px;
	place-items: center;
}

.bs-card-media img {
	background: #fff;
	border-radius: 8px;
	max-height: 82px;
	max-width: 70%;
	object-fit: contain;
	padding: .5rem;
}

.bs-card-media .bs-logo-placeholder-image {
	border-radius: 50%;
	height: 86px;
	padding: .35rem;
	width: 86px;
}

.bs-logo-placeholder {
	background: #fff;
	border-radius: 50%;
	color: var(--bs-blue);
	display: grid;
	font-size: 1.5rem;
	font-weight: 900;
	height: 78px;
	place-items: center;
	width: 78px;
}

.bs-card-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: .75rem;
	padding: 1rem;
}

.bs-card-body h3 {
	color: var(--bs-navy);
	font-size: 1.22rem;
	line-height: 1.25;
	margin: 0;
}

.bs-card-body h2 {
	color: var(--bs-navy);
	font-size: 1rem;
	line-height: 1.25;
	margin: 0;
}

.bs-card-grid-six .bs-card-media {
	min-height: 96px;
}

.bs-card-grid-six .bs-card-media img {
	max-height: 58px;
}

.bs-card-grid-six .bs-card-media .bs-logo-placeholder-image {
	height: 64px;
	width: 64px;
}

.bs-card-grid-six .bs-card-body {
	gap: .55rem;
	padding: .75rem;
}

.bs-card-grid-six .bs-card-body h3 {
	font-size: 1rem;
}

.bs-card-grid-six .bs-card-body p {
	font-size: .9rem;
}

.bs-card-body p {
	color: var(--bs-muted);
	margin: 0;
}

.bs-retailer {
	color: var(--bs-blue) !important;
	font-weight: 800;
}

.bs-card-body .bs-button {
	margin-top: auto;
}

.bs-badge-row {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
}

.bs-badge-independent { background: #e9f8f2; color: var(--bs-green); }
.bs-badge-regional_chain { background: #fff0ee; color: var(--bs-red-deep); }
.bs-badge-national_brand { background: #e8eefb; color: var(--bs-blue); }
.bs-badge-online_only,
.bs-badge-online { background: #eef2ff; color: var(--bs-blue); }
.bs-badge-in_store { background: #ffe8e5; color: var(--bs-red); }
.bs-badge-both { background: #e8eefb; color: var(--bs-blue); }
.bs-badge-secret { background: var(--bs-navy); color: #fff; }
.bs-badge-featured { background: var(--bs-gold); color: #2d2100; }

.bs-card-badges {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
}

.bs-card-meta {
	border-top: 1px solid var(--bs-line);
	display: grid;
	gap: .25rem;
	padding-top: .75rem;
}

.bs-split {
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(0, 1.45fr) minmax(320px, .75fr);
}

.bs-category-panel,
.bs-lock-box,
.bs-retailer-box,
.bs-coupon,
.bs-dash-card {
	background: #fff;
	border: 1px solid var(--bs-line);
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(20, 33, 61, .08);
	padding: 1rem;
}

.bs-category-grid,
.bs-choice-grid,
.bs-campaign-grid {
	display: grid;
	gap: .55rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bs-campaign-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bs-campaign-card {
	background: linear-gradient(135deg, var(--bs-navy) 0%, var(--bs-blue) 58%, var(--bs-red) 100%);
	border-radius: 8px;
	color: #fff;
	display: grid;
	gap: .2rem;
	min-height: 92px;
	padding: 1rem;
	text-decoration: none;
}

.bs-campaign-card strong {
	font-size: 1.05rem;
}

.bs-campaign-card span {
	color: rgba(255,255,255,.82);
	font-size: .82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.bs-category-grid a {
	background: var(--bs-sky);
	border-left: 5px solid var(--bs-red);
	border-radius: 6px;
	color: var(--bs-blue);
	font-weight: 800;
	padding: .75rem;
	text-decoration: none;
}

.bs-category-landscape {
	margin-top: 2rem;
}

.bs-category-grid-landscape {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bs-page-head {
	background: linear-gradient(90deg, #fff 0%, #fff 52%, var(--bs-sky) 100%);
	border-bottom: 5px solid var(--bs-red);
	padding: 2rem 1rem;
}

.bs-filter-panel label,
.bs-check {
	align-items: center;
	display: flex;
	gap: .5rem;
}

.bs-filter-panel label:not(.bs-check) {
	align-items: stretch;
	display: grid;
	font-size: .92rem;
}

.bs-filter-actions {
	display: grid;
	gap: .75rem;
	grid-template-columns: 1fr 1fr;
}

.bs-filter-panel input[type="checkbox"],
.bs-check input,
.bs-choice-grid input {
	min-height: auto;
	width: auto;
}

.bs-results-count {
	color: var(--bs-muted);
	font-weight: 800;
	margin: 0 auto 1rem;
	max-width: 1180px;
}

.bs-detail-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1fr) 340px;
}

.bs-detail-head {
	background: var(--bs-blue);
	border-radius: 8px 8px 0 0;
	color: #fff;
	padding: 1.5rem;
}

.bs-detail-head h1 {
	color: #fff;
	margin: .75rem 0;
}

.bs-detail-main,
.bs-detail-aside {
	background: #fff;
	border: 1px solid var(--bs-line);
	padding: 1.25rem;
}

.bs-detail-layout {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1fr) 340px;
	margin: 0 auto 2rem;
	max-width: 1180px;
}

.bs-detail-image {
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, var(--bs-navy), var(--bs-blue), var(--bs-red));
	border-radius: 8px;
	margin-bottom: 1rem;
	object-fit: contain;
	padding: 1rem;
	width: 100%;
}

.bs-map-placeholder {
	align-items: center;
	background: var(--bs-soft);
	border: 1px dashed var(--bs-line);
	border-radius: 8px;
	color: var(--bs-muted);
	display: flex;
	font-weight: 800;
	justify-content: center;
	margin: 1rem 0;
	min-height: 140px;
}

.bs-market-card .bs-card-media {
	background: linear-gradient(135deg, var(--bs-navy), var(--bs-blue));
}

.bs-rich {
	color: var(--bs-ink);
}

.bs-location-list,
.bs-coupon-grid,
.bs-dashboard-grid {
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bs-location-list span {
	background: var(--bs-soft);
	border-left: 5px solid var(--bs-blue);
	border-radius: 6px;
	padding: .7rem;
}

.bs-coupon code {
	background: var(--bs-navy);
	border-radius: 6px;
	color: #fff;
	display: inline-block;
	font-size: 1.15rem;
	font-weight: 900;
	margin: .7rem 0;
	padding: .45rem .65rem;
}

.bs-gallery {
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 1rem 0;
}

.bs-gallery img {
	aspect-ratio: 4 / 3;
	border: 1px solid var(--bs-line);
	border-radius: 8px;
	object-fit: cover;
	width: 100%;
}

.bs-form {
	display: block;
}

.bs-form-grid {
	display: grid;
	gap: 1rem;
	margin-bottom: 1rem;
}

.bs-box-header {
	background: linear-gradient(90deg, var(--bs-navy), var(--bs-blue), var(--bs-red));
	border-radius: 6px;
	color: #fff;
	font-weight: 900;
	margin: 1.25rem 0 1rem;
	padding: .65rem .85rem;
}

.bs-editor-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin: .35rem 0;
}

.bs-editor-toolbar button,
.bs-editor-toolbar select,
.bs-editor-toolbar input[type="color"] {
	background: var(--bs-blue);
	border: 0;
	border-radius: 6px;
	color: #fff;
	font-size: .85rem;
	font-weight: 800;
	min-height: 34px;
	padding: .35rem .6rem;
	width: auto;
}

.bs-editor-toolbar select {
	min-height: 34px;
}

.bs-editor-toolbar input[type="color"] {
	cursor: pointer;
	padding: .2rem;
	width: 42px;
}

.bs-rich-source {
	display: none;
}

.bs-visual-editor {
	background: #fff;
	border: 1px solid #c7d3e4;
	border-radius: 6px;
	color: var(--bs-ink);
	min-height: 150px;
	outline: none;
	padding: .75rem;
	width: 100%;
}

.bs-visual-editor:focus {
	border-color: var(--bs-blue);
	box-shadow: 0 0 0 3px rgba(1, 33, 105, .12);
}

.bs-visual-editor h2,
.bs-visual-editor h3,
.bs-rich h2,
.bs-rich h3 {
	color: var(--bs-blue);
	margin: .4rem 0;
}

.bs-visual-editor ul,
.bs-rich ul {
	margin: .4rem 0 .4rem 1.2rem;
	padding: 0;
}

.bs-message-centre {
	display: grid;
	gap: 1rem;
}

.bs-message-thread {
	background: #fff;
	border: 1px solid var(--bs-line);
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(20, 33, 61, .08);
	padding: 1rem;
}

.bs-message-thread header {
	align-items: start;
	border-bottom: 1px solid var(--bs-line);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding-bottom: .75rem;
}

.bs-message-body {
	background: var(--bs-soft);
	border-radius: 8px;
	margin-bottom: .75rem;
	padding: .75rem;
}

.bs-message-actions {
	display: grid;
	gap: .75rem;
	grid-template-columns: minmax(0, 1fr) auto;
}

.bs-event-list {
	display: grid;
	gap: .75rem;
	margin: 1rem 0;
}

.bs-event-card {
	background: #fff;
	border: 1px solid var(--bs-line);
	border-left: 6px solid var(--bs-blue);
	border-radius: 8px;
	padding: .9rem;
}

.bs-event-card strong {
	color: var(--bs-blue);
	display: block;
	font-size: 1.05rem;
}

.bs-event-card span,
.bs-event-card small {
	color: var(--bs-muted);
	font-weight: 800;
}

.bs-dash-card {
	color: var(--bs-ink);
	display: grid;
	gap: .35rem;
	text-decoration: none;
}

.bs-dash-card strong {
	color: var(--bs-blue);
	font-size: 1.1rem;
}

.bs-dash-card span {
	color: var(--bs-muted);
	font-weight: 700;
}

.bs-claim-banner {
	background: #fff4df;
	border: 1px solid #f5b335;
	border-left: 8px solid var(--bs-gold);
	border-radius: 8px;
	color: var(--bs-navy);
	margin: 0 auto 1rem;
	max-width: 1180px;
	padding: 1rem;
}

.bs-claim-banner a {
	color: var(--bs-red);
	font-weight: 900;
}

.bs-table-wrap {
	margin: 0 auto 2rem;
	max-width: 1180px;
	overflow-x: auto;
}

.bs-table {
	border-collapse: collapse;
	min-width: 760px;
	width: 100%;
}

.bs-table th {
	background: var(--bs-blue);
	color: #fff;
	text-align: left;
}

.bs-table th,
.bs-table td {
	border: 1px solid var(--bs-line);
	padding: .7rem;
}

.bs-module-search-blue {
	background:
		radial-gradient(circle at 82% 10%, rgba(255, 255, 255, .18) 0 8%, transparent 9%),
		linear-gradient(135deg, rgba(2, 20, 51, .98), rgba(7, 29, 73, .9)),
		repeating-linear-gradient(45deg, transparent 0 34px, rgba(227, 34, 25, .22) 34px 44px, rgba(255,255,255,.12) 44px 54px);
	border-bottom: 8px solid var(--bs-red);
	padding: 2rem;
}

.bs-town-finder {
	background: #fff;
	border: 1px solid var(--bs-line);
	border-radius: 8px;
	padding: 1rem;
}

.bs-town-search {
	display: grid;
	gap: .75rem;
	grid-template-columns: minmax(0, 1fr) auto;
	margin-bottom: 1rem;
}

.bs-az {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	margin: 1rem 0;
}

.bs-az a {
	background: var(--bs-sky);
	border-radius: 5px;
	color: var(--bs-blue);
	font-weight: 900;
	min-width: 2.1rem;
	padding: .35rem .5rem;
	text-align: center;
	text-decoration: none;
}

.bs-place-grid {
	display: grid;
	gap: .55rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-bottom: 1rem;
}

.bs-place-grid label {
	background: var(--bs-soft);
	border: 1px solid var(--bs-line);
	border-left: 5px solid var(--bs-blue);
	border-radius: 6px;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .2rem .5rem;
	padding: .65rem;
}

.bs-place-grid input {
	margin-top: .2rem;
	min-height: auto;
	width: auto;
}

.bs-place-grid small {
	color: var(--bs-muted);
	grid-column: 2;
}

@media (max-width: 960px) {
	.bs-hero h1,
	.bs-page-head h1 {
		font-size: 2.35rem;
	}
	.bs-section-head {
		align-items: start;
		display: grid;
		gap: .5rem;
	}
	.bs-section-head h2 {
		font-size: 1.9rem;
	}
	.bs-search-strip,
	.bs-filter-panel,
	.bs-form-grid,
	.bs-card-grid,
	.bs-card-grid-compact,
	.bs-card-grid-six,
	.bs-category-grid-landscape,
	.bs-split,
	.bs-detail-grid,
	.bs-detail-layout,
	.bs-location-list,
	.bs-coupon-grid,
	.bs-gallery,
	.bs-dashboard-grid {
		grid-template-columns: 1fr;
	}
	.bs-town-search,
	.bs-place-grid,
	.bs-campaign-grid,
	.bs-filter-actions,
	.bs-message-actions,
	.bs-message-thread header {
		grid-template-columns: 1fr;
	}
	.bs-hero {
		margin-left: 0;
		margin-right: 0;
	}
	.bs-message-thread header {
		display: grid;
	}
}
