/* Global
--------------------------------- */
/*:root {
    --pine: #0E2A3B;
    --pine-2: #153A4F;
    --canvas: #FFFFFF;
    --canvas-2: #F3F6F7;
    --moss: #3C7194;
    --ember: #3FAE6B;
    --ember-2: #2C8350;
    --chalk: #FAF7EE;
	--chalk-2: rgba(250, 247, 238, 0.8);
    --ink: #26241B;
    --ink-soft: #4A473C;
    --line: rgba(38, 36, 27, 0.14);
    --shadow: 0 20px 40px rgba(14, 42, 59, 0.25);
    --radius: 4px;
    --display: "Fredoka", sans-serif;
    --body: "Nunito", sans-serif;
    --mono: "IBM Plex Mono", monospace;
}*/

:root {
	--pine: #1E6C93;
	--pine-2: #175571;
	--canvas: #fff;
	--canvas-2: #F3F6F7;
	--moss: #3D89B0;
	--ember: #45C278;
	--ember-2: #2FA363;
	--chalk: #FAF7EE;
	--chalk-2: rgba(250, 247, 238, 0.8);
	--ink: #26241B;
	--ink-soft: #4A473C;
	--line: rgba(38, 36, 27, 0.14);
	--shadow: 0 20px 40px rgba(30, 108, 147, 0.22);
	--radius: 4px;
	--display: "Fredoka", sans-serif;
	--body: "Nunito", sans-serif;
	--mono: "IBM Plex Mono", monospace;
}

html {
	font-size: 14px;
	height: 100%;
	scroll-behavior: smooth;
}

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

body {
	background-color: var(--canvas-2);
	background-size: 100%;
	color: var(--ink);
	flex-direction: column;
	font-family: var(--body);
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1.55;
	min-height: 100dvh;
	word-wrap: break-word;
	-webkit-print-color-adjust: exact;
	print-color-adjust: exact;
	-webkit-font-smoothing: antialiased;
}

@media not all and (hover: none) {
	@supports not selector(::-webkit-scrollbar) {
		html {
			scrollbar-color: rgba(0, 0, 0, 0.5) #d8d8d8;
			scrollbar-width: thin;
		}
	}

	::-webkit-scrollbar {
		-webkit-appearance: none;
		background-color: #d8d8d8;
		height: 7px;
		width: 7px;
	}

	::-webkit-scrollbar-thumb {
		border-radius: 4px;
		background-color: rgba(0, 0, 0, 0.5);
		-webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);
	}
}

img {
	max-width: 100%;
}

a {
	color: inherit;
	text-decoration: none;
}

h1,
h2,
h3 {
	font-family: var(--display);
	font-weight: 700;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

h1 {
	margin-bottom: 1.8em;
}

h4 {
	font-family: var(--display);
	font-weight: 700;
}

h5 {
	font-size: 1em;
	font-weight: bold;
}

.container {
	margin: 0 auto;
	max-width: 1200px;
	width: 80%;
}

section {
	padding: 80px 0;
}

.section-head {
	margin-bottom: 48px;
}

.section-head h2 {
	font-size: clamp(2rem, 3.4vw, 2.8rem);
	line-height: 1.02;
	margin-top: 10px;
}

.section-head p {
	color: var(--ink-soft);
	font-size: 1.02rem;
	margin-top: 16px;
}

.section-buttons {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	margin-top: 20px;
}

.eyebrow {
	font-family: var(--mono);
	font-size: 0.85rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ember-2);
}

/* Footer
--------------------------------- */
footer {
	background-color: var(--pine);
	color: var(--chalk-2);
	padding: 64px 0 28px;
}

.footer-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 36px;
	padding-bottom: 40px;
	border-bottom: 1px solid rgba(250, 247, 238, 0.1);
	justify-content: space-between;
}

.footer-grid > div {
	flex: 200px;
}

.footer-grid h4 {
	font-family: var(--mono);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--chalk);
	margin: 0 0 16px;
}

