@charset "utf-8";

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

reset & root set

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

/* reset
--------------------------------------------------------------*/

*,*::before,*::after { box-sizing: border-box; }
ul,ol { margin: 0; padding: 0; list-style: none; }
body,h1,h2,h3,h4,h5,p,figure,blockquote,dl,dd { margin: 0; font-size: inherit; }
img,video { max-width: 100%; width: 100%; height: auto; display: block; }
header,footer,main,aside,picture { display: block; }


/* iOS Safari tap reset */
body {-webkit-tap-highlight-color: transparent;}





/* root set
--------------------------------------------------------------*/

/* color */
:root {
    --cl-key: #004D9E;
    --cl-txt: #333333;
    --cl-border: #CCCCCC;
    --cl-bg-bl: #E5EDF5;
    --cl-bg-br: #F3EFEC;
    --cl-wh: #fff;
    --cl-bk: #000;
}


/* fixheader height */
:root { --header-height: 6rem; }
@media print, screen and (min-width: 640px) {
:root { --header-height: 10rem; }
}

/* font set */
:root {
    /* font: style weight size / line-height family */
    --ff-base: normal 400 1.4rem / 1.6 'Noto Sans JP', sans-serif;
    --ff-base-normal: 400;
    --ff-base-bold: 700;
    --ff01f: "Open Sans", sans-serif;
    --ff-ff01-bold: 700;
}
@media print, screen and (min-width: 640px) {
:root {
    /* font: style weight size / line-height family */
    --ff-base: normal 400 1.4rem / 1.85 'Noto Sans JP', sans-serif;
}
}





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

base set

----------------------------------------------------------------------------------------------------------------------------*/
html { font-size:calc(100vw / 37.5); scroll-behavior: smooth; scroll-padding-top: var(--header-height); }
body { min-height: 100vh; text-rendering: optimizeSpeed; color: var(--cl-txt); font: var(--ff-base); letter-spacing: 0.04rem; overflow-x: hidden;}
a { color: var(--cl-txt); outline: none; text-decoration: none; }

@media print, screen and (min-width: 640px) {
html { font-size: calc(100vw / 124); }
body { font-size: 1.6rem; }
a { transition: 0.5s; }
a:hover { opacity: 0.7; }
}

@media print, screen and (min-width: 1240px) {
html { font-size: 62.5%; }
}




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

utility & inview set

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

/* utility - base
---------------------------------------------------- */

/* utility - base responsive */
.u-inner { max-width: 110rem; margin: 0 auto; width: 90%; }
.u-only-pc	{ display: none; }
.u-ff01 { font-family: var(--ff01f); font-weight: 700; }
@media print, screen and (min-width: 640px) {
.u-only-sp	{ display: none !important; }
.u-only-pc	{ display: inherit; }
}



/* utility - link
---------------------------------------------------- */

/* utility - link */
.u-link-blank::after { content: ""; display: inline-block; margin-left: 0.5em; width: 1em; height: 1em; background: url(/assets/images/2026v/icon_arw_black.svg) no-repeat center center / contain; }
.u-linkbtn-blank { display: block; position: relative; color: var(--cl-wh); background-color: var(--cl-txt); text-align: center; font-weight: var(--ff-base-bold); padding: 1.75em 1em; }
.u-linkbtn-blank::after { content: ""; display: block; margin-left: 0.5em; width: 1em; height: 1em; mask: url(/assets/images/2026v/icon_arw_black.svg) no-repeat center center / contain; background-color: var(--cl-wh); position: absolute; right: 1.5em; top: 50%; translate: 0 -50%; }

@media print, screen and (min-width: 640px) {
.u-linkbtn-blank { font-size: 2.4rem; }
}


/* iv-animation
---------------------------------------------------- */
.iv-fade { opacity:0; transition: 0.8s; }
.iv-fade._view { opacity:1; }
.iv-up_fade { opacity:0; transform:translate(0, 6rem); transition: 0.8s; }
.iv-up_fade._view { opacity:1; transform:translate(0, 0); }




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

base layout

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


/* header
--------------------------------------------------------------*/

/* header */
.header { display: flex; align-items: center; justify-content: space-between; padding: 0 2rem; height: 6rem; }
.header-logo { display: flex; align-items: center; }
.header-logo-img { width: 16rem; }
.header-logo-txt { margin-left: 1em; padding-top: 0.5em; font-size: 1rem; line-height: 1.2; }
.header-link { font-size: 1.1rem; }

@media print, screen and (min-width: 640px) {
.header { padding: 0 4rem; height: 10rem; }
.header-logo { }
.header-logo-img { width: 31.6rem; }
.header-logo-txt { font-size: 1.4rem; margin-left: 2em;padding-top: 1.5em; }
.header-link { font-size: 1.4rem;  }
}

