@import url("https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,700&display=swap");

/* ----------------------------------
   ROOT VARIABLES
-------------------------------------*/

:root {
	/* Fonts — KBIS */
	--bs-font-sans-serif: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--bs-body-font-family: var(--bs-font-sans-serif);
	--heading-font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--bs-body-font-size: 1rem;
	--font-size-sm: clamp(0.75rem, 0.6719rem + 0.25vw, 0.875rem);

	/* Colors — KBIS 2027 */
	--bs-body-color: var(--bs-black);
	--bs-body-color-rgb: 0, 0, 0;

	--bs-body-bg: var(--bs-white);
	--bs-body-bg-rgb: 255, 255, 255;

	--bs-border-color: #dee2e6;

	--bs-primary: #00aeef;
	--bs-primary-rgb: 0, 174, 239;

	--bs-secondary: #111111;
	--bs-secondary-rgb: 17, 17, 17;

	--bs-warning: #00aeef;
	--bs-warning-rgb: 0, 174, 239;

	--bs-success: #00aeef;
	--bs-success-rgb: 0, 174, 239;

	--bs-danger: #00aeef;
	--bs-danger-rgb: 0, 174, 239;

	--bs-info: #00aeef;
	--bs-info-rgb: 0, 174, 239;

	--bs-light: #eefbff;
	--bs-light-rgb: 238, 251, 255;

	--bs-dark: #000000;
	--bs-dark-rgb: 0, 0, 0;

	--hero-bg: #000000;
	--hero-fg: #ffffff;
	--hero-muted: rgba(255, 255, 255, 0.88);
	--hero-accent: #00aeef;
	--hero-cta-bg: #00aeef;
	--hero-cta-fg: #000000;
	--hero-card-bg: rgba(255, 255, 255, 0.1);
	--hero-card-border: color-mix(in srgb, var(--hero-accent), transparent 50%);

	--header-bg: #000000;
	--header-sticky-bg: rgba(0, 0, 0, 0.88);

	--footer-bg: var(--header-bg);

	/* Shadow */
	--bs-box-shadow: 0px 10px 30px 0px rgba(73, 99, 158, 0.1);
	--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(73, 99, 158, 0.075);
	--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);

	/* Spacing */
	--section-space: clamp(3.125rem, 0.8929rem + 7.1429vw, 6.25rem);
}

