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



/* GoogleFonts読み込み 下記のライセンス記述は削除禁止 */

/*

* "Noto Sans JP" licensed under the SIL Open Font License 1.1

* by https://fonts.google.com/specimen/Noto+Sans+JP

*/


@font-face {
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 400;
    src: url("fonts/NS-400.woff2") format("woff2"), url("fonts/NS-400.woff") format("woff");
    font-display: swap;
}

@font-face {
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 700;
    src: url("fonts/NS-700.woff2") format("woff2"), url("fonts/NS-700.woff") format("woff");
    font-display: swap;
}

@font-face {
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 900;
    src: url("fonts/NS-900.woff2") format("woff2"), url("fonts/NS-900.woff") format("woff");
    font-display: swap;
}



/*--------------------------------------------------------------------------
 reset
---------------------------------------------------------------------------*/

h1,
h2,
h3,
h4,
h5,
h6,
p,
span,
small,
dl,
dt,
dd,
ol,
ul,
li {
    margin: 0;
    font-size: 100%;
}

ul {
    margin: 0;
    padding: 0;
    vertical-align: baseline;
}

img {
    vertical-align: top;
    -webkit-backface-visibility: hidden;
}

li {
    list-style-type: none;
    vertical-align: baseline;
}

input,
button,
textarea,
select {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

html {
    font-size: 62.5%;
}

body {
    color: #333;
    font-family: 'Noto Sans JP', 'YuGothic', 'Yu Gothic', '游ゴシック', '游ゴシック体', 'Open Sans', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Arial, Verdana, 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    letter-spacing: 0.1rem;
}

.sp {
    display: none;
}

.pc_br {
    display: block;
}

.sp_br {
    display: none;
}

/*--------------------------------------
　Base
---------------------------------------*/

body {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 2.8rem;
    min-width: 12rem;
    height: 100%;
    overflow-x: hidden;
    position: relative;
    padding: 0;
}

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

a {
    color: #333;
    text-decoration: none;
}

a:hover {}

.fl {
    float: left;
}

.fr {
    float: right;
}

.strong {
    font-weight: bold;
}

.f110 {
    font-size: 110%;
}

.f120 {
    font-size: 120%;
}

.f130 {
    font-size: 130%;
}

.f150 {
    font-size: 150%;
}

.f200 {
    font-size: 200%;
}

.f300 {
    font-size: 300%;
}

.wi900 {
    width: 90rem;
    margin: 0 auto;
}

.wi1000 {
    width: 100rem;
    margin: 0 auto;
}

.wi1100 {
    width: 110rem;
    margin: 0 auto;
}

.wi1200 {
    width: 120rem;
    margin: 0 auto;
}

.ab {
    position: absolute;
}

.vertical {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}

.relative {
    position: relative;
}

.center {
    text-align: center;
}

.fw_bold {
    font-weight: 700;
}

.bg_white {
    background: #FFF;
}

.bg_gray {
    background: #f1f1f1;
}

.bg_blue {
    background: #eef6f7;
}



/* ================== */
/*header　*/
/* ================== */

#fixNav {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9;
    padding: 2rem 3rem;
    transition: .5s;
}

header .fixNav.bgOn {
    background: #FFF;
    box-shadow: 0 0 1rem rgba(40, 40, 40, 0.2);
}

header .pcNav {
    position: relative;
}

header .pcNav .logo {
    position: absolute;
    width: 15rem;
}

header .pcNav .gr_nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: right;
    align-items: center;
}

header .pcNav .gr_nav li a {
    color: #FFF;
    padding: 1rem 2rem;
    line-height: 2rem;
}

header .fixNav.bgOn .gr_nav li a {
    color: #333;
}

header .pcNav .gr_nav li.contact a {
    color: #FFF;
    background: #b74357;
    border-radius: .5rem;
    padding: 1.5rem 3rem;
    display: block;
}


/* ================== */
/*barger　*/
/* ================== */

.overlay {
    content: "";
    display: block;
    width: 0;
    height: 0;
    background-color: rgba(244, 244, 244, 0.8);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 5;
    opacity: 0;
    transition: opacity .5s;
}

body.fix {
    position: fixed;
    left: 0;
    right: 0;
}

.overlay.open {
    width: 100%;
    height: 100%;
    opacity: 1;
}

