@import url('switzer.css');

:root {
	--bg_green:#0f1d1b;
	--mid_green:#3e600d;
	--lime_green:#96da34;
	--nav_width:min(400px,100vw);
}

html {
	scroll-behavior: smooth;
	scrollbar-gutter:stable;
}

.group:after {
  content: "";
  display: table;
  clear: both;
}

* {
    padding:0;
    margin:0;
    box-sizing: border-box;
	font-family:inherit;
	color:inherit;
}

img {
	vertical-align:middle;
	max-width:100%;
	height:auto;
	background-repeat: no-repeat;
	background-size:cover;
	font-style: italic;
	shape-margin:1rem;
}

.wrap {
  position:relative;
  width:calc(1300px - 2rem);
  padding:0 1rem;
  max-width:100%;
  margin:0 auto;
  clear:both;
}

.skip-nav-link {
	position:absolute;
	left:1rem;
	top:0;
	background-color:#000;
	color:#fff;
	padding:0.5rem 1.5rem;
	border-radius: 0 0 0.25rem 0.25rem;
	z-index:100;
	transform:translateY(-120%);
	transition:transform 0.325s ease-out;
}

	.skip-nav-link:focus {
		transform:translateY(0);
	}

#burger {
  display:none;
}

:focus-visible {
	outline-offset: 2px;
	outline:1.5px dotted var(--lime_green);
}

body {
	font-family: Switzer-Light;
	background-color:var(--bg_green);
	color:#fff;
	overflow-x:clip;
}

header {
    width:100%;
	position:sticky;
	top:0;
	z-index:100;
	padding-block:clamp(1rem,3vw,3rem);
	margin-bottom:calc(-1 * clamp(1rem,3vw,3rem));
	
	will-change: transform;
	background-color:hsl(from var(--bg_green) h s l / 0);
	transition:padding 0.5s ease-out, background-color 0.5s ease-out;
	isolation: isolate;
	

	& .inner {
		display:grid;
		grid-template-columns: 250px 1fr max-content max-content;
		align-items:center;
		gap:1rem;
		max-inline-size:1400px;
		margin-inline:auto;
		padding-inline:clamp(1rem,3vw,2rem);
	}

	&::before,
	&::after {
		content:'';
		/* position:absolute; */
		transition:background-color 0.5s ease-out;
		height:100%;
		width:50vw;
		background-color:hsl(from var(--bg_green) h s l / 0);
		z-index: -1;
	}

	&::before {
		right:100%;
	}
	&::after {
		left:100%;
	}

	&.smaller {
		padding-block:1rem;
		background-color:hsl(from var(--bg_green) h s l / 1);

		&::before,
		&::after {
			background-color:hsl(from var(--bg_green) h s l / 1);
		}
	}
}

/* --- Burger Trigger (Accessible Button) --- */
#burger-trigger {
    display: none; /* Hidden on desktop */
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    z-index: 1100;
}

#burger-trigger img {
    width: 44px;
    filter: brightness(1000%);
}

/* --- Navigation List --- */
.nav-list {
    list-style: none;
    display: flex;
    justify-content: center;
    align-items: center;
}

.nav-list li {
    position: relative;
    display: flex;
    align-items: center;

	&.payment {
		display:none;
	}
}

.nav-list a {
    font-family: Switzer-Regular, sans-serif;
    text-decoration: none;
    padding: 1rem;
    font-size: 0.9rem;
    display: block;
    transition: color 0.2s;
}

.nav-list a:hover,
.nav-list a.active {
    color: var(--lime_green);
}

/* Submenu Toggles (Arrows) */
.submenu-toggle {
    background: none;
    border: none;
    cursor: pointer;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
	margin-left:-1rem;
}

.submenu-toggle::after {
    content: '';
    width: 3.5px;
    height: 3.5px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(45deg);
    display: block;
	margin-top:-4px;
	transition:transform 0.25s ease-out, margin-top 0.25s ease-out;
}

.submenu-toggle[aria-expanded="true"]::after {
	transform:rotate(-135deg);
	margin-top:2px;
	border-color:var(--lime_green);
}

/* --- Desktop Dropdown Logic --- */
@media (min-width: 1025px) {
    .submenu {
        position: absolute;
        top: 100%;
        left: 0;
        background-color: var(--bg_green);
        min-width: 250px;
        display: none; /* Default hidden */
        box-shadow: 0 10px 15px rgba(0,0,0,0.3);

		& a {
			width:100%;
		}
    }

    /* Submenus of Submenus */
    .submenu .submenu {
        left: 100%;
        top: 0;
    }

    li:hover > .submenu,
    .submenu.is-visible {
        display: block;
    }

	.submenu .submenu-toggle::after {
		transform: rotate(-45deg);
		margin-top:2px;
	}

	.submenu .submenu-toggle[aria-expanded="true"]::after {
		transform: rotate(135deg);
	}
}

