/* ==========================
   DESKTOP STYLES (default)
========================== */
.container {
	background-image: linear-gradient(rgba(4,9,30,0.7),rgba(4,9,30,0.7)), url(background.jpg); 
}

main_part {
	margin: 0 auto;
	width: 65%;
}

.main {
    width: 100%;
    height: 88svh;
    background: rgba(100, 100, 100, 0.3);
    border-radius: 5px;
    margin: 10px auto;

    display: flex;
    flex-direction: column;
    align-items: center;

    padding-top: 10svh;
    padding-bottom: 10svh;
}

.form-body {
    width: 90%;          
    margin: 0 auto;      
    text-align: left;    
}

h1 {
	margin-top: 0; 
	color: #dfcd81;
	text-align: center;
	padding: 0;
	font-size: clamp(1.2rem, 1.5vw, 2rem);
}

.input {
	width: 100%;
	padding: 0.3rem;
	margin: 0.3rem 0;
	font-size: 0.875rem;
	outline: none;
	box-sizing: border-box;
}

form label {
	display: block;
	padding: 0.125rem 0;
    color: #dfcd81;
    white-space: nowrap;
}

form input#username, form input#firstname, form input#lastname, form input#middlename,
form input#email, form input#password, form input#password2 {
	height: 2.2rem;
	background-color: #222;
	border: 1px solid #444;
	padding: 0 0.4rem;
	font-size: 0.8125rem;
	color: #fff;
	border-radius: 4px;
	box-sizing: border-box;
}

form input#submit {
	display: inline-block;
	text-decoration: none;
	font-size: 0.8125rem;
	color: #dfcd81;
	background-color: rgba(100, 100, 100, 0.5);
	border: none;
	margin: 0.625rem;
	padding: 0.5rem 2rem;
	border: 1px solid #444;
	position: relative;
	cursor: pointer;
	border-radius: 4px;
	box-sizing: border-box;
}

.termsOfService {
    display: flex;
    align-items: center;
	flex-wrap: nowrap;
    margin: 0.9375rem 0;
    padding-left: 0.625rem;
    font-size: 0.9rem;
	color: #dfcd81;
}

.termsOfService input {
	margin-right: 0.625rem;
}

.termsOfService a {
    margin-left: 0.3125rem;
    color: white;
    text-decoration: none;
}

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

form input#submit:hover {
	border: 1px solid #dfcd81;
	background: #384E2D;
	transition: 1s;
}

.login {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 5svh;
	margin: 0;
	padding: 0;
	text-align: center;
	color: #dfcd81;
	font-size: clamp(0.7rem, 0.8vw, 0.9rem);
	margin-top: 0.9375rem;
}

.login a {
	margin-left: 0.3125rem;
	padding: 0.3125rem 0.625rem;
	background-color: rgba(100, 100, 100, 0.5);
	border: 1px solid #444;
	color: #dfcd81;
	text-decoration: none;
	border-radius: 4px;
}

.login a:hover {
	background-color: #384E2D;
	color: wheat;
}

.password-requirements ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.password-requirements li {
    margin: 0.1875rem 0;
}

.password-requirements li.valid {
    color: #D8CF82;
    opacity: 1;
}

.password-requirements li.invalid {
    color: #D8CF82;
    opacity: 0.5;
}

.input input[type="password"] {
    line-height: normal;
}

.password-wrapper {
    position: relative;
    display: block;
}

/* ==========================
   TABLET VERSION (601px - 900px)
========================== */
@media only screen and (min-width: 601px) and (max-width: 900px) {

	main_part {
		width: 85%; /* slightly smaller than desktop */
	}

	.main {
		width: 95%;
		padding-top: 8svh;
		padding-bottom: 8svh;
	}

	h1 {
		font-size: clamp(1.1rem, 2.5vw, 1.8rem);
	}

	.input {
		padding: 0.25rem;
		font-size: 0.8125rem;
	}

	form input#username, form input#firstname, form input#lastname, form input#middlename,
	form input#email, form input#password, form input#password2 {
		height: 2rem;
		font-size: 0.75rem;
	}

	form input#submit {
		padding: 0.4rem 1.75rem;
		font-size: 0.75rem;
		margin: 0.5rem;
	}

	.termsOfService {
		font-size: 0.8rem;
		padding-left: 0.5rem;
	}

	.login {
		font-size: 0.75rem;
		margin-top: 0.75rem;
	}

	.login a {
		padding: 0.25rem 0.5rem;
		font-size: 0.75rem;
	}
}

/* ==========================
   MOBILE VERSION (max-width: 600px)
========================== */
@media only screen and (max-width: 600px) {

	.container {
		height: auto;
		min-height: 155svh;
	}

	main_part {
		height: auto;
		width: 100%;
		padding: 0.625rem;
	}

    .main {
        width: 95%;
		height: auto;
		margin: 0 auto;
		padding: 0.3125rem 0;
		display: flex;
		flex-direction: column;
		align-items: stretch;
    }
	    
    .headings {
        display: none;
    }

	h1 {
		font-size: 5vw;
	}

    form input#username, form input#firstname, form input#lastname, form input#middlename,
    form input#email, form input#password, form input#password2 {
        width: 100%;
		box-sizing: border-box;
	}
	form input#submit {
		margin-left: 0.625rem;
	}

    .-login {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}
	.-login p {
		text-align: center;
		font-size: 3vw;
	}

	.login {
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;
        margin: 0;
        font-size: 0.7rem;
    }

    .-login p {
        margin: 0;
        font-size: 0.7rem;
    }

	.termsOfService {
		font-size: 0.7rem;
	}   
}
