@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@700&display=swap");
:root { --accent: #29abe2; --top: 10; /* z-index top */ --middle: 5; /* z-index middle */ --back: -1; /* z-index back */ }

/* --------- COMMON ---------- */
* { box-sizing: border-box; }
html { font-size: 62.5%; font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif"; }
html::-webkit-scrollbar { width: 1px; }
html::-webkit-scrollbar-track { background-color: #cccccc; }
html::-webkit-scrollbar-thumb { background-color: #fffffff; width: 1px; }

body { scroll-behavior: smooth; }

* > img { width: 100%; height: auto; vertical-align: top; object-fit: contain; }

table { width: 100%; }

/* ---------- animation ---------- */
.UP { opacity: 0; }
.fadeUP { animation: fadeUP 0.45s forwards; opacity: 0; }
@keyframes fadeUP { from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); } }
/* ---------- UTILITY ---------- */
/* link */
a { transition: all linear 0.1s; }
a img { transition: all linear 0.1s; }
a:hover > img { opacity: 0.6; }

a[href*="http"]:not(:has(img)), a[target="_blank"] { background: url("../img/common/icon_link.svg") right center no-repeat; background-size: 14px 14px; padding-right: 18px; }
a[href*="http"]:not(:has(img)):hover, a[target="_blank"]:hover { color: var(--accent); }
a[href*="tel:"] { pointer-events: none; cursor: default; }

/* text */
.notes { font-size: min(3.2vw, 1.4rem); }
.notes::before { content: '※'; display: inline-block; margin-left: 2rem; text-indent: -2rem; }
.space { display: inline-block; width: 1rem; }
.txt--right { text-align: right; }
.txt--center { text-align: center; }
.bold { font-weight: bold; }

/* margin */
.mgbA { margin-bottom: 8px; }
.mgbB { margin-bottom: 16px; }
.mgbC { margin-bottom: 32px; }
.mgbD { margin-bottom: 48px; }
.mgtA { margin-top: 8px; }

/* button */
.btn { display: inline-block; background: linear-gradient(to right, #e71d73 -50%, #00d7ff 100%); border-radius: min(6vw, 48px); color: #ffffff; font-size: min(4vw, 2.8rem); line-height: 1; padding: min(2.75vw, 22px) min(11.25vw, 90px) min(2.75vw, 22px) min(4.25vw, 34px); position: relative; min-width: 300px; }
.btn span { display: block; }
.btn::after { content: ''; display: block; width: min(2.5vw, 20px); height: min(2.5vw, 20px); border-top: 5px solid #ffffff; border-right: 5px solid #ffffff; transform: rotate(45deg) translateY(-45%); position: absolute; top: 45%; right: min(4vw, 32px); transition: all linear 0.1s; }
.btn:hover::after { right: min(3.6vw, 28px); }

@media screen and (max-width: 800px) { .btn { min-width: auto; }
  .btn::after { border-top-width: 2px; border-right-width: 2px; } }
.btn--br { display: inline-block; border: 1px solid #3fa9f5; border-radius: 32px; color: #3fa9f5; font-size: 1.5rem; letter-spacing: 0.4rem; line-height: 1; padding: 9px 56px 9px 21px !important; position: relative; transition: all linear 0.1s; background-image: none !important; }
.btn--br::after { content: ''; display: inline-block; width: 12px; height: 12px; border-top: 3px solid #3fa9f5 !important; border-right: 3px solid #3fa9f5 !important; transform: rotate(45deg) translateY(-40%); position: absolute; top: 40%; right: 24px; transition: all linear 0.1s; }
.btn--br:hover { background-color: var(--accent) !important; color: #ffffff !important; }
.btn--br:hover::after { border-color: #ffffff !important; right: 20px; }

/* title */
.ttl--border { font-size: min(6vw, 3.6rem); line-height: 1; letter-spacing: 0.4rem; display: flex; align-items: center; justify-content: space-between; margin-bottom: min(8.75vw, 70px); }
.ttl--border span { white-space: nowrap; }
.ttl--border::after { content: ''; display: block; background-color: #666666; width: 100%; height: 1px; margin-left: 16px; }
.ttl--border.wh::after { background-color: #fff; }

.ttl--blue { color: #0071bc; font-size: min(6vw, 3.6rem); line-height: 1.5; margin-bottom: min(2.888vw, 32px); }

/* ANIMATED TITILE */
.animated-Title div { display: flex; overflow: hidden; }
.animated-Title span { display: inline-block; vertical-align: middle; transform: translate(0, 105%); transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 0.45s; }
.animated-Title.-visible span { transform: translate(0, 0); }

/* table */
table.tbl--detail01 { margin-left: auto; margin-right: auto; font-size: min(4vw, 2rem); line-height: 1.7; }
table.tbl--detail01 th, table.tbl--detail01 td { padding: min(2vw, 16px) min(5vw, 40px); }
table.tbl--detail01 th { color: #29abe2; font-weight: normal; white-space: nowrap; letter-spacing: 1rem; }

@media screen and (min-width: 801px), print { table.tbl--detail01 { width: calc(100% - 68px); }
  table.tbl--detail01 tr { border-bottom: 1px solid #666666; } }
@media screen and (max-width: 800px) { table.tbl--detail01 { display: block; }
  table.tbl--detail01 tbody, table.tbl--detail01 tr, table.tbl--detail01 th, table.tbl--detail01 td { display: block; }
  table.tbl--detail01 th { text-align: center; background-color: #f1f1f1; }
  table.tbl--detail01 th, table.tbl--detail01 td { padding-left: 0; padding-right: 0; }
  table.tbl--detail01 td { padding-bottom: min(5vw, 40px); } }
/* list */
dl.dl--detail01 { display: flex; flex-wrap: wrap; align-items: flex-end; }
dl.dl--detail01 dt { width: 40%; font-weight: normal; }
dl.dl--detail01 dd { width: 60%; }

@media screen and (min-width: 801px), print { .sp--show { display: none; } }
@media screen and (max-width: 800px) { .pc--show { display: none; } }
/* ---------- LOADING ---------- */
#splash { background: #ffffff; color: #fff; text-align: center; position: fixed; width: 100%; height: 100%; z-index: 999; }
#splash-logo { width: min(50vw, 160px); position: absolute; top: 50%; left: 0; right: 0; margin: auto; transform: translateY(-50%); }
#splash-logo svg { overflow: visible; overflow-clip-margin: unset; }
.filter { fill: #000000; animation: Anm 1s infinite; animation-fill-mode: both; }
.filter:nth-child(1) { animation-delay: 0.7s; }
.filter:nth-child(2) { animation-delay: 0.14s; }
.filter:nth-child(3) { animation-delay: 0.21s; }
.filter:nth-child(4) { animation-delay: 0.28s; }
.filter:nth-child(5) { animation-delay: 0.35s; }
.filter:nth-child(6) { animation-delay: 0.42s; }

@keyframes Anm { 0% { transform: translateY(0px); fill: #e71d73; }
  50% { transform: translateY(12px); }
  100% { transform: translateY(0px); fill: #00d7ff; } }
/* ---------- CONTAINER ---------- */
.inner { max-width: 1108px; margin-left: auto; margin-right: auto; }

@media screen and (max-width: 1107px) { .inner { padding-left: 3vw; padding-right: 3vw; } }
/* ---------- HEADER ---------- */
header { background-color: #ffffff; width: 100%; padding-top: 48px; padding-bottom: 32px; position: sticky; top: 0; left: 0; z-index: var(--top); box-shadow: 0 0 9px rgba(0, 0, 0, 0.1); }

.logo { display: inline-block; margin-left: 7px; margin-left: 8.594vw; }
.logo img { display: inline-block; vertical-align: middle; width: 182px; height: 24px; }
.logo span { color: #4d4d4d; font-size: min(2.5vw, 1.5rem); letter-spacing: 0.2rem; display: inline-block; vertical-align: middle; margin-left: min(6vw, 48px); }

@media screen and (max-width: 800px) { header { padding: 16px 0; height: 48px; }
  header .logo { margin-left: 4vw; }
  header .logo img { width: 22.75vw; height: 3vw; } }
/* ---------- FOOTER ---------- */
footer .inner { padding-top: min(11.5vw, 92px); padding-bottom: min(5vw, 40px); }

.footer__logo { display: inline-block; margin-bottom: 18px; }
.footer__logo + p { font-size: 1.2rem; line-height: 1.5; }
.footer__logo + p span { display: inline-block; }

ul.footer__links { font-size: 1.2rem; display: flex; align-items: center; column-gap: min(4vw, 32px); }

.copyright { text-align: center; margin-top: 100px; }

@media screen and (min-width: 801px), print { footer .inner { display: grid; grid-template-columns: 1fr 1fr; }
  .footer__logo { grid-area: 1 / 1; }
  .footer__logo img { width: 378px; height: 28px; }
  .footer__logo + p { grid-area: 2 / 1; }
  ul.footer__links { grid-area: 2 / 2; justify-content: end; }
  .copyright { grid-area: 3 / 1; grid-column: 1 / 3; } }
@media screen and (max-width: 800px) { .footer__logo img { width: 70vw; }
  ul.footer__links { margin-top: min(10vw, 40px); }
  .footer__logo + p span { display: block; } }
@media screen and (max-width: 480px) { .footer__logo img { width: 80vw; }
  ul.footer__links { display: block; font-size: 1.3rem; }
  ul.footer__links li { margin: 4px 0; }
  ul.footer__links li a { display: block; background-color: #ffffff; border: 1px solid #cccccc; padding-top: 16px; padding-bottom: 16px; padding-left: 16px; background-position: 96% center; } }
/* ---------- KV ---------- */
.kv { width: 100%; position: relative; }

.kv__title { color: #ffffff; font-size: 4.5rem; line-height: 1; position: absolute; }
.kv__title img { display: inline-block; vertical-align: middle; }
.kv__title div { margin-bottom: 32px; }
.kv__title div:nth-child(1) span:nth-child(1) { transition-delay: 0.06s; width: 40px; height: 48px; }
.kv__title div:nth-child(1) span:nth-child(2) { transition-delay: 0.12s; width: 48px; height: 48px; }
.kv__title div:nth-child(1) span:nth-child(3) { transition-delay: 0.18s; width: 20px; height: 48px; }
.kv__title div:nth-child(1) span:nth-child(4) { transition-delay: 0.24s; width: 52px; height: 48px; }
.kv__title div:nth-child(1) span:nth-child(5) { transition-delay: 0.30s; width: 46px; height: 48px; }
.kv__title div:nth-child(1) span:nth-child(6) { transition-delay: 0.36s; width: 52px; height: 48px; }
.kv__title div:nth-child(2) span:nth-child(1) { transition-delay: 0.42s; }
.kv__title div:nth-child(2) span:nth-child(2) { transition-delay: 0.48s; }
.kv__title div:nth-child(2) span:nth-child(3) { transition-delay: 0.54s; }
.kv__title div:nth-child(2) span:nth-child(4) { transition-delay: 0.60s; }
.kv__title div:nth-child(3) span:nth-child(1) { transition-delay: 0.66s; }
.kv__title div:nth-child(3) span:nth-child(2) { transition-delay: 0.72s; }
.kv__title div:nth-child(3) span:nth-child(3) { transition-delay: 0.78s; }
.kv__title div:nth-child(3) span:nth-child(4) { transition-delay: 0.84s; }

.scrolldown { color: #ffffff; font-size: 1.2rem; letter-spacing: 0.2rem; position: absolute; bottom: -94px; overflow: hidden; pointer-events: none; }
.scrolldown span { display: block; height: 132px; width: 1px; background-color: #4d4d4d; margin: 6px auto 0; position: relative; }
.scrolldown span::after { content: ''; display: block; width: 1px; height: 40px; margin: auto; background-color: #ffffff; animation: scrolldown linear 1.25s infinite; position: absolute; top: 0; }

@keyframes scrolldown { 0% { top: 0; }
  30% { background-color: #00d7ff; }
  100% { top: 132px; } }
@media screen and (min-width: 801px), print { .kv { background: url(../img/top/kv.jpg) center center no-repeat; background-size: cover; height: calc(100vh - 104px); min-height: 720px; }
  .kv__title { top: 50%; left: 8.594vw; transform: translateY(-50%); }
  .scrolldown { left: 8.594vw; } }
@media screen and (max-width: 800px) { .kv { background: url(../img/top/kv.jpg) center center no-repeat; background-size: cover; height: calc(100vh - 48px); min-height: 592px; }
  .kv__title { top: 85%; left: 8.594vw; transform: translateY(-85%); }
  .scrolldown { left: 0; right: 0; margin: auto; text-align: center; } }
@media screen and (max-width: 414px) { .kv { background-image: url(../img/top/kv_sp.jpg); } }
/* ---------- NEWS ---------- */
.news { background-color: #ffffff; display: flex; column-gap: min(5.75vw, 46px); padding: min(1.75vw, 14px) min(3vw, 40px); position: absolute; }
.news__title { color: #e60012; font-size: min(3vw, 1.8rem); line-height: 1; }
.news__topics { font-size: 10px; line-height: 1.3; letter-spacing: 0.1rem; overflow: hidden; }
.news__topics div.slick-slide { display: flex !important; column-gap: 10px; padding: 5px 0; }

@media screen and (min-width: 801px), print { .news { width: 78.125vw; bottom: 28px; right: 0; } }
@media screen and (max-width: 800px) { .news { width: 96%; top: 2%; right: 0; left: 0; margin: auto; } }
@media screen and (max-width: 480px) { .news { display: block; padding-top: 14px; }
  .news__topics { font-size: 11px; } }
/* ---------- ABOUTUS ---------- */
.aboutus { padding-top: min(40vw, 175px); padding-bottom: min(30vw, 216px); }
.aboutus > .inner { position: relative; }

.aboutus__title { color: #3d3a35; font-size: min(6vw, 3.6rem); line-height: 1.7; letter-spacing: 0.4rem; margin-bottom: 16px; }
.aboutus__title.-visible div:nth-child(1) span:nth-child(1) { transition-delay: 0.06s; }
.aboutus__title.-visible div:nth-child(1) span:nth-child(2) { transition-delay: 0.12s; }
.aboutus__title.-visible div:nth-child(1) span:nth-child(3) { transition-delay: 0.18s; }
.aboutus__title.-visible div:nth-child(1) span:nth-child(4) { transition-delay: 0.24s; }
.aboutus__title.-visible div:nth-child(1) span:nth-child(5) { transition-delay: 0.32s; }
.aboutus__title.-visible div:nth-child(1) span:nth-child(6) { transition-delay: 0.38s; }
.aboutus__title.-visible div:nth-child(1) span:nth-child(7) { transition-delay: 0.42s; }
.aboutus__title.-visible div:nth-child(1) span:nth-child(8) { transition-delay: 0.48s; }
.aboutus__title.-visible div:nth-child(1) span:nth-child(9) { transition-delay: 0.54s; }
.aboutus__title.-visible div:nth-child(2) span:nth-child(1) { transition-delay: 0.60s; }
.aboutus__title.-visible div:nth-child(2) span:nth-child(2) { transition-delay: 0.66s; }
.aboutus__title.-visible div:nth-child(2) span:nth-child(3) { transition-delay: 0.72s; }
.aboutus__title.-visible div:nth-child(2) span:nth-child(4) { transition-delay: 0.78s; }
.aboutus__title.-visible div:nth-child(2) span:nth-child(5) { transition-delay: 0.84s; }

.aboutus__textarea { padding-left: min(3.625vw, 29px); }
.aboutus__textarea p { color: #3d3a35; font-size: min(4vw, 2.2rem); line-height: 2; letter-spacing: 0.2rem; margin-bottom: min(5vw, 40px); }
.aboutus__textarea p > span { display: block; }

.aboutus__img { width: min(58.75vw, 470px); height: min(58.125vw, 465px); position: absolute; top: 50%; transform: translateY(-50%); right: 33px; opacity: 0; transition: opacity linear 0.5s; z-index: var(--back); }
.aboutus__img::after { content: ''; display: block; width: min(57.5vw, 460px); height: min(54vw, 432px); background: linear-gradient(to right, #e71d73 0%, #00d7ff 100%); position: absolute; bottom: 0; left: 0; z-index: var(--back); opacity: 0; transition: all linear 0.5s; transition-delay: 0.24s; }
.aboutus__img.move { opacity: 1; }
.aboutus__img.move::after { bottom: -16px; left: 33px; opacity: 1; }

@media screen and (max-width: 1000px) { .aboutus__img { left: 0; right: 0; margin: auto; opacity: 0.3; filter: blur(3px); }
  .aboutus__img.move { opacity: 0.3; } }
/* ---------- 数字で見るCRE ---------- */
.numbers { background: url("../img/top/bg_paper.jpg") center center repeat; background-size: contain; padding: min(40vw, 97px) 0 min(40vw, 140px); }
.numbers__title { color: #353535; font-size: min(5vw, 4.4rem); text-align: center; margin-bottom: min(6vw, 110px); }
.numbers__wrap { display: grid; }

dl.numbers__item { background-color: #fff; color: #3d3a35; padding: min(4vw, 16px) min(3vw, 30px); text-align: center; }
dl.numbers__item dt { font-size: min(3vw, 1.8rem); letter-spacing: 0.3rem; font-weight: normal; margin-bottom: 18px; }
dl.numbers__item dt img { margin-top: 10px; }
dl.numbers__item dd { font-size: min(5vw, 3.3rem); }
dl.numbers__item dd span { font-family: "Noto Sans JP", sans-serif; font-weight: 700; font-size: min(7vw, 4.4rem); line-height: 1; letter-spacing: 0.4rem; }
dl.numbers__item dd p { font-size: min(3vw, 1.6rem); line-height: 1.5; }

.numbers__item01 img { width: 92px; height: 70px; }
.numbers__item02 img { width: 106px; height: 80px; }
.numbers__item03 img { width: 82px; height: 82px; }
.numbers__item04 img { width: 72px; height: 66px; }
.numbers__item05 img { width: 77px; height: 75px; }
.numbers__item06 img { width: 50px; height: 75px; }

@media screen and (min-width: 801px), print { .numbers__wrap { grid-template-columns: 1fr 1fr 1fr; grid-gap: min(7.581vw, 84px); } }
@media screen and (max-width: 800px) { .numbers__wrap { grid-template-columns: 1fr 1fr; grid-gap: 3%; }
  dl.numbers__item { display: flex; flex-wrap: wrap; }
  dl.numbers__item dt, dl.numbers__item dd { width: 100%; }
  dl.numbers__item dd { margin-top: auto; }
  dl.numbers__item.numbers__item02 dd { margin-top: unset; } }
/* ---------- 募集要項 ---------- */
.application { padding-top: min(20vw, 168px); padding-bottom: min(10vw, 200px); }

.flow { background-color: #e3edee; background-image: radial-gradient(at 68% 45%, #e2f9f1 0px, transparent 50%), radial-gradient(at 99% 98%, #fbcbdd 0px, transparent 50%), radial-gradient(at 0% 0%, #bcc5e1 0px, transparent 50%), radial-gradient(at 0% 100%, #ccd9f0 0px, transparent 50%); padding-top: min(20vw, 112px); padding-bottom: min(30vw, 68px); }

ul.flowchart { display: grid; grid-gap: min(6vw, 48px); margin-bottom: 24px; }
ul.flowchart li { font-size: 2rem; line-height: 1; background-color: #fff; position: relative; z-index: 1; padding: 90px 16px 32px 16px; }
ul.flowchart li::before { content: ''; display: block; position: absolute; top: 16px; left: 0; right: 0; z-index: -1; margin: auto; }
ul.flowchart li:nth-child(1)::before { background: url("../img/top/num_01.png") center center no-repeat; background-size: contain; }
ul.flowchart li:nth-child(2)::before { background: url("../img/top/num_02.png") center center no-repeat; background-size: contain; }
ul.flowchart li:nth-child(3)::before { background: url("../img/top/num_03.png") center center no-repeat; background-size: contain; }
ul.flowchart li:nth-child(4)::before { background: url("../img/top/num_04.png") center center no-repeat; background-size: contain; }
ul.flowchart li:last-child { background-color: #29abe2; color: #fff; padding-top: 160px; }
ul.flowchart li:not(:last-child)::after { content: ''; display: block; height: 32px; width: 16px; background: url("../img/common/arrow.png") center center no-repeat; position: absolute; top: 50%; transform: translateY(-50%); right: -32px; }
ul.flowchart li p { font-size: 1.3rem; line-height: 1.5; margin-top: 16px; }
ul.flowchart li p:first-child { margin-top: 24px; }

@media screen and (min-width: 801px), print { .sp--show480 { display: none; }
  ul.flowchart { grid-template-columns: 1fr 1fr 1fr 1fr; }
  ul.flowchart li::before { width: 140px; height: 108px; } }
@media screen and (max-width: 800px) { .sp--show480 { display: none; }
  ul.flowchart { grid-template-columns: 1fr 1fr; margin-right: 32px; }
  ul.flowchart li::before { width: 17.5vw; height: 13.5vw; } }
@media screen and (max-width: 480px) { .sp--show480 { display: block; }
  ul.flowchart { grid-template-columns: 1fr; margin-right: 0; }
  ul.flowchart li { padding-left: 32px; padding-right: 32px; }
  ul.flowchart li:last-child { padding-top: 100px; }
  ul.flowchart li:not(:last-child)::after { top: auto; bottom: -28px; left: 0; right: 0; margin: auto; transform: rotate(90deg); } }
