:root {
	--rc-primary: #4da3ff;
	--rc-primary-dark: #0d6efd;
	--rc-dark: #111827;
	--rc-dark-soft: #1f2937;
	--rc-text: #212529;
	--rc-muted: #6c757d;
	--rc-border: #e9ecef;
	--rc-bg-soft: #f8f9fa;
	--rc-radius: 0.85rem;
}

/* Base */
body {
	background: #fff;
	color: var(--rc-text);
	font-size: 16px;
	line-height: 1.6;
}

main {
	background: #fff;
	padding-top: 1.5rem;
	padding-bottom: 2rem;
}

a {
	transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}

a:hover {
	text-decoration: none;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--rc-dark);
	font-weight: 700;
	line-height: 1.25;
}

h1 {
	font-size: clamp(2rem, 4vw, 3rem);
	margin-bottom: 1rem;
}

/* Page / Article Headers */
main header,
article header,
.page-header,
.product-header {
	background: transparent !important;
	border: 0 !important;
	color: var(--rc-dark);
}

main header h1,
article header h1,
.page-header h1,
.product-header h1,
#productPageArticleName {
	color: var(--rc-dark) !important;
	background: transparent !important;
}

/* Site Header / Navigation Only */
.site-header,
.main-header,
.top-header,
.navbar,
.navbar.bg-dark,
.navbar-dark,
.bg-dark.navbar,
.navbar.bg-body-tertiary {
	background: var(--rc-dark) !important;
	border-bottom: 1px solid rgba(255, 255, 255, .1) !important;
}

.navbar {
	padding-top: .85rem;
	padding-bottom: .85rem;
}

.navbar-brand,
.navbar-brand:focus,
.navbar-brand:hover,
.navbar-dark .navbar-brand,
.navbar.bg-dark .navbar-brand {
	color: #fff !important;
	font-weight: 800;
	letter-spacing: -0.03em;
	text-decoration: none;
}

.navbar-brand img {
	max-height: 56px;
	width: auto;
}

.site-header a,
.main-header a,
.top-header a,
.navbar a,
.navbar-dark a,
.navbar.bg-dark a {
	color: rgba(255, 255, 255, .9) !important;
	text-decoration: none;
}

.site-header a:hover,
.main-header a:hover,
.top-header a:hover,
.navbar a:hover,
.navbar-dark a:hover,
.navbar.bg-dark a:hover {
	color: var(--rc-primary) !important;
}

.navbar-nav .nav-link,
.navbar .nav-link,
.navbar-dark .navbar-nav .nav-link,
.navbar.bg-dark .navbar-nav .nav-link {
	color: rgba(255, 255, 255, .9) !important;
	font-weight: 600;
	padding: .55rem .9rem;
	border-radius: .6rem;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus,
.navbar-nav .nav-link.active,
.navbar .nav-link:hover,
.navbar .nav-link:focus,
.navbar .nav-link.active,
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus,
.navbar-dark .navbar-nav .nav-link.active {
	color: #fff !important;
	background-color: rgba(77, 163, 255, .16);
}

.navbar-toggler,
.navbar-dark .navbar-toggler {
	border-color: rgba(255, 255, 255, .35) !important;
	border-radius: .65rem;
	background-color: transparent;
}

.navbar-toggler:focus {
	box-shadow: 0 0 0 .2rem rgba(77, 163, 255, .25);
}

/* Header Search / Cart */
.site-header .btn,
.main-header .btn,
.top-header .btn,
.navbar .btn {
	border-radius: .65rem;
	font-weight: 600;
}

.site-header .form-control,
.main-header .form-control,
.top-header .form-control,
.navbar .form-control {
	background-color: #fff;
	color: var(--rc-dark);
	border-color: rgba(255, 255, 255, .25);
}

.site-header .form-control::placeholder,
.main-header .form-control::placeholder,
.top-header .form-control::placeholder,
.navbar .form-control::placeholder {
	color: #868e96;
}

/* Dropdowns */
.dropdown-menu {
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: .75rem;
	box-shadow: 0 .5rem 1.5rem rgba(17, 24, 39, .16);
}

.dropdown-item {
	color: var(--rc-dark) !important;
	font-weight: 500;
}

.dropdown-item:hover,
.dropdown-item:focus {
	color: var(--rc-primary-dark) !important;
	background-color: #f3f7ff;
}

/* Cards */
.card {
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius);
	overflow: hidden;
}

.card-header,
.card-footer {
	border-color: var(--rc-border);
}

.card-header {
	font-weight: 700;
}

.card-header.bg-white,
.card-footer.bg-white {
	background-color: #fff !important;
}

.card-title a,
.card-header a {
	color: var(--rc-dark);
}

.card-title a:hover,
.card-header a:hover {
	color: var(--rc-primary-dark);
}

.shadow-sm {
	box-shadow: 0 .35rem 1rem rgba(17, 24, 39, .06) !important;
}

