@font-face {
  font-family: 'AlpineProto';
  font-style: normal;
  src: url(alpineproto_light.ttf);
}

/**** HERO ***/

.heroContainer {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.heroImage {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	filter: brightness(0.6);
}

.heroLogo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 20%;
	height: auto;
	object-fit: contain;
}

@media (max-width: 768px) {
	.heroLogo {
		width: 20%;
	}
}

@media (max-width: 480px) {
	.heroLogo {
		width: 35%;
	}
}

/**** HOME ***/

@font-face {
  font-family: 'AlpineProto';
  font-weight: bold;
  src: url(alpineproto_bold.ttf);
}

body {
	margin:0;
	background-color:white;
}

a {
	text-decoration:none;
	color:inherit;
}

a:hover {
	text-decoration:underline;
	color:inherit;
}

.mainContainer {
	width:100%;
	margin:0 auto;
	font-family:AlpineProto, sans-serif;
	font-size:18px;
	line-height:24px;
	background-color:white;
	color:#0C1D2C;
}

.mobileOnly {
	display:none;
}

/***** MENU *****/
.mobileMenuIcon {
	display:none;
}

.menuMobile {
	display:none;
}

.menuMobileGallery {
	display:none;
}

.topMenu {
	display:table;
	width:100%;
	background-color:#0c1d2c;
}

.topMenuLogo {
	display:table-cell;
	width:10%;
	text-align:left;
	vertical-align:middle;
	height:80px;
	padding-left:25px;
}

.topMenuLogo img {
	width:60px;
}

.topMenuItems {
	display:table-cell;
	width:70%;
	text-align:center;
}


/**** HERO ***/

.heroImage {
	width:100%;
	height: auto;
	display: block;
	object-fit: cover;
}

/**** HOME ***/

.homeBlock {
	width:80%;
	margin:0 auto 80px auto;
	max-width:1180px;
}

.homeTitle {
	font-size:70px;
	line-height:70px;
	padding:20px 0;
	text-align:center;
}

.homeBlock1 {
	display:table;
	width:100%;
}

.homeBlock1Text {
	display:table-cell;
	width:30%;
	vertical-align: top;
	font-size:22px;
	line-height:24px;
	padding-right:30px;
}

.homeBlock1Text h1 {
	font-weight: bold;
	font-size:32px;
	line-height:35px;
}

h2 {
	font-weight: bold;
}

.homeBlock1Gallery {
	display:table-cell;
	width:1%;
	vertical-align: top;
}

.homeBlock1Gallery img {
	width:100%;
}

.slickGallery {
    width: 100%;
    max-width: 826px;
    margin: 0 auto;
    overflow: hidden;
	position: relative;
}

.slickGallery img {
    width: 100%;
    height: auto;
    display: block;
}

.slick-prev-custom,
.slick-next-custom {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 99;
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  cursor: pointer;
}

.slick-prev-custom {
  left: 10px;
  width:30px;
}

.slick-next-custom {
  right: 10px;
  width:30px;
}

.homeCityTitle {
	font-weight: bold;
	font-size:35px;
	line-height: 35px;
	padding:40px 0 20px 0;
	text-align:center;
	text-transform: uppercase;
}

.homeCities {
	width:100%;
	display:flex;
	flex-wrap:wrap;
	align-items:flex-start;
	gap:20px;
}

.homeCity {
	background-color: #0c1d2c;
	color:white;
	/* make exactly 3 columns that fill the container (subtract gaps: 2 * 20px = 40px) */
	flex: 0 0 calc((100% - 40px) / 3);
	max-width: calc((100% - 40px) / 3);
	display:block;
	margin:20px 0 0 0; /* vertical spacing handled by gap on the container */
}


.homeCityContent {
	width:80%;
	margin:20px auto;
}

.homeCity img {
	width:100%;
}

.homeCityName {
	font-weight: bold;
	font-size:25px;
	line-height: 30px;
}

.homeAddress {
	display:table;
	width:100%;
	padding:20px 0;
}

.homeAddressIcon {
	display:table-cell;
	width:10%;
	vertical-align: top;
}

.homeAddressIcon img {
	width:30px;
	display:block;
	margin-right:10px;
}

.homeAddressText {
	display:table-cell;
	width:90%;
	vertical-align: top;
	font-size:16px;
	line-height:20px;
}

.homeCityDate {
	font-size:18px;
	line-height:18px;
	padding-top:10px;
	padding-bottom:20px;
	font-weight:bold;
}

/* FAQ accordion styles */
.faqTitle {
	text-align:center;
	font-size: 40px;
	line-height:40px;
	padding:30px 0;
	font-weight:bold;
	color:#0c1d2c;
}

.faqItem {
	display:block;
	width:100%;
	margin-bottom:20px;
}

.faqItemTitle {
	display:table;
	width:100%;
	border-bottom:#808080 1px solid;
	padding-bottom:20px;
	cursor:pointer;
}

.faqItemTitleText {
	display:table-cell;
	width:80%;
	text-align:left;
	font-weight: bold;
}

.faqItemTitleIcon {
	display:table-cell;
	width:20%;
	text-align:right;
}

.faqItemText {
	display:block;
	font-size:14px;
	line-height:18px;
	padding-top:20px;
	font-family: Arial;
	color:#0c1d2c;
	display:none;
}

