@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP&display=swap');
@import url('https://use.typekit.net/eth8ens.css');

/*=============================================
===============================================
=============== jsp-common.css ================
===============================================
===============================================
LastUpDate:18.05.24
=============================================*/



/*CommonStyle***************************************************************************************/

/*Reset*/
html, body, div, span, 
h1, h2, h3, h4, h5, h6, p, 
dl, dt, dd, ol, ul, li {
margin: 0;
padding: 0;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {display: block;}

ol, ul {list-style: none;}

blockquote, q {quotes: none;}

blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}


/**============================================================================================**/


/*display*/
.dis-blk{display:block;}
.dis-ilblk{display:inline-block;}
.dis-non{display:none;}
.dis-tbl,
.dis-tbl01,
.dis-tbl02,
.dis-tbl03,
.dis-tbl04,
.dis-tbl05{display:table;}
.dis-tbl_tab,
.dis-tbl_tab01,
.dis-tbl_tab02,
.dis-tbl_tab03,
.dis-tbl_tab04,
.dis-tbl_tab05{display:table; table-layout: fixed;}
.dis-tblcl,
.dis-tblcl01,
.dis-tblcl02,
.dis-tblcl03,
.dis-tblcl04,
.dis-tblcl05{display:table-cell;}
.dis-tblcm{display:table-column;}


/*position*/
.posi-abs{position:absolute;}
.posi-fix{position:fixed;}
.posi-rlt{position:relative;}


/*float*/
.rf{float:right;}
.lf{float:left;}


/*clear*/
.clearfix:after {display: block; clear:both; content: "";}

.cl{clear:both;}
.clb{clear:both; visibility:hidden; margin:0; padding:0;}


/*margin*/
.m-0{margin:0;}
.m-0a{margin:0 auto;}

.m-5{margin:5px;}
.m-15{margin:15px;}
.m-10{margin:10px;}
.m-20{margin:20px;}

.m-tb5{margin:5px 0;}
.m-tb10{margin:10px 0;}
.m-tb15{margin:15px 0;}
.m-tb20{margin:20px 0;}
.m-tb30{margin:30px 0;}

.m-t5{margin:5px 0 0 0;}
.m-t10{margin:10px 0 0 0;}
.m-t15{margin:15px 0 0 0;}
.m-t20{margin:20px 0 0 0;}
.m-t25{margin:25px 0 0 0;}
.m-t30{margin:30px 0 0 0;}
.m-t35{margin:35px 0 0 0;}
.m-t40{margin:40px 0 0 0;}
.m-t45{margin:45px 0 0 0;}
.m-t50{margin:50px 0 0 0;}
.m-t55{margin:55px 0 0 0;}
.m-t60{margin:60px 0 0 0;}

.m-b5{margin:0 0 5px 0;}
.m-b10{margin:0 0 10px 0;}
.m-b15{margin:0 0 15px 0;}
.m-b20{margin:0 0 20px 0;}
.m-b25{margin:0 0 25px 0;}
.m-b30{margin:0 0 30px 0;}
.m-b35{margin:0 0 35px 0;}
.m-b40{margin:0 0 40px 0;}
.m-b45{margin:0 0 45px 0;}
.m-b50{margin:0 0 50px 0;}
.m-b55{margin:0 0 55px 0;}
.m-b60{margin:0 0 60px 0;}


/*padding*/
.p_0{padding:0;}

.p_5{padding:5px;}
.p_10{padding:10px;}
.p_15{padding:15px;}
.p_20{padding:20px;}
.p_25{padding:25px;}
.p_30{padding:30px;}