/* --- Mobile Modal (Slide-in) --- */
@media (max-width: 1099px) {
    header {
        /* grid-template-columns: 1fr max-content max-content; */
    }

    #burger-trigger {
        display: block;
        order: 3;
    }

    #main-navigation {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: var(--nav_width);
        background-color: var(--bg_green);
        padding: 5rem clamp(1rem,3vw,2rem);
        z-index: 1000;
		height:100vh;
        
        /* Slide hidden state */
        transform: translateX(100%);
        visibility: hidden;
        transition: transform var(--transition), visibility var(--transition);
        box-shadow: -10px 0 30px rgba(0,0,0,0.5);
        overflow-y: auto;
    }

    #main-navigation.is-open {
        transform: translateX(0);
        visibility: visible;
    }

    .nav-list {
        flex-direction: column;
        align-items: flex-start;
    }

    .nav-list li {
        width: 100%;
        flex-wrap: wrap;

		&.payment {
			display:block;
		}
    }

    .nav-list a {
        padding-inline:0;
        width: 100%;
        font-size: 1.1rem;
    }

    /* Mobile Submenu Expansion */
    .submenu {
        display: none;
        width: 100%;
        padding-left: 1.5rem;
        border-left: 1px solid var(--mid_green);
    }

    .submenu.is-visible {
        display: block;
    }

    .submenu-toggle {
        position: absolute;
        right: 0;
        top: 0.5rem;
        width: 44px; /* Minimum WCAG Touch Target */
        height: 44px;
    }

    /* .submenu-toggle[aria-expanded="true"] {
        transform: rotate(180deg);
    } */
}

/* --- Social Links & Right Elements --- */
.social {
    display: flex;
    gap: 0.5rem;
    padding: 1rem;
    align-items: center;
}

.social a {
	padding:0;
}

.social img {
    width: 1.25rem;
    filter: brightness(500%);
    transition: filter 0.2s;
}

.social a:hover img {
    filter: brightness(100%);
}

.right {
    display: flex;
    align-items: center;
	justify-content: end;
}

.bg-img {
	position:fixed;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	filter:contrast(125%) saturate(0%);
	opacity:0.1;
	z-index:-1;
}

.fcw {
  float:left;
  clear:left;
  width:100%;
}

.container {
	container-type: inline-size;
}

h1,h2,h3,h4,h5,h6 {
	margin-bottom:0.6lh;
	line-height:1.1;
	text-wrap:balance;
	color:var(--lime_green);
	font-family: Switzer-Bold;
}

h1 {
	font-size:clamp(2rem,5vw,2.75rem);
	text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
}

h2 {
	font-size:clamp(1.4rem,5vw,1.9rem);
}

h3 {
	font-size:clamp(1.2rem,5vw,1.65rem);
}

h4 {
	font-size:clamp(1rem,5vw,1.3rem);
}

h5 {
	font-size:clamp(0.9rem,5vw,1.15rem);
}

/* $= ends with */
/* |= starts with */
/* *= contains */
[class*="btn"]{
	display:inline-block;
	padding:0.75em 1em;
	border-radius:0.35rem;
	text-decoration: none;
	font-size:1rem;
	font-family: Switzer-Regular;
	transition-property: background-color,color;
	transition-duration: 0.25s;
	min-height:44px;
}

.white-btn {
	background-color:#fff;
	color:var(--bg_green);

	&:hover {
		background-color:var(--lime_green);
	}
}

.clear-btn {
	display:grid;
	grid-template-columns: 1fr 0.5rem;
	gap:0.5rem;
	border:1px solid #fff;
	color:#fff;

	&::after {
		content:url('../img/dropdown.svg');
		rotate:-90deg;
		filter:brightness(1000%);
	}

	&:hover {
		background-color:#fff;
		color:var(--bg_green);

		&::after {
			filter:brightness(0%);
		}
	}
}

.dark-btn {
	background-color:var(--bg_green);
	color:#fff;

	&:hover {
		background-color:var(--lime_green);
		color:var(--bg_green);
	}
}

