:root {
	--nav_black: #333;
	--red: #a80000;
	--foot_gray: #999;
}


body,html {
	margin:0;
	padding:0;
	height:100%;
	width:100%;
	box-sizing: border-box;
}

body {
	font:16px Arial;
	background-color:#DDD;
}

* {
	box-sizing:inherit;
}

.mobile_controls {
	display:none;
}

nav {
	position:fixed;
	z-index:3;
	top:0;
	left:0;
	width:100%;
	background-color:var(--nav_black);
	border-bottom:2px solid #999;
	padding:0 30px;
}

#navul {
	padding:0 0;
	margin:0 auto;

	list-style: none;
	display:flex;
	justify-content:space-between;
	align-items:center;
	align-content:flex-start;
	flex-flow:row nowrap;
	gap:1.5em;

	width:100%;
	max-width:1920px;
	

	font:400 1.5em Oswald;
	text-transform: uppercase;
}

#navul a {
	text-decoration:none;
	color:#DDD;
}

#navul a:hover {
	color:white;
}

#navul li {
	white-space: nowrap;
}

#navul li:not(:first-child):not(:last-child) {
	padding:.25em 0;
}

#navul li:first-child {
	overflow-y:visible;
	max-height:2em; /* match font size + pad */
	flex:1 1 100%;
	max-width:190px;
}

#nav_logo_wrap img{
	flex:1 1 100%;
	text-align: right;
	width:100%;
	height:auto;
	max-width:190px;
	display:block;
	margin:0;
	padding:0;
	transition: max-width .25s;
}

#nav_logo_wrap.collapsed img {
	max-width:75px;
}


#navul li:last-child {
	flex:1 1 100%;
	text-align: right;
}




.book_flag {
	overflow-y:visible;
	max-height:2em;  /* match font size + pad */
	text-align:center;

}

.book_flag a {
	
}

.book_flag a {
	display:inline-block;
	background-color:var(--red);
	padding:10px 20px 0 20px;
	line-height:1em;
	text-align:center;
	color:white;
	transition: background-color .25s;
	width:fit-content;

	box-shadow: 0px 4px 7px 0px rgba(0,0,0,0.35);
}

.book_flag a:hover {
	background-color:#d60203;
}

.book_flag a span {
	display:block;
	font-size:.75em;
}

.book_flag img {
	display:block;
	margin:20px auto;
	width:100%;
	height:auto;
	max-width:80px;
}

.under_nav {
	background-image:url(images/undernav.webp);
	height:100px;
	background-position:center center;
	max-width:1920px;
	margin:0 auto;
	box-shadow: 0px 10px 20px 5px rgba(0, 0, 0, 0.5);
	position:relative;
}

.hero {
	max-width:1920px;
	margin:0 auto;
}

.hero img {
	width:100%;
	height:auto;
	max-width:1920px;
	margin:0 auto;
	display:block;
}

#trailers {
	scroll-margin-top:40px;
}

.trailer_flex {

	display:flex;
	justify-content:center;
	align-items:stretch;
	align-content:flex-start;
	flex-flow:row wrap;

	padding:20px;
	max-width:1400px;
	margin:60px auto 0 auto;
	gap:10px;
}

.trailer_flex>div {
	flex:1 0 33%;
	min-width:250px;
	max-width:400px;
	background-color:white;
	margin-top:15px;
}


.trailer_item {
	padding:15px;
	display:flex;
	justify-content:space-between;
	align-items:center;
	align-content:flex-start;
	flex-flow:column;
	
}

.trailer_item h3 {
	font-size:1.75em;
	text-align: center;
	font-weight:700;
	text-transform: uppercase;
	background-color:var(--nav_black);
	color:white;
	padding:5px 10px;
	margin:0;
}

.trailer_item h3 span {
	text-transform: lowercase;
}

.trailer_item h4 {
	font-size:1.25em;
	margin:.75em 0;
	background-color:#EEE;
	padding:4px 10px;
}

.trailer_item h4 span {
	/*font-size:1rem;
	font-weight:normal;*/
}

.trailer_item ul {
	margin-top:0;
}

.specs_table {
	width:100%;
}

.specs_table tr td:first-child {
	font-weight:bold;
}

.specs_table tr td {
	padding:3px 0;
	border-bottom:1px solid #CCC;
}

.tlinkwrap {
	text-align:center;
}

.tlinkwrap {
	margin-top:50px;
}

