@charset "utf-8";
/* CSS Document */

/**WEB_FONT**/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200;300;400;500;600;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;800&display=swap');


/**RESET**/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin:0; padding:0; border:0; outline:0; vertical-align:baseline; background:transparent; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box;
font-size: 1.6rem; font-weight: normal; line-height: 1.0; }

/** global box-sizing **/
*, *:after, *:before { -moz-box-sizing: border-box; box-sizing: border-box; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/**禁則処理**/
* { word-break: keep-all; line-break: strict; word-wrap: break-word; overflow-wrap: break-word; }

/**FONT_SIZE_BASIC**/
/* html element 62.5% font-size for REM use */
html { font-size:62.5%; }

/**ページ内スムーズスクロール**/
html { scroll-behavior: smooth; }
body { line-height:1; font-size:1.4rem; color:#444; font-family: Lato, "Noto Sans JP", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; }


/**OPTIONS**/
a { text-decoration: none; }
a:hover { opacity: 0.5; }
table { border-collapse: collapse; }


/**BACK2TIO_BUTTON**/
#page-top { position: fixed; bottom: 0px; right: 0px; z-index: 100; }
#page-top a { text-decoration:none; color:#fff; padding: 0; text-align: center; display: block; border-radius: 12px; }
#page-top a img { display: block; width: 70px; height: auto; margin: 0 0 20px 0; }


/**BUTTON**/
.btn { display: block; padding: 2rem; position: relative; }
.btn::before { content: ""; margin: auto; position: absolute; top: 0; bottom: 0; right: 2rem; width: 11px; height: 11px; border-top: 2px solid #fff; border-right: 2px solid #fff; transform: rotate(45deg); }


/**PARTS**/

.flex { display: flex; }
.block { display: block; }
.inlineblock { display: inline-block; }

.jstfyCFS { justify-content: flex-start; }
.jstfyCFE { justify-content: flex-end; }
.jstfyCC { justify-content: center; }
.jstfySA { justify-content: space-around; }
.jstfySB { justify-content: space-between; }

.algnItmFS { align-items: flex-start; }
.algnItmFE { align-items: flex-end; }
.algnItmC { align-items: center; }

.flxwrpN { flex-wrap: nowrap; }
.flxwrpW { flex-wrap: wrap; }

.w10per { width: 10%; } .w20per { width: 20%; } .w30per { width: 30%; }
.w40per { width: 40%; } .w50per { width: 50%; } .w60per { width: 60%; }
.w70per { width: 70%; } .w80per { width: 80%; } .w90per { width: 90%; }
.w98per { width: 98%; } .w100per { width: 100%; }

.w50 { width: 50px; } .w100 { width: 100px; } .w200 { width: 200px; }
.w300 { width: 300px; } .w400 { width: 400px; } .w500 { width: 500px; }
.w600 { width: 600px; } .w700 { width: 700px; } .w800 { width: 800px; }
.w900 { width: 900px; } .w1000 { width: 1000px; } .w1100 { width: 1100px; }

.wCalc2 { width: calc( 96% / 2 ); margin: 1%; }
.wCalc3 { width: calc( 94% / 3 ); margin: 1%; }
.wCalc4 { width: calc( 92% / 4 ); margin: 1%; }
.wCalc5 { width: calc( 90% / 5 ); margin: 1%; }
.wCalc6 { width: calc( 88% / 6 ); margin: 1%; }

.h100 { height: 100px; } .h200 { height: 200px; } .h300 { height: 300px; }
.h400 { height: 400px; } .h500 { height: 500px; } .h600 { height: 600px; }
.h700 { height: 700px; } .h800 { height: 800px; } .h900 { height: 900px; }
.h1000 { height: 1000px; } .hauto { height: auto; }

.objCenter { margin: 0 auto; }
.image100per { display: block; width: 100%; height: auto; }

.textCenter { text-align: center; }
.textLeft { text-align: left; }
.textRight { text-align: right; }

.fgothic { font-family: "Noto Sans JP"; }
.fmincho { font-family: "Noto Serif JP"; }
.fmontserrat { font-family: "Montserrat"; }

.lineh14 { line-height: 1.4; } .lineh16 { line-height: 1.6; } .lineh20 { line-height: 2.0; }

.fs10 { font-size: 1.0rem; } .fs13 { font-size: 1.3rem; } .fs16 { font-size: 1.6rem; }
.fs20 { font-size: 2.0rem; } .fs23 { font-size: 2.3rem; } .fs26 { font-size: 2.6rem; }
.fs30 { font-size: 3.0rem; }

.fw300 { font-weight: 300; } .fw400 { font-weight: 400; } .fw500 { font-weight: 500; }
.fw600 { font-weight: 600; } .fw700 { font-weight: 700; } .fw800 { font-weight: 800; }
.fw900 { font-weight: 900; }

.fc000 { color: #000; } .fc333 { color: #333; } .fc666 { color: #666; }
.fc999 { color: #999; } .fcFFF { color: #fff; }
.fcRED { color: #CC0000; } .fcGRN { color: #02c44d; } .fcBLU { color: #159af9; }


.bg333 { background: #333; } .bg666 { background: #666; } .bg999 { background: #999; }
.bgF5F { background: #F5F5F5; } .bgFFF { background: #fff; }
.bgRED { background: #CC0000; } .bgGRN { background: #02c44d; } .bgBLU { background: #159af9; }

.bdr333 { border-color: #333; } .bdr666 { border-color: #666; } .bdr999 { border-color: #999; }
.bdrF5F { border-color: #F5F5F5; } .bdrFFF { border-color: #fff; }
.bdrRED { border-color: #CC0000; } .bdrGRN { border-color: #02c44d; } .bdrBLU { border-color: #159af9; }

.brdW1 { border-width: 1px; } .brdW2 { border-width: 2px; } .brdW3 { border-width: 3px; }
.brdW4 { border-width: 4px; } .brdW5 { border-width: 5px; } .brdW6 { border-width: 6px; }
.brdW10 { border-width: 10px; } .brdW20 { border-width: 20px; } .brdW30 { border-width: 30px; }

.brdS { border-style: solid; } .brdD { border-style: double; } .brdDT { border-style: dotted; }
.brdDS { border-style: dashed; }

.rads5 { border-radius: 5px; } .rads10 { border-radius: 10px; } .rads15 { border-radius: 15px; }


.pdng1rem { padding: 1rem; } .pdng2rem { padding: 2rem; } .pdng3rem { padding: 3rem; }
.pdng5rem { padding: 5rem; } .pdng7rem { padding: 7rem; } .pdng10rem { padding: 10rem; }

.mgnT3rem { margin-top: 3rem; } .mgnT6rem { margin-top: 6rem; } .mgnT10rem { margin-top: 10rem; }

.mgnB3rem { margin-bottom: 3rem; } .mgnB6rem { margin-bottom: 6rem; } .mgnB10rem { margin-bottom: 10rem; }


/**SP、PC差分**/
@media screen and (max-width:768px) {
    .pc { display: none!important; }
    .sp { display: block; }

}@media print, screen and (min-width:768px) {
    .pc { display: block; }
    .sp { display: none!important; }

}