:root {

	--background-color: #F9FFEE; 
	--header-bg-color: #ACF233; 
	--footer-bg-color: #ACF233; 
	--card-bg-color: #ACF233; 
	--title-bg-color: #ACF233; 
	--sub-title-bg-color: #74B207; 
	--links-bg-color: #ACF233; 
	
	--title-color: #0D1007;
	--sub-title-color: #76AE14;
	--text-color: #3A5210;
	
	--icon-color: #6EAC04;
	--button-color: #6EAC04;
	--links-color: black;
	
	--cut-text-color: red;
	--color-white: white;
	--color-black: black;
	
	--card-border-color: #8CD40F;
	--title-border-color: #8CD40F;
	
}

* {
	
	padding: 0;
	margin: 0;
	
}


img {
	
	width: 100%;
	height: 100%;
	object-fit: cover;

}


body {

	background-color: var(--background-color);
	counter-reset: serial;

}

ul, ol {
	
	margin: 4px;
	margin-top: 6px;
	margin-left: 10px;
	display: flex;
	flex-direction: column;

}

li {
	
	margin: 2px;
	margin-left: 20px;
	
}


/* Fullscreen Loader Container */
#loader-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: var(--header-bg-color);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 99999; /* Ensure it stays on top of everything */
  font-family: "Segoe UI", sans-serif;
  color: #ffffff;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

/* Text style below the loader */
.loader-text {
  margin-top: 20px;
  font-size: 14px;
  letter-spacing: 0.5px;
}

/* The Loader Outer Ring */
.w10-loader {
  position: relative;
  width: 50px;
  height: 50px;
}

/* Base style for all 5 dots */
.w10-loader .dot {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  transform: rotate(225deg);
  animation: w10-orbit 4.2s infinite;
}

/* The actual visible circle within each dot wrapper */
.w10-loader .dot::after {
  content: '';
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ffffff;
}

/* Staggered animation delays to create the trailing/gathering effect */
.w10-loader .dot:nth-child(1) { animation-delay: 200ms; }
.w10-loader .dot:nth-child(2) { animation-delay: 400ms; }
.w10-loader .dot:nth-child(3) { animation-delay: 600ms; }
.w10-loader .dot:nth-child(4) { animation-delay: 800ms; }
.w10-loader .dot:nth-child(5) { animation-delay: 1000ms; }


/* The precise orbit keyframes replicating Windows behavior */
@keyframes w10-orbit {
  0% {
    transform: rotate(225deg);
    opacity: 1;
    animation-timing-function: ease-out;
  }
  7% {
    transform: rotate(345deg);
    animation-timing-function: linear;
  }
  29% {
    transform: rotate(455deg);
    animation-timing-function: ease-in-out;
  }
  41% {
    transform: rotate(690deg);
    animation-timing-function: linear;
  }
  70% {
    transform: rotate(815deg);
    opacity: 1;
    animation-timing-function: ease-out;
  }
  75% {
    transform: rotate(945deg);
    animation-timing-function: linear;
  }
  76% {
    transform: rotate(945deg);
    opacity: 0;
  }
  100% {
    transform: rotate(945deg);
    opacity: 0;
  }
}

/* Class to fade out the loader via JS */
#loader-wrapper.fade-out {
  opacity: 0;
  visibility: hidden;
}




a {

	text-decoration: none;

}

input {
	
	padding: 8px 10px;
	margin: 2px;
	width: -webkit-fill-available;

}

input[type=submit] {
	
	cursor: pointer;

}

button {
	
	padding: 4px;
	cursor: pointer;

}

