@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
/*=============================================
===============================================
=============== 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 {
    padding: 100px 0 0;
	font-size: 16px; font-weight: 500; line-height: 2.2em;
	font-family: "Noto Sans JP", sans-serif;
	font-style: normal;}

section { max-width: 800px; margin: 0 auto; padding: 0 20px;}
section:not(:nth-of-type(1)) { margin-top: 80px;}

a {
    color: #000f53; text-decoration: none;
/*    
	-webkit-transition: all 0.5s;
	-moz-transition: all 0.5s;
	-ms-transition: all 0.5s;
	-o-transition: all 0.5s;
	transition: all 0.5s;
*/    
    }
	
a:hover { text-decoration: underline;}

img { width: auto; height: auto; max-width: 100%; max-height: 100%; vertical-align: middle;}

header h1 { display: inline;}
main h1 {
    margin: 0 0 50px;
    color: #000f53; font-size: 40px; font-weight: 900; line-height: 1.3em; text-align: center;}

h2 {
    margin: 0 0 30px; padding: 0 0 10px;
    border-bottom: solid 2px #ccc;
    color: #045862; font-size: 20px;}

h3 { color: #000f53; font-size: 18px; font-weight: 900; line-height: 1.3em;}

.w1200 { max-width: 1200px;}

@media screen and (max-width:999px){
    body { padding: 70px 0 0;}
}

@media screen and (max-width:699px){
    main h1 { font-size: 36px;}
}

@media screen and (max-width:499px){
    main h1 { font-size: 30px;}
}
/**============================================================================================**/
/* ロゴ・グローバルメニュー */
header {
    position: fixed; top: 0; left: 0; z-index: 10;
    box-sizing: border-box; width: 100%; padding: 0 20px;
    background: rgba(255,255,255,0.70);}

header .w1200 { 
    position: relative; 
    height: 100px; margin: 0 auto;}

header .logo,
#nav-area { position: absolute; top: 50%; transform: translateY(-50%);}

@media screen and (max-width:999px){
    header .w1200 { height: 70px;}
}

/* ロゴ */
header .logo { left: 0;}
header .logo:hover { opacity: 0.5;}

header .logo img { vertical-align: top;}

@media screen and (max-width:599px){
    header .logo { width: 150px; height: 30px;}
}

/* グローバルメニュー */
#nav-area { right: 0; max-width: 760px;}
#nav-area ul { display: table; table-layout: fixed; width: 100%; height: 80px;}
#nav-area li { 
    display: table-cell; position: relative; 
    text-align: center; vertical-align: middle;}

@media screen and (max-width:1199px){
    #nav-area { max-width: 650px;}
}

@media screen and (max-width:999px){
    #nav-area { max-width: none;}
    
    #nav-area ul { max-width: 150px; margin: 15px auto 0;}
    #nav-area li { display: block; margin: 0 0 25px; text-align: left;}
    #nav-area li:last-child { margin: 0;}
}

/* グローバルメニュー（親） */
#nav-area li > *:not(div) { 
    color: #000f53; font-size: 18px; line-height: 1.0em;
    cursor: pointer;}
#nav-area li > *:not(div):hover { text-decoration: none;}

#nav-area li > *:not(div)::before {
    content: '';
    display: block; position: absolute; top: 66px; left: 50%;
    width: 0; height: 0;
    transform: translateX(-50%);
	-webkit-transition: width 0.5s;
	-moz-transition: width 0.5s;
	-ms-transition: width 0.5s;
	-o-transition: width 0.5s;
	transition: width 0.5s;}

#nav-area li:hover > *:not(div)::before {
    width: 80px; height: 4px;
    border-radius: 2px;
    background: #000f53;}

/* ニュース */
#nav-area .news a::after {
    content: '';
    display: inline-block; 
    width: 11px; height: 11px; margin: 0 0 0 10px;
    background: url("../images/outlink_nv.webp");
    vertical-align: baseline;}

@media screen and (max-width:999px){
    #nav-area li > *:not(div) { 
        position: relative; padding: 0 0 0 14px;
        font-size: 16px; font-weight: 900; line-height: 1.0em;
        cursor: auto;}

    #nav-area li > *:not(div)::before {
        top: 50%; left: 0;
        border-style: solid; border-width: 6px 0 6px 9px;
        border-color: transparent transparent transparent #000f53;
        transform: translateX(0) translateY(-49%);}

    #nav-area li:hover > *:not(div)::before { display: none;}    
}

/* グローバルメニュー（子） */
#nav-area li div {
    position: absolute; top: 80px; left: 0;
    overflow-y: hidden;
    box-sizing: border-box; width: 100%; max-height: 0;
	-webkit-transition: max-height 0.5s;
	-moz-transition: max-height 0.5s;
	-ms-transition: max-height 0.5s;
	-o-transition: max-height 0.5s;
	transition: max-height 0.5s;}

#nav-area li:hover div { 
    max-height: 165px;
    border: solid #fff; border-width: 1px 1px 0;
    background: #000f53;}

#nav-area li div a {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    width: 100%; height: 40px;
    border-bottom: solid 1px #fff;
    color: #fff; font-size: 14px; line-height: 1.0em;}

#nav-area li div a:hover { background: #fff; color: #000f53;}