/* Fonts */
@font-face {
	font-family: "Avenir Next";
	src:
		url("../fonts/AvenirNext-Regular.woff2") format("woff2"),
		url("../fonts/AvenirNext-Regular.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Avenir Next";
	src:
		url("../fonts/AvenirNext-Medium.woff2") format("woff2"),
		url("../fonts/AvenirNext-Medium.woff") format("woff");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Avenir Next";
	src:
		url("../fonts/AvenirNext-Bold.woff2") format("woff2"),
		url("../fonts/AvenirNext-Bold.woff") format("woff");
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Komu B";
	src:
		url("../fonts/KomuB.woff2") format("woff2"),
		url("../fonts/KomuB.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

/* ----------------------------------
   BASIC RESET
-------------------------------------*/

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-family: var(--heading-font-family);
	font-weight: 400;
	/* letter-spacing: 0.02em; */
}

h1,
.h1 {
	font-size: clamp(2rem, 1.0278rem + 3.1111vw, 3.75rem);
}

h2,
.h2 {
	font-size: clamp(1.5rem, 1.0833rem + 1.3333vw, 2.25rem);
}

h3,
.h3 {
	font-size: clamp(1.25rem, 0.9722rem + 0.8889vw, 1.75rem);
}

h4,
.h4 {
	font-size: clamp(1.125rem, 0.9167rem + 0.6667vw, 1.5rem);
}

h5,
.h5 {
	font-size: clamp(1rem, 0.8611rem + 0.4444vw, 1.25rem);
}

h6,
.h6 {
	font-size: clamp(0.875rem, 0.7361rem + 0.4444vw, 1.125rem);
}

p {
	margin: 0;
}

/* Links */
a {
	color: inherit;
	transition: all 0.3s ease-in-out;
}

a:hover,
a:focus {
	outline: none;
	color: var(--bs-primary);
}

/* Images */
img {
	max-width: 100%;
}

/* Section Space */
.section-space {
	padding-block: var(--section-space);
}

/* Container override */
.container,
.container-fluid,
.container-lg,
.container-md,
.container-sm,
.container-xl,
.container-xxl {
	--bs-gutter-x: 2.5rem;
}

/* ----------------------------------
   UTILITIES
-------------------------------------*/

.display-1 {
	font-size: clamp(3.75rem, 3.2222rem + 2.2222vw, 5rem);
	font-weight: 700;
}

.fade-up {
	opacity: 0;
	transform: translateY(40px);
	transition: all 0.7s ease;
}

.fade-up.active {
	opacity: 1;
	transform: translateY(0);
}

.bg-accent {
	background: var(--color-accent);
}

.text-accent {
	color: var(--color-accent);
}

.fs-sm {
	font-size: var(--font-size-sm);
}

.bg-gradient {
	background: linear-gradient(
		145deg,
		var(--bs-danger) 10%,
		var(--bs-light) 10%,
		var(--bs-light) 90%,
		var(--bs-warning) 90%
	) !important;
}

/* ----------------------------------
   COMPONENTS
-------------------------------------*/
.btn {
	--bs-btn-padding-x: 2rem;
	--bs-btn-padding-y: 0.75rem;
	--bs-btn-font-size: font-size: clamp(1rem, 0.9306rem + 0.2222vw, 1.125rem);
	--bs-btn-font-weight: 600;
	--bs-btn-border-radius: var(--bs-border-radius);
	--bs-btn-focus-box-shadow: 0 0 0 0.2rem var(--btn-focus-shadow);
	transition: all 0.3s ease-in-out;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-transform: uppercase;
}

.btn-group-sm > .btn,
.btn-sm {
	--bs-btn-padding-y: 0.5rem;
	--bs-btn-padding-x: 1rem;
	--bs-btn-font-size: 0.875rem;
	--bs-btn-border-radius: var(--bs-border-radius-sm);
}

.btn-primary {
	--bs-btn-color: var(--bs-white);
	--bs-btn-bg: var(--bs-primary);
	--bs-btn-border-color: var(--bs-primary);
	--bs-btn-hover-color: var(--bs-white);
	--bs-btn-hover-bg: color-mix(in srgb, var(--bs-primary), black 10%);
	--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-primary), black 10%);
	--bs-btn-focus-shadow-rgb: 49, 132, 253;
	--bs-btn-active-color: var(--bs-white);
	--bs-btn-active-bg: color-mix(in srgb, var(--bs-primary), black 10%);
	--bs-btn-active-border-color: color-mix(in srgb, var(--bs-primary), black 10%);
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: var(--bs-white);
	--bs-btn-disabled-bg: var(--bs-primary);
	--bs-btn-disabled-border-color: var(--bs-primary);

	--btn-focus-shadow: color-mix(in srgb, var(--bs-primary), transparent 70%);
}

.btn-secondary {
	--bs-btn-color: var(--bs-dark);
	--bs-btn-bg: var(--bs-secondary);
	--bs-btn-border-color: var(--bs-secondary);
	--bs-btn-hover-color: var(--bs-dark);
	--bs-btn-hover-bg: color-mix(in srgb, var(--bs-secondary), black 10%);
	--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-secondary), black 10%);
	--bs-btn-focus-shadow-rgb: 130, 138, 145;
	--bs-btn-active-color: var(--bs-dark);
	--bs-btn-active-bg: color-mix(in srgb, var(--bs-secondary), black 10%);
	--bs-btn-active-border-color: color-mix(in srgb, var(--bs-secondary), black 10%);
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: var(--bs-dark);
	--bs-btn-disabled-bg: var(--bs-secondary);
	--bs-btn-disabled-border-color: var(--bs-secondary);
	--btn-focus-shadow: color-mix(in srgb, var(--bs-secondary), transparent 70%);
}

