:root {
	--dbb-nav-bg: #fff;
	--dbb-nav-accent: 13px;
	--dbb-footer-bg: #333;
	--primary-color: #C53117;
	--secondary-color: #1B2936;
	--text-dark: #1B2936;
	--text-light: #666;
	--surface: #f8f9fa;
}

html {
	overflow-y: scroll;
	overflow-x: hidden;
}

html, body {
	background-color: #ddd;
	color: #1B2936;
	font-family: "brandon-grotesque", "helvetica neue", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4rem;
	margin: 0;
	padding: 0;
}

a:not(.btn), a:not(.btn):hover,
.text-link, .text-link:hover {
	color: var(--primary-color);
	text-decoration: none;
	font-weight: 600;
}

a:not(.btn):hover,
.text-link:hover {
	color: #f4b223;
}

h1, h2, h3, h4, h5, h6 {
	font-family: "brandon-grotesque", "helvetica neue", sans-serif;
}

.hidden {
	display: none;
}

/* ─── Navigation ─── */

nav.navbar {
	width: 100%;
	height: 80px;
	background-color: var(--dbb-nav-bg);
	margin: 0;
	padding: 0;
	border: 0;
}

@media (min-width: 860px) {
	nav.navbar {
		height: 120px;
	}
}

nav.navbar > div,
nav.navbar div.row {
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
}

/* Region accent bar across top */
nav.navbar div.menu_accent {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: var(--dbb-nav-accent);
}

nav.navbar div.menu_accent div {
	margin-right: 4px;
	color: #fff;
	cursor: pointer;
}

nav.navbar div.menu_accent div:last-child {
	margin-right: 0;
}

/* Menu navigation row */
nav.navbar div.menu_nav {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 80px !important;
	z-index: 2;
	pointer-events: none;
}

nav.navbar div.menu_nav .logo_box,
nav.navbar div.menu_nav .menu_options,
nav.navbar div.menu_nav #nav_mobile_btn,
nav.navbar div.menu_nav .nav_mobile_controls {
	pointer-events: auto;
}

body.is_stuck nav.navbar div.menu_nav {
	transition: height .2s;
}

@media (min-width: 860px) {
	nav.navbar div.menu_nav {
		height: 120px !important;
	}
}

nav.navbar div.menu_nav div.logo_box {
	max-width: 300px;
	padding: 12px 10px 0px 10px;
	position: relative;
	z-index: 1021;
}

#nav_logo {
	-webkit-user-drag: none;
	user-select: none;
}

nav.navbar div.menu_nav a.logo_link {
	display: block;
	position: relative;
	z-index: 2;
}

nav.navbar div.menu_nav img {
	max-width: 130px;

	overflow: visible;
	position: relative;
	z-index: 2;
}


/* Menu links */
nav.navbar div.menu_box {
	padding-top: 40px;
	padding-left: 0;
}

nav.navbar div.acct_box {
	padding-top: 28px;
	padding-right: 1rem;
}

nav.navbar div.menu_box,
nav.navbar div.acct_box {
	height: 100%;
	text-transform: uppercase;
}

nav.navbar div.menu_options,
nav.navbar div.menu_box ul.nav,
nav.navbar div.acct_box ul.nav {
	flex-wrap: nowrap;
}

nav.navbar div.menu_box a.nav-link,
nav.navbar div.acct_box a.nav-link {
	padding: 0;
	margin-right: clamp(0.6rem, 1.5vw - 0.1rem, 2.2rem);
	padding-right: clamp(0.5rem, 1.5vw - 0.1rem, 2.2rem);
	color: #666;
	font-size: clamp(14px, 0.8vw + 8.8px, 20px);
	font-weight: 600;
	letter-spacing: 0.5px;
	white-space: nowrap;
	z-index: 9999 !important;
}

