:root {
	--main-color: #56b8ab;
	--main-color-dark: #3f8f85;
	--slogan-color: #ca4f4e;
	--text-color: #2b2b2b;
	--light-bg: #ffffff;
	--header-text: #ffffff;
	--footer-text: #ffffff;
}

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

body {
	background-color: var(--light-bg);
	color: var(--text-color);
	line-height: 1.6;
	font-family: "Open Sans", Arial, sans-serif;
	
	/* Add these 3 lines */
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

h1, h2, h3 {
	font-family: "Bree Serif", Georgia, serif;
	line-height: 1.2;
	color: #222;
	text-align: center;
}

h1 {
	text-align: center;
	margin-bottom: 2rem;
}

h2 {
	margin-top:1.2rem;
	margin-bottom: 1.2rem;
}

p {
	font-size: 1.15rem;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 1.0rem;
}

header {
	background-color: var(--main-color);
	border-bottom: 3px solid var(--main-color);
	padding: 1rem 2rem;
	color: white;
}

.header-content {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

/* Container for Social Links and Hamburger */
.header-actions {
    display: flex;
    align-items: center;
    gap: 1rem; /* Space between icons, and between icons and the ☰ button */
    margin-left: auto; /* Pushes everything to the right on desktop layouts */
}

.header-actions a {
    color: var(--header-text);
    display: flex;
    align-items: center;
    line-height: 1; /* Forces the box container to snuggly wrap the 24px/30px SVGs */
}

.logo-link {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: var(--header-text);
	font-weight: bold;
}

.header-logo {
	display: block;
	width: 210px;
	max-width: 55vw;
	height: auto;
}

.nav-toggle {
	display: none;
}

.nav-toggle-label {
	display: none;
	cursor: pointer;
	vertical-align: middle;
	align-items: center;
	font-size: 2rem;
	color: var(--light-bg);
}

nav ul {
    list-style: none;
    display: flex;
    gap: 1rem;
    align-items: center; /* Ensures text links perfectly center-align with SVGs */
}

nav a {
	text-decoration: none;
	color: var(--light-bg);
	font-weight: bold;
	padding: 0.5rem 0.75rem;
	border-radius: 6px;
	transition: background-color 0.2s ease, color 0.2s ease;
}

nav a:hover,
nav a:focus {
	background-color: var(--main-color);
	color: var(--text-color); 
}

#fb-header, #ig-header {
	display: none;
}

main {
	max-width: 1100px;
	margin: 0 auto;
	padding: 2rem 2rem; 
	
	/* Add these 2 lines */
	flex-grow: 1;
	width: 100%;
}

/* =========================================
   Main Content Link Styles
   ========================================= */

main a {
	color: var(--main-color-dark);
	font-weight: bold;
	text-decoration: underline;
	text-decoration-color: rgba(63, 143, 133, 0.4); /* Soft teal underline */
	text-decoration-thickness: 2px;
	text-underline-offset: 3px; 
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

main a:hover,
main a:focus {
	color: var(--slogan-color);
	text-decoration-color: var(--slogan-color);
	outline: none; 
}

/* Ensure these rules don't override your existing button styles */
main a.button {
	text-decoration: none;
	color: #ffffff;
}

main a.button:hover,
main a.button:focus {
	color: #ffffff;
}

.hero {
	padding: 2rem 1rem 1rem; /* Reduced bottom padding from 3rem to 1rem */
	margin-left: auto;
	margin-right: auto;
}

#wide-view {
	display: block;
	width: min(100%, 800px);
	height: auto;
	margin: 0 auto 2rem auto;
}

.featured-logo {
	display: block;
	width: min(100%, 700px);
	height: auto;
	margin: 0 auto 2rem auto;
}

.hero h1 {
	font-size: clamp(2.2rem, 5vw, 4rem);
	margin-bottom: 1rem;
}

.hero p {
	/* max-width: 700px; */
	margin: 0 auto 1rem auto; /* Reduced bottom margin from 2rem to 1rem */
	font-size: 1.15rem;
}

.button {
	display: inline-block;
	background-color: var(--main-color);
	color: #ffffff;
	text-decoration: none;
	font-weight: bold;
	padding: 0.8rem 1.2rem;
	border-radius: 8px;
	transition: background-color 0.2s ease;
}

.button:hover,
.button:focus {
	background-color: var(--main-color-dark);
}

footer {
	background-color: var(--main-color);
	color: var(--footer-text);
	text-align: center;
	padding: 1.5rem 2rem;
	margin-top: 2rem; /* Reduced top margin from 3rem to 2rem */
}

footer p {
	max-width: 1100px;
	margin: 0 auto;
}


/* =========================================
   Footer Link Styles
   ========================================= */

footer a {
    color: var(--footer-text);
    font-weight: 600; /* Makes the links stand out slightly from the regular text */
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.4); /* Subtle white underline */
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

footer a:hover,
footer a:focus {
    color: var(--slogan-color);
    text-decoration-color: var(--slogan-color);
    outline: none; /* Cleans up default browser focus rings since we style the color change */
}

.slogan {
	font-family: "Bree Serif", Georgia, serif;
	font-size: clamp(1.3rem, 3vw, 2rem);
	font-style: italic;
	color: var(--slogan-color);
	margin: -0.25rem auto 1.5rem auto;
	text-align: center;
}

section {
	max-width: 900px;
}

.info-section {
	max-width: 900px;
	margin: 1.5rem auto 1rem auto; /* Reduced from 3rem top / 2rem bottom */
	padding: 1.5rem 2rem 0.5rem 2rem; /* Trimmed top and bottom inner padding */
	position: relative;
}

.info-section::before {
	content: "";
	display: block;
	width: 100%;
	height: 2px;
	background-color: rgba(86, 184, 171, 0.45);
	margin: 0 auto 1.5rem auto;
	border-radius: 999px;
}

.info-section h2 {
	font-size: clamp(1.8rem, 4vw, 2.5rem);
	margin-bottom: 0.75rem;
	color: var(--main-color-dark);
	text-align: center;
}

.hours-list {
	max-width: 500px;
	margin: 0 auto;
	font-size: 1.15rem;
}

.hours-list p {
	margin-bottom: 0.5rem;
}

.contact-layout {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: 2rem;
	align-items: stretch;
	margin-bottom: 1rem; /* Clean layout tracking */
}

.contact-info {
	font-size: 1.1rem;
}

.contact-info p {
	margin-bottom: 1rem;
}

.contact-info a {
	color: var(--main-color-dark);
	font-weight: bold;
}

.map-placeholder {
	min-height: 250px;
	border: 2px dashed #ccc;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #f7f7f7;
	color: #666;
	max-width: auto;
}

table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 1.5rem;
	margin-bottom: 1rem;
}

