@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: #0073C3;
    --cl-txt: #333333;
    --cl-border: #CCCCCC;
    --cl-bg: #0073C3;
    --cl-bg-gr: #F5F9FF;
    --cl-wh: #fff;
    --cl-bk: #000;
    --cl-error: #E30000;
}

/* fixheader height */
:root { --header-height: 8rem; }
@media print, screen and (min-width: 640px) {
:root { --header-height: 12rem; }
}

/* 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: 600;
}
@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;}
a { color: var(--cl-txt); outline: none; text-decoration: none;}

@media print, screen and (min-width: 640px) {
html { font-size: calc(100vw / 116); }
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: 1160px) {
html { font-size: 62.5%; }
}



/*----------------------------------------------------------------------------------------------------------------------------

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: 4rem 0; }
.u-wrapsect:not(._bg) + .u-wrapsect:not(._bg) { padding-top: 0; }
.u-wrapsect._bg { background-color: var(--cl-bg-gr); }
.u-wrapblck + .u-wrapblck { margin-top: 3rem; padding-top: 3rem; border-top: var(--cl-border) 1px solid; }
.u-only-pc	{ display: none; }
.c-pagetitle + .u-wrapsect:not(._bg) { padding-top: 0;}

@media print, screen and (min-width: 640px) {
.u-inner { }
.u-wrapsect { padding: 10rem 0; }
.u-wrapblck + .u-wrapblck { margin-top: 8rem; padding-top: 8rem; }
.u-only-sp	{ display: none !important; }
.u-only-pc	{ display: inherit; }
}


/* utility - base */
.u-ff01 { font-family: var(--ff01f); font-weight: 400; }
.u-cl-txt { color: var(--cl-txt); }
.u-cl-wh { color: var(--cl-wh); }
.u-cl-key { color: var(--cl-key); }
.u-cl-error { color: var(--cl-error); }
.u-fw-normal { font-weight: var(--ff-base-normal); }
.u-fw-bold { font-weight: var(--ff-base-bold); }
.u-iframebox { position: relative; padding-bottom: 45.46%; height:0; }
.u-iframebox iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.u-picbox { aspect-ratio: 16/9; }
.u-picbox img { width: 100%; height: 100%; object-fit: cover; }
.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-mt03 { margin-top: 4rem !important; }
.u-mt02-04 { margin-top: 2rem !important; }
.u-mb01 { margin-bottom: 1rem !important; }
.u-mb02 { margin-bottom: 2rem !important; }
.u-mb03 { margin-bottom: 3rem !important; }
.u-mb04 { margin-bottom: 4rem !important; }
.u-fs-ex { font-size: 1.2rem;}

@media print, screen and (min-width: 640px) {
.u-mt02-04 { margin-top: 4rem !important; }
.u-fs-ex { font-size: 1.4rem;}

}




/* utility - link
---------------------------------------------------- */

/* utility - linkbtn */
.u-linkbtn { position: relative; display: grid; align-items: center; width: 100%; height: 8rem; margin-top: 2rem; padding: 0 1em 0 1.2em; color: var(--cl-wh); background-color: var(--cl-key); border: var(--cl-key) 1px solid; font-size: 1.8rem; border-radius: 5rem; text-align: center; font-weight: var(--ff-base-bold);}
.u-linkbtn::after { position: absolute; top: 50%; right: 2rem; transform: translate(0,-50%); content: ""; display: inline-block; width: 1.4em; height: 1.4em; justify-self: end; mask: url(../../assets/images/common/ico_ar.svg) no-repeat center center / contain; background-color: var(--cl-wh); transition: 0.5s; }

