/*
----------------------------------------

header

----------------------------------------
*/

#header {
	position: relative;
	width: 100%;
	height: 160px;
	z-index: 9999;
	transition: top ease 0.33s;
}

.header-contents {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	background: #fff;
}

.header-news-bnr {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #3797db;
	height: 40px;
	padding: 0 20px;
	transition: all ease 0.33s;
}
.header-hidden .header-news-bnr {
	display: none;
}
.header-news-bnr > span {
	text-align: center;
	position: relative;
	color: #fff;
	font-size: 14px;
	line-height: 1;
	display: flex;
	align-items: center;
	gap: 4px;
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: all ease 0.33s;
}
.header-news-bnr > span::after {
	content: "";
	width: 16px;
	height: auto;
	aspect-ratio: 1 / 1;
	background-image: url("../img/common/1x/icon-circle-chevron-right.svg");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	flex-shrink: 0;
}

.news-ticker-horizontal {
	width: 100%;
	overflow: hidden;
	height: 60px;
	background: #fff;
	border-bottom: 1px solid #f3f3f3;
	position: relative;
	transition: all ease 0.33s;
}
.header-hidden .news-ticker-horizontal {
	display: none;
}

.ticker-horizontal-list {
	width: 100%;
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0;
	position: absolute;
	left: 0;
	top: 0;
	transition: transform 0.5s ease;
}

.ticker-horizontal-list li {
	width: 100%;
	flex-shrink: 0;
	height: 60px;
	line-height: 60px;
	padding: 0 20px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ticker-horizontal-list a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: 100%;
}

.ticker-horizontal-list a > span {
	text-decoration: none;
	color: #333;
	font-size: 14px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	text-align: center;
	gap: 4px;
	transition: all ease 0.33s;
}

.ticker-horizontal-list a > span::after {
	content: "";
	width: 16px;
	aspect-ratio: 1 / 1;
	background-image: url("../img/common/1x/icon-circle-chevron-right.svg");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	flex-shrink: 0;
}

.header-nav-area {
	width: 100%;
	height: 60px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0px 30px;
	background: #fff;
	border-bottom: 1px solid #f3f3f3;
	transition: top ease 0.33s;
}

#header.is-fixed .header-nav-area {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
}
#header.is-hidden .header-nav-area {
	top: -100px;
}

.header-logo {
	width: 19.2%;
	height: auto;
	aspect-ratio: 277 / 40;
	max-width: 277px;
	flex-shrink: 0;
}
.header-logo a {
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
}
.header-logo a img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: all ease 0.33s;
}

.header-btn-list {
	width: auto;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	flex-shrink: 0;
}