/*color*/
.red{color:#FF0004;}
.orange{color:#FF670E;}
.yellow{color:#ffe207;}
.green{color:#13AD0D;}
.teal{color:#20c997;}
.cyan{color:#31d5f9;}
.blue{color:#0074FF;}
.navy{color:#101c7c;}
.purple{color:#AF65E7;}
.pink{color:#FC8FE0;}
.dark{color:#606060;}
.gray{color:#adadad;}
.light{color:#e0e0e0;}
.black{color:#000;}
.white{color:#fff;}



/*font*/
.fw_b{font-weight:bold;}

.fs_08{font-size:0.8em;}
.fs_09{font-size:0.9em;}
.fs_10{font-size:1.0em;}
.fs_11{font-size:1.1em;}
.fs_12{font-size:1.2em;}
.fs_13{font-size:1.3em;}
.fs_14{font-size:1.4em;}
.fs_15{font-size:1.5em;}
.fs_16{font-size:1.6em;}
.fs_17{font-size:1.7em;}
.fs_18{font-size:1.8em;}
.fs_19{font-size:1.9em;}
.fs_20{font-size:2.0em;}
.fs_23{font-size:2.3em;}
.fs_25{font-size:2.5em;}
.fs_27{font-size:2.7em;}
.fs_30{font-size:3.0em;}
.fs_35{font-size:3.5em;}
.fs_40{font-size:4.0em;}


/*text*/
.ta_l {text-align:left;}
.ta_c {text-align:center;}
.ta_r {text-align:right;}

.txd_unl{text-decoration:underline;}
.txd_non{text-decoration:none;}
.txd_ovl{text-decoration:overline;}


/*align*/
.vat{vertical-align:top;}
.vam{vertical-align:middle;}
.vab{vertical-align:bottom;}



/**============================================================================================**/
body {
	font-size: 16px; font-weight: 500; line-height: 1.6em;
	font-family: "Noto Sans JP", sans-serif;
	font-style: normal;}

.w1200 {max-width: 1200px;}
.w1000 {max-width: 1000px;}

a {
    color: #0a2240; text-decoration: none;
	-webkit-transition: all 0.5s;
	transition: all 0.5s;}

a:hover { color: #ffff00;}

img { 
    width: auto; height: auto; max-width: 100%; max-height: 100%; 
    opacity: 1;
	-webkit-transition: all 0.5s;
	transition: all 0.5s;}

a:hover img { opacity: 0.5;}

main h1,
main h2 {
    margin: 0 0 80px; 
    font-size: 48px; font-weight: 700; text-align: center;
    font-family: source-serif-pro, serif; font-style: normal;}

main h1 p,
main h2 p { margin: 30px 0 0; font-size: 24px; font-family: "Noto Sans JP Regular";}

@media screen and (max-width:699px){
    main h1,
    main h2 { margin-bottom: 40px; font-size: 30px;}
    
    main h1 p,
    main h2 p { margin-top: 10px; font-size: 16px;}
}
/**============================================================================================**/
/* ロゴ・グローバルメニュー */
header { background: #0a2240;}
header .flex {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
    position: relative;
    box-sizing: border-box; width: 100%; max-width: 1240px; height: 100px; margin: 0 auto; padding: 0 20px;}

/* ロゴ */
header .logo img { vertical-align: middle;}

@media screen and (max-width:999px){
    /* ロゴ・グローバルメニュー */
    header .flex { height: 80px;}
    
    /* ロゴ */
    header .logo img {max-width: 250px;}
}

@media screen and (max-width:349px){
    /* ロゴ */
    header .logo img {max-width: 200px;}
}

/* グローバルメニュー */
#nav-area ul {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;}

#nav-area li { margin: 0 0 0 40px;}

#nav-area li a { color: #fff; font-weight: 600; line-height: 1.0em; text-align: center;}
#nav-area li a:hover { color: #ffff00;}

#nav-area span { display: block;}
#nav-area span:first-child { font-size: 20px;}
#nav-area span:last-child { margin-top: 10px; font-size: 14px;}

@media screen and (max-width:999px){
    #nav-area ul {
        display: -webkit-block;
        display: block;}

    #nav-area li { 
        margin: 0; padding: 10px; 
        border-bottom: dotted 1px #ccc;}
        
    #nav-area span { display: inline-block; vertical-align: middle;}
    #nav-area span:last-child { margin: 0 0 0 15px;}
}

/* 外部リンク */
#nav-area a[target="_blank"] {
    display: inline-block; position: relative; 
    padding: 0 21px 0 0;}

#nav-area a[target="_blank"]::after {
    content: '';
    display: block; position: absolute; top: 1px; right: 0;
    width: 14px; height: 14px;
    background: url("../img/outlink_bk.webp");
	-webkit-transition: all 0.5s;
	transition: all 0.5s;}

#nav-area a[target="_blank"]:hover::after { background: url("../img/outlink_lg.webp");}

/**========================================**/
/* javascriptを使用したハンバーガーボタン */
#nav-btn,
#nav-bg { display: none;}

@media screen and (max-width:999px){
    /* ハンバーガーボタン */
    #nav-btn {
        display: -webkit-flex;
        display: flex;
        -webkit-align-items: center;
        align-items: center;
        position: absolute; top: 50%; right: 20px;
        width: 50px; height: 40px;
        cursor: pointer; 
        transform: translateY(-50%);
        transition: all 0.4s;}

    #nav-btn:hover { opacity: 0.7;} 

    #nav-btn span,
    #nav-btn span::before,
    #nav-btn span::after {
        content: '';
        display: block; position: absolute;
        width: 50px; height: 6px;
        background: #fff;}

    #nav-btn span::before { top: -16px;}
    #nav-btn span::after { bottom: -16px;}
    #nav-btn span {
            top: 50%;
            margin: -2px 0 0;}

    /* グローバルメニュー表示エリア */
    #nav-bg {
        display: block; position: fixed; top: 0; left: 0; z-index: 20000;
        width: 0vw; height: 100vh; margin: 0;
        background: rgba(0, 0, 0, 0.5);
        cursor: pointer;
        transition: background 0.8s; }

    #nav-bg.slide-in { width: 100vw;}

    #nav-area {
        position: fixed; top: 0; left: auto; right: 0; z-index: 20002;
        box-sizing: border-box; width: 300px; height: 100vh; padding: 80px 20px 10px;
        background: #3d3d3d;
        transform: translateX(100%); transition: 0.8s; }


    #nav-area.slide-in {
        transform: translateX(0);
        transition: 0.8s; }

    /* スクロールバー */
    #nav-area > div { overflow-y: scroll; height: 100%; padding: 0 10px 0 0;}

    /* スクロールバーの装飾 */
        #nav-area > div::-webkit-scrollbar {width: 5px;}
        #nav-area > div::-webkit-scrollbar-track {background-color: #fff;}
        #nav-area > div::-webkit-scrollbar-thumb {background-color: #666;}

    /* 閉じるボタン */
    #nav-btn_cl {
        display: block; position: absolute; top: 20px; right: 20px; z-index: 10003;
        width: 25px; height: 25px;}

    #nav-btn_cl::before,
    #nav-btn_cl::after {
        content: '';
        display: block; position: absolute; top: 50%; left: 50%;
        width: 32px; height: 4px;
        background: #fff;}

    #nav-btn_cl::before {
        transform: translateX(-50%) translateY(-1px) rotate(45deg);
        -webkit-transform: translateX(-50%) translateY(-1px) rotate(45deg); }

    #nav-btn_cl::after {
        transform: translateX(-50%) translateY(-1px) rotate(-45deg);
        -webkit-transform: translateX(-50%) translateY(-1px) rotate(-45deg); }
}

@media screen and (max-width:599px){
    #nav-area { width: 100%;}
}

@media screen and (max-width:399px){
    #nav-btn { width: 26px; height: 26px;}

    #nav-btn span,
    #nav-btn span::before,
    #nav-btn span::after { width: 26px; height: 4px;}

    #nav-btn span::before { top: -10px;}
    #nav-btn span::after { bottom: -10px;}
}
/**============================================================================================**/

/**============================================================================================**/
footer {
    margin: 150px 0 0;
    background: #0a2240;
    color: #fff;}
    
footer a { display: inline-block; color: #fff;}
footer a:hover { color: #ffff00;}
    
footer .flex {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    box-sizing: border-box; width: 100%; max-width: 1240px; margin: 0 auto; padding: 50px 20px; 
    }

/* ロゴ */
footer .flex::before {
    content: '';
    display: block;
    width: 250px; height: 17px;
    background: url("../img/logo.webp");
    background-size: 100% auto;}

/* 会社情報 */
footer address { font-style: normal; margin: 0 100px;}
footer address a { text-decoration: underline;}
footer address span { display: inline-block;}
footer address span:last-child { margin-left: 10px;}

footer address li { 
    display: table; table-layout: fixed; 
    margin: 20px 0 0;}

footer address p { display: table-cell; vertical-align: top;}
footer address p:first-child { width: 60px;}

/* リンク */
footer .link li:nth-child(2) { margin: 30px 0;}

footer .link a { position: relative; padding: 0 0 0 20px;}
footer .link a::before {
    content: '';
    display: inline-block; position: absolute; top: 10px; left: 0;
    width: 6px; height: 6px;
    border: solid #fff; border-width: 2px 2px 0 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
    -webkit-transition: all 0.5s;
	transition: all 0.5s;}

footer .link a:hover::before { border-color: #51b2d4;}

/* 外部リンク */
footer .link a[target="_blank"] { padding-right: 21px;}

footer .link a[target="_blank"]::after {
    content: '';
    display: block; position: absolute; top: 5px; right: 0;
    width: 14px; height: 14px;
    background: url("../img/outlink_wh.webp");
	-webkit-transition: all 0.5s;
	transition: all 0.5s;}

footer .link a[target="_blank"]:hover::after { background: url("../img/outlink_lg.webp");}

@media screen and (max-width:1099px){
    /* 会社情報 */
    footer address { margin: 0 50px;}
    
    footer address span { display: block;}
    footer address span:last-child { margin: 0;}
}

@media screen and (max-width:899px){
    footer .flex { 
        -webkit-flex-direction: column;
        flex-direction: column;}
        
    /* 会社情報 */
    footer address { margin: 60px 0;}
}



/* copyright */
footer .ta_c {
    padding: 12px 0;
    background: #3d3d3d;
    font-size: 14px;}

/* LastUp2026.02.17_kimata */