nav.navbar div.acct_box a.nav-link {
	margin-top: 12px;
	font-size: clamp(11px, 0.5vw + 7px, 14px);
	font-weight: 400;
}

nav.navbar a.nav-link.active {
	text-decoration: underline;
	text-decoration-color: var(--primary-color);
	text-decoration-thickness: 3px;
	text-underline-offset: 0.3rem;
}

nav.navbar div.acct_box a.nav-link.active {
	font-weight: 600;
	text-decoration-thickness: 4px;
}

nav.navbar div.menu_box a.nav-link:not(.active):hover,
nav.navbar div.acct_box a.nav-link:not(.active):hover {
	color: #333;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--primary-color);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3rem;
}

/* Social icons in nav */
li.nav_social a.fa-stack {
}

nav.navbar div.acct_box li.nav_social {
	margin-top: -4px;
}

nav.navbar div.acct_box a>i {
	margin-top: 9px;
}

/* Duotone account/sign-in icon: red primary layer */
nav.navbar div.acct_box .fa-duotone {
	--fa-primary-color: var(--primary-color);
	--fa-secondary-color: #000;
	--fa-secondary-opacity: 0.6;
}

/* Nav filter row (desktop) — z-index below menu_nav so logo overlaps cleanly */
nav.navbar div.nav_filters {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 46px;
	z-index: 1;
	align-items: center;
}

nav.navbar div.nav_filters .btn {
	font-size: 16px;
	padding: 0.375rem 0.75rem;
}

nav.navbar div.nav_filters .nav_page_title {
	padding-inline-start: 150px !important; /* align with nav links: logo_box(150px) = 10pad + 130img + 10pad */
}

@media (min-width: 992px)
{
	nav.navbar div.nav_filters .nav_page_title {
		padding-inline-start: 170px !important; /* align with nav links: logo(170px) + col_gutter(12px) - margin-left(12px) */
	}
}

nav.navbar div.nav_filters .nav_page_title .section_title {
	color: #000;
	letter-spacing: 0.5px;
	white-space: nowrap;
}

.nav_title_short { display: none; }

/* ─── Progressive nav reduction ───
   Strategy: reduce spacing/size first, keep all nav items visible
   until the mobile breakpoint.
*/

/* 1060px: drop social icons */
@media (max-width: 1060px)
{
	li.nav_social { display: none; }
}

/* 1300px: tighten spacing */
@media (max-width: 1300px)
{
	nav.navbar div.acct_box { padding-right: 0.5rem; }
	nav.navbar div.menu_box a.nav-link {
		margin-right: clamp(0.6rem, 1.2vw, 2rem);
		padding-right: clamp(0.6rem, 1.2vw, 2rem);
		font-size: clamp(15px, 1.5vw - 1px, 17px);
	}
}

/* 920px: drop Contact (available in footer + mobile menu) */
@media (max-width: 920px)
{
	li.nav-contact { display: none; }
}

/* 900px: switch to short page title, compact account area */
@media (max-width: 900px)
{
	.nav_title_full { display: none; }
	.nav_title_short { display: inline; }
	nav.navbar div.acct_box { padding-right: 0.75rem; }
	nav.navbar div.acct_box a.nav-link { margin-right: 0; padding-right: 0; }
}

nav.navbar div.nav_filters .nav_sort_controls .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	background-color: #ddd;
	border-color: #ccc;
	color: #333;
	border-radius: 0.375rem !important;
}

nav.navbar div.nav_filters .col-auto {
	display: flex;
	align-items: stretch;
}

/* Sort toggle: show only the non-active option as a single button */
.nav_sort_controls .ctrl_shuffle {
	display: none !important;
}

.nav_sort_controls .ctrl_alpha.active {
	display: none !important;
}

.nav_sort_controls .ctrl_alpha.active + .ctrl_shuffle {
	display: inline-flex !important;
}

