/********************************/
/* CUSTOM : Elements
/********************************/


/* Fancy list */
.fancy-ul {
	padding-inline-start: 1.75em;
}
.fancy-ul > li {
	margin-block: 0.5em;
}
.fancy-ul > li:before {
	content: '';
	display: inline-block;
	vertical-align: bottom;
	width: round(1em,1px);
	height: round(1em,1px);
	margin-inline-start: -1.25em;
	margin-inline-end: 0.25em;
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKhJREFUeNpiYiAd+DDQAeyhtQXSQPwfShMNmEi0JBiNpgm4CPXJRVpZEAC1AIYDqG0BFxDfQbPkDlScamA+mgUwPJ9aFnTgsACGOygNovkELED2ERc5kXyHSAuQ4yiAmIyWh5RMycUXoeZIo5dFeyg0GBfeg17W0dQndI0TuqcuuuUTuuZ4upVddCmFKapPSK0Z56LRg6eOp0trhZkMS94B8S1SNAAEGABd9aPjjbonLwAAAABJRU5ErkJggg==) 50% 50% no-repeat;
	font-size: 1.5em;
}
/***/



/* Gallery swiper */
.thumbs-gallery {
	position: relative;
	/*max-width: 1320px;*/
	margin: auto;
	--swiper-navigation-sides-offset: 10%;
}
.thumbs-gallery .swiper-slide {
	width: fit-content;
	height: auto;
	max-width: 90vw;
	max-height: 512px;
	overflow: hidden;
	padding-inline: clamp(2px, 1vw, 16px);
	opacity: 0.8;
	-webkit-transition: opacity 0.35s ease 0.65s;
			transition: opacity 0.35s ease 0.65s; 
}
.thumbs-gallery .swiper-slide-active {
	opacity: 1;
	cursor: pointer;
}
.thumbs-gallery .swiper-slide > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.thumbs-gallery .swiper-button-prev {
	
}
.thumbs-gallery .swiper-button-next {
	
}
.thumbs-gallery .swiper-button-prev,
.thumbs-gallery .swiper-button-next {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	-webkit-transition: all 0.2s ease;
			transition: all 0.2s ease;
}
.thumbs-gallery .swiper-button-prev {
	background: rgba(1,1,1,.8) url(../img/arrow-right.png) 0% 50% no-repeat;
	background-size: min(47px, 75%) auto;
}
.thumbs-gallery .swiper-button-next {
	background: rgba(1,1,1,.8) url(../img/arrow-left.png) 100% 50% no-repeat;
	background-size: min(47px, 75%) auto;
}
.thumbs-gallery .swiper-button-prev:hover {
	background-position: 50% 50%;
}
.thumbs-gallery .swiper-button-next:hover {
	background-position: 50% 50%;
}
.thumbs-gallery .swiper-button-prev:after,
.thumbs-gallery .swiper-button-next:after {
	content: none;
}
.thumbs-gallery .swiper-pagination {
	bottom: -30px;
}
.thumbs-gallery .swiper-pagination-bullet-active {
	background-color: var(--fancy-color);
}

.gallery-lightbox .swiper-pagination {
	bottom: -30px;
}
.gallery-lightbox .swiper-pagination-bullet {
	background-color: var(--white-color);
}
.gallery-lightbox .swiper-pagination-bullet-active {
	background-color: var(--fancy-color);
}

.swiper-slide-caption {
	position: absolute;
	bottom: 0;
	left: clamp(2px, 1vw, 16px);
	right: clamp(2px, 1vw, 16px);
	padding: 1em;
	font-size: 1.166667;
	background: rgba(0,0,0,0.5);
	color: #fff;
	text-align: center;
	-webkit-transform: translateY(100%);
			transform: translateY(100%);
	-webkit-transition: all 0.4s ease 0s;
			transition: all 0.4s ease 0s;
}
.swiper-slide-active .swiper-slide-caption {
	-webkit-transform: none;
			transform: none;	
	-webkit-transition: all 0.4s ease 1s;
			transition: all 0.4s ease 1s;
}

