@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%; height: auto; display: block; }
header,footer,main,aside,picture { display: block; }

/* form parts reset */
textarea { font: inherit; appearance: none; }
select { border: none; outline: none; font-weight: inherit; }
button,input[type="submit"],input[type="button"] { appearance: button; border: none; outline: none; cursor: pointer; }
input[type="submit"]:focus,input[type="button"]:focus { outline-offset: -2px;}
input[type="submit"]::-webkit-search-decoration,input[type="button"]::-webkit-search-decoration { display: none;}

/* iOS Safari tap reset */
body {-webkit-tap-highlight-color: transparent;}



/* print set
--------------------------------------------------------------*/
@media print{
html { width: 1400px; }
.header { position: relative !important; }/* fixheader clear */
[class*="iv-"] { opacity: 1 !important;  transform: none !important; }/* inview view */
}


/* root set
--------------------------------------------------------------*/

/* color */
:root {
    --cl-key01: #1761C4;
    --cl-txt: #121212;
    --cl-border: #CCCCCC;
    --cl-bg-gr: #FAFAFA;
    --cl-wh: #fff;
    --cl-error: #E30000;
    --cl-linkbtn-txt: #fff;
    --cl-linkbtn-bg: #1761C4;
    --cl-bk: #121212;
    /*--cl-linktxt: #FDCC00;*/
    /*--cl-footer-bg: #00122E;*/
    --cl-rec-yw: #EBFF00;
    --cl-rec-bl01: #2082BE;
    --cl-rec-bl02: #4A98DD;
    --cl-rec-bg: #EFF4FA;
}

/* fixheader height */
:root { --header-height: 8rem; }
@media print, screen and (min-width: 640px) {
:root { --header-height: 14rem; }
}

/* font set */
:root {
    /* font: style weight size / line-height family */
    --ff-base: normal 500 1.4rem / 1.6 'Noto Sans JP', sans-serif;
    --ff-base-light: 700;
    --ff-base-bold: 700;
    --ff01f: "Figtree", sans-serif;
    --ff-01f-semibold: 600;
    --ff-01f-bold: 700;
    --ff-rec: normal 400 1.4rem / 1.6 "Caveat", cursive;
}
@media print, screen and (min-width: 640px) {
:root {
    /* font: style weight size / line-height family */
    --ff-base: normal 500 1.6rem / 2 'Noto Sans JP', sans-serif;
    --ff-rec: normal 400 1.6rem / 2 "Caveat", cursive;
}
}



/*----------------------------------------------------------------------------------------------------------------------------

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; -webkit-text-size-adjust:100%; text-size-adjust: 100%; color: var(--cl-txt); font: var(--ff-base); }
a { color: var(--cl-txt); outline:none; text-decoration:none; }
body._fixed { overflow: hidden ;}

@media print, screen and (min-width: 640px) {
html { font-size: calc(100vw / 128); }
body { font-size: 1.6rem; }
a { transition: 0.5s; }
a:hover { opacity: 0.7; }
button:hover { opacity: 0.7; }
}

@media print, screen and (min-width: 1240px) {
html { font-size:62.5%; }
}


/* form set */
input:not([type=radio],[type=checkbox],[type=submit]),
select,
textarea { padding:0 0.75rem; background-color:var(--cl-wh); border:var(--cl-border) 1px solid; width:100%; font-size: 1.6rem; height: 4rem; font-family: inherit; border-radius: 1rem; }
textarea { padding:1.0rem 1.25rem; min-height:20rem; }
button { cursor: pointer; padding: 0; background: none; color: var(--cl-txt); width: 100%; font-size: inherit; }
input::placeholder,
textarea::placeholder { color:var(--cl-txtl); font-size: 0.8em; }
label { display: inline-block; width: fit-content; }
label:hover { cursor: pointer; }
select {}

@media print, screen and (min-width: 640px) {
input:not([type=radio],[type=checkbox],[type=submit]),
select,
textarea { height: 5rem; padding: 1rem 1.25rem; }
select:hover { cursor: pointer; }
}



/*----------------------------------------------------------------------------------------------------------------------------

utility & inview set

----------------------------------------------------------------------------------------------------------------------------*/

/* utility - base
---------------------------------------------------- */

/* utility - base responsive */
.u-inner { max-width: 110rem; margin: 0 auto; width: 90%; }
.u-inner._inner-min { max-width: 96rem; }
.u-wrapsect { padding: 8rem 0; }
.u-wrapsect:not(._bg) + .u-wrapsect:not(._bg) { padding-top: 0; }
.u-wrapsect._bg { background-color: var(--cl-bg-gr); }
.u-wrapblck { padding: 2rem 0; }
.u-only-pc	{ display: none; }

@media print, screen and (min-width: 640px) {
.u-inner { }
.u-wrapsect { padding: 16rem 0; }
.u-wrapblck { padding: 4rem 0; }
.u-only-sp	{ display: none !important; }
.u-only-pc	{ display: inherit; }
}


/* utility - base */
.u-ff01 { font-family: var(--ff01f); }
.u-cl-txt { color: var(--cl-txt); }
.u-cl-wh { color: var(--cl-wh); }
.u-cl-key01 { color: var(--cl-key01); }
.u-iframebox { position:relative; padding-bottom: 45.46%; height:0; }
.u-iframebox iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.u-w30 { width: 30% !important; }
.u-w50 { width: 50% !important; }
.u-mt01 { margin-top: 1rem !important; }
.u-mt02 { margin-top: 2rem !important; }
.u-mt03 { margin-top: 3rem !important; }
.u-mb01 { margin-bottom: 1rem !important; }
.u-mb02 { margin-bottom: 2rem !important; }
.u-mb03 { margin-bottom: 3rem !important; }


/* utility - project */
.u-mt02-04 { margin-top: 2rem; }
@media print, screen and (min-width: 640px) {
.u-mt02-04 { margin-top: 4rem; }
}


/* utility - link
---------------------------------------------------- */

/* utility - linkbtn */
.u-linkbtn { display: grid; grid-template-columns: 1fr auto 1fr; column-gap: 0.5em; align-items: center; padding: 0 1em; color: var(--cl-linkbtn-txt); background-color: var(--cl-linkbtn-bg); width: 33.5rem; height: 8rem; margin-inline: auto; border: var(--cl-linkbtn-bg) 2px solid; font-size: inherit; transition: 0.5s; border-radius: 5rem; font-weight: var(--ff-base-bold); font-size: 1.6rem; }
.u-linkbtn::before { content: ""; transition: 0.5s; }
.u-linkbtn::after { content: ""; display: inline-grid; width: 1em; height: 1em; justify-self: end; mask: url(/assets/images/common/ico_ar.svg) no-repeat center center / contain; background-color: var(--cl-linkbtn-txt); transition: 0.5s; }

.u-linkbtn._recruit { color: var(--cl-rec-bl01); background-color: var(--cl-rec-yw); border-color: var(--cl-rec-yw); }
.u-linkbtn._recruit::after { background-color: var(--cl-rec-bl01); }


.u-linkbtn._rev {}
.u-linkbtn._rev::before { content: ""; display: inline-grid; width: 1em; height: 1em; mask: url(/assets/images/common/ico_ar.svg) no-repeat center center / contain; background-color: var(--cl-linkbtn-txt); rotate: 180deg; }
.u-linkbtn._rev::after { content: inherit; }

@media print, screen and (min-width: 640px) {
.u-linkbtn { margin-inline: 0; width: 32rem; font-size: 1.8rem; }
.u-linkbtn:hover { color: var(--cl-linkbtn-bg); background-color: var(--cl-linkbtn-txt); opacity: 1; }
.u-linkbtn:hover::after { background-color: var(--cl-linkbtn-bg); }
.u-linkbtn._rev:hover::before { background-color: var(--cl-linkbtn-bg); }
.u-linkbtn._recruit:hover { color: var(--cl-rec-yw); background-color: var(--cl-rec-bl01); border-color: var(--cl-rec-yw); }
.u-linkbtn._recruit:hover::after { background-color: var(--cl-rec-yw); }

}




