@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-key01: #30702B;
    --cl-key02: #004A30;
    --cl-txt: #ffffff;
    --cl-border: #CCCCCC;
    --cl-border-thin: #707070;
    --cl-bg: #151515;
    --cl-bg-gr: #050505;
    --cl-wh: #fff;
    --cl-bk: #000;
}

/* fixheader height */
:root { --header-height: 6rem; }
@media print, screen and (min-width: 640px) {
:root { --header-height: 10rem; }
}

/* font set */
:root {
    /* font: style weight size / line-height family */
    --ff-base: normal 300 1.4rem / 1.6 'Noto Sans JP', sans-serif;
    --ff-base-normal: 300;
    --ff-base-bold: 600;
    --ff01f: "Noto Serif JP", serif;
}
@media print, screen and (min-width: 640px) {
:root {
    /* font: style weight size / line-height family */
    --ff-base: normal 300 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; background-color: var(--cl-bg); color: var(--cl-wh); 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 / 124); }
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%; }
}




/*----------------------------------------------------------------------------------------------------------------------------

utility & inview set

----------------------------------------------------------------------------------------------------------------------------*/

/* utility - base
---------------------------------------------------- */

/* utility - base responsive */
.u-inner { max-width: 103rem; margin: 0 auto; width: 90%; }
.u-inner._inner-min { max-width: 77rem; }
.u-wrapsect { padding: 6rem 0; }
.u-wrapsect:last-child { padding-bottom: 10rem; }
.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;}
strong { font-weight: var(--ff-base-bold);}

