@charset "UTF-8";
/* =========================================================================

==base
==header
==banner
==intro
==service
==news
==contact
==footer
==RWD

========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap');

/* =========================================================================
==base
========================================================================= */
:root {
	--fs-BNTitle: 48px;
	--fs-BNTxt: 20px;
	--fs-sectionTitle: 36px;
	--fs-subTitle: 18px;
	--fs-infoTitle: 26px;
	--fs-sidebarTitle: 22px;
	--fs-itemTitle: 22px;
	--fs-headerNav: 20px;
	--fs-normal: 16px;
	--fs-small: 14px;

	--section: 90px;
	--cnvs-header-height: 103px;
	--cnvs-canvas-slider-dots-size: 8px;

	--cnvs-themecolor: #2085C9;
	--cnvs-themecolor-rgb: 32, 133, 201;
	--cnvs-deepblue: #224C81;
	--cnvs-orange: #FC9F4E;
	--cnvs-txt: #777777;
	--cnvs-bggray: #F5F5F5;
}

/* ================= base ================= */
body,
.form-control {
	word-break: auto-phrase;
	letter-spacing: 1px;
	line-height: 1.75;
	font-weight: 400;
	font-family: "DM Sans", sans-serif;
	color: var(--cnvs-black);
	font-size: var(--fs-normal);
}

.form-control::placeholder {
	color: var(--cnvs-contrast-400);
}

p:last-child,
ul:last-child,
ol:last-child,
li:last-child,
form:last-child,
.form-control:last-child {
	margin-bottom: 0;
}

a {
	color: var(--cnvs-black);
	transition: .3s ease;
}

a:hover {
	color: var(--cnvs-themecolor);
}

button {
	transition: .3s ease;
}

/* ================= ellipsis ================= */
.one-row { 
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}

.two-row { 
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.three-row { 
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}	

@media (min-width:768px) {
	.three-md-row {
		display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
	}
}

/* ==================== btn ==================== */
.btn-base {
	display: inline-flex;
	gap: 8px;
	color: var(--cnvs-black);
	background-color: var(--cnvs-orange);
	font-weight: 400;
	padding: 12px 36px;
	border-radius: 30px;
	transition: .3s ease;
}

.btn-base:hover {
	color: var(--cnvs-white);
	background-color: var(--cnvs-deepblue);
}

/* ==================== title ==================== */
.section-title {
	margin-bottom: 48px;
}

.section-title:after {
	content: '';
	display: block;
	width: 46px;
	height: 2px;
	background-color: var(--cnvs-deepblue);
	margin: 32px auto 0;
}

.section-title.side:after {
	margin: 32px 0 0;
}

.section-title.white:after {
	background-color: var(--cnvs-orange);
}

.section-title .title {
	font-size: var(--fs-sectionTitle);
	color: var(--cnvs-themecolor);
	font-weight: 700;
	line-height: 1.5;
}

.section-title .subtitle {
	font-size: var(--fs-subTitle);
	color: var(--cnvs-txt);
	line-height: 1.75;
	letter-spacing: 1px;
}

.section-title.white {
	color: var(--cnvs-white);
}
	
.item-title {
	font-size: var(--fs-itemTitle);
	line-height: 1.5;
	font-weight: 700;
}

.sidebar-title {
	font-size: var(--fs-footerTitle);
}

.info-title {
	font-size: var(--fs-infoTitle);
}

/* ==================== other ==================== */
.section {
	background-color: transparent;
	padding: var(--section) 0;
	margin: 0;
}

.color-deepblue {
	color: var(--cnvs-deepblue) !important;
}

.color-txt {
	color: var(--cnvs-txt) !important;
}

.color-orange,
.h-color-orange:hover {
	color: var(--cnvs-orange) !important;
}

.bg-deepblue {
	background-color: var(--cnvs-deepblue) !important;
}

.bg-gray {
	background-color: var(--cnvs-bggray) !important;
}

.bg-orange {
	background-color: var(--cnvs-orange) !important;
}

/* =========================================================================
==header
========================================================================= */
/* ==================== logo ==================== */
#header-wrap #logo img {
	width: 237px;
	height: auto;
}

/* ==================== menu ==================== */
.menu-item > .menu-link {
	padding: 16px 32px;
	font-size: var(--fs-headerNav);
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.5;
}

.menu-item.active > .menu-link {
	color: var(--cnvs-themecolor);
}

.header-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 32px;
	background-color: var(--cnvs-orange);
	color: var(--cnvs-white);
	font-weight: 700;
	font-size: var(--fs-itemTitle);
}

.header-btn:hover,
.header-btn:active {
	background-color: var(--cnvs-deepblue);
	color: var(--cnvs-white);
}