.tlinkwrap a {
	display:inline-block;
	background-color:var(--red);
	padding:15px 30px;
	line-height:1em;
	font-size:1.35em;
	text-align:center;
	color:white;
	transition: background-color .25s;
	width:fit-content;
	text-decoration: none;
}

.tlinkwrap a:hover {
	background-color:#d60203;
}

.gen_pad {
	padding-left:20px;
	padding-right:20px;
}

.small_width {
	max-width:1400px;
	margin-left:auto;
	margin-right:auto;
}

.gen_marg {
	margin-top:60px;
}

.gen_content {

}

.gen_content h1 {
		font:600 2.5em Oswald;
		text-transform: uppercase;
		line-height:1em;
}

.gen_content h2 {
		font:600 2em Oswald;
		text-transform: uppercase;
}

.gen_content p {
	font-size:1.125em;
	line-height:1.5em;
	letter-spacing:.005em;
}

.white_bar {
	background-color:white;
	padding:20px 0;
}

.hp_flex {
	display:flex;
	justify-content:space-between;
	align-items:center;
	flex-flow:row nowrap;
}

.hp_flex div:last-child {
	flex:0 0 45%;
	max-width:585px;
}

.hp_flex div:first-child {
	padding-right:40px;
}

.hp_flex img {
	width:100%;
	height:auto;
	max-width:585px;
}

footer {
	background-color: #999;
	background-image: url(images/footer_back.webp?v=2);
	background-attachment: fixed;
	background-position: left top;
	background-repeat: repeat;
	padding:50px 20px;
}

footer>div {
	display:flex;
	justify-content:space-between;
	align-items:center;
	flex-flow:row nowrap;
}

footer>div>div {
	padding:20px;
}

footer>div>div:first-child,
footer>div>div:last-child {
	flex:0 0 20%;
}

footer>div>div:first-child img {
	width:100%;
	height:auto;
	max-width:200px;
}

#footnavul {
	padding:0 0;
	margin:0 auto;

	list-style: none;
	display:flex;
	justify-content:space-between;
	align-items:center;
	align-content:flex-start;
	flex-flow:row wrap;
	/*gap:1.5em;*/

	width:100%;
	max-width:1920px;
	

	font:400 1.5em Oswald;

	text-transform: uppercase;
}

#footnavul a {
	text-decoration:none;
	color:#DDD;
}

#footnavul a:hover {
	color:white;
}

#footnavul li {
	white-space: nowrap;
	margin:0 10px;
}

footer address p {
	font-size:1.125em;
	font-weight:300;
	color:white;
	font-style:normal;
	margin:5px;
}

footer address p a {
	color:yellow;
	font-weight:200;
}
footer address p a:hover {
	color:#CCEEFF;
}

.foot_social_flex {
	display:flex;
	justify-content:flex-start;
	align-items:center;
	align-content:flex-start;
	flex-flow:row nowrap;
}

.foot_social_flex a {
	padding:10px;
	transition:opacity .75s;
}

.foot_social_flex a:hover {
	transition:opacity .1s;
	opacity:.5;
}

.foot_social_flex svg {
	fill:white;
	width:100%;
	height:auto;
	max-width:35px;
}

.emaddr {
	font-size:1rem;
}


.faq dt {
	background-color: var(--red);
	color:white;
	padding:5px 15px;
	font-size:1.5em;
}

.faq dd {
	margin:0;
	padding:35px 15px;
	font-size:1.25em;
	vertical-align:middle;
}


.faq dt span {
	vertical-align:middle;
}

.faq dt span:first-of-type,
.faq dd span {
	font-size:1.5em;
	font-weight:600;
	text-transform: uppercase;
	display:inline-block;
	padding-right:10px;
	line-height:1em;

}

.contactform>div {
	margin-bottom:10px;
	padding-bottom:10px;
}


.contactform label {
	display:block;
}

.contactform input,
.contactform textarea {
	width:100%;
	max-width:400px;
	padding:5px 10px;
	font-size:1.25em;
}

.contactform textarea {
	height:6em;
}

.contactform button,
.dialog .okButton {
	font:400 1.5em Oswald;
	background-color:var(--red);
	color:white;
	padding:5px 30px;
	cursor:pointer;
	border:none;
	outline:none;
	text-transform: uppercase;
	transition: background-color .25s;
}

.contactform button:hover,
.dialog .okButton:hover {
	background-color:#d60203;
}

.service_areas_wrap {
	background:url(images/service_bkg.webp?v=3);
	background-position:center center;
	background-size:cover;
}