th,
td {
	padding: 0.85rem;
	border-bottom: 1px solid #ddd;
	text-align: left;
}

th {
	background-color: var(--main-color);
	color: #ffffff;
	font-weight: bold;
}

tr:nth-child(even) {
	background-color: #f7f7f7;
}

/* =========================================
   Contact Form Styles 
   ========================================= */

.contact-form {
	max-width: 800px;
	margin: 2.5rem auto 1rem auto;
	background-color: rgba(202, 79, 78, 0.05);
	padding: 2rem;
	border-radius: 4px;
	border: 1px solid var(--main-color);
	/* The new shadow property */
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15); 
}

.required-field-indicator {
	font-size: 0.9rem;
	margin-left: auto;
	margin-right: auto;
}

.form-group {
	margin-bottom: 1.5rem;
}

.form-group label {
	display: block;
	font-weight: bold;
	margin-bottom: 0.5rem;
	color: var(--text-color);
	font-size: 1.05rem;
}

.form-group input,
.form-group select,
.form-group textarea {
	width: 100%;
	padding: 0.8rem;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-family: inherit;
	font-size: 1rem;
	background-color: #ffffff;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Resize handle only on the Y axis for textareas to prevent layout breaking */
.form-group textarea {
	resize: vertical;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
	outline: none;
	border-color: var(--main-color);
	box-shadow: 0 0 0 3px rgba(86, 184, 171, 0.2);
}

/* Enhances the existing .button class specifically for the form */
.form-submit {
	width: 100%;
	font-size: 1.15rem;
	padding: 1rem;
	border: none;
	cursor: pointer;
	margin-top: 0.5rem;
}

@media (min-width: 701px) {
	#hours-table {
		min-width: 500px;
	}
}