/* Mobile controls (region filter + sort) — below title, overflows like logo */
.nav_mobile_controls {
	text-align: left;
	padding: 0 0.5rem 0 0;
	z-index: 4;
	position: relative;
	margin-top: -16px;
}

.nav_mobile_controls .btn {
	font-size: 14px;
	padding: 0.25rem 0.5rem;
}

.nav_mobile_controls .filter-region .btn {
	font-size: 13px;
	padding: 0.2rem 0.45rem;
}

.nav_mobile_controls .nav_sort_controls .btn {
	background-color: #ddd;
	border-color: #ccc;
	color: #333;
	border-radius: 0.375rem !important;
}

/* Mobile menu button */
#nav_mobile_btn {
	display: flex;
	align-items: center;
	width: 100%;
	height: 80px;
	margin: 0;
	padding: var(--dbb-nav-accent) 1rem 0 0;
	color: var(--primary-color);
	border: 0;
}

.navbar-toggler {
	border: 0;
	box-shadow: none;
}

.navbar-toggler:focus {
	box-shadow: none;
}

#nav_mobile_btn > span {
	flex: 1;
	font-size: 20px;
	font-weight: 500;
	text-align: left;
	white-space: normal;
	line-height: 1.2;
}

#nav_mobile_btn > i {
	flex-shrink: 0;
	margin-left: auto;
}

/* Offcanvas mobile nav */
.offcanvas {
	background-color: #fff;
}

.offcanvas-header {
	padding-top: 2rem;
	padding-bottom: 1rem;
}

.offcanvas-body {
	padding-top: 0;
}

/* ─── Sticky filter bar ─── */

body .bg-filters {
	padding-top: 80px;
}

@media (min-width: 860px) {
	body .bg-filters {
		padding-top: 134px;
	}
}

body .bg-filters h1 {
	display: none;
}

body .bg-filters button,
body .bg-filters a.ctrl,
body .bg-filters a.ctrl_cal {
	background-color: #ddd;
}

body.is_stuck nav.navbar div.menu_nav {
	height: 120px !important;
	background-color: var(--dbb-nav-bg);
}

.section_title {
	color: #666;
	font-size: 24px;
	font-weight: 600;
	text-transform: uppercase;
}

/* ─── Content ─── */

#content {
	background-color: #ddd;
	min-height: 90vh;
	padding-top: 2rem;
}

@media (min-width: 860px) {
	#content {
		padding-top: 2rem;
	}
}

/* White background pages (home, about) */
.bg-white-page,
.bg-white-page nav.navbar,
.bg-white-page #content {
	background-color: #fff !important;
}

.bg-white-page #content {
	padding-top: 30px;
	padding-bottom: 50px;
}

.main-content {
	min-height: calc(100vh - 200px);
	background-color: #ddd;
}

/* ─── Footer ─── */

.footer-nav {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}

.footer-nav a {
	display: inline-block;
	color: #ccc;
	font-weight: 400;
	font-size: 0.9rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 0.25rem 0.75rem;
}

.footer-nav a:hover {
	color: #fff;
}

footer {
	padding: 1rem 0;
	background-color: #333;
	color: #aaa;
	font-size: 0.8rem;
	font-weight: 300;
}

footer a, footer a.nav-link {
	display: block;
	padding: 0.5rem 1rem;
	color: #aaa;
	text-decoration: none;
	font-weight: 300;
}

footer a:hover {
	color: #fff;
}

footer p {
	margin: 0 0 0.4rem;
	padding: 0;
}

footer p span {
	white-space: nowrap;
}

footer i {
	color: #aaa;
}

footer div.fbox {
	min-height: 3rem;
}

footer div.fbox > div:first-child {
	width: 2rem;
	font-size: 1.2rem;
	text-align: center;
}

footer div.fbox > div:last-child {
	line-height: 1rem;
	text-align: left;
}

/* ─── Bootstrap button overrides ─── */

