html, body {
	background: black;
  width: 100vw;
  height: 100vh;
}
body {
	margin: 0;
	padding: 0;
	width: 100vw;
	height: 100vh;
	font-family: 'Montserrat', sans-serif;
}
* {
	box-sizing: border-box;
}
a {text-decoration: none; font-weight: bold;}
.jslink {cursor: pointer;}

/* Contact Banner */
#contact_banner_container {
	background: black;
	width: 100%;
}
#contact_banner {
	width: 100%;
	max-width: 1200px;
	padding: 20px;
	margin: auto;
	position: relative;
}
#contact_banner a {
	text-decoration: none;
	color: white;
	font-size: 14px;
	padding-left: 30px;
	position: relative;
}
#contact_banner > a:before {
	content: "";
	display: block;
	width: 25px;
	height: 25px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background-image: url(../img/mail_icon.svg);
	background-size: 100%;
}

#social_icons {
	position: absolute;
	right: 20px;
}
#social_icons a {
	float: left;
}
#social_icons img {
	height: 20px;
}

/* Popups */
.popup_container {
  display: table;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 99;
  transition: background-color 0s;
}
.popup_container.open {background-color: #0007;}
.popup_container.closed {background-color: #0000;}
.popup {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}
.outside_space {
  width: 100vw;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
}
.popup_panel {
  display: inline-table;
  background: white;
  padding: 0px;
  box-sizing: border-box;
  box-shadow: 0 0 20px #0004;
  border-radius: 3px;
  overflow: hidden;
  width: 800px;
  height: 447px;
  position: relative;
  transition: transform .1s, opacity 0.4s;
}
.closed .popup_panel {
  transform: scale(.95);
  opacity: 0;
}
.popup_panel a {
  color: #a87e4a;
}
.popup_text, .popup_img {
  position: relative;
  display: table-cell;
  vertical-align: middle;
  text-align: center;
  width: 50%;
  max-width: 400px;
}
.popup_img img {
  float: left;
  width: 100%;
  -webkit-user-select: none; /* Safari */
  -moz-user-select: none; /* Firefox */
  -ms-user-select: none; /* IE10+/Edge */
  user-select: none; /* Standard */
}
.popup_text table {
  width: 100%;
  height: 100%;
  border-collapse: collapse;
}
.vert_img {display: block;}
.horz_img {display: none;}
.popup_close_x {
  position: absolute;
  top: 0;
  right: 0;
  font-size: 26px;
  font-weight: bold;
  color: white;
  background: #3d4142;
  border-radius: 100px;
  width: 30px;
  height: 30px;
  text-align: center;
  transform: rotate(45deg);
  cursor: pointer;
  margin: 10px 10px 0 0;
  transition: all .1s;
}
.popup_close_x:hover {
  background: white;
  color: #3d4142;
}

/* Contact Popup */
.call_info, .email_info, .address_info {
  box-sizing: border-box;
  padding: 10px;
  border-bottom: 2px solid #000a;
  line-height: 1.5;
  letter-spacing: 1px;
  transition: all .1s;
  width: 100%;
  text-align: center;
}
.call_info:hover, .email_info:hover, .address_info:hover {
  background: #0003;
}
.call_info {border-color: #0001; border-top: none;}
.email_info {border-color: #0002;}
.address_info {border-color: #0003; border-bottom: none;}

@media (max-width: 800px) {
  #contact_popup .popup_panel {
    width: calc(100vw - 20px);
    height: calc((100vw - 20px) * 447/800);
  }
}
@media (max-width: 550px) {
  #contact_popup .popup_text, #contact_popup .popup_img {
    display: block;
    width: 100%;
    max-width: none;
  }
  #contact_popup .popup_img {
    height: 330px;
    background: url('../img/contact_rifle-horz.png');
    background-size: cover;
    background-repeat: no-repeat;
  }

  #contact_popup .vert_img {display: none;}
  #contact_popup .horz_img {display: block;}
}

/* About Popup */
#about_popup .popup_panel {
  width: 1100px;
}
#about_popup p {
  margin: 20px 40px;
  max-width: 1200px;
  letter-spacing: 2px;
  line-height: 1.5;
  font-size: 16px;
  text-align: left;
}
#about_popup h1 {
  margin: 0px;
  padding-left: 40px;
  text-transform: uppercase;
  letter-spacing: 3px;
}
#about_popup .popup_text {
  padding: 30px 0;
  text-align: left;
}
#about_popup .popup_img {
  background-image: url(../img/contact_rifle-vert.png);
  background-size: cover;
  background-position: center top;
  width: calc(100% - 20px);
}
#about_popup ul {
  margin-left: 20px;
  letter-spacing: 2px;
}

