/* MAIN START */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}	

body {
	font-family: "Roboto", sans-serif;
	line-height: 1.6;
	background-color: #ffffff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 15px 40px;
	margin: 0;
	gap: 25px;
	overflow-x: hidden;
	max-width: 100%;
}

@media screen and (max-width: 768px) {
	body {
		margin: 10px 15px;
		padding: 10px;
	}
}

.panke-btn-bg {
	background-color: #dce8fe;
}

.cavendish-btn-bg {
	background-color: #c75a82;
}

.save-button {
	margin: 0 auto;
	width: fit-content;
	padding: 10px 20px;
	border-radius: 12px;
	color: black;
	font-size: 16px;
	font-weight: 550;
	cursor: pointer;
}

/* MAIN END */


/* "INCLUDE" HEADING START */
.heading {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	text-align: center;
	gap: 35px;
}

.heading-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}


.signout {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin-left: auto;
	color: black;
	font-weight: 500;
	cursor: pointer;
}

@media screen and (max-width: 768px) {
	.heading {
		margin-top: 5px;
		gap: 15px;
		flex-direction: column;
		align-items: center;
	}

	.heading h1 {
		font-size: 1.5rem;
	}

	.signout {
		margin-right: auto;
	}
}

hr {
	background-color: black; 
	height: 2px;
	width: 100%;
}
/* "INCLUDE" HEADING END */


/* "INCLUDE" NAVIGATION START */
.navigation {
	margin-right: auto;
}

.navigation-content-closed {
	z-index: 1000;
	position: absolute;	
	height: 59px;
	width: 59px;
	border-radius: 8px;
	box-shadow: 0 0 3px #acacac;
	display: flex;
	justify-content: center;
	align-items: center;
	cursor: pointer;
	transition: transform 0.5s ease-in-out, opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
	visibility: visible;
	opacity: 1;
	transform: translateX(0); /* Initial position */
}

.navigation-content-closed:hover {
	box-shadow: 0 0 8px #a8a8a8;
}

.navigation-content-open {
	z-index: 1000;
	position: absolute;
	border-radius: 8px;
	box-shadow: 0 0 8px #acacac;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 15px;
	gap: 30px;
	cursor: pointer;
	transition: transform 0.5s ease-in-out, opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
	visibility: hidden;
	opacity: 0;
	transform: translateX(-100%); /* Start off-screen to the left */
	font-weight: bold;
}

.navigation-content-open img {
	height: 29px;
	width: 30px;
}

.navigation-selection-and-icon {
	display: flex;
	align-items: center;
	gap: 10px;
}

/* Add keyframes for the transition effect */
@keyframes slideIn {
	from {
		transform: translateX(-100%);
		opacity: 0;
	}
	to {
		transform: translateX(0);
		opacity: 1;
	}
}

@keyframes slideOut {
	from {
		transform: translateX(0);
		opacity: 1;
	}
	to {
		transform: translateX(-100%);
		opacity: 0;
	}
}

/* Apply the keyframes to the elements */
.navigation-content-closed.open {
	animation: slideIn 0.5s forwards;
}

.navigation-content-open.open {
	animation: slideIn 0.5s forwards;
}

.navigation-content-closed.close {
	animation: slideOut 0.5s forwards;
}

.navigation-content-open.close {
	animation: slideOut 0.5s forwards;
}

/* OLD */

#menuContainer>.menuItem {
	font-size: 14px;
	background-color: white;
	color:blue;
	font-weight:bold;
	cursor: pointer;
	margin-bottom: 5px;
}

#menuContainer>.menuItem:hover {
	text-decoration: underline;
}

/* "INCLUDE" NAVIGATION END */


/* HOME MENU START */
.home-section-image {
	height: 90%;
	width: 90%;
	max-height: 240px;
	max-width: 412px;
	margin-top: 10px;
	padding: 15px;
	object-fit: cover;
	box-shadow: 0 0 8px #acacac;
	border-radius: 12px;	
}