/* 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 { position: fixed; z-index: 100; top: 0; padding: 0 2rem; height: var(--header-height); display: grid; align-items: center; background-color: var(--cl-wh); width: 100%; }
.header-logo { width: 24rem; }
.header-nav { display: none; }

@media print, screen and (min-width: 640px) {
.header { padding: 0 4rem; display: grid; grid-template-columns: 33rem auto; gap: 2rem; }
.header-logo { width: 100%; }
.header-nav { display: block; }
.header-nav-gnav { display: flex; }
}


/* gnav */
@media print, screen and (min-width: 640px) {
.gnav { display: flex; justify-content: flex-end; align-items: center; gap: 5rem; }
.gnav-item { }
.gnav-item-link { display: flex; align-items: center; font-size: 1.6rem; font-weight: var(--ff-base-bold); }
.gnav-item-link._contact { color: var(--cl-wh); background-color: var(--cl-key01); width: 21rem; height: 6rem; justify-content: center; border-radius: 8rem; transition: 0.5s; border: var(--cl-key01) 2px solid; }
.gnav-item-link:hover { color: var(--cl-key01); }
.gnav-item-link._recruit { display: grid; grid-template-columns: 1fr 1em; width: fit-content; align-items: center; }
.gnav-item-link._recruit::after { content: ""; width: 0.9em; height: 0.9em; mask: url(/assets/images/common/ico_blank.svg) no-repeat center center / contain; background-color: var(--cl-txt); margin-left: 0.5em; transition: 0.5s; }
.gnav-item-link._recruit:hover::after { background-color: var(--cl-key01); opacity: 1; }
.gnav-item-link._contact:hover { background-color: var(--cl-wh); opacity: 1; color: var(--cl-key01); }
.is-active .gnav-item-link { color: var(--cl-key01); }
}


/* gnavmega */
.gnavmega { display: none; }

@media print, screen and (min-width: 640px) {
.gnavmega { position: absolute; top: 12rem; left: 50%; translate: -50% 0; width: 100%; background-color: var(--cl-rec-bg); padding: 8rem; border-radius: 2rem; max-width: 126rem; }
.gnavmega:before { content: ""; position: absolute; top: -6rem; right: 50%; margin-left: -2.5rem; border: 2.5rem solid transparent; border-bottom: 5rem solid var(--cl-rec-bg); }
.gnavmega.is-visible { display: block; }
.gnavmega-inner { /*max-width: 110rem; margin: auto;*/ }
.gnavmega-list { display: grid; grid-template-columns: repeat(5,1fr); gap: 7.5rem; }
.gnavmega-link { width: 16rem; text-align: center; font-size: 1.8rem; font-weight: var(--ff-base-bold); overflow: hidden; }
.gnavmega-link:hover { color: var(--cl-key01); }
.gnavmega-link-pic { overflow: hidden; border-radius: 1rem; }
.gnavmega-link-img { transition: 0.5s; }
.gnavmega-link:hover .gnavmega-link-img { scale: 1.1; }
.gnavmega .c-blocktitle { margin: 0 0 4rem; }
}
@media print, screen and (min-width: 1280px) {
.gnavmega:before { right: calc(50% - ((100vw - 100%) / 2 )); }

}




/* footer
--------------------------------------------------------------*/


/* footer */
.footer { padding-top: 8rem; }
.finfo { }
.finfo-logo { width: 100%; }
.finfo-name { font-size: 1.4rem; font-weight: var(--ff-base-bold); margin-top: 1.5rem; }
.finfo-address { font-size: 1.2rem; margin-top: 1.5rem; }
.fnavwrap { margin-top: 4rem; }
.fnav { }
.fnav-item { margin: 2.5rem 0;  }
.fnav-item-link { font-size: 1.4rem; font-weight: var(--ff-base-bold); }
.fnav-item-link._recruit { display: grid; grid-template-columns: 1fr 1em; width: fit-content; align-items: center; }
.fnav-item-link._recruit::after { content: ""; width: 0.9em; height: 0.9em; mask: url(/assets/images/common/ico_blank.svg) no-repeat center center / contain; background-color: var(--cl-txt); margin-left: 0.5em; transition: 0.5s; }

.fnavchild {}
.fnavchild-item { margin: 1rem 0; }
.fnavchild-item-link { font-size: 1.2rem; font-weight: var(--ff-base-bold); }
.fnavchild-item-link::before { content: "―"; margin-right: 0.5em;}
.fcopy { font-size: 1.0rem; padding: 5rem 0 4rem; }

@media print, screen and (min-width: 640px) {
.footer { padding-top: 16rem; }
.footer-row { display: flex; justify-content: space-between; }
.finfo { margin-top: 1.5rem; }
.finfo-logo { width: 33rem; }
.finfo-name { font-size: 1.6rem; }
.finfo-address { font-size: 1.4rem; line-height: 2; margin-top: 0; }
.finfo-sns { margin-top: 3rem; }
.finfo-sns-item { font-size: 1.4rem;}
.fnavwrap { margin-top: 0; display: flex; justify-content: space-between; gap: 8rem; }
.fnav { }
.fnav-item { margin: 2rem 0; }
.fnav-item-link { font-size: 1.4rem; }
.fnav-item-link:hover { color: var(--cl-key01); opacity: 1; }
.fnav-item-link._recruit:hover::after { background-color: var(--cl-key01); opacity: 1; }
.fnavchild-item { margin: 0.5rem 0; }
.fnavchild-item-link:hover { color: var(--cl-key01); opacity: 1; }
.fcopy { font-size: 1.2rem; text-align: center; margin-top: 4rem; }
}



/* cta */
.cta { display: grid; align-content: center; height: 52rem; background: url(/assets/images/common/bg_cta.webp) no-repeat center center / cover; padding: 8rem 2rem; margin-bottom: 4rem; }
.cta-lead { color: var(--cl-wh); text-align: center; }
.cta-row { display: flex; flex-flow: column; gap: 2rem; margin-top: 3rem; }
.cta-tel { display: grid; gap: 0.5rem 1rem; place-content: center; background-color: var(--cl-wh); border-radius: 1rem; width: 33.5rem; height: 8rem; color: var(--cl-key01); font-weight: var(--ff-base-bold); line-height: 1; }
.cta-tel-ico { grid-area: 1/1/3/2; width: 4rem; mask: url(/assets/images/common/ico_tel.svg) no-repeat center center / contain; background-color: var(--cl-key01); transition: 0.5s; }
.cta-tel-num { grid-area: 1/2/2/3; font-size: 2.4rem; }
.cta-tel-ex { grid-area: 2/2/3/3; display: block; font-size: 1.2rem; }
.cta-mail { background-color: var(--cl-key01); border-radius: 1rem; display: grid; grid-template-columns: 1fr auto 1fr; column-gap: 0.5em; align-items: center; padding: 0 1em; color: var(--cl-wh); font-weight: var(--ff-base-bold); width: 33.5rem; height: 8rem; font-size: 1.6rem; }
.cta-mail::before { content: ""; transition: 0.5s;  }
.cta-mail::after { content: ""; display: inline-grid; width: 1em; height: 1em; justify-self: end; mask: url(/assets/images/common/ico_ar.svg) no-repeat center center / contain; background-color: var(--cl-wh); transition: 0.5s; }

.cta .c-secttitle { margin-top: 0; }
.cta .c-secttitle-sub,
.cta .c-secttitle-main { text-align: center; color: var(--cl-wh); }

@media print, screen and (min-width: 640px) {
.cta { height: 60.8rem; }
.cta-row { margin-top: 6rem; flex-flow: row; justify-content: center; }
.cta-tel { width: 50rem; height: 10.6rem; gap: 1rem 2rem; }
.cta-tel:hover { background-color: var(--cl-key01); color: var(--cl-wh); opacity: 1; }
.cta-tel:hover .cta-tel-ico { background-color: var(--cl-wh); }
.cta-tel-ico { width: 5rem; }
.cta-tel-num { font-size: 3.6rem; }
.cta-tel-ex { font-size: 1.4rem; }
.cta-mail { width: 50rem; height: 10.6rem; font-size: 2.4rem; }
.cta-mail:hover { opacity: 1; color: var(--cl-key01); background-color: var(--cl-wh); }
.cta-mail:hover::after { background-color: var(--cl-key01); }
}







