@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;700&display=swap');

html {scroll-behavior: smooth; min-width: 320px;}
body {line-height: 1.8; font-size: clamp(14px, 1.6vw, 18px); background-color: #ffffff; color: #000; letter-spacing: 0.03em; font-family: 'ヒラギノ角ゴ Pro', 'Hiragino Kaku Gothic Pro', YuGothic, '游ゴシック体', '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', sans-serif;}

h1,h2,h3,h4,h5,h6 {line-height: 1.5;}
h5,h6 {font-size: inherit;}
img {max-width: 100%; height: auto; vertical-align: middle;}
a {color: #0066cc; border-bottom: solid 1px transparent; transition: all .2s;}
a:hover {border-bottom-color: #0066cc; transition: all .2s;}
i, em {font-style: normal;}
em {font-weight: bold;}
ul {list-style: none;}
ul, li dl, dt, dd {margin: 0; padding: 0;}
h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child,
p:first-child,
ul:first-child,
dl:first-child {margin-top: 0;}
p:last-child,
ul:last-child,
dl:last-child,
ul.btn:last-child {margin-bottom: 0;}

.inner_wrap {max-width: 1400px; margin: 0 auto; box-sizing: content-box; padding: 30px clamp(15px, 4vw, 40px);}
._center {display: flex; justify-content: center;}

main h2 {margin: 2em 0 1.5em; color: #1b1b57; font-feature-settings: "palt"; font-size: clamp(16px, 2vw, 32px); display: flex; justify-content: center;}

main h2 br {display: none;}@media (max-width: 767px) {
}
@media (min-width: 768px) {
main h2 {text-align: center; letter-spacing: 0.1em; margin-bottom: 2em;}
}

.wrap_a {max-width: 1200px; margin-left: auto; margin-right: auto;}
.img_wrap {margin: 2em auto; max-width: 1000px;}
@media (min-width: 1024px) {
	[class*="bgr_"] .inner_wrap {padding-top: 80px; padding-bottom: 80px;}
}

[class*="bgr_"] {position: relative;}
.bgr_a {background-color: #ffffff;}
.bgr_b {background-color: #e3eaf1;}
[class*="bgr_"]::after {content: ""; position: absolute; top: 0; width: 100%; height: 100%; z-index: -1;}
.bgr_a::after {background-color: #e3eaf1; right: 0;}
.bgr_b::after {background-color: #ffffff; left: 0;}

[class*="bgr_"]._tl {border-top-left-radius: 40px; transition: .5s;}
[class*="bgr_"]._tr {border-top-right-radius: 40px; transition: .5s;}
[class*="bgr_"]._bl {border-bottom-left-radius: 40px; transition: .5s;}
[class*="bgr_"]._br {border-bottom-right-radius: 40px; transition: .5s;}

@media (min-width: 1024px) {
[class*="bgr_"]._tl {border-top-left-radius: 100px; transition: .5s;}
[class*="bgr_"]._tr {border-top-right-radius: 100px; transition: .5s;}
[class*="bgr_"]._bl {border-bottom-left-radius: 100px; transition: .5s;}
[class*="bgr_"]._br {border-bottom-right-radius: 100px; transition: .5s;}
}

header .inner_wrap {min-height: 60px; padding-top: 0; padding-bottom: 0; display: flex; align-items: center;}
header p {width: 180px;}
@media (min-width: 640px) {
	header .inner_wrap {min-height: 80px;}
	header p {width: 230px;}
}

footer {border-top: solid 5px #006db7; margin-top: 100px; padding-bottom: 60px;}
footer .sec_corpinfo {color: #002542; background-color: #f2f4f4;}
footer .sec_corpinfo .logo {width: 50%; margin: 0; max-width: 260px; min-width: 205px;}
footer .sec_corpinfo .inner_wrap ul {padding: 2em 1em;}
footer .sec_corpinfo ._detail {padding: 2em 1em 1em; border-top: solid 1px #ccc; font-weight: bold;}
footer .sec_corpinfo ._detail br {display: none;}
footer p.copy {font-size: smaller;}
@media (min-width: 1024px) {
footer .sec_corpinfo .logo {width: initial; max-width: 320px;}
footer .sec_corpinfo ._detail br {display: inline;}
footer .sec_corpinfo .inner_wrap {display: flex; gap: 30px; justify-content: space-around;}
footer .sec_corpinfo .inner_wrap ul {padding-left: 2em; padding-bottom: 0;}
footer .sec_corpinfo ._detail {padding: 0; border: none;}
footer .sec_corpinfo .inner_wrap {padding-top: 80px; padding-bottom: 100px;}
footer {flex-direction: row; justify-content: space-between; align-items: flex-end;}
}

/* link */
.icon_blank::after {content: "別ウィンドウで開きます"; display: inline-block; white-space: nowrap; text-indent: 13em; width: 0.8em; margin: 0 0.2em; height: 0.8em; overflow: hidden; vertical-align: middle;
mask-image: url(../assets/images/icon_blank.svg); mask-size: contain; mask-repeat: no-repeat; mask-position: center; background-color: #333;}
.icon_blank:only-child::after {margin-right: 0;}

/* page top */
#totop {position: sticky; bottom: 60px; left:calc(100% - 4.5em) ; display: flex; justify-content: flex-end; z-index: 10; margin-top: 50px; width: 3.5em; height: 3.5em;}
#totop a {text-indent: 100%; line-height: 1; white-space: nowrap; overflow: hidden; position: relative; border-radius: .6em; background-color: rgba(0,0,0,0.6); border-color: rgba(255,255,255,0.4);}
#totop a::before {top: .8em; left: calc(50% - 1px); display: block; width: 0; height: 1.8em; border-left: solid 2px #fff; content:""; position: absolute;}
#totop a::after {width: 1.4em; height: 1.4em; border: solid #fff; border-width: 2px 2px 0 0; content:""; position: absolute; left: 50%; top: 50%; margin-top: -0.7em; margin-left: -0.7em; transform: rotate(-45deg);}
@media (min-width: 768px) {
#totop {bottom: 80px;}
}

/* btn */
ul.btn {margin: 1em 0; display: flex; justify-content: center; padding: 0;}
ul.btn li {width: 100%; max-width: 20em;}
ul.btn a {display: flex; color: #111; background-color: #ffffff; border: 3px solid #000; min-height: 3em; justify-content: center; align-items: center; width: 100%; border-radius: 3em; text-decoration: none; transition: all .5s;}
ul.btn._contact {font-size: larger;}
ul.btn._contact a {background-color: #ffd200; font-weight: bold; letter-spacing: 0.2em;}
ul.btn._contact a::before {content: url(../assets/images/icon_contact.svg); width: 2em; height: 1.8em; margin-right: .7em;}
ul.btn._contact a:hover,
ul.btn._contact a:focus {background-color: #fff45c; transition: all 0.5s;}

.sec_contact {background-color: #006db7; color: #ffffff; transition: .5s;}
.sec_contact .inner_wrap {padding-top: 5px; padding-bottom: 15px; position: relative; min-height: 7rem; display: flex; flex-direction: column; justify-content: center; gap: .7em;}
.sec_contact .inner_wrap > * {margin: 0;}
@media (min-width: 640px) {
.sec_contact .inner_wrap > p {letter-spacing: 0.1em;}
.sec_contact .inner_wrap::before,
.sec_contact .inner_wrap::after {content: ""; transition: all .5s; display: flex; align-items: flex-end; position: absolute; width: 20%; max-width: 220px; height: 200px; bottom: -25px; z-index: 1; background: no-repeat transparent bottom center / contain;}
.sec_contact .inner_wrap::before {left: 5%; background-image: url( "../assets/images/mv_img_com_per.png");}
.sec_contact .inner_wrap::after {right: 5%; background-image: url( "../assets/images/mv_img_sch_per.png");}
}
@media (min-width: 1024px) {
.sec_contact .inner_wrap {min-height: 10rem;}
}

#contact {position: fixed; left: 0; bottom: 0; z-index: 2; width: 100%;}
#contact.fixed .sec_contact {background-color: #000000; z-index: 10; transition: .5s;}
#contact.fixed .sec_contact .inner_wrap {height: 3.5rem; min-height: auto; padding-top: 0; padding-bottom: 0; display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 5%;}
#contact.fixed .sec_contact .inner_wrap > p {display: none;}
#contact.fixed .sec_contact ul.btn._contact {margin: 0; font-size: inherit; width: 100%;}
#contact.fixed .sec_contact ul.btn._contact li {max-width: 25em;}
#contact.fixed .sec_contact ul.btn._contact a {min-height: 2.5em; border: none;}
#contact.fixed .sec_contact ul.btn._contact a::before {width: 1.8em; height: 1.6em;}
#contact.fixed .sec_contact .inner_wrap::before,
#contact.fixed .sec_contact .inner_wrap::after {opacity: 0; transition: .5s;}
@media (min-width: 768px) {
#contact.fixed .sec_contact .inner_wrap {height: 4rem;}
#contact.fixed .sec_contact .inner_wrap > ul {width: 50%; max-width: 18em;}
#contact.fixed .sec_contact .inner_wrap > p {display: inherit; margin: 0;}
}
@media (min-width: 1024px) {
#contact.fixed .sec_contact .inner_wrap {margin-top: 5rem;}
}

/* mv */
.mv_wrap {position: relative;}
.mv_wrap::before {content: ""; width: 100%; height: 57%; max-height: 350px; position: absolute;
background: rgb(1,113,187);
background: linear-gradient(170deg, rgba(1,113,187,1) 7%, rgba(20,166,183,1) 100%);}
.mv_wrap .inner_wrap {position: relative; padding-top: 10px; padding-bottom: 10%;}
.mv_wrap .mv_tit {position: relative; display: flex; flex-direction: column; align-items: center; margin: 0 auto; padding: 9% clamp(25px, 7vw, 60px) 11%; max-width: 830px; min-height: 130px; max-height: 460px; background: url( "../assets/images/mv_tit_bg.png" ) no-repeat transparent center center / contain;}
.mv_wrap .mv_tit::before,
.mv_wrap .mv_tit::after {content: ""; position: absolute; top: 88%; width: clamp(150px, 35vw, 320px); height: 80%; z-index: 1; background: no-repeat transparent top center / contain;}
.mv_wrap .mv_tit::before { left: 0; background-image: url( "../assets/images/mv_img_com_per.png");}
.mv_wrap .mv_tit::after  {right: 0; background-image: url( "../assets/images/mv_img_sch_per.png");}

.mv_wrap .mv_tit h1 {margin: 0;}
.mv_wrap .mv_tit p {line-height: 1; margin-top: 4%;}
.mv_wrap .btn {margin-top: 100px; position: relative; z-index: 1;}
.mv_wrap .mv_tit h1,
.mv_wrap .mv_tit p {
filter: blur(10px);
opacity: 0;
animation-name: blur;
animation-delay: .5s;
animation-duration: 1s;
animation-fill-mode:forwards;
}
.mv_wrap .mv_tit p {animation-delay: 1.5s;}
@keyframes blur {
0% {opacity: 0; filter: blur(15)}
100% {opacity: 1; filter: blur(0)}
}

@media (min-width: 768px) {
.mv_wrap .btn {margin-top: 10%;}
}

@media (min-width: 1024px) {
.mv_wrap::before {height: 350px;}
.mv_wrap .inner_wrap {padding-bottom: 70px;}
.mv_wrap .inner_wrap::before,
.mv_wrap .inner_wrap::after {content: ""; position: absolute; top: -10px; width: clamp(180px, 17vw, 280px); height: 330px; z-index: 1; background: no-repeat transparent top center / contain;}
.mv_wrap .inner_wrap::before {left: 1%; background-image: url( "../assets/images/mv_img_com.png");}
.mv_wrap .inner_wrap::after  {right: 1%; background-image: url( "../assets/images/mv_img_sch.png");}
.mv_wrap .btn {margin-top: 0;}
.mv_wrap .mv_tit {padding: 100px 0 130px;}
.mv_wrap .mv_tit::before {top: 75%; left: -8vw;}
.mv_wrap .mv_tit::after  {top: 75%; right: -8vw;}
}
@media (min-width: 1440px) {
.mv_wrap .inner_wrap::before {left: 4%;}
.mv_wrap .inner_wrap::after  {right: 4%;}
.mv_wrap .mv_tit::before {top: 54%; width: 370px; left: -33%;}
.mv_wrap .mv_tit::after  {top: 54%; width: 370px; right: -33%;}
}

/* about */
dl.dl_nayami {display: flex; flex-direction: column; gap: 30px;}
dl.dl_nayami > div {position: relative; padding-top: 10em;}

dl.dl_nayami > div dt {position: absolute; top: 0; width: 50%; display: flex; align-items: center; justify-content: center; border-radius: 0.3em; font-size: larger;  color: #ffffff; background-color: #666; line-height: 1; height: 2em;}
dl.dl_nayami > div._com dt {background-color: #006db7; letter-spacing: 0.5em; padding-left: 0.5em; left: 0;}
dl.dl_nayami > div._sch dt {background-color: #1e9146; right: 0;}

dl.dl_nayami > div dt::before {content: ""; position: absolute; top: 3em; left: 0; width: 100%; height: 5em; background: no-repeat transparent bottom center / contain;}
dl.dl_nayami > div._com dt::before {background-image: url( "../assets/images/icon_com.png");}
dl.dl_nayami > div._sch dt::before {background-image: url( "../assets/images/icon_sch.png");}

dl.dl_nayami > div dt::after {content: ""; position: absolute; top: 10px; width: 100%; height: 10em; z-index: 0; background: no-repeat transparent bottom center / contain;}
dl.dl_nayami > div._com dt::after {left: 100%; background-image: url( "../assets/images/img_com_01.png");}
dl.dl_nayami > div._sch dt::after {right: 100%; background-image: url( "../assets/images/img_sch_01.png");}

dl.dl_nayami > div dd {font-size: clamp(14px, 1.6vw, 17px); margin-bottom: .8rem; padding: .8em 1.5em; min-height: 4.5em; border-radius: 1.5em; display: flex; align-items: center; line-height: 1.6; width: 100%; background-color: #ffffff; border: solid 2px #666; position: relative; z-index: 1;}
dl.dl_nayami > div dd:last-child {margin-bottom: 0;}
dl.dl_nayami > div._com dd {border-top-right-radius: 0; border-color: #006db7;}
dl.dl_nayami > div._sch dd {border-top-left-radius: 0; border-color: #1e9146;}

@media (min-width: 768px) {
dl.dl_nayami {flex-direction: row; gap: 2%;}
dl.dl_nayami > div {width: 100%;}
dl.dl_nayami > div dd {min-height: 6em; border-width: 3px;}
}
@media (min-width: 1024px) {
dl.dl_nayami {gap: 4%; max-width: 1200px; margin-left: auto; margin-right: auto;}
dl.dl_nayami > div {padding-top: 60px;}

dl.dl_nayami > div._com dt {left: auto; right: 0; max-width: 7em;}
dl.dl_nayami > div._sch dt {left: 0; right: auto; max-width: 7em;}
dl.dl_nayami > div dt::after {width: calc(100% + 30px);}
dl.dl_nayami > div._com dt::after {left: -15px; top: 8em;}
dl.dl_nayami > div._sch dt::after {left: -15px; top: 8em;}
dl.dl_nayami > div > div._item {display: flex; flex-direction: column;}
dl.dl_nayami > div._com > div {align-items: flex-start;}
dl.dl_nayami > div._sch > div {align-items: flex-end;}

dl.dl_nayami > div dd {width: 68%; max-width: 400px; margin-bottom: 2rem; text-align: center; justify-content: center; padding-left: .5em; padding-right: .5em;}
dl.dl_nayami > div._com > div dd:first-child {border-radius: 1.5em 1.5em 0; margin-left: 4%;}
dl.dl_nayami > div._com > div dd:nth-child(2) {border-radius: 1.5em 1.5em 0;}
dl.dl_nayami > div._com > div dd:last-child {margin-left: 15%;}
dl.dl_nayami > div._sch > div dd:first-child {border-radius: 1.5em 1.5em 1.5em 0; margin-right: 4%;}
dl.dl_nayami > div._sch > div dd:nth-child(2) {border-radius: 1.5em 1.5em 1.5em 0;}
dl.dl_nayami > div._sch > div dd:last-child {margin-right: 15%;}
}
@media (max-width: 1023px) {
dl.dl_nayami > div dd br {display: none;}
}

/* reason */
dl.dl_reason > div {margin-bottom: 1px; padding: 1.5em 7%; position: relative; background-color: #ffffff; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden;}
dl.dl_reason > div:nth-child(1) {border-radius: 2em 2em 0 0;}
dl.dl_reason > div:nth-child(4) {border-radius: 0 0 2em 2em;}
dl.dl_reason > div::before {width: 135px; height: 95px; content: ""; position: absolute; top: -2px; right: -8px; z-index: 0; background: url( "../assets/images/number.svg") no-repeat transparent top left / 136px 400px; overflow: hidden;}
dl.dl_reason > div:nth-child(2)::before {background-position: top -100px left;}
dl.dl_reason > div:nth-child(3)::before {background-position: top -200px left;}
dl.dl_reason > div:nth-child(4)::before {background-position: top -300px left;}
dl.dl_reason > div > * {position: relative; line-height: 1.6;}
dl.dl_reason > div dt {font-weight: bold; color: #1b1b57; display: flex; flex-direction: column; align-items: center;}
dl.dl_reason > div dt::after {content: ""; margin: 10px auto;}
dl.dl_reason > div:nth-child(1) dt::after {content: url(../assets/images/reason_img_01.png);}
dl.dl_reason > div:nth-child(2) dt::after {content: url(../assets/images/reason_img_02.png);}
dl.dl_reason > div:nth-child(3) dt::after {content: url(../assets/images/reason_img_03.png);}
dl.dl_reason > div:nth-child(4) dt::after {content: url(../assets/images/reason_img_04.png);}
@media (min-width: 768px) {
dl.dl_reason {display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; max-width: 1200px; margin-left: auto; margin-right: auto;}
dl.dl_reason > div {margin: 0; justify-content: flex-start;}
dl.dl_reason > div:nth-child(1) {border-top-right-radius: 0;}
dl.dl_reason > div:nth-child(2) {border-top-right-radius: 2em;}
dl.dl_reason > div:nth-child(3) {border-bottom-left-radius: 2em;}
dl.dl_reason > div:nth-child(4) {border-bottom-left-radius: 0;}
dl.dl_reason > div:nth-child(1)::before {left: 0; right: auto;}
dl.dl_reason > div:nth-child(3)::before {top :auto; bottom: -2px; left: 0; right: auto;}
dl.dl_reason > div:nth-child(4)::before {top: auto; bottom: -2px; left: auto;}
}

/* introduce */
dl.dl_introduce {display: flex; max-width: 1200px; margin-left: auto; margin-right: auto; position: relative;}
dl.dl_introduce > div {width: 100%; display: flex; flex-direction: column; justify-content: space-between; position: relative; z-index: 1; padding: 15px;}
dl.dl_introduce > div._com {padding-right: 0;}
dl.dl_introduce > div._sch {padding-left: 0;}

dl.dl_introduce > div::before {content: ""; width: 100%; height: 100%; background-color: #dedede; position: absolute; top: 0; z-index: -1;}
dl.dl_introduce > div > div {height: 100%; display: flex; flex-direction: column; justify-content: space-between;}

dl.dl_introduce > div._com::before {background-color: #d1e5f3; border-radius: 1em 0 0 1em; left: 0;}
dl.dl_introduce > div._sch::before {background-color: #d6ebde; border-radius: 0 1em 1em 0; right: 0;}
dl.dl_introduce > div dt {top: 0; width: 100%; display: flex; align-items: center; justify-content: center; font-size: larger; overflow: hidden; color: #ffffff; background-color: #666; line-height: 1; height: 3em; padding-right: 0.5em;}
dl.dl_introduce > div._com dt {background-color: #006db7; border-radius: .4em 0 0 .4em;  letter-spacing: 0.5em; padding-left: 0.5em;}
dl.dl_introduce > div._sch dt {background-color: #1e9146; border-radius: 0 .4em .4em 0;}

dl.dl_introduce > div dt::before {content: ""; width: 2.4em; width: clamp(40px, 10vw, 60px); height: 100%; margin-top: -0.15em; padding-bottom: 3px; margin-right: 0.5em; background: no-repeat transparent center center / contain;}
dl.dl_introduce > div._com dt::before {background-image: url( "../assets/images/icon_com.png");}
dl.dl_introduce > div._sch dt::before {background-image: url( "../assets/images/icon_sch.png");}

dl.dl_introduce > div dd {margin-top: 1.5em; line-height: 1.6; font-size: smaller;}
dl.dl_introduce > div._com dd:first-child {padding-right: 20px;}
dl.dl_introduce > div._sch dd:first-child {padding-left: 20px;}
dl.dl_introduce > div._com dd._img {text-align: right;}

@media (min-width: 1024px) {
dl.dl_introduce > div::before {width: calc(100% - 20px); border-radius: 1em !important;}
dl.dl_introduce > div {padding: 20px 20px 40px 20px;}
dl.dl_introduce > div dt {width: calc(100% - 40px); border-radius: .4em !important;}
dl.dl_introduce > div._com dt {margin-right: 40px;}
dl.dl_introduce > div._sch dt {margin-left: 40px;}
dl.dl_introduce > div dd {font-size: inherit;}
dl.dl_introduce > div._com dd:first-child {padding: 0 60px 0 20px;}
dl.dl_introduce > div._sch dd:first-child {padding: 0 20px 0 60px;}
dl.dl_introduce > div._com dd._img {padding-left: 5%;}
dl.dl_introduce > div._sch dd._img {padding-right: 5%;}
}

/* movie */
#movie { margin-top: 0; }
#movie .inner_wrap { text-align:center; }
@media (min-width: 768px) {
	#movie .inner_wrap {padding-top: 50px; padding-bottom: 50px;}
}
#movie h2 { display: inline-block; padding-left: 61px; background:url("../assets/images/icon_movie.png") left center no-repeat; background-size:contain; }
@media (max-width: 639px) {
	#movie h2 { padding-left: 63px; }
}
#movie .flexBox { display:flex; justify-content:space-between; }
#movie button { width: 32%; padding: 0; box-sizing: border-box; cursor:pointer; }
@media (max-width: 767px) {
	#movie .flexBox { display:block; }
	#movie button { width:100%; margin-top:20px; }
}

/* module */
.fs_sm {font-size: smaller !important;}
.fs_lg {font-size: larger !important;}
@media (min-width: 1024px) {
	.pc_fs_lg {font-size: larger !important;}
}

.fw_b {font-weight: bold;}
.fw_n {font-weight: normal;}
.d_ib {display: inline-block !important;}
.ta_c {text-align: center !important;}
.lh_n {line-height: normal;}

.m_0  {margin: 0 !important;}
.mt_0 {margin-top: 0 !important;}
.mb_0 {margin-bottom: 0 !important;}

.c_red {color: #c00 !important;}
br.pc {display: none !important;}

@media (min-width: 640px) {
	.tb_d_ib {display: inline-block !important;}
}
@media (max-width: 639px) {
	.sp_d_ib {display: inline-block !important;}
}

@media (min-width: 1024px) {
	.pc_ta_c {text-align: center !important;}
	br.pc {display: inline !important;}
}

