@charset "utf-8";
@import url(swiper-bundle.min.css);
@import url(reset.css);
@import url(fonts.css);
@import url(sub.css);
html,
body {
  height: 100%;
  scroll-behavior: smooth;
}
html {
	scroll-snap-type: y proximity;
}
#goto-top	{
	position: fixed;
	right: 40px;
	bottom: 150px;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: #fff;
	font-family: var(--font-title);
	font-size: 14px;
	font-weight: 600;
	color: #008985;
	border: 1px solid #008985;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(20px);
	transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
	z-index: 1000;
	line-height: 100%;
}
/* 보여줄 때 추가할 클래스 */
#goto-top.is-visible {
	opacity: 1;
	padding: 2px 0 0;
	visibility: visible;
	transform: translateY(0);
  }
.visual,
.business {
  scroll-snap-align: start;
  min-height: 100vh; /* 각 섹션이 화면 한 페이지 이상 차지 */
  box-sizing: border-box;
  padding-top: 90px; /* header 높이만큼 내용 내리기 (헤더가 90px 고정이니까) */
}
.inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 60px 0 40px;
}
  
  /* HEADER */
.header {
	position: fixed;
	top: 0;
	width: 100%;
	height: 90px;
	background: rgba(255,255,255,0.3);
	backdrop-filter: blur(8px);
	z-index: 1000;
}
  