/* spitem
--------------------------------------------------------------*/

/* _spopen changes */
@media print, screen and  (max-width: 1023px) {
body._spopen { height: 100%; overflow: hidden; }
}


/* spnav-btn */
.spitem-btn { position: fixed; top: 2rem; right: 2rem; -webkit-appearance: none; -moz-appearance: none; appearance: none; border: none; background-color:var(--cl-key01); cursor: pointer; width: 4rem; height: 4rem; outline: none; transition:0.5s; z-index: 130; border-radius: 50%; cursor: pointer;}
.spitem-btn::before,
.spitem-btn::after { content: ""; position: absolute; left: 50%; width: 1.4rem; height: 2px; background-color: var(--cl-wh); transform: translateX(-50%); transition:0.3s; }
.spitem-btn::before { top: 2.5rem; }
.spitem-btn::after  { bottom: 2.5rem; }
.spitem-btn-line { position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; width: 1.4rem; height: 2px; background-color: var(--cl-wh); transition: 0.3s; overflow: hidden; }

._close.spitem-btn { }
._close.spitem-btn::before,
._close.spitem-btn::after { content: ""; position: absolute; left: 50%; background-color:var(--cl-wh); transform: translateX(-50%); transition:0.3s; }
._close.spitem-btn::before { top: 50%; transform: translate(-50%,-50%) rotate(45deg) ; left: 50%; }
._close.spitem-btn::after  { bottom: auto; top: 50%; transform: translate(-50%,-50%) rotate(-45deg); left: 50%;}
._close.spitem-btn .spitem-btn-line { display: none; }

@media print, screen and (min-width: 640px) {
.spitem { display: none; }
.spitem-btn { display: none; }
}


/* spnav [wrap] */
.spmenu { opacity: 0; visibility: hidden; position: fixed; top: var(--header-height); right: 0; width: 100%; z-index: 100; transition: 0.3s; }
.spmenu._spopen { opacity: 1; visibility: visible; }
.spmenu-inner { width: 100%; height: calc(100vh - var(--header-height)); padding: 2rem 4rem 0; overflow-y: scroll; background-color: var(--cl-wh);}


/* spnavMenu */
.spnav { margin-top: 2rem;  }
.spnav-item { font-size: 1.6rem; }
.spnav-item-link { display: block; font-weight: var(--ff-base-bold); padding: 1.75rem 0; line-height: 1; width: fit-content; }
.spnav-item-link._contact { color: var(--cl-bk); background-color: var(--cl-key01); color: var(--cl-wh); width: 100%; height: 6rem; display: flex; align-items: center; place-content: center; margin-top: 2rem; border-radius: 5rem; }
.spnav-item-link._recruit { display: grid; grid-template-columns: 1fr 1em; width: fit-content; align-items: center; }
.spnav-item-link._recruit::after { content: ""; width: 0.9em; height: 0.9em; mask: url(/assets/images/common/ico_blank.svg) no-repeat center center / contain; background-color: var(--cl-txt); margin-left: 0.5em; transition: 0.5s; }

.spnavchild {}
.spnavchild-item {}
.spnavchild-item-link { display: block; font-size: 1.4rem; font-weight: var(--ff-base-bold); padding: 1rem 0; line-height: 1; width: fit-content; }
.spnavchild-item-link::before { content: "―"; margin-right: 0.5em;}



/* main contents
--------------------------------------------------------------*/
.main { min-height: 50vh; }
@media print, screen and (min-width: 640px) {
.main { }
}



/* pagetitle */
.pagetitle { position: relative; height: 16rem; margin-top: var(--header-height); }
.pagetitle-bg { position: absolute; top: 0; left: 0; width: 100%; }
.pagetitle-bg-pic { width: 100%; height: 16rem; object-fit: cover;}
.pagetitle-box { height: 16rem; display: grid; align-items: center;}
.pagetitle-en { position: relative; font-size: 1.8rem; line-height: 1.1; color: var(--cl-wh); }
.pagetitle-jp { position: relative; font-size: 3.6rem; color: var(--cl-wh); font-weight: var(--ff-base-bold); margin-top: 1rem; line-height: 1.2; }
.pagetitle-jp-ex { position: relative; font-size: 1.8rem; font-weight: var(--ff-base-bold); color: var(--cl-wh); }
.pagetitle-jp-ex::before { content: "―"; margin-right: 0.5em; }

@media print, screen and (min-width: 640px) {
.pagetitle { height: 38rem; }
.pagetitle-bg { }
.pagetitle-bg-pic { width: 100%; height: 38rem; }
.pagetitle-box { height: 38rem;}
.pagetitle-en { font-size: 2.4rem; }
.pagetitle-jp { font-size: 6rem; }
.pagetitle-jp-ex { font-size: 3.6rem; }
}






/*----------------------------------------------------------------------------------------------------------------------------

component

----------------------------------------------------------------------------------------------------------------------------*/



/* title
--------------------------------------------------------------*/

/* title - section */
.c-secttitle { margin: 0 0 3rem; }
.c-secttitle-sub { font-size: 1.8rem; line-height: 1.1; font-weight: var(--ff-base-bold); color: var(--cl-key01); }
.c-secttitle-main { margin-top: 0.5rem; font-size: 3.6rem; font-weight: var(--ff-base-bold); line-height: 1.2; }

@media print, screen and (min-width: 640px) {
.c-secttitle { margin: 0 0 6rem; }
.c-secttitle-sub { font-size: 2.4rem; }
.c-secttitle-main { font-size: 6rem; margin-top: 1rem; }
}


/* title - block title */
.c-blocktitle { margin: 8rem 0 2rem; font-size: 2.4rem; font-weight: var(--ff-base-bold); line-height: 1.3; }
.c-blocktitle::before { content: "―"; margin-right: 0.5em; }
@media print, screen and (min-width: 640px) {
.c-blocktitle { margin: 10rem 0 2.5rem; font-size: 3.6rem; line-height: 1.1; }
}

.p-title01 { font-weight: var(--ff-base-bold); }
.p-title01::before { content: "● "; color: var(--cl-key01); }
@media print, screen and (min-width: 640px) {
.p-title01 { font-size: 1.8rem; }
}


/* title - utility */
.u-title-xl { font-size: 2.2em; line-height: 1.3; font-weight: var(--ff-base-bold); }
.u-title-lg { font-size: 1.8em; line-height: 1.3; font-weight: var(--ff-base-bold); }
.u-title-md { font-size: 1.5em; line-height: 1.3; font-weight: var(--ff-base-bold); }
.u-title-sm { font-size: 1.2em; line-height: 1.3; font-weight: var(--ff-base-bold); }
.u-title-pj { font-size: 2.0rem; font-weight: 700; }
.u-title-pj-sub { font-size: 1.3rem; font-family: var(--ff01f); font-weight: var(--ff01w); line-height: 1.2; color: var(--cl-key01); margin-top: 0 !important; }

@media print, screen and (min-width: 640px) {
.u-title-xl { font-size: 3.2em; }
.u-title-lg { font-size: 2.6em; }
.u-title-md { font-size: 2.0em; }
.u-title-sm { font-size: 1.4em; }

.u-title-pj { font-size: 3.0rem; font-weight: 700; }
.u-title-pj-sub { font-size: 1.6rem; }

}