.out-frame {
    height: 100%;
    min-height: 100vh;
    transition: all .5s;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.bargBg {
    background: rgba(83, 126, 74, 0.9);
    position: fixed;
    top: 2rem;
    right: 2rem;
    z-index: 100;
    transform: translateX(0);
    transition: transform .5s;
    width: 6rem;
    height: 6rem;
    /* border-radius: 1rem; */
}

.bargBg:hover {
    opacity: 0.7;
}

.menu-trigger {
    display: inline-block;
    width: 36px;
    height: 28px;
    vertical-align: middle;
    cursor: pointer;
}

/* .menu-trigger.active {
transform: translateX(-250px);
}*/
.bargBg.active {
    transform: translateX(-50rem);
    display: block !important;
}

.bargBg span {
    display: inline-block;
    box-sizing: border-box;
    position: absolute;
    left: 17px;
    width: 26px;
    height: 1px;
    background-color: #FFF;
}

.bargBg.active span {
    background-color: #FFF;
}

.bargBg span:nth-of-type(1) {
    top: 17px;
}

.bargBg.active span:nth-of-type(1) {
    transform: translateY(12px) rotate(-45deg);
}

.bargBg span:nth-of-type(2) {
    top: 29px;
}

.bargBg.active span:nth-of-type(2) {
    opacity: 0;
}

.bargBg span:nth-of-type(3) {
    top: 41px;
}

.bargBg.active span:nth-of-type(3) {
    transform: translateY(-12px) rotate(45deg);
}

header nav {
    overflow-y: scroll;
    width: 50rem;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.9);
    position: fixed;
    top: 0;
    right: 0;
    z-index: 10;
    transform: translate(50rem);
    transition: all .5s;
}

header nav.open {
    transform: translateZ(0);
}

header nav li {
    color: #fff;
    text-align: center;
}

* {
    box-sizing: border-box;
}

ul {
    list-style: none;
}

#g-nav .accordion li a {
    display: block;
    text-align: left;
    padding: 1.5rem 3.5rem 1.5rem 1.5rem;
    font-size: 15px;
    font-size: 1.5rem;
    color: #333;
    background: url("img/arr_orange.png") right 1rem top 50% no-repeat;
    background-size: .8rem auto;
}

#g-nav .accordion li a,
#g-nav .accordion li .tglMenu {
    line-height: 2rem;
}

#g-nav .accordion li .tglMenu {
    display: none;
}

#g-nav .accordion li ul li a {
    padding: 1.5rem 3.5rem 1.5rem 1.5rem;
    color: #333;
    background: #FFF url("img/arr_orange.png") right 1rem top 50% no-repeat;
    background-size: .8rem auto;
}

#g-nav .accordion li ul li a:hover {
    opacity: 0.8;
}

#g-nav .accordion li ul li {
    border-bottom: none;
}




/*--------------------------------------
　下層共通
---------------------------------------*/

#keyOut.lower .inner {
    background: #f2f2f2;
    position: relative;
}

#keyOut.contact .inner {
    background: url(../img/menu/key_lower_menu.png) 50% 50% no-repeat;
    background-size: auto;
    background-size: cover;
}

#keyOut.lower .inner::before {
  content: "";
  position: absolute;
  background: rgba(0,0,0,0.4);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#keyOut.lower .inner .secTitWrap {
    width: 110rem;
    margin: 0 auto;
    padding: 8rem 0;
    position: relative;
}

#keyOut.lower .inner .secTitWrap .enTit {
    margin: 0 0 .8rem 0;
}

#keyOut.lower .inner .secTitWrap .idxh1 {
    font-size: 2rem;
    color: #FFF;
    letter-spacing: 0.2rem;
}






/*--------------------------------------
　Main Contents
---------------------------------------*/


#contents {
    /*margin: 0 auto 80px;*/
    padding: 0;
}

#index,
#category,
#page {
    margin: 0;
    padding: 0;
}

#category,
#page {
    position: relative;
    padding: 20px 0 0 0;
    /* margin: 0 auto 60px; */
}

/*--------------------------------------
　Pankuzu
---------------------------------------*/
#pankuzuWrap {
    width: 110rem;
    margin: 1rem auto 3rem;
    padding: 0;
}

#pankuzu {
    font-size: 12px;
    font-size: 1.2rem;
    margin: 0 auto;
    color: #999;
}

#pankuzu span {
    font-size: 12px;
    font-size: 1.2rem;
    color: #999;
}

#pankuzu a {
    color: #999;
}

#pankuzu * {
    /*color: #FFF;*/
}

#pankuzu a:hover {
    text-decoration: underline;
}


/* ================== */
/*メインコンテンツ　*/
/* ================== */


#contents .caption {
    display: block;
    text-align: center;
    /* white-space: nowrap; */
    /* overflow-x: auto; */
    /* overflow-y: hidden; */
}