/* Mobile Adjustments */
@media (max-width: 700px) {

	#hours-table {
		min-width: 90%;
		width: 100%;
	
	}
	.contact-form {
		padding: 1.5rem 1rem;
		margin-top: 1.5rem;
	}

	header {
		padding: 1rem;
	}

	.header-content {
		flex-wrap: wrap;
	}

	.nav-toggle-label {
		display: inline-flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;          /* Clean, uniform space between the bars */
		width: 24px;       /* Perfectly matches the width boundary of your Instagram icon */
		height: 24px;      /* Perfectly matches the height boundary of your Instagram icon */
		cursor: pointer;
	}

	.hamburger-bar {
		display: block;
		width: 100%;
		height: 3px;       /* Thickness of each line */
		background-color: var(--light-bg); /* Clean white lines */
		border-radius: 2px;
		transition: background-color 0.2s ease;
	}

	nav {
		width: 100%;
		display: none;
	}

	nav ul {
		flex-direction: column;
		gap: 0;
		margin-top: 1rem;
		background-color: var(--main-color);
		border-radius: 8px;
		overflow: hidden;
	}

	nav a {
		display: block;
		color: #ffffff;
		padding: 0.9rem 1rem;
		border-radius: 0;
	}

	nav a:hover,
	nav a:focus {
		background-color: var(--main-color-dark);
	}

	#fb-header, #ig-header {
		display: inline-block;
	}

	.header-actions:has(.nav-toggle:checked) ~ nav {
		display: block;
	}

	main {
		padding: 1rem 1rem; /* Tightened up mobile wrapper */
	}

	.hero {
		padding: 1rem 0 0.5rem; /* Drastically dropped bottom mobile whitespace */
	}

	.featured-logo {
		width: 100%;
		margin-bottom: 1.5rem;
	}

	.info-section {
		margin: 1rem auto 0.5rem auto; /* Tight spacing between blocks on mobile */
		padding: 1rem 1rem 0.5rem 1rem;
	}

	.info-section::before {
		width: 100%;
		margin-bottom: 1rem;
	}

	/* Adjust the contact layout to stack vertically on mobile */
	.contact-layout {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

/* =========================================
   Vendor Directory - Minimalist Link Styles
   ========================================= */

.vendor-directory {
    max-width: 800px;
    margin: 2rem auto;
}

.vendor-listing {
    /* A subtle bottom border separates the entries without creating a box */
    border-bottom: 1px solid rgba(86, 184, 171, 0.3); 
}

/* Remove the border from the last item for a cleaner finish */
.vendor-listing:last-child {
    border-bottom: none;
}

.vendor-listing summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 0.5rem; /* Thinner horizontal padding for a flush look */
    cursor: pointer;
    list-style: none; /* Hides default browser arrow */
    outline: none;
}

/* Fallback to hide default arrow in Safari/Chrome */
.vendor-listing summary::-webkit-details-marker {
    display: none;
}

.vendor-name {
    margin: 0;
    font-size: 1.3rem;
    color: var(--main-color-dark);
    text-align: left;
    transition: color 0.2s ease;
}

/* =========================================
   Vendor Directory - Icon Styles (+ / -)
   ========================================= */

.expand-icon {
    font-size: 1.5rem; /* Slightly larger than the text so it reads clearly as a UI element */
    color: var(--main-color-dark);
    font-weight: bold;
    line-height: 1; 
    transition: color 0.2s ease;
}

/* Default state: Injects a plus sign */
.expand-icon::after {
    content: "+";
}

/* Open state: Swaps the plus for a minus */
.vendor-listing[open] .expand-icon::after {
    content: "-";
}

/* The hover state remains, targeting the new icon class */
.vendor-listing summary:hover .vendor-name,
.vendor-listing summary:hover .expand-icon {
    color: var(--slogan-color); 
}

.vendor-info {
    padding: 0 0.5rem 1.5rem 0.5rem;
}

.vendor-info p {
    margin: 0 0 1rem 0;
    font-size: 1.05rem;
    text-align: left;
    max-width: 100%;
}

.vendor-links {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 0 !important;
}

#hours-table {
	width: auto;
	margin-left: auto;
	margin-right: auto;
}

.visually-hidden {
    display: none !important;
}

/* =========================================
   Vendor Directory - Logo Layout
   ========================================= */

.vendor-content-main {
    display: flex;
    gap: 1.5rem; 
    align-items: center;
    margin-bottom: 1rem;
}

.vendor-logo {
    width: 200px; /* Constrains the logo to a small, uniform size */
    height: auto;
    object-fit: contain; /* Prevents rectangular or odd-sized logos from stretching */
    border-radius: 6px; /* Optional: Softens the edges slightly to match form inputs */
    flex-shrink: 0; /* Prevents the image from squishing if the blurb is long */
}

/* Remove bottom margin from the blurb so the gap to the links is handled by the wrapper */
.vendor-content-main p {
    margin-bottom: 0;
}

/* =========================================
   Mobile Adjustments for Vendor Logos
   ========================================= */

/* Add this inside your existing @media (max-width: 700px) block */
@media (max-width: 700px) {

	.vendor-logo {
		max-width: 90%;
	}
    .vendor-content-main {
        flex-direction: column;
        align-items: center; /* Centers the logo as requested */
        gap: 1rem; /* Tightens the spacing for mobile views */
    }
    
    /* Optional: Center the text under the centered logo for symmetry */
    .vendor-content-main p {
        margin-left: auto;
		margin-right: auto;
    }
}

/* Social Icon Styling */
.social-icon {
    display: inline-block;
    vertical-align: middle;
    transition: transform 0.2s ease, color 0.2s ease;
}

/* Give them a subtle pop when hovered */
header a:hover .social-icon,
nav a:hover .social-icon {
    transform: scale(1.15); /* Slightly increased pop to match the larger icon size */
}