/* -----------------------------------------------
= reset
----------------------------------------------- */
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
body, h1, h2, h3, h4, h5, h6, p,
dl, dt, dd, ol, ul, li,
figure, figcaption {
	margin: 0;
	padding: 0;
	font-size: 1em;
	font-weight: 500;
}
ol, ul {
	list-style-type: "";
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
th, td {
	text-align: left;
	vertical-align: middle;
}
a {
	color: inherit;
	text-decoration: none;
}
a img {
	border: none;
}
img {
	width: 100%;
	height: auto;
	vertical-align: bottom;
}
button,
textarea {
	margin: 0;
	padding: 0;
	color: inherit;
	border: none;
	border-radius: 0;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	font: inherit;
}
button {
	text-align: left;
	cursor: pointer;
	letter-spacing: .02em;
}
input {
	border: none;
	border-radius: 0;
	font: inherit;
}
select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	color: inherit;
	cursor: pointer;
	font: inherit;
}
iframe {
	border: none;
}
/* -----------------------------------------------
= variable
----------------------------------------------- */
:root {
	--black: #2b2b2b;
	--bg-blue: #e7fdff;
	--light-blue: #8cdcfa;
	--blue: #00aff0;
	--dark-blue: #0069fa;
	--jp: "tbudrgothic-std", sans-serif;
	--en: "League Spartan", sans-serif;
	--yugo: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}
