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

/* ==========================================================================
   5. Mobile Responsiveness (Media Queries)
   ========================================================================== */
.container {
    width: 100%;
    max-width: 768px;
    margin: 0;
	padding: 0;
}

#home-video {
position: relative;
	top:0;
  width: 100%;
  height: 300px; /* Adjust height as needed */
  overflow: hidden; /* Prevents video from spilling out */
}

#home-video video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover; /* Keeps aspect ratio without distortion */
	z-index: -1; /* Pushes the video behind the content */
}

/* ==========================================================================
   2. Header & Navigation Layout
   ========================================================================== */
header {
    position: sticky;
    top: 0;
    z-index: 3;
    
    /* Pushes brand group to left, navbar to right */
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 30px;
    background-color: rgb(54 54 54 / 97%);
    color: #ffffff;
	transition: background-color 0.7s ease, padding 0.7s ease; /* Smooth fade effect */
}

header.is-scrolled {
  background-color: rgb(54 54 54 / 97%); /* Turns opaque black */
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* Optional: adds depth */
  /* padding: 10px 0; Optional: shrinks the header slightly */
}
	
.left-header-logo {
	display: flex;
    align-items: center; /* Centers logo vertically against the text block */
    gap: 0;           /* Spaces out the logo image from the text */
}

.left-header-logo img {
	height: 15vh;
	width: auto;
}

.left-header-text {
	display: none;
    flex-direction: column; 
    justify-content: left;
}

.text-line-1 {
    font-size: 1.2rem;
    font-weight: bold;
    line-weight: 1;
	margin: 0;
}

.text-line-2 {
    font-size: 0.8rem;
    margin: 0;
}


/* HAMBURGER MENU */	
	
	
/* Base styles for the button */
.hamburger-btn {
	background: white;
 	border: none;
  	cursor: pointer;
  	width: 30px;
  	height: 30px;
  	position: relative;
	display: block;
    z-index: 100; /* Keeps button on top of the menu */

}

/* The three lines of the hamburger */
.hamburger-line,
.hamburger-line::before,
.hamburger-line::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 3px;
  background-color: #333; /* Match your brand text color */
  border-radius: 3px;
  transition: all 0.3s ease;
  right: 3px;
	padding: 0;
}

/* Vertical placement of the lines */
.hamburger-line { top: 13px; }
.hamburger-line::before { top: -8px; left: 0; }
.hamburger-line::after { top: 8px; left: 0; }


  /* Transform your desktop navbar into a hidden mobile side-drawer */
  .navbar {
    position: fixed;
    top: 45px;
    right: -100%; /* Hidden off-screen to the right */
    width: 40vw;  /* Width of mobile menu drawer */
    height: 20vh;
    background-color: #ffffff; /* Background color of mobile drawer */
    box-shadow: -2px 0 5px rgba(0,0,0,0.1);
    
    /* Layout links vertically instead of horizontally */
    display: flex;
    flex-direction: column;
    padding: 20px 20px 20px 20px; /* Top padding avoids overlapping button */
    gap: 20px;
    transition: right 0.3s ease; /* Smooth slide-in effect */
    z-index: 99;
	  border-radius: 15px;
  }

  /* When JavaScript adds the active class, slide the menu out */
  .navbar.is-open {
    right: 0;
  }

  /* Hamburger to "X" Animation when open */
  .hamburger-btn.is-active .hamburger-line {
    background-color: transparent; /* Hide middle line */
  }
  .hamburger-btn.is-active .hamburger-line::before {
    transform: translateY(8px) rotate(45deg);
  }
  .hamburger-btn.is-active .hamburger-line::after {
    transform: translateY(-8px) rotate(-45deg);
  }
	
.navbar ul {
	padding: 0;
	margin: 0;
}
	
.navbar li {
	font-family: Lora;
	margin: 1.5rem 0;
	padding: 0;
}	


.navbar a {
	text-decoration: none;
	color: #333;
	border-bottom: 1px dashed #444;
	padding-bottom: 7px;
	margin-bottom: 10px;
}
/* ==========================================================================
   3. Main Components & Content Sections
   ========================================================================== */
main {
	
}

main h1 {
	font-size: 2.5rem;
	text-align: center;
	color: aliceblue;
	margin: 20% auto 0 auto;
	align-items: center;
	position: relative;
}

.home-block-1 {
	background-color: #F5F4F4;
	padding: 2% 2% 1% 2%;
	position: relative;
	margin: 0 0 0 0;
}

.home-block-1 h2 {
	margin: 0;
	padding: 1% 2% 2% 2%;
	font-size: 1.5rem;
	text-transform: uppercase;
	color: #F29347;
	font-family: Arimo;
	font-weight: 100;
	letter-spacing: .4rem;
	line-height: 1.1;
}

.home-block-1 p {
	margin: 0 2% 3% 2%;
	line-height: 1.2;
	font-family: Arimo;
	font-weight: 100;
	text-align: justify;
	text-justify: inter-word;
}
	