.btn-primary {
	--bs-btn-bg: var(--primary-color);
	--bs-btn-border-color: var(--primary-color);
	--bs-btn-hover-bg: #f4b223;
	--bs-btn-hover-border-color: #f4b223;
	--bs-btn-active-bg: #d4a01e;
	--bs-btn-active-border-color: #d4a01e;
	--bs-btn-disabled-bg: #aaa;
	--bs-btn-disabled-border-color: #aaa;
	background-color: var(--primary-color);
	border-color: var(--primary-color);
	color: #fff;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
	background-color: #f4b223 !important;
	border-color: #f4b223 !important;
	color: #fff !important;
}

.btn-secondary {
	background-color: var(--secondary-color);
	border-color: var(--secondary-color);
	color: #fff;
}

.btn-outline-primary {
	border-color: var(--primary-color);
	color: var(--primary-color);
}

.btn-outline-primary:hover {
	background-color: var(--primary-color);
	border-color: var(--primary-color);
	color: #fff;
}

.btn-outline-secondary {
	border-color: var(--secondary-color);
	color: var(--secondary-color);
}

.btn-outline-secondary:hover {
	background-color: var(--secondary-color);
	border-color: var(--secondary-color);
	color: #fff;
}

.btn-link { color: var(--primary-color); }
.btn-link:hover { color: #f4b223; }

/* ─── Card hover / interaction ─── */

.item_push:hover {
	transform: scale(0.99);
}

.img-zoom {
	transition: transform .6s;
}

.card:hover .img-zoom {
	transform: scale(1.3);
}

/* ─── Nav buttons bar ─── */
.nav-buttons {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	margin: 0 -20px;
	background-color: #ddd;
	border-bottom: 1px solid #ccc;
	position: sticky;
	top: 80px;
	z-index: 100;
}

.nav-btn {
	color: #666 !important;
	font-size: 0.92rem;
	font-weight: 600;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	padding: 0.75rem 1.25rem;
	text-decoration: none;
	transition: color 0.2s ease;
}

.nav-btn:hover {
	color: var(--primary-color) !important;
}

/* ctrl_clear fade utility */
.ctrl_clear { opacity: 0; pointer-events: none; transition: opacity 0.6s; }
.ctrl_clear.visible { opacity: 1; pointer-events: auto; }

/* ─── Responsive ─── */

@media (min-width: 860px) {
	nav.navbar div.menu_nav div.logo_box {
		padding: 2px 10px 0;
	}
}

@media (min-width: 991.98px) {
	nav.navbar div.menu_nav div.logo_box {
		padding: 2px 20px 0;
	}

	body .bg-filters {
		padding-top: 84px;
	}

	body.is_stuck .bg-filters {
		padding-top: 0;
	}

	body .bg-filters .ctrl_region.active {
		border-bottom: 4px solid var(--primary-color) !important;
	}

	body.is_stuck .bg-filters .ctrl_options {
		position: fixed;
		right: 1rem;
		top: 84px;
		max-width: 75%;
		z-index: 1020;
		padding-right: 5px !important;
	}

	body .bg-filters h1 {
		display: inline;
		z-index: 1;
	}

	body.is_stuck #content {
		padding-top: 150px !important;
	}
}


@media (min-width: 860px) and (max-width: 991.98px) {
	nav.navbar div.menu_box a.nav-link {
		padding-top: 2px;
	}

	nav.navbar div.acct_box a.fa-stack {
		padding-top: 2px;
		font-size: 0.8rem;
	}

	body.is_stuck .bg-filters {
		padding-top: 0;
	}

	body.is_stuck .bg-filters .ctrl_options {
		position: fixed;
		right: 2rem;
		top: 84px;
		z-index: 1020;
	}

	body.is_stuck #content {
		padding-top: 150px !important;
	}
}