@media (max-width: 1100px) {
  #about_popup .popup_panel {
    width: calc(100vw - 20px);
  }
  #about_popup p {
    font-size: calc(14px + 2 * ((100vw - 700px)/400));
  }
}
@media (max-width: 800px) {
  #about_popup .popup_text, #about_popup .popup_img {
    display: block;
    width: 100%;
    max-width: none;
  }

  #about_popup .popup_img {
    height: 500px;
  }
}

/* Header */
#header_container {
	background: white;
	height: 125px;
}

#header {
	width: 100%;
	max-width: 1200px;
	height: 125px;
	position: relative;
	margin: auto;
}

#logo {
	height: 100%;
	display: inline-block;
	padding: 10px;
}

#nav {
	list-style-type: none;
	padding: 0;
	margin: 0;
	padding-left: 50px;
	width: calc(100% - 400/284*125px);
	float: right;
	background: none;
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}
#nav li {
	font-size: 16px;
	float: left;
	text-transform: uppercase;
	padding: 10px;
	margin: 0;
	text-align: center;
}
#nav a, #nav span {
	color: black;
	text-decoration: none;
	position: relative;
	font-weight: bold;
}
#nav a:after, #nav span:after {
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background: black;
}

#nav_toggle {
	position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    cursor: pointer;
    display: none;
}

@media (max-width: 1200px) {
	#nav  {
		padding-left: calc(50 * ((100vw - 767px) / 433));
	}
	#nav li {
		font-size: calc(9px + 7 * ((100vw - 767px) / 433));
	}
}
@media (max-width: 767px) {
	#nav_toggle {
		display: block;
	}
	#nav  {
		padding-left: 0px;
		display: none;
	}
	#nav li {
		font-size: 9px;
	}
}

@media (max-width: 500px) {
	#nav_toggle {
		left: calc(205px + 45 * ((100vw - 250px) / 250));
	}
}

/* Slideshow */
#slideshow {
	background: black;
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
	height: 670px;
	text-align: center;
	position: relative;
	width: 100%;
	margin: auto;
}
.slideshow_arrow {
	width: 80px;
	height: 80px;
	position: absolute;
	top: 50%;
	opacity: .8;
	cursor: pointer;
	transition: all .2s;
}
#arrow_prev {
	left: 20px;
	transform: scaleX(-1) translateY(-50%);
}
#arrow_next {
	right: 20px;
	transform: translateY(-50%);
}
#arrow_prev:active {
	transform: scaleX(-1) translateY(-50%) scale(.8);
}
#arrow_next:active {
	transform: translateY(-50%) scale(.8);
}
.slideshow_img {
    background-image: url(../img/slide_combat_training.png);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    height: 670px;
    text-align: center;
    position: absolute;
    width: 100%;
    transition: opacity .3s, background-image 0s;
}

#slideshow_info {
	position: absolute;
	bottom: 25%;
	width: 100%;
	font-weight: bold;
}
#slide_text {
	font-size: 30px;
	display: block;
	text-shadow: 0 0 10px black;
	color: white;
}
.slide_btn {
	background: black;
	width: 300px;
	padding: 15px;
	margin-top: 20px;
	font-size: 20px;
	font-weight: bold;
	border-radius: 100px;
	display: inline-block;
	text-decoration: none;
}

#btn_contact {background: black; color: white;}
#btn_train {background: #ccff00; color: black;}
#content {
	width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  padding: 0px 10px;
  box-shadow: 0 0 10px #0007;
}

.panel {
	width: calc(25% - 20px);
	background: white;
	border-radius: 3px;
}
.panel img {
	width: 100%;
  background-size: 100% 100%;
}
.panel_text {
	padding: 10px;
}
.panel h3 {
	text-align: center;
}

@media (max-width: 1000px) {
	.panel {
		width: calc(50% - 20px);
		margin-bottom: 20px;
	}
}