@media print, screen and (min-width: 640px) {
.u-linkbtn { max-width: 34rem; margin-top: 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 { position: fixed; z-index: 100; top: 0; padding: 0 2rem; height: var(--header-height); display: grid; align-items: center; width: 100%; min-width: 37.5rem; transition: 0.3s; background-color: var(--cl-wh); }
.header-logo { width: 23.6rem; }
.header-btn { display: none; }

@media print, screen and (min-width: 640px) {
.header { width: 100%; padding: 0 12rem 0 3rem; display: grid; grid-template-columns: max-content 1fr max-content max-content; gap: 1rem;}
.header-logo { width: 100%; max-width: 30rem; }
.header-btn { grid-column: 3/4; display: grid; align-items: center; justify-content: center; width: 100%; height: 8rem; padding: 0 6rem; font-size: 1.8rem; border-radius: 5rem; background-color: var(--cl-key); color: var(--cl-wh); font-weight: var(--ff-base-bold); justify-content: center;}
.header-btn._entry { grid-column: 4/5; background-color: #FFEF72; color: var(--cl-key); text-align: center;}
.header-btn._entry span { display: block; font-size: 1.4rem; line-height: 1;}

}




/* footer
--------------------------------------------------------------*/

/* footer */
.footer { padding: 4rem 0; text-align: center;  }
.page-home .footer { padding-bottom: 12rem; }
.finfo-logo { width: 25rem; margin: 0 auto; }
.footer-btn-txt { display: inline-flex; align-items: center; justify-content: center; gap: 0.5em; margin-top: 3rem; font-size: 1.4rem; color: var(--cl-key); font-weight: var(--ff-base-bold);}
.footer-btn-txt::after { content: ""; display: block; width: 0.8em; height: 0.8em; mask: url(../../assets/images/common/ico_blank.svg) no-repeat center center / contain; background-color: var(--cl-key); }
.fnav-list { display: grid; grid-template-columns: repeat(3,1fr); align-items: center; gap: 1rem 0; margin-top: 3rem; }
.fnav-item { height: 3rem; display: grid; align-items: center; border-right: var(--cl-border) 1px solid; font-size: 1.2rem; font-weight: var(--ff-base-bold); line-height: 1.3;}
.fnav-item:nth-child(3n) { border-right: none; }

.footer-bottom { margin-top: 3rem; }
.footer-bottom .footer-btn-txt { margin-top: 0; font-size: 1.2rem; color: var(--cl-txt);}
.footer-bottom .footer-btn-txt::after { background-color: var(--cl-txt); }
.fcopy { margin-top: 2rem; font-size: 1rem; text-align: center; font-weight: var(--ff-base-bold); }

@media print, screen and (min-width: 640px) {
.footer { padding: 10rem 0 4rem; }
.page-home .footer { padding-bottom: 4rem; }
.finfo-logo { width: 30rem; }

.fnav-list { grid-template-columns: repeat(5,1fr); gap: 2rem 0; margin-top: 3rem; }
.fnav-item { height: 5rem; border-right: var(--cl-border) 1px solid; font-size: 1.4rem; }
.fnav-item:nth-child(3n) { border-right: var(--cl-border) 1px solid; }
.fnav-item:nth-child(5n) { border-right: none; }
.fnav-item-link { display: block; padding: 0 2rem;}


.footer-bottom { display: flex; justify-content: space-between; margin-top: 8rem; }
.footer-bottom .footer-btn-txt { font-size: 1.2rem; color: var(--cl-txt);}
.footer-bottom .footer-btn-txt::after { background-color: var(--cl-txt); }
.fcopy { margin-top: 0; font-size: 1.2rem; }

}




/* foot-cta
--------------------------------------------------------------*/

.foot-cta { background-color: var(--cl-bg);}
.foot-cta .c-sectitle { color: var(--cl-wh);}
.foot-cta .c-sectitle-sub { color: var(--cl-wh);}
.foot-cta img { overflow: hidden; border-radius: 1rem;}
.foot-cta-title { margin-top: 2rem; font-size: 2.4rem; color: var(--cl-wh); text-align: center; font-weight: var(--ff-base-bold);}
.foot-cta .u-linkbtn { background-color: #FFEF72; color: var(--cl-key);}
.foot-cta .u-linkbtn span { display: block; font-size: 1.6rem; line-height: 1;}
.foot-cta .u-linkbtn::after { background-color: var(--cl-key);}
.foot-cta-contact { margin: 2rem 0; }
.foot-cta-contact-lead { color: var(--cl-wh); text-align: center; font-weight: var(--ff-base-bold);}
.foot-cta-tel,
.foot-cta-mail { display: grid; align-items: center; justify-content: center; height: 8rem; margin-top: 2rem; color: var(--cl-key); background-color: var(--cl-wh); border-radius: 5rem;}
.foot-cta-tel > *,
.foot-cta-mail > * { font-weight: var(--ff-base-bold); text-align: center;}
.foot-cta-ico { display: grid; justify-content: center; align-items: center; grid-template-columns: max-content max-content; gap: 0.5em; line-height: 1.4;}
.foot-cta-ico::before { content: ""; display: block; width: 2.4rem; height: 2.4rem; background: no-repeat center center / contain;}
.foot-cta-tel { grid-template-rows: 1fr max-content max-content 1fr;}
.foot-cta-tel > *:nth-child(1) { grid-row: 2/3;}
.foot-cta-tel > *:nth-child(2) { grid-row: 3/4;}
.foot-cta-tel .foot-cta-ico { font-size: 2.4rem;}
.foot-cta-tel .foot-cta-ico::before { background-image: url(../../assets/images/home/ico_tel.svg) ;}
.foot-cta-mail .foot-cta-ico { font-size: 1.8rem;}
.foot-cta-mail .foot-cta-ico::before { background-image: url(../../assets/images/home/ico_mail.svg) ;}

@media print, screen and (min-width: 640px) {
.foot-cta-lead { display: grid; grid-template-rows: max-content 1fr; grid-template-columns: repeat(2,1fr); gap: 0 4rem;}
.foot-cta-lead img { grid-row: 1/3;}
.foot-cta-title { text-align: left; font-size: 3rem; line-height: 1.6;}
.foot-cta .u-linkbtn { grid-column: 2/3;}

.foot-cta-contact { display: grid; grid-template-columns: max-content max-content; justify-content: center; margin: 8rem 0 0; gap: 0 4rem; }
.foot-cta-contact-lead { grid-column: 1/3; font-size: 2.4rem;}
.foot-cta-tel,
.foot-cta-mail { min-width: 34rem; height: 10rem; margin-top: 4rem; padding: 0 4rem;}
.foot-cta-tel > *:nth-child(1) { font-size: 1.4rem;}
.foot-cta-tel .foot-cta-ico { font-size: 3rem;}
.foot-cta-mail .foot-cta-ico { font-size: 2.4rem;}

}



/* floating
--------------------------------------------------------------*/

.floating { position: fixed; bottom: 0; left: 0; width: 100%; display: grid; grid-template-columns: repeat(2,1fr); z-index: 10; transform: translateX(0) translateY(100px); opacity: 0; visibility: hidden; transition: all 0.6s ease;}
.floating.is-visible { transform: translateX(0) translateY(0); opacity: 1; visibility: visible; }
.floating-btn { display: grid; align-items: center; justify-content: center; width: 100%; height: 8rem; font-weight: var(--ff-base-bold); font-size: 1.8rem;}
.floating-btn:nth-child(1) { background-color: var(--cl-key); color: var(--cl-wh);}
.floating-btn:nth-child(2) { background: url(../../assets/images/home/floating_bg.svg) no-repeat center center / cover; color: var(--cl-key);}
.floating-btn:nth-child(2) span { display: block; font-size: 1.4rem; text-align: center;}

@media print, screen and (min-width: 640px) {
.floating { display: none;}

}


/* 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: transparent; cursor: pointer; width: 4rem; height: 4rem; outline: none; transition:0.5s; z-index: 130; border-radius: 50%; cursor: pointer; background-color: var(--cl-key);}
.spitem-btn::before,
.spitem-btn::after { content: ""; position: absolute; left: 50%; width: 1.2rem; height: 2px; background-color: var(--cl-wh); transform: translateX(-50%); transition:0.3s; }
.spitem-btn::before { top: 2.4rem; }
.spitem-btn::after  { bottom: 2.4rem; }
.spitem-btn-line { position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; width: 1.2rem; 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-btn { top: 2rem; right: 3rem; width: 8rem; height: 8rem;}
.spitem-btn::before,
.spitem-btn::after,
.spitem-btn-line { width: 2rem; height: 2px; }
.spitem-btn::before { top: 2.8rem; }
.spitem-btn::after  { bottom: 2.8rem; }

}


/* spnav [wrap] */
.spmenu { opacity: 0; visibility: hidden; position: fixed; top: var(--header-height); right: -100%; width: 100%; z-index: 99; transition: 0.3s; }
.spmenu._spopen { right: 0; opacity: 1; visibility: visible; }
.spmenu-inner { position: relative; width: 100%; height: calc(100vh - var(--header-height)); height: calc(100dvh - var(--header-height)); padding: 10.67vw; overflow-y: scroll; background-color: var(--cl-bg-gr); z-index: 1;}

@media print, screen and (min-width: 640px) {
.spmenu { top: -100%; right: 0; transition: 0.5s; }
.spmenu._spopen { top: var(--header-height); opacity: 1; visibility: visible; }
.spmenu-inner { height: max-content; padding: 1rem; overflow-y: hidden;}

}


/* spnavMenu */
.spnav { }
.spnav-item { }
.spnav-item + .spnav-item { margin-top: 3rem; }
.spnav-item-link { display: inline-block; font-weight: var(--ff-base-bold); font-size: 1.6rem; }
.spnav-item-link._entry { background-color: #FFEF72; color: var(--cl-key); width: 100%; height: 8rem; display: flex; align-items: center; place-content: center; margin-top: 4rem; font-size: 1.8rem; letter-spacing: 0.1em; border-radius: 5rem; }
.spnav-item-link._entry span { display: block; font-size: 1.4rem; text-align: center; }
.spnav-item-link._blank { display: inline-flex; align-items: center; gap: 0.5em; font-size: 1.4rem; color: var(--cl-key); }
.spnav-item-link._blank::after { content: ""; display: block; width: 0.8em; height: 0.8em; background: url(../../assets/images/common/ico_blank.svg) no-repeat center center / contain; }

@media print, screen and (min-width: 640px) {
.spnav { display:  grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
.spnav-item + .spnav-item { margin-top: 0; }
.spnav-item-link { display: grid; grid-template-columns: 1fr max-content; align-items: center; padding: 2rem; background-color: var(--cl-wh); }
.spnav-item-link::after { content: ""; display: block; width: 1.2em; height: 1.2em; mask: url(../../assets/images/common/ico_ar.svg) no-repeat center center / contain; background-color: var(--cl-key); transform: rotate(90deg); }
.spnav-item-link._entry,
.spnav-item-link._blank { display: none; }



}









/* main contents
--------------------------------------------------------------*/
.main { min-height: 50vh; }
@media print, screen and (min-width: 640px) {
.main { }
}






/*----------------------------------------------------------------------------------------------------------------------------

component

----------------------------------------------------------------------------------------------------------------------------*/

/* pagetitle */
.c-pagetitle { display: grid; align-items: center; height: 18rem; position: relative; margin: var(--header-height) 0 0; background-color: var(--cl-bg); }
.c-pagetitle::before,
.c-pagetitle::after { position: absolute; z-index: 1; top: 0; width: 100%; height: 100%; content: ""; display: block; background-color: var(--cl-bg); opacity: 40%; mix-blend-mode: multiply; }
.c-pagetitle::before { left: 0; clip-path: polygon(100% 0, 0 0, 0 100%); }
.c-pagetitle::after { right: 0; clip-path: polygon(100% 100%, 100% 0, 0 0); }
.c-pagetitle .u-inner { position: relative; z-index: 2; font-weight: var(--ff-base-bold); color: var(--cl-wh);  }
.c-pagetitle-sub { font-size: 1.6rem; }
.c-pagetitle-main { margin-top: 0.5rem; font-size: 3.2rem; line-height: 1.4; }


@media print, screen and (min-width: 640px) {
.c-pagetitle { height: 24rem; }
.c-pagetitle-main { margin-top: 1rem; font-size: 4rem; }

}



/* sectitle */
.c-sectitle { margin-bottom: 2rem; text-align: center; }
.c-sectitle-sub { display: grid; grid-template-columns: max-content 1fr max-content; align-items: center; font-size: 1.6rem; color: var(--cl-key); font-weight: var(--ff-base-bold); line-height: 1.3;}
.c-sectitle-sub::before { content: ""; display: block; width: 2.8rem; height: 2.8rem; background: url(../../assets/images/common/sectitle_bg.svg) no-repeat center center / contain;}
.c-sectitle-sub::after { content: ""; display: block; width: 2.8rem; height: 2.8rem; background: url(../../assets/images/common/sectitle_bg.svg) no-repeat center center / contain; border-radius: 50%; overflow: hidden;}
.c-sectitle-main { margin-top: 2rem; font-size: 3.2rem; font-weight: var(--ff-base-bold); line-height: 1.4;}

@media print, screen and (min-width: 640px) {
.c-sectitle { margin-bottom: 6rem; }
.c-sectitle-sub { width: max-content; margin: 0 auto; gap: 10rem; font-size: 2.4rem;}
.c-sectitle-main { margin-top: 2.5rem; font-size: 4rem; }

}


/* subtitle */
.c-subtitle { margin: 2rem 0; font-size: 1.8rem; font-weight: var(--ff-base-bold);}
.c-subtitle._line { display: flex; align-items: center; gap: 1rem;}
.c-subtitle._line::before { content: ""; display: block; width: 1.5rem; height: 2px; background-color: var(--cl-key);}

@media print, screen and (min-width: 640px) {
.c-subtitle { margin: 3rem 0; font-size: 2.4rem; line-height: 1.6; }


}


/* card-list */
.card-list { display: grid; gap: 2rem;}
.card-item { padding: 2rem; background-color: var(--cl-wh); border-radius: 1rem;}
.card-item-tag { width: max-content; margin-top: 2rem; padding: 0.8rem; font-size: 1.2rem; font-weight: var(--ff-base-bold); background-color: var(--cl-bg-gr); line-height: 1;}
.card-item-title { margin: 1rem 0; font-size: 1.8rem; font-weight: var(--ff-base-bold);}

@media print, screen and (min-width: 640px) {
.card-item-title { margin: 1rem 0 1.5rem; font-size: 2rem; line-height: 1.4;}
.card-item-tag { font-size: 1.4rem;}

}



/* process-list */
.process-list {}
.process-item { position: relative; display: grid; grid-template-columns: max-content 1fr; gap: 1.6rem; padding-bottom: 2rem;}
.process-item::before { position: absolute; top: 0; left: 3rem; content: ""; display: block; width: 1px; height: 100%; background-color: var(--cl-key); z-index: 1;}
.process-item:last-child { padding: 0;}
.process-item:last-child:before { display: none;}
.process-item-num { position: relative; z-index: 2; display: grid; align-items: center; justify-content: center; width: 6rem; height: 6rem; font-size: 2.4rem; color: var(--cl-key); line-height: 1; background-color: var(--cl-bg-gr); border-radius: 50%; font-weight: var(--ff-base-bold);}
.process-item-txt { margin-top: 1.2rem;}
.process-item-txt span { display: block; margin-bottom: 1rem; font-size: 2rem; font-weight: var(--ff-base-bold); }
.process-item-txt p { margin-top: 1.5rem; padding: 2rem; background-color: var(--cl-bg-gr);}

@media print, screen and (min-width: 640px) {
.process-item-txt p { margin-top: 1.5rem; padding: 2rem; font-size: 1.4rem; line-height: 1.4;}


}


/* table */
.c-grtb {  }
.c-grtb-item { display: grid; padding: 1.5rem 0; border-bottom: var(--cl-border) 1px solid; }
.c-grtb-item > * {  }
.c-grtb-item:first-child { padding-top: 0; }
.c-grtb-item dt { font-weight: var(--ff-base-bold); }
.c-grtb-item dd { margin-top: 0.2rem; }

@media print, screen and (min-width: 640px) {
.c-grtb-item { grid-template-columns: 1fr 2fr; padding: 2rem 0; }

}





/* 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; }
.c-grid._grid-s1-1-1 { grid-template-columns: 1fr 1fr 1fr; }

@media print, screen and (min-width: 640px) {
.c-grid { gap: 3rem; }
.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._grid-p1-1-1-1-1 { grid-template-columns: 1fr 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; }
}



.page-result {}
.page-result .c-formthanks-title { margin-bottom: 0.5rem; font-weight: var(--ff-base-bold); font-size: 1.8rem;}
.page-result .cauntion { margin-top: 2rem; padding: 2rem; background-color: #FFEF72; border-radius: 1rem;}
.page-result .cauntion-title {  margin-bottom: 0.5rem; font-weight: var(--ff-base-bold); font-size: 1.6rem;}

@media print, screen and (min-width: 640px) {
.page-result .c-formthanks-title { margin-bottom: 1rem; text-align: center; font-size: 2.4rem;}
.page-result .cauntion { margin-top: 3rem; padding: 3rem; }
.page-result .cauntion-title { font-size: 1.8rem;}

}






/* page-notfound
--------------------------------------------------------------*/
.notfound {}
.notfound-title { text-align: center; font-size: 2.4rem; }
.notfound-txt { font-size: 1.2em; }
.notfound-btn { margin: 2em auto 0; }

@media print, screen and (min-width: 640px) {
.notfound-title { font-size: 4rem; }
.notfound-txt {  text-align: center; }
.notfound-btn { margin: 4em auto 0; }
}






/*----------------------------------------------------------------------------------------------------------------------------

page unique

----------------------------------------------------------------------------------------------------------------------------*/



/* home
----------------------------------------------------------------------------------------------------------------------------*/


.kv { padding-top: var(--header-height); background-color: var(--cl-bg-gr);}
.kv-pic {}
.kv-area { display: grid; grid-template-columns: max-content 1fr; gap: calc(2.4rem - 0.8rem); margin: 0 calc(50% - 50vw); border: var(--cl-bg-gr) 1px solid; background-color: var(--cl-wh); }
.kv-area > * { padding: 0.8rem; }
.kv-area-title { position: relative; background-color: var(--cl-bg-gr); font-weight: var(--ff-base-bold);}
.kv-area-title:after { position: absolute; top: 0; left: 100%; content: ""; display: block; width: 1.2rem; height: 100%; background-color: var(--cl-bg-gr); clip-path: polygon(100% 50%, 0 0, 0 100%);}
.kv-area-list {}
.kv-area-list span { font-weight: var(--ff-base-bold);}
.kv-area-list span + span::before { content: "、"; }

@media print, screen and (min-width: 640px) {
.kv-area { margin: 0; border-width: 1rem;  }
.kv-area > * { padding: 1.5rem; font-size: 1.8rem; }
}



.info { position: relative; padding: 2rem 0; background-color: var(--cl-bg);}
.info::before,
.info::after { position: absolute; top: 0; width: 100%; height: 40%; content: ""; display: block; background-color: var(--cl-bg); opacity: 40%; mix-blend-mode: multiply;}
.info::before { left: 0; clip-path: polygon(100% 0, 0 0, 0 100%); }
.info::after { right: 0; clip-path: polygon(100% 100%, 100% 0, 0 0); }
.info-title { position: relative; z-index: 2; text-align: center; color: var(--cl-wh); font-size: 1.8rem; font-weight: var(--ff-base-bold);}
.info-list { position: relative; z-index: 2; margin-top: 2rem; gap: 0.3rem; }
.info-item { position: relative; background-color: var(--cl-wh); border-radius: 1rem; overflow: hidden;}
.info-item-title { position: absolute; top: 1rem; left: 0; right: 0; margin: 0 auto; text-align: center; font-weight: var(--ff-base-bold);}

@media print, screen and (min-width: 640px) {
.info { padding: 10rem 0; }
.info::before,
.info::after { height: 100%; }
.info-title { font-size: 4rem; line-height: 1.2; }
.info-list { margin-top: 6rem; gap: 0.5rem; }
.info-item-title { top: 2rem; font-size: 2.4rem;}
.info-pic { max-width: 110rem; margin: 10rem auto 0;}
}



.check { padding: 2rem 0;}
.check-title { width: max-content; margin: 0 auto; padding-bottom: 0.2rem; color: var(--cl-key); text-align: center; font-size: 1.8rem; background: url(../../assets/images/home/check_title_bg.svg) no-repeat bottom left / contain;}
.check-list { display: grid; gap: 0.8rem; margin-top: 1rem;}
.check-item { display: grid; grid-template-columns: max-content 1fr; align-items: center; gap: 0.5em; font-weight: var(--ff-base-bold);}
.check-item::before { content: ""; display: block; width: 2rem; height: 2rem; background: url(../../assets/images/home/ico_check.svg) no-repeat center center / contain;}

@media print, screen and (min-width: 640px) {
.check { background-color: transparent !important; margin-top: 10rem; padding: 0;}
.check .u-inner { padding: 6rem; background-color: var(--cl-bg-gr);}
.check-title { padding-bottom: 0.2rem; font-size: 4rem; }
.check-list {grid-template-columns: repeat(2,1fr); gap: 2rem; margin-top: 4rem;}
.check-item { font-size: 1.8rem;}
}



.message {}
.message-box {}
.message-txt { font-size: 1.6rem; font-weight: var(--ff-base-bold);}
.message-pic { margin-top: 2rem;}

@media print, screen and (min-width: 640px) {
.message-txt { font-size: 2.4rem; }
.message-box { display: grid; grid-template-columns: repeat(2,1fr);}
.message-txt { grid-column: 1/2;}
.message-pic { grid-row: 1/3; grid-column: 2/3; margin-top: 0;}
}





.interview {}
.interview-item-comment,
.interview-item-name { display: grid; grid-template-columns: max-content 1fr; gap: 2rem; align-items: flex-start;}
.interview-item-name { margin-top: 1.5rem; padding-top: 1.5rem; border-top: var(--cl-border) 1px solid; font-weight: var(--ff-base-bold); align-items: center;}
.interview-item-name::before,
.interview-item-comment::before { content: ""; display: block; width: 2.5rem; height: 2.5rem; background:  no-repeat center center / contain;}
.interview-item-comment::before { background-image: url(../../assets/images/home/ico_comment.svg);}
.interview-item-name::before { background-image: url(../../assets/images/home/ico_person.svg);}

@media print, screen and (min-width: 640px) {
.interview-item-comment,
.interview-item-name { font-size: 1.4rem; line-height: 1.6;}
}




.company-item { position: relative; }
.company-item img { background-color: var(--cl-bg-gr); border-radius: 1rem; overflow: hidden;}
.company-item-title { position: absolute; top: 1rem; left: 0; right: 0; margin: 0 auto; text-align: center; font-weight: var(--ff-base-bold);}
.company-item-txt { margin-top: 0.8rem; line-height: 1.4;}

.company-item:nth-last-child(-n+2) { grid-column: 1/3;}
.company-item:nth-last-child(-n+1) { padding: 2rem; background-color: var(--cl-bg-gr); border-radius: 1rem; overflow: hidden;}
.company-item:nth-last-child(-n+1) .company-item-title { position: static; margin-bottom: 0.5rem; font-size: 1.6rem; text-align: left; }
.company-item:nth-last-child(-n+1) ul { display: grid; grid-template-columns: repeat(2,1fr); gap: 0.5rem; }
.company-item:nth-last-child(-n+1) ul li { display: flex; flex-wrap: wrap; gap: 0 0.5em; font-weight: var(--ff-base-bold); }
.company-item:nth-last-child(-n+1) ul li::before { content: ""; display: block; width: 0.8rem; height: 0.8rem; margin-top: 0.5em; border-radius: 50%; background-color: var(--cl-key);}
.company-item:nth-last-child(-n+1) ul li span { display: block; font-size: 1rem;}
.company-item:nth-last-child(-n+1) ul li:last-child { grid-column: 1/3;}

@media print, screen and (min-width: 640px) {
.company-list { gap: 2rem;}
.company-item-title { top: 1.5rem; font-size: 2.4rem;}
.company-item:nth-last-child(-n+2) { grid-column: 3/5;}
.company-item:nth-last-child(-n+1) { display: grid; grid-template-columns: 0.5fr 1.5fr; grid-column: 1/5; padding: 3rem;}
.company-item:nth-last-child(-n+1) .company-item-title { width: 100%; font-size: 1.8rem; }
.company-item:nth-last-child(-n+1) ul {  }
.company-item:nth-last-child(-n+1) ul li { font-size: 1.6rem; }
.company-item:nth-last-child(-n+1) ul li span { width: 100%; font-size: 1.2rem;}

.company-outline { display: grid; grid-template-columns: 0.5fr 1.5fr; align-items: baseline; margin-top: 3rem;}

}





.schedule-title { font-size: 1.8rem; font-weight: var(--ff-base-bold); line-height: 1.4;}
.schedule-title + p { margin-top: 1rem; }
.schedule-box { margin-top: 2rem; padding: 2rem; background-color: var(--cl-bg-gr); border-radius: 1rem;}
.schedule-box .c-subtitle { margin: 0 0 1rem;}
.schedule-box-title { width: max-content; margin-top: 2rem; padding: 0.8rem; background-color: var(--cl-key); color: var(--cl-wh); font-weight: var(--ff-base-bold);}

.schedule-box-flow { margin-top: 1.5rem;}
.schedule-box-flow-item { position: relative; display: grid; align-items: flex-start; grid-template-columns: 7rem 1fr; padding-bottom: 1rem;}
.schedule-box-flow-item::before { position: absolute; top: 1rem; left: 0.35rem; content: ""; display: block; width: 1px; height: 100%; background-color: var(--cl-key); }
.schedule-box-flow-item:last-child { padding-bottom: 0;}
.schedule-box-flow-item:last-child:before { display: none; }
.schedule-box-flow-item dt { display: grid; grid-template-columns: max-content 1fr; gap: 0.5em; align-items: center; color: var(--cl-key); font-weight: var(--ff-base-bold);}
.schedule-box-flow-item dt::before { content: ""; display: block; width: 0.8rem; height: 0.8rem; background-color: var(--cl-key); border-radius: 50%;}
.schedule-box-flow-item dd {}
.schedule-box-flow-item dd span { display: block; font-weight: var(--ff-base-bold);}

.shift-list { margin: 2rem 0;}
.shift-item { display: grid; grid-template-columns: max-content 1fr; align-items: flex-start; gap: 1rem; }
.shift-item + .shift-item { margin-top: 0.5rem; }
.shift-item dt { display: grid; grid-template-columns: 2.5rem 1fr; align-items: center; gap: 0.5em; font-weight: var(--ff-base-bold);}
.shift-pic { height: 20rem; overflow-x: scroll;}
.shift-pic img { height: 100%; width: auto; max-width: none; }


@media print, screen and (min-width: 640px) {

.schedule-lead-box { display: grid; grid-template-rows: max-content 1fr; grid-template-columns: repeat(2,1fr); gap: 3rem;}
.schedule-title { font-size: 3.2rem; }
.schedule-title + p { grid-column: 1/2; margin: 0; }
.schedule-box { margin: 0; padding: 5rem;}
.schedule-box:first-of-type { grid-row: 1/3; grid-column: 2/3;}
.schedule-box:nth-of-type(2) { grid-row: 3/4; grid-column: 1/3; display: grid; grid-template-columns: repeat(2,1fr); gap: 0 4rem;}
.schedule-box:nth-of-type(2) .c-subtitle { grid-column: 1/3; margin-bottom: 2rem;}
.schedule-box:nth-of-type(2) .schedule-box-flow { margin-top: 0;}
.schedule-box:nth-of-type(3) { grid-row: 5/6; grid-column: 1/3; display: grid; grid-template-columns: 1fr 2fr; gap: 0 2rem; }
.schedule-box:nth-of-type(3) .c-subtitle { grid-column: 1/3; margin-bottom: 2rem;}
.schedule-box:nth-of-type(3) .c-subtitle + p { grid-column: 1/3; margin-bottom: 2rem;}
.schedule-box:nth-of-type(3) .shift-list { grid-column: 1/2;}
.schedule-box-flow-item { grid-template-columns: 8rem 1fr; }
.schedule-box-flow-item dd span { font-size: 1.8rem;}

.shift-pic { height: auto; overflow-x: initial;}
.shift-pic img { height: auto; width: 100%; max-width: 100%; }


}







.area {}
.area .card-item { position: relative; }
.area .card-item::before { position: absolute; top: 0; left: 0; content: "募集なし"; padding: 1rem 1rem 1.2rem; background-color: #c4c4c4; border-radius: 0 0 1rem 0; color: var(--cl-wh); font-weight: var(--ff-base-bold); line-height: 1;}
.area .card-item._status-on::before { content: "求人募集中！"; background-color: #FF5858;  }

.area-lead { margin: 2rem 0;}
.area-item-time { display: grid; grid-template-columns: max-content 1fr; gap: 1.5rem; align-items: center;}
.area-item-time span { display: grid; align-items: center; justify-content: center; height: 4.2rem; padding: 0 1rem; border: var(--cl-txt) 1px solid; font-weight: var(--ff-base-bold);}
.area-item-txt { margin-top: 1rem;}

@media print, screen and (min-width: 640px) {
.area-lead-box { display: grid; grid-template-columns: repeat(2,1fr); gap: 4rem;}
.area .card-list { margin-top: 6rem;}
.area-item-time { grid-template-columns: max-content 1fr; gap: 1rem; font-size: 1.5rem; line-height: 1.4;}
.area-item-time span { font-size: 1.3rem; line-height: 1.2;}
.area-item-txt { margin-top: 1.3rem; font-size: 1.4rem; line-height: 1.6;}
.area .card-item::before { font-size: 1.6rem;}


}


.requirements {}
.requirements table {}
.requirements tbody {}
.requirements tbody tr { display: block; padding: 1.5rem 0; border-bottom: var(--cl-border) 1px solid;}
.requirements tbody tr:first-of-type { padding-top: 0;}
.requirements tbody tr > * { display: block; border: none; padding: 0;}
.requirements tbody tr td:first-of-type { font-weight: var(--ff-base-bold);}
.requirements tbody tr td:last-of-type { margin-top: 0.5rem; }

@media print, screen and (min-width: 640px) {
.requirements tbody tr { display: grid; grid-template-columns: 1fr 2fr; padding: 3rem 0;}
.requirements tbody tr td:last-of-type { margin-top: 0; }

}




.process02 {}
.process02-point { gap: 0.3rem; margin-bottom: 4rem;}
.process02-point li { padding: 1.5rem 1rem; background-color: var(--cl-bg-gr); border-radius: 1rem; font-weight: var(--ff-base-bold); text-align: center; line-height: 1.3;}
.process02-point li img { max-width: 2.4rem; margin: 0 auto;}
.process02-point li p { margin-top: 0.5rem;}

@media print, screen and (min-width: 640px) {
.process02-point { gap: 1rem; margin-bottom: 6rem;}
.process02-point li { padding: 3rem; }
.process02-point li img { max-width: 4rem;}
.process02-point li p { margin-top: 1rem;}

}



.comment {}
.comment .comment-ico { width: 14rem; height: 14rem; margin: 0 auto; background-color: #D7E7F7; border-radius: 50%; overflow: hidden;}
.comment .comment-txt { position: relative; margin-top: 2.5rem; padding: 2rem; border-radius: 1rem; background-color: var(--cl-wh); }
.comment .comment-txt::before { position: absolute; bottom: 100%; left: 0; right: 0; width: 1.5rem; height: 1.2rem; margin: 0 auto; content: ""; display: block; background-color: var(--cl-wh); clip-path: polygon(100% 100%, 50% 0, 0 100%); }

@media print, screen and (min-width: 640px) {
.comment .comment-ico { width: 24rem; height: 24rem; }
.comment .comment-txt { margin-top: 2.5rem; padding: 3rem; }
}



.page-form {}
.page-form .form-lead-txt { margin-bottom: 4rem;}
.page-form label { font-weight: var(--ff-base-bold);}
.page-form .required { color: var(--cl-error);}
.page-form .wpcf7-form-control { display: grid; gap: 1rem;}
.page-form .wpcf7-list-item { margin: 0;}
.page-form .wpcf7-list-item label { cursor: pointer;}
.page-form input[type=text],
.page-form input[type=email],
.page-form input[type=tel],
.page-form input[type=number],
.page-form textarea { width: 100%; height: 5rem; padding: 1em; background-color: var(--cl-wh); border: none;}
.page-form textarea { min-height: 15rem; }
.page-form input[type=number] { width: 30%;}
.page-form .c-grtb-item { display: grid; gap: 1rem;}
.page-form .address-group { display: grid; gap: 1rem;}
.page-form .address-zip { display: grid; grid-template-columns: max-content 1fr; gap: 1rem; align-items: center;}
.page-form .address-zip input { width: 50%;}
.page-form .address-note { margin: 0.5rem 0; font-size: 1.2rem;}

#btn-to-confirm { cursor: pointer;}

.submit-btn:has(input) p { position: relative; }
.submit-btn:has(input) p::after { position: absolute; top: 50%; right: 2rem; transform: translate(0,-50%); content: ""; display: inline-block; width: 1.4em; height: 1.4em; justify-self: end; mask: url(../../assets/images/common/ico_ar.svg) no-repeat center center / contain; background-color: var(--cl-wh); transition: 0.5s; }
.submit-btn:has(input) p input { position: relative; display: grid; align-items: center; width: 100%; height: 8rem; margin-top: 2rem; padding: 0 1em 0 1.2em; color: var(--cl-wh); background-color: var(--cl-key); border: var(--cl-key) 1px solid; font-size: 1.8rem; border-radius: 5rem; text-align: center; font-weight: var(--ff-base-bold); cursor: pointer;}

.wpcf7-spinner { position: absolute !important; top: 50%; left: 0; right: 0; margin: 0 auto !important; transform: translate(0,-50%);}
.wpcf7-list-item-label { font-weight: var(--ff-base-normal) !important;}
.wpcf7-response-output { padding: 2rem !important; border-color: var(--cl-error) !important; text-align: center !important;}

.confirm-btns { text-align: center; margin-top: 4rem; }
.c-btn.--back { background: #999; color: #fff; border: none; padding: 10px 20px; cursor: pointer; }
.c-btn.--back { border-radius: 5rem;}

@media print, screen and (min-width: 640px) {
.page-form .u-cl-error { font-size: 1.4rem;}
.page-form .form-lead-txt { margin-bottom: 6rem;}
.page-form .c-grtb-item { padding: 3rem 0;}

.submit-btn { max-width: 34rem; margin: 4rem auto 0;}


}

/* 自作のエラーメッセージ用 */
.custom-error-msg { color: var(--cl-error); font-size: 1.2rem; margin-top: 0.5rem;}
.wpcf7-not-valid-tip { color: var(--cl-error) !important; font-size: 1.2rem !important; margin-top: 0.5rem !important; }

@media print, screen and (min-width: 640px) {
.custom-error-msg { font-size: 1.4rem;  }
.wpcf7-not-valid-tip { font-size: 1.4rem !important; }

}


