@charset "utf-8";

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

	グローバル

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

html { overscroll-behavior: none;}
body { min-width: 0px; font-size: 0.9em;}

.ta_right-s_center { text-align: center;}
.ta_left-s_center { text-align: center;}
.ta_center-s_left { text-align: left;}
.ta_left-s_right { text-align: right;}

.radius05 { border-radius: 1.5em;}

.hidden_s { display: none !important;}

/* margin */
.mb40-20 { margin-bottom: 20px !important;}
.mb60-30, .mb50-30 { margin-bottom: 30px !important;}
.mb80-40 { margin-bottom: 40px !important;}
.mb100-60 { margin-bottom: 60px !important;}
.mb120-60 { margin-bottom: 60px !important;}
.mb160-80 { margin-bottom: 80px !important;}

/* ------------------------
	ヘッダー
------------------------ */

body { padding-top: 50px;}

.header, .sp-navi .logo { min-width: initial; display: block; background: #fff; padding: 0 60px 0 1em; font-size: 1em; height: 50px; line-height: 50px;}
.header h1 { width: auto;}
.header h1 img, .sp-navi .logo img { width: auto; vertical-align: middle; max-height: 40px;}


/* ------------------------
	グローバルナビ
------------------------ */

/* ハンバーガーメニュー */
.humberger {
	background: linear-gradient(to right, #00B4ED 0%, #0080D9 50%, #013993 100%);
	cursor: pointer;
	display: block;
	position: fixed;
	top: 5px;
	right: 5px;
	width: 40px;
	height: 40px;
	border-radius: 100%;
	z-index: 10000001;
}
.humberger span {
	background: #fff;
	position: absolute;
	left: 9px;
	width: 22px;
	height: 1px;
	transition: 0.4s;
}
.humberger span:nth-of-type(1) { top: 12px;}
.humberger span:nth-of-type(2) { top: 19px;}
.humberger span:nth-of-type(3) { top: 26px;}
.is-open .humberger span:nth-of-type(1) { transform: translateY(7px) rotate(-45deg);}
.is-open .humberger span:nth-of-type(2) { opacity: 0;}
.is-open .humberger span:nth-of-type(3) { transform: translateY(-7px) rotate(45deg);}

/* ナビ本体 */
.sp-navi { -webkit-text-size-adjust: 100%;}
.sp-navi.is-open .sp-navi-inner {
	opacity: 1;
	visibility: visible;
	z-index: 10000000;
}
.sp-navi .sp-navi-inner {
	background: #F0F8FF;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0px;
	height: 100%;
	width: 100%;
	transition: .5s;
}

.sp-navi .box_inner { padding: 1em 2em 3em; font-size: min(5.5vw,1.5em);}
.sp-navi .navi-main > li { border-bottom: solid 1px #A8AFBB; padding: 0.8em 0;}
.sp-navi a { font-weight: bold; color: #1E3255;}
.sp-navi .aco { cursor: pointer; position: relative;}
.sp-navi .aco:after { content: ""; display: block; position: absolute; top: 1.2em; left: 9em; width: 1em; height: 1em; background: url("../images/common/ico_plus.svg") no-repeat center center; background-size: 100% auto; color: #1E3255;}
.sp-navi .aco.open:after { background-image: url("../images/common/ico_minus.svg");}
.sp-navi .aco ul { display: none; padding-top: 0.3em;}
.sp-navi .aco ul li { position: relative; padding: 0 0 0.1em 1.8em; font-size: 0.8em; line-height: 1.4;}
.sp-navi .aco ul li:not(:last-child) { margin-bottom: 0.5em;}
.sp-navi .aco ul li:before { content: ""; position: absolute; width: 0.7em; height: 1px; background: #AF1F24; left: 0.5em; top: 50%;}
.sp-navi .aco ul li:before {
  content: "";
  position: absolute;
  width: 0.7em;
  height: 0.7em;
  top: 0.6em;
  left: 0.6em;
  border-radius: 100%;
  padding: 2px; /* ボーダーの太さ */
  background: linear-gradient(to right, #00B4ED, #013690);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.sp-navi a.link { background-image: url("../images/common/ico_link_blue.svg");}
.sp-navi .btn_area a { font-size: 1.15em; margin: auto;}



/* ------------------------
	フッター
------------------------ */

.footer { display: block; margin-bottom: 10px !important;}
.footer .logo { max-width: 150px; margin: 0 auto 30px;}
.footer .text_area { display: table; margin: auto;}
.footer_nav { justify-content: center;}


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

	トップページ

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

.top_slider { aspect-ratio: 860 / 940; margin: 0; border-radius: 0;}
.top_slider02 > li { flex: 0 0 calc((100% - 2em) / 3); border-radius: 1.3em;}
.top_youtube .iframe_wrap { border-radius: 1.5em;}

.top_ttl_box { display: block;}
.top_ttl_box h2 { font-size: min(9vw,1.85em);}
.top_ttl_box h2.fo_poppin { font-size: 2.8em;}
.top_ttl_box > p { margin: 0.5em 0 0;}

.top_bg01 { background-size: 180% auto; padding-bottom: 15%;}

.top_sec01 .box01 { display: block;}
.top_sec01 .box01 h2 { width: auto; font-size: min(5vw,2em);}
.top_sec01 .box01 figure { margin: -0.6em 35% -1em 0;}
.top_sec01 .text01 { font-size: 0.8em;}

.top_sec01 .img03 { width: 14%; left: 3%; bottom: -10%;}
.top_sec01 .img04 { width: 27%; right: 6%; top: 32%;}
.top_sec01 .img05 { width: 14%; right: 3%; bottom: -12%;}

.top_sec02:before { height: 80%;}
.top_sec02 .img_box figure:nth-child(2) { margin: 7% 0 0 -5%;}
.top_sec02 .box01.fo125 { font-size: 1.05em !important; gap: 5%;}

.top_sec03 { padding: 18% 0 60px;}
.top_sec03:before { border-top-right-radius: 2em; border-bottom-right-radius: 2em;}
.top_sec03 .box01 { flex-flow: column; gap: 30px;}
.top_sec03 .box01 section { background-size: 120px auto; width: 100%; border-radius: 2em; padding: 30px; min-height: initial;}
.top_sec03 .box01 section h3 { font-size: 2em; max-width: initial;}

.top_sec03 .box02.fo125 { font-size: 1.05em !important; display: block;}
.top_sec03 .box02 .text01 { writing-mode: horizontal-tb; line-height: 1.6; font-size: min(8vw,2em); margin: 0px 0 20px;}

.top_sec04:before { background-size: auto 100%; height: 200px; top: -60px; right: 45%;}
.top_sec04 .img_box figure:first-child img { border-top-left-radius: 1.5em; border-bottom-left-radius: 1.5em;}
.top_sec04 .img_box figure:last-child img { border-top-right-radius: 1.5em; border-bottom-right-radius: 1.5em;}
.top_sec04 section:nth-of-type(odd) .box01 { margin: 0 !important;}
.top_sec04 .box01:before { top: -30px; width: auto; left: -15px !important; right: -15px !important; background-position: 50% top;}
.top_sec04 .box01 { display: block; margin: 0 !important}
.top_sec04 .box01 .ttl_box { font-size: 1.8em; margin: 0 auto 20px;}
.top_sec04 .box01 .ttl_box h3 { font-size: 1.4em;}
.top_sec04 .box01 .ttl_box h3:before { top: -30px;}

.top_sec05 { border-radius: 3em; padding: 60px 0;}
.top_sec05 .box01 { display: block; margin: -30px 0 30px;}
.top_sec05 .box01 .text01 { writing-mode: horizontal-tb; font-size: min(9vw,2em); line-height: 1.6; margin-bottom: 20px;}
.top_sec05 .list01 { flex-wrap: wrap; justify-content: center; gap: 35px 4%; font-size: min(2.8vw,1.15em); margin-bottom: 0 !important;}
.top_sec05 .list01:nth-of-type(1) { margin-bottom: 35px !important;}
.top_sec05 .list01 li { margin: 0 !important; max-width: 300px; width: 48%;}

.top_sec06 { padding: 60px 0; border-bottom-left-radius: 3em; border-bottom-right-radius: 3em;}
.top_sec06 .aco_sec h3 { font-size: 2em; margin-top: -20px;}
.top_sec06 .aco_sec .box_inner { margin-top: -1.5em; padding: 2em 20px 20px;}
.top_sec06 th, .top_sec06 td { padding: 1em 0; vertical-align: top;}
.top_sec06 th { padding-left: 0.5em; width: 10em;}

.top_btn { padding: 70px 0px;}
.top_btn h2 { font-size: min(8vw,2.3em);}


@media only screen and (max-width: 640px) {
  .top_sec01 .list01 { flex-wrap: wrap; justify-content: center; gap: 0 1em;}
  .top_sec01 .list01 li { width: calc((100% - 2em) / 3);}
  .top_sec01 .img03 { width: 19%; left: 6%; bottom: -5%;}
  .top_sec01 .img04 { top: 20%;}
  .top_sec01 .img05 { width: 20%; right: 6%; bottom: -8%;}
  
  .top_ttl_box h2 .hidden_s { display: inline !important;}

  .top_sec02 .box01 { display: block;}
  .top_sec02 .box01 .text01 { writing-mode: horizontal-tb; line-height: 1.6; font-size: min(8vw,2em); margin: 20px 0;}
  .top_sec04 .img_box:before { height: 40%;}
}

@media only screen and (max-width: 480px) {
  .top_sec03 .box01 section h3 { max-width: 7.5em;}

  .top_sec04 .img_box { flex-flow: column;}
  .top_sec04 .img_box figure:first-child img { border-top-left-radius: 1.5em; border-top-right-radius: 1.5em; border-bottom-left-radius: 0;}
  .top_sec04 .img_box figure:last-child img { border-top-right-radius: 0; border-bottom-left-radius: 1.5em; border-bottom-right-radius: 1.5em;}
  
  .top_sec05 .box01 .text01 .hidden_s { display: inline !important;}
  
  .top_sec06 table, .top_sec06 tbody, .top_sec06 tr, .top_sec06 th, .top_sec06 td { display: block; width: 100%;}
  .top_sec06 th { padding-bottom: 0.5em;}
  .top_sec06 td { padding: 0 1em 1em;}
}

@media only screen and (max-width: 380px) {
  .top_sec01 .img04 { top: 17%;}
}


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

	下層ページ

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

/* ------------------------
	interview
------------------------ */

.under_btn { padding: 60px 0;}

.int_head { font-size: min(2vw,1em);}
.int_head figure .pos_ab { top: 34%;}
.int_head h2 { font-size: 1.6em; padding: 0.7em 1em;}
.int_head .box03 { width: 15em;}

.int_bg { padding: 60px 0;}
.int_bg:before { width: 60px;}

.int_box { display: block;}
.int_box .box_inner { width: auto; margin-bottom: 30px;}
.int_box h3 { font-size: min(6.5vw,2em);}

.int_sec01 { padding-top: 80px;}

.int_sec04 { border-top-left-radius: 2em; border-top-right-radius: 2em; padding: 60px 10px;}
.int_box02 { display: block;}
.int_box02 .box_inner.fo115 { width: auto; margin: 0 0 30px; border-top-left-radius: 0; padding: 0; font-size: 1em !important;}
.int_box02 > figure { width: auto;}
.int_box02 h3 { position: static; display: table; margin: 0 auto 20px 0;}
.int_box02 h3:after { right: auto; left: 4.5em; width: 1.5em; top: -1em;}

.ret_btn a { background-position: 2em center; padding: 1.2em 2em 1.2em 4em; font-size: min(3.8vw,1em);}


/* ------------------------
	contact
------------------------ */

.pagettl { font-size: 1.6em; padding: 40px 0; background-position: -400px center;}
.pagettl .fo_poppin { font-size: 2em;}

.con_sec01 { padding: 50px 0px;}
.con_sec01 .back_white { padding: 30px 15px;}
.contact_box .btn_area input { max-width: 230px;}
