@charset "utf-8";

/* =========================
RESET
========================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html,
body{
    overflow-x:hidden;
}

body{
    font-family:"Zen Maru Gothic",sans-serif;
    font-size:16px;
    line-height:1.7;
    color:#222;
    background:#fff;
}

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

a{
    color:inherit;
    text-decoration:none;
}

ul{
    list-style:none;
}


/* =========================
HEADER
========================= */

header{
    width:100%;
    background:#fff;
    box-shadow:0 0 8px rgba(0,0,0,.15);
    position:sticky;
    top:0;
    z-index:999;
}

header .hArea{
    max-width: 1280px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:10px 16px;
}
header .header_logo {
    width: 252px;
    flex-shrink: 0;
}
header .header_logo img{
    width:100%;
}

header .header_text h1{
    font-size:11px;
    font-weight:400;
    line-height:1.5;
}


/* =========================
PANKUZU
========================= */

#pagePath{
    background:#f4f4f4;
    padding:10px 16px;
    font-size:11px;
    overflow-x:auto;
    white-space:nowrap;
}

#pagePath ul{
    display:flex;
    align-items:center;
    gap:6px;
    max-width: 1280px;
}





/* =========================
CTA
========================= */

#cta{
    position:relative;
    z-index:998;
}

/* floating.css 優先 */

.p-top-side-menu{
    position:fixed;
    left:0;
    top:50%;
    transform:translateY(-50%);
    z-index:998;
}

.p-top-side-menu__item a{
    transition:opacity .3s;
}

.p-top-side-menu__item a:hover{
    opacity:.85;
}


/* =========================
FOOTER
========================= */

footer{
background: #fff;
    text-align:center;
    padding:40px 20px;
}

footer img{
    width:140px;
}

footer .p-top-footer__copyright{
    color:#7c7c7c;
    font-size:11px;
    line-height:1.7;
    margin-top:20px;
    text-align: center;

}


.p-top-side-menu a {
    align-items: center;
    background: right center / contain no-repeat;
    background-color: #007386;
    box-sizing: border-box;
    display: flex;
    opacity: 1;
    transition: all 0.4s ease-in-out;
}


/* =========================
SP
========================= */

@media screen and (max-width:768px){

    body{
        font-size:14px;
        padding-bottom:64px;
    }

    header .hArea{
        gap:10px;
        padding:10px 12px;
    }

    header .header_logo{
        width:140px;
    }

    header .header_text h1{
        font-size:10px;
    }


footer {
    padding: 5% 0 20%;
}


    /* =========================
    SP CTA
    ========================= */

    .p-top-side-menu{
        left:0;
        right:0;

        top:auto;
        bottom:0;

        width:100%;

        transform:none;

        display:flex;
    }

    .p-top-side-menu__item{
        flex:1;
    }

    .p-top-side-menu__item a{
        width:100%;
        height:64px;

        background-size:contain !important;
        background-position:center !important;
        background-repeat:no-repeat !important;

        border-right:1px solid rgba(255,255,255,.15);
    }



}


/* =========================
TOP BUTTON
========================= */

.footer_backtotop{
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 9999;

    width: 60px;

    opacity: 0;
    pointer-events: none;

    transform: translateY(30px);

    transition:
        opacity .4s ease,
        transform .4s ease;
}

.footer_backtotop.show{
    opacity: 1;
    pointer-events: auto;

    transform: translateY(0);
}

.footer_backtotop a{
    display: block;
}

.footer_backtotop img{
    width: 100%;
    height: auto;
    display: block;

    transition: transform .3s ease;
}

.footer_backtotop:hover img{
    transform: translateY(-4px);
}


/* 画像がない場合 */

.backtop_btm{
    width: 56px;
    height: 56px;

    border-radius: 50%;

    background: #017287;
    color: #fff;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 24px;
    font-weight: bold;

    cursor: pointer;

    box-shadow: 0 4px 10px rgba(0,0,0,.2);

    transition:
        transform .3s ease,
        opacity .3s ease;
}

.backtop_btm:hover{
    transform: translateY(-4px);
}


/* =========================
SP
========================= */

@media screen and (max-width:768px){

    .footer_backtotop{
        right: 16px;
        bottom: 90px;

        width: 52px;
    }

    .backtop_btm{
        width: 52px;
        height: 52px;

        font-size: 20px;
    }

}

/* =========================
サイトTOPへ戻るボタン
========================= */


.top_link{
padding: 3% 0;
    text-align: center;
    background: #f4f4f4;
    margin: 3% 0 0;
}

.top_link a{
    background: #017285;
    color: #fff;
    padding: 1.5% 0;
    border-radius: 20px;
    max-width: 480px;
    position: relative;
    display: block;
    margin: 0 auto;
}

.top_link a:after {
content: "▼";
    width: 20px;
    height: 22px;
    display: block;
    background: #fff;
    position: absolute;
    right: 15px;
    top: 30px;
    color: #017285;
    border-radius: 100px;
    transform: rotateZ(-95deg);
    padding: 2px 3px 2px 3px;
    font-size: 14px;
}

.top_link a:visited {
    color: #fff;
}

@media screen and (max-width:768px){
	
.top_link a{
    max-width: 80%;
}


.top_link a:after {
    right: 20px;
    top: 20px;
}





}




/* =========================
表示切り分け
========================= */



@media screen and (min-width: 767px){
.dsp{display:none;}
}

@media screen and (max-width: 767px){
.dpc{display:none;}
}