@media print, screen and (min-width: 640px) {
.u-inner { }
.u-wrapsect { padding: 12rem 0; }
.u-wrapsect:last-child { padding-bottom: 16rem; }
.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-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 - accordion  */
.js-acd { display: grid; grid-template-columns: auto max-content; align-items: center; cursor: pointer; }
.js-acd::after { content: ""; display: block; width: 1em; height: 1em; mask: url(../../assets/images/common/aco_ar.svg) no-repeat center center / contain; background-color: var(--cl-key); transition: 0.3s; }
.js-acd.is-open::after { transform: rotate(-180deg);  }

.u-txt-ex { font-size: 1.2rem;}
@media print, screen and (min-width: 640px) {
.u-txt-ex { font-size: 1.4rem;}
}


/* utility - link
---------------------------------------------------- */

/* utility - linkbtn */
.u-linkbtn { display: grid; align-items: center; grid-template-columns: 1fr max-content; gap: 2rem; width: max-content; min-width: 23rem; height: 5rem; margin-top: 2rem; padding: 0 1em 0 1.2em; color: var(--cl-wh); background-color: var(--cl-key01); border: var(--cl-key01) 1px solid; }
.u-linkbtn::after { 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 { min-width: 31rem; height: 6rem; margin-top: 4rem; }
.u-linkbtn:hover { color: var(--cl-wh); background-color: var(--cl-key02); border-color: var(--cl-key02); opacity: 1; }
}



.u-txtbtn { display: inline-block; text-decoration: underline;}

.u-note { margin: -4rem 0 2rem; text-align: right; font-size: 1.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%; transition: 0.3s; background-image: linear-gradient(#000000, transparent); border-bottom: var(--cl-border-thin) 1px solid; }
.header-logo { width: 23rem; }
.header-nav { display: none; }

@media print, screen and (min-width: 640px) {
.header { width: 100%; padding: 0 0 0 3rem; display: flex; justify-content: space-between;}
.header-logo { width: 26.25%; max-width: 42rem; }
.header-nav { width: 78%; display: block; }
}



/* gnav */
@media print, screen and (min-width: 640px) {
.gnav { display: flex; justify-content: flex-end; align-items: center; }
.gnav-item { margin-right: 3.64%; }
.gnav-item-link { display: flex; align-items: center; font-size: 1.6rem; font-weight: var(--ff-base-bold); height: var(--header-height); color: var(--cl-wh); cursor: pointer; }

.gnav-item._btn { width: 20.63%; max-width: 17rem; min-width: 14rem; margin: 0; }
.gnav-item-link._btn { background-color: var(--cl-key01); justify-content: center;}
.gnav-item._btn:last-child .gnav-item-link._btn { background-color: var(--cl-key02);}

}

/* footer
--------------------------------------------------------------*/

/* footer */
.footer { padding-bottom: 4rem;  }
.finfo-logo { width: 14rem; margin: 0 auto; }
.finfo-logo._bottom { width: 28rem; margin-top: 3rem; }
.fnav-list { display: none; }
.fcopy { margin-top: 2rem; font-size: 1.2rem; text-align: center; }

@media print, screen and (min-width: 640px) {
.footer { }
.finfo-logo { width: 22rem; }
.finfo-logo._bottom { width: 38rem; margin-top: 7rem; }
.fnav-list { display: flex; gap: 3rem; justify-content: center; margin-top: 8rem; }
.fcopy { margin-top: 8rem; font-size: 1.4rem; }

}


.foot-cta { position: relative; padding: 24rem 0 8rem;}
.foot-cta::before { position: absolute; top: 0; left: 0; right: 0; margin: 0 auto; content: ""; width: 100%; height: 100%; background: url(/assets/images/common/foot_bg_sp.webp) no-repeat top center / contain; z-index: -1;}
.foot-cta-txt { text-align: center; font-weight: var(--ff-base-bold);}
.foot-cta-btn { display: block; max-width: 103rem; margin: 1.5rem auto 0; padding: 1.2rem 0; text-align: center; background-color: var(--cl-key01); font-size: 1.2rem;}
.foot-cta-btn span { display: block; margin-bottom: 0.8rem; font-size: 2.4rem; line-height: 1;}

@media print, screen and (min-width: 640px) {
.foot-cta { padding: 30rem 0 24rem;}
.foot-cta::before { width: 100%; min-height: 131rem; background-image: url(/assets/images/common/foot_bg_pc.webp);}
.foot-cta-btn { margin: 3rem auto 0; padding: 2.2rem 0; font-size: 1.6rem;}
.foot-cta-btn span { margin-bottom: 0.8rem; font-size: 4rem;}


}


/* spitem
--------------------------------------------------------------*/

/* _spopen changes */
@media print, screen and  (max-width: 1023px) {
body._spopen { height: 100%; overflow: hidden; }
}


/* spnav-btn */
.spitem-btn { position: fixed; top: 0; right: 0; -webkit-appearance: none; -moz-appearance: none; appearance: none; border: none; background-color: transparent; cursor: pointer; width: 6rem; height: 6rem; 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: 2.2rem; height: 2px; background-color: var(--cl-wh); transform: translateX(-50%); transition:0.3s; }
.spitem-btn::before { top: 2.2rem; }
.spitem-btn::after  { bottom: 2.2rem; }
.spitem-btn-line { position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; width: 2.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 { display: none; }
.spitem-btn { display: none; }
}


/* spnav [wrap] */
.spmenu { opacity: 0; visibility: hidden; position: fixed; top: 0; right: -100%; width: 100vw; z-index: 100; transition: 0.3s; }
.spmenu._spopen { right: 0; opacity: 1; visibility: visible; }
.spmenu-inner { position: relative; width: 100%; height: 100vh; height: 100dvh; padding: var(--header-height) 10.67vw 0; overflow-y: scroll; background-color: #005B3F; z-index: 1;}

/* spnavMenu */
.spnav { }
.spnav-item { }
.spnav-item + .spnav-item { border-top: #337C65 1px solid; }
.spnav-item-link { display: block; font-weight: var(--ff-base-bold); padding: 3rem 0; line-height: 1; }
.spnav-item-link.js-acd { display: grid; grid-template-columns: 1fr max-content; }
.spnav-item-link._min { margin-left: 1em; font-size: 1.4rem; }
.spnav-item-link._contact { border: var(--cl-key) 2px solid; background-color: var(--cl-wh); color: var(--cl-key); width: 100%; height: 6rem; display: flex; align-items: center; place-content: center; margin-top: 4rem; letter-spacing: 0.1em; border-radius: 5rem; }
.spnav-item-link[target="_blank"] { display: flex; align-items: center; gap: 0.5em;  }
.spnav-item-link[target="_blank"]::after { content: ""; display: block; width: 1em; height: 1em; mask: url(../../assets/images/common/ico_blank.svg) no-repeat center center / contain; background-color: var(--cl-txt);  }
.spnav-btn { display: block; max-width: 20rem; margin-top: 2rem; border: var(--cl-border) 1px solid;}


/* main contents
--------------------------------------------------------------*/
.main { min-height: 50vh; }
@media print, screen and (min-width: 640px) {
.main { }
}






/*----------------------------------------------------------------------------------------------------------------------------

component

----------------------------------------------------------------------------------------------------------------------------*/

/* pagetitle */
.c-pagetitle { margin: calc(var(--header-height) + 4rem) 0 4rem; text-align: center; }
.c-pagetitle span { display: block; font-size: 3.2rem;}
.c-pagetitle-title { margin-top: 0.5rem; font-weight: var(--ff-base-normal); }

@media print, screen and (min-width: 640px) {
.c-pagetitle { margin: calc(var(--header-height) + 17rem) 0 15rem;  }
.c-pagetitle span { font-size: 6rem;}
.c-pagetitle-title { margin-top: 0; }
}


.c-sectitle { }
.c-sectitle-en { font-size: 3.2rem; line-height: 1;}
.c-sectitle-jp { display: flex; align-items: center; gap: 0.5em; margin-top: 1rem; font-weight: var(--ff-base-normal); line-height: 1;}
.c-sectitle-jp::after { content: ""; display: block; width: 4rem; height: 1px; background-color: var(--cl-border-thin);}

@media print, screen and (min-width: 640px) {
.c-sectitle-en { font-size: 4rem;}
.c-sectitle-jp { margin-top: 2rem; font-size: 1.8rem;}
.c-sectitle-jp::after { width: 8rem; }

}


.c-gridbox { position: relative; display: grid; gap: 3rem; align-items: flex-start;}
.c-gridbox-item { }
.c-gridbox-item._right {  }

@media print, screen and (min-width: 640px) {
.c-gridbox { grid-template-columns: 1fr 2fr; gap: 3rem;}

}


.c-linebox { display: grid; gap: 0.5rem; padding: 2rem; border: var(--cl-border-thin) 1px solid;}
.c-linebox + .c-linebox { margin-top: 2rem;}
.c-linebox._link { position: relative; }
.c-linebox._link::before { position: absolute; top: 2rem; right: 2rem; content: ""; display: block; width: 1em; height: 1em; mask: url(/assets/images/common/ico_blank.svg) no-repeat center center / contain; background-color: var(--cl-wh); }
.c-linebox-title { font-weight: var(--ff-base-bold); font-size: 1.6rem;}
.c-linebox-tel {}
.c-linebox-tel span { display: block;}

@media print, screen and (min-width: 640px) {
.c-linebox { padding: 4rem; line-height: 1.6; }
.c-linebox._link::before { top: 50%; right: 4rem; width: 2rem; height: 2rem; transform: translate(0,-50%); }
.c-linebox-title { font-size: 2rem;}
.c-linebox-tel { display: flex; gap: 2rem;}

}




/* title
--------------------------------------------------------------*/


/* title - utility */

.u-title-xl { font-size: 2.4rem; line-height: 1.5; font-weight: var(--ff-base-bold); }
.u-title-lg { font-size: 2rem; line-height: 1.6; font-weight: var(--ff-base-bold); }
.u-title-md { font-size: 1.6rem; line-height: 1.5; font-weight: var(--ff-base-bold); }
.u-title-sm { font-size: 1.6rem; line-height: 1.5; font-weight: var(--ff-base-bold); }

.u-title-point { display: grid; grid-template-columns: max-content 1fr; gap: 1rem; align-items: center;}
/*.u-title-point::before { content: ""; display: block; width: 0.8rem; height: 0.8rem; background-color: var(--cl-key); border-radius: 50%;}*/
.u-title-line { display: grid; gap: 1.4rem; }
/*.u-title-line::after { content: ""; display: block; width: 2rem; height: 3px; background-color: var(--cl-key);}*/

@media print, screen and (min-width: 640px) {
[class^="u-title-"] { margin-bottom: 4rem;}

.u-title-xl { font-size: 4rem; }
.u-title-lg { font-size: 3.2rem; }
.u-title-md { font-size: 2.4rem; }
.u-title-sm { font-size: 1.8rem; }

.u-title-point { gap: 2rem; }
/*.u-title-point::before { width: 1rem; height: 1rem; }*/
.u-title-line { gap: 2.4rem; }
/*.u-title-line::after { width: 3rem; height: 3px; }*/

}









/* table
--------------------------------------------------------------*/

/* c-grtb */
.c-grtb { border: #A6A7A7 1px solid; }
.c-grtb-item { display: grid; }
.c-grtb-item > * { padding: 1.5rem; border-bottom: #A6A7A7 1px solid; }
.c-grtb-item:last-child > *:last-child { border-bottom: none; }
.c-grtb-item > *:nth-child(1) { background-color: #3B3938; }

@media print, screen and (min-width: 640px) {
.c-grtb-item { grid-template-columns: 22rem 1fr; }
.c-grtb-item > *:nth-child(1) { display: grid; align-items: center; justify-content: center; }
.c-grtb-item:last-child > * { border-bottom: none; }

}










/* 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; }
}





/* page-notfound
--------------------------------------------------------------*/
.notfound {}
.notfound-title { text-align: center; font-size: 2.4rem; }
.notfound-txt { margin-top: 3em; font-size: 1.2em; }
.notfound-btn { margin: 3em auto 0; }

@media print, screen and (min-width: 640px) {
.notfound-title { font-size: 4rem; }
.notfound-txt { margin-top: 4em;  text-align: center; }
.notfound-btn { margin: 4em auto 0; }
}






/*----------------------------------------------------------------------------------------------------------------------------

page unique

----------------------------------------------------------------------------------------------------------------------------*/

/* home
----------------------------------------------------------------------------------------------------------------------------*/

/* kv */
.kvbg-wrap { position: relative;}
.kvbg-pic { position: sticky; top: 5rem; left: 0; z-index: -1; transition: 0.5s;}
.kvbg-pic.is-blur { filter: blur(0.5rem); opacity: 0.8; }

@media print, screen and (min-width: 640px) {
.kvbg-pic { top: 0; }
}

.kv { margin-top: -14rem; text-align: center;}
.kv-catch { max-width: 76rem; margin: 0 auto;}
.kv-title { margin: 3rem 0 2rem; font-size: 2rem;}
.kv-txt { display: flex; gap: 1.6rem; justify-content: center; margin-top: 0.5rem;}

@media print, screen and (min-width: 640px) {
.kv { position: absolute; top: calc(var(--header-height) + 26rem); left: 0; right: 0; margin: 0 auto; }
.kv-title { margin: 4rem 0 3rem; font-size: 2.8rem;}
.kv-txt { gap: 2rem; margin-top: 1rem;}
}


/* overview */
.overview { position: relative; padding-top: 12rem; }
.overview::before { position: absolute; top: -6rem; left: 0; content: ""; display: block; width: 100%; height: 100%; background: url(/assets/images/home/overview_bg_sp.webp) no-repeat top center / contain; z-index: -1;}
.overview-grid { position: relative; display: grid; gap: 6rem;}
.overview-title { font-size: 3.4rem;}
.overview-detail-txt { margin-top: 2rem; font-size: 1.6rem; line-height: 1.8;}
.overview-detail-pic { margin-top: 3rem;}
.overview .c-sectitle { margin-bottom: 2rem;}

@media print, screen and (min-width: 640px) {
.overview::before { top: -35rem; background-image: url(/assets/images/home/overview_bg_pc.webp) ;}
.overview-grid { grid-template-columns: 1fr 47.57%; gap: 0; align-items: baseline;}
.overview-title { position: sticky; top: calc(var(--header-height) + 2rem); left: 0; font-size: 4.4rem; line-height: 1.6;}
.overview-title + div { margin-top: 2rem;}
.overview .c-sectitle { margin-bottom: 6rem;}
.overview-detail-txt { margin-top: 4rem; font-size: 1.8rem; }

}


/* lineup */
.lineup {}
.lineup .c-gridbox { display: block;}
.lineup .c-sectitle { margin-bottom: 2rem;}
.lineup .u-title-md { margin: 2rem 0;}
.lineup .u-fs-ex { margin-top: 2rem;}
.lineup .u-title-md span { display: block; font-weight: var(--ff-base-normal); font-size: 1.4rem; text-align: right;}

.lineup-tablewrap { min-width: 0; overflow-x: auto; width: 100%; -webkit-overflow-scrolling: touch;}
.lineup-table  { width: auto; min-width: 60rem; border-collapse: collapse; border: #A6A7A7 1px solid;  }
.lineup-table-item  { }
.lineup-table-item > * { padding: 1.5rem; text-align: center; border-right: #A6A7A7 1px solid; border-bottom: #A6A7A7 1px solid; line-height: 1.4;  }
.lineup-table-item > *._bg { background-color: #302D2C; }
.lineup-table-item > *._bg-thin { background-color: #110605; }
.lineup-table-item > *._bg01 { background-color: rgba(48, 112, 43, 0.6);; }
.lineup-table-item > *._bg02 { background-color: rgba(0, 74, 48, 0.6); }
.lineup-table-item > *._new { position: relative; }
.lineup-table-item > *._new::before { position: absolute; top: -0.5rem; left: -0.5rem; width: max-content; height: max-content; padding: 0.3rem 1rem; content: "NEW"; font-size: 1.3rem; background-color: #946D34; font-weight: var(--ff-base-normal); }
.lineup-table-item > *._row2{ grid-row: 1/3; }

thead .lineup-table-item:nth-child(1) > *:nth-child(1) { width: 15.82%; }
thead .lineup-table-item:nth-child(1)  > *:nth-child(2) { width: 13.43%; }
thead .lineup-table-item > *._bg { background-color: #3B3938; }
thead .lineup-table-item > *._bg-thin { background-color: #110605; }
thead .lineup-table-item > *._bg01 { background-color: var(--cl-key01); }
thead .lineup-table-item > *._bg02 { background-color: var(--cl-key02); }

@media print, screen and (min-width: 640px) {
.lineup .c-gridbox { display: grid;}
.lineup .c-sectitle { margin-bottom: 0;}
.lineup .c-gridbox-item._left { position: sticky; top: calc(var(--header-height) + 2rem);}
.lineup-tablewrap { overflow: initial;}
.lineup-table  { width: auto;  }

}




/* spec */
.c-sectitle + .spec-pic { margin-top: 2rem;}

@media print, screen and (min-width: 640px) {
.c-sectitle + .spec-pic { margin-top: 4rem;}
}


/* about */

.about .c-gridbox-item._right > div + div { margin-top: 2rem;}
.about .u-title-md { margin-bottom: 2rem;}

@media print, screen and (min-width: 640px) {
.about .c-gridbox-item._left { position: sticky; top: calc(var(--header-height) + 2rem);}
.about .c-gridbox-item._right > div + div { margin-top: 4rem;}
.about .u-title-md { margin-bottom: 2rem;}
}



/* Download
----------------------------------------------------------------------------------------------------------------------------*/

.page-dl {}

.dl-list { display: grid; gap: 2rem;}
.dl-item { display: grid; grid-template-columns: 1fr 1.5fr; grid-template-rows: max-content max-content 1fr; gap: 1rem 2rem;}
.dl-item-pic { grid-row: 1/4; border: var(--cl-border-thin) 1px solid;}
.dl-item-title { font-weight: var(--ff-base-bold);}
.dl-item-btn { grid-column: 2/3; grid-row: 2/3; display: flex; align-items: center; gap: 0.5em; font-size: 1.2rem;}
.dl-item-btn::after { content: ""; display: block; width: 0.8em; height: 0.8em; mask: url(/assets/images/common/ico_dl.svg) no-repeat center center / contain; background-color: var(--cl-wh);}
@media print, screen and (min-width: 640px) {
.dl-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 5rem;}
.dl-item { display: block; }
.dl-item-title { margin-top: 1rem;}
.dl-item-btn { font-size: 1.4rem;}

}


/* contact
----------------------------------------------------------------------------------------------------------------------------*/

.page-contact .u-note { margin: 0 0 2rem; text-align: right; font-size: 1.4rem;}




























































/*----------------------------------------------------------------------------------------------------------------------------

Print Force PC Layout (Chrome Priority Fix)

----------------------------------------------------------------------------------------------------------------------------*/

@media print {
    /* 1. 用紙設定と縮小率の適正化 */
    @page {
        size: A4 portrait; /* A4縦 */
        margin: 5mm;       /* 余白5mm */
    }

    html {
        width: 1280px !important;
        font-size: 10px !important; /* PCデザインの基準(10px)に固定 */
    }

    body {
        width: 1280px !important;
        min-width: 1280px !important;
        /* 1280pxをA4幅(約794px)に余白込みで収めるため 0.52倍 に設定 */
        /* 0.6だと大きすぎてはみ出し、レイアウト崩れの原因になります */
        zoom: 0.52;
        overflow: visible !important;
    }

    /* 2. メインコンテンツの幅崩れ防止（ここが重要） */
    .main,
    .u-wrapsect {
        width: 100% !important;
        min-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* インナー幅を1120pxに強制固定して、Gridが潰れるのを防ぐ */
    /* 元のCSSの90%指定を上書きします */
    .u-inner {
        width: 1120px !important;
        max-width: 1120px !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    /* Gridコンテナの幅確保 */
    .c-grid,
    [class*="grid-"],
    .page-home .aboutus,
    .page-home .job,
    .page-home .person,
    .page-home .environment {
        width: 100% !important;
        display: grid !important; /* Grid解除を防ぐ */
        box-sizing: border-box !important;
    }

    /* 3. トップ画像の高さ固定 */
    .page-home .kv {
        height: 600px !important;
        min-height: 600px !important;
        padding-top: 14rem !important;
        background-size: cover !important;
        background-position: center top !important;
        margin-top: 0 !important;
    }
    .page-home .kv-box {
        padding-top: 12rem !important;
    }

    /* 4. ヘッダーの固定 */
    .header {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        background-color: #fff !important;
        padding: 0 3rem !important;
    }
    .header-logo {
        width: 23.29% !important;
        max-width: 35rem !important;
    }

    /* 5. 不要なSP要素の非表示とPC要素の表示 */
    .u-only-sp, .spitem, .spitem-btn, .spmenu, .spmenu-bg {
        display: none !important;
    }
    .u-only-pc, .header-nav {
        display: block !important;
    }
    .header-nav-gnav {
        display: flex !important;
    }

    /* 6. 表示強制 */
    [class*="iv-"], .iv-fade, .iv-up_fade {
        opacity: 1 !important;
        transform: none !important;
        visibility: visible !important;
    }

    /* 7. 色の強制出力 */
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
}