/* .caption::-webkit-scrollbar {
    height: 5px;
} */

/* .caption::-webkit-scrollbar-thumb {
    border-radius: 2px;
    background: #ddd;
} */

/* .caption::-webkit-scrollbar-track {
    border-radius: 5px;
    background: #eee;
} */


/*--------------------------------------
　content
---------------------------------------*/

.sitemap ul a {
    text-decoration: underline;
}

.sitemap ul a:hover {
    text-decoration: none;
}

#contents .captionWrap {
    overflow: hidden;
    white-space: nowrap;
}

#contents .captionWrap .caption {
    overflow-x: scroll;
    /*height: calc(100% + 18px);*/
}

.caption {
    text-align: center;
    margin: 8px 0 0;
    font-size: 10px;
    font-size: 1.0rem;
    line-height: 1.8rem;
    word-break: break-all;
    color: #999;
}

.caption a {
    color: #999;
    text-decoration: underline;
}

.caption a:hover {
    color: #999;
    text-decoration: none;
}


/*--------------------------------------
　btn
---------------------------------------*/

.btn-internal a {
    background: #537e4a;
    display: block;
    border-radius: .5rem;
    color: #FFF;
    font-size: 1.4rem;
    text-align: center;
    padding: 1.5rem 2rem;
}

.btn-internal {
    width: 28rem;
    margin: 0 auto;
}



/*--------------------------------------
　PageTop
---------------------------------------*/

#page-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    z-index: 9;
    width: 6rem;
}

#page-top:hover {
    opacity: 0.7;
}



/*--------------------------------------
Footer上部共通
---------------------------------------*/

.foot_com .snsCont {
    display: block;
    text-align: center;
    padding: 8rem 0;
}

.foot_com .snsCont .snsBtn {
    display: inline-block;
    width: 5rem;
    height: 5rem;
    margin: 0 2.5rem;
}

.foot_com .snsCont .snsBtn a {
    display: block;
    background: #333;
    width: 100%;
    height: 100%;
    border-radius: 50%;
}

.foot_com .snsCont .snsBtn i {
    font-size: 2.6rem;
    line-height: 5rem;
    color: #FFF;
}

.foot_com .snsCont .snsBtn a:hover {
    opacity: 0.7;
}


/*--------------------------------------
Footer
---------------------------------------*/
footer {
    padding: 6rem 0 0 0;
    position: relative;
    background: url(../img/shared/bgrep_wall.gif);
    background-size: 50rem auto;
    margin: 0 auto;
}

footer .foot_logo {
    width: 20rem;
    margin: 0 auto 3rem;
}

footer .foot_logo a {
    display: block;
}

footer .foot_logo a:hover {
    opacity: 0.7;
    text-decoration: none;
}

footer .footInner {
    padding: 0 0 6rem 0;
}

footer .footInner .add {
    text-align: center;
    margin: 0 0 1rem 0;
}

footer .footInner .telBox {
    text-align: center;
    margin: 0 auto 3rem;
}

footer .footInner .telBox .tel {
    display: block;
    text-align: center;
    font-size: 2.6rem;
    font-weight: 700;
}

footer .footInner .telBox .tel i {
    margin: 0 1rem 0 0;
    color: #b74357;
}

footer .footInner .telBox .time {
    font-size: 1.2rem;
}

footer .footInner .footNav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

footer .footInner .footNav li {
    padding: 0 2rem;
}

footer .botPrg {
    padding: 15px 0 0;
    margin: 0 0 50px 0;
    text-align: center;
    font-size: 12px;
    font-size: 1.2rem;
    line-height: 2.2rem;
}

footer a {
    text-decoration: none;
    color: #333;
}

footer a:hover {
    text-decoration: underline;
}

footer .smLink {
    display: inherit;
    text-align: right;
    margin: 0 0 40px 0;
}

footer .smLink a {
    padding: 2px 0 2px 30px;
}

footer .botArea {
    padding: 13px 0;
    background: #537e4a;
}

footer .botArea .botInner {
    width: 100rem;
    margin: 0 auto;
    position: relative;
}

footer .botArea .botInner .smap {
    display: none;
    float: right;
}

footer .botArea .botInner .smap a {
    background: url("img/arr_black01.png") 6px 50% no-repeat;
    background-size: .9rem auto;
    padding: 0 0 0 2.5rem;
    text-decoration: none;
    color: #333;
}

footer .botArea .botInner .smap a:hover {
    text-decoration: underline;
}

footer p.copy {
    padding: 0;
    margin: 0;
    font-size: 12px;
    text-align: center;
    color: #FFF;
}