/* career & comeback */
._lower.header { position: absolute; }
._lower .header-logo-txt { color: var(--cl-wh); }




/* footer
--------------------------------------------------------------*/

/* footer */
.footer { text-align: center; margin: 8rem auto 2rem; }
.footer-logo { width: 27.2rem; margin: auto; }
.footer-name { font-weight: var(--ff-base-bold); margin-top: 2rem; }
.footer-contact { }
.footer-list { display: flex; gap: 2rem; justify-content: center; margin-top: 6rem; }
.footer-list::after { content: "｜"; position: absolute; left: 50%; translate: -50% 0; }
.footer-list-link { font-size: 1.2rem; display: block; width: 10rem; }
.footer-copyright { font-size: 1.0rem; margin-top: 2rem; }

@media print, screen and (min-width: 640px) {
.footer { margin-top: 16rem; }
.footer-logo { width: 31.6rem; }
.footer-name { font-size: 1.8rem; margin-top: 6rem; }
.footer-contact { font-size: 1.8rem; }
.footer-list { margin-top: 8rem; }
.footer-list-link { font-size: 1.4rem; width: 14rem; }
.footer-copyright { margin-top: 4rem; }
}





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

page unique

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

/* root
----------------------------------------------------------------------------------------------------------------------------*/

.root-kv { height: 43rem; display: grid; place-content: center; background: url(/assets/images/2026v/root_kv_sp.jpg) no-repeat center center / cover; }
.root-kv-title { color: var(--cl-wh); font-size: 2.4rem; font-weight: normal; }
.root-nav { display: grid; gap: 2rem; margin-top: 4rem; }
.root-nav-link { display: flex; align-items: center; justify-content: space-between; padding: 0 2rem; background-color: var(--cl-bg-bl); font-weight: var(--ff-base-bold); height: 7rem; }
.root-nav-link::after { content: ""; display: block; margin-left: 0.5em; width: 1em; height: 1em; background: url(/assets/images/2026v/icon_arw_black.svg) no-repeat center center / contain; }

@media print, screen and (min-width: 640px) {
.root-kv { height: 70rem; background-image: url(/assets/images/2026v/root_kv.jpg); }
.root-kv-title { font-size: 4rem; }
.root-nav { grid-template-columns: repeat(3,1fr); gap: 4rem; margin-top: 8rem; }
.root-nav-link { padding: 0 4rem; height: 10rem; }
}


/* career & comeback
----------------------------------------------------------------------------------------------------------------------------*/

/* kv */
.c-kv { height: 43rem; display: grid; align-items: center;  background: no-repeat center center / cover; color: var(--cl-wh); padding: 6rem 2rem 0; }
.c-kv-title { font-size: 2.0rem; }
.c-kv-en { font-size: 4.4rem; line-height: 1.2; margin: 0.2em 0 0.8em; letter-spacing: 0.04em; }
.c-kv-sub { font-weight: var(--ff-base-bold); font-size: 1.6rem; }

@media print, screen and (min-width: 640px) {
.c-kv { height: 80rem; padding: 10rem 4rem 0; }
.c-kv-title { font-size: 3rem; }
.c-kv-en { font-size: 8.8rem; }
.c-kv-sub { font-size: 2.4rem; }
}



.page-career .c-kv { background-image: url(/assets/images/2026v/career_kv_sp.jpg); }
.page-comeback .c-kv { background-image: url(/assets/images/2026v/comeback_kv_sp.jpg); }
@media print, screen and (min-width: 640px) {
.page-career .c-kv { background-image: url(/assets/images/2026v/career_kv.jpg); }
.page-comeback .c-kv { background-image: url(/assets/images/2026v/comeback_kv.jpg); }
}


/* c-title */
.c-title-en { line-height: 1.3; font-size: 2.4rem; }
.c-title { font-size: 1.2rem; }

@media print, screen and (min-width: 640px) {
.c-title-en { font-size: 5rem; }
.c-title { font-size: 1.4rem; }

}



/* c-message */
.c-message { position: relative; margin: 8rem -6% 0; padding: 1px 5% 5%; }
.c-message .c-title-en { margin-top: -0.8em; }
.c-message-title { line-height: 1.5; font-size: 2.4rem; margin-top: 4rem; }
.c-message-txt { font-weight: var(--ff-base-bold); margin-top: 1rem; }
.c-message-link { margin-top: 2rem; }
.c-message-img { position: absolute; top: 1rem; right: 1%; width: 34%; }

.page-career .c-message { background-color: var(--cl-bg-bl); }
.page-comeback .c-message { background-color: var(--cl-bg-br); }