/* -----------------------------------------------
= animation
----------------------------------------------- */
.js-inview {
	opacity: 0;
	transition: .8s opacity .4s;
}
.js-inview.is-show {
	opacity: 1;
}
/* -----------------------------------------------
= base
----------------------------------------------- */
body {
	color: var(--black);
	font-family: var(--yugo);
	font-weight: 500;
	line-height: 1.5;
}
.is-pc {
	display: none;
}
@media print, screen and (min-width: 768px) {/* PC */
.is-pc {
	display: block;
}
.is-sp {
	display: none;
}
}/* @media */
/* -----------------------------------------------
= header
----------------------------------------------- */
.header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
	min-height: 60px;
	background: #fff;
}
.header .site-name {
	padding: 14px 0 0 10px;
}
.header .site-name a {
	display: inline-flex;
	align-items: center;
	gap: 0 10px;
}
.header .site-name a img {
	width: 106px;
}
.header .site-name a span {
	color: var(--blue);
	font-family: var(--jp);
	font-size: calc(1.2rem / 1.6);
}
@media print, screen and (min-width: 768px) {/* PC */
.header {
	display: flex;
	align-items: center;
	gap: 0 min(40px, calc(40 * 1440 * 100vw));
	min-height: 70px;
}
.header .site-name {
	padding: 0 0 0 30px;
}
.header .site-name a {
	gap: 0 11px;
}
.header .site-name a img {
	width: 146px;
}
.header .site-name a span {
	font-size: calc(1.6rem / 1.6);
}
}/* @media */
/* -----------------------------------------------
= nav
----------------------------------------------- */
.btn-nav {
	position: absolute;
	top: 19px;
	right: 14px;
	z-index: 1;
	width: 32px;
	height: 22px;
	background: url(../img/shared/btn-nav.svg) no-repeat 50% / cover;
}
.btn-nav[aria-expanded="true"] {
	background: url(../img/shared/btn-nav-close.svg) no-repeat 50% / cover;
}
.nav {
	position: fixed;
	top: 60px;
	left: 0;
	height: calc(100svh - 60px);
	z-index: 15;
	width: 100%;
	height: 100%;
	opacity: 0;
	pointer-events: none;
	transition: opacity .4s;
}
.nav[aria-hidden="false"] {
	opacity: 1;
	pointer-events: auto;
}
.nav-inner {
	height: calc(100svh - 60px);
	background: var(--bg-blue);
	font-family: var(--jp);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.nav-inner > ul {
	padding: 40px 30px 160px;
}
.nav-inner > ul > li + li {
	margin-top: 40px;
}
.nav-inner > ul > li > a {
	display: inline-block;
	margin-bottom: 10px;
	color: var(--blue);
}
.nav-inner > ul > li > a span {
	display: block;
}
.nav-inner > ul > li > a span:first-child {
	font-size: calc(1.2rem / 1.6);
	letter-spacing: .025em;
}
.nav-inner > ul > li > a span:last-child {
	font-size: calc(1.8rem / 1.6);
	letter-spacing: .05em;
}
.nav-inner ul li ul li {
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
	letter-spacing: .025em;
}
.nav-inner ul li ul li + li {
	margin-top: 10px;
}
.nav-inner ul li ul li a {
	display: inline-block;
	position: relative;
	min-width: 115px;
	padding: 5px 40px 5px 15px;
	background: #fff;
	border: 1px solid rgba(0,105,250,0.3);
	border-radius: 3em;
}
.nav-inner ul li ul li a span {
	display: inline-block;
	position: relative;
	z-index: 2;
}
.nav-inner ul li ul li a .shape {
	position: absolute;
	top: calc(50% - 12px);
	right: 8px;
	width: 24px;
	height: 24px;
	z-index: 1;
	fill: var(--dark-blue);
}
.nav-inner ul li ul li a::after {
	content: "";
	position: absolute;
	top: calc(50% - 12px);
	right: 8px;
	z-index: 1;
	width: 24px;
	height: 24px;
	background: url(../img/index/index-icon-arrow02.svg) no-repeat 50% / 100% auto;
}
.nav-inner ul li ul li a.disabled {
	color: #adadad;
	border-color: #ddd;
	background: url(../img/index/index-icon-arrow01.svg) no-repeat right 8px top 50% / 24px auto;
	filter: grayscale(100);
}
.nav-inner ul li ul li a[target="_blank"] span {
	display: inline-block;
	padding-right: 24px;
	background: url(../img/shared/icon-external.svg) no-repeat 100% 5px / 13px auto;
}
@media print, screen and (min-width: 768px) {/* PC */
.btn-nav {
	top: 24px;
}
.nav {
	top: 70px;
	height: calc(100svh - 70px);
}
.nav-inner > ul {
	display: grid;
	grid-template-rows: repeat(2, auto);
	grid-auto-flow: column;
	gap: 40px 30px;
}
.nav-inner > ul > li + li {
	margin-top: 0;
}
.nav-inner ul li ul li a[target="_blank"] span {
	background-size: 14px auto;
}
}/* @media */
@media print, screen and (min-width: 1380px) {/* widePC */
.btn-nav {
	display: none;
}
.nav {
	flex: 1;
	position: static;
	width: auto;
	height: auto;
	opacity: 1;
	pointer-events: auto;
}
.nav-inner {
	max-width: 700px;
	margin-left: auto;
	height: auto;
	background: transparent;
	overflow-y: visible;
}
.nav-inner > ul {
	display: flex;
	gap: 0 30px;
	padding: 0;
}
.nav-inner > ul > li {
	position: relative;
	width: 100%;
	min-height: 70px;
}
.nav-inner > ul > li > a {
	position: relative;
	width: 100%;
	height: 100%;
	margin-bottom: 0;
}
.nav-inner > ul > li > a span {
	position: absolute;
	top: calc(50% - .5em);
	left: 0;
	width: 100%;
	line-height: 1;
	text-align: center;
	white-space: nowrap;
}
.nav-inner > ul > li > a span:first-child {
	color: var(--black);
	font-size: calc(1.6rem / 1.6);
	letter-spacing: 0;
}
.nav-inner > ul > li > a span:last-child {
	color: var(--dark-blue);
	font-size: calc(1.4rem / 1.6);
	letter-spacing: .025em;
	opacity: 0;
}
.nav-inner ul li ul {
	position: absolute;
	top: 70px;
	left: 0;
	width: 300%;
	padding: 18px;
	background: #fff;
	border: 1px solid var(--blue);
	border-radius: 5px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .3s;
}
.nav-inner > ul > li:hover > ul,
.nav-inner > ul > li:focus-within > ul {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.nav-inner ul li ul li {
	margin-block: 5px;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
	letter-spacing: .025em;
}
.nav-inner ul li ul li + li {
	margin-top: 0;
}
.nav-inner ul li ul li a {
	min-width: 0;
	padding: 0;
	background: transparent;
	border: none;
}
.nav-inner ul li ul li a .shape {
	display: none;
}
.nav-inner ul li ul li a::before {
	content: "-";
	display: inline-block;
}
.nav-inner ul li ul li a::after {
	display: none;
}
.nav-inner ul li ul li a.disabled {
	background: transparent;
}
.nav-inner ul li ul li a.disabled::before {
	margin-right: 3px;
}
}/* @media */
@media (hover: hover) {
.btn-nav {
	transition: opacity .3s;
}
.btn-nav:hover {
	opacity: .6;
}
.nav-inner ul li ul li a {
	transition: color .3s;
	overflow: hidden;
}
.nav-inner ul li ul li a:hover {
	color: #fff;
}
.nav-inner ul li ul li a .shape {
	transition: transform .4s cubic-bezier(.4,0,.2,1);
}
.nav-inner ul li ul li a:hover .shape {
	transform: scale(18);
}
.nav-inner ul li ul li a.disabled:hover {
	color: #adadad;
}
.nav-inner ul li ul li a[target="_blank"]:hover span {
	background-image: url(../img/shared/icon-external-white.svg);
}
}/* @media */
@media (hover: hover) and (min-width: 1380px) {
.nav-inner > ul > li > a span {
	transition: opacity .3s;
}
.nav-inner > ul > li > a:hover span:first-child {
	opacity: 0;
}
.nav-inner > ul > li > a:hover span:last-child {
	opacity: 1;
}
.nav-inner ul li ul li a:hover {
	color: var(--dark-blue);
}
.nav-inner ul li ul li a[target="_blank"]:hover span {
	background-image: url(../img/shared/icon-external.svg);
}
}/* @media */
/* -----------------------------------------------
= fix-link
----------------------------------------------- */
.fix-link {
	position: fixed;
	left: 0;
	bottom: 0;
	z-index: 20;
	width: 100%;
	background: #fff;
}
.fix-link ul {
	display: flex;
	gap: 0 5px;
	padding: 4px 10px;
}
.fix-link li {
	width: 100%;
}
.fix-link li a {
	display: grid;
	place-content: center;
	min-height: 52px;
	color: #fff;
	border-radius: 5px;
	font-family: var(--jp);
	font-size: calc(1.6rem / 1.6);
	line-height: 1.3;
	text-align: center;
	box-sizing: border-box;
}
.fix-link li a span {
	display: block;
}
.fix-link li a span:first-child {
	font-size: calc(1.4rem / 1.6);
	letter-spacing: .01em;
}
.fix-link li a span:last-child {
	font-size: calc(1.4rem / 1.6);
}
.fix-link li:nth-child(1) a {
	color: var(--dark-blue);
	border: 2px solid var(--dark-blue);
}
.fix-link li:nth-child(1) a span:last-child {
	letter-spacing: .03em;
}
.fix-link li:nth-child(2) a {
	background: var(--dark-blue);
	border: 2px solid var(--dark-blue);
}
.fix-link li:nth-child(2) a span:last-child {
	letter-spacing: -.025em;
}
.fix-link li:nth-child(3) a {
	background: var(--blue);
	border: 2px solid var(--blue);
}
.fix-link li:nth-child(3) a span:last-child {
	letter-spacing: -.025em;
}
@media print, screen and (min-width: 768px) {/* PC */
.fix-link {
	position: static;
	width: auto;
	margin-inline: auto 56px;
}
.fix-link ul {
	gap: 0 4px;
	padding: 5px 4px;
}
.fix-link li {
	width: 130px;
}
.fix-link li a {
	min-height: 60px;
}
}/* @media */
@media print, screen and (min-width: 1380px) {/* widePC */
.fix-link {
	margin-right: 0;
}
}/* @media */
@media (hover: hover) {
.fix-link li a {
	transition: .3s;
}
.fix-link li:nth-child(1) a:hover {
	color: #fff;
	background: var(--dark-blue);
}
.fix-link li:nth-child(2) a:hover {
	color: var(--dark-blue);
	background: #fff;
}
.fix-link li:nth-child(3) a:hover {
	color: var(--blue);
	background: #fff;
}
}/* @media */
/* -----------------------------------------------
= main
----------------------------------------------- */
.main {
	margin-top: 60px;
	scroll-margin-top: 60px;
}
@media print, screen and (min-width: 768px) {/* PC */
.main {
	margin-top: 70px;
	scroll-margin-top: 70px;
}
}/* @media */
/* -----------------------------------------------
= footer
----------------------------------------------- */
.footer {
	font-family: var(--jp);
}
.footer .inner {
	position: relative;
	z-index: 1;
	padding: 40px 30px 30px;
}
.footer .inner::before,
.footer .inner::after {
	content: "";
	position: absolute;
	left: 0;
	z-index: -1;
	width: 100%;
}
.footer .inner::before {
	top: 0;
	height: calc(100% - 121px);
	background: var(--bg-blue);
}
.footer .inner::after {
	bottom: 0;
	height: 121px;
	background: url(../img/shared/bg-footer.svg) no-repeat 50% 100% / 100% auto;
}
.footer .menu {
	margin-bottom: 40px;
}
.footer .menu ul li + li {
	margin-top: 40px;
}
.footer .menu p {
	margin-bottom: 10px;
	color: var(--blue);
}
.footer .menu p span {
	display: block;
}
.footer .menu p span:first-child {
	font-size: calc(1.2rem / 1.6);
	letter-spacing: .025em;
}
.footer .menu p span:last-child {
	font-size: calc(1.8rem / 1.6);
	letter-spacing: .05em;
}
.footer .menu ul li ul li {
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
	letter-spacing: .025em;
}
.footer .menu ul li ul li + li {
	margin-top: 10px;
}
.footer .menu ul li ul li a {
	display: inline-block;
	position: relative;
	min-width: 100px;
	padding: 5px 35px 5px 10px;
	background: #fff;
	border: 1px solid rgba(0,105,250,0.3);
	border-radius: 3em;
}
.footer .menu ul li ul li a span {
	display: inline-block;
	position: relative;
	z-index: 2;
}
.footer .menu ul li ul li a .shape {
	position: absolute;
	top: calc(50% - 12px);
	right: 8px;
	width: 24px;
	height: 24px;
	z-index: 1;
	fill: var(--dark-blue);
}
.footer .menu ul li ul li a::after {
	content: "";
	position: absolute;
	top: calc(50% - 12px);
	right: 8px;
	z-index: 1;
	width: 24px;
	height: 24px;
	background: url(../img/index/index-icon-arrow02.svg) no-repeat 50% / 100% auto;
}
.footer .menu ul li ul li a.disabled {
	color: #adadad;
	border-color: #ddd;
	background: url(../img/index/index-icon-arrow01.svg) no-repeat right 8px top 50% / 24px auto;
	filter: grayscale(100);
}
.footer .menu ul li ul li a[target="_blank"] span {
	display: inline-block;
	padding-right: 22px;
	background: url(../img/shared/icon-external.svg) no-repeat 100% 4px / 13px auto;
}
.footer .contact {
	margin-bottom: 30px;
}
.footer .contact-title {
	margin-bottom: 10px;
	color: var(--blue);
	font-size: calc(1.5rem / 1.6);
	letter-spacing: .025em;
}
.footer .contact-text {
	margin-bottom: 10px;
	font-size: calc(1.4rem / 1.6);
	letter-spacing: .025em;
}
.footer .contact-detail {
	font-size: calc(1.2rem / 1.6);
	line-height: calc(22 / 12);
	letter-spacing: .025em;
}
.footer .link {
	margin-bottom: 10px;
}
.footer .link li + li {
	margin-top: 10px;
}
.footer .link a[target="_blank"] {
	display: inline-block;
	padding-right: 27px;
	background: url(../img/shared/icon-external.svg) no-repeat 100% 4px / 13px auto;
}
.footer .link a {
	color: #6b6b6b;
	letter-spacing: .025em;
}
.footer .link span {
	display: block;
}
.footer .link span:first-child {
	font-size: calc(1.4rem / 1.6);
}
.footer .link span:last-child {
	font-size: calc(1rem / 1.6);
}
.footer .sns {
	display: flex;
	align-items: center;
	gap: 30px;
}
.footer .sns li img {
	width: 18px;
}
.footer .sns li:last-child img {
	width: 21px;
}
.footer .sub {
	padding: 20px 20px 70px;
}
.footer .copyright {
	font-size: calc(1.1rem / 1.6);
	text-align: center;
}
.footer .page-top {
	position: fixed;
	right: 20px;
	bottom: 80px;
	z-index: 5;
	width: 43px;
	height: 43px;
	opacity: 0;
	transition: opacity .3s;
}
.footer .page-top.is-show {
	opacity: 1;
}
@media print, screen and (min-width: 768px) {/* PC */
.footer .inner {
	display: flex;
	justify-content: center;
	gap: 0 calc(144 / 1080 * 100%);
	padding: 63px 30px;
}
.footer .menu {
	order: 2;
	margin-bottom: 0;
}
.footer .menu > ul {
	display: grid;
	grid-template-rows: repeat(3, auto);
	grid-auto-flow: column;
	gap: 30px 80px;
}
.footer .menu ul li + li {
	margin-top: 0;
}
.footer .menu p span:first-child {
	font-size: calc(1.4rem / 1.6);
}
.footer .menu ul li ul li {
	font-size: calc(1.6rem / 1.6);
	line-height: calc(24 / 16);
}
.footer .menu ul li ul li + li {
	margin-top: 0;
}
.footer .menu ul li ul li a {
	min-width: 0;
	padding: 0;
	background: transparent;
	border: none;
}
.footer .menu ul li ul li a .shape {
	display: none;
}
.footer .menu ul li ul li a::before {
	content: "-";
	display: inline-block;
}
.footer .menu ul li ul li a::after {
	display: none;
}
.footer .menu ul li ul li a.disabled {
	background: transparent;
}
.footer .menu ul li ul li a.disabled::before {
	margin-right: 3px;
}
.footer .menu ul li ul li a[target="_blank"] span {
	background-size: 14px auto;
}
.footer .set {
	order: 1;
}
.footer .catch-copy {
	margin-bottom: 74px;
	width: min(404px, calc(404 / 1440 * 100vw));
}
.footer .contact {
	margin-bottom: 35px;
}
.footer .contact-title {
	margin-bottom: 10px;
	font-size: calc(1.6rem / 1.6);
}
.footer .contact-text {
	margin-bottom: 10px;
}
.footer .contact-detail {
	font-size: calc(1.3rem / 1.6);
	line-height: calc(23 / 13);
}
.footer .link {
	display: flex;
	gap: 0 24px;
	margin-bottom: 25px;
}
.footer .link li + li {
	margin-top: 0;
}
.footer .link a[target="_blank"] {
	background-size: 14px auto;
}
.footer .link span:first-child {
	font-size: calc(1.6rem / 1.6);
}
.footer .link span:last-child {
	font-size: calc(1.1rem / 1.6);
}
.footer .sns li img {
	width: 20px;
}
.footer .sns li:last-child img {
	width: 23px;
}
.footer .sub {
	position: relative;
	max-width: 1240px;
	margin-inline: auto;
	padding: 25px 30px;
}
.footer .sub .logo {
	position: absolute;
	left: 30px;
	bottom: 25px;
	width: 146px;
}
.footer .page-top {
	right: 30px;
	bottom: 30px;
	width: 52px;
	height: 52px;
}
}/* @media */
@media print, screen and (max-width: 1023px) and (min-width: 768px) {/* TABLET */
.footer .menu > ul {
	display: block;
}
.footer .menu > ul > li + li {
	margin-top: 30px;
}
.footer .link {
	display: block;
}
.footer .link li + li {
	margin-top: 10px;
}
}/* @media */
@media (hover: hover) {
.footer a {
	transition: color .3s;
}
.footer a:hover {
	color: var(--dark-blue);
}
.footer .menu ul li ul li a {
	overflow: hidden;
}
.footer .menu ul li ul li a:hover {
	color: #fff;
}
.footer .menu ul li ul li a .shape {
	transition: transform .4s cubic-bezier(.4,0,.2,1);
}
.footer .menu ul li ul li a:hover .shape {
	transform: scale(18);
}
.footer .menu ul li a.disabled:hover {
	color: var(--blue);
}
.footer .menu ul li ul li a[target="_blank"]:hover span {
	background-image: url(../img/shared/icon-external-white.svg);
}
.footer .menu ul li ul li a.disabled:hover {
	color: #adadad;
}
.footer .sns a img {
	transition: opacity .3s;
}
.footer .sns a:hover img {
	opacity: .8;
}
.footer .page-top {
	transition: opacity .3s;
}
.footer .page-top:hover {
	opacity: .8;
}
}/* @media */
@media (hover: hover) and (min-width: 768px) {
.footer .menu ul li ul li a:hover {
	color: var(--dark-blue);
}
.footer .menu ul li ul li a[target="_blank"]:hover span {
	background-image: url(../img/shared/icon-external.svg);
}
}/* @media */
/* -----------------------------------------------
= btn-entry-career
----------------------------------------------- */
.btn-entry-career {
	max-width: 310px;
	margin-inline: auto;
}
.btn-entry-career a {
	display: block;
	padding: 16px;
	color: #fff;
	background: url(../img/index/index-icon-btn-arrow.svg) no-repeat right 25px top 50% / 6px auto var(--dark-blue);
	border-radius: 6px;
	line-height: 1.3;
	text-align: center;
}
.btn-entry-career a span {
	display: block;
	font-family: var(--jp);
}
.btn-entry-career a span:first-child {
	font-size: calc(1.6rem / 1.6);
	letter-spacing: .05em;
}
.btn-entry-career a span:last-child {
	font-size: calc(1.4rem / 1.6);
	letter-spacing: -.025em;
}
@media print, screen and (min-width: 768px) {/* PC */
.btn-entry-career {
	max-width: 360px;
}
.btn-entry-career a {
	padding: 22px;
	background-position: right 30px top 50%;
	background-size: 8px auto;
	border: 1px solid transparent;
	border-radius: 10px;
}
.btn-entry-career a span:first-child {
	font-size: calc(2.6rem / 1.6);
}
.btn-entry-career a span:last-child {
	font-size: calc(2.4rem / 1.6);
}
}/* @media */
@media (hover:hover) {
.btn-entry-career a {
	transition: .3s;
}
.btn-entry-career a:hover {
	color: var(--dark-blue);
	background-color: #fff;
	border: 1px solid var(--dark-blue);
}
}/* @media */
/* -----------------------------------------------
= modal
----------------------------------------------- */
.modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s;
}
.modal.is-active {
	opacity: 1;
	visibility: visible;
}
.modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.6);
	cursor: pointer;
}
.modal-content {
	position: relative;
	z-index: 1;
	width: min(90%, 960px);
	transform: translateY(20px);
	transition: transform .3s;
}
.modal.is-active .modal-content {
	transform: translateY(0);
}
.modal-close {
	position: absolute;
	top: -15px;
	right: -15px;
	z-index: 2;
	width: 30px;
	height: 30px;
}
.modal-content .inner-scroll {
	position: relative;
	max-height: 80vh;
	padding: 15px;
	border-radius: 5px;
	background: #fff;
	overflow-y: auto;
}
@media print, screen and (min-width: 768px) {/* PC */
.modal-content .inner-scroll {
	padding: 40px;
	border-radius: 10px;
}
.modal-close {
	top: -20px;
	right: -20px;
	width: 40px;
	height: 40px;
}
}/* @media */
