/*   FUN IN PHX
  Author: Rachel Villarreal
  Date: 5/5/25  */
/* Reset default browser styling and set box-sizing for consistency */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

/* Set global font */
body {
	font-family: Verdana, Geneva, Tahoma, sans-serif;
}

/* Remove underline from all links and inherit text color from parent */
a {
	text-decoration: none;
	color: inherit;
}

/* Hero/header section with a full-width background image */
#header {
	width: 100vw;
	min-height: 50vh;
	background-image: url("header.jpg");
	background-position: center;
	background-size: cover;
}

/* Container to center and constrain content width */
.container {
	max-width: 1200px;
	margin: auto;
	padding: 0 8px;
}

/* Navigation bar styling */
nav {
	display: flex; /* Places logo and links on one line */
	justify-content: space-between; /* Pushes items to far ends */
	padding: 32px 0;
	margin-right: 20px;
}

/* Nav links styling */
nav a {
	color: white;
}

/* Navigation menu layout */
nav ul {
	display: flex;
	list-style: none; /* Removes default list styling */
	gap: 32px; /* Spacing between links */
	font-size: 18px;
}

/* Nav logo appearance */
nav .logo {
	font-size: 20px;
	color: white;
}

/* Header content centering and spacing */
.header-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 60px;
}

/* Large heading in header */
.header-content h1 {
	font-size: 60px;
	color: white;
	font-weight: 200;
}

/* Subheading in header */
.header-content p {
	font-size: 40px;
	color: white;
}

/* Primary button styling */
.primary-btn {
	padding: 10px 24px;
	background-color: #C3E3AC;
	color: black;
	border: none;
	cursor: pointer;
	transition: all 0.3s ease; /* Smooth hover animation */
}

/* Button hover effect */
.primary-btn:hover {
	background-color: #BDDDE4;
	color: #383947;
}

/* Hamburger/menu button for mobile */
.menu-btn {
	position: absolute;
	right: 16px;
	top: 16px;
	background: #BDDDE4;
	padding: 8px 12px;
	border-radius: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	display: none; /* Hidden by default, shown in mobile view */
}

/* Services section layout */
#services {
	display: flex;
	margin-top: 120px;
	gap: 30px;
	justify-content: center;
	flex-wrap: wrap; /* Wrap items on smaller screens */
}

/* Paragraph formatting for readability */
.intro-text {
	text-indent: 2em;
	line-height: 1.8em;
	margin-top: 1.5em;
	margin-bottom: 1.5em;
	max-width: 800px;
}

/* Service card container */
.service {
	width: 300px;
}

/* Heading for each service */
.service h1 {
	padding-top: 10px;
}

/* Description for each service */
.service p {
	color: grey;
	padding-top: 30px;
}

/* Make service and outdoor images round and centered */
.service img, .outdoor-service img {
	width: 200px;
	height: 200px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	margin: 0 auto;
}

/* About section container */
#about {
	display: flex;
	margin-top: 120px;
	justify-content: space-between;
	flex-wrap: wrap;
}

/* Clear floats inside the container */
.about-float {
	overflow: hidden;
}

/* About section text column */
.about-text {
	float: left;
	width: 60%;
	margin-right: 20px;
}

/* Flex layout for about section */
.about-flex {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	flex-wrap: wrap;
}

/* Flexible about content blocks */
.about-content {
	flex: 1 1 50%;
}

/* Image block in about section */
.about-img {
	float: right;
	width: 35%;
	max-width: 100%;
	height: auto;
}

/* Styling for image within about section */
.about-img img {
	max-width: 80%;
	height: 30%;
	border-radius: 8px;
	object-fit: cover;
}

/* Talk-to-us section with background image */
#talk-to-us {
	background-image: url("queen-of-the-night.jpg");
	background-size: cover;
	background-position: center;
	min-height: 500px;
	margin-top: 12px;
}

/* Centered content inside talk-to-us section */
.talk-to-us-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 500px;
	gap: 16px;
	text-align: center;
	padding: 0 16px;
	margin-top: 8%;
}