/* breadcrumb
--------------------------------------------------------------*/
.c-breadcrumb { font-size: 1.2rem; margin-left: auto; text-align: right; }
.c-breadcrumb-item { position: relative; display: inline-block; }
.c-breadcrumb-item:not(:last-child) { padding-right: 1em; }
.c-breadcrumb-item:nth-child(3) { text-align: right; padding: 0; width: 100%; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.c-breadcrumb-item:not(:last-child):before { content: ""; position: absolute; top: 0.5em; right: 0; display: block; width: 1rem; height: 1rem; mask: url(/assets/images/common/ico_ar.svg) no-repeat center right / contain; background-color: var(--cl-txt); }
.c-breadcrumb-link { }
.c-breadcrumb-item:not(:last-child) .c-breadcrumb-link { text-decoration: underline; }


@media print, screen and (min-width: 640px) {
.c-breadcrumb { font-size: 1.4rem; }
.c-breadcrumb-item:nth-child(3) { width: fit-content; overflow: inherit; }
}





/* table
--------------------------------------------------------------*/

/* c-grtb */
.c-grtb { }
.c-grtb-item { display: grid; padding: 1.5rem 0; border-top: var(--cl-border) 1px solid; }
.c-grtb-item:last-child { border-bottom: var(--cl-border) 1px solid; }
.c-grtb-item > * { margin-top: 0.5rem; }

.c-grtb-item dt { font-weight: var(--ff-base-bold); }
.c-grtb._grtb-s1-2-p1-3 > * { grid-template-columns: 1fr 2fr; }

@media print, screen and (min-width: 640px) {
.c-grtb-item { padding: 3rem 0; grid-template-columns: 18rem 1fr; }
.c-grtb-item > * { margin: 0; }

.c-grtb-item dt { font-size: 1.8rem; }

.c-grtb._grtb-s0-p1-2 > * { grid-template-columns: 1fr 2fr; }
.c-grtb._grtb-s0-p1-3 > * { grid-template-columns: 1fr 3fr; }
.c-grtb._grtb-s1-2-p1-3 > * { grid-template-columns: 1fr 3fr; }

}


















/* layout
--------------------------------------------------------------*/

/* c-grid */
.c-grid { display: grid; gap: 1rem; }
.c-grid._grid-s1-1 { grid-template-columns: 1fr 1fr; }
.c-grid._grid-s1-2 { grid-template-columns: 1fr 2fr; }
.c-grid._grid-s1-3 { grid-template-columns: 1fr 3fr; }

@media print, screen and (min-width: 640px) {
.c-grid { gap: 4rem; }
.c-grid._grid-p1-1 { grid-template-columns: 1fr 1fr; }
.c-grid._grid-p1-2 { grid-template-columns: 1fr 2fr; }
.c-grid._grid-p1-3 { grid-template-columns: 1fr 3fr; }
.c-grid._grid-p2-1 { grid-template-columns: 2fr 1fr; }
.c-grid._grid-p2-3 { grid-template-columns: 2fr 3fr; }
.c-grid._grid-p3-1 { grid-template-columns: 3fr 1fr; }
.c-grid._grid-p3-2 { grid-template-columns: 3fr 2fr; }
.c-grid._grid-p1-1-1 { grid-template-columns: 1fr 1fr 1fr; }
.c-grid._grid-p1-1-1-1 { grid-template-columns: 1fr 1fr 1fr 1fr; }
.c-grid._rev > *:first-child { order: 2; }
.c-grid._rev > *:last-child { order: 1; }
.c-grid._rev._grid-p1-2 { grid-template-columns: 2fr 1fr; }
.c-grid._rev._grid-p1-3 { grid-template-columns: 3fr 1fr; }
.c-grid._rev._grid-p2-3 { grid-template-columns: 3fr 2fr; }
.c-grid._rev._grid-p2-1 { grid-template-columns: 1fr 2fr; }
.c-grid._rev._grid-p3-1 { grid-template-columns: 1fr 3fr; }
.c-grid._rev._grid-p3-2 { grid-template-columns: 2fr 3fr; }
}


/* mgbox */
.c-mgbox {}
.c-mgbox > *:not(:first-child) { margin-top: 1rem; }

@media print, screen and (min-width: 640px) {
.c-mgbox._mgp1 > *:not(:first-child) { margin-top: 1rem; }
.c-mgbox._mgp2 > *:not(:first-child) { margin-top: 2rem; }
.c-mgbox._mgp3 > *:not(:first-child) { margin-top: 3rem; }
.c-mgbox._mgp4 > *:not(:first-child) { margin-top: 4rem; }
}



/* policy group
--------------------------------------------------------------*/

/* c-policybox */
.c-policybox { padding: 1em 0; border-bottom: var(--cl-border) 1px solid; }
.c-policybox-title { font-size: 2.4rem; font-weight: var(--ff-base-bold); }
.c-policybox-txt { margin-top: 0.8em; }
._noborder.c-policybox { border-bottom: none; }
@media print, screen and (min-width: 640px) {
.c-policybox-title { font-size: 3.6rem; }
}


/* form group
--------------------------------------------------------------*/

/* required - utility */
.u-req { color: var(--cl-error); margin-left: 0.5em; }



/* c-formthanks */
.c-formthanks { }
.c-formthanks-title { text-align: center; }
/*.c-formthanks-title::before { content: ""; display: block; margin: auto; width: 2em; height: 2em; mask: url(/assets/images/common/ico_mail.svg) no-repeat center center / contain; background-color: var(--cl-wh); opacity: 0.3; }*/
.c-formthanks-txt { font-style: 1.2em; margin-top: 2em; }
.c-formthanks-ex { font-size: 0.8em; margin-top: 1em; }
.c-formthanks-notice { border: var(--cl-border) 1px solid; padding: 1em; margin-top: 1em; }
.c-formthanks-btn { margin: 3em auto; display: flex; justify-content: center; }

@media print, screen and (min-width: 640px) {
.c-formthanks { }
.c-formthanks-txt { text-align: center; margin-top: 4em; }
.c-formthanks-ex { text-align: center; }
.c-formthanks-notice { padding: 3em; text-align: center; margin: 3em auto 0; width: fit-content; }
.c-formthanks-btn { margin: 4em auto; }
}


/* page-404
--------------------------------------------------------------*/
.notfound {}
.notfound-title { text-align: center; font-size: 2.4rem; }
.notfound-txt { font-style: 1.2em; margin-top: 2em; }
.notfound-btn { margin: 3em auto; display: flex; justify-content: center; }

@media print, screen and (min-width: 640px) {
.notfound-title { font-size: 4rem; }
.notfound-txt { text-align: center; margin-top: 4em; }
.notfound-btn { margin: 4em auto; }
}





/*----------------------------------------------------------------------------------------------------------------------------

page unique

----------------------------------------------------------------------------------------------------------------------------*/

/* home
----------------------------------------------------------------------------------------------------------------------------*/
.page-home .footer { padding-top: 0; }

/* kv*/
.kv { margin-top: var(--header-height); }
.kv-inner { position: relative; padding: 0 2rem 2rem; overflow: hidden; border-radius: 1rem; }
.kv-catchbox { position: absolute; top: 50%; left: 50%; translate: -50% -50%; z-index: 1; width: 100%; color: var(--cl-wh); font-weight: var(--ff-base-bold); text-align: center; text-shadow: 0 0.5rem 2rem rgba(18,18,18,0.5); }
.kv-catch { font-size: 4.2rem; line-height: 1.2; }
.kv-subcatch { font-size: 1.6rem; line-height: 1.6; margin-top: 2rem; }
.kv .swiper-slide { overflow: hidden; border-radius: 1rem; }
.kv .swiper-slide img { object-fit: cover; height: 55rem; transform: scale(1); transition: transform 10s linear; }
.kv .swiper-slide-active .swiper-slide__item img { transform: scale(1.1); }

@media print, screen and (min-width: 640px) {
.kv-catch { font-size: 7rem; }
.kv-subcatch { font-size: 2.4rem; margin-top: 2rem; }
.kv .swiper-slide img { height: auto; width: 100%; }
}


/* about */
.about-btn { margin-top: 3rem; }
.about-pattern { position: absolute; bottom: -15rem; right: 0; width: 27rem; z-index: -1; }
@media print, screen and (min-width: 640px) {
.about-btn { margin-top: 6rem; }
.about-pattern { bottom: -44rem; width: 89.8rem; }
}


/* strength */
.strength { position: relative; }
.strength-subtitle { text-align: center; }
.strength-title { text-align: center; }
.strength-list { display: grid; gap: 3rem; }
.strength-item { position: relative; color: var(--cl-wh);  }
.strength-item-txtbox { position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 22.8rem; display: grid; place-content: center; padding: 0 2rem; }
.strength-item-title { font-weight: var(--ff-base-bold); font-size: 2.4rem; display: grid; grid-template-columns: auto 1fr; line-height: 1.25; align-items: center; gap: 1rem; }
.strength-item-title-num { font-weight: var(--ff-base-bold); font-size: 3.6rem; font-family: var(--ff01f); font-weight: var(--ff-01f-semibold); }
.strength-item-txt { margin-top: 1rem; }
.strength-item-link { margin-top: 1rem; width: 3.4rem; }
.strength-item-link::before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; }
.strength-item-link-ico { width: 100%; }
.strength-pattern { position: absolute; bottom: -10rem; right: 0; width: 19.7rem; z-index: -1; }

