@charset "UTF-8";
/* transition */
html { overflow-x: hidden; }

body { font-family: 'YakuHanJP', 'Noto Sans JP','Hiragino Kaku Gothic ProN',"ヒラギノ角ゴ ProN W3","游ゴシック Medium", "Yu Gothic Medium" ,'YuGothic',"游ゴシック",'Meiryo',"メイリオ",'MS PGothic',"ＭＳ Ｐゴシック",sans-serif; font-size: 18px; line-height: 1.6; color: #000; background: #E8EDEF; }

* { box-sizing: border-box; }

:root { scroll-behavior: auto; }

img { max-width: 100%; vertical-align: bottom; }

a, a:hover, a:focus { text-decoration: none; color: inherit; }

a { transition: all 0.3s cubic-bezier(0.25, 0.85, 0.45, 1); -webkit-backface-visibility: hidden; backface-visibility: hidden; }

a:hover { color: #000; }

a:hover > img { opacity: .6; }

a > img { transition: all 0.3s cubic-bezier(0.25, 0.85, 0.45, 1); }

a:not([href]):after { content: none !important; }

h1, h2, h3, h4, .h4, h5, .h5, h6, .h6, p, ul, ol, li, dl, dt, th, td, a { margin: 0; padding: 0; line-height: inherit; font-size: inherit; font-weight: normal; }

ul, li { list-style: none; }

p, li { line-height: 1.6; }

button { margin: 0; padding: 0; background: none; border: none; border-radius: 0; outline: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; }

.flex-img { flex-shrink: 0; }

/*======================
	parts
======================*/
.page_ttl_wrap { display: flex; flex-flow: column; justify-content: center; background-position: center; background-repeat: no-repeat; background-size: contain; margin-bottom: 70px; }

.page_ttl { font-size: 80px; font-weight: 500; line-height: 1; letter-spacing: 0.03em; }
.page_ttl span { display: inline-block; background: linear-gradient(to right, #3A4FCB, #00EBD9); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.page_ttl + p { font-size: 20px; font-weight: 500; }
.page_ttl + p span { display: block; font-size: 16px; }

.content_link { display: inline-block; color: #fff; font-size: 20px; text-align: left; line-height: 1; min-width: 240px; padding: 24px 76px 24px 24px; position: relative; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); }
.content_link:visited, .content_link:hover { color: #fff; }
.content_link:hover { opacity: .8; }
.content_link .content_link_ico { overflow: hidden; position: absolute; top: 0; right: 20px; bottom: 0; width: 36px; height: 6px; margin: auto 0; }
.content_link .content_link_ico:before, .content_link .content_link_ico:after { content: ""; width: 36px; height: 6px; background: url(../../../images/ico_arrow.svg) center no-repeat; background-size: contain; position: absolute; top: 0; right: 0; animation-fill-mode: forwards; animation-duration: .3s; }
.content_link .content_link_ico:after { transform: translateX(-100%); }

.content_link:hover .content_link_ico:before { animation-name: transformRightLeft; animation-delay: 0s; }

.content_link:hover .content_link_ico:after { animation-name: transformLeftRight; animation-delay: 0.2s; }

@keyframes transformLeftRight { 0% { transform: translateX(-100%); }
  100% { transform: translateX(0); } }
@keyframes transformRightLeft { 0% { transform: translateX(0); }
  100% { transform: translateX(100%); } }
.breadcrumbs { font-size: 14px; line-height: 1.4; margin-bottom: 70px; padding: 160px 40px 0; }
.breadcrumbs a, .breadcrumbs span { color: #4F5052; display: inline-block; vertical-align: middle; }
.breadcrumbs a:hover { color: #3A4FCB; }
.breadcrumbs .breadcrumbs_arrow { width: 0; height: 0; border-top: 2.5px solid transparent; border-bottom: 2.5px solid transparent; border-left: 9px solid #4F5052; }

.text_white { color: #fff; }

.text_small { font-size: 13px; }

.bg_white { background-color: #fff; }

.bg_beige { background-color: #F0F0EF; }

.fw_600 { font-weight: 600; }

.img_over_left { flex: 1; margin-left: calc(50% - 50vw); padding-left: 0; }

.img_over_right { flex: 1; margin-right: calc(50% - 50vw); padding-right: 0; }

.font_mohave { font-family: "Mohave", sans-serif; }

/*======================
	fade
======================*/
.fade { opacity: 0; transition: opacity 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.2s; }
.fade .fade_left { clip-path: inset(0 100% 0 0); transition: clip-path 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.4s; }
.fade .fade_right { clip-path: inset(0 0 0 100%); transition: clip-path 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.4s; }
.fade .fade_up { opacity: 0; transform: translateY(40px); transition: opacity 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.4s, transform 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.4s; }
.fade .fade_down { opacity: 0; transform: translateY(-40px); transition: opacity 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.4s, transform 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.4s; }
.fade .fade_slide_left { opacity: 0; transform: translateX(-40px); transition: opacity 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.4s, transform 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.4s; }
.fade .fade_slide_right { opacity: 0; transform: translateX(40px); transition: opacity 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.4s, transform 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.4s; }
.fade .fade_blur { opacity: 0; filter: blur(20px); transition: all 0.3s cubic-bezier(0.25, 0.85, 0.45, 1); }
.fade .fade_diagonal { clip-path: polygon(0 0, 0 0, 0 0); transition: clip-path 1s cubic-bezier(0.25, 0.85, 0.45, 1) 1s; }

.fade.fade_in { opacity: 1; }
.fade.fade_in .fade_left, .fade.fade_in .fade_right { clip-path: inset(0); }
.fade.fade_in .fade_down, .fade.fade_in .fade_up, .fade.fade_in .fade_slide_left, .fade.fade_in .fade_slide_right { opacity: 1; transform: translateY(0); }
.fade.fade_in .fade_blur { opacity: 1; filter: blur(0); }
.fade.fade_in .fade_diagonal { clip-path: polygon(0 0, 200% 0, 0 200%); }

/*======================
	header
======================*/
header { width: 100%; position: fixed; z-index: 100; top: 0; left: 0; pointer-events: none; }

.header_logo { display: flex; align-items: center; z-index: 200; padding: 32px 0 0 32px; pointer-events: auto; }

.header_right { pointer-events: auto; }

.header_inner { height: 140px; padding: 0; transition: all .2s ease-out; display: flex; align-items: start; justify-content: space-between; z-index: 110; background: url(../../../images/logo_bg_w.svg) left top no-repeat; background-size: auto 100%; }

.header_home .header_inner { background-image: url(../../../images/logo_bg.svg); }

/*ハンバーガーボタン*/
.head_nav_btn { width: 100px; height: 100px; background: #000; border-radius: 0 0 0 10px; cursor: pointer; position: relative; z-index: 999; color: #fff; }

.head_nav_btn span { display: block; width: 30px; height: 2px; background: #fff; position: absolute; right: 35px; transition: all .2s ease-out; z-index: 999; }

.head_nav_btn span:first-child { top: 28px; }

.head_nav_btn span:nth-child(2) { top: 38px; }

.head_nav_btn span:nth-child(3) { top: 48px; }

.head_nav_btn:not(.active):hover span:nth-child(2) { width: 20px; }

.head_nav_btn:not(.active):hover span:nth-child(3) { width: 14px; }

.head_nav_btn.active span:first-child { transform: translateY(10px) rotate(-135deg); }

.head_nav_btn.active span:nth-child(2) { opacity: 0; }

.head_nav_btn.active span:nth-child(3) { transform: translateY(-10px) rotate(135deg); }

.head_nav_btn p { text-align: center; font-size: 14px; line-height: 1; padding-top: 60px; }

#head_nav { width: 360px; overflow: auto; position: fixed; top: 0; z-index: 500; right: -360px; height: 100vh; transition: all .3s ease-out; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); }
#head_nav a { color: #fff; }
#head_nav a:hover { color: #000; }
#head_nav #head_nav_list { width: 100%; padding: 120px 24px 40px; }
#head_nav.panelactive { right: 0; }

.mainMenu > li:first-child a { border-top: 1px solid #fff; }
.mainMenu > li a { display: block; width: 100%; position: relative; border-bottom: 1px solid #fff; padding: 1em 30px 1em 1em; }
.mainMenu > li a:after { content: ""; position: absolute; top: 0; bottom: 0; margin: auto; right: 20px; width: 11px; height: 6px; border: 3px solid transparent; border-left: 11px solid #fff; border-right: 0; }

.subMenu { margin-top: 20px; display: flex; justify-content: space-between; }
.subMenu a { display: block; font-size: 16px; margin-top: .8em; padding-left: 1em; position: relative; }
.subMenu a:after { content: ""; position: absolute; top: 0; bottom: 0; margin: auto; left: 0; width: 8px; height: 8px; border: 4px solid transparent; border-left: 8px solid #fff; border-right: 0; }

.nav_privacy { margin-top: 40px; }
.nav_privacy a { font-size: 13px; margin-top: .8em; }

.nav_sns { display: flex; gap: 16px; margin-top: 70px; }
.nav_sns a { height: 46px; width: 46px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #fff; }

#nav_overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background: rgba(27, 29, 31, 0.94); z-index: 400; opacity: 0; visibility: hidden; transition: all .3s ease; }

#nav_overlay.active { opacity: 1; visibility: visible; }

/*======================
	front-page
======================*/
.home_kv { position: relative; }

.home_kv_bg { overflow: hidden; width: 100%; position: absolute; top: 0; left: 0; z-index: 1; }

.home_kv_cont { display: flex; position: relative; z-index: 2; }

.home_kv_left, .home_kv_right { width: 100%; }

.home_kv_left { padding-top: 24vw; }

.home_kv_right { padding-top: 16vw; }

.home_kv_text003 { position: absolute; top: 110px; right: 10px; z-index: 2; }

.home_news { background: url(../../../images/home_news_bg.svg) center no-repeat; background-size: contain; position: relative; z-index: 2; margin-top: 100px; padding: 40px 160px 60px 100px; }
.home_news h2 { color: #3A4FCB; font-size: 32px; font-weight: 500; line-height: 1; position: relative; }
.home_news h2:before { content: ""; width: 48px; height: 20px; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); position: absolute; top: -1em; left: -.8em; }
.home_news .home_news_list { background: #fff; padding: .5em 1em 1em; }
.home_news .home_news_list li { margin-top: .5em; }
.home_news .home_news_list li a { display: flex; }
.home_news .home_news_list li a:hover { color: #3A4FCB; }
.home_news .home_news_list li span:first-child { width: 108px; line-height: 1.9; }
.home_news .home_news_list li span:nth-child(2) { width: calc(100% - 108px); }
.home_news .content_link { position: absolute; right: 60px; bottom: -34px; }

.home_section_ttl { color: #00EBD9; font-size: 38px; font-weight: 500; line-height: 1; position: relative; display: flex; align-items: center; gap: .5em; }
.home_section_ttl:before { content: ""; display: inline-block; width: 48px; height: 20px; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); margin-bottom: .15em; }

.home_section_subttl { font-size: 52px; line-height: 1.4; }

.home_about { background: url(../../../images/home_about_bg_top.svg) center top no-repeat, url(../../../images/home_about_bg_btm.svg) center bottom no-repeat; background-size: 100% auto; padding-top: calc(178 / 1440 * 100%); padding-bottom: calc(107 / 1440 * 100%); }

.home_about_inner { display: flex; position: relative; }
.home_about_inner .content_link { position: absolute; left: 50%; bottom: -90px; transform: translateX(-50%); }

.home_about_left, .home_about_right { width: 50%; margin-top: -30px; }

.home_about_left .home_section_subttl { margin-right: -200px; }

.home_about_right { margin-bottom: -20px; }

.home_spirits { background: url(../../../images/home_spirits_bg001.svg) center top no-repeat; background-size: cover; padding: 60px 0 0; overflow-x: hidden; }
.home_spirits h3 { font-size: 30px; position: relative; padding-bottom: 80px; }
.home_spirits h3:before { content: ""; display: block; width: 300px; height: 1px; background: #00EBD9; position: absolute; bottom: 1px; left: 70px; z-index: 1; }
.home_spirits h3:after { content: ""; display: block; width: 50px; height: 3px; background: #3A4FCB; position: absolute; bottom: 0; left: 70px; z-index: 2; }

.slide_home { margin-top: 60px; }
.slide_home .slick-slide { padding: 0 20px; }
.slide_home img { transition: all 0.3s cubic-bezier(0.25, 0.85, 0.45, 1); }
.slide_home .slide_home_text { position: relative; }
.slide_home .slide_home_ttl { color: #3A4FCB; font-size: 42px; width: 444px; height: 60px; background: url(../../../images/home_spirits_bg002.svg) center no-repeat; background-size: contain; position: absolute; left: 50%; top: -28px; transform: translateX(-50%); z-index: 2; }
.slide_home .slide_home_ttl span { color: #00EBD9; font-size: 50px; font-weight: 300; }
.slide_home h4 { font-size: 30px; }
.slide_home .content_arrow { background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); width: 78px; height: 40px; margin-left: auto; position: relative; }
.slide_home .content_arrow .content_arrow_ico { overflow: hidden; position: absolute; top: 0; right: 20px; bottom: 0; width: 36px; height: 6px; margin: auto 0; }
.slide_home .content_arrow .content_arrow_ico:before, .slide_home .content_arrow .content_arrow_ico:after { content: ""; width: 36px; height: 6px; background: url(../../../images/ico_arrow.svg) center no-repeat; background-size: contain; position: absolute; top: 0; right: 0; animation-fill-mode: forwards; animation-duration: .3s; }
.slide_home .content_arrow .content_arrow_ico:after { transform: translateX(-100%); }
.slide_home a { display: block; }
.slide_home a:hover img { opacity: .6; }
.slide_home a:hover .content_arrow_ico:before { animation-name: transformRightLeft; animation-delay: 0s; }
.slide_home a:hover .content_arrow_ico:after { animation-name: transformLeftRight; animation-delay: 0.2s; }

.home_curriculum { background: url(../../../images/home_curriculum_bg_top.svg) right top no-repeat; background-size: cover; margin-top: 40px; padding: 100px 0 200px; }

.timeline_curriculum { position: relative; max-width: 1500px; margin: 0 auto; }
.timeline_curriculum h4 { font-size: 34px; font-weight: 600; line-height: 1.4; }

.timeline-cont { width: 50%; padding-left: 40px; margin-left: auto; position: relative; gap: 20px; }

.timeline-cont.timeline-cont--reverse { margin-left: 0; padding-left: 0; padding-right: 40px; }

.timeline-cont:not(:first-child) { margin-top: -150px; }

.timeline-dot { width: 20px; height: 20px; border: 1px solid #000; background: #fff; border-radius: 50%; position: absolute; left: -10px; top: 80px; z-index: 2; }

.timeline-cont.timeline-cont--reverse .timeline-dot { top: 70px; left: auto; right: -10px; }

.timeline-dot:before { content: ""; display: block; width: 240px; height: 1px; position: absolute; top: 9px; left: 20px; z-index: 1; border-top: 2px dotted #000; }

.timeline-cont.timeline-cont--reverse .timeline-dot:before { left: auto; right: 20px; }

.timeline-line_fade { width: 1px; height: calc(100% - 150px); position: absolute; top: 80px; left: 0; z-index: 1; background: #000; }

.timeline-cont.timeline-cont--reverse .timeline-line_fade { left: auto; right: -1px; }

.timeline-line_fade:after { content: ""; display: block; width: 3px; height: 100%; position: absolute; top: 0; left: -1px; z-index: 2; background: #3A4FCB; transform-origin: top; transform: scale(1, 0); }

.timeline-cont.timeline-cont--reverse .timeline-line_fade:after { left: auto; right: -1px; }

.timeline_num { width: 237px; height: 65px; font-weight: 500; letter-spacing: .04em; margin-top: 40px; position: relative; }
.timeline_num > p { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 2; background-size: 100% 100%; padding: 18px 10px 12px 36px; line-height: 1; }
.timeline_num .timeline_num--on { color: #fff; background-image: url(../../../images/home_timeline_bg_on.svg); }
.timeline_num .timeline_num--off { background-image: url(../../../images/home_timeline_bg.svg); }

.timeline_num_count { font-size: 40px; padding-right: .5em; }
.timeline_num_count span { font-size: 30px; }

.timeline_num_ttl { font-size: 22px; }

.timeline_num_text { padding-left: 16px; }

.home_future { background: url(../../../images/home_future_bg.svg) center top no-repeat; background-size: cover; }

.home_loop { overflow: hidden; white-space: nowrap; }
.home_loop p { color: #fff; font-size: 40px; font-weight: 800; }
.home_loop .home_loop-track { display: flex; width: max-content; animation: home_loop 50s linear infinite; }
.home_loop .home_loop_text { white-space: nowrap; }

@keyframes home_loop { 0% { transform: translateX(0); }
  100% { transform: translateX(-50%); } }
.home_future_text_top, .home_future_text_btm { display: inline-block; color: #fff; font-size: 48px; font-weight: 700; line-height: 1; position: relative; z-index: 0; }
.home_future_text_top:before, .home_future_text_btm:before { content: ""; display: block; height: 0.9em; width: 100%; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); position: absolute; bottom: 0; z-index: -1; }

.home_future_text_btm { font-size: 30px; margin-left: 100px; }

.home_future_list { margin-top: 40px; }
.home_future_list > div:first-child { margin-right: -30px; }
.home_future_list > div:nth-child(2) { margin-top: 100px; margin-left: -20px; }
.home_future_list > div:last-child { margin-top: 20px; }
.home_future_list > div:last-child h4 { margin-top: -40px; }
.home_future_list h4 { width: 262px; height: 33px; color: #fff; font-size: 45px; font-weight: 500; text-align: center; line-height: 42px; background: url(../../../images/home_future_ttl_bg.svg) center no-repeat; background-size: contain; margin: -10px auto 0; position: relative; z-index: 2; }
.home_future_list p { font-weight: 500; }

.home_news_btm { background: url(../../../images/home_news_btm_bg_top.svg) center top no-repeat, url(../../../images/home_news_btm_bg_btm.svg) center bottom no-repeat; background-size: 100% auto; padding-top: calc(140 / 1440 * 100%); padding-bottom: calc(60 / 1440 * 100%); padding-left: 0; padding-right: 0; }
.home_news_btm .content_link { position: relative; right: 0; bottom: -50px; margin-top: -20px; }

.home_teacher { padding: 180px 0; background: url(../../../images/home_teacher_bg.svg) center top no-repeat; background-size: cover; }

.home_teacher_wrap { position: relative; z-index: 1; }
.home_teacher_wrap:before { content: ""; display: block; height: 100%; aspect-ratio: 147 / 533; background: url(../../../images/home_teacher_left.svg) left top no-repeat; background-size: contain; position: absolute; top: 0; left: 0; z-index: 2; }

.home_teacher_ttl { display: flex; flex-flow: column; justify-content: flex-end; height: calc(100% + 2px); aspect-ratio: 553 / 535; background: url(../../../images/home_teacher_right.svg) right top no-repeat; background-size: contain; padding: 30px 50px 30px 150px; position: absolute; top: -1px; right: 0; z-index: 2; }

.home_teacher_list li { padding: 0 8px; }

.home_faq { background: url(../../../images/home_faq_bg_top.svg) center top no-repeat, url(../../../images/home_faq_bg_btm.svg) center bottom no-repeat; background-size: 100% auto; padding-top: calc(140 / 1440 * 100%); padding-bottom: calc(180 / 1440 * 100%); }
.home_faq h3 { display: flex; align-items: center; font-size: 30px; line-height: 1; font-weight: 500; border-top: 2px dotted #000; margin-top: 50px; padding-top: 50px; }
.home_faq h3 span { font-size: 45px; margin-bottom: -.2em; padding-right: .3em; }

.home_faq_list { margin-top: 20px; }

.faq_q, .faq_a_inner { display: flex; }
.faq_q span:first-child, .faq_a_inner span:first-child { width: 63px; font-size: 30px; font-weight: normal; text-align: center; }
.faq_q span:nth-child(2), .faq_a_inner span:nth-child(2) { width: calc(100% - 60px); }

.faq_q { align-items: center; min-height: 80px; color: #fff; font-size: 22px; font-weight: 500; line-height: 1.2; position: relative; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); margin-top: 16px; padding: 14px 80px 14px 0; z-index: 2; cursor: pointer; }
.faq_q:before, .faq_q:after { content: ''; position: absolute; top: 0; bottom: 0; right: 26px; width: 26px; height: 2px; margin: auto; background: #fff; }
.faq_q:after { rotate: 90deg; transition: .3s; }
.faq_q.active:after { rotate: 180deg; }

.faq_a { display: none; }
.faq_a span:first-child { color: #3A4FCB; }
.faq_a .faq_a_inner { position: relative; padding: 36px 36px 36px 0; }
.faq_a .faq_a_inner:before { content: ""; display: block; width: 0; height: 0; border-left: 16px solid transparent; border-right: 16px solid transparent; border-top: 13px solid #3A4FCB; position: absolute; top: -3px; left: 16px; }

/* home用 fade */
.fade .fade_kv_blur { opacity: 0; filter: blur(30px); transform: scale(1.02); transition: opacity 1s cubic-bezier(0.25, 0.85, 0.45, 1), filter 1s cubic-bezier(0.25, 0.85, 0.45, 1), transform 1s cubic-bezier(0.25, 0.85, 0.45, 1); }

.fade.fade_in .fade_kv_blur { opacity: 1; filter: blur(0); transform: scale(1); }

.timeline_fade .timeline-dot, .timeline_fade .timeline_num > p { transition: all 1s cubic-bezier(0.25, 0.85, 0.45, 1); }
.timeline_fade .timeline-line_fade:after { transition: all 1s cubic-bezier(0.25, 0.85, 0.45, 1) 0.3s; }

.timeline_fade.timeline_fade_in .timeline-dot { background: #3A4FCB; border-color: #3A4FCB; }
.timeline_fade.timeline_fade_in .timeline_num .timeline_num--off { opacity: 0; }
.timeline_fade.timeline_fade_in .timeline_num:after { opacity: 0; }
.timeline_fade.timeline_fade_in .timeline-line_fade:after { transform: scale(1, 1); }

/*======================
	about
======================*/
.page_main { background-image: url(../../../images/main_bg.svg); background-position: center; background-repeat: repeat; background-size: auto; }

.page_about .page_ttl_wrap { background-image: url(../../../images/about_ttl_bg.svg); width: 648px; aspect-ratio: 648 / 202; padding-left: 100px; }
.page_about .home_loop-track > div:nth-child(even) { margin: 40px -20px 0; }

.about_top { position: relative; }
.about_top .about_logo_outline { font-size: 8.5vw; font-weight: 500; font-style: italic; white-space: nowrap; line-height: 1; color: transparent; -webkit-text-stroke: 1px #3A4FCB; text-stroke: 1px #3A4FCB; position: relative; z-index: 3; }
.about_top .about_top_text { position: absolute; top: 60px; }
.about_top .about_top_inner { position: absolute; top: 4.5vw; background: url(../../../images/about_top_bg.svg) center no-repeat; background-size: contain; padding: 4vw 200px 0 60px; z-index: 2; aspect-ratio: 810 / 603; }
.about_top .about_top_inner h2 span { display: inline-block; position: relative; z-index: 0; }
.about_top .about_top_inner h2 span:before { content: ""; display: block; height: .3em; width: 100%; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); position: absolute; bottom: .2em; z-index: -1; }

.label_gradation { display: inline-block; color: #fff; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); line-height: 1; padding: .3em .8em .2em; }

.text_gradation span { display: inline-block; color: #fff; font-size: 24px; font-weight: 500; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); line-height: 1; padding: 0 .2em; }
.text_gradation.text_gradation_large span { font-size: 36px !important; }
.text_gradation.text_gradation_small span { font-size: 18px !important; }

.about_q1 { margin-top: 160px; margin-right: calc(-50vw + 50%); }

.about_q1_inner { background: url(../../../images/about_bg001.svg) top left no-repeat; background-size: auto 100%; padding: 50px 0 40px; }

.about_q1_cont { margin-right: calc(50% - 50vw); padding-right: calc(50vw - 50%); background: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%); }

.about_q2 { margin-top: -20px; margin-left: calc(-50vw + 50%); }

.about_q2_inner { background: url(../../../images/about_bg002.svg) top right no-repeat; background-size: auto 100%; padding: 50px 0; }

.about_q2_cont { margin-left: calc(50% - 50vw); padding-left: calc(50vw - 50%); background: linear-gradient(90deg, #fff 0%, #fff 50%, transparent 50%, transparent 100%); padding-top: 60px; padding-bottom: 60px; }

.about_q2_list { background: #fff; padding-bottom: 40px; }
.about_q2_list ul { display: flex; }
.about_q2_list li { padding: 28px; position: relative; }
.about_q2_list li:not(:first-child):before { content: ""; display: block; width: 1px; height: calc(100% - 32px); border-left: 2px dotted #000; position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
.about_q2_list li:after { content: ""; display: block; height: 1px; width: calc(100% - 32px); border-bottom: 2px dotted #000; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); }
.about_q2_list li p { font-weight: 500; }

.about_q2_list_btm li { display: flex; align-items: center; gap: 16px; }

.about_q3 { margin-right: calc(-50vw + 50%); }

.about_q3_inner { background: url(../../../images/about_bg003.svg) top left no-repeat; background-size: auto 100%; padding: 80px 0 100px; }

.about_q3_cont { margin-right: calc(50% - 50vw); padding-right: calc(50vw - 50%); background: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%); }

.about_q3_ttl { position: relative; padding-bottom: 30px; margin-bottom: 30px; }
.about_q3_ttl:before { content: ""; display: block; width: 300px; height: 1px; background: #00EBD9; position: absolute; bottom: 1px; right: 0; z-index: 1; }
.about_q3_ttl:after { content: ""; display: block; width: 50px; height: 3px; background: #3A4FCB; position: absolute; bottom: 0; right: 250px; z-index: 2; }

.scroll-root { display: flex; height: 320px; overflow: hidden; position: relative; }

.image-col { width: 50%; position: relative; overflow: hidden; flex-shrink: 0; }

.about_q3_slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.6s ease; background-size: contain; background-position: center; background-repeat: no-repeat; }
.about_q3_slide.active { opacity: 1; }

.q3_slide_text { flex: 1; position: relative; overflow: hidden; }

.q3_slide_text_wrap { height: 320px; overflow-y: scroll; scrollbar-width: none; }

.q3_slide_text_wrap::-webkit-scrollbar { display: none; }

.q3_slide_section { height: 320px; display: flex; align-items: center; padding: 60px 48px; position: relative; }

.q3_slide_ttl { font-size: 43px; font-weight: 600; letter-spacing: 0.05em; line-height: 1; color: #3A4FCB; display: flex; align-items: center; gap: 8px; }
.q3_slide_ttl span { color: #00EBD9; font-size: 50px; font-weight: 300; }
.q3_slide_ttl + p { font-size: 25px; font-weight: 500; }

/* SP Slider */
.q3_slide_sp_cont { padding: 0 20px; }
.q3_slide_sp_cont .sp-image { width: 100%; height: 220px; background-size: contain; background-position: center; background-repeat: no-repeat; }
.q3_slide_sp_cont .sp-text { margin: 24px 0 0; }

.about_q3_slide01 { background-image: url(../../../images/about_img006.png); }

.about_q3_slide02 { background-image: url(../../../images/about_img007.png); }

.about_q3_slide03 { background-image: url(../../../images/about_img008.png); }

.about_q3_slide04 { background-image: url(../../../images/about_img009.png); }

.about_q4 { margin-top: -20px; margin-left: calc(-50vw + 50%); }

.about_q4_inner { background: url(../../../images/about_bg004.svg) top right no-repeat; background-size: auto 100%; padding: 100px 0 50px; }

.about_q4_cont { margin-left: calc(50% - 50vw); padding-left: calc(50vw - 50%); background: linear-gradient(90deg, #fff 0%, #fff 50%, transparent 50%, transparent 100%); padding-top: 30px; padding-bottom: 60px; }

.about_q4_ttl { position: relative; padding-bottom: 10px; padding-left: 200px; margin-bottom: 30px; }
.about_q4_ttl:before { content: ""; display: block; width: 300px; height: 1px; background: #00EBD9; position: absolute; bottom: 1px; right: 200px; z-index: 1; }
.about_q4_ttl:after { content: ""; display: block; width: 50px; height: 3px; background: #3A4FCB; position: absolute; bottom: 0; right: 400px; z-index: 2; }

.q4_slide .q4_slide_inner { display: flex; padding: 0 40px; }
.q4_slide .q4_slide_text { margin-left: 40px; max-width: 480px; }
.q4_slide h3 { color: #3A4FCB; font-size: 26px; font-weight: 500; line-height: 1; }
.q4_slide h3 > span { color: #00EBD9; font-size: 25px; letter-spacing: .05em; }
.q4_slide h3 > span span { color: #3A4FCB; font-size: 35px; padding: 0 .3em; }
.q4_slide h4 { font-size: 26px; font-weight: 500; line-height: 1.4; }

.foot_bnr { background: url(../../../images/foot_bnr_bg.svg) bottom -5px left repeat-x; padding-bottom: calc(48 / 1514 * 100%); }

.foot_bnr_inner { display: flex; justify-content: space-between; padding-top: 140px; padding-bottom: 140px; }
.foot_bnr_inner a { display: flex; flex-flow: column; align-items: center; justify-content: center; width: 360px; aspect-ratio: 360 / 126; background-size: contain; background-repeat: no-repeat; color: #fff; font-size: 20px; text-align: center; position: relative; }
.foot_bnr_inner a:nth-child(1) { background-image: url(../../../images/foot_bnr001.svg); }
.foot_bnr_inner a:nth-child(2) { background-image: url(../../../images/foot_bnr002.svg); }
.foot_bnr_inner a:nth-child(3) { background-image: url(../../../images/foot_bnr003.svg); }
.foot_bnr_inner a span { display: block; font-size: 14px; }
.foot_bnr_inner a .content_link_ico { overflow: hidden; position: absolute; top: 0; right: 20px; bottom: 0; width: 36px; height: 6px; margin: auto 0; }
.foot_bnr_inner a .content_link_ico:before, .foot_bnr_inner a .content_link_ico:after { content: ""; width: 36px; height: 6px; background: url(../../../images/ico_arrow.svg) center no-repeat; background-size: contain; position: absolute; top: 0; right: 0; animation-fill-mode: forwards; animation-duration: .3s; }
.foot_bnr_inner a .content_link_ico:after { transform: translateX(-100%); }
.foot_bnr_inner a:visited, .foot_bnr_inner a:hover { color: #fff; }
.foot_bnr_inner a:hover { opacity: .8; }
.foot_bnr_inner a:hover .content_link_ico:before { animation-name: transformRightLeft; animation-delay: 0s; }
.foot_bnr_inner a:hover .content_link_ico:after { animation-name: transformLeftRight; animation-delay: 0.2s; }

/*======================
	challenge
======================*/
.page_challenge .page_ttl_wrap { background-image: url(../../../images/challenge_ttl_bg.svg); width: 596px; aspect-ratio: 596 / 177; padding-left: 100px; }

.challenge_top_ttl span { font-size: 52px; margin: .15em 0; }

.challenge_secttl { color: #3A4FCB; font-size: 120px; font-weight: 500; letter-spacing: .05em; line-height: 1; }

.challenge_sec_subttl { font-size: 25px; font-weight: 500; }

.challenge_sec { margin-top: 100px; }

.challenge_sec01 h3 { font-size: 52px; }

.challenge_sec01_text { background: url(../../../images/challenge_sec01_bg.png) right top no-repeat; background-size: cover; margin-top: -10px; padding: 50px 0 110px; }
.challenge_sec01_text * { color: #fff; }

.challenge_sec02 .challenge_secttl, .challenge_sec04 .challenge_secttl { color: #00EBD9; }

.challenge_research_tab { position: relative; position: sticky; top: 140px; background-repeat: no-repeat; background-position: center; background-size: contain; aspect-ratio: 1327 / 554; }
.challenge_research_tab > div { height: 100%; gap: 40px; justify-content: center; }

.challenge_research_tab:nth-of-type(1) { background-image: url(../../../images/challenge_scroll_bg001.svg); }

.challenge_research_tab:nth-of-type(2) { background-image: url(../../../images/challenge_scroll_bg002.svg); }

.challenge_research_tab:nth-of-type(3) { background-image: url(../../../images/challenge_scroll_bg003.svg); }

.challenge_research_tab:nth-of-type(4) { background-image: url(../../../images/challenge_scroll_bg004.svg); }

.challenge_research_tab:nth-of-type(5) { background-image: url(../../../images/challenge_scroll_bg005.svg); }

.challenge_research_tab:nth-of-type(odd) { color: #fff; }

.challenge_research_tab:nth-of-type(even) { color: #3A4FCB; }

.challenge_research_num { font-size: 70px; line-height: 1; }
.challenge_research_num h3 { font-size: 43px; margin-left: .5em; font-weight: 500; }
.challenge_research_num h3 span { font-size: 50px; font-weight: 300; }

.challenge_research_ttl { font-size: 26px; font-weight: 500; }

.challenge_sec03 > div { gap: 40px; }

.challenge_sec03_list { width: 32%; }
.challenge_sec03_list p span { display: inline-block; padding: 1em; background-position: center; background-size: contain; background-repeat: no-repeat; }
.challenge_sec03_list p:nth-of-type(even) { text-align: right; }
.challenge_sec03_list p:nth-of-type(1) span { background-image: url(../../../images/challenge_sec03_bg001.svg); }
.challenge_sec03_list p:nth-of-type(2) span { background-image: url(../../../images/challenge_sec03_bg002.svg); padding-right: 2em; }
.challenge_sec03_list p:nth-of-type(3) span { background-image: url(../../../images/challenge_sec03_bg003.svg); padding: 2em 1em; }
.challenge_sec03_list p:nth-of-type(4) span { background-image: url(../../../images/challenge_sec03_bg004.svg); padding-right: 4em; }
.challenge_sec03_list p:nth-of-type(5) span { background-image: url(../../../images/challenge_sec03_bg005.svg); }

.challenge_sec04 { background: url(../../../images/challenge_scroll_bg006.svg) center no-repeat; background-size: auto 100%; padding-top: 20px; padding-bottom: 60px; }
.challenge_sec04 > div { gap: 20px; }
.challenge_sec04 .text_gradation span { font-size: 37px; }
.challenge_sec04 .text_gradation span:nth-of-type(2) { margin-left: .5em; }
.challenge_sec04 .text_gradation span:nth-of-type(3) { margin-left: 1em; }

.challenge_sec04_left { position: relative; }
.challenge_sec04_left .text_gradation { position: absolute; left: 50%; bottom: -40px; transform: translateX(-50%); }

/*======================
	curriculum
======================*/
.page_curriculum .page_ttl_wrap { background-image: url(../../../images/curriculum_ttl_bg.svg); width: 626px; aspect-ratio: 626 / 177; padding-left: 120px; }

.curriculum_top { margin-top: 100px; }

.curriculum_top_inner { background: url(../../../images/curriculum_bg001.png) top center no-repeat; background-size: 100% auto; margin-top: -30px; padding: 90px 0 100px; }
.curriculum_top_inner * { color: #fff; }

.curriculum_tabs { display: flex; gap: 2%; margin: 50px 0 24px; }

.curriculum_tab { flex: 1; cursor: pointer; color: #97A1A8; font-size: 22px; position: relative; width: 100%; aspect-ratio: 280 / 108; }
.curriculum_tab .tab_year { font-size: 16px; margin-left: 66px; }
.curriculum_tab .tab_label { font-weight: 500; text-align: center; line-height: 1.5; margin-top: .8em; }
.curriculum_tab .curriculum_tab--on, .curriculum_tab .curriculum_tab--off { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 2; transition: all .3s; background-position: center; background-repeat: no-repeat; background-size: 100%; aspect-ratio: 280 / 108; }
.curriculum_tab .curriculum_tab--on { background-image: url(../../../images/curriculum_tab_on.svg); color: #fff; }
.curriculum_tab .curriculum_tab--off { background-image: url(../../../images/curriculum_tab.svg); }
.curriculum_tab.active .curriculum_tab--off { opacity: 0; }

.tab_contents { position: relative; padding-top: calc(104 / 1375 * 100%); padding-bottom: calc(107 / 1440 * 100%); }
.tab_contents:before { content: ""; background: url(../../../images/curriculum_tab_bg_top.svg) center no-repeat; background-size: contain; aspect-ratio: 1375 / 104; position: absolute; width: 100%; top: 1px; left: -50px; }
.tab_contents:after { content: ""; background: url(../../../images/curriculum_tab_bg_btm.svg) center no-repeat; background-size: contain; aspect-ratio: 1407 / 104; position: absolute; width: 100%; bottom: 1px; right: -50px; }

.tab_cont { background: #fff; padding: 30px 30px 100px; display: none; }
.tab_cont.active { display: block; }
.tab_cont .home_section_subttl { border-top: 2px solid transparent; border-image: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%) 1; margin-top: 30px; padding-top: 30px; }
.tab_cont .home_section_subttl span { display: inline-block; position: relative; z-index: 0; }
.tab_cont .home_section_subttl span:before { content: ""; display: block; height: .3em; width: 100%; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); position: absolute; bottom: .2em; z-index: -1; }
.tab_cont .text_gradation span:nth-of-type(2) { margin-left: .5em; }
.tab_cont .text_gradation span:nth-of-type(3) { margin-left: 1em; }

.tab_cont_num + p { font-size: 22px; font-weight: 500; line-height: 1; }

.tab_ttl span { font-size: 120px; font-weight: 500; line-height: 1; letter-spacing: 0.03em; display: inline-block; background: linear-gradient(to right, #3A4FCB, #00EBD9); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

.tab_ttl_label { color: #fff; font-size: 24px; line-height: 0.9; background: #00EBD9; margin-left: .5em; padding: 0 .3em; }

.tab_cont_block { padding: 50px; border: 1px solid #000; position: relative; }
.tab_cont_block h3 { display: inline-block; font-size: 30px; line-height: 1; background: #fff; padding: 0 .3em; position: absolute; top: -.5em; left: 1em; }
.tab_cont_block h4 { color: #fff; font-size: 24px; font-weight: 500; line-height: 1; padding: 0 .2em; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); }
.tab_cont_block .tab_cont_list { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 24px; }
.tab_cont_block .tab_cont_list li { width: calc((100% - 48px) / 4); text-align: center; border: 1px solid #000; padding: .2em 0; }
.tab_cont_block .tab_cont_list--row3 li { width: calc((100% - 32px) / 3); }
.tab_cont_block .tab_cont_list--row2 li { width: calc((100% - 16px) / 2); }
.tab_cont_block .tab_cont_list--single li { width: 100%; }

.tab_cont_btm * { text-align: center; }
.tab_cont_btm h3 { font-size: 30px; line-height: 1.2; }
.tab_cont_btm h3 span { display: inline-block; position: relative; z-index: 0; }
.tab_cont_btm h3 span:before { content: ""; display: block; height: .2em; width: 100%; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); position: absolute; bottom: .1em; z-index: -1; }
.tab_cont_btm .tab_cont_btm_num { font-size: 40px; display: inline-block; border-bottom: 3px solid transparent; border-image: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%) 1; line-height: 1.3; padding: 0 .2em; margin-bottom: .5em; }
.tab_cont_btm .tab_cont_btm_num + p { font-weight: 500; line-height: 1.4; }
.tab_cont_btm > div:nth-child(n+2) { border-left: 1px dotted #000; }
.tab_cont_btm > div:last-child { border-right: 1px dotted #000; }

.curriculum_sec_last { background: url(../../../images/curriculum_bg.svg) top left 20px no-repeat; background-size: cover; margin-top: 100px; padding: 70px 0; position: relative; }
.curriculum_sec_last .challenge_secttl { position: relative; z-index: 2; }
.curriculum_sec_last .text_small { margin-left: 220px; }

.curriculum_sec_last_img { position: absolute; top: 0; right: 0; }
.curriculum_sec_last_img p { position: absolute; bottom: 100px; }
.curriculum_sec_last_img p span { display: inline-block; color: #fff; font-size: 35px; font-weight: 500; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); line-height: 1; padding-left: .3em; margin: .1em 0; }
.curriculum_sec_last_img p span:nth-of-type(2) { margin-left: .5em; }
.curriculum_sec_last_img p span:nth-of-type(3) { margin-left: 1em; }

/*======================
	future
======================*/
.page_future .page_ttl_wrap { justify-content: flex-start; padding-top: 1em; background-image: url(../../../images/future_ttl_bg.svg); width: 466px; aspect-ratio: 466 / 170; padding-left: 130px; }

.future_top { margin-top: 100px; }
.future_top .challenge_secttl { line-height: .9; }

.future_top_inner { background: url(../../../images/future_bg001.png) top center no-repeat; background-size: 100% auto; padding: 100px 0 150px; }
.future_top_inner * { color: #fff; }

.future_top_subttl span { display: inline-block; color: #3A4FCB; font-size: 35px; font-weight: 500; background: #fff; line-height: 1; margin: .1em 0; padding: 0 .2em; }

.future_field { margin-top: 60px; }
.future_field .challenge_secttl { color: #00EBD9; }
.future_field .challenge_secttl + p { font-size: 30px; font-weight: 500; }

.future_field_inner { background: url(../../../images/future_field_bg.svg) top center no-repeat; background-size: 100%; padding: 160px 0 200px; }

.future_field_cont { padding-top: 30px; padding-bottom: 60px; }

.future_field_ttl { position: relative; padding-bottom: 50px; padding-left: 150px; margin-bottom: 30px; }
.future_field_ttl:before { content: ""; display: block; width: 300px; height: 1px; background: #00EBD9; position: absolute; bottom: 1px; right: 200px; z-index: 1; }
.future_field_ttl:after { content: ""; display: block; width: 50px; height: 3px; background: #3A4FCB; position: absolute; bottom: 0; right: 350px; z-index: 2; }

.future_slide .future_slide_inner { display: flex; align-items: center; gap: 40px; padding: 0 40px; }
.future_slide .future_slide_text { max-width: 480px; }
.future_slide h3 span { display: inline-block; color: #fff; font-size: 30px; font-weight: 500; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); line-height: 1; margin: .1em 0; padding: 0 .2em; }
.future_slide h4 { font-size: 28px; font-weight: 500; line-height: 1.3; }
.future_slide .future_slide_img p { color: #3A4FCB; font-size: 26px; font-weight: 450; letter-spacing: .05em; }

.future_license { margin-top: 60px; }
.future_license h2 + p { font-size: 40px; line-height: 1.4; }

.future_license_list { display: flex; }
.future_license_list h3 { min-width: 260px; }
.future_license_list h3 span { display: inline-block; color: #fff; font-size: 34px; font-weight: 500; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); line-height: 1; margin: .1em 0; padding: 0 .2em; }
.future_license_list h3 span:nth-of-type(2) { margin-left: .5em; }
.future_license_list ul { display: flex; flex-wrap: wrap; gap: 20px; }
.future_license_list ul li { line-height: 3; font-weight: 500; padding: .3em 1.5em; }
.future_license_list.license_list01 li { background-position: center; background-size: cover; }
.future_license_list.license_list01 li:nth-of-type(1) { background-image: url(../../../images/future_license1_001.svg); }
.future_license_list.license_list01 li:nth-of-type(2) { background-image: url(../../../images/future_license1_002.svg); }
.future_license_list.license_list01 li:nth-of-type(3) { background-image: url(../../../images/future_license1_003.svg); padding-right: 3em; }
.future_license_list.license_list01 li:nth-of-type(4) { background-image: url(../../../images/future_license1_004.svg); }
.future_license_list.license_list01 li:nth-of-type(5) { background-image: url(../../../images/future_license1_005.svg); }
.future_license_list.license_list02 li { background-position: center; background-size: cover; }
.future_license_list.license_list02 li:nth-of-type(1) { background-image: url(../../../images/future_license2_001.svg); }
.future_license_list.license_list02 li:nth-of-type(2) { background-image: url(../../../images/future_license2_002.svg); }
.future_license_list.license_list02 li:nth-of-type(3) { background-image: url(../../../images/future_license2_003.svg); padding-right: 3em; }
.future_license_list.license_list02 li:nth-of-type(4) { background-image: url(../../../images/future_license2_004.svg); }
.future_license_list.license_list02 li:nth-of-type(5) { background-image: url(../../../images/future_license2_005.svg); }
.future_license_list.license_list02 li:nth-of-type(6) { background-image: url(../../../images/future_license2_006.svg); }
.future_license_list.license_list02 li:nth-of-type(7) { background-image: url(../../../images/future_license2_007.svg); }
.future_license_list.license_list02 li:nth-of-type(8) { background-image: url(../../../images/future_license2_008.svg); }
.future_license_list.license_list02 li:nth-of-type(9) { background-image: url(../../../images/future_license2_009.svg); }
.future_license_list.license_list02 li:nth-of-type(10) { background-image: url(../../../images/future_license2_010.svg); padding-right: 4em; }

.future_last { margin-top: 100px; background: url(../../../images/future_last_bg.svg) top left no-repeat; background-size: 100%; padding: 50px 0 100px; }
.future_last .challenge_secttl { color: #00EBD9; }
.future_last .future_last_img { margin-right: -8.35%; position: relative; }
.future_last .future_last_img .text_gradation { position: absolute; right: 150px; bottom: -50px; }
.future_last .future_last_img .text_gradation span:nth-of-type(2) { margin-left: .5em; }
.future_last .future_last_img .text_gradation span:nth-of-type(3) { margin-left: 1em; }
.future_last .future_last_text { background: linear-gradient(90deg, #fff 0%, #fff 80%, transparent 80%, transparent 100%); padding-bottom: 3em; }

/*======================
	faculty
======================*/
.page_faculty .page_ttl_wrap { justify-content: flex-start; padding-top: 2.5em; background-image: url(../../../images/faculty_ttl_bg.svg); width: 401px; aspect-ratio: 401 / 190; padding-left: 76px; }

.faculty_top { position: relative; }

.faculty_top_pic { margin-top: -100px; justify-content: space-between; }
.faculty_top_pic > div:not(:nth-of-type(2)) { margin-top: 60px; }

.faculty_top_text { width: 100%; display: flex; justify-content: center; position: absolute; bottom: -40px; }
.faculty_top_text .faculty_top_ttl span { display: inline-block; color: #fff; font-size: 52px; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); line-height: 1; margin: .1em 0; padding: 0 .2em; }

.faculty_seriously_top { padding: 0 40px 60px; }
.faculty_seriously_top .home_section_subttl span { display: inline-block; position: relative; z-index: 0; }
.faculty_seriously_top .home_section_subttl span:before { content: ""; display: block; height: .2em; width: 100%; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); position: absolute; bottom: .1em; z-index: -1; }
.faculty_seriously_top .faculty_seriously_top_text { width: 100%; position: relative; padding-bottom: 20px; }
.faculty_seriously_top .faculty_seriously_top_text p:first-child { display: inline-block; width: auto; position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
.faculty_seriously_top .faculty_seriously_top_text:before { content: ""; display: block; width: 200px; height: 1px; background: #00EBD9; position: absolute; bottom: 1px; right: 70px; z-index: 1; }
.faculty_seriously_top .faculty_seriously_top_text:after { content: ""; display: block; width: 50px; height: 3px; background: #3A4FCB; position: absolute; bottom: 0; right: 220px; z-index: 2; }

.faculty_seriously { background: url(../../../images/faculty_slide_bg_top.svg) center top no-repeat, url(../../../images/faculty_slide_bg_btm.svg) center bottom no-repeat; background-size: contain; margin-top: 130px; padding-top: calc(163 / 1360 * 100%); padding-bottom: calc(102 / 1360 * 100%); }
.faculty_seriously .faculty_seriously_inner { background: #fff; padding: 20px 0; }
.faculty_seriously .scroll-root { display: flex; gap: 60px; height: 550px; overflow: hidden; position: relative; }
.faculty_seriously .image-col { width: 40%; position: relative; overflow: hidden; flex-shrink: 0; }

.faculty_slide_prof { bottom: 0; }
.faculty_slide_prof ul { display: flex; flex-wrap: wrap; gap: 10px; }
.faculty_slide_prof ul li { width: calc((100% - 10px) / 2); text-align: center; background: #fff; border: 1px solid #000; padding: .4em .5em; font-size: 16px; line-height: 1.3; }

.faculty_name { background: url(../../../images/faculty_name_bg.svg) right 20px top no-repeat; font-size: 32px; font-weight: 500; text-align: right; padding: 20px 0 20px; }
.faculty_name span { font-size: 18px; }

.faculty_slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.6s ease; background-size: 320px auto; background-position: top center; background-repeat: no-repeat; }
.faculty_slide.active { opacity: 1; }

.faculty_slide_pc { padding: 0 40px; }
.faculty_slide_pc > div { gap: 80px; }
.faculty_slide_pc .faculty_slide_pc_text { width: calc(100% - 530px); }
.faculty_slide_pc .faculty_slide_pc_prof { width: 450px; }

.faculty_slide_ttl span { display: inline-block; color: #fff; font-size: 30px; font-weight: 500; background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); line-height: 1; padding: 0 .2em; }

.faculty_slide_subttl { font-size: 22px; font-weight: 500; }
.faculty_slide_subttl .faculty_slide_text { flex: 1; position: relative; overflow: hidden; }

.faculty_slide_text_wrap { height: 700px; overflow-y: scroll; scrollbar-width: none; }

.faculty_slide_text_wrap::-webkit-scrollbar { display: none; }

.faculty_slide_section { height: 700px; padding: 0 48px; position: relative; }

.faculty_slide_section:last-child { min-height: calc(700px + 120px); }

/* SP Slider */
.faculty_slide_sp_cont { padding: 0 20px; }
.faculty_slide_sp_cont .sp-image { width: 100%; height: 280px; background-size: contain; background-position: center; background-repeat: no-repeat; }

.faculty_slide01 { background-image: url(../../../images/faculty_img005.webp); }

.faculty_slide02 { background-image: url(../../../images/faculty_img001.webp); }

.faculty_slide03 { background-image: url(../../../images/faculty_img003.webp); }

.faculty_slide04 { background-image: url(../../../images/faculty_img002.webp); }

.faculty_last { margin-top: 100px; padding-top: 80px; background: url(../../../images/faculty_last_bg.svg) center top no-repeat; background-size: cover; }
.faculty_last .challenge_secttl { color: #00EBD9; }
.faculty_last .text_gradation { margin-top: -40px; }
.faculty_last .text_gradation span:nth-of-type(2) { margin-left: .5em; }
.faculty_last .text_gradation span:nth-of-type(3) { margin-left: 1em; }

/*======================
	news
======================*/
.page_news { background: url(../../../images/foot_bnr_bg.svg) left bottom -5px/auto repeat-x, url(../../../images/main_bg.svg) center/auto repeat; padding-bottom: calc(48 / 1514 * 100%); }
.page_news .page_ttl_wrap { background-image: url(../../../images/news_ttl_bg.svg); width: 606px; aspect-ratio: 606 / 177; padding-left: 175px; }
.page_news .news_list li { margin-top: 1em; }
.page_news .news_list li a { display: flex; width: 100%; background: url(../../../images/news_bg.svg) center no-repeat; background-size: cover; padding: 1.6em 70px 1.6em 3em; position: relative; }
.page_news .news_list li a:after { content: ""; position: absolute; top: 0; bottom: 0; margin: auto; right: 50px; width: 11px; height: 6px; border: 3px solid transparent; border-left: 11px solid #000; border-right: 0; }
.page_news .news_list li a:hover { color: #3A4FCB; }
.page_news .news_list li .news_date { padding-right: 1em; }

.news_pager { padding: 100px 0 200px; }
.news_pager ul { display: flex; gap: 20px; justify-content: center; }
.news_pager ul li.active a { background: linear-gradient(to right, #3A4FCB 0%, #00EBD9 100%); color: #fff; }
.news_pager ul li.prev a { position: relative; }
.news_pager ul li.prev a:after { content: ""; position: absolute; top: 0; bottom: 0; margin: auto; width: 11px; height: 6px; border: 3px solid transparent; border-right: 11px solid #000; border-left: 0; margin-right: -6px; }
.news_pager ul li.next a { position: relative; }
.news_pager ul li.next a:after { content: ""; position: absolute; top: 0; bottom: 0; margin: auto; width: 11px; height: 6px; border: 3px solid transparent; border-left: 11px solid #000; border-right: 0; margin-left: -6px; }
.news_pager a { font-family: "Mohave", sans-serif; display: block; width: 50px; height: 50px; line-height: 50px; text-align: center; }
.news_pager a:hover { color: #3A4FCB; }

.news_single .news_single_parts_top, .news_single .news_single_parts_btm { position: relative; }
.news_single .news_single_parts_top:before, .news_single .news_single_parts_top:after, .news_single .news_single_parts_btm:before, .news_single .news_single_parts_btm:after { content: ""; width: 60px; height: 12px; background: #fff; position: absolute; }
.news_single .news_single_parts_top:before { top: 0px; left: -40px; }
.news_single .news_single_parts_top:after { top: -12px; left: 30%; }
.news_single .news_single_parts_btm:before { bottom: 0px; right: -40px; }
.news_single .news_single_parts_btm:after { bottom: -12px; right: 30%; }
.news_single .news_single_text { background: #fff; }
.news_single .newsDetail { padding: 60px; }
.news_single .newsDetail img { max-width: 100%; height: auto; }
.news_single .newsDetail p { margin-bottom: 1em; }
.news_single .newsDetailButton { padding-top: 100px; padding-bottom: 140px; display: flex; justify-content: space-between; align-items: center; }
.news_single .newsDetailButton li a { display: inline-block; color: #fff; font-size: 20px; position: relative; }
.news_single .newsDetailButton li a .content_link_ico { overflow: hidden; position: absolute; top: 0; right: 20px; bottom: 0; width: 36px; height: 6px; margin: auto 0; }
.news_single .newsDetailButton li a .content_link_ico:before, .news_single .newsDetailButton li a .content_link_ico:after { content: ""; width: 36px; height: 6px; background: url(../../../images/ico_arrow.svg) center no-repeat; background-size: contain; position: absolute; top: 0; right: 0; animation-fill-mode: forwards; animation-duration: .3s; }
.news_single .newsDetailButton li a .content_link_ico:after { transform: translateX(-100%); }
.news_single .newsDetailButton li a:visited, .news_single .newsDetailButton li a:hover { color: #fff; }
.news_single .newsDetailButton li a:hover { opacity: .8; }
.news_single .newsDetailButton li a:hover .content_link_ico:before { animation-name: transformRightLeft; animation-delay: 0s; }
.news_single .newsDetailButton li a:hover .content_link_ico:after { animation-name: transformLeftRight; animation-delay: 0.2s; }
.news_single .newsDetailButton li:nth-child(2) { width: 360px; }
.news_single .newsDetailButton li:nth-child(2) a { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 360 / 126; text-align: center; background: url(../../../images/foot_bnr002.svg) center no-repeat; background-size: contain; }
.news_single .newsDetailButton .newsDetailNext, .news_single .newsDetailButton .newsDetailPrev { width: 176px; line-height: 3.5em; padding: 0 1em; background: linear-gradient(to right, #3A4FCB, #00EBD9); }
.news_single .newsDetailButton .newsDetailPrev { text-align: right; }
.news_single .newsDetailButton .newsDetailPrev .content_link_ico { right: auto; left: 20px; }
.news_single .newsDetailButton .newsDetailPrev .content_link_ico:before, .news_single .newsDetailButton .newsDetailPrev .content_link_ico:after { background: url(../../../images/ico_arrow_prev.svg) center no-repeat; background-size: contain; right: auto; left: 0; }
.news_single .newsDetailButton .newsDetailPrev .content_link_ico:after { transform: translateX(100%); }
.news_single .newsDetailButton .newsDetailPrev:hover .content_link_ico:before { animation-name: transformRightLeft_prev; }
.news_single .newsDetailButton .newsDetailPrev:hover .content_link_ico:after { animation-name: transformLeftRight_prev; }
.news_single .newsDetail__date { display: flex; align-items: center; }
.news_single .news2__cat { display: inline-block; border-radius: 30px; background: #f1f0f0; color: #000; padding: .1em 1em; text-align: center; }
.news_single .newsDetail__ttl { font-size: 30px; font-weight: 500; line-height: 1.4; }
.news_single .newsDetail__txt { margin-top: 5em; }

@keyframes transformLeftRight_prev { 0% { transform: translateX(100%); }
  100% { transform: translateX(0); } }
@keyframes transformRightLeft_prev { 0% { transform: translateX(0); }
  100% { transform: translateX(-100%); } }
