@charset "UTF-8";
/* CSS Document */

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

*{
	font-family: 'Montserrat', sans-serif;
}

body{
	padding-top: 65px;
	overflow-x: hidden;
}

/**Properties**/
:root{

  /**Colors**/
  --black: #000;
  --white: #fff;
  --green: #255528;
  --light-green: #4C9F4D;
  --mid-green: #2B602E;
  --dark-green: #183B1D;
  --grey: #667080;
  --lighter-grey: #f1f1f1;
  --lighter-grey-2: #efefef;
  --light-grey: #C2C2C2;
}

::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
  opacity: 0.85; /* Firefox */
}

:-ms-input-placeholder { /* Internet Explorer 10-11 */
  opacity: 0.85; /* Firefox */
}

::-ms-input-placeholder { /* Microsoft Edge */
  opacity: 0.85; /* Firefox */
}

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
}

/* Custom styles for new homepage sections */
#home-hero-carousel {
  padding: 0;
  margin: 0;
  width: 100%;
}

#home-hero-carousel .carousel {
  width: 100%;
  margin: 0;
  padding: 0;
}

#home-hero-carousel .carousel-item img {
  height: 746px;
  object-fit: fill;
  width: 100%;
}

/* Store carousel styles */
#store-hero-carousel {
  padding: 0;
  margin: 0;
  width: 100%;
}

#store-hero-carousel .carousel {
  width: 100%;
  margin: 0;
  padding: 0;
}

#store-hero-carousel .carousel-item img {
  height: 746px;
  object-fit: cover;
  width: 100%;
}

/* Remove all side margins and padding from carousel containers */
#home-hero-carousel .container-fluid,
#store-hero-carousel .container-fluid {
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
}

#home-hero-carousel .carousel-inner {
  margin: 0;
  padding: 0;
  width: 100%;
}

#store-hero-carousel .carousel-inner {
  margin: 0;
  padding: 0;
}

/* Force full width for carousel sections - break out of any container */
#home-hero-carousel,
#store-hero-carousel {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
  max-width: 100vw;
}

/* Home hero carousel - 746px height */
/* General rule for carousel images - but specific classes will override */
#home-hero-carousel .carousel-item img:not(.carousel-image-desktop):not(.carousel-image-mobile) {
  height: 746px;
  object-fit: fill;
  width: 100%;
}

/* Responsive carousel images - Desktop and Mobile */
/* Make carousel item relative for absolute positioning */
#home-hero-carousel .carousel-item {
  position: relative;
  min-height: 746px;
  width: 100%;
}

/* Desktop: Show desktop image, hide mobile image */
#home-hero-carousel .carousel-image-desktop {
  display: block !important;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 746px;
  object-fit: fill;
  object-position: center;
  z-index: 1;
}

#home-hero-carousel .carousel-image-mobile {
  display: none !important;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 600px;
  object-fit: fill;
  object-position: center;
  z-index: 1;
}

/* Mobile: Show mobile image, hide desktop image (≤768px) */
@media (max-width: 768px) {
  #home-hero-carousel .carousel-item {
    min-height: 600px;
  }
  
  #home-hero-carousel .carousel-image-desktop {
    display: none !important;
  }
  
  #home-hero-carousel .carousel-image-mobile {
    display: block !important;
  }
}

/* Desktop: Ensure desktop image shows on larger screens (≥769px) */
@media (min-width: 769px) {
  #home-hero-carousel .carousel-image-desktop {
    display: block !important;
  }
  
  #home-hero-carousel .carousel-image-mobile {
    display: none !important;
  }
}

/* Store carousel images - 746px height */
#store-hero-carousel .carousel-item img {
  height: 746px;
  object-fit: cover;
  width: 100%;
}

/* Responsive store carousel images - Desktop and Mobile */
/* Make carousel item relative for absolute positioning */
#store-hero-carousel .carousel-item {
  position: relative;
  min-height: 746px;
  width: 100%;
}