@media print, screen and (min-width: 640px) {
.strength-item-pic { overflow: hidden; border-radius: 1rem; }
.strength-item-pic-img { transition: 0.5s; }
.strength-item-txtbox { justify-content: start; padding: 0 4rem; height: 27.4rem; }
.strength-item-title { font-size: 3.6rem; gap: 2rem; }
.strength-item-title-num { font-size: 6rem; }
.strength-item-txt { margin-top: 0; width: 80rem; }
.strength-item-link { margin-top: 2rem; width: 5rem; height: 5rem; background: url(/assets/images/common/ico_ar_circle_hover.svg) no-repeat center center / contain; }
.strength-item-link-ico { transition: 0.5s; }
.strength-pattern { bottom: -44rem; width: 62.2rem; }
.strength-item:hover .strength-item-pic-img { scale: 1.1; }
.strength-item:hover .strength-item-link { opacity: 1; }
.strength-item:hover .strength-item-link-ico { opacity: 0; }
}



/* sustainability */
.sustainability {}
.sustainability-box {}
.sustainability-btn { margin-top: 3rem; }
.sustainability-pic { margin: 3rem 0 0 -2rem; overflow: hidden; border-radius: 0 1rem 1rem 0; }

@media print, screen and (min-width: 640px) {
.sustainability-row { display: grid; grid-template-columns: 1fr 48rem; gap: 8rem; align-items: center; margin-left: calc(-1 * ((100vw - 100%) / 2)); }
.sustainability-box { order: 2; }
.sustainability-btn { margin-top: 6rem; }
.sustainability-pic { order: 1; margin-top: 0; }
.sustainability-pic-img { object-fit: cover; width: 100%; max-height: 65rem; }
}




/* homerecruit */
.homerecruit { position: relative; background-color: var(--cl-rec-bl01); padding: 8rem 0 0 !important; }
.homerecruit::before { content: ""; position: absolute; bottom: 15rem; left: 3rem; display: block; width: 15.6rem; height: 21.3rem; background: url(/assets/images/home/recruit_bg02.webp) no-repeat center center / contain; z-index: -1; }
.homerecruit-titleen { position: relative; font: var(--ff-rec); color: var(--cl-rec-yw); font-size: 7rem; letter-spacing: 0.05em; line-height: 1; }
.homerecruit-titleen::before { content: ""; position: absolute; top: -2rem; left: -6rem; display: block; width: 10.8rem; height: 10.8rem; background: url(/assets/images/home/recruit_bg01.webp) no-repeat center center / contain; }
.homerecruit-title { color: var(--cl-wh); font-weight: var(--ff-base-bold); font-size: 1.8rem; margin-top: 1em; }
.homerecruit-subtitle { color: var(--cl-rec-bl01); font-weight: var(--ff-base-bold); font-size: 2.4rem; line-height: 1.8; width: 30rem; margin-top: 2em; }
.homerecruit-subtitle-span { background-color: var(--cl-wh); }
.homerecruit-subtitle-span._01 { padding: 0 0.5em; }
.homerecruit-subtitle-span._02 { padding-left: 0.5em; }
.homerecruit-subtitle-span._03 {}
.homerecruit-lead { color: var(--cl-wh); margin-top: 2rem; }
.homerecruit-btn { margin-top: 3rem; }
.homerecruit-picbox { display: grid; justify-content: end; margin: 10rem -2rem 0 0; }

@media print, screen and (min-width: 640px) {
.homerecruit { padding: 8rem 0 10rem !important; }
.homerecruit-titleen { font-size: 15rem; }
.homerecruit-title { font-size: 2.4rem; }
.homerecruit-subtitle { font-size: 3.6rem; width: 56rem; }
.homerecruit-subtitle-span._01 { padding: 0 0 0 0.5em; }
.homerecruit-subtitle-span._02 { padding: 0 0.5em 0 0; }
.homerecruit-lead { width: 56rem; }
.homerecruit-btn { margin-top: 6rem; }
.homerecruit-picbox { margin: 0; position: absolute; right: 0; bottom: 0; z-index: -1; width: 62.5%; }
}












/* company
----------------------------------------------------------------------------------------------------------------------------*/

/* message */
.message-box {}
.message-box-name { margin-top: 1em; }
.message-box-name-ex { font-size: 1.8rem; font-weight: var(--ff-base-bold); }
.message-box-pic { margin-top: 2em; }

@media print, screen and (min-width: 640px) {
.message-box-name-ex { font-size: 2.4rem; }
.message-box-pic { margin-top: 6rem; }
}


/* access-route */
.access-route { margin-top: 3em; }
.access-route-title { font-weight: var(--ff-base-bold); }

/* media */
.media-link { text-decoration: underline; word-break: break-all; }
.media-link::after { content: ""; width: 0.9em; height: 0.9em; background: url(/assets/images/common/ico_blank.svg) no-repeat center center / contain; display: inline-block; margin-left: 0.5em; vertical-align: middle; }

@media print, screen and (min-width: 640px) {
.media-link:hover { text-decoration: none; }
}


/* production
----------------------------------------------------------------------------------------------------------------------------*/
.effortlist { display: grid; gap: 3rem; }
.effortlist-item { font-weight: var(--ff-base-bold); text-align: center; }
.effortlist-item img { margin-bottom: 1rem; }
.effort-link { margin-top: 3rem; }

@media print, screen and (min-width: 640px) {
.effortlist { grid-template-columns: repeat(2,1fr); gap: 6rem 7rem; }
.effort-link { margin: 6rem auto 0; }
}



/* response
----------------------------------------------------------------------------------------------------------------------------*/
/* responselist */
.responselist { display: grid; gap: 3rem; margin-top: 8rem; }
.responselist-item {}
.responselist-item-pic {}
.responselist-item-title { color: var(--cl-key01); line-height: 1; font-size: 3.6rem; display: flex; align-items: center; justify-content: center; font-family: var(--ff01f); font-weight: var(--ff-01f-semibold); margin: 1rem 0; }
.responselist-item-title::before { content: "特長"; font: var(--ff-base); font-size: 1.8rem; font-weight: var(--ff-base-bold); margin-right: 0.5em; }
.responselist-item-txt {}

@media print, screen and (min-width: 640px) {
.responselist { grid-template-columns: repeat(2,1fr); gap: 6rem 7rem; }
.responselist-item-title { font-size: 6rem; margin: 2rem 0; }
.responselist-item-title::before { font-size: 2.4rem; }
.responselist-item-txt { text-align: center; }
}


/* response table */
.responsetitle { font-size: 1.8rem; font-weight: var(--ff-base-bold); color: var(--cl-key01); }
.responsetablewrap { overflow-x: scroll; margin: 2rem -2rem 0 0; }
.responsetable { border-collapse: collapse; width: 58rem; }
.responsetable th,
.responsetable td { border: var(--cl-border) 1px solid; }
.responsetable th { background-color: var(--cl-bg-gr); }
.responsetable th._col01 { width: 10rem; }
.responsetable th._col02 { width: 7rem; }
.responsetable td { padding: 1em; }

@media print, screen and (min-width: 640px) {
.responsetitle { font-size: 2.4rem; margin-top: 4rem; }
.responsetablewrap { overflow-x: inherit; margin: 2rem 0 0; }
.responsetable { width: 100%; }
.responsetable th._col01 { width: 17rem; }
.responsetable th._col02 { width: 12rem; }
}



