@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&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: 70px 0 0;
	font-size: 16px; font-weight: 500; line-height: 1.6em;
	font-family: "Noto Sans JP", sans-serif;
	font-style: normal;}

a {
    color: #000; 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; vertical-align: top;}

h2,h3 {
    font-family: "Bricolage Grotesque", sans-serif;
    font-optical-sizing: auto;
    font-weight: 800;
    font-style: normal;
    font-variation-settings: "wdth" 100;}

.w1200 { max-width: 1200px;}

h1 {
    font-family: "Bricolage Grotesque", sans-serif;
    font-optical-sizing: auto;
    font-size: 30px; font-weight: 800; line-height: 1.3;
    font-style: normal;
    font-variation-settings: "wdth" 100;}

@media screen and (max-width:699px){
    body { padding: 60px 0 0;}
}
/**============================================================================================**/
/* ロゴ・グローバルメニュー */
header {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    position: fixed; top: 0; left: 0; z-index: 100;
    width: 100%; height: 70px;
    background: #fff;}

/* ロゴ */
header .logo:hover { opacity: 0.5;}
header .logo img { vertical-align: top;}

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

/* グローバルメニュー */
#nav-area ul { margin: 0 0 30px; border-top: solid 1px #000;}
#nav-area li { padding: 5px; border-bottom: solid 1px #000;}

#nav-area li a {
    display: inline-block; 
    padding: 15px;
    color: #000; line-height: 1.0em;}

#nav-area li a:hover { 
    border-radius: 8px;
    background: #53b4ba; 
    color: #fff; text-decoration: none;}

#nav-area li a[target="_blank"]::after {
    content: '';
    display: inline-block; 
    width: 12px; height: 12px; margin: 0 0 0 10px;
    background: url("../images/outlink_bk.webp");
    vertical-align: baseline;
	-webkit-transition: all 0.5s;
	-moz-transition: all 0.5s;
	-ms-transition: all 0.5s;
	-o-transition: all 0.5s;
	transition: all 0.5s;}

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

/* SNSボタン */
#nav-area nav > a { margin: 0 20px 0 0;}
#nav-area nav > a:hover { opacity: 0.5;}

/**========================================**/
/* javascriptを使用したハンバーガーボタン */

/* ハンバーガーボタン */
#nav-btn {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    position: absolute; top: 50%; left: 15px;
    width: 104px; height: 50px; padding: 0 15px;
    border-radius: 10px;
    background: #53b4ba;
    cursor: pointer; 
    transform: translateY(-50%);
    transition: all 0.4s;}

#nav-btn::before {
    content: 'MENU';
    color: #fff; font-size: 19px; font-weight: 900; line-height: 1.0em;}

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

#nav-btn span,
#nav-btn span::before,
#nav-btn span::after {
    content: '';
    display: block; position: absolute;
    width: 32px; height: 4px;
    background: #fff;}
       
#nav-btn span::before { top: 12px;}
#nav-btn span::after { bottom: 12px;}
#nav-btn span {
        top: 50%; right: 15px;
        margin: -2px 0 0;}
        
@media screen and (max-width:699px){
    #nav-btn {
        -webkit-justify-content: center;
        justify-content: center;
        width: 40px; height: 40px; padding: 0;
        border-radius: 5px;}

    #nav-btn span,
    #nav-btn span::before,
    #nav-btn span::after { width: 25px; height: 3px;}

    #nav-btn span::before { top: 9px;}
    #nav-btn span::after { bottom: 9px;}
    #nav-btn span { right: auto; left: 50%; transform: translateX(-50%);}

    #nav-btn::before { display: none;}
}


/* グローバルメニュー表示エリア */
#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; left: 0; z-index: 20002;
    box-sizing: border-box; width: 300px; height: 100vh; padding: 80px 20px 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: 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: #000;}
    
#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%;}
}

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

/**============================================================================================**/
/* アニメーション 波 */
.parallax > use {
    animation: move-forever 4s linear infinite;
}
.parallax > use:nth-child(1) {
    animation-delay: -2s;
}
@keyframes move-forever {
    0% {
        transform: translate(-90px, 0%);
    }
    100% {
        transform: translate(85px, 0%);
    }
}
.editorial {
    display: block;
    width: 100%; height: 2.5em; max-height: 100vh; margin: 120px 0 0;}

/**========================================**/
footer { background: #53b4ba; color: #fff;}
footer a { color: #fff;}

footer .w1200 { margin: 0 auto; padding: 60px 20px;}

/* ロゴ・SNSアイコン */
footer .img {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    width: 100%;}

footer .img a { margin: 0 0 0 20px;}
footer .img a:hover { opacity: 0.5;}

@media screen and (max-width:699px){
    footer .w1200 { padding: 40px 20px 0;}
    
    footer .img { display: block; text-align: center;}
    
    footer .sns { margin-top: 30px;}
    footer .img a { margin: 0 10px;}
}

footer .flex { 
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    width: 100%; margin: 70px auto 0;}
    
footer ul { box-sizing: border-box; width: 25%; padding: 0 30px 0 0;}
footer li { margin: 0 0 15px;}
footer li:first-child { margin: 0 0 30px; font-size: 18px; font-weight: 900;}

@media screen and (max-width:999px){
    footer .flex { max-width: 600px;}
    footer ul { width: 50%; margin: 0 0 30px; padding: 0 15px;}
}

@media screen and (max-width:699px){
    footer .flex { max-width: 240px; margin-top: 40px;}
    footer ul { width: 100%; padding: 0;}
    footer li:first-child { margin-bottom: 20px;}
}

/* 会社概要・NEWS */
footer li 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;}


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


/* ページTOPへ戻る */
a[href="#pageTop"] { position: fixed; bottom: 50px; right: 50px;}
a[href="#pageTop"]:hover { opacity: 0.5;}

@media screen and (max-width:1599px){
    a[href="#pageTop"] { bottom: 30px; right: 30px;}
}

@media screen and (max-width:1599px){
    a[href="#pageTop"] { bottom: 30px; right: 30px;}
}

@media screen and (max-width:1199px){
    a[href="#pageTop"] { bottom: 20px; right: 20px;}
}

@media screen and (max-width:999px){
    a[href="#pageTop"] img { width: 50px; height: 50px;}
}


/* LastUp2025.11.05_kimata */