section {
	width: 100%;
	min-height: fit-content;
}

.section-heading {
	width: 100%;
	display: flex;
	justify-content: flex-start;
}

section .items-container {
	display: flex;
}

@media screen and (max-width: 768px) {
	section .items-container {
		flex-direction: column;
		align-items: center;
	}
}

section .items-child {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	box-shadow: 0 0 8px #c9c9c9;
	border-radius: 8px;
	padding: 15px;
	margin: 15px;
	width: 100%;
	max-width: 300px;
	text-align: center;
}

.inDaysSpan {
	font-size: 35px;
}

.items-child ul {
	margin-left: 25px;
	margin-right: auto;
}

.items-child ul li {
	text-align: left;
}

#travelInformationMenu {
	cursor: pointer;
}

#travelInformationMenu:hover {
	box-shadow: 0 0 10px #a8a8a8;
}

#travelInformationMenu img {
	width: 35px;
}

.todo-li-links {
	cursor: pointer;
	text-decoration: underline;
}

/* HOME END */



/* TRAVEL INFORMATION START */

.travelInformationContainer {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.document-reference-container {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 15px;
	margin: 15px 0;
	border-radius: 12px;
	box-shadow: 0 0 8px #acacac;
	gap: 10px;
	cursor: pointer;
}

.document-reference-container:hover {
	box-shadow: 0 0 10px #a8a8a8;
}

.travelInformation-text-container {
	max-width: 1000px;
	border-radius: 25px;
	padding: 25px;
	background-color: #ecf2fd;
}



/* TRAVEL INFORMATION END */



/* PAYMENT INFORMATION END START*/

.payment-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}

.invoice-view-container {
	display: flex;
	gap: 20px;
	padding: 15px;
	border-radius: 12px;
	box-shadow: 0 0 8px #acacac;
	cursor: pointer;
}

.invoice-view-container:hover {
	box-shadow: 0 0 10px #a8a8a8;
}

.invoice-view-container img {
	width: 50px;
}

.invoice-view-container .invoice-view-text {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.invoice-view-heading {
	font-weight: 550;
}


/* Status */
.status-payments-container {
	margin: 35px 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 1000px;
	width: 100%;
	position: relative;
}

.timeline {
	padding: 0;
	width: 100%;
	display: flex;
	flex-direction: row;
}

.timeline li {
	list-style-type: none;
	float: left;
	width: 33.33%;
	font-size: 1em;
	position: relative;
	text-align: center;
	font-weight: bold;
}

.timeline li:before {
	width: 50px;
	height: 50px;
	line-height: 50px;
	display: block;
	text-align: center;
	margin: 0 auto 10px auto;
	border-radius: 50%;
	background-color: #BBCFF1;
	letter-spacing: 0px;
}

.timeline li.active:after {
	content: '';
	position: absolute;
	width: 100%;
	height: 3px;
	background-color: #9aaac5;
	top: 25px;
	left: -50%;
	z-index: -1;
}

.timeline li.inactive:before {
	background-color: #D7D7D7;
	content: "❌"; 
}

.timeline li.inactive:after{
	content: '';
	position: absolute;
	width: 100%;
	height: 3px;
	border-bottom: 3px dotted #acabab;
	top: 22px;
	left: -50%;
	z-index: -1;
}

.timeline li.active:before {
	background-color: #BBCFF1;
	content: "✅"; 
}

.timeline li:first-child:after {
	content: none;
}

@media (max-width: 550px) {

	.status-payments-container {
		margin: 15px 0;
	}

	.timeline {
		flex-direction: column;
	}

	.timeline li {
		display: flex;
		width: fit-content;
		position: relative; /* Ensure li is positioned relative */
		left: 20vw;
		margin: 25px 0;
	}

	.timeline li:before {
		position: absolute; /* Position before element absolutely */
		left: -60px;
		top: 50%; /* Center vertically */
		transform: translateY(-50%); /* Adjust for centering */
	}

	.timeline li.active:after {
		content: '';
		position: absolute;
		width: 3px;
		height: 110%;
		background-color: #9aaac5;
		left: -36px;
		top: -25px;
		transform: translateY(-50%);
		z-index: -1;
	}

	.timeline li.inactive:after {
		content: '';
		position: absolute;
		width: 3px;
		height: 120%;
		border-left: 3px dotted #acabab;
		top: -36px;
		left: -36px;
		z-index: -1;
	}

	.timeline li:first-child:after {
		content: none;
	}
}

/* Receipt */
.receipt-container-wrapper {
	max-width: 400px;
	width: 100%;
	filter: drop-shadow(0 0 8px #acacac);
}

.receipt-container {
	background-color: white;
	width: 100%;
	padding: 50px 30px 100px 30px;
	clip-path: polygon(
		100% 0, 
		0 0, 
		0 100%, 
		10% 95%, 
		20% 100%, 
		30% 95%, 
		40% 100%, 
		50% 95%, 
		60% 100%, 
		70% 95%,
		80% 100%,
		90% 95%,
		100% 100%
	);
}

@media (max-width: 768px) {
	.receipt-container {
		padding: 30px 20px;
	}
}

@media (max-width: 480px) {
	.receipt-container {
		padding: 20px 10px;
	}
}

.receipt-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 20px;
}

.receipt-header img {
	width: 50px;
}

.receipt-table {
	width: 100%;
	display: flex;
	flex-direction: column;
}

.receipt-row {
	display: flex;
	padding: 5px;
}

.name {
	overflow: hidden;
	white-space: nowrap;	
}

.amt {
	width: fit-content;
	white-space: nowrap;
}

.name:after {
	content: ".......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................";
}

.due {
	position: relative;
	top: -15px;
}

/* PAYMENT INFORMATION END*/


/* PASSPORT/ID START */
.passport-top-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px;
}