.btn-round {
	display: flex;
	justify-content: center;
	align-items: center;
	background: linear-gradient(to right, #74b5e4 0%, #73c6c8 100%);
	padding: 10px 16px;
	border-radius: 999px;
	flex-shrink: 0;
	transition: all ease 0.33s;
}
.btn-round > span {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	color: #fff;
	text-align: center;
	line-height: 1.4;
	font-size: 16px;
	font-weight: 700;
}
.btn-round > span > strong {
	text-align: center;
	line-height: 1.4;
	font-size: 16px;
	font-weight: 700;
	color: #fff;
}
.btn-round > span::before {
	content: "";
	width: 24px;
	height: auto;
	aspect-ratio: 1 / 1;
	background-image: url("../img/common/1x/icon-sign.svg");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	flex-shrink: 0;
}
.btn-round.btn-noicon > span::before {
	content: none;
}
.btn-round.btn-disabled {
	background: #f3f3f3;
	pointer-events: none;
}
.btn-round.btn-disabled > span {
	color: #989898;
}
.btn-round.btn-disabled > span > strong {
	color: #989898;
}

.btn-login {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-shrink: 0;
}
.btn-login > span {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	text-align: center;
	line-height: 1.7;
	font-size: 11px;
	font-weight: 400;
	color: #333;
}
.btn-login > span::before {
	content: "";
	width: 16px;
	height: auto;
	aspect-ratio: 16 / 21;
	background-image: url("../img/common/1x/icon-login.svg");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	flex-shrink: 0;
}

.g-nav-list {
	display: flex;
	align-items: center;
	gap: 24px;
}
.g-nav-list li a {
	font-size: 14px;
	color: #333;
	font-weight: 400;
}

@media screen and (max-width: 1200px) {
	.btn-round > span > strong > span {
		display: none;
	}
	.pc-g-nav {
		display: none;
	}

	.header-news-bnr > span {
		font-size: 13px;
	}
	.ticker-horizontal-list a > span {
		font-size: 13px;
	}

	.header-btn-list {
		gap: 8px;
	}
	.btn-round > span > strong {
		font-size: 14px;
	}
	.btn-round > span::before {
		width: 20px;
	}
	.btn-login {
		display: none;
	}
}

@media screen and (max-width: 768px) {
	.header-nav-area {
		padding: 0px 20px;
	}
	.header-logo {
		width: 85px;
		aspect-ratio: 85 / 45;
		max-width: 85px;
	}
}

/*
----------------------------------------

header server menu

----------------------------------------
*/
.btn-hsm > span {
	position: relative;
	display: flex;
	align-items: center;
	gap: 3px;
}
.btn-hsm > span::after {
	content: "";
	background-image: url("../img/common/1x/icon-chevron-down-bl.svg");
	background-repeat: no-repeat;
	background-size: contain;
	width: 11px;
	height: auto;
	aspect-ratio: 11 / 7;
	position: relative;
	flex-shrink: 0;
	transform: all ease-in-out 0.2s;
}
.is-hsm-open.btn-hsm > span::after {
	transform: scale(-1);
}
.header-server-menu {
	width: 100%;
	position: relative;
	overflow: hidden;
	background: #fff;
	transition: top ease 0.33s;
}
#header.is-fixed .header-server-menu {
	position: fixed;
	top: 60px;
	left: 0;
	right: 0;
}
#header.is-hidden .header-server-menu {
	top: -200px;
}
.hsm-inner {
	width: 100%;
	padding: 24px;
	border-bottom: 1px solid #f3f3f3;
	overflow: hidden;
}
.hsm-cont {
	width: 100%;
	display: flex;
	height: 100%;
	overflow: hidden;
	justify-content: center;
	gap: 54px;
	align-items: center;
}
.hsm-cont-item {
	width: 180px;
	height: auto;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 4px;
	flex-shrink: 0;
}
.hsm-cont-ttl {
	width: 100%;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}
.hsm-cont-ttl > span {
	font-weight: 400;
	font-size: 14px;
	line-height: 1.75;
	letter-spacing: 0.05em;
	text-align: center;
	flex-shrink: 0;
	transition: all ease 0.33s;
}
.hsm-cont-item:hover .hsm-cont-ttl > span {
	color: #3797db;
}
.hsm-cont-ttl::before,
.hsm-cont-ttl::after {
	content: "";
	background-image: url("../img/common/1x/icon-flower.svg");
	background-repeat: no-repeat;
	background-size: contain;
	width: 16px;
	height: auto;
	aspect-ratio: 1 / 1;
	flex-shrink: 0;
}

.hsm-cont-item > figure {
	width: 100%;
	height: auto;
	aspect-ratio: 9 / 6;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #f3f3f3;
	padding: 11px;
	max-height: 120px;
	overflow: hidden;
	border-radius: 5px;
}
.hsm-cont-item > figure img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	max-width: 88px;
	max-height: 96px;
	transition: all ease-in-out 0.4s;
}
.hsm-cont-item:hover > figure img {
	transform: scale(1.05);
}
@media screen and (max-width: 1200px) {
	.header-server-menu {
		display: none;
	}
}
/*
----------------------------------------

toggle-menu

----------------------------------------
*/

header #overlay {
	position: fixed;
	top: 60px;
	right: 0;
	left: 0;
	bottom: 0;
	background: #e5f7ff;
	opacity: 0;
	visibility: hidden;
	z-index: -1;
	transition: all 0.2s;
}