footer p.copy a {
    color: #FFF;
    text-decoration: none;
}

/*----------------------*/

p {
    margin: 0 0 2rem;
}

p a {
    text-decoration: underline;
}

p a:hover {
    text-decoration: none;
    opacity: 0.8;
}

#page.sitemap {
    width: 100rem;
    margin: 0 auto;
}

#page.sitemap h2 a {
    color: #444;
}

#page.sitemap li a:hover {
    text-decoration: underline;
}



    .telLink {
        pointer-events: none;
    }



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

    body {
        line-height: 2em;
        min-width: inherit;
        width: 100%;
        padding: 0;
    }

    #contents {
        overflow: hidden;
    }

    .pc_br {
        display: none;
    }

    .sp_br {
        display: block;
    }

    .pc {
        display: none !important;
    }

    .sp {
        display: block;
    }

    img {
        max-width: 100%;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        /*letter-spacing: 0rem;*/
    }

    p {
        font-size: 14px;
        font-size: 1.4rem;
        margin: 0 0 10px 0;
    }

    a {
        color: #333;
        text-decoration: none;
    }

    .wi900 {
        width: 100%;
    }

    .wi1000 {
        width: 100%;
        margin: 0 auto;
        box-sizing: border-box;
    }

    #category,
    #page {
        position: relative;
        float: none;
        width: 100%;
        padding: 0 15px 0 15px;
        box-sizing: border-box;
    }

    .wi1100 {
        width: 100%;
        margin: 0 auto;
        box-sizing: border-box;
    }

    .wi1200 {
        width: 100%;
        margin: 0 auto;
        box-sizing: border-box;
    }

    .telLink {
        pointer-events: all;
    }


    /*--------------------------------------
    　下層共通
    ---------------------------------------*/

    #keyOut.lower .inner .secTitWrap {
        width: 100%;
        padding: 5rem 1.5rem;
        position: relative;
        line-height: 1.4rem;
    }

    #keyOut.lower .inner .secTitWrap .enTit {
        margin: 0 0 .4rem 0;
    }
    #keyOut.lower .inner .secTitWrap .enTit img {
        transform: scale(0.65);
        transform-origin: left center; /* 左側を基準に縮小 */
    }
    #keyOut.lower .inner .secTitWrap .idxh1 {
        font-size: 1.5rem;
        color: #FFF;
        letter-spacing: 0.2rem;
    }








    /*--------------------------------------
　content
---------------------------------------*/



    /*--------------------------------------
　table
---------------------------------------*/

    /*--------------------------------------
　float img
---------------------------------------*/


    /*--------------------------------------
　btn
---------------------------------------*/


    /*共通パーツ*/




    /*ヘッダー*/



    #keyOut {
        position: relative;
    }

    #contents .sitemap {
        padding: 0 10px;
        box-sizing: border-box;
    }

    #contents .sitemap h1 {
        width: 100%;
    }


    /* ================== */
    /*header　*/
    /* ================== */



    /* ハンバーガーメニュー */
    header nav {
        width: 30rem;
        transform: translate(30rem);
    }

    /* ハンバーガーメニュー */
    .bargBg {
        /* background: rgba(34,34,34,0.9); */
        position: fixed;
        top: 2rem;
        right: 1rem;
        z-index: 100;
        transform: translateX(0);
        transition: transform .5s;
        width: 46px;
        height: 46px;
    }

    .bargBg p {
        width: 46px;
        text-align: center;
        color: #FFF;
        font-size: 7px;
        font-size: 0.7rem;
        margin: 19px auto 0;
        position: inherit;
        bottom: inherit;
        left: inherit;
    }

    .bargBg.active {
        transform: translateX(-30rem);
        display: block !important;
    }

    .bargBg span {
        display: inline-block;
        box-sizing: border-box;
        position: absolute;
        left: calc(50% - 1rem);
        width: 2rem;
        height: 1px;
    }

    .bargBg.active span {}

    .bargBg span:nth-of-type(1) {
        top: 13px;
    }

    .bargBg.active span:nth-of-type(1) {
        transform: translateY(9px) rotate(-45deg);
    }

    .bargBg span:nth-of-type(2) {
        top: 22px;
    }

    .bargBg.active span:nth-of-type(2) {
        opacity: 0;
    }

    .bargBg span:nth-of-type(3) {
        top: 31px;
    }

    .bargBg.active span:nth-of-type(3) {
        transform: translateY(-9px) rotate(45deg);
    }

    .out-frame {
        position: relative;
        width: 100%;
    }

    .out-frame.black:after {
        background: #FFF;
        opacity: 0.8;
        content: '';
        height: 10000px;
        right: 0;
        top: 0;
        padding: 0;
        position: fixed;
        width: 100%;
        z-index: 1;
        transition: all .5s ease;
        -webkit-transition: all .5s ease;
        -moz-transform: all .5s ease;
    }

    .out-frame:after {
        background: #FFF;
        opacity: 0;
        content: '';
        right: 0;
        top: 0;
        position: fixed;
        width: 100%;
        z-index: 1;
        transition: all .5s ease;
        -webkit-transition: all .5s ease;
        -moz-transform: all .5s ease;
    }

    .header-frame {
        position: relative;
        width: 100%;
        height: 64px;
    }

    .menu-btn {
        position: absolute;
        top: 10px;
        right: 10px;
        height: 44px;
        width: 44px;
        z-index: 10;
    }

    .navOpenOut {
        background: rgba(255, 255, 255, 0.5);
        padding: 13px 10px;
        box-sizing: border-box;
    }

    .navOpen {
        position: inherit;
        top: inherit;
        right: 10px;
        height: 44px;
        width: 44px;
        z-index: 10;
        float: right;
    }

    .header-menu ul li a {
        display: block;
        padding: 15px 30px 15px 10px;
        text-decoration: none;
        line-height: 1.3;
        color: #333;
        font-size: 13px;
        font-size: 1.3rem;
    }

    .header-menu ul.accordion li ul li:first-child a {
        padding: 12px 30px 12px 10px;
    }

    .header-menu ul li.delete {
        padding: 10px;
        text-align: center;
        color: #fff;
        font-size: 13px;
        font-size: 1.3rem;
    }


    .header-menu ul.accordion .subCat ul.subList {
        display: block;
    }

    .header-menu ul.accordion .tglMenu {
        display: block;
        padding: 15px 30px 15px 10px;
        text-decoration: none;
        line-height: 1.3;
        color: #333;
        font-size: 13px;
        font-size: 1.3rem;
    }

    .header-menu ul.accordion ul li a {
        padding: 12px 30px 12px 20px;
        color: #333;
    }

    .header-menu ul.accordion ul li.subCat a,
    .header-menu ul.accordion ul li.subCat ul.subList li a {
        padding: 12px 30px 12px 20px;
    }




    /*--------------------------------------
pankuzu
---------------------------------------*/
    #pankuzuWrap {
        width: 100%;
        overflow: auto;
        white-space: nowrap;
        margin: 15px auto 30px;
        padding: 0 15px;
    }

    #pankuzu {
        box-sizing: border-box;
        width: 100%;
        padding: 0;
        font-size: 11px;
        font-size: 1.1rem;
        color: #333;
    }

    #pankuzu a {
        color: #333;
    }


    /*--------------------------------------
Footer上部共通
---------------------------------------*/


    .foot_com .snsCont {
        padding: 4rem 0;
    }

    .foot_com .snsCont .snsBtn {
        display: inline-block;
        width: 4rem;
        height: 4rem;
        margin: 0 1rem;
    }

    .foot_com .snsCont .snsBtn i {
        font-size: 1.8rem;
        line-height: 4rem;
    }

    footer {
        box-sizing: border-box;
        width: 100%;
        padding: 5rem 0 0 0;
        margin: 0;
        position: relative;
    }

    footer .foot_logo {
        width: 15rem;
        margin: 0 auto 2rem;
    }

    footer .footInner .add {
        font-size: 1.2rem;
    }

    footer .footInner .telBox {
        margin: 0 auto;
    }

    footer .botPrg {
        padding: 0;
        margin: 0 0 30px 0;
        text-align: center;
        font-size: 12px;
        font-size: 1.2rem;
    }

    footer .botArea {
        padding: 0;
    }

    footer .botArea .botInner {
        width: 100%;
    }

    footer .noticeArea p.botPrg {
        padding: 6px 0 2px;
        text-align: center;
    }

    footer p.copy {
        margin: 0;
        padding: 10px;
        font-size: 10px;
        font-size: 1.0rem;
        line-height: 1.8rem;
        text-align: center;
    }

    footer a {
        text-decoration: none;
    }


    /*--------------------------------------
　PageTop
---------------------------------------*/

    #page-top {
        position: fixed;
        bottom: 1.5rem;
        right: 10px;
        z-index: 2;
        width: 50px;
    }

    /*--------------------------------------
fixNav
---------------------------------------*/


    #fixNav {
        top: 2rem;
        right: 7rem;
    }




}