.back {
	grid-template-columns: 0.5rem 1fr;
	&::after {
		display:none;
	}
	&::before {
		content:url('../img/dropdown.svg');
		rotate:90deg;
		filter:brightness(1000%);
	}
	&:hover {
		&::before {
			filter:brightness(0%);
		}
	}
}


main {
	clear:both;
	width:100%;
	padding-top:clamp(1rem,3vw,3rem);
	padding-inline:clamp(1rem,3vw,3rem);
	max-inline-size:1400px;
	margin-inline:auto;

	& h1 {
    	margin-top:5rem;
		max-width:45ch;
	}

	& :is(p,li){
		font-size:1rem;
		line-height:1.6;
		margin-bottom:1rem;
		clear:left;
		max-inline-size:85ch;

		& a {
			text-decoration: underline;

			&:hover {
				color:var(--lime_green);
			}
		}
	}

	& :is(ol,ul){
		margin-block:2rem;
		padding-left:2rem;

		& li {
			padding-left:1rem;
		}
	}
}

article {
	& :is(h2,h3,h4,h5,h6){
		margin-top:2lh;

		&:first-child {
			margin-top:0;
		}
	}

	& .table-container {
		width: 100%;
		max-width:calc(100vw - 2rem);
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		display: block;
	}

	& table {
		width:100%;
		min-width: 400px;
		white-space: normal;
		border-collapse: collapse;
		margin-block:2rem;

		& :is(td,th,caption) {
			padding:0.5rem;
			background-color:var(--bg_green);
			border:1.5px solid hsl(from var(--bg_green) h s 20% / 1);

			& *:last-child {
				margin-bottom:0;
			}
		}

		& th {
			background-color:var(--mid_green);
			text-align: left;
			font-family:Switzer-Semibold;
		}

		& tr:nth-of-type(odd) {
			& td {
				background-color:hsl(from var(--bg_green) h s 12% / 1);
			}
		}

		& caption {
			background-color:var(--mid_green);
			font-family:Switzer-Semibold;
			font-size:1.5rem;
			border-bottom:0;
		}
	}
}

.alerts {
	border:1.5px solid var(--lime_green);
	border-radius:0.75rem;
	background-color:var(--bg_green);
	padding:1rem;
	display:grid;
	gap:0.5rem;
	text-decoration: none;

	aside & {
		margin-top:2rem;
	}

	& > p {
		margin:0;
		font-family: 'Switzer-Bold';
	}

	& > div {
		display:grid;
		grid-template-columns: 3rem 1fr;
		gap:1rem;
		align-items: center;

		& p {
			margin:0;
			line-height:1.5;

			&:first-of-type {
				font-size:1.2rem;
				font-family:'Switzer-bold';
			}

			&:last-of-type {
				font-size:0.8rem;
				& a {
					text-decoration: none;
				}
			}
		}
	}
}

.quick-links {
  margin-block:1rem;
  display:grid;
  grid-template-columns: repeat(auto-fit,minmax(250px,1fr));
  gap:0.75rem;
}

.span-all {
	grid-column: 1/-1;
}

.align_left {
  float:left;
}

.align_right {
  float:right;
}

.align_center {
  text-align: center;
}

img.align_left {
  margin:0.5rem 1rem 1rem 0;
}

img.align_right {
  margin:0.5rem 0 1rem 1rem;
}

img.align_center {
  display:block;
  margin-left:auto;
  margin-right:auto;
}

input,
textarea,
label,
hr{
	clear:left;
	width:100%;
	margin-bottom:1rem;
}

input,
textarea {
	background-color:#fff;
	border:1px solid #aaa;
	padding:0.5rem;
	font-size:1rem;
}

form button {
	background-color:var(--orange);
}

	form button:hover {
		background-color: hsl(from var(--orange) h s 110% / 1); /* includes opacity at end */
	}

.errortext {
	color:red;
	font-weight:bold;
}

blockquote {
	margin-block:2rem;
	padding-left:clamp(1rem,5vw,2rem);
	font-style: italic;
	border-left:5px solid var(--lime_green);

	& p {
		max-width:calc(85ch - 2rem);
	}
}

figure {
	margin-bottom:1rem;
}

figcaption {
	color:var(--lime_green);
	font-size:0.9rem;
}
  
footer {
	width:100%;
	clear:both;
	padding-block:3rem;
	
	margin-top:3rem;
	border-top:1.5px solid var(--lime_green);

	& .inner {
		display:Grid;
		grid-template-columns: 1fr 60px;
		gap:1rem;
		padding-inline:clamp(1rem,3vw,3rem);
		max-inline-size: 1400px;
		margin-inline:auto;
	}


	& p {
		font-size:0.9rem;
		line-height: 1.5;
	}

	& .contact {
		margin-bottom:1rem;

		& span {
			color:var(--lime_green);
		}
	}
}