/* Desktop: Show desktop image, hide mobile image */
#store-hero-carousel .carousel-image-desktop {
  display: block !important;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 746px;
  object-fit: fill;
  object-position: center;
  z-index: 1;
}

#store-hero-carousel .carousel-image-mobile {
  display: none !important;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 600px;
  object-fit: fill;
  object-position: center;
  z-index: 1;
}

/* Mobile: Show mobile image, hide desktop image (≤768px) */
@media (max-width: 768px) {
  #store-hero-carousel .carousel-item {
    min-height: 600px;
  }
  
  #store-hero-carousel .carousel-image-desktop {
    display: none !important;
  }
  
  #store-hero-carousel .carousel-image-mobile {
    display: block !important;
  }
}

/* Desktop: Ensure desktop image shows on larger screens (≥769px) */
@media (min-width: 769px) {
  #store-hero-carousel .carousel-image-desktop {
    display: block !important;
  }
  
  #store-hero-carousel .carousel-image-mobile {
    display: none !important;
  }
}

#home-hero-carousel .carousel-caption {
  background: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  padding: 20px;
}

#home-hero-carousel .carousel-indicators button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.5);
  background-color: transparent;
  margin: 0 5px;
  transition: all 0.3s ease;
}

#home-hero-carousel .carousel-indicators button.active {
  background-color: #fff;
  border-color: #fff;
}

#home-hero-carousel .carousel-indicators button:hover {
  border-color: #fff;
  background-color: rgba(255, 255, 255, 0.3);
}

/* Store carousel indicators - round style */
#store-hero-carousel .carousel-indicators button {
  width: 12px !important;
  height: 12px !important;
  border-radius: 50% !important;
  border: 2px solid rgba(255, 255, 255, 0.5) !important;
  background-color: transparent !important;
  margin: 0 5px !important;
  transition: all 0.3s ease !important;
  text-indent: 0 !important;
}

#store-hero-carousel .carousel-indicators button.active {
  background-color: #fff !important;
  border-color: #fff !important;
}

#store-hero-carousel .carousel-indicators button:hover {
  border-color: #fff !important;
  background-color: rgba(255, 255, 255, 0.3) !important;
}

/* Additional override for Bootstrap default carousel indicators */
#storeCarousel .carousel-indicators button {
  width: 12px !important;
  height: 12px !important;
  border-radius: 50% !important;
  border: 2px solid rgba(255, 255, 255, 0.5) !important;
  background-color: transparent !important;
  margin: 0 5px !important;
  transition: all 0.3s ease !important;
  text-indent: 0 !important;
  opacity: 1 !important;
}

#storeCarousel .carousel-indicators button.active {
  background-color: #fff !important;
  border-color: #fff !important;
  opacity: 1 !important;
}

#storeCarousel .carousel-indicators button:hover {
  border-color: #fff !important;
  background-color: rgba(255, 255, 255, 0.3) !important;
  opacity: 1 !important;
}

#section-welcome {
  padding: 4rem 0;
}

#section-welcome .btn {
  min-width: 200px;
}

#section-store .card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: none;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

#section-store .card:hover {
  transform: translateY(-5px);
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
}

#section-store .card-img-top {
  transition: transform 0.3s ease;
}

#section-store .card:hover .card-img-top {
  transform: scale(1.05);
}

/* Header user actions styling */
.navbar .d-flex.align-items-center .text-white {
  font-size: 0.9rem;
}

.navbar .btn-outline-light,
.navbar .btn-light {
  font-size: 0.85rem;
  padding: 0.375rem 0.75rem;
}

/* Responsive adjustments */
@media (max-width: 991.98px) {
  #home-hero-carousel .carousel-item img {
    height: 746px;
  }
  
  #section-store .col-lg-6:first-child {
    margin-bottom: 2rem;
  }
  
  #section-welcome {
    padding: 3rem 0;
  }
  
  #section-welcome .btn {
    min-width: 180px;
  }
}