/* Heading inside talk-to-us */
.talk-to-us-content h1 {
	color: #383947;
}

/* Paragraph inside talk-to-us */
.talk-to-us-content-p {
	max-width: 500px;
}

/* Footer layout */
footer {
	display: flex;
	justify-content: space-between;
	padding: 16px 0;
	align-items: center;
	margin: 0 20px;
}

/* Footer nav */
footer ul {
	display: flex;
	list-style: none;
	gap: 32px;
}

/* Footer logo */
footer .logo {
	color: #383947;
}

/* Footer link hover effects */
footer ul li a {
	padding: 8px;
	transition: color 0.3s ease;
}

footer ul li a:hover {
	color: #C3E3AC;
}

/* Contact page office hours card */
.office-hours {
	max-width: 600px;
	margin: 40px auto;
	padding: 20px;
	background-color: #f9f9f9;
	border: 1px solid #ccc;
	border-radius: 12px;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
	text-align: center;
}

/* Office hours title */
.office-hours h2 {
	margin-bottom: 20px;
	color: #383947;
	font-size: 28px;
}

/* Contact hours table layout */
.hours-table {
	width: 100%;
	border-collapse: collapse;
}

.hours-table th, .hours-table td {
	padding: 12px 16px;
	border-bottom: 1px solid #ccc;
	font-size: 16px;
}

.hours-table th {
	background-color: #BDDDE4;
	color: #383947;
	text-align: left;
}

.hours-table td {
	background-color: #fff;
}

/* Contact page header image */
#contact-header {
	min-height: 400px;
	background-image: url('header.jpg');
	background-size: cover;
	background-position: center;
}

/* Contact section layout */
#contact-us {
	display: flex;
	justify-content: space-between;
	margin: 80px auto;
	gap: 60px;
}

/* Wrapper for contact form inputs */
.inputsWrapper {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: 60px;
	margin-left: 60px;
}

.inputsWrapper input {
	padding: 12px 16px;
	width: 100%;
	border: 1px solid var(--background-dark);
	outline: none;
}

.inputsWrapper textarea {
	padding: 12px 16px;
	width: 100%;
	height: 120px;
	border: 1px solid var(--background-dark);
	outline: none;
	resize: vertical;
}

/* Address block for contact info */
.address {
	flex-basis: 50%;
}

/* Wrapper for contact details */
.detailsWrapper {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 60px;
}

/* Individual contact detail */
.detail {
	display: flex;
	gap: 10px;
}

/* Icons in contact details */
.detail img {
	width: 40px;
	height: 40px;
}

.detail h6 {
	color: grey;
}

/* Index (homepage) service section */
.index-service {
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
	padding-top: 10%;
}

.index-service img {
	display: block;
	width: 100%;
	max-width: 900px;
	height: 300px;
	object-fit: cover;
	margin: 0 auto 30px auto;
}

.index-service p {
	color: grey;
	text-indent: 2em;
	line-height: 1.8em;
	margin: 1.5em auto;
	max-width: 800px;
}

/* Outdoor services page */
#outdoor-services {
	display: flex;
	margin-top: 120px;
	gap: 30px;
	justify-content: center;
	flex-wrap: wrap;
	padding-bottom: 30px;
}

.outdoor-service {
	width: 300px;
}

.outdoor-service p {
	color: grey;
	margin-bottom: 40%;
}

/* Mobile responsive adjustments */
@media only screen and (max-width: 520px) {
	body {
		padding: 0 8px;
	}

	nav {
		flex-direction: column;
		align-items: flex-start;
		padding: 16px 8px;
		position: relative;
	}

	.menu-btn {
		display: flex;
	}

	nav ul {
		position: absolute;
		top: 60px;
		right: 0;
		flex-direction: column;
		background-color: #383947;
		width: 100%;
		padding: 20px;
		gap: 16px;
		display: none;
	}

	nav ul.active {
		display: flex;
	}

	.header-content h1,
	.header-content p {
		font-size: 32px;
		text-align: center;
	}

	#services,
	#outdoor-services {
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}
}