.cookies {
	position:fixed;
	right:1rem;
	bottom:1rem;
	width:min(350px,100%);
	padding:1.5rem;
	border-radius:1rem;
	background-color:var(--bg_green);
	text-align: center;
	z-index:100;
	border:1.5px solid #fff;
	box-shadow:0 10px 15px #0003;

	& .inner {
		display:grid;
		grid-template-columns: 1fr 1fr;
		gap:1rem;
		padding:0;
	}

	& .text {
		grid-column: 1/-1;
	}

	& p {
		font-size:0.9rem;
	}
}

.last-updated {
	padding-inline:clamp(1rem,3vw,3rem);
	max-inline-size: 1400px;
	margin-inline:auto;
}

.latest-news {
	margin-block:3rem;
	padding-inline:clamp(1rem,3vw,3rem);
	max-inline-size: 1400px;
	margin-inline:auto;

	& > h3 {
		font-size:1.5rem;
		margin-bottom: 2rem;
	}
}

.items {
	display:grid;
	grid-template-columns: repeat(auto-fit,minmax(250px,1fr));
	gap:1rem;

	& a {
		text-decoration: none;
		border:1.5px solid var(--mid_green);
		border-radius:1rem;
		overflow:hidden;
		background-color:var(--bg_green);
		transition:border 0.5s ease;

		& .default {
			display:grid;
			align-items:center;
			aspect-ratio:2;
			width:100%;
			background-color:var(--mid_green);
			padding-inline:3rem;
		}

		& .text {
			padding:1rem;

			& .date {
				color:var(--lime_green);
				font-size:0.8rem;
				font-family: Switzer-Semibold;
				margin-bottom:0.25rem;
				line-height:1.5;
			}

			& h3 {
				font-family: Switzer-Regular;
				color:#fff;
				font-size:1rem;
				margin:0;
				line-height:1.5;
			}
		}

		&:hover,
		&:focus {
			border:1.5px solid var(--lime_green);
		}
	}
}

.divide {
	padding-inline:0.5rem;
}

.file-list {
	display:grid;
	grid-template-columns: repeat(auto-fill,minmax(40px,1fr));
	gap:1rem;

	& a {
		& img {
			filter:brightness(500%);
		}
		&:hover {
			color:var(--lime_green);
			& img {
				filter:brightness(100%);
			}
		}
	}
}

#edit-page,
.edit-page {
	position:absolute;
	top:0;
	right:0;
	background-color:#fff;
	color:var(--bg_green);
	padding:0.25rem 0.5rem;
	font-size:0.8rem;
	text-decoration: none;
	border-radius:0 0 0.25rem 0.25rem;
	border-width: 0 1px 1px 1px;
	border-color: var(--bg_green);
	border-style: solid;
	z-index:101;

	&:hover {
		background-color:var(--lime_green);
	}
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
}

@media screen and (max-width:1100px) {

	header::before,
	header::after {
		display:none;
	}

	#burger-trigger {
        display: block;
        z-index: 1001;
        background: none;
        border: none;
        cursor: pointer;
    }

    nav#main-navigation {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: var(--nav_width);
        background-color: var(--bg_green);
        z-index: 1000;
        
        /* The "Slide" Animation */
        transform: translateX(100%);
        visibility: hidden;
        transition: transform 0.4s ease, visibility 0.4s;
    }

    /* When JS adds the .is-open class */
    nav#main-navigation.is-open {
        transform: translateX(0);
        visibility: visible;
    }

    /* Submenu Logic: Initially Hidden */
    .submenu {
        display: none;
        padding-left: 1rem;
    }

    .submenu.is-visible {
        display: block;
    }
}

@media screen and (max-width:800px) {
	.contact {
		& span {
			display:block;
			clear:left;
			width:100%;
			margin-top:1rem;

			&:first-of-type {
				margin-top:0;
			}

			&.divide {
				display:none;
			}
		}
	}
}

@media screen and (max-width:600px) {

	header .inner {
		grid-template-columns: 200px 1fr;

		& #burger-trigger {
			justify-self:end;
		}
	}

	header .right {
		display:none;
	}
}

@media screen and (max-width:300px) {

	header .inner {
		grid-template-columns: 150px 1fr;

		& #burger-trigger {
			justify-self:end;
		}
	}

	header .right {
		display:none;
	}
}