@media (max-width: 767.98px) {
  /* Mobile image height is handled by .carousel-image-mobile class above */
  /* Desktop image is hidden on mobile via .carousel-image-desktop display: none */
}

@media (max-width: 767.98px) {
  .navbar .d-flex.align-items-center {
    flex-direction: column;
    align-items: flex-start !important;
    margin-top: 1rem;
  }
  
  .navbar .d-flex.align-items-center .text-white {
    margin-bottom: 0.5rem;
  }
}


/**Gradients BG and bg colors**/
.bg-grad-primary{background: linear-gradient(270deg, #003D1A 0%, #005724 100%);}
.bg-lighter-grey{background-color: var(--lighter-grey);}
.bg-green{background-color: var(--green);}
.bg-light-green{background-color: var(--light-green);}
.bg-mid-green{background-color: var(--mid-green);}
.bg-white{background-color: var(--white);}
.bg-lighter-grey-2{background-color: var(--lighter-grey-2);}

h1, h2, h3, h4, h5, h6{
	font-weight: 700;
	letter-spacing: 0.010rem;
}

h1{font-size: 45px;}
h2{font-size: 40px;}
h3{font-size: 36px;}
h4{font-size: 24px;}
h5{font-size: 20px;}

p{font-size: 1rem;}

/**Icons**/
.bi-box-arrow-up-right{font-size: smaller;}

/**Main Navbar**/
.navbar-toggler, .navbar-toggler:focus{
	border-color: transparent;
	box-shadow: none;
}

.navbar-toggler .bi-list{
	font-size: 2.3rem;
}

/***Text Colors**/
.text-green{color:var(--green);}
.text-light-green{color:var(--light-green);}
.text-black{color:var(--black);}
.text-white{color:var(--white);}

/***Background Colors**/
.bg-green{background-color:var(--green);}
.bg-light-green{background-color:var(--light-green);}
.bg-dark-green{background-color:var(--dark-green);}
.bg-mid-green{background-color:var(--mid-green);}
.bg-black{background-color:var(--black);}
.bg-white{background-color:var(--white);}
.bg-lighter-grey{background-color:var(--lighter-grey);}

/***Custom helpers**/
.img-full{width: 100%;}
.img-fit{object-fit: contain; max-width: 100%;}

/**Cards and Containers**/
.card{
	width: 100%;
	border-radius: 15px;
	border: none;
	overflow: hidden;
}

.card-title, .card-text{
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.card-event .card-thumb .card-event-date{
  right: 0;
  bottom: 0;
  padding: 10px;
  text-align: right;
}

.card-no-border{
	border: none;
}

.card-reset .card-title, .card-reset .card-text{
  text-overflow: initial;
  display: block;
  -webkit-line-clamp: initial;
  line-clamp: initial;
  -webkit-box-orient: initial;
  overflow: initial;
}


/**Buttons and Links**/
.btn-primary{
	background: var(--light-green);
  border: none;
  border-radius: 100px;
  padding: 10px 25px;
  font-weight: 500;
}

.btn-primary:hover{
	background: var(--green);
}

.btn-secondary{
	background: var(--dark-green);
  border: none;
  border-radius: 100px;
  padding: 10px 25px;
  font-weight: 500;
}

.btn-secondary:hover{
	background: var(--white);
	color: var(--dark-green);
}

.btn-ghost-primary{
	background: none;
  border: 1px solid var(--light-green);
  color: var(--light-green);
  border-radius: 100px;
  padding: 10px 25px;
  font-weight: 500;
}

.btn-ghost-primary:hover{
	border: 1px solid var(--green);
  color: var(--green);
}

.btn-ghost-white{
	background: none;
  border: 1px solid var(--white);
  color: var(--white);
  border-radius: 100px;
  padding: 10px 25px;
  font-weight: 500;
}

.btn-ghost-white:hover{
	border: 1px solid var(--light-green);
  color: var(--light-green);
}

.btn-text-link{
	background: none;
	color: var(--light-green);
	padding: 15px 0;
}

.btn-text-link:hover{
	background: none;
	color: var(--green);
}

.btn i{margin-left: 5px;}

/**Tabs UI**/
.filter-tabs .nav-item{
	margin-left: 15px;
}

.filter-tabs .nav-item:first-child{
	margin-left: 0;
}

.filter-tabs a{
	font-size: 20px;
	color: var(--mid-green);
	font-weight: bold;
	padding-bottom: 0;
}

.filter-tabs a.active{
	border-bottom: 4px solid;
}

.filter-tabs a:hover{
	color: var(--light-green);
}

/**Pagination**/
.pagination a{
	font-size: 1rem;
	color: var(--light-green);
	border-color: var(--light-green);
}

.pagination a.active{
	color: var(--white);
	background: var(--light-green);
	border-color: var(--light-green);
}

.pagination a:hover{
	color: var(--white);
	background: var(--light-green);
}

.pagination .page-item:first-child .page-link {
    border-top-left-radius: 100px;
    border-bottom-left-radius: 100px;
}

.pagination .page-item:last-child .page-link {
    border-top-right-radius: 100px;
    border-bottom-right-radius:  100px;
 }

.active>.page-link, .page-link.active {
    z-index: 3;
    color: var(--bs-pagination-active-color);
    background-color: var(--dark-green);
    border-color: var(--dark-green);
}

/**Shadows**/
.box-shad-default{
	box-shadow: 0px 10px 40px 3px rgba(0, 0, 0, 0.1);
}

/**Main Navigation**/
nav.navbar{
	color: var(--white);
}

.navbar-nav .nav-item{
	margin:  auto 0.5rem;
}

.navbar-nav .nav-link.active, .navbar-nav .nav-link, .navbar-nav .nav-link.show{
    color: var(--white);
}

/**Background and Banners**/
.bg-full{
	background-size: cover!important;
	background-repeat: no-repeat!important;
}

.bg-pos-center-center{
	background-position: center center!important;
}

.bg-pos-top-center{
	background-position: top center!important;
}

.bg-pos-center-center{
	background-position: center center!important;
}

.bg-pos-bottom-center{
	background-position: bottom center!important;
}

.hero-banner .row{min-height: 650px;}

/**Modals**/
.modal-footer, .modal-header{
	border: none;
}

.modal-body .container{
	padding-left: 0;
	padding-right: 0;
}

/**Footer**/
footer{
	color: var(--white);
	text-align: center;
}

footer i.bi{
	font-size: 1.35rem;
	margin-right: 5px;
}

footer a{
	text-decoration: none;
	color: var(--white);
}

footer ul{
	text-align: center;
}

/**Homepage Elements**/
.gh-core-item{
	overflow: hidden;
	min-height: 450px;
}

.gh-core-item .row{
	min-height: 450px;
}

.gh-core-item a{
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.gh-core-item .bg-img-holder{
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	transition: all 1s;
}

.gh-core-item:hover .bg-img-holder{
	transform: scale(1.2);
}

/**News and Events Elements**/
div#side-listings-events{
	border-radius: 15px;
}

div#side-listings-events{
	height: fit-content;
}

/**Contact Us Elements**/
section#contact-form-section .container, section#membershio-check-form-section .container{
	margin-top: -200px;
	margin-bottom: 100px;
}


/**Forms UI**/
.wrap-form{
	border-radius: 15px;
}

/**Tiny Slider Custom**/
.tns-controls{
	position: relative;
}

.tns-controls button{
  border: none;
  font-weight: bold;
  font-size: 4rem;
  color: var(--dark-green);
  position: absolute;
}

.tns-controls button:first-child{
	left: 0px;
  bottom: 20px;
  background: transparent;
}

.tns-controls button:last-child{
	  right: 0px;
    bottom: 20px;
    background: transparent;
}

pre {
	text-align: center;
    margin-top: 0.5rem!important;
    margin-bottom: 0.5rem!important;
    font-family: 'Montserrat', sans-serif;
    line-height: 32px;
    font-size: 16px;
}