.footer-grid ul {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.footer-grid a {
	text-decoration: none;
	opacity: 0.85;
}

.footer-grid a:hover {
	opacity: 1;
	text-decoration: underline;
}

.footer-copyright {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: 22px;
	font-family: var(--mono);
	font-size: 0.85rem;
	flex-wrap: wrap;
	gap: 12px;
	color: rgba(250, 247, 238, 0.5);
}

/* Header
--------------------------------- */
.top-nav {
	background-color: var(--pine);
	border-bottom: 1px solid rgba(250, 247, 238, 0.1);
	position: sticky;
	top: 0;
	z-index: 50;
}

.top-nav .container {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.navbar-menu {
	align-items: center;
	display: flex;
	gap: 28px;
	list-style: none;
}

.navbar-menu a:not(.btn) {
	color: var(--chalk-2);
	position: relative;
	padding-bottom: 3px;
	text-decoration: none;
}

.navbar-menu a:not(.btn)::after {
	background-color: var(--ember);
	bottom: 0;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	right: 100%;
	transition: right .2s ease;
}

.page-logo {
	margin: 10px 0;
	width: 130px;
}

.responsive-menu-launcher {
	color: var(--chalk);
	font-size: 28px;
	position: absolute;
	right: 30px;
	top: 20px;
}

.responsive-menu-launcher,
.responsive-menu-close {
	display: none;
}

.navbar-menu a:not(.btn).active {
	color: var(--chalk);
}

.navbar-menu a:not(.btn).active::after {
	right: 0;
}

@media not all and (hover: none) {
	.navbar-menu a:not(.btn):hover {
		color: var(--chalk);
	}

	.navbar-menu a:not(.btn):hover::after {
		right: 0;
	}
}

/* Breadcrumb
--------------------------------- */
.breadcrumbs nav {
	padding: 18px 0 0;
	font-family: var(--mono);
	font-size: 0.90rem;
	color: var(--ink-soft);
}

.breadcrumbs ul {
	display: flex;
	gap: 5px;
	list-style-type: none;
}

.breadcrumbs li:not(:first-child):before {
	content: "/";
}

.breadcrumbs a {
	text-decoration: none;
	color: var(--pine);
}

.breadcrumbs a:hover {
	text-decoration: underline;
}

.breadcrumbs + section {
	padding-top: 40px;
}

/* Buttons
--------------------------------- */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--mono);
	font-size: 0.82rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 14px 22px;
	border-radius: var(--radius);
	border: 1.5px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.btn-ghost {
	border-color: rgba(250, 247, 238, 0.35);
	color: var(--chalk);
}

.btn-primary {
	background-color: var(--ember);
	color: var(--chalk);
}

@media not all and (hover: none) {
	.btn-ghost:hover {
		border-color: var(--chalk);
		transform: translateY(-2px);
	}

	.btn-primary:hover {
		background-color: var(--ember-2);
		box-shadow: 0 10px 20px rgba(44, 131, 80, 0.35);
		transform: translateY(-2px);
	}
}

/* Cards
-------------------------------- */
.camping-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.camping-card {
	background: var(--canvas);
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid var(--line);
	box-shadow: 0 10px 24px rgba(30, 108, 147, 0.06);
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.camping-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 34px rgba(30, 108, 147, 0.14);
	border-color: rgba(63, 174, 107, 0.4);
}

.camping-img {
	aspect-ratio: 4 / 3;
	display: flex;
	background: #dfeaef;
	overflow: hidden;
	justify-content: center;
}

.camping-img img {
	max-width: none;
	height: 100%;
	display: block;
}

.camping-body {
	padding: 20px 20px 24px;
}

.camping-region {
	font-family: var(--mono);
	font-size: 0.64rem;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--ember-2);
}

.camping-card h3 {
	font-size: 1.1rem;
	text-transform: none;
	letter-spacing: 0;
	margin: 6px 0 8px;
}

.camping-card p {
	margin: 0;
	color: var(--ink-soft);
	font-size: 0.88rem;
}

/* Exceptions
------------------------------- */
.error-band {
	background: var(--pine);
	color: var(--chalk);
	height: 89px;
	overflow: hidden;
}

.error-band .wrap {
	text-align: center;
}

.error-band .eyebrow {
	color: var(--ember);
	display: block;
	margin-bottom: 14px;
}

.error-section {
	background-color: var(--canvas-2);
	padding: 20px 0 100px;
}

.error-card {
	max-width: 720px;
	margin: 0 auto;
	background: #FFFFFF;
	border: 1px solid var(--line);
	border-radius: 20px;
	box-shadow: var(--shadow);
	padding: 56px 44px 48px;
	text-align: center;
	position: relative;
	top: -64px;
}

.error-code {
	font-family: var(--display);
	font-weight: 700;
	font-size: clamp(4.5rem, 14vw, 8rem);
	line-height: 0.9;
	color: var(--pine);
	letter-spacing: 0.01em;
	margin: 0 0 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.error-title {
	font-size: clamp(1.4rem, 2.6vw, 1.9rem);
	margin: 8px 0 14px;
}

.error-text {
	color: var(--ink-soft);
	max-width: 46ch;
	margin: 0 auto 34px;
	font-size: 1.02rem;
}

.error-actions {
	display: flex;
	gap: 14px;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 38px;
}

@media (max-width: 800px) {
	.responsive-menu-launcher,
	.responsive-menu-close {
		display: block;
	}

	.responsive-menu-close {
		font-size: 1.6em;
	}

	.navbar-menu {
		position: fixed;
		z-index: 2;
		right: -100%;
		top: 0;
		flex-direction: column;
		gap: 20px;
		padding: 30px;
		background: #1e6c93;
		height: 100%;
		align-items: flex-start;
		box-shadow: -4px -1px 16px #0000008a;
		transition: right .4s ease-in-out;
		overflow: scroll;
		width: 300px;
	}

	.active-menu .navbar-menu {
        right: 0;
    }
}

@media (max-width: 600px) {
	.error-card {
		padding: 44px 24px 38px;
		top: -40px;
	}

	.error-actions {
		flex-direction: column;
		align-items: stretch;
	}
}