/* history
----------------------------------------------------------------------------------------------------------------------------*/
.historypbox { display: grid; gap: 2rem; margin-top: 1.5rem; }
@media print, screen and (min-width: 640px) {
.historypbox { grid-template-columns: 1fr 1fr auto; gap: 1rem; }
}



/* process
----------------------------------------------------------------------------------------------------------------------------*/
.processlist {}
.processlist-item { background-color: var(--cl-bg-gr); border-radius: 1rem; padding: 2rem; position: relative; }
.processlist-item { margin-top: 5rem; }
.processlist-item + .processlist-item::before { content: "▼"; color: var(--cl-key01); position: absolute; top: -3.5rem; left: 50%; translate: -50% 0; }
.processlist-item-title { font-weight: var(--ff-base-bold); font-size: 2.4rem; color: var(--cl-key01); white-space: nowrap; }
.processlist-item-titlenum { font-family: var(--ff01f); font-weight: var(--ff-01f-semibold); font-size: 3.2rem; }
.processlist-item-titlenum::after { content: "｜"; }
.processlist-item-txt {}
.processlist-item-extitle { margin-top: 2rem; }
.processlist-item-extxt {}
.processlist-item-img { margin-top: 2rem; object-fit: cover; width: 100%; height: 15rem; }
.processlist-item-caption { text-align: center; font-weight: var(--ff-base-bold); margin-top: 1rem; }
.processlist-item-captionsub {}

@media print, screen and (min-width: 640px) {
.processlist { }
.processlist-item { padding: 4rem; }
.processlist-item + .processlist-item { margin-top: 6rem; }
.processlist-item + .processlist-item::before { top: -5rem; font-size: 2rem; }
.processlist-item-title { font-size: 3.6rem; }
.processlist-item-titlenum { font-size: 3.6rem; }
.processlist-item-imgrow { display: grid; grid-template-columns: repeat(2,1fr); gap: 3rem; }
.processlist-item-img { height: auto; }
.processlist-item-captionsub { text-align: center; }
}



/* sustainability
----------------------------------------------------------------------------------------------------------------------------*/
/* effortbox */
.effortbox {}
.effortbox-sdgs { margin-top: 3rem; }
.effortbox-sdgs-ico { width: 10.6rem; }
.effortbox-sdgs-txt { margin-top: 1rem; }

@media print, screen and (min-width: 640px) {
.effortbox-sdgs { display: grid; grid-template-columns: 14rem 1fr; gap: 3rem; align-items: center; }
.effortbox-sdgs-ico { width: 14rem; }
.effortbox-sdgs-txt { margin-top: 0; }
}


/* tour */
.tour {}
.tour-picbox { display: grid; gap: 2rem; margin-top: 3rem; }
.tour-ctabox { margin-top: 2rem; padding: 2rem; background-color: var(--cl-bg-gr); }
.tour-ctabox-lead { font-weight: var(--ff-base-bold); }
.tour-ctabox-row { margin-top: 2rem; }
.tour-ctabox-btn { width: 100%; }
.tour-certification { margin-top: 2rem; }

@media print, screen and (min-width: 640px) {
.tour-picbox { grid-template-columns: repeat(2,1fr); gap: 4rem; margin-top: 6rem; }
.tour-ctabox { margin-top: 6rem; padding: 4rem; }
.tour-ctabox-row { margin-top: 3rem; gap: 3rem; }
}









/* contact
----------------------------------------------------------------------------------------------------------------------------*/

/* cta disnone */
.page-contact .cta { display: none; }
.page-contact .footer { border-top: var(--cl-border) 1px solid; }

/* lead */
.page-contact {}
.page-contact .c-grtb-item {}
.page-contact .c-grtb-item dt { font-weight: var(--ff-base-bold);}
.contact-leadbox { margin-bottom: 2rem;}
.contact-ex01 { margin-top: 0.5rem; color: var(--cl-error);}
.form-ex01 { margin-top: 0.5rem; font-size: 1.4rem;}
.c-grtb-item .address-box { margin-top: 2rem; }

@media print, screen and (min-width: 640px) {
.contact-leadbox { margin-bottom: 4rem;}
}


/* form */
.contact .zipwrap { position: relative; }
.contact .zip { width: 18rem; }
.contact .zip-ex { font-size: 1rem; position: absolute; top: 0.5rem; left: 20rem; line-height: 1.3; }
.contact input + input { margin-top: 1rem; }
.contact-submit { }
.contact-submit .u-linkbtn { margin-top: 3rem; margin-inline: auto;}

@media print, screen and (min-width: 640px) {
.contact .zip-ex { font-size: 1.4rem; left: 22rem; }
.contact-submit .u-linkbtn { margin-top: 6rem; }
}



/* error */
.errTitle {}
.error { color: var(--cl-error); border: var(--cl-error) 2px solid; padding: 2em; margin-bottom: 1em; }










/*----------------------------------------------------------------------------------------------------------------------------

recruit site

----------------------------------------------------------------------------------------------------------------------------*/

/* recruit - overwrite & baseset
----------------------------------------------------------------------------------------------------------------------------*/