#nav-btn {
	display: none;
}

#nav-btn .btn {
	width: 45px;
	height: auto;
	background: #f3f3f3;
	position: relative;
	cursor: pointer;
	transition: all 0.2s;
	aspect-ratio: 1 / 1;
	border-radius: 999px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-flow: column;
	gap: 2px;
}

.toggle-bar-box {
	width: 24px;
	height: 14px;
	display: flex;
	flex-flow: column;
	align-items: center;
	justify-content: space-between;
	position: relative;
	overflow: hidden;
	gap: 4px;
}
.toggle-bar-box > span {
	width: 100%;
	height: 2px;
	background: #3797db;
	border-radius: 999px;
	flex-shrink: 0;
}

.nav-btn-label {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	line-height: 1;
	font-size: 10px;
	letter-spacing: 0.05em;
}

#toggle-menu {
	position: fixed;
	width: 100%;
	top: 60px;
	right: 0;
	bottom: 0;
	opacity: 0;
	visibility: hidden;
	overflow: hidden;
	z-index: -1;
	transition: all 0.2s;
	display: flex;
	justify-content: flex-end;
}

.toggle-menu .ttl {
	cursor: pointer;
}

#toggle-menu .nav-wrap {
	flex-direction: column;
	flex-wrap: nowrap;
	width: 100%;
	max-width: 540px;
	height: 100%;
	background: #fff;
	overflow: auto;
	overflow-scrolling: touch;
	transform: translateX(100%);
	transition: all 0.4s;
}

#toggle-menu #toggle-nav {
	width: 100%;
	margin-bottom: 24px;
}

#toggle-menu #toggle-nav .flex {
	width: 100%;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.toggle-menu-head-btns {
	width: 100%;
	padding: 16px 24px;
	background: #f3f3f3;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
}

.btn-square {
	display: flex;
	width: 170px;
	height: 42px;
	justify-content: center;
	align-items: center;
	position: relative;
	border-radius: 6px;
}
.btn-square.bs-login {
	background: #fff;
	border: 1px solid #ccc;
}
.btn-square.bs-register {
	background: #16c9e0;
	border: 1px solid #16c9e0;
}
.btn-square > span {
	font-size: 13px;
	line-height: 1;
	text-align: center;
	font-weight: 700;
}
.btn-square::after {
	content: "";
	width: 5px;
	height: auto;
	aspect-ratio: 5 / 7;
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	flex-shrink: 0;
	position: absolute;
	right: 14px;
}
.btn-square.bs-login > span {
	color: #333;
}
.btn-square.bs-register > span {
	color: #fff;
}
.btn-square.bs-login::after {
	background-image: url("../img/common/1x/icon-chevron-right-bk.svg");
}
.btn-square.bs-register::after {
	background-image: url("../img/common/1x/icon-chevron-right-wh.svg");
}

#toggle-menu #toggle-nav li {
	width: 100%;
	border-bottom: 1px solid #f3f3f3;
	padding: 0 20px;
	padding-right: 24px;
}

#toggle-menu #toggle-nav li ul li {
	border-bottom: 1px solid #f3f3f3;
}

#toggle-menu #toggle-nav a {
	display: block;
	line-height: 1.75;
	color: #333;
	padding: 24px 0 16px;
	text-align: left;
	font-weight: 400;
	position: relative;
}
#toggle-menu #toggle-nav a::after {
	content: "";
	width: 7px;
	height: auto;
	aspect-ratio: 7 / 11;
	background-image: url("../img/common/1x/icon-chevron-right-bl.svg");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	flex-shrink: 0;
	position: absolute;
	right: 3px;
	transform: translateY(-50%);
	top: 50%;
}

#toggle-menu #toggle-nav a.sub-menu-btn {
	background: transparent !important;
	position: relative;
}
#toggle-menu #toggle-nav a.sub-menu-btn.active {
	border-bottom: 1px solid #f3f3f3;
}