.is-expanded-menu .menu-container > .menu-item:not(:first-child) {
	margin-left: 8px;
}

/* =========================================================================
==banner
========================================================================= */
#slider {
	aspect-ratio: 2000 / 800;
}

.swiper-slide-bg::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.40) 0%, rgba(0, 0, 0, 0.40) 100%);
}

.banner-title {
	font-size: var(--fs-BNTitle);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 2px;
	color: var(--cnvs-white);
	margin-bottom: 0;
}

.banner-txt,
.slider-caption p {
	font-size: var(--fs-BNTxt);
	font-weight: 400;
	color: var(--cnvs-white);
	margin-bottom: 0;
}

#slider .swiper-slide {
	text-align: start;
}

/* =========================================================================
==intro
========================================================================= */
.h1-txt {
	font-size: var(--fs-itemTitle);
	line-height: 1.5;
	font-weight: 700;
	color: var(--cnvs-black);
	text-decoration: underline;
	text-decoration-skip-ink: none;
	text-decoration-thickness: 8px;
	text-decoration-color: rgba(252, 159, 78, 0.50);
	text-underline-offset: -3px;
	margin-bottom: 32px;
}

.intro-section {
	--space: 48px;
}

.intro-section .txt-wrap {
	padding-top: var(--space);
}

.intro-section .img-wrap {
	width: 43.48%;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(calc(-1 * (50% - var(--space))));
}

/* ==================== section-2 ==================== */
.intro-section-2 .img-wrap {
	width: 80px;
	height: 80px;
	padding: 12px;
	border-radius: 8px;
	background: rgba(220, 53, 69, 0.20);
}

.intro-section-2 > div:nth-child(2) .img-wrap {
	background: rgba(252, 159, 78, 0.40);
}

.intro-section-2 > div:nth-child(3) .img-wrap {
	background: rgba(118, 178, 100, 0.40);
}

.intro-section-2 > div:nth-child(4) .img-wrap {
	background: rgba(32, 133, 201, 0.30);
}

/* =========================================================================
==service
========================================================================= */
.service-section {
	--space: 200px;
}

.service-section .section {
	padding: 90px 0 var(--space);
}

.negetive-margin {
	margin-top: calc(-1 * var(--space));
	max-width: 100%;
	overflow: hidden;
}

/* ==================== img ==================== */
.service-item .img-wrap img {
	transition: .3s ease;
	aspect-ratio: 960 / 705;
	object-fit: contain;
	background: var(--cnvs-white);
}

.service-item:hover .img-wrap img {
	transform: scale(1.1);
}

/* ==================== txt ==================== */
.service-item .txt-wrap {
	background-color: var(--cnvs-themecolor);
	transition: .3s ease;
}

.service-item:hover .txt-wrap {
	background-color: var(--cnvs-deepblue);
}

/* ==================== owl-carousel ==================== */
.owl-stage {
	display: flex;
}

.owl-carousel .owl-dots .owl-dot {
	background-color: var(--cnvs-deepblue);
}

/* ==================== popup ==================== */
.modal-content {
	border-radius: 24px;
	padding: 36px;
	overflow: hidden;
}

.btn-close {
	opacity: 1 !important;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 10;
	background-color: var(--cnvs-orange);
	width: 56px;
	height: 56px;
	font-size: 18px;
	border-radius: 0 0 0 16px;
}

.btn-close:hover {
	background-color: var(--cnvs-deepblue);
}

/* ==================== popup img ==================== */
.proSwiper2 .swiper-wrapper {
	align-items: center;
}

.swiper-slide {
	position: relative;
	text-align: center;
}

.proSwiper .swiper-slide img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.proSwiper .swiper-slide:not(.swiper-slide-thumb-active)::before {
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.6);
}

.swiper-slide-thumb-active {
	border: 3px solid var(--cnvs-deepblue);
}

.prodcut-info-img-wrap [class*=swiper-button-] {
	width: 36px;
	height: 36px;
	margin-top: 0;
	border-color: rgba(var(--cnvs-contrast-rgb), 0.1) !important;
	opacity: 0;
	transition: .3s ease-in-out;
}

.prodcut-info-img-wrap [class*=swiper-button-]:after {
	opacity: 0;
}

.prodcut-info-img-wrap [class*=swiper-button-]:hover {
	background-color: var(--cnvs-themecolor) !important;
	color: var(--cnvs-white);
}

.prodcut-info-img-wrap:hover [class*=swiper-button-] {
	opacity: 1;
}

/* ==================== table content ==================== */
.pop-content {
	margin-top: 36px;
}