/* overwrite - base & parts */
.page-recruit { background-color: var(--cl-rec-bl01); }
:root .page-recruit { --cl-error: #EBFF00; }
.page-recruit .main { color: var(--cl-wh); }
.page-recruit .c-secttitle-sub { color: var(--cl-rec-yw); }
.page-recruit .u-linkbtn { color: var(--cl-rec-bl01); background-color: var(--cl-rec-yw); border-color: var(--cl-rec-yw); }
.page-recruit .u-linkbtn::after { background-color: var(--cl-rec-bl01); }
@media print, screen and (min-width: 640px) {
.page-recruit .u-linkbtn:hover { color: var(--cl-rec-yw); background-color: var(--cl-rec-bl01); border-color: var(--cl-rec-yw); }
.page-recruit .u-linkbtn._close.spitem-btn::after::after { background-color: var(--cl-rec-yw); }
}


/* header */
.page-recruit .header-logo { width: 18rem; }
@media print, screen and (min-width: 640px) {
.page-recruit .header { grid-template-columns: 40rem auto; height: 11rem; border-radius: 10rem; margin-top: 2.5rem; width: calc(100% - 5rem); left: 2.5rem; padding: 0 2rem 0 4rem; }
.page-recruit .header-logo { width: 100%; }
}
@media print, screen and (min-width: 1360px) {
.page-recruit .header { grid-template-columns: 52rem auto; }
}

/* gnav */
@media print, screen and (min-width: 640px) {
.page-recruit .gnav-item-link:hover { color: var(--cl-rec-bl01); }
.page-recruit .gnav-item-link._entry { color: var(--cl-rec-bl01); background-color: var(--cl-rec-yw); width: 26rem; height: 7rem; justify-content: center; border-radius: 8rem; transition: 0.5s; font-family: var(--ff01f); font-size: 2.4rem; letter-spacing: 0.1em; }
.page-recruit .gnav-item-link._entry:hover { background-color: var(--cl-rec-bl01); opacity: 1; color: var(--cl-rec-yw); }
}


/* footer */
.page-recruit .footer { background-color: var(--cl-wh); padding-top: 0; }
.page-recruit .finfo-corplink { display: grid; grid-template-columns: 1fr 1em; align-items: center; width: fit-content; font-weight: var(--ff-base-bold); margin-top: 2rem; }
.page-recruit .finfo-corplink::after { content: ""; width: 0.9em; height: 0.9em; mask: url(/assets/images/common/ico_blank.svg) no-repeat center center / contain; background-color: var(--cl-txt); margin-left: 0.5em; transition: 0.5s; }
.page-entry .footer { padding-top: 8rem; }

@media print, screen and (min-width: 640px) {
.page-recruit .finfo-logo { width: 52rem; }
.page-recruit .finfo-corplink { margin-top: 5rem; }
.page-recruit .finfo-corplink:hover,
.page-recruit .fnav-item-link:hover { color: var(--cl-rec-bl01); opacity: 1; }
.page-recruit .finfo-corplink:hover::after { background-color: var(--cl-rec-bl01); opacity: 1; }
.page-entry .footer { padding-top: 16rem; }
}



/* ctaentry */
.ctaentry { display: grid; align-content: center; background: url(/assets/images/common/bg_ctaentry.webp) no-repeat center center / cover; padding: 8rem 2rem; margin-bottom: 4rem; }
.ctaentry-lead { color: var(--cl-wh); text-align: center; }
.ctaentry-row { display: grid; gap: 2rem; margin-top: 3rem; }
.ctaentry-link { display: grid; grid-template-columns: 1fr 2.5rem; gap: 1em; align-items: center; padding: 0 2rem; font-size: 1.8rem; font-weight: var(--ff-base-bold); background-color: var(--cl-wh); border-radius: 2rem; height: 8rem; }
.ctaentry-link::after { content: ""; display: block; width: 2.5rem; height: 2.5rem; background: url(/assets/images/common/ico_rec_ar_circle.svg) no-repeat center center / contain; }
.ctaentry-link-txt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.ctaentry .c-secttitle { margin-top: 0; }
.ctaentry .c-secttitle-sub { position: relative; text-align: center; color: var(--cl-rec-yw); }
.ctaentry .c-secttitle-sub::before { content: ""; display: block; width: 10.8rem; height: 10.8rem; background: url(/assets/images/recruit/ico_titlebg_wh.webp) no-repeat center center / contain; position: absolute; top: -5rem; left: 50%; translate: -50% 0;  }
.ctaentry .c-secttitle-main { text-align: center; color: var(--cl-wh); }
.page-entry .ctaentry { display: none; }

@media print, screen and (min-width: 640px) {
.ctaentry { padding: 16rem 0; }
.ctaentry-row { grid-template-columns: repeat(2,1fr); gap: 4rem; margin-top: 8rem; }
.ctaentry-link { grid-template-columns: 1fr 3.6rem; gap: 2em; padding: 0 4rem; font-size: 2.4rem; height: 12rem; line-height: 1.25; }
.ctaentry-link::after { width: 3.6rem; height: 3.6rem; }
}


/* spitem */
.page-recruit .spitem-btn { background-color: var(--cl-rec-yw); }
.page-recruit .spitem-btn::before,
.page-recruit .spitem-btn::after { background-color: var(--cl-rec-bl01); }
.page-recruit .spitem-btn-line { background-color: var(--cl-rec-bl01); }
.page-recruit ._close.spitem-btn::before,
.page-recruit ._close.spitem-btn::after { background-color:var(--cl-rec-bl01); }
.page-recruit .spmenu-inner { background-color: var(--cl-rec-bl02); }
.page-recruit .spnav-item-link { color: var(--cl-wh); }
.page-recruit .spnav-item-link._entry { color: var(--cl-rec-bl01); background-color: var(--cl-rec-yw); width: 100%; height: 8rem; display: flex; align-items: center; place-content: center; margin-top: 3rem; border-radius: 5rem; font-size: 2.4rem; letter-spacing: 0.1em; }



/* pagetitle */
@media print, screen and (min-width: 640px) {
.page-recruit .pagetitle { height: 45rem; margin-top: 0; }
.page-recruit .pagetitle-bg-pic { height: 45rem; }
.page-recruit .pagetitle-box { height: 45rem; padding-top: 13rem; }
}







/* recruit - top
----------------------------------------------------------------------------------------------------------------------------*/

/* reckv */
.reckv { position: relative; }
.reckv-inner {}
.reckv-pic { height: 66.6rem; object-fit: cover; }
.reckv-catchbox { position: absolute; bottom: 3rem; }
.reckv-catch { position: relative; font-size: 3.6rem; line-height: 1.8; }
.reckv-catch::before { content: "Creating the Future of Textiles."; font: var(--ff-rec); font-size: 3.2rem; color: var(--cl-rec-yw); position: absolute; top: -7.5rem; left: 0; rotate: -15deg; width: 24rem; line-height: 1; }
.reckv-catch-span { background-color: var(--cl-rec-bl01); display: inline-block; line-height: 1.4; }
.reckv-catch-span._01 { padding: 0 0.5em; }
.reckv-catch-span._02 { padding-right: 0.5em; }
.reckv-catch-span._03 {}

@media print, screen and (min-width: 640px) {
.reckv { margin-top: 0; }
.reckv-pic { height: auto; width: 100%; }
.reckv-catchbox { bottom: 12rem; }
.reckv-catch { font-size: 5.6rem; max-width: 90rem; }
.reckv-catch::before { font-size: 6rem; width: 42rem; top: -12rem; left: -10rem; }
.reckv-catch-span._01 { padding: 0 0 0 0.5em; }
}




/* recmessage */
.recmessage {}
.recmessage-subtitle { position: relative; }
.recmessage-subtitle::before { content: ""; display: block; width: 10.8rem; height: 10.8rem; background: url(/assets/images/recruit/ico_titlebg_wh.webp) no-repeat center center / contain; position: absolute; top: -5rem; left: -5rem; }
.recmessage-txt { font-size: 1.8rem; line-height: 1.8; }
.recmessage-pic { display: grid; grid-template-columns: 23.1rem 14.4rem; margin: 3rem -2rem 0; }
.recmessage-pic-img { object-fit: cover; height: 17rem; }

@media print, screen and (min-width: 640px) {
.recmessage-subtitle::before { width: 16rem; height: 16rem; top: -8rem; left: -8rem; }
.recmessage-txt { font-size: 2.4rem; line-height: 2; }
.recmessage-pic { grid-template-columns: 73rem 34rem; margin: 8rem 0 0; gap: 3rem; }
.recmessage-pic-img { height: auto; }
}



/* recwork */
.recwork { }
.recwork-bg { position: relative; padding: 8rem 2rem 6rem; background-color: var(--cl-rec-bl02); }
.recwork-bg::before,
.recwork-bg::after { content: ""; display: block; width: 37.5rem; height: 6.6rem; position: absolute; }
.recwork-bg::before { top: -2rem; left: -2rem; background: url(/assets/images/recruit/work_bg01_sp.webp) no-repeat center center / contain; }
.recwork-bg::after { bottom: -2rem; left: -2rem; background: url(/assets/images/recruit/work_bg02_sp.webp) no-repeat center center / contain; }
.recwork-subtitle { position: relative; text-align: center; }
.recwork-subtitle::before { content: ""; display: block; width: 10.8rem; height: 10.8rem; background: url(/assets/images/recruit/ico_titlebg_wh.webp) no-repeat center center / contain; position: absolute; top: -5rem; left: 50%; translate: -50% 0; }
.recwork-title { text-align: center; }
.recwork-lead { text-align: center; }
.recwork-list {}
.recwork-item { margin-top: 4rem; }
.recwork-item-pic {}
.recwork-item-name { font-size: 1.8rem; font-weight: var(--ff-base-bold); text-align: center; margin-top: 1rem; }
.recwork-item-list { position: relative; margin-top: 3rem; background-color: var(--cl-wh); border-radius: 1rem; padding: 2rem; }
.recwork-item-list:before { content: ""; position: absolute; top: -4.5rem; right: 42%; margin-left: -2.5rem; border: 2.5rem solid transparent; border-bottom: 4rem solid var(--cl-wh); }
.recwork-item-list-item { color: var(--cl-txt); font-weight: var(--ff-base-bold); }
.recwork-item-list-item::before { content: "● "; color: var(--cl-rec-bl01); }
.recwork-item-txt { margin-top: 1.5rem; }

@media print, screen and (min-width: 640px) {
.recwork-bg { padding: 12.5rem 4rem; }
.recwork-bg::before,
.recwork-bg::after { width: 118rem; height: 23.2rem; }
.recwork-bg::before { top: -6rem; left: -4rem; background-image: url(/assets/images/recruit/work_bg01_pc.webp); }
.recwork-bg::after { bottom: -6rem; left: -4rem; background-image: url(/assets/images/recruit/work_bg02_pc.webp); }
.recwork-subtitle::before { width: 16rem; height: 16rem; top: -7rem; }
.recwork-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 7rem; }
.recwork-item { margin-top: 7rem; }
.recwork-item-name { font-size: 2.4rem; margin-top: 3rem; }
.recwork-item-list { font-size: 1.8rem; }
.recwork-item-txt { line-height: 1.5; margin-top: 3rem; }
}
@media print, screen and (min-width: 1450px) {
.recwork-bg { margin: 0 -12.5rem; padding: 12.5rem; }
.recwork-bg::before,
.recwork-bg::after { width: 143rem; height: 23.2rem; }
}