.passport-top-container h1 {
	text-align: center;
}

.passport-container {
	background-image: url("../student/images/passport_background.png");
	border-radius: 30px;
	border: 5px solid black;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px;
	max-width: 650px;
	box-shadow: 0 0 8px #acacac;
}

.passport-container img {
	width: 100%;
}

@media screen and (max-width: 768px) {
	.passport-container {
		max-width: 100%;
		max-height: 100%;
	}

}

.passport-container hr {
	width: 100%;
	border: 1px solid #000;
	box-shadow: 0 0 15px #000;
}

.passport-container .profile {
	display: flex;
	align-items: center; 
	gap: 10px;
	padding: 0 13px;
	width: 100%;
}

.passport-container .profile img {
	background-color: #fff;
	padding: 15px;
	border: #000 2px dotted;
	height: 160px;
	width: 135px;
}

@media screen and (max-width: 650px) {
	.passport-container .profile {
		width: 100%;
		gap: 3px;
	}
}

@media screen and (max-width: 468px) {
	.passport-container .profile img {
		display: none;
	}
}

.inputs-container {
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: 15px;
	gap: 10px;
	font-size: 18px;
}

@media screen and (max-width: 650px) {
	.inputs-container {
		font-size: 16px;
		padding: 5px;
		gap: 0px;
	}

	.inputs-container .inputfield-container {
		flex-direction: column;
		gap: 0px;
	}

	.inputfield-container:first-child {
		flex-direction: row;
		gap: 15px;
	}
	
}

.inputfield-container {
	display: flex;
	gap: 50px;
}

.inputfield-container input {
	padding: 5px;
	border-radius: 8px;
	border: 1px dotted #000;
	text-align: center;
}

.inputfield-container select {
	padding: 5px;
	border-radius: 8px;
	border: 1px dotted #000;
	text-align: center;
}

.passport-container .footer {
	background-color: #EEEEEE;
	font-weight: bold;
	width: 100%;
	height: 60px;
	word-wrap: break-word;
	border-bottom-left-radius: 30px;
	border-bottom-right-radius: 30px;
	overflow: hidden;
	padding: 0 7px;
}