.table-template {
	overflow-x: auto;
}

.table-template table {
	min-width: 800px;
	margin-bottom: 0;
}

.table-template th,
.table-template td {
	padding: 12px 16px;
}

.table-template th {
	background-color: var(--cnvs-themecolor);
	color: var(--cnvs-white);
	font-weight: 700;
}

.table-template td {
	border-bottom: 1px solid var(--bs-border-color);
}

.service-pop-txt {
	margin-top: 32px;
}

.service-pop-txt h6 {
	font-size: var(--fs-itemTitle);
	color: var(--cnvs-themecolor);
	font-weight: 700;
	line-height: 1.5;
}

/* =========================================================================
==news
========================================================================= */
.news-item .img-wrap img {
	transition: .3s ease;
	aspect-ratio: 960 / 705;
	object-fit: contain;
	background: var(--cnvs-white);
}

.news-item:hover .img-wrap img {
	transform: scale(1.1);
}

.news-item:hover .txt-wrap .item-title {
	color: var(--cnvs-deepblue);
}

.share-wrap a {
	font-size: 24px;
}

/* =========================================================================
==footer
========================================================================= */
#footer {
	padding: 40px 0;
}

#footer .link-underline {
	border-bottom: 0.5px dashed var(--cnvs-white);
}

/* ================= float sns ================= */
.float-sns {
	position: fixed;
	right: 30px;
	bottom: 108px;
	gap: 16px;
	z-index: 599;
}

.float-sns .social-icon {
	--cnvs-socialicon-size: 54px;
}

.float-sns .social-icon i {
	font-size: 32px;
}

.stretched #gotoTop {
	right: 37px;
}

/* =========================================================================
==contact
========================================================================= */
/* ==================== info ==================== */
.contact-section .txt-wrap {
	margin-top: 120px;
}

.contact-section .txt-wrap ul.info-wrap {
	margin-top: 36px;
}

.contact-section .txt-wrap ul.info-wrap li {
	margin-bottom: 16px;
}

.contact-section .txt-wrap ul.info-wrap li:last-child {
	margin-bottom: 0;
}

.social-icon i {
	font-size: 22px;
	transform: translateX(0.5px);
}

/* ==================== form ==================== */
.form-wrap {
	padding: 32px;
	border-radius: 16px;
}

.form-wrap .form-control {
	max-width: 495px;
}

.captcha-img {
	margin-top: 48px;
}

/* =========================================================================
==RWD
========================================================================= */
@media (max-width: 1399px) {
	:root {
		--cnvs-header-height: 79px;
	}
	
	/* ==================== header ==================== */
	#header-wrap #logo img {
    width: 210px;
	}

	.header-btn {
		padding: 20px;
	}

	.is-expanded-menu .menu-container > .menu-item:not(:first-child) {
		margin-left: 0;
	}

	/* ==================== service ==================== */
	.service-section .section {
		padding: 80px 0 var(--space);
	}
}

@media (max-width: 1199px) {
	:root {
		--section: 70px;
	}

	/* ==================== base ==================== */
	.section-title {
		margin-bottom: 36px;
	}

	.section-title:after {
		margin: 24px auto 0;
	}
	
	.section-title.side:after {
		margin: 24px 0 0;
	}

	/* ==================== header ==================== */
	#header-wrap #logo img {
		width: 195px;
	}

	.menu-item > .menu-link {
		padding: 16px 24px;
	}

	/* ==================== intro ==================== */
	.h1-txt {
		margin-bottom: 24px;
	}

	.intro-section {
    --space: 0px;
	}

	.intro-section .img-wrap {
		width: 100%;
		position: static;
		transform: none;
		max-width: 960px;
		margin: 36px auto 0;
		padding: 0 12px;
	}

	.intro-section-2 .img-wrap {
    width: 70px;
    height: 70px;
    padding: 10px;
	}
	
	/* ==================== service ==================== */
	.service-section .section {
		padding: 70px 0 var(--space);
	}

	.btn-close {
		width: 50px;
    height: 50px;
	}

	/* ==================== footer ==================== */
	#footer {
		padding: 32px 0;
	}
}