/* FORM */

.formBlock {
	background-color:#0c1d2c;
	color:white;
	padding:40px 0;
}

.formContainer {
	width:80%;
	margin:0 auto;
	max-width:1180px;
}

.formTitle {
	text-align: center;
	text-transform: uppercase;
	font-size:35px;
	line-height:40px;	
	font-weight: bold;;
	padding-bottom:30px;
}

.formSubTitle {
	text-align: center;
	text-transform: uppercase;
	font-size:20px;
	line-height:24px;
	padding-bottom:40px;
}

.red {
	color:#ff0000;
}

/* form layout: make form items equal width and evenly distributed */
.formItems {
	display:flex;
	gap:20px;
	justify-content:space-between;
	flex-wrap:wrap;
	padding-bottom:30px;
}
.formItems > .formItem {
	flex: 1 1 0;
	min-width:160px;
	box-sizing:border-box;
	padding:0;
}
.formItems > .formItem > div { /* label */
	margin-bottom:8px;
	color:#fff;
	font-size:16px;
}
.formItems input.formItem,
.formItems select.formItem,
.formItems textarea.formItem {
	width:100%;
	background:transparent;
	border:1px solid rgba(255,255,255,1);
	color:#fff;
	padding:10px;
	box-sizing:border-box;
}
.formItems input.formItem::placeholder,
.formItems textarea.formItem::placeholder {
	color: rgba(255,255,255,0.8);
}
.formItems input.formItem:focus,
.formItems select.formItem:focus,
.formItems textarea.formItem:focus {
	outline:none;
	box-shadow: 0 0 0 2px rgba(255,255,255,0.08);
}

/* Make select dropdown items dark so they're readable on the dark form background */
.formItems select.formItem {
	height:46px;
	background:transparent;
	color:#fff;
}
.formItems select.formItem option,
.formItems select.formItem optgroup {
	background-color: #0c1d2c; /* same blue as site */
	color: #fff;
}
/* Windows/IE specific: ensure the dropdown arrow doesn't force white background */
.formItems select.formItem::-ms-expand {
	display: inline-block;
}

.formInfo {
	padding-bottom:50px;
}

.formPrivacy {
	font-size:14px;
	line-height:18px;
}

.formPrivacyText {
	border:solid 1px white;
	padding:10px;
}

/* Custom large rounded radio buttons with transparent background and white border */
.formPrivacyButtons { /* container for radios + labels */
	margin-top:20px;
	margin-bottom:40px;
}
.formPrivacyButtons input.formPrivacyRadio {
	/* hide the native radio visually but keep it accessible */
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
}
.formPrivacyButtons label {
	display: inline-flex;
	align-items: center;
	cursor: pointer;
	color: #fff;
	margin-right: 18px;
	user-select: none;
	font-size:16px;
	position: relative; /* needed for absolutely positioned pseudo-elements */
	padding-left: 44px; /* reserve space for custom radio */
}
.formPrivacyButtons label::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid #fff;
	background: transparent;
	box-sizing: border-box;
	transition: box-shadow .15s ease, background .15s ease;
}
/* inner dot - initially hidden (scaled down) centered inside the outer circle */
.formPrivacyButtons label::after {
	content: '';
	position: absolute;
	left: 8px; /* (28 - 12) / 2 */
	top: 50%;
	transform: translateY(-50%) scale(0);
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: transparent;
	transition: transform .12s ease, background .12s ease;
}
/* checked state: show white dot */
.formPrivacyButtons input.formPrivacyRadio:checked + label::after {
	transform: translateY(-50%) scale(1);
	background: #ffffff;
}
/* Make touch targets larger */
.formPrivacyButtons input.formPrivacyRadio + label {
	/* keep left padding reserved for the custom radio circle */
	padding: 6px 8px 6px 44px;
}
/* Ensure keyboard focus is visible on the outer circle */
.formPrivacyButtons input.formPrivacyRadio:focus + label::before {
	box-shadow: 0 0 0 3px rgba(255,255,255,0.12);
}

/* Safari/WebKit: try to ensure option colors are applied */
select.formItem option { color: #fff; background-color: #0c1d2c; }

.formContainer button {
	border:0px;
	padding:15px 35px;
	font-weight: bold;
	background-color:white;
}

.formContainer button:hover {
	background-color:grey;
}

.formLegalTerms {
	padding:40px 0;
	font-size:14px;
	line-height:18px;
}

/*** FOOTER **/

.footer {
	background-color:black;
	color:white;
	text-align:center;
	font-family: AlpineProto, sans-serif;
}

.footerInner {
	padding:50px 0;
}

.footerLinks {
	text-transform: uppercase;
	font-size:18px;
	line-height:30px;
	padding-bottom:40px;
}

@media screen and (max-width: 1500px) {
	.homeTitle {
		font-size:50px;
		line-height:50px;
		padding:20px 0;
		text-align:center;
	}

	.slickGallery {
	    max-width: 500px;
	}

}

@media screen and (max-width: 1100px) {
	.homeTitle {
		font-size:40px;
		line-height:40px;
		padding:20px 0;
		text-align:center;
	}

	.slickGallery {
	    max-width: 300px;
	}

}