table {
  font-family: Arial, Helvetica, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td, th {
  border: 1px solid var(--black);
  padding: 8px;
}

tr:nth-child(even){background-color: var(--);}

tr:hover {background-color: #ddd;}

th {
  padding-top: 12px;
  padding-bottom: 12px;
  text-align: left;
  background-color: #04AA6D;
  color: white;
}


/* CSS TABLE COUNTER FOR STOCKS LIST BELOW */
		
		
		table tr td:first-child:before {
			
				counter-increment: serial;
				content: counter(serial);
		
		}

/* FORM INPUTS */

.input-group {
 position: relative;
 margin-top: 10px;
}

.input, select, textarea {
 border: solid 1.5px var(--card-border-color);
 border-radius: 0.5rem;
 background: none;
 padding: 0.6rem 0.5rem;
 font-size: 0.8rem;
 transition: border 150ms cubic-bezier(0.4,0,0.2,1);
 width: -webkit-fill-available;
}

.user-label {
 position: absolute;
 left: 12px;
 pointer-events: none;
 transform: translateY(0.6rem);
 transition: 150ms cubic-bezier(0.4,0,0.2,1);
}

.input:focus, input:valid {
 outline: none;
 border: 1.5px solid #1a73e8;
}

.input:focus ~ label, input:valid ~ label {
 transform: translateY(-40%) scale(0.9);
 background-color: var(--background-color);
 padding: 4px;
 color: var(--black);
 font-weight: 600;
}


/* Header */

.header-content {
	
	display: inline-flex;
	justify-content: space-between;;
	align-items: center;
	width: -webkit-fill-available;
	padding: 4px;
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
	background-color: var(--header-bg-color);
	color: var(--black);
}

.brand {
	
	display: inline-flex;
	gap: 10px;
	padding: 6px;
	justify-content: center;
	align-items: center;

}


.brand a {

	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	color: var(--black);

}


#slogan {
	
	color: var(--white);

}


.logo {
	
	width: 65px;
	height: 65px;

}

.navigation {
	
	display: inline-flex;
	justify-content: center;
	align-items: flex-end;
	padding-right: 10px;

}

.navigation a {
	
	color: var(--black);
	font-size: 1.3rem;
	margin: 4px;

}


.footer {
	
	display: flex;
	justify-content: center;
	align-items: center;
	width: -webkit-fill-available;

}

.footer-content {
	
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;

}

.shortcut-links {
	
	display: flex;
	flex-wrap: wrap;
	width: -webkit-fill-available;
	justify-content: center;
	padding: 20px; 10px;

}

.footer-content a {
	
	display: flex;
	width: max-content;
	justify-content: center;
	align-items: center;
	text-decoration: none;
	font-size: 1rem;
	margin: 4px 6px;
	border: 2px solid var(--title-border-color);
	color: var(--color-black);
	padding: 4px 10px;
	border-radius: 20px;

}



.main-content {

	display: flex;
	align-items: center;
	flex-direction: column;

}


.top-banner {
	
	display: flex;
	width: -webkit-fill-available;
	justify-content: center;
	
}

.top-banner-content {
	
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: -webkit-fill-available;
	height: max(420px, 45vh);
}

.top-banner-image {
	
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: -webkit-fill-available;
	height: max(420px, 45vh);
	
}

.banner-text-content {
	
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: -webkit-fill-available;
	height: max(420px, 45vh);
	background-color:rgba(0, 0, 0, 0.6);
	color: var(--title-bg-color);
}

.titles-and-details {
	
	padding: 16px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;

}


#main-banner-title {
	
	font-size: 2rem;

}


#main-banner-description {
	
	color: var(--color-white);
	font-size: 1rem;

}

#learn-more-button a {
	
	margin: 20px 10px;
	display: flex;
	justify-content: center;
	align-items: center;
	width: fit-content;
	padding: 10px 20px;
	font-size: 1.5rem;
	background-color: var(--links-bg-color);
	color: black;
	border-radius: 40px;

}


#register-button a {
	
	margin: 20px 10px;
	display: flex;
	justify-content: center;
	align-items: center;
	width: fit-content;
	padding: 8px 20px;
	font-size: 1rem;
	background-color: var(--color-black);
	color: var(--header-bg-color);
	border-radius: 40px;
	border: 2px solid var(--header-bg-color);

}

.categories-content {
	
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	padding: 16px 10px;
	
}


.category-card {
	
	margin: 16px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 10px;
	border-radius: 20px;
	width: max(120px, 190px);
	height: auto;
	text-align: center;
	gap: 10px;
	border-top: 4px solid var(--card-border-color);
	border-bottom: 4px solid var(--card-border-color);
	color: var(--sub-title-color);
}

.category-details-card img {
		
		width: 100%;
		height: 100%;
		object-fit: cover;
	
}

#odd {
    
    flex-wrap: wrap;
    
}

#even {
    
    flex-wrap: wrap-reverse;
    
}

.category-icon {
	
	font-size: 2.5rem;

}

.category-card a {
	
	display: flex;
	justify-content: center;
	align-items: center;
	color: var(--sub-title-color);
	font-size: 1.5rem;
	margin: 6px;

}


.categories-with-details {
	
	display: flex;
	flex-direction: column;
	width: -webkit-fill-available;
	align-items: center;
	
}


.category-details-card {
	
	display: inline-flex;
	justify-content: center;
	gap: 20px;
	width: max(340px, 85%);
	margin: 10px;
	margin-top: 80px;

}

.category-details-image {
	
	display: flex;
	justify-content: center;
	align-items: center;
	width: max(320px, 40%);

}

.category-description {
	
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: max(320px, 50%);
	padding: 10px;
	padding-left: 4px;
	gap: 10px;
	border-left: 2px solid var(--card-background);
	margin-left: 20px;
	color: var(--dark);
}


.category-description h2 {
	
	color: var(--title-color);
	border-left: 4px solid var(--title-border-color);
	padding: 2px;
	padding-left: 10px;

}

.category-description p {
	
	color: var(--text-color);

}

.category-description a {
	
	display: flex;
	border: 1px solid black;
	border-radius: 20px;
	margin-top: 20px;
	color: var(--color-black);
	padding: 8px 12px;
	background-color: var(--links-bg-color);
}


.category-details-image img {

	border-radius: 10px;

}