@media (max-width: 767px) {
	.panel {
		width: 100%;
	}
}

#content2 {
	color: white;
	position: relative;
	padding: 20px;
	padding-top: 0px;

}
#content2 img {
	width: 50%;
}
#content2 img:first-child {
	float: left;
}
#content2 p {
	margin-top: 20px;
}

/* Training Page */
#content.training {
  background: #9a9a9a;
  background: url(https://www.transparenttextures.com/patterns/crissxcross.png), linear-gradient(to right, #f1f1f1, #9a9a9a, #f1f1f1);
  justify-content: center;
}
.training_info {
  width: calc(50% - 20px);
  max-width: 600px;
  background: #f1f1f1;
  margin: 20px 10px;
  padding: 20px;
  border-radius: 3px;
  box-shadow: 0 0 20px #aaa;
}
.training_info h2 {
  margin-top: 0;
  color: #24477f;
  font-size: 18px;
}
.training_info ul {
  margin: 0;
}
.training_info i {
  color: #24477f;
  font-weight: bold;
}

@media (max-width: 767px) {
	.training_info {
		width: calc(100% - 20px);
    max-width: none;
	}
  .training_info:first-of-type {
    margin-bottom: 0;
  }
}

.absolute {position: absolute;}
.relative {position: relative;}

/* Contact Us Form */
.contact_box {
  padding: 20px;
  background: #0e75b055;
  color: #fff;
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 3px;
}

.contact_box form {
    display: flex;
    flex-wrap: nowrap;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 100%;
    position: relative;
}

#cb2 {
    margin: 20px;
    width: calc(100% - 40px);
    height: auto;
}

.cbox_container {
  display: flex;
  justify-content: space-around;
}
.cbox1, .cbox2 {
  width: 42%;
}
#cbox_hr {
  display: none;
}
@media (max-width: 767px) {
  .cbox_container {
    display: block;
  }
  .cbox1, .cbox2 {
    width: 100%;
  }
  #cbox_hr {
    display: block;
    width: 20%;
    margin: 50px auto;
  }
}

.contact_box h1 {
  text-align: center;
  color: white;
  font-size: 20px;
}
.contact_box input, .submit_msg {
  margin: 0px;
  margin-bottom: 10px;
  padding: 10px;
  border: none;
  border-radius: 3px;
  background: #fffc;
  color: black;
  width: 100%;
}
.contact_box textarea {
  margin: 0px;
  margin-bottom: 10px;
  padding: 10px;
  width: 100%;
  flex-basis: 150px;
  flex-grow: 4;
  resize: none;
  border-radius: 3px;
  background: #fffd;
}
.form_submitted {
  position: relative;
  width: 100%;
  text-align: center;
}
.form_submitted input, .submit_msg {
  background: black;
  color: white;
  padding: 15px;
  border-radius: 10px;
  box-shadow: none;
  margin: 0px;
}
.submit_msg {
  position: absolute;
  box-sizing: border-box;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  opacity: 0;
  z-index: -1;
}

input[type="submit"] {
    cursor: pointer;
}

@keyframes fade_out {
  0% {opacity: 1;}
  100% {opacity: 0;}
}
@keyframes message_sent_anim {
  0% {
    z-index: 1;
    opacity: 0;
    background: black;
    color: white;
    border: 2px solid transparent;
    font-weight: bold;
}
  100% {
    z-index: 1;
    opacity: 1;
    background: #27556f;
    color: lightgreen;
    border: 2px solid green;
    font-weight: bold;
  }
}

.required {
  color: red;
}

.contact_box input, .contact_box textarea {
  width: 100%;
  border: none;
}

/* Footer */
#footer {
  width: 100%;
  text-align: center;
  background: black;
  color: white;
  box-sizing: border-box;
  padding: 10px;
  padding-top: 30px;
  padding-bottom: 30px;
}

#footer a {
  font-weight: bold;
  color: white;
}

#footer img {
  height: 28px;
  margin-bottom: -5px;
  filter: brightness(10.0) drop-shadow(0 0 2px #fff);
}

/* Styles for mobile */
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) {
}

/* Styles for tablet */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) {
}

/* Don't forget your Retina CSS! */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
  body {
    background-size: 72px 72px;
  }
}