.btn-dark {
	--bs-btn-color: var(--bs-white);
	--bs-btn-bg: var(--bs-dark);
	--bs-btn-border-color: var(--bs-dark);
	--bs-btn-hover-color: var(--bs-white);
	--bs-btn-hover-bg: var(--bs-primary);
	--bs-btn-hover-border-color: var(--bs-primary);
	--bs-btn-focus-shadow-rgb: var(--bs-dark-rgb);
	--bs-btn-active-color: var(--bs-white);
	--bs-btn-active-bg: var(--bs-primary);
	--bs-btn-active-border-color: var(--bs-primary);
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: var(--bs-white);
	--bs-btn-disabled-bg: var(--bs-dark);
	--bs-btn-disabled-border-color: var(--bs-dark);

	--btn-focus-shadow: color-mix(in srgb, var(--bs-dark), transparent 70%);
}

.btn-outline-dark {
	--bs-btn-color: var(--bs-dark);
	--bs-btn-border-color: var(--bs-dark);
	--bs-btn-hover-color: var(--bs-white);
	--bs-btn-hover-bg: var(--bs-dark);
	--bs-btn-hover-border-color: var(--bs-dark);
	--bs-btn-focus-shadow-rgb: 33, 37, 41;
	--bs-btn-active-color: var(--bs-white);
	--bs-btn-active-bg: var(--bs-dark);
	--bs-btn-active-border-color: var(--bs-dark);
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: var(--bs-dark);
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: var(--bs-dark);
	--bs-gradient: none;
}

.btn-danger {
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--bs-danger);
	--bs-btn-border-color: var(--bs-danger);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: color-mix(in srgb, var(--bs-danger), black 10%);
	--bs-btn-hover-border-color: var(--bs-danger);
	--bs-btn-focus-shadow-rgb: 225, 83, 97;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: var(--bs-danger);
	--bs-btn-active-border-color: var(--bs-danger);
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: var(--bs-danger);
	--bs-btn-disabled-border-color: var(--bs-danger);
}

.btn-warning {
	--bs-btn-color: #000;
	--bs-btn-bg: var(--bs-warning);
	--bs-btn-border-color: var(--bs-warning);
	--bs-btn-hover-color: #000;
	--bs-btn-hover-bg: color-mix(in srgb, var(--bs-warning), black 10%);
	--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-warning), black 10%);
	--bs-btn-focus-shadow-rgb: 217, 164, 6;
	--bs-btn-active-color: #000;
	--bs-btn-active-bg: color-mix(in srgb, var(--bs-warning), black 10%);
	--bs-btn-active-border-color: color-mix(in srgb, var(--bs-warning), black 10%);
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #000;
	--bs-btn-disabled-bg: var(--bs-warning);
	--bs-btn-disabled-border-color: var(--bs-warning);
}

.btn-success {
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--bs-success);
	--bs-btn-border-color: var(--bs-success);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: color-mix(in srgb, var(--bs-success), black 10%);
	--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-success), black 10%);
	--bs-btn-focus-shadow-rgb: 60, 153, 110;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: color-mix(in srgb, var(--bs-success), black 10%);
	--bs-btn-active-border-color: color-mix(in srgb, var(--bs-success), black 10%);
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: var(--bs-success);
	--bs-btn-disabled-border-color: var(--bs-success);
}

/* Bullet Points styling */
.list-ticked {
	padding-left: 0;

	li {
		&::before {
			content: "✔";
			margin-right: 8px;
		}
	}
}

/* ----------------------------------
   HEADER
-------------------------------------*/

html.menu-open,
body.menu-open {
	overflow: hidden;
	height: 100%;
}

.header-top {
	.social-list {
		a {
			width: 2rem;
			height: 2rem;
			font-size: 1rem;
		}
	}
}

.site-header {
	z-index: 99;
	transition: all 0.3s ease-in-out;
	padding: 0.5rem 0;
	background: var(--header-bg);

	&.scrolled {
		backdrop-filter: saturate(200%) blur(12px);
		background-color: var(--header-sticky-bg);
	}
}

.site-logo {
	max-width: 351px;

	img {
		width: auto;
		max-width: 351px;
		height: auto;
		max-height: 112px;
		display: block;

		@media (min-width: 768px) {
			max-height: 126px;
		}
	}

	.expo--meta-info {
		font-size: 12px;

		i {
			width: 1em;
			height: 1em;
			margin-top: 1px;
		}
	}
}

.nav-item {
	position: relative;

	&:hover,
	&:focus-within {
		.nav-link {
			background: rgba(var(--bs-primary-rgb), 0.3);
			color: var(--bs-dark);
		}
	}
}

