
@font-face {
  font-family: bernhard;
  src: url(/fonts/bernhard-modern-bt.ttf);
}

@font-face {
  font-family: bernhard-bold;
  src: url(/fonts/bernhard-modern-bold-bt.ttf);
}

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

body {
  font-family: Arial, Verdana, Helvetica, sans-serif;
}

h1, h2, h3, h4, h5, h6 {
  font-family: bernhard;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

a:focus, a {
  outline: none;
}

.mb-15{
  margin-bottom:15px;
}

.page-wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: #f9f9e4;
}

.header{
  height: 60px;
  background: transparent url(/images/bgtop.gif) 0px 0px repeat-x;
  border-bottom: 1px solid #c7c0a6;
  position: relative;
  width:100%;
}

.logo{
  z-index:99;
}

.header-wrapper{
  display:flex;
  justify-content:center;
  height: 60px;
  position: relative;
  max-width: 980px;
  margin:0 auto;
}

.main-wrapper{
  position: relative;
  max-width: 980px;
  margin:0 auto;
}

.home-body-wrapper{
  display:flex;
  position: relative;
  max-width: 980px;
  margin:0 auto;
  padding:20px;  
}

.showcase-body-wrapper{
  position: relative;
  max-width: 980px;
  margin:0 auto;
  padding:20px;  
}

.home-left{
  width:70%;
  padding-right:50px;
}

.home-right{
  width:30%;
}

.home-nav-wrapper{
  position: relative;
  max-width: 980px;
  margin:0 auto;
  padding-bottom:15px;
  padding-top:10px;
  background: transparent url(/images/bottom-home-nav.png) 0px bottom repeat-x;
}

.sub-nav-wrapper{
  position: relative;
  max-width: 980px;
  margin:0 auto;
  padding-bottom:15px;
  padding-top:15px;
  background: transparent url(/images/bottom-home-nav.png) 0px bottom repeat-x;
}

.header-phone-wrapper{
  position:absolute;
  right:0;
  top: 65%;
  transform: translateY(-50%);
}

.header-phone{
  color: #606060;
  font-size:17px;
  font-weight:500;
}

.slider-container{
  background: #141c3a url(/images/slider-bg.jpg) 0px 0px repeat-x;
  border-bottom: 1px solid #c7c0a6;
}

.slider-bottom{
  background: #f9f9e4 url(/images/slider-bottom.png) 0px 0px repeat-x;
  height: 30px;
}

.home-nav{
  background: #f9f9e4;
  padding-top:5px;
}

.main-nav{
  background: #f9f9e4;
  padding-top:25px;
}

.home-nav-link{
  font-family: bernhard;
  color:#3a3008;
  font-size:34px;
  line-height:0;
  margin:0 20px;
  text-decoration:none !important;
}

.home-nav-link.active{
  color:#a04503;
}

.sub-nav-link{
  color:#afa67e;
  font-size:17px;
  line-height:0;
  margin:0 20px;
  text-decoration:none !important;
}

.sub-nav-link.active{
  color:#a04503;
}

.home-body{
  background: #f9f9e4;
  flex: 1;
  padding-bottom:2%;
}

.body-copy{
  font-size: 14px;
  color: #605f5f;
  margin-bottom:15px;
  line-height: 20px;
}

.home-heading{
  font-family: bernhard;
  color:#69623e;
  font-size:28px;
  line-height: 36px;
}

.home-sub-heading{
  font-family: bernhard;
  color:#69623e;
  font-size:18px;
  line-height: 24px;
  margin-bottom:15px;
}

.sidebar-heading{
  font-family: bernhard;
  color:#3a3008;
  font-size:22px;
  line-height: 28px;
  padding-bottom:25px;
  text-align:center;
}

.sidebar-copy{
  font-size: 11px;
  color: #605f5f;
  margin-bottom:15px;
  line-height: 20px;
  padding:0 20px;
}

.sidebar-copy-italic{
  color:#afa67e;
  font-style:italic;
}

.top-image{
  padding-top:20px;
  padding-bottom:20px;
}


























/*** Modal ***/

.gallery{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
}

.gallery img {
  width: 120px;
  cursor: pointer;
  transition: opacity .2s ease;
}