#toggle-menu #toggle-nav a.sub-menu-btn::before,
#toggle-menu #toggle-nav a.sub-menu-btn::after {
	content: "";
	width: 14px;
	height: 2px;
	background: #3797db;
	position: absolute;
	top: calc(50% - 1px);
	right: 0px;
	transition: all 0.2s;
}

#toggle-menu #toggle-nav a.sub-menu-btn::after {
	transform: rotate(90deg);
}

#toggle-menu #toggle-nav a.sub-menu-btn.active::after {
	opacity: 0;
}

#toggle-menu #toggle-nav li ul li a {
	position: relative;
	padding: 16px 0;
	padding-left: 48px;
	letter-spacing: 0;
}
#toggle-menu #toggle-nav li ul.toggle-menu-server-sub li {
	border: none;
}
#toggle-menu #toggle-nav li ul.toggle-menu-server-sub li a {
	padding-left: 0;
}
#toggle-menu #toggle-nav a.tsm-cont-item {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 16px;
	justify-content: flex-start;
	padding: 0;
	margin-bottom: 16px;
}

.tsm-cont-ttl {
	width: 100%;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}
.tsm-cont-ttl > span {
	font-weight: 400;
	font-size: 14px;
	line-height: 1.75;
	letter-spacing: 0.05em;
	text-align: center;
	flex-shrink: 0;
	transition: all ease 0.33s;
}

.tsm-cont-item > figure {
	width: 100%;
	height: auto;
	aspect-ratio: 6 / 4;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #f3f3f3;
	padding: 8px;
	max-width: 120px;
	overflow: hidden;
	border-radius: 5px;
}
.tsm-cont-item > figure img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	max-width: 50px;
	max-height: 64px;
	transition: all ease-in-out 0.4s;
}

#toggle-menu #toggle-nav li ul li a::before {
	content: "";
	width: 10px;
	height: 2px;
	background: #3797db;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 20px;
}

#toggle-menu #toggle-nav li ul.toggle-menu-server-sub li a::before {
	content: none;
}
#toggle-menu #toggle-nav .flex {
	justify-content: center;
	text-align: center;
}

#toggle-menu #toggle-nav .sub {
	display: none;
}

.toggle-menu-cv-area {
	width: 100%;
	padding: 0 20px;
	padding-bottom: 24px;
	margin-bottom: 24px;
	border-bottom: 1px solid #f3f3f3;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 24px;
}
.tmcv-apply-box {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 8px;
}
.tmcv-apply-box > p {
	width: 100%;
	text-align: center;
	font-size: 16px;
	font-weight: 400;
}
.tmcv-apply-box > p > span {
	font-weight: 700;
	color: #3797db;
}
.tmcv-apply-box > .btn-round {
	padding: 20px 16px;
	width: 100%;
	max-width: 353px;
}
.tmcv-apply-box > .btn-round > span::before {
	width: 24px;
}
.tmcv-apply-box > .btn-round > span > strong {
	font-size: 18px;
}

.tmcv-tel-box {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 8px;
}
.tmcv-tel-box > p {
	width: 100%;
	text-align: center;
	font-size: 16px;
	font-weight: 400;
}
.tmcv-tel-btns {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 8px;
}
.tmcv-tel-btns > a {
	padding: 13px 16px;
	width: 100%;
	max-width: 353px;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 999px;
	flex-shrink: 0;
	flex-flow: column;
	align-items: center;
	gap: 7px;
}
.tmcv-tel-btns > a > div {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	line-height: 1;
}
.tmcv-tel-btns > a > div > span {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	gap: 5px;
	font-size: 18px;
	font-weight: bold;
}
.tmcv-tel-btns > a > div > span::before {
	content: "";
	width: 18px;
	height: auto;
	aspect-ratio: 1 / 1;
	background-image: url("../img/common/1x/icon-tel-bk.svg");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	flex-shrink: 0;
}
.tmcv-tel-btns > a > p {
	width: 100%;
	text-align: center;
	font-size: 11px;
	font-weight: 400;
	line-height: 1;
}
.tmcv-tel-box > p.tmcv-tel-note {
	font-size: 11px;
}