.passport-id-notes p {
	font-weight: bold;
	text-align: center;
}

/* PASSPORT/ID END */


/* DOCUMENTS START */
.all-documents-container {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.documentslist {
	display: flex;
	flex-wrap: wrap;
	gap: 25px;
	margin-top: 25px;
	width: 100%;
}

.document-entry {
	box-shadow: 0 0 8px #acacac;
	padding: 15px;
	border-radius: 12px;
	max-width: 350px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.document-buttons {
	margin-top: 10px;
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.document-button-actions {
	cursor: pointer;
	width: 20px;
	height: 20px;
}

@media screen and (max-width: 1100px) {
	.documentslist {
		justify-content: center;
	}
}

.document-picture {
	width: 80px;
	height: 80px;
	margin-bottom: 10px;
}

.document-heading {
	margin-right: auto;
	font-size: 16px;
	font-weight: 550;
}

.document-uploaded-by {
	margin-top: 10px;
	margin-right: auto; 
	display: flex;
	align-items: center;
	gap: 10px;
}

.document-date {
	margin-right: auto;
}

/* Upload Document */
.upload-document-container {
	margin-top: 30px;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px;
}

.upload-document-container form {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px;
}

.upload-document-container form label {
	padding: 25px 100px;
	border-radius: 12px; 
	background-color: #F4F4F4;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-size: 25px;
	box-shadow: 0 0 8px #acacac;
	cursor: pointer;
}

@media screen and (max-width: 768px) {
	.upload-document-container form label {
		padding: 25px 50px;
	}
}

.upload-button {
	width: 180px;
	height: 50px;
	border-radius: 12px;
	background-color: #D6E5FF;
	font-size: 16px;
	color: black;
	font-weight: 550;
	cursor: pointer;
}


/* DOCUMENTS END */


/* OLD */
#startupText {
/*width: 100%;*/
font-weight: bold;
font-size:16px;
text-align: left;
padding-top:20px;
padding-left:10px;
padding-right:10px;
}

#pageHeaderContainer {
margin-top: 70px;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
}

/* Inactive */
#titleContainer {
background-color: rgb(220, 240, 247);
font-size:16px;
height: 20px;
font-weight:bold;
text-align: center;
border: thin solid  rgb(220, 240, 247);
}

.notifications {
display: flex;
flex-direction: row;
justify-content: space-between;
background-color: rgb(220, 240, 247);
width: 100%;
max-width: 1300px;
padding: 15px;
gap: 10px;
border-radius: 12px;
box-shadow: 0 0 8px #c9c9c9;
}

#statusContainer {
background-color: bisque;
}

#messages {
background-color: rgb(246, 241, 234);
}

.closeIcon {
cursor: pointer;
max-width: 35px;
}

#layoutContainer {
display: flex;
flex-direction: row;
/*flex-wrap: wrap;*/
}

#rightPane {
/*background-color: yellow;*/
width:80%;
}

#menuContainer {
display:flex;
flex-direction: column;
min-width:20%;
background-color: white;
margin-right:1%;
border:thin solid black;
padding:5px;
overflow-x:auto;
}

#contentContainer {
width: 100%;
}

#expandMenu {
width:30px;
height:30px;
cursor: pointer;
overflow: visible;
}

#collapseMenu {
width:30px;
height:30px;
cursor: pointer;
overflow: visible;
}

#menuCollapseContainer {
position:sticky;
top:5px;
display:block;
z-index:5;
overflow:visible;
margin-bottom: 2px;
}

.errorContainer {
color:red;
font-weight: bold;
height:1.2em;
}

.fakeLink {
color:blue;
cursor: pointer;
}

.fakeLink:hover {
text-decoration: underline;
}

/* PARENTAL DECLARATION START */
#parentalDeclarationsContainer {
	display: flex;
	flex-direction: column;
}

#parentalDeclarationsContainer hr {
	margin: 20px 0;
}

.parentalDeclaration {
	display: flex;
	flex-direction: row;
	gap: 20px;
	align-items: center;
}