/* Override Bootstrap d-md-* (768px) to match our 860px mobile breakpoint */
@media (min-width: 768px) and (max-width: 859.98px)
{
	#nav_mobile_btn.d-md-none { display: flex !important; }
	.offcanvas-header.d-md-none { display: block !important; }
	nav.navbar .nav_filters.d-none.d-md-flex { display: none !important; }
	.footer-nav.d-none.d-md-block { display: none !important; }
	nav.navbar .menu_box.col-md { flex: 0 0 100%; max-width: 100%; }
	nav.navbar .acct_box.col-md-auto { flex: 0 0 100%; max-width: 100%; }
	nav.navbar .d-none.d-md-inline { display: none !important; }
	nav.navbar .d-inline.d-md-none { display: inline !important; }
	nav.navbar .d-block.d-md-none { display: block !important; }
	.nav_mobile_controls.d-md-none { display: block !important; }

	/* Force offcanvas to stay as overlay, not inline */
	#nav_mobile.offcanvas {
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		z-index: 1045 !important;
		width: var(--bs-offcanvas-width, 400px) !important;
		visibility: hidden !important;
		background-color: #fff !important;
		transform: translateX(100%) !important;
		transition: none !important;
		border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color) !important;
	}
	#nav_mobile.offcanvas.showing,
	#nav_mobile.offcanvas.hiding {
		transition: transform 0.3s ease-in-out, visibility 0.3s ease-in-out !important;
	}
	#nav_mobile.offcanvas.show,
	#nav_mobile.offcanvas.showing {
		visibility: visible !important;
		transform: none !important;
	}
	#nav_mobile.offcanvas.hiding {
		visibility: visible !important;
		transform: translateX(100%) !important;
	}
}

@media (max-width: 859.98px) {
	nav.navbar div.menu_nav img {
		max-height: 100px;
		margin-top: -8px;
	}

	nav.navbar div.menu_nav div.logo_box {
		overflow: visible;
	}

	nav.navbar div.menu_options,
	nav.navbar div.menu_box,
	nav.navbar div.acct_box {
		height: auto;
		margin: 0;
		padding: 0;
	}

	nav.navbar div.menu_options,
	nav.navbar div.menu_box ul.nav,
	nav.navbar div.acct_box ul.nav {
		flex-wrap: wrap;
	}

	nav.navbar div.menu_box ul.nav li,
	nav.navbar div.acct_box ul.nav li {
		display: block;
		width: 100%;
		margin: 0;
		padding: 0 1.5rem 0.5rem;
	}

	nav.navbar div.menu_box a.nav-link,
	nav.navbar div.acct_box a.nav-link {
		display: block;
		width: 100%;
		margin: 0;
		padding: 0.4rem 0;
		color: #666;
		font-size: 20px;
		font-weight: 600;
		text-align: right;
	}

	nav.navbar div.acct_box ul.nav li:first-child {
		margin-top: 1.5rem;
	}

	nav.navbar div.acct_box ul.nav li.nav_social {
		width: auto;
		float: right;
		padding: 0 0.5rem 0.5rem 0;
		text-align: right;
	}

	nav.navbar div.acct_box ul.nav li.nav_social:last-child {
		padding: 0 1.5rem 0.5rem 0;
	}

	.ctrl_options {
	}

	.bg-filters button, .bg-filters a {
		padding: 6px 8px;
	}

	body .sticky-top.bg-filters {
		padding-right: 0 !important;
		z-index: 999;
	}

	body.is_stuck .bg-filters .ctrl_options {
		right: 0;
	}

	body.is_stuck nav.navbar div.menu_nav {
		height: 80px !important;
	}

	body #content {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.nav-buttons {
		top: calc(100vw * 0.10185);
	}

	.nav-btn {
		width: 50%;
		text-align: center;
	}
}

@media (min-width: 576px) and (max-width: 767.98px) {
	.nav-btn {
		width: 33.333%;
	}
}

@media screen and (max-width: 920px) {
	footer p span {
		white-space: normal;
	}
}
