* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html,
body {
	height: 100%;
	font-family: "Segoe UI", Arial, sans-serif;
}

body {
	height: 100vh;
	overflow-x: hidden;
	position: relative;
}

.background {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: url("../../assets/images/summer-coastline.jpg") no-repeat center center/cover;
	z-index: 0;
}

.content {
	position: relative;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	z-index: 1;
}

header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px 5vw;
	margin-top: 20px;
	background: rgba(255, 255, 255, 1);
	flex-wrap: wrap;
}

.logo-bar {
	display: flex;
	align-items: center;
}

.logo {
	height: 40px;
	margin-right: 12px;
}

.main-nav {
	display: flex;
	align-items: center;
}

.main-nav a {
	color: #194792;
	text-decoration: none;
	font-size: 1rem;
	font-weight: 600;
	transition: color 0.2s;
	padding: 2px 6px;
	position: relative;
}

.tooltip {
	position: relative;
	display: inline-block;
}

.tooltip .tooltiptext {
	visibility: hidden;
	width: 260px;
	background-color: #194792;
	color: #fff;
	border-radius: 4px;
	padding: 6px 10px;
	position: absolute;
	font-weight: normal;
	z-index: 1;
	top: 125%;
	right: 0px;
	transform: translateX(10%);
	opacity: 0;
	transition: opacity 0.3s;
	text-align: left;
}

.tooltip:hover .tooltiptext {
	visibility: visible;
	opacity: 1;
}

main {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding-left: 5vw;
}

.buttons {
	display: flex;
	flex-direction: column;
	gap: 24px;
	width: 100%;
}

.cards {
	display: block;
	justify-content: space-around;
	flex-wrap: wrap;
	align-content: center;
	min-width: 300px;
	max-width: 400px;
	min-height: 100px;
	text-align: left;
	padding: 18px 20px;
	font-size: 1rem;
	background: rgba(255, 255, 255, 1);
	color: #111;
	text-decoration: none;
	border-radius: 18px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
	position: relative;
	transition: box-shadow 0.18s, background 0.18s;
}

.cards:hover {
	box-shadow: 0 6px 22px rgba(0, 0, 0, 0.15);
}

.cards-content {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 20px;
}

.cards-content h3 {
	color: #194792;
	margin: 0;
	padding: 0;
	font-size: 0.95rem;
}

.subtext {
	font-size: 0.8rem;
	color: #ec332a;
	display: block;
	margin-top: 4px;
}

.subtextblue {
	color: #194792;
	font-size: 0.9rem;
}
.arrow-container {
	display: flex;
	align-items: flex-end;
	justify-content: center;
}

.arrow {
	font-size: 1.2rem;
	color: white;
	background-color: #194792;
	border-radius: 50%;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.3s ease, color 0.3s ease;
}
.arrow:hover {
	background-color: #fccf03;
}
.arrow img {
	display: flex;
	width: 24px;
	height: auto;
	filter: invert(1);
}

.register {
	color: #000;
	background: #fccf03;
	border-radius: 12px;
	padding: 6px 20px;
	font-weight: bold;
	font-size: 1rem;
	white-space: nowrap;
	margin-top: 8px;
	text-decoration: none;
	display: inline-block;
	transition: background-color 0.3s ease, color 0.3s ease;
}

.register:hover {
	background-color: #194792;
	color: #fff;
}

.info-btn {
	position: absolute;
	top: 10px;
	right: 12px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: none;
	background: #d2d2d2;
	color: #000;
	font-weight: 600;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 5;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
	transition: background-color 0.3s ease, color 0.3s ease;
}
.info-btn:hover {
	background-color: #ccc;
}

.popover {
	position: absolute;
	min-width: 360px;
	max-width: 400px;
	max-width: calc(100vw - 32px);
	background: #fff;
	color: #222;
	padding: 14px 16px;
	border-radius: 12px;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.16);
	z-index: 9999;
	opacity: 0;
	transform: translateY(-6px) scale(0.99);
	pointer-events: none;
	transition: opacity 200ms ease, transform 200ms ease;
}

.popover.show {
	opacity: 1;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}

.popover .close-btn {
	position: absolute;
	top: 5px;
	right: 5px;
	background: none;
	border: none;
	font-size: 1.5rem;
	cursor: pointer;
	background-color: #000;
	color: #fff;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	transition: background-color 0.3s ease, color 0.3s ease;
}
.popover .close-btn:hover {
	background-color: #194792;
}
.popover p {
	font-size: 0.8em;
}
.popover .mailto {
	color: #194792;
	text-decoration: none;
	font-weight: 700;
}
.popover .mailto:hover {
	text-decoration: underline;
}
footer {
	width: 100vw;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: fixed;
	bottom: 0;
	left: 0;
	background: rgba(255, 255, 255, 1);
	padding: 10px 6vw;
	font-size: 0.8rem;
	z-index: 3;
	flex-wrap: wrap;
}

.footer-links {
	display: flex;
	flex-wrap: wrap;
	row-gap: 10px;
	column-gap: 10px;
}

.footer-links a {
	color: #194792;
	text-decoration: none;
}

.footer-links a:hover {
	text-decoration: underline;
}
.footer .copyright {
	color: #194792;
	font-size: 0.8rem;
	white-space: nowrap;
}

/* Lightbox overlay */
.lightbox {
	display: none;
	position: fixed;
	z-index: 9999;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.7);
}
.loading-text {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-size: 18px;
	font-weight: bold;
	color: #333;
	background: rgba(255, 255, 255, 0.95);
	padding: 8px 14px;
	border-radius: 6px;
	z-index: 10;
}
@keyframes blink {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0.4;
	}
}
.loading-text::after {
	content: "";
	animation: dots 1.5s steps(3, end) infinite;
}

@keyframes dots {
	0% {
		content: "";
	}
	33% {
		content: ".";
	}
	66% {
		content: "..";
	}
	100% {
		content: "...";
	}
}
#lightbox-iframe.loaded {
	opacity: 1;
}

.lightbox-content {
	position: relative;
	width: 90%;
	max-width: 900px;
	margin: 40px auto;
	padding-top: 40px;
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	height: 80%;
	display: flex;
	flex-direction: column;
}

.lightbox-close {
	position: absolute;
	display: flex;
	text-align: center;
	justify-content: center;
	align-items: center;
	width: 32px;
	height: 32px;
	right: 15px;
	top: 10px;
	font-size: 20px;
	cursor: pointer;
	color: #fff;
	z-index: 9999;
	background-color: #000;
	border-radius: 50%;
}
.lightbox-close:hover {
	background-color: #194792;
}
.lightbox iframe {
	width: 100%;
	height: 100%;
	border: none;
}

@media (max-width: 766px) {
	.tooltip .tooltiptext {
		width: 260px;
		right: 20px;
	}
	.cards {
		width: 90vw;
		max-width: none;
		min-width: 0;
		min-height: 120px;
	}

	.popover {
		width: calc(100vw - 32px);
		left: -10px !important;
	}
	.lightbox-content {
		width: 95%;
		height: 85%;
		margin: 20px auto;
	}
	.lightbox-loader {
		font-size: 16px;
		padding: 8px 12px;
	}
}