.header .inner {
	height: 100%;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
  
.logo {
	font-size: 0;
	display: block;
	width: 300px;
	height:50px;
	background: url(../images/common/Logo.svg) no-repeat;
}
.logo > a {
	font-size: 0;
	display: block;
	width: 100%;
	height: 100%;
}
.gnb > ul {
	display: flex;
	align-items: center;
	gap: 10px;             
	list-style: none;
}
  
.gnb > ul > li > a {
	display: block;
	font-family: var(--font-title);
	width: 170px;
    text-align: center;
	padding: 36px 18px 26px;
	font-weight: 500;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
}
.gnb > ul > li > a:hover,
.gnb > ul > li > a:active,
.gnb > ul > li > a:focus,
.gnb > ul > li.active > a {
	color:#008985;
	border-bottom-color: #60C5C2;
}
  
  /* 전체메뉴 아이콘 버튼 스타일 */
.gnb .all-menu	{
	margin-left: 20px;
}
.gnb .all-menu button {
	border: none;
	background: transparent;
	font-size: 0;        /* 아이콘 크기 */
	padding: 16px 16px;
	cursor: pointer;
	background:url(../images/common/ico-menu.svg) no-repeat center center;
}
.gnb .all-menu button.is-open {
	background-image: url("../images/common/ico-close.svg");
}
  
.all-menu-panel {
	position: fixed;
    inset: 0;
    background: #fff;
    height: 40%;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity .25s, transform .25s;
    z-index: 900;
}
  
.all-menu-panel.is-open {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}
  
.all-menu-inner {
	max-width: 1400px;
	margin: 90px auto 0;
    padding: 0;
}
.all-menu-inner > nav {
	display: flex;
	flex-direction: row;
    justify-content: flex-end;
	margin-right: 60px;
	padding-top: 30px;
}
.all-menu-inner ul {
	width: 180px;
    margin-bottom: 14px;
    text-align: center;
}
  
.all-menu-inner li {
	margin-bottom: 16px;
}
.all-menu-inner li > a {
	display: block;
    color: #000;
    font-weight: 400;
    text-align: left;
    padding-left: 57px;
}
.all-menu-inner li > a:hover,
.all-menu-inner li > a:focus,
.all-menu-inner li.active > a {
	display: block;
	color:#008985;
	font-weight: 600;
}
  
  /* VISUAL */
  /* VISUAL - 전체 슬라이더 영역 */

/* 공통 */
.visual,
.business {
  scroll-snap-align: start;
  min-height: 100vh;
  box-sizing: border-box;
}

/* visual 은 헤더까지 배경을 꽉 채움 (패딩 없음) */
.visual {
  padding-top: 0;
}

/* business 만 위 여백 필요 */
.business {
  padding-top: 90px;
}

.visual {
	height: 100vh;
	display: flex;
	align-items: stretch;
	justify-content: center;
}
  
  /* Swiper 기본 높이/정렬 */
.visual .swiper-wrapper {
	width: 100%;
}
  
.visual .swiper-slide {
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
}
  
  /* 각 슬라이드 배경 (원하시는 이미지로 교체) */
.main-visual01 { background: url('../images/common/main_visual01.png') center/cover no-repeat; }
.main-visual02 { background: url('../images/common/main_visual02.png') center/cover no-repeat; }
.main-visual03 { background: url('../images/common/main_visual03.png') center/cover no-repeat; }
.main-visual04 { background: url('../images/common/main_visual04.png') center/cover no-repeat; }
  

.main-visual01 .visual-text	{margin-top: -320px;}
.main-visual04 .visual-text .sub,
.main-visual04 .visual-text h2	{color:#fff !important}


 .swiper-button-prev, 
 .swiper-button-next	{
	width: 40px;
    height: 110px;
	font-size: 0;
	background-color: transparent;
}

.visual-text {
	color: #0d2a3f;
	text-align: center;
}
.visual-text .sub {
	font-size:20px;
	color: #00000090;
	text-align: center;
	margin-bottom: 40px;
}
.visual-text h2 {
	font-family: var(--font-title);
	font-weight: 400;
	font-size: 54px;
	color: #0A2935;
	text-align: center;
	text-shadow: 4px 4px 6px rgba(0,0,0,0.1);
}
.visual-text h2 > b {
	font-weight: 700;
}
  /* 하단 페이지 아이콘(불릿) 스타일 */
.visual .swiper-pagination {
	bottom: 60px !important;
    width: auto;
    height: 40px;
    border-radius: 999px;
    background-color: #fff;
    left: 50%;
	padding: 7px 12px;
    transform: translateX(-50%);
}
  
.visual .swiper-pagination-bullet {
	width: 12px;
	height: 12px;
	background: #6D7882;
	opacity: 1;
	border-radius: 50%;
	margin: 0 6px;
}
  
.visual .swiper-pagination-bullet-active {
	width:24px;
	background: #46B3F6; /* 활성화된 불릿 색 */
	transform: scale(1.2);
	border-radius: 999px;
}


  /* BUSINESS */
.business {
	padding: 40px 0 0;
	background: #fff;
}
  
.business h2 {
	font-family: var(--font-title);
	font-size: 54px;
	font-weight: 700;
	text-align: center;
	background: url(../images/common/logo_vertical.png) no-repeat top center;
	padding-top:180px;
}
  
.desc {
	text-align: center;
	margin: 30px 0 100px;
	color: #555;
}
  
.biz-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}
  
.biz-list .card {
	display: flex;
	flex-direction: column;
	background: #ffffff;
	text-align: left;
	border-radius: 20px;
	font-weight: 500;
	transition: .3s;
	box-shadow: 0 0 10px rgba(0,0,0,0.1);
	border: 1px solid #fff;
}
.biz-list .card a	{
	display: block;
	padding: 32px 40px;
}
.biz-list .card span	{
	display: block;
	font-size: 20px;
	color:#000000;
	width: auto;
	font-weight: 700;
}
.biz-list .card span.en	{
	font-family: var(--font-title);
	font-size: 12px;
	color:#00000070;
	width: auto;
	height: 20px;
	font-weight: 400;
}
.biz-list .card em	{
	display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: #60C5C2;
    width: 104px;
    border-radius: 999px;
    border: 1px solid #60c5c2;
    padding: 6px 12px;
	margin-top: 12px;
}
.biz-list .card em::after	{
	content:'';
	display: block;
	font-size: 14px;
	color:#60C5C2;
	width: 20px;
	height: 20px;
	background: url(../images/common/main-ico-arrow.svg) no-repeat center center;
}
.biz-list .card.bn01 {
	background: #fff url(../images/common/ico_bn01.png) no-repeat 85% center;
}
.biz-list .card.bn02 {
	background: #fff url(../images/common/ico_bn02.png) no-repeat 85% center;
}
.biz-list .card.bn03 {
	background: #fff url(../images/common/ico_bn03.png) no-repeat 85% center;
}
.biz-list .card:hover,
.biz-list .card:active,
.biz-list .card:focus {
	transform: translateY(-8px);
	box-shadow: 0 0 10px rgba(0,0,0,0.1);
	border-color: #60C5C2;
}
  
  /* FOOTER */
.footer {
	width:100%;
	background: #F6F6F6;
	padding: 28px 0;
	font-size: 14px;
	line-height: 1.7;
	margin-top: 20px;
}
.footer .inner {
	display: flex;
	gap: 36px;
	padding: 0;
	max-width: 1400px;
	margin: 0 auto;
}
.footer .inner .f-logo {
	font-size: 0;
	width: 150px;
	height: 52px;
	background:url(../images/common/Logo.svg) no-repeat top center;
	background-size: 150px; 
}
.footer .inner > p > a {text-decoration: underline;}