.home-block-2 {
	background-color: #555555;
	font-family: Arimo;
	width: 96%;
	padding: 2% 2% 1% 2%;
	clear: both;
	min-height: 55vh;
}

.home-block-2 h2 {
	font-size: 2rem;
	text-transform: uppercase;
	color: #F29347;
	font-family: Lora;
	font-weight: 300;
	letter-spacing: 0.6rem;
	line-height: 1.1;
	writing-mode: vertical-rl;
	white-space: nowrap;
	float: left;
	margin: 0.5rem 0.7rem 0.4rem 0;

}

.home-block-2 p {
	line-height: 1.2;
	font-family: Arimo;
	font-weight: 100;
	padding: 0;
	margin: 0 1rem 1rem 1rem;
	text-align: justify;
	text-justify: inter-word;
	color: #f4f4f4;
	width: auto;
}

.line-break {
	margin: 0 0 1rem 0;
	display: block;
	content: "";
}

.chris-pic-1 {
	width: 40%;
	float: left;
	padding: 0 1rem 0 0.9rem;
	margin: 0.5rem 0 0.1rem 0;
}

	
	.youtube-player-1 {
		width: 100%;
		margin: 0;
		padding: 0;
		display: block;
		align-content: center;
		background-color: #E9E9E9;
	}	
	
	.youtube-player-1-css {
		width: 90vw;
		margin: 0 auto;
		padding: 7px 0 0 0;
	}

.youtube-player {
	width: 90vw;               /* Makes it exactly the width of the viewport */
 	height: auto;               /* Allows the height to calculate automatically */
 	aspect-ratio: 16 / 9;       /* Forces the video to maintain standard widescreen shape */
 	border: none;               /* Removes the default iframe border */
}

.packages-header {
	width: 100%;
	position: relative;
	top: 0;
	margin: 0;
	padding: 0;
}

.packages-header img {
	width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
}

.packages-block-1 {
	background-color: #F5F4F4;
	padding: 1% 2% 1% 1%;
	position: relative;
	margin: 0 0 0 0;
}

.packages-block-1 h2 {
	margin: 10px 2% 1rem 2%;
	font-size: 1.5rem;
	text-transform: uppercase;
	color: #F29347;
	font-family: Arimo;
	font-weight: 300;
	letter-spacing: .3em;
	line-height: 1.1;
}

.packages-block-1 p {
	margin: 0 2% 0.8rem 2%;
	line-height: 1.2;
	font-family: Arimo;
	font-weight: 100;
	text-align: left;
	text-justify: inter-word;
}

.packages-block-2 {
	background-color: #555555;
	padding: 2% 2% 1% 2%;
	margin: 0;color: #f4f4f4f4;
}

.packages-block-2 h3{
	margin: 0;
	color: #F29347;
}

.packages-block-2 p {
	margin: 0;
}

.packages-block-2 ul {
	list-style: none;
	margin: 0;
}

.packages-block-2 li {
	list-style: disc;
	text-indent: 0.1rem;
	margin: 0 0 0.1rem 2.2rem;
	padding: 0;
}

.sub-point-1 {
	margin-left: 4rem !important;
	font-style: italic;
	font-size: 0.8rem;
	
}

.orange-list-item {
	font-weight: bold;
	color: #F29347;
}

.italic {
	font-style: italic;
}


.contact-header {
	width: 100%;
	position: relative;
	top: 0;
	margin: 0;
	padding: 0;
}

.contact-header img {
	width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
}

.contact-block-1 {
	background-color: #F5F4F4;
	padding: 1% 2% 1% 1%;
	position: relative;
	margin: 0 0 0 0;
}

.contact-block-1 h2 {
	margin: 10px 2% 1rem 2%;
	font-size: 1.5rem;
	text-transform: uppercase;
	color: #F29347;
	font-family: Arimo;
	font-weight: 300;
	letter-spacing: .3em;
	line-height: 1.1;
}

.contact-block-1 p {
	margin: 0 2% 0.8rem 2%;
	line-height: 1.2;
	font-family: Arimo;
	font-weight: 100;
	text-align: left;
	text-justify: inter-word;
}

.contact-block-2 {
	background-color: #555555;
	padding: 1% 2% 1% 2%;
	margin: 0;
	color: #f4f4f4f4;
}

.contact-block-2 h3{
	margin: 0;
	color: #F29347;
}

.contact-block-2 p {
	margin: 0;
}

.contact-block-2 form ::placeholder {
  color: #aaa;
}

.name {
	height: 2.5rem;
	width: 90vw;
	margin: 1rem 2% 1rem 2%;
	padding: 1%;
	box-sizing: border-box;
}