/* SOLASについて（会社概要） */
#nav-area .about a[target="_blank"]::after {
    content: '';
    display: inline-block; 
    width: 11px; height: 11px; margin: 0 0 0 10px;
    background: url("../images/outlink_wh.webp");
    vertical-align: baseline;}

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

@media screen and (max-width:999px){
    #nav-area li div {
        position: static; overflow-y: visible;
        max-height: none;}

    #nav-area li:hover div { 
        max-height: none;
        border: none; border-width: 1px 1px 0;
        background: #fff;}

    #nav-area li div p { margin: 15px 0 0;}

    #nav-area li div a {
        display: -webkit-inline;
        display: inline;
        width: auto; height: auto;
        border: none;
        color: #000f53; font-size: 14px; line-height: 1.0em;}

    #nav-area li div a:hover { background: #fff; color: #000f53;}
    
    /* SOLASについて */
    #nav-area .about > p { display: none;}
    #nav-area .about p { margin: 0 0 25px;}
    #nav-area .about p:last-child { margin: 0;}
    #nav-area .about a {
        display: inline-block; position: relative; 
        padding: 0 0 0 16px;
        font-size: 16px; font-weight: 900;}

    #nav-area .about a::before {
        content: '';
        position: absolute; top: 50%;  left: 0;
        width: 0;  height: 0;
        border-style: solid;  border-width: 6px 0 6px 9px;
        border-color: transparent transparent transparent #000f53;
        transform: translateY(-50%);}

    /* SOLASについて（会社概要） */
    #nav-area .about a[target="_blank"]::after { background: url("../images/outlink_nv.webp");}

}

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

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

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

#nav-btn::before,
#nav-btn::after,
#nav-btn span {
    content: '';
    display: block; position: absolute; left: 0;
    width: 40px; height: 5px;
    background: #000f53;}
       
#nav-btn::before { top: 0px;}
#nav-btn::after { bottom: 0px;}
#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: 10px;
    background: #fff;
    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: 32px; height: 32px;}
    
#nav-btn_cl::before,
#nav-btn_cl::after {
    content: '';
    display: block; position: absolute; top: 50%; left: 50%;
    width: 40px; height: 5px;
    background: #000f53;}
    
#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%;}
}

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

/**============================================================================================**/
footer { margin: 120px 0 0; border-top: solid 2px #d1d1d1;}

footer .w1200 { 
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-align-items: center;
    align-items: center;
    position: relative; margin: 0 auto 60px; padding: 60px 20px 0;}

footer .w1200::before { 
    content: url("../images/logo.webp");
    display: block;
    width: 203px; height: 40px;}

footer ul { display: table;}
footer li { display: table-cell; padding: 0 0 0 50px; vertical-align: top;}

@media screen and (max-width:1199px){
    footer li { padding: 0 0 0 30px;}
}

@media screen and (max-width:999px){
    footer .w1200 { 
        display: -webkit-block;
        display: block;}

    footer .w1200::before { margin: 0 auto 40px;}
    
    footer ul { width: 100%;}
    footer li { padding: 0 10px;}
}

@media screen and (max-width:799px){
    footer .w1200 { margin: 40px auto;}

    footer ul,
    footer li { display: block;}

    footer ul { width: 203px; margin: 0 auto;}
    footer li { margin: 0 0 30px;}
}


footer li > p { margin: 0 0 15px;}

footer li > p,
footer li > a,
footer .about a {
        display: inline-block; position: relative; 
        padding: 0 0 0 16px;
        color: #000f53; font-size: 16px; font-weight: 900;}

footer li > p::before,
footer li > a::before,
footer .about a::before {
        content: '';
        position: absolute; top: 50%;  left: 0;
        width: 0;  height: 0;
        border-style: solid;  border-width: 6px 0 6px 9px;
        border-color: transparent transparent transparent #000f53;
        transform: translateY(-50%);}

footer li div p { margin: 0 0 10px; font-size: 14px; font-weight: 500;}
footer li div p:last-child { margin: 0;}

/* SOLASについて */
footer .about > p { display: none;}
footer .about p { margin: 0 0 30px;}

/* 会社概要・ニュース */
footer a[target="_blank"]::after {
    content: '';
    display: inline-block; 
    width: 11px; height: 11px; margin: 0 0 0 10px;
    background: url("../images/outlink_nv.webp");
    vertical-align: baseline;}


/* copyright */
footer .ta_c { padding: 20px 0; border-top: solid 2px #d1d1d1; font-size: 14px;}


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

/**============================================================================================**/
/* 下層ページのイメージ画像 */
.main-img { margin: 0 0 30px; padding: 0 20px;}

.main-img p { position: relative; max-width: 1200px; height: 246px; margin: 0 auto;}

.main-img img {
    display: block; position: absolute; top: 50%; right: 0;
    max-width: none; max-height: none;
    transform: translateY(-50%);}

@media screen and (max-width:899px){
    .main-img p { height: 180px;}

    .main-img img { width: 280px;}
}

@media screen and (max-width:699px){
    .main-img p { height: 145px;}

    .main-img img { width: 200px;}
}

@media screen and (max-width:499px){
    .main-img p { height: 180px;}

    .main-img img { display: none;}
}

@media screen and (max-width:399px){
    .main-img p { height: 160px;}
}


/* LastUp2025.07.08_kimata */