@media (max-width: 991px) {
	.wow {
		animation-name: none !important;
		visibility: visible !important;
		opacity: 1;
	}

	:root {
		--fs-BNTitle: 40px;
		--fs-BNTxt: 18px;
		--fs-sectionTitle: 32px;
		--fs-subTitle: 17px;
		--fs-infoTitle: 24px;
		--fs-sidebarTitle: 20px;
		--fs-itemTitle: 20px;
		--fs-headerNav: 18px;

		--section: 60px;
		--cnvs-header-height: 82px;
	}

	/* ==================== base ==================== */
	.section-title:after {
		margin: 20px auto 0;
	}
	
	.section-title.side:after {
		margin: 20px 0 0;
	}

	/* ==================== header ==================== */
	#logo {
		padding-top: 12px;
    padding-bottom: 12px;
	}

	.primary-menu {
		order: 6;
	}

	.primary-menu-trigger {
		order: 5;
		border: 1px solid var(--cnvs-contrast-600);
		border-radius: 6px;
	}

	.header-misc {
		margin-left: 0;
		margin-right: 24px;
	}

	.header-btn {
		padding: 8px 24px;
		border-radius: 30px;
		font-size: 16px;
		gap: 8px;
	}
	
	.menu-item > .menu-link {
		padding: 12px 16px;
	}

	/* ==================== banner ==================== */
	.slider-caption.slider-caption-right {
		margin: 0 auto;
	}

	/* ==================== intro ==================== */
	.h1-txt {
		margin-bottom: 20px;
	}
	
	.intro-section .img-wrap {
		max-width: 720px;
		margin: 24px auto 0;
	}
	
	/* ==================== service ==================== */
	.service-section .section {
		padding: 60px 0 var(--space);
	}

	.modal-content {
		padding: 32px;
	}

	.btn-close {
		width: 46px;
		height: 46px;
	}

	/* ==================== contact ==================== */
	.contact-section .txt-wrap {
		margin-top: 0;
	}

	.form-wrap .form-control {
		max-width: 100%;
	}

	/* ==================== footer ==================== */
	#footer {
		padding: 24px 0;
	}

	.float-sns {
    right: 20px;
	}

	.float-sns .social-icon {
    --cnvs-socialicon-size: 46px;
	}

	.float-sns .social-icon i {
		font-size: 26px;
	}
	
	.stretched #gotoTop {
    right: 24px;
	}
}

@media (max-width: 767px) {
	:root {
		--fs-BNTitle: 32px;
		--fs-sectionTitle: 28px;

		--cnvs-header-height: 74px;
	}

	/* ==================== base ==================== */
	.btn-base {
		padding: 8px 24px;
	}

	/* ==================== header ==================== */
	#header-wrap #logo img {
		width: 170px;
	}

	/* ==================== banner ==================== */
	.banner-txt, .slider-caption p {
		display: none;
	}

	/* ==================== intro ==================== */
	.intro-section .img-wrap {
		max-width: 540px;
	}

	/* ==================== service ==================== */
	.service-section {
    --space: 150px;
	}
	
	.modal-content {
		padding: 24px;
	}

	/* ==================== footer ==================== */
	.feature-box {
    --cnvs-featured-box-icon: 3.3rem;
	}
}

@media (max-width: 575px) {
	:root {
		--fs-BNTitle: 20px;
		--fs-BNTxt: 17px;
		--fs-sectionTitle: 28px;
		--fs-infoTitle: 22px;
		--fs-sidebarTitle: 18px;
		--fs-itemTitle: 18px;

		--section: 48px;
		--cnvs-header-height: 70px;
	}

	.section-title {
		margin-bottom: 24px;
	}

	.section-title:after {
		margin: 16px auto 0;
	}

	/* ==================== header ==================== */
	#header-wrap #logo img {
		width: 155px;
	}

	/* ==================== banner ==================== */
	#slider {
		--cnvs-swiper-dots-position-bottom: 10px;
	}

	#slider .btn-base {
		gap: 4px;
		padding: 6px 12px;
		font-size: 13px;
	}
	
	/* ==================== intro ==================== */
	.intro-section-2 .img-wrap {
		width: 60px;
		height: 60px;
		padding: 8px;
	}

	/* ==================== service ==================== */
	.service-section .section {
		padding: 48px 0 var(--space);
	}

	.modal-content {
		padding: 16px;
		border-radius: 16px;
  }

	.btn-close {
		width: 32px;
		height: 32px;
		font-size: 15px;
		border-radius: 0 0 0 12px;
  }

	.prodcut-info-img-wrap [class*=swiper-button-] {
		margin-top: -12px;
	}

	.modal .section-title .title {
		font-size: 24px;
	}

	/* ==================== news ==================== */
	.share-wrap a {
    font-size: 22px;
	}

	/* ==================== contact ==================== */
	.form-wrap {
    padding: 24px;
	}

	.captcha-img {
		margin-top: 0;
	}

	/* ==================== footer ==================== */
	.feature-box {
    --cnvs-featured-box-icon: 3rem;
		--cnvs-featured-box-icon-size: 24px;
	}

	.fbox-content {
		padding-left: 6px;
	}
}