/* recpeople */
.recpeople { color: var(--cl-txt); }
.recpeople-bg { background-color: var(--cl-rec-bg); border-radius: 10rem; padding: 8rem 7rem 4rem; }
.recpeople-subtitle { position: relative; text-align: center; color: var(--cl-rec-bl01) !important; }
.recpeople-subtitle::before { content: ""; display: block; width: 10.8rem; height: 10.8rem; background: url(/assets/images/recruit/ico_titlebg_bl.webp) no-repeat center center / contain; position: absolute; top: -5rem; left: 50%; translate: -50% 0; }
.recpeople-title { text-align: center; }
.recpeople-list { display: grid; gap: 4rem; }
.recpeople-item {}
.recpeople-item-pic {}
.recpeople-item-pic-img {}
.recpeople-item-name { color: var(--cl-rec-bl01); font-weight: var(--ff-base-bold); font-size: 2.4rem; text-align: center; margin-top: 1rem; }
.recpeople-item-work { text-align: center; font-size: 1.8rem; font-weight: var(--ff-base-bold); }
.recpeople-item-joining { text-align: center; font-weight: var(--ff-base-bold); }

@media print, screen and (min-width: 640px) {
.recpeople-bg { padding: 12.5rem 7rem 12.5rem; }
.recpeople-subtitle::before { width: 16rem; height: 16rem; top: -7rem; }
.recpeople-list { grid-template-columns: repeat(3,1fr); gap: 7rem; }
.recpeople-item:hover { cursor: pointer ;}
.recpeople-item:hover .recpeople-item-pic-img { scale: 1.1; }
.recpeople-item-pic { overflow: hidden; border-radius: 20rem; }
.recpeople-item-pic-img { object-fit: cover; transition: 0.5s; }
.recpeople-item-name { font-size: 3.6rem; }
}
@media print, screen and (min-width: 1450px) {
.recpeople-bg { margin: 0 -12.5rem; padding: 12.5rem; }
}


/* recwelfare */
.recwelfare {}
.recwelfare-box {}
.recwelfare-subtitle { position: relative; }
.recwelfare-subtitle::before { content: ""; display: block; width: 10.8rem; height: 10.8rem; background: url(/assets/images/recruit/ico_titlebg_wh.webp) no-repeat center center / contain; position: absolute; top: -5rem; left: -5rem; }
.recwelfare-pic { margin: 3rem 0 0 -2rem; overflow: hidden; border-radius: 0 10rem 10rem 0; }
.recwelfare-pic-img {}

@media print, screen and (min-width: 640px) {
.recwelfare-row { display: grid; grid-template-columns: 1fr 61rem; gap: 8rem; align-items: center; margin-left: calc(-1 * ((100vw - 100%) / 2)); }
.recwelfare-box { order: 2; }
.recwelfare-pic { order: 1; margin-top: 0; }
.recwelfare-pic-img { object-fit: cover; width: 100%; max-height: 65rem; }
}



/* interview */
.interview { position: fixed; top: 0; left: 0; opacity: 0; visibility: hidden; width: 100%; height: 100dvh; z-index: 90; transition: 0.3s; }
.interview-close { position: absolute; top: 10rem; right: 1rem; z-index: 100; transition: 0.5s; opacity: 0; }
.interview-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100dvh; background-color: rgba(0,0,0,0.6); padding: 12rem 2rem 3rem; overflow-y: scroll; }
.interview-box { translate: 0 10%; color: var(--cl-txt); background-color: var(--cl-wh); border-radius: 1rem; padding: 2rem; transition: 0.5s; position: relative; }
.interview-num { color: var(--cl-wh); background-color: var(--cl-rec-bl01); font-family: var(--ff01f); font-weight: var(--ff01w); font-size: 1.8rem; letter-spacing: 0.05em; width: fit-content; padding: 0.5em 1em; line-height: 1; }
.interview-title { font-size: 2.4rem; font-weight: var(--ff-base-bold); line-height: 1.5; margin-top: 1rem; }
.interview-info { background-color: var(--cl-rec-bg); padding: 2rem; display: grid; grid-template-columns: 10rem 1fr; align-items: center; border-radius: 1rem; margin-top: 1rem; }
.interview-info-name { color: var(--cl-rec-bl01); font-weight: var(--ff-base-bold); font-size: 1.8rem; }
.interview-info-work { font-weight: var(--ff-base-bold); font-size: 1.6rem; }
.interview-info-work-joining { font-size: 1.4rem; display: block; }
.interview-pic { margin-top: 3rem; }
.interview-faq { }
.interview-faq-q { display: grid; grid-template-columns: 5rem 1fr; gap: 2rem; align-items: center; font-size: 1.8rem; font-weight: var(--ff-base-bold); color: var(--cl-rec-bl01); line-height: 1.4; margin-top: 3rem; }
.interview-faq-q::before { content: "Q"; font-family: var(--ff01f); font-weight: var(--ff01w); color: var(--cl-wh); font-size: 2.4rem; background-color: var(--cl-rec-bl01); width: 5rem; height: 5rem; border-radius: 5rem; display: grid; place-content: center; }
.interview-faq-a { display: grid; grid-template-columns: 5rem 1fr; gap: 2rem; line-height: 1.8; margin-top: 2rem; }
.interview-faq-a::before { content: "A"; font-family: var(--ff01f); font-weight: var(--ff01w); font-size: 2.4rem; background-color: var(--cl-rec-yw); width: 5rem; height: 5rem; border-radius: 5rem; display: grid; place-content: center;  }
.interview-endpic { margin-top: 2rem; }

._is-open.interview { opacity: 1; visibility: visible; }
._is-open .interview-close { opacity: 1; }
._is-open .interview-box { translate: 0 0; }


@media print, screen and (min-width: 640px) {
.interview-close { right: calc((100vw - 110rem)/2 - 1.5rem); top: 18rem; }
.interview-close:hover { cursor: pointer; opacity: 0.7; }
.interview-bg { padding: 20rem 0 10rem; }
.interview-bg:hover { cursor: pointer; }
.interview-box { cursor: auto; margin: auto; max-width: 110rem; padding: 4rem; border-radius: 2rem; }
.interview-num { font-size: 2.4rem; padding: 0.25em 0.5em; margin-top: 11.2rem; }
.interview-title { font-size: 3.6rem; }
.interview-info { width: 43rem; margin-top: 4rem; padding: 2rem 3rem; grid-template-columns: 12rem 1fr; }
.interview-info-name { font-size: 2.4rem; }
.interview-info-work { font-size: 1.8rem; }
.interview-info-work-joining { font-size: 1.6rem; }
.interview-pic { margin-top: 0; position: absolute; top: 4rem; right: 4rem; }
.interview-faq-q { font-size: 2.4rem; grid-template-columns: 6rem 1fr; margin-top: 5rem; }
.interview-faq-q::before { font-size: 2.4rem; width: 6rem; height: 6rem; }
.interview-faq-a { grid-template-columns: 6rem 1fr; }
.interview-faq-a::before { font-size: 2.4rem; width: 6rem; height: 6rem; }
.interview-endpic { margin-top: 4rem; }
}



/* recruit - requirements
----------------------------------------------------------------------------------------------------------------------------*/
.requirements {}
.requirements-title { font-size: 2.4rem; margin-bottom: 3rem; }
.requirements-btn { margin-top: 3rem; }
@media print, screen and (min-width: 640px) {
.requirements-title { font-size: 3.6rem; margin-bottom: 6rem; }
.requirements-btn { margin: 6rem auto 0; }
}