.card.h-100 {
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.card.h-100:hover {
	transform: translateY(-2px);
	border-color: #d7e3ff;
	box-shadow: 0 .75rem 1.5rem rgba(17, 24, 39, .1) !important;
}

/* Buttons */
.btn {
	border-radius: .65rem;
	font-weight: 600;
}

.btn-primary {
	background-color: var(--rc-primary-dark);
	border-color: var(--rc-primary-dark);
	box-shadow: 0 .25rem .75rem rgba(13, 110, 253, .2);
}

.btn-primary:hover {
	background-color: #0a58ca;
	border-color: #0a58ca;
	box-shadow: 0 .35rem 1rem rgba(13, 110, 253, .28);
}

.btn-light {
	background-color: #fff;
	border-color: #dee2e6;
	color: var(--rc-dark);
}

.btn-light:hover {
	background-color: #f8f9fa;
	border-color: #ced4da;
	color: var(--rc-primary-dark);
}

.btn-secondary {
	background-color: #343a40;
	border-color: #343a40;
}

.btn-secondary:hover {
	background-color: #23272b;
	border-color: #23272b;
}

/* Forms */
.form-control,
.form-select {
	border-radius: .65rem;
	border-color: #dee2e6;
}

.form-control:focus,
.form-select:focus {
	border-color: #86b7fe;
	box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}

.input-group .form-control {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.input-group .btn {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

/* Product Cards */
.product-card {
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.product-card:hover {
	transform: translateY(-2px);
	border-color: #d7e3ff;
	box-shadow: 0 .75rem 1.5rem rgba(17, 24, 39, .1) !important;
}

.product-card__image-wrap,
.card .bg-light {
	background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 100%) !important;
}

.product-card__image,
.card img {
	max-width: 100%;
	object-fit: contain;
}

.product-card__title a:hover {
	color: var(--rc-primary-dark) !important;
}

.product__info-score .bi,
.bi-star,
.bi-star-half,
.bi-star-fill {
	color: #ffc107;
}

.card .text-decoration-line-through {
	font-size: .95rem;
}

.card .fw-bold.fs-5 {
	color: var(--rc-dark) !important;
}

.col-6 .card,
.col-sm-6 .card,
.col-md-6 .card,
.col-lg-4 .card {
	height: 100%;
}

/* Product Detail Page */
#productsList {
	background: transparent;
}

#productsList article {
	background: transparent;
}

#productsList .card {
	background: #fff;
}

#productsList .text-primary {
	color: var(--rc-primary-dark) !important;
}

/* Category Sidebar / Accordions */
.accordion {
	--bs-accordion-border-color: var(--rc-border);
	--bs-accordion-border-radius: var(--rc-radius);
	--bs-accordion-inner-border-radius: var(--rc-radius);
	--bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}

.accordion-button {
	font-weight: 700;
	color: var(--rc-dark);
}

.accordion-button:not(.collapsed) {
	color: var(--rc-primary-dark);
	background-color: #f3f7ff;
	box-shadow: none;
}

.accordion-button::after {
	opacity: .7;
}

.accordion-body {
	background-color: #fff;
}

.list-group-item {
	border-color: var(--rc-border);
}

.list-group-item a {
	font-weight: 600;
}

.list-group-item.active {
	background-color: var(--rc-primary-dark);
	border-color: var(--rc-primary-dark);
}

/* Blog / Articles */
article .card-text,
.article-content {
	color: #343a40;
}

.article-content img,
.card-text img {
	max-width: 100%;
	height: auto;
	border-radius: var(--rc-radius);
}

.article-content table,
.card-text table {
	width: 100%;
	margin-bottom: 1rem;
}

.article-content a,
.card-text a {
	font-weight: 600;
}

/* Footer */
footer,
footer.bg-body-tertiary {
	background-color: var(--rc-dark) !important;
	color: rgba(255, 255, 255, .78);
	border-top: 1px solid rgba(255, 255, 255, .1) !important;
	margin-top: 3rem;
}

footer h1,
footer h2,
footer h3,
footer h4,
footer h5,
footer h6,
footer .h5,
footer .h6 {
	color: #fff;
}

footer p,
footer .text-body-secondary {
	color: rgba(255, 255, 255, .68) !important;
}

footer a,
footer .link-body-emphasis {
	color: rgba(255, 255, 255, .9) !important;
}

footer a:hover,
footer .link-body-emphasis:hover {
	color: var(--rc-primary) !important;
}

footer .btn {
	white-space: nowrap;
}

footer hr {
	border-color: rgba(255, 255, 255, .14);
	opacity: 1;
}

footer .form-control {
	background-color: #fff;
	border-color: rgba(255, 255, 255, .25);
	color: var(--rc-dark);
}

/* Responsive */
@media (max-width: 991.98px) {
	main {
		padding-top: 1rem;
	}

	.navbar-collapse {
		margin-top: .75rem;
		padding-top: .75rem;
		border-top: 1px solid rgba(255, 255, 255, .14);
	}

	.navbar-nav .nav-link,
	.navbar .nav-link,
	.navbar-dark .navbar-nav .nav-link {
		padding: .75rem .9rem;
		margin-bottom: .35rem;
	}

	.card-body {
		padding: 1rem;
	}

	footer {
		text-align: center;
	}

	footer .input-group {
		max-width: 420px;
		margin-left: auto;
		margin-right: auto;
	}
}

@media (max-width: 575.98px) {
	body {
		font-size: 15px;
	}

	h1 {
		font-size: 2rem;
	}

	.navbar-brand img {
		max-height: 44px;
	}

	.card-header,
	.card-footer {
		padding: .85rem 1rem;
	}

	.btn,
	.form-control {
		min-height: 42px;
	}

	.product__shop-buy .btn {
		width: 100%;
	}

	footer .row > * {
		text-align: center;
	}
}