.contact-block-2 input, textarea {
	font-family: Arimo;
	font-size: 1rem;
	field-sizing: content;

	/* Beveled Edge Aesthetics */
  border-top: 1px solid #b3b3b3;
  border-left: 1px solid #cbcbcb;
  border-right: 1px solid #e0e0e0;
  border-bottom: 1px solid #f0f0f0;
  border-radius: 5px; /* Slight curve */
  background-color: #ffffff;
  box-shadow: inset 1px 2px 4px rgba(0, 0, 0, 0.08); 
  transition: all 0.2s ease-in-out;
}
	
.contact-block-2 input:focus, textarea:focus {
  outline: none;
  border-color: #F29347;
  /* Swaps the bevel inner shadow for a clean focus glow */
  box-shadow: 0 0 0 3px rgba(0, 118, 223, 0.15), inset 1px 1px 2px rgba(0, 0, 0, 0.05);
}

.email {
	height: 2.5rem;
	width: 90vw;
	margin: 1rem 2% 1rem 2%;
	padding: 1%;
	box-sizing: border-box;
}

.textarea {
	height: 10rem;
	width: 90vw;
	margin: 1rem 2% 1rem 2%;
	padding: 1%;
	box-sizing: border-box;
}

.h-captcha {
	margin: 0 2%;
}

.submit {
	height: 2rem;
	width: 6rem;
	margin: 1rem 2% 1rem 2%;
	padding: 0 0;
	box-sizing: border-box;
	align-content: center;
	font-family: Arimo;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.05rem;
	color: #555555;
	/* Beveled Edge Aesthetics */
  border-top: 1px solid #b3b3b3;
  border-left: 1px solid #cbcbcb;
  border-right: 1px solid #e0e0e0;
  border-bottom: 1px solid #f0f0f0;
  border-radius: 5px; /* Slight curve */
  background-color: #ffffff;
  box-shadow: inset 1px 2px 4px rgba(0, 0, 0, 0.08); 
  transition: all 0.2s ease-in-out;

}

.partners-header {
	width: 100%;
	position: relative;
	top: 0;
	margin: 0;
	padding: 0;
}

.partners-header img {
	width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
}

.partners-block-1 {
	background-color: #F5F4F4;
	padding: 1% 2% 1% 1%;
	position: relative;
	margin: 0 0 0 0;
}

.partners-block-1 h2 {
	margin: 10px 2% 1rem 2%;
	font-size: 1.5rem;
	text-transform: uppercase;
	color: #F29347;
	font-family: Arimo;
	font-weight: 300;
	letter-spacing: .3em;
	line-height: 1.1;
}

.partners-block-1 p {
	margin: 0 2% 0.8rem 2%;
	line-height: 1.2;
	font-family: Arimo;
	font-weight: 100;
	text-align: left;
	text-justify: inter-word;
}

.partners-block-2 {
	background-color: #555555;
	padding: 1% 2% 1% 2%;
	margin: 0;
	color: #f4f4f4f4;
}

.partners-block-2 h3{
	margin: 0;
	color: #F29347;
}

.partners-block-2 p {
	margin: 0;
}

.partner-img {
	width: 60vw;
	align-content: center;
	align-items: center;
	margin: 1rem auto 0 auto;
	display: block;
}

.partner-col-1 {
	margin: 0;
	padding: 1%;
	flex: 1;
}

.partner-logo-text {
	text-align: center;
	display: block;
	clear: both;
	margin: 1% auto;
	padding: 0;
}

.partner-logo-text a {
	text-decoration: none;
	color: #F29347;
}

.partner-logo-text p {
	text-align: justify;
	text-justify: inter-word;
	margin: 0 0 7px 0;
	padding: 0 7px 0 0;
}

/* ==========================================================================
   4. Footer Layout
   ========================================================================== */
footer {
    background-color: #202124;
    color: #f8f9fa;
    text-align: center;
    padding: 2rem 0;
	margin: 0;
	z-index: 1;
	display: flex;
}

.footer-col-1 {
	flex: 1;
}

.footer-col-2 {
	flex: 1;
	align-content: center;
	text-align: center;
	font-size: 0.8rem;
	word-wrap: normal;
}

.footer-col-3 {
	flex: 1;
	align-content: center;
	text-align: right;
	padding: 0;
	margin: 0;
}

.facebook-logo {
	height: 30px;
	border: none;
	padding: 0 4%;
	align-content: center;
}

.youtube-icon {
	height: 44px;
	border: none;
	padding: 0 4%;
	align-content: center;
}

.socials {
	display: flex;
	align-items: center; /* Vertically centers the children */
	justify-content: center;
	column-gap: 1rem;
}

#backToTop {
  z-index: 3; /* Stay on top of other elements */
  border: none; /* Remove borders */
  outline: none; /* Remove outline */
  background-color: #333; /* Set a background color */
  color: white; /* Text/arrow color */
  cursor: pointer; /* Change mouse pointer on hover */
  padding: 0.4rem; /* Some padding */
  border-radius: 5%; /* Make it circular */
  font-size: 0.8rem;
  font-family: Lora;
  align-content: center;
  text-align: right;
  position: relative;
  right: -12vw !important;
  left: auto !important;
  display: block;

}