.service_areas {
	padding:80px 20px;
}

.service_areas h2 {
		font:600 2.5em Oswald;
		text-transform: uppercase;
		text-align:center;
		margin:0 0 40px 0;
}

.service_areas ul {
	display:flex;
	justify-content:center;
	align-items:center;
	align-content:flex-start;
	flex-flow:row wrap;
	margin:0 auto;
	padding:0;
	list-style:none;
	font-size:1.5em;
	max-width:950px;
}

.service_areas li {
	padding:10px 20px;
}


.checklist li {
	margin-bottom:1em;
	font-size:1.25em;
}

.checklist li strong {
	display:block;
}


.captcha {
	outline:1px solid #CCC;
	width:100%;
	max-width:600px;
	padding:15px;
}

.captcha p {
	margin:0 0 20px 0;
}

.captcha img {
	display:inline-block;
	width:100%;
	height:auto;
	max-width:250px;
}


#overlay {
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	height:100vh;
	background:rgba(0,0,0,.75);
	z-index:900;
	display:none;
}

#overlay>div {
	display:table;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	height:100vh;
}

#overlay>div>div {
	display:table-cell;
	text-align:center;
	vertical-align:middle;
}

.loader {
  --color-1: #fff;
  --size: 1px;

  position:absolute;
  top:50%;
  left:50%;
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%); 
  	

  width: calc(85 * var(--size));
  height: calc(50 * var(--size));
  background-repeat: no-repeat;
  background-image:
    linear-gradient(var(--color-1) calc(50 * var(--size)), transparent 0),
    linear-gradient(var(--color-1) calc(50 * var(--size)), transparent 0),
    linear-gradient(var(--color-1) calc(50 * var(--size)), transparent 0),
    linear-gradient(var(--color-1) calc(50 * var(--size)), transparent 0),
    linear-gradient(var(--color-1) calc(50 * var(--size)), transparent 0),
    linear-gradient(var(--color-1) calc(50 * var(--size)), transparent 0);
  background-position:
    0 center,
    calc(15 * var(--size)) center,
    calc(30 * var(--size)) center,
    calc(45 * var(--size)) center,
    calc(60 * var(--size)) center,
    calc(75 * var(--size)) center,
    calc(90 * var(--size)) center;
  animation: rikSpikeRoll 0.65s linear infinite alternate;
}
@keyframes rikSpikeRoll {
  0% {
    background-size: calc(10 * var(--size)) calc(3 * var(--size));
  }
  16% {
    background-size:
      calc(10 * var(--size)) calc(50 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size));
  }
  33% {
    background-size:
      calc(10 * var(--size)) calc(30 * var(--size)),
      calc(10 * var(--size)) calc(50 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size));
  }
  50% {
    background-size:
      calc(10 * var(--size)) calc(10 * var(--size)),
      calc(10 * var(--size)) calc(30 * var(--size)),
      calc(10 * var(--size)) calc(50 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size));
  }
  66% {
    background-size:
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(10 * var(--size)),
      calc(10 * var(--size)) calc(30 * var(--size)),
      calc(10 * var(--size)) calc(50 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size));
  }
  83% {
    background-size:
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(10 * var(--size)),
      calc(10 * var(--size)) calc(30 * var(--size)),
      calc(10 * var(--size)) calc(50 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size));
  }
  100% {
    background-size:
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(3 * var(--size)),
      calc(10 * var(--size)) calc(10 * var(--size)),
      calc(10 * var(--size)) calc(30 * var(--size)),
      calc(10 * var(--size)) calc(50 * var(--size));
  }
}

.dialog {
	background:#FAFAFA;
	display:inline-block;
	min-width:30%;
	max-width:600px;
	color:#2d4696;
	border-radius:3px;
}


.dialogHead {
	font:1.25em Arial, Helvetica, sans-serif;
	color:white;
	margin:0;
	padding:.25em .5em;
	background:#880000;
	text-align:left;
}

.dialog .dialogTxt,
.dialogButton_wrap {
	margin-top:20px;
	font-size:18px;
	padding:20px;
}

.thanksWrapper {
	display:none;
	text-align:center;
	min-height:600px;
	font-weight:bold;
	font-size:1.25em;
}


.google_bar {
	background-color: #333;
	padding:20px;
	text-align:center;
}



.google_bar a:hover img{
	transform: scale(1.1);
}

.google_bar img {
	transition: transform .25s;
	width:100%;
	height:auto;
	max-width:400px;
	margin:0 auto;
	display:inline-block;
}