.gallery img:hover {
  opacity: .85;
}

.showcase-gallery{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.showcase-gallery img {
  width: 120px;
  cursor: pointer;
  transition: opacity .2s ease;
}

.showcase-gallery img:hover {
  opacity: .85;
}

.modal {
  display: none; /* toggled via JS */
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.9);
  z-index: 1000;
  padding: 48px 60px;
  padding-top:5%;
}

.modal.open {
  display: block;
}

.modal-content {
  display: block;
  margin: 0 auto;
  max-width: 90vw;
  max-height: 80vh;
  animation: zoom .2s ease;
  user-select: none;
}

@keyframes zoom {
  from {transform: scale(.96); opacity: .6}
  to {transform: scale(1); opacity: 1}
}

.close {
  position: absolute !important;
  top: 12px;
  right: 18px;
  font-size: 56px;
  color: #fff;
  background: none;
  border: 0;
  cursor: pointer;
  transition: transform 0.5s ease-in-out;
}

.close:hover{
  transform: rotate(90deg);
}

.nav {
  position: absolute !important;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,.4);
  border: 0;
  color: #fff;
  font-size: 34px;
  line-height: 1;
  width: 52px;
  height: 52px;
  border-radius: 999px;
  cursor: pointer;
  z-index:2;
}
.nav:hover {
  background: rgba(255,255,255,.18);
}

.nav.prev {
  left: 18px;
}

.nav.next {
  right: 18px;
}

.modal::before {
  content: "";
  position: absolute;
  inset: 0;
}

.modal-content, .nav, .close, .caption { 
  position: relative;
  z-index: 1;
}

.caption-bar {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.caption {
  color: #ffffff;
  font-family:'Arial';
  font-size: 14px;
}

.cal-separator{
  color: #ffffff;
  font-family:'Arial';
  font-size: 14px;
}

#downloadLink {
  color: #ffffff;
  font-family:'Arial';
  font-size: 14px;
  text-decoration: none;
  cursor: pointer;
  transform: scale(1);
  transition: transform 0.3s ease;
}

#downloadLink:hover {
  transform: scale(1.1);
}

/*** Modal End ***/

/*** Slider ***/

.slider {
  position: relative;
  max-width: 980px;
  margin: 0 auto;
  overflow: hidden;
  aspect-ratio: 49 / 24;
}

.slider-slide {
  position: absolute;
  inset: 0;
  display: none;
  margin:0;
}

.slider-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.slider-dots {
  position: absolute;
  right:20px;
  bottom: 14px;
  display: flex;
  align-items:center;
  gap: 10px;
  padding: 8px 12px;
}

.slider-dot {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #f9f9e4;
  border: 2px solid #a6a6a6;
  padding: 0;
  cursor: pointer;
  outline: none;
}

.slider-dot[aria-current="true"] {
  background: #e0cf83;
  border: 2px solid #e0cf83;
  transform: scale(1.05);
}

/*** Slider End ***/

/*** Footer ***/

.footer{
  background:#074371;
  padding-top:20px;
  padding-bottom:30px;
}

.footer-copy{
  font-size: 12px;
  color: #c7c19f;
  margin-bottom:10px;
  line-height: 16px;
  text-align:center;
}

/*** Footer End ***/

/*** Form ***/

form{
  max-width:500px;
}

  label {
    font-weight: bold;
    display: block;
    margin-bottom: 6px;
    color:#605f5f;
    font-size:15px;
  }

  input, select, textarea {
    width: 100%;
    padding: 10px;
    margin-bottom: 15px;
    border:1px solid #cccccc;
    background:#fdfdf6;
    outline: none;
    border-radius: 4px;
    color:#605f5f;
    font-size:15px;
    font-family: Arial, Verdana, Helvetica, sans-serif;
  }

  input:focus, select:focus, textarea:focus {
    border-color: #517B9B;
    outline: none;
    box-shadow: 0 0 3px rgba(0,119,204,0.3);
  }

  button.form-btn {
    background-color: #69623e;
    color: #f9f9e4;
    border: 1px solid #69623e;
    padding: 12px 20px;
    border-radius: 4px;
    font-size: 16px;
    cursor: pointer;
    letter-spacing: 1px;
    transition: all 0.3s;
  }

  button.form-btn:hover {
    background-color: #f9f9e4;
    color: #69623e;
    border: 1px solid #69623e;
  }

  span {
    color: red;
  }

  /*** Form End ***/

