:root {
	--dcl-text: #333;
	--dcl-heading: #222;
	--dcl-accent: #b800001a;
	--dcl-link: #1a5f7a;
	--dcl-dark: #16212b;
	--dcl-band: #1d2b36;
	--dcl-border: #e2e5e8;
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }

body {
	font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 18px;
	line-height: 1.66;
	color: var(--dcl-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: inline-block; }
a { color: var(--dcl-link); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 { color: var(--dcl-heading); font-weight: 800; line-height: 1.2; margin-bottom: .6em; }
h1 { font-size: 2.2rem; }
h2 { font-size: 1.6rem; }
h3 { font-size: 1.3rem; }
p { margin-bottom: 1.4em; }
strong { font-weight: 600; }

.screen-reader-text {
	position: absolute; width: 1px; height: 1px; margin: -1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 10px; top: 10px; background: #fff; padding: 10px; z-index: 1000; }

.container { max-width: 1000px; margin: 0 auto; padding: 0 24px; }

/* ---------- header / hero ---------- */

#site-header { position: relative; background: var(--dcl-dark); }
.custom-header { position: relative; }
.header-media {
	background-size: cover;
	background-position: center;
	background-color: var(--dcl-dark);
	min-height: 38vh;
}
#site-header.is-front .header-media { min-height: 66vh; }
.custom-header::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(11,18,24,.25) 0%, rgba(11,18,24,.55) 100%);
	pointer-events: none;
}

.site-branding-wrap {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	z-index: 2;
}
.site-branding { width: 100%; }
.site-brand-link, .site-brand-link:hover { text-decoration: none; display: inline-block; }
.site-title {
	font-size: clamp(2.4rem, 6vw, 4.2rem);
	font-weight: 800;
	color: #fff;
	line-height: 1.05;
	letter-spacing: -.5px;
	text-shadow: 0 2px 18px rgba(0,0,0,.4);
}
.site-description {
	color: rgba(255,255,255,.92);
	font-size: clamp(1rem, 2.2vw, 1.35rem);
	font-weight: 300;
	margin-top: .5em;
	text-shadow: 0 1px 10px rgba(0,0,0,.4);
	margin-bottom: 0;
}

/* ---------- nav ---------- */

.navigation-top {
	background: var(--dcl-band);
	position: sticky;
	top: 0;
	z-index: 20;
	box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.navigation-top .container { display: flex; align-items: center; }
#site-navigation { flex: 1; }
#menu-primary { list-style: none; display: flex; flex-wrap: wrap; }
#menu-primary li { position: relative; }
#menu-primary a {
	display: block;
	padding: 16px 20px;
	color: rgba(255,255,255,.85);
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .3px;
}
#menu-primary a:hover { color: #fff; background: rgba(255,255,255,.08); text-decoration: none; }
#menu-primary .current-menu-item > a { color: #fff; box-shadow: inset 0 -3px 0 #6fb1c9; }

#pull { display: none; }

/* ---------- content ---------- */

.site-content { padding: 56px 0 64px; }
.site-content .container { max-width: 760px; }
.entry-header { margin-bottom: 30px; }
.entry-title { font-size: 2.1rem; }
.entry-front .entry-title { text-align: center; }
.tagline {
	text-align: center;
	color: var(--dcl-heading);
	background: #fff;
	font-size: clamp(1.3rem, 2.6vw, 1.9rem);
	font-weight: 800;
	line-height: 1.3;
	margin: 1.2em 0 1.4em;
}
.entry-content > *:first-child { margin-top: 0; }
.entry-content img { border-radius: 3px; }
.entry-content p img.alignnone,
.entry-content img.size-full { display: block; margin: 0 auto 1.4em; }
.alignright { float: right; margin: 6px 0 20px 28px; max-width: 45%; }
.alignleft { float: left; margin: 6px 28px 20px 0; max-width: 45%; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.entry-content ul, .entry-content ol { margin: 0 0 1.4em 1.3em; }
.entry-content li { margin-bottom: .5em; }
.entry-content a { text-decoration: underline; }

.post-list { list-style: none; margin: 0; }
.post-list li { padding: 12px 0; border-bottom: 1px solid var(--dcl-border); font-size: 1.15rem; }

/* ---------- footer ---------- */

#site-footer { background: var(--dcl-dark); color: rgba(255,255,255,.8); margin-top: 40px; }
.footer-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	justify-content: space-between;
	padding: 48px 0 36px;
}
.footer-title { font-size: 1.25rem; font-weight: 800; color: #fff; margin-bottom: .3em; }
.footer-brand { flex: 1 1 280px; }
.footer-brand p { margin-bottom: 0; }
.footer-contact { flex: 0 1 auto; }
.footer-contact p { margin-bottom: .25em; }
.footer-contact a { color: #fff; }
.footer-contact .usdot { color: rgba(255,255,255,.55); font-size: .85rem; margin-top: .6em; }
.copyrights { border-top: 1px solid rgba(255,255,255,.12); }
.copyrights .container { padding-top: 16px; padding-bottom: 16px; }
.copyrights span { font-size: .85rem; color: rgba(255,255,255,.55); }

/* ---------- responsive ---------- */

@media (max-width: 640px) {
	body { font-size: 16px; }
	.navigation-top .container { padding: 0; }
	#pull {
		display: block;
		width: 56px; height: 52px;
		position: relative;
		flex: 0 0 auto;
	}
	#pull span, #pull span::before, #pull span::after {
		content: ""; position: absolute; left: 17px; width: 22px; height: 2px; background: #fff;
	}
	#pull span { top: 25px; }
	#pull span::before { top: -7px; left: 0; }
	#pull span::after { top: 7px; left: 0; }
	#site-navigation { flex-basis: 100%; order: 2; }
	#menu-primary { display: none; flex-direction: column; width: 100%; }
	#menu-primary.open { display: flex; }
	#menu-primary li { width: 100%; border-top: 1px solid rgba(255,255,255,.08); }
	#menu-primary a { padding: 14px 24px; }
	.alignright, .alignleft { float: none; margin: 0 auto 20px; max-width: 100%; }
}