.nav-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	text-decoration: none;
	color: var(--bs-white);
	font-size: 15px;
	font-weight: 600;
	border-radius: 0;
	transition: all 0.3s ease;
	white-space: nowrap;
}

.nav-arrow {
	font-size: 11px;
}

.dropdown-menu-box {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	min-width: 270px;
	max-width: 320px;
	background: var(--bs-white);
	border-radius: 18px;
	box-shadow: 0 20px 55px rgba(var(--bs-primary-rgb), 0.16);
	padding: 14px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: all 0.28s ease;
	z-index: 20;
}

.nav-item:hover .dropdown-menu-box {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.nav-item:last-child .dropdown-menu-box,
.nav-item:nth-last-child(2) .dropdown-menu-box {
	left: auto;
	right: 0;
}

.dropdown-link {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	padding: 12px 14px;
	border-radius: 14px;
	color: var(--bs-black);
	font-weight: 500;
	font-size: 14px;
	transition: all 0.25s ease;
}

.dropdown-link i {
	width: 18px;
	text-align: center;
	color: inherit;
	font-size: 15px;
}

.dropdown-link:hover {
	background: rgba(var(--bs-primary-rgb), 0.09);
	color: var(--bs-black);
}

.header-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 20px;
	border-radius: 4px;
	text-decoration: none;
	font-size: 15px;
	font-weight: 700;
	transition: all 0.3s ease;
	white-space: nowrap;
}

@media (max-width: 1199px) {
	.nav-link {
		font-size: 15px;
		padding: 12px 10px;
	}

	.header-btn {
		padding: 0 16px;
		font-size: 14px;
	}
}

/* ===== Mobile Menu Toggler (offcanvas) ===== */
.mobile-menu-toggler {
	display: flex;
	flex-direction: column;
	align-items: end !important;
	justify-content: center;
	gap: 6px !important;
	border: 0;
	width: 40px;
	height: 40px;
	background: transparent;
	padding: 8px;
	box-shadow: none !important;
	background: rgba(var(--bs-white-rgb), 0.1);

	span {
		width: 100%;
		height: 2px;
		background: var(--bs-dark);
		display: block;
		border-radius: 100px;
		transition: all 0.2s;
	}
}

.mobile-menu-offcanvas {
	max-height: 100vh;

	.navbar-brand {
		img {
			height: 40px;
		}
	}
}

.mobile-menu {
	a {
		color: var(--bs-dark);
		text-decoration: none;

		display: flex;
		align-items: center;
		justify-content: space-between;
		transition: all 0.2s;

		&[aria-expanded="true"] {
			color: var(--bs-primary);

			.dropdown-arrow {
				transform: rotate(180deg);
			}
		}
	}

	> li {
		padding: 0.5rem 1rem;
		border-radius: var(--bs-border-radius);
		border: 1px solid var(--bs-border-color);
		background: rgba(var(--bs-primary-rgb), 0.02);

		> a {
			font-size: 1.25rem;
			font-weight: 600;
		}

		&:hover {
			> a {
				color: var(--bs-primary);
			}
		}
	}

	.dropdown-arrow {
		width: 0.7em;
		height: 0.7em;
		transition: all 0.2s;
	}

	.offcanvas-dropdown-menu {
		li {
			a {
				justify-content: flex-start;
				gap: 10px;
				padding: 8px 0;

				[class^="fa-"] {
					color: var(--bs-primary);
				}
			}

			&:hover {
				a {
					color: var(--bs-primary);
				}
			}
		}
	}
}

/* =========================
   HERO SECTION
========================= */

.hero-section,
.hero-section.bg-dark {
	background-color: #000000 !important;
	background-image: linear-gradient(rgba(0, 0, 0, 0.78), rgba(0, 0, 0, 0.88)), url(../img/hero-bg.jpg) !important;
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
	color: var(--hero-fg);
}

.hero-section h1,
.hero-section h2,
.hero-section h3,
.hero-section .h3,
.hero-section .text-white,
.hero-section a.text-white {
	color: var(--hero-fg) !important;
}

.hero-section h1 {
	font-family: var(--heading-font-family);
	font-weight: 700;
	font-size: clamp(1.75rem, 1.0278rem + 3.1111vw, 3.75rem);
	line-height: 1.2;
}