@media print, screen and (min-width: 640px) {
.c-message { margin: 16rem calc((100vw - 100%) / -2) 0 -5%; padding: 1px calc((100vw - 100%) / 2 + 50%) 5% 5%; min-height: 70rem; }
.c-message-title { font-size: 5rem; margin-top: 6rem; }
.c-message-txt { font-size: 1.8rem; margin-top: 4rem; }
.c-message-link {}
.c-message-img { top: 15rem; right: -5%; width: 40%; }
}


/* c-sec01 */
.c-sec01 { margin-top: 6rem; }
.c-sec01-col { margin-top: 2rem; }
.c-sec01-col + .c-sec01-col { margin-top: 4rem; }
@media print, screen and (min-width: 640px) {
.c-sec01 { margin-top: 16rem; }
.c-sec01-col { position: relative; margin-top: 6rem; padding-left: 26%; }
.c-sec01-col + .c-sec01-col { margin-top: 12rem; }
}



/* c-entry */
.c-entry { text-align: center; }
.c-entry-txt { font-weight: var(--ff-base-bold); margin-top: 2rem; }
.c-entry-link { margin-top: 2rem; }
.c-entry-link + .c-entry-txt { margin-top: 4rem; }







/* p-faq */
.p-faq-title { display: grid; grid-template-columns: 1em 1fr; align-items: center; margin: 1.5rem 0; }
.p-faq-title::before { content: ""; display: block; align-self: center; width: 0.6em; height: 2px; background-color: var(--cl-key); }
.p-faq-item { border-top: var(--cl-txt) 1px solid; }
.p-faq-item + .p-faq-item { margin-top: -1px; }
.p-faq-item:last-of-type { border-bottom: var(--cl-txt) 1px solid; }
.p-faq-item-title { font-weight: var(--ff-base-bold); display: grid; grid-template-columns: 2rem 1fr 2rem; padding: 0.75em 0; cursor: pointer; border-bottom: var(--cl-border) 1px solid; }
.p-faq-item-title::before { content: "Q"; font-family: "Open Sans", sans-serif; }
.p-faq-item-title::after { content: ""; display: block; width: 1.6rem; height: 1.6rem; justify-self: center; align-self: center; background: linear-gradient(var(--cl-txt), var(--cl-txt)) center / 100% 1.5px no-repeat, linear-gradient(var(--cl-txt), var(--cl-txt)) center / 1.5px 100% no-repeat; transition: 0.3s ease; }
.p-faq-item-answer { display: grid; grid-template-columns: 2rem 1fr; opacity: 0; }
.p-faq-item-answer::before { content: "A"; font-family: "Open Sans", sans-serif; }
.p-faq-item-answer-bg { font-weight: var(--ff-base-bold); background-color: var(--cl-bg-bl); padding: 0.5em 1em; margin-bottom: 1em; }
.p-faq-item-answer li { list-style-type: disc; line-height: 1.3; margin-left: 1em; }
.p-faq-item-answer li + li { margin-top: 1em;}

.p-faq-item-title.is-open + .p-faq-item-answer { padding: 0.75em 0; opacity: 1; }
.p-faq-item-title.is-open::after { background: linear-gradient(var(--cl-txt), var(--cl-txt)) center / 100% 1.5px no-repeat; transform: rotate(180deg); }

@media print, screen and (min-width: 640px) {
.p-faq-title { margin: 2.5rem 0 0; position: absolute; left: 0; }
.p-faq-item-title { font-size: 1.8rem; grid-template-columns: 3.5rem 1fr 2rem; padding: 2.5rem 0; }
.p-faq-item-title::before { font-size: 2.4rem; margin-top: -0.25em; }
.p-faq-item-answer { grid-template-columns: 3.5rem 1fr; }
.p-faq-item-answer::before { font-size: 2.4rem; margin-top: -0.25em; }
.p-faq-item-answer-bg { padding: 2em; margin: 0 0 1.5em; }
.p-faq-item-title.is-open + .p-faq-item-answer { padding: 3rem 0; }
}



/* p-requirements */
.p-requirements {}
.p-requirements-list { border-top: var(--cl-border) 1px solid; padding: 0.75em 0; }
.p-requirements-list:first-of-type { margin-top: 0.75em; }
.p-requirements-list:last-of-type { border-bottom: var(--cl-border) 1px solid; }
.p-requirements-list-dt {}
.p-requirements-list-dd { margin-left: 1em; }
@media print, screen and (min-width: 640px) {
.p-requirements-list { display: grid; grid-template-columns: 16rem 1fr; padding: 1.5em 0; }
.p-requirements-list:first-of-type { margin-top: 1.5em; }
}


/* p-contact */
.p-contact {}
.p-contact-bg { margin-top: 1em; background-color: var(--cl-bg-br); padding: 0.5em 1em; }
@media print, screen and (min-width: 640px) {
.p-contact-bg { padding: 2em; }
}