.parentalDeclaration .spacer {
	margin: 8px;
}

.parentalDeclaration input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	min-height: 35px;
	min-width: 35px;
	background-color: #d4d4d4;
	border-radius: 5px;
	position: relative;
	cursor: pointer;
}

.parentalDeclaration input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 20px;
	background-image: url("../student/images/thumbs-up.png");
	background-size: contain;
	background-repeat: no-repeat;
	transform: translate(-50%, -50%);
}

.parentalDeclaration input[type="checkbox"]:not(:disabled):checked:hover::after {
	background-image: url("../student/images/thumbs-up.png");
}

.mandatoryParentalDeclaration {
	color:red;
	font-weight:bold;
	font-size:25px;
	padding-left:2px;
	padding-right:2px;
}

/* PARENTAL DECLARATION END */


/* FLIGHT DETAILS START*/
.flight-details-container {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.flight-details-note {
	text-align: center;
	font-style: italic;
}

.flight-details {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 50%;
	border-radius: 12px;
	box-shadow: 0 0 8px #acacac;
	padding: 15px;
}

.flight-details hr {
	margin-bottom: 15px;
}




.flight-details div {
	margin-bottom: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.flight-details div > input, select {
	width: 250px;	
	background-color: #e4e4e4;
	border: none;
	border-radius: 4px;
	padding: 10px;
}

@media screen and (max-width: 664px) {
	.flight-details {
		width: 100%;
	}

	.flight-details div > input, select {
		width: 150px;	
	}
}



/* FLIGHT END */

#resetFormContainer {
display:flex;
flex-direction: column;
width:50%;
margin-left:auto;
margin-right:auto;
}

#resetPasswordInstructions {
margin-bottom: 10px;
}

#loginFormContainer {
display: flex;
flex-direction: column;
margin-top: 100px;
width: 100%;
max-width: 850px;
padding: 50px 15px;
border-radius: 12px;
box-shadow: 0 0 8px #acacac;
}

#loginFormContainer {
display: flex;
flex-direction: column;
gap: 20px;
align-items: center;
}

#loginFormContainer .loginForm-Heading {
display: flex;
flex-direction: column;
align-items: center;
gap: 25px;
}

.loginForm-Heading img {
width: 150px;
}

#loginFormContainer h1 {
text-align: center;
font-size: large;
}

#loginFormContainer .loginForm-Inputfield {
display: flex;
flex-direction: column;
align-items: center;
}

#loginFormContainer .loginForm-Inputfield Input {
background-color: #e4e4e4;
border: none;
border-radius: 4px;
padding: 10px;
}

#loginFormContainer .password-eye-container {
display: flex;
justify-content: center;
margin-left: 35px;
gap: 10px;
}

.eye-icon {
cursor: pointer;
}

#loginFormContainer .loginForm-submitButton {
display: flex;
flex-direction: column;
align-items: center;
}

#loginFormContainer .loginForm-submitButton a {
text-align: center;
}

.loginFieldRow {
display:flex;
flex-direction: row;
}

.loginFieldLabel {
width: 30%;
}

.loginFieldInput {
width: 70%;
}

.loginFieldButton {
margin-top:10px;
width: 100%;
text-align: center;
}

.loginError {
color:red;
font-weight:bold;
width:100%;
text-align: center;
margin-bottom: 10px;
}

.returnToLogin {
margin-top: 10px;
text-align: center;
}


#footerContainer {
/*background-color: lightgreen;*/
text-align: left;
margin-left:25px;
}

.footerMenuContainer {
/*background-color: lightblue;*/
display: block;
width: 150px;
border: thin solid black;

/*margin-right:auto;
margin-top:auto;*/
margin-bottom:25px;
padding: 5px;
}

.footerItem {
font-size: 14px;
background-color: white;
color:blue;
font-weight:bold;
cursor: pointer;
margin-bottom: 5px;
}
/* Ensure the Malta map image scales properly in responsive design */
.destination-location-map img {
max-width: 100%;
height: auto;
}