.hero-section .text-light,
.hero-section .hero-share-label {
	color: var(--hero-muted) !important;
}

.hero-section .text-warning {
	color: var(--hero-accent) !important;
}

.hero-section .btn-warning {
	--bs-btn-color: var(--hero-cta-fg);
	--bs-btn-bg: var(--hero-cta-bg);
	--bs-btn-border-color: var(--hero-cta-bg);
	--bs-btn-hover-color: var(--hero-cta-fg);
	--bs-btn-hover-bg: color-mix(in srgb, var(--hero-cta-bg), black 8%);
	--bs-btn-hover-border-color: color-mix(in srgb, var(--hero-cta-bg), black 8%);
	--bs-btn-active-color: var(--hero-cta-fg);
	--bs-btn-active-bg: color-mix(in srgb, var(--hero-cta-bg), black 8%);
	--bs-btn-active-border-color: color-mix(in srgb, var(--hero-cta-bg), black 8%);
}

.hero-logo img {
	width: 200px;

	@media (min-width: 768px) {
		width: 350px;
	}
}

/* Carousel section */
.tns-ovh {
    overflow: visible;
}

.reasons-carousel {
	display: flex;
}

.tns-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
}

.tns-nav {
	margin-top: 2rem;

	button {
		width: 10px;
		height: 10px;
		display: block;
		border: 1px solid var(--bs-success);
		background: transparent;
		border-radius: 100px;
		flex-shrink: 0;
		padding: 0;

		&.tns-nav-active {
			background-color: var(--bs-success);
			border-color: var(--bs-success);
		}
	}
}

/* CTA section */
.cta-section-inner {
	border-width: 20px !important;
}

/* Countdown section */
.event-countdown-timer {
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

/* Footer */
.site-footer {
	--bs-border-width: 35px;
	background: var(--footer-bg);
}

.footer-logo img {
	max-height: 90px;
	width: auto;
}

.site-footer .social-list {
	gap: 0.5rem;
}

.social-list a {
	color: var(--bs-dark);
	background: var(--bs-white);
	width: 50px;
	height: 50px;
	text-align: center;
	border-radius: 50%;
	font-size: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;

	&:hover {
		color: var(--bs-white);
		background-color: var(--bs-primary);
	}
}

.hero-share-stack {
	align-self: center;
	align-items: center;
	width: max-content;
	max-width: 100%;
	margin-inline: auto;
	text-align: center;
}

.hero-share-field {
	width: max-content;
	max-width: 100%;
	margin-inline: auto;
}

.hero-share-label {
	display: block;
	color: var(--hero-muted);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	margin-bottom: 0.35rem;
	text-align: left;
}

.hero-share-row {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.5rem;
	align-items: stretch;
	justify-content: center;
	width: max-content;
	max-width: 100%;
	margin-inline: auto;
}

.hero-share-row .form-control {
	flex: 0 0 auto;
	width: auto;
	max-width: none;
	min-width: 0;
	box-sizing: border-box;
}

.hero-share-row .btn {
	white-space: nowrap;
	flex-shrink: 0;
}

@media (max-width: 575.98px) {
	.site-logo,
	.site-logo img {
		max-width: min(260px, calc(100vw - 6.75rem));
		max-height: 64px;
	}

	.hero-share-stack,
	.hero-share-field,
	.hero-share-row {
		width: 100%;
	}

	.hero-share-row {
		flex-wrap: wrap;
	}

	.hero-share-row .form-control {
		flex: 1 1 100%;
		width: 100% !important;
		max-width: 100%;
		min-width: 0;
	}

	.hero-share-row .btn {
		flex: 1 1 0;
	}

	.hero-offer-note a {
		white-space: nowrap;
	}
}

.copy-toast {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 1080;
	background: var(--bs-dark);
	color: var(--bs-white);
	padding: 0.65rem 1rem;
	border-radius: 0.5rem;
	font-size: 0.95rem;
	font-weight: 600;
	border: 1px solid var(--bs-warning);
}

.copy-toast[hidden] {
	display: none !important;
}

.tab-btn, .social-btn { --bs-btn-border-radius: 0; border-radius: 0 !important; }
.site-header .mobile-menu-toggler span { background: var(--bs-white); }