.nav-stack{
    position: relative;
    overflow: visible;
    max-height:60px;     
    transition: max-height 1s ease;
    margin-bottom:10px;
}

.nav-stack.open{
    max-height: 100vh;
}

.nav-stack.open .nav-panel{
  transform: scaleY(1);
  pointer-events: auto;
}

.nav-bar{
    height:60px;
    background:#074371;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 20px;
    position: relative;
    z-index: 2;     
}

.hamburger{
    appearance: none;
    border: 0;
    background: transparent;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    cursor: pointer;
}

.hamburger:focus-visible{ 
    outline: 2px solid #f9f9e4; 
    outline-offset: 2px;
}

.hamburger .lines{
    width: 34px; 
    height: 22px;
    position: relative;
}

.hamburger .lines span{
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    background: #f9f9e4;
    transition: transform .5s ease, opacity .25s ease, top .5s ease;
}

.hamburger .lines .line-1{
    top: 0;
}

.hamburger .lines .line-2{
    top: 10px;
}

.hamburger .lines .line-3{
    top: 20px;
}

.nav-stack.open .hamburger .lines .line-1{
    top: 8px; transform: rotate(45deg);
}
.nav-stack.open .hamburger .lines .line-2{
    opacity: 0;
}
.nav-stack.open .hamburger .lines .line-3{
    top: 8px; transform: rotate(-45deg);
}

.nav-panel{
    position: absolute;
    left: 0;
    right: 0;
    top: 60px;
    z-index: 1;
    background: #f9f9e4;
    transform-origin: top;
    transform: scaleY(0);
    transition: transform .5s ease;
    pointer-events: none; 
    padding:30px;
}

.nav-panel a{
    display: block;
    font-family: bernhard;
    font-size:22px;
    padding: 14px 16px;
    text-decoration: none;
    text-align:right;
    color: #3a4008;
}

.nav-panel a:focus-visible{
    outline: 2px solid #0ea5e9;
    outline-offset: -2px;
}

.nav-stack{
  display:none;
}



.top-mobile-img{
  display:none;
}

.mobile-sub-nav{
  display:none;
}





@media (max-width: 1000px) {

  .header-phone{
    padding-right:20px;
  }
}

@media (max-width: 980px) {

  .home-body-wrapper{
    display:block;
    padding:30px;
  }

  .home-left{
    width:100%;
    padding-right:0;
    margin-bottom:40px;
  }

  .home-right{
    width:100%;
  }

  .sidebar-copy{
    text-align:center;
  }

  .top-image{
    padding-left:20px;
    padding-right:20px;
  }

  .top-desktop-img{
    display:none;
  }

  .top-mobile-img{
    display:block;
  }

  .showcase-gallery{
    justify-content: center;
  }

  .footer .main-wrapper{
    padding-left:20px;
    padding-right:20px;
  }

}

@media (max-width: 768px) {

  .home-nav, .main-nav, .sub-nav{
    display:none;
  }

  .nav-stack{
    display:block;
  }

  .slider-bottom{
    display:none;
  }

  .mobile-sub-nav{
      display:flex;
      padding-top:15px;
      padding-bottom:5px;
  }

  .mobile-sub-left, .mobile-sub-center, .mobile-sub-right{
      width:33%;
      display:flex;
      flex-direction:column;
      align-items:center;
  }

  .sub-nav-link{
    padding-top:10px;
    padding-bottom:20px;
  }

  .sub-nav-border{
    position: relative;
    width:100%;
    max-width: 980px;
    margin:0 auto;
    height:2px;
    background: transparent url(/images/bottom-home-nav.png) 0px top repeat-x;
  }

}

@media (max-width: 600px) {

  .modal{
    padding: 40px 16px;
  }

  .nav{
    width: 44px;
    height: 44px;
    font-size: 28px;
  }
}


