@media (min-width : 1200px) { 
	.thumbs-gallery .swiper-slide {
		width: fit-content;
		height: auto;
	}
	.thumbs-gallery .swiper-slide > img {
		display: block;
		max-width: 90vw;
		max-height: 512px; 
	}
	.thumbs-gallery .swiper-button-prev,
	.thumbs-gallery .swiper-button-next {
		width: 64px;
		height: 64px;
	}
}
/***/



/********************************/
/* CUSTOM : Sections
/********************************/


/* Intro section */
#intro-section {
}
#intro-section .section-side-img {
	
}
#intro-section .section-main-content {
}
#intro-section h2 {
	margin-bottom: 1em;
	font-size: 1em;
	line-height: 1;
}
#intro-section h2 > span {
	white-space: nowrap;
}
#intro-section h3 {
	margin-top: 0;
	font-size: 40px;
	line-height: 0.8;
}
@media (max-width : 1200px) {
	#intro-section .section-bg {
		position: relative;
	}
}
@media (min-width : 1200px) {
	#intro-section .section-bg {
		margin-right: 480px;
	}
	#intro-section .section-main {
		width: 768px; 
		padding-top: 260px;
		padding-bottom: 90px;
		font-size: 19px;
	}
	#intro-section .section-main-content {
		position: relative;
		z-index: 5;
		width: fit-content;
		padding-bottom: 2em;
	}
	#intro-section .section-main-content.inviewer {
		opacity: 0;
		-webkit-transform: translateX(4rem);
				transform: translateX(4rem);
		-webkit-transition: all 1s cubic-bezier(0.65, 0, 0.35, 1);
				transition: all 1s cubic-bezier(0.65, 0, 0.35, 1);
	}
	#intro-section .section-main-content.isinview {
		opacity: 1;
		-webkit-transform: none;
				transform: none;
	}
	#intro-section h3 {
		font-size: 60px;
	}
}

/***/



/* Location section */
.landmark-list {
	display: flex;
	flex-wrap: wrap;
	margin-inline: -0.5em;
}
.landmark-list li {
	flex-basis: 50%;
	padding: 0.5em;
	text-wrap: balance;
	text-align: center;
}


#location-section .google-map {
	height: 100%;
	aspect-ratio: 1.3333;
}
@media (min-width : 768px) {
	.landmark-list li {
		flex-basis: 25%;
	}
}
/***/



/* Gallery section */
#gallery-section {
}
#main-gallery.inviewer .swiper-container {
	opacity: 0;
	-webkit-transition: all 2s ease;
			transition: all 2s ease;
}
#main-gallery.inviewer.isinview .swiper-container {
	opacity: 1;
}
/***/



/* Company section */
#company-section {
}
@media (max-width : 1200px) {
	#company-section .section-main {
		text-align: center;
	} 
	#company-section .section-bg {
		position: relative;
	}
}
/***/



/* Contact section */
.form-container {
}
.form-field {
	margin-block: 0.75em;
}
input[type=text], 
input[type=email], 
input[type=password], 
textarea {
	padding: 0.25em 1em;
	border-bottom: 1px solid;
}
input[type=text]:focus,
input[type=email]:focus,
input[type=password]:focus, 
textarea:focus {
	border-inline-end: 1px solid;
}
input[type=submit] {
	width: 100%;
	border: 1px solid var(--primary-color);
	border-radius: 0.333333em;
	background: var(--darker-color);
}
input[type=submit]:hover {
	background: var(--text-color);
	color: var(--primary-color);
}
input[type=checkbox] { 
	border-radius: 2px;
	background: var(--text-color);
	color: var(--bg-color);
}

.form-return {
    position: static;
    padding-block: 1em;
    opacity: 1;
	line-height: 1em;
	font-size: min(2em, 4rem);
}
.form-return p {
    margin-bottom: 0.5em;
}
.form-return .form-success {
    display: block;
    position: static;
}
/***/



/* Contact section 1 */

@media (min-width : 1200px) {
	#contact-section-1,
	#contact-section-2 {
		position: relative;
		z-index: 5;
		margin-top: -2em;
	}
}
/***/