.toggle-menu-bnr-area {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 8px;
	padding: 0 20px;
	margin-bottom: 24px;
}
.toggle-menu-bnr-area > a {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	max-width: 350px;
}
.toggle-menu-bnr-area > a img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.toggle-menu-sns-area {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 8px;
	padding: 0 20px;
	margin-bottom: 24px;
}
.toggle-menu-sns-area > p {
	width: 100%;
	text-align: center;
	font-size: 16px;
	font-weight: 400;
}
.tmcv-sns-btns {
	width: 100%;
	padding: 0 20px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	max-width: 270px;
}
.tmcv-sns-btns > a {
	width: 40px;
	height: auto;
	aspect-ratio: 1 / 1;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
}
.tmcv-sns-btns > a img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

@media screen and (max-width: 1200px) {
	#nav-btn {
		display: flex;
	}

	.nav-open .header-news-bnr {
		display: none;
	}
	.nav-open .news-ticker-horizontal {
		display: none;
	}
	.nav-open #toggle-menu {
		opacity: 1;
		visibility: visible;
		z-index: 9999;
	}
	.nav-open header #overlay {
		opacity: 0.9;
		visibility: visible;
		z-index: 99;
	}
	.nav-open #toggle-menu .nav-wrap {
		transform: none;
	}
	#nav-btn .btn {
		gap: 2px;
	}
	.nav-open #nav-btn .btn {
		gap: 0px;
	}
	.nav-open .toggle-bar-box {
		height: 24px;
	}
	.nav-open .toggle-bar-box > span:nth-of-type(1) {
		transform: translateY(-50%) rotate(-45deg);
		position: absolute;
		top: 50%;
		left: 0;
		right: 0;
		margin: 0 auto;
	}

	.nav-open .toggle-bar-box > span:nth-of-type(2) {
		opacity: 0;
	}

	.nav-open .toggle-bar-box > span:nth-of-type(3) {
		transform: translateY(-50%) rotate(45deg);
		position: absolute;
		top: 50%;
		left: 0;
		right: 0;
		margin: 0 auto;
	}
}

/*
----------------------------------------

Side Fixed Banner

----------------------------------------
*/
.side-fixed-bnr-area {
	position: fixed;
	bottom: 20px;
	right: 30px;
	opacity: 0;
	visibility: hidden;
	z-index: -1;
	pointer-events: none;
	transition: all 0.2s;
}
.side-fixed-bnr {
	width: 278px;
	height: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	transition: all 0.2s;
	border-radius: 10px;
	border: 2px solid #f3f3f3;
	box-shadow: 0px 3px 4px 0px rgba(0, 0, 0, 0.1);
}
.side-fixed-bnr-area.is-active {
	opacity: 1;
	pointer-events: all;
	visibility: visible;
	z-index: 9998;
}
.side-fixed-bnr img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.side-fixed-bnr-close {
	position: absolute;
	top: -10px;
	right: -10px;
	width: 40px;
	height: auto;
	aspect-ratio: 1 / 1;
	background: #fff;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 999px;
	overflow: hidden;
	box-shadow: 0px 3px 4px 0px rgba(0, 0, 0, 0.1);
}
.side-fixed-bnr-close::after {
	content: "";
	background-image: url("../img/common/1x/icon-close.svg");
	background-repeat: no-repeat;
	background-size: contain;
	width: 10px;
	height: auto;
	aspect-ratio: 1 / 1;
	flex-shrink: 0;
}
@media screen and (max-width: 768px) {
	.side-fixed-bnr-area {
		display: none;
	}
}

/*
----------------------------------------

hover

----------------------------------------
*/

@media screen and (min-width: 768px) {
	.header-news-bnr:hover > span {
		text-decoration: none;
	}
	.ticker-horizontal-list a:hover > span {
		color: #3797db;
	}
	.header-logo:hover a img {
		transform: scale(1.02);
	}
	.btn-round:hover {
		transform: scale(1.05);
	}
	.g-nav-list li a:hover {
		color: #3797db;
	}
	.btn-login:hover > span {
		color: #3797db;
	}
}
