@charset "UTF-8";
/* --------------------------------------------------
 Base
-------------------------------------------------- */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap');
body, ol, ul, dl, li, dt, dd, table, th, td, input, textarea, select, h1, h2, h3, h4, h5, h6 {
    color: #404040;
    font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
    font-weight: 400;
    letter-spacing: 0;
    margin: 0;
    padding: 0;
    -webkit-text-size-adjust: 100%;
}

html {
    scroll-behavior: smooth;
}

body {
    min-width: 320px;
    line-height: 2;
    font-size: 100%;
    word-break: break-all;
    position: relative;
    overflow-x: hidden;
    animation: pageLoad 2s;
}

@keyframes pageLoad {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

@media screen and (max-width: 767px) {
    body {
        font-size: 85%;
        line-height: 1.8;
    }
}

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

input {
    padding: 5px 8px;
}

textarea {
    padding: 3px;
}

ol {
    margin: 0px 0px 0px 21px;
}

ol>li {
    list-style: decimal outside;
    margin: 0px 0px 3%;
}

a:link, a:visited {
    color: #404040;
    text-decoration: underline;
    outline: 0;
}

a:hover, a:active {
    color: #404040;
    text-decoration: none;
}

@media screen and (min-width: 768px) {
    a[href^="tel"] {
        pointer-events: none;
    }
}

em {
    font-style: normal;
    font-weight: bold;
}

strong {
    font-style: normal;
    font-weight: bold;
}

/* --------------------------------------------------
 Wrapper
-------------------------------------------------- */

#wrapper {
    width: 100%;
    position: relative;
    box-sizing: border-box;
}

/* --------------------------------------------------
 drwNavBtn
-------------------------------------------------- */

#drwNavTrigger {
    display: none;
}

.drwNavBtn {
    position: fixed;
    top: 14px;
    right: 6px;
    display: none;
    width: 40px;
    height: 40px;
    text-align: center;
    cursor: pointer;
    z-index: 9999;
}

.drwNavBtnBar {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 30px;
    height: 2px;
    background: #402c1a;
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: all 0.4s;
    transform-origin: left top;
}

#drwNavTrigger:checked~.drwNavBtn .drwNavBtnBar {
    box-shadow: none;
}

.drwNavBtnBar.top {
    top: 11px;
    left: 5px;
}

.drwNavBtnBar.middle {
    top: 20px;
    left: 5px;
    opacity: 1;
}

.drwNavBtnBar.bottom {
    top: 29px;
    left: 5px;
    transform-origin: left bottom;
}

#drwNavTrigger:checked~.drwNavBtn .drwNavBtnBar.top {
    width: 26px;
    left: 11px;
    transform: rotate(45deg);
}

#drwNavTrigger:checked~.drwNavBtn .drwNavBtnBar.middle {
    opacity: 0;
}

#drwNavTrigger:checked~.drwNavBtn .drwNavBtnBar.bottom {
    width: 26px;
    left: 11px;
    top: 29px;
    transform: rotate(-45deg);
}

.drwNavBtnText {
    position: absolute;
    bottom: -10px;
    left: 0;
    right: 0;
    margin: auto;
    transition: all 0.3s;
    display: block;
    visibility: visible;
    opacity: 1;
    letter-spacing: 0;
    color: #402c1a;
    font-size: 10px;
    text-shadow: 0px 0px 2px rgba(255, 255, 255, 1);
}

#drwNavTrigger:checked~.drwNavBtn .drwNavBtnText {
    visibility: hidden;
    opacity: 0;
}

.drwNavClose {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #000;
    transition: all 0.4s;
    visibility: hidden;
    opacity: 0;
}

#drwNavTrigger:checked~.drwNavClose {
    transition: all 0.4s 0.3s;
    background: rgba(0, 0, 0, 0.6);
    visibility: visible;
    opacity: 1;
    z-index: 993;
    box-shadow: -1px 0px 3px rgba(0, 0, 0, 0.35);
}

#drwNav {
    box-sizing: border-box;
    position: fixed;
    top: 0;
    right: 0;
    width: 300px;
    height: 100%;
    background: #fff;
    transition: all 0.4s;
    opacity: 0;
    overflow: hidden;
    transform-origin: left center;
    transform: translateX(300px);
    z-index: 993;
}

#drwNavTrigger:checked~#drwNav {
    transition-delay: 0.3s;
    transform: none;
    opacity: 1;
    z-index: 999;
}

.drwNavInner {
    background-color: #fff;
    box-sizing: border-box;
    width: 100%;
    min-width: 300px;
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
}

#drwNav .logo {
    max-width: 240px;
    text-align: center;
    margin: 30px auto 0;
    padding: 0 20px;
    position: relative;
    box-sizing: border-box;
}

#drwNav .logo+.txt {
    font-size: 90%;
    text-align: center;
    max-width: 240px;
    margin: 20px auto;
    display: block;
}

#drwNav .gNav {
    max-width: 240px;
    margin: 20px auto 30px;
}

#drwNav .gNav li {
    line-height: 1.8;
    border-bottom: 1px solid #dbdbdb;
}

#drwNav .gNav li a {
    font-size: 14px;
    font-weight: 500;
    padding: 7px 15px;
    text-decoration: none;
    display: block;
    position: relative;
}

#drwNav .gNav li.active a {
    color: #402c1a;
}

#drwNav .gNav li a:after {
    font-family: "Font Awesome 5 Free";
    content: '\f105';
    font-weight: 900;
    font-size: 14px;
    margin: auto 0;
    display: flex;
    align-items: center;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 15px;
}

#drwNav .gNav li a:hover {
    opacity: 0.8;
}

#drwNav .gNav li.accordion .accordTtl::after {
    content: '\f067';
    font-size: 10px;
}

#drwNav .gNav li.accordion .accordTtl.onclick::after {
    content: '\f068';
}

#drwNav .gNav li.accordion .accordContent li {
    border-bottom: none;
}

#drwNav .gNav li.accordion .accordContent li a {
    background-color: #91c11d;
    color: #fff;
    font-size: 90%;
    border-bottom: 1px solid #fff;
    padding: 10px 7% 10px 10%;
}

#drwNav .gNav li.active a, #drwNav .gNav li.accordion .accordContent li.active a {
    /*background-image: url(../img/top_common/arrow_right_black.png);*/
}

#drwNav .gNav li.accordion .accordContent li .txt01 {
    color: #fff;
    border-bottom: 1px solid #c7cbd3;
    padding: 10px 7% 10px 10%;
    display: block;
    position: relative;
}

#drwNav .gNav li.accordion .accordContent li .sub li a {
    border-bottom: none;
}

#drwNav .btn {
    max-width: 240px;
    margin: 20px auto;
}

#drwNav .btn+.btn {
    margin-bottom: 30px;
}

#drwNav .btn a {
    font-size: 100%;
    text-align: center;
    padding: 10px;
    display: block;
}

#drwNav .contactBlc {
    max-width: 240px;
    margin: 20px auto 30px;
}

#drwNav .contactBlc .partBlc {
    border: 3px solid rgba(64, 44, 26, 0.1);
    padding: 2%;
}

#drwNav .contactBlc .partBlc .tel {
    text-align: center;
    margin-bottom: 2%;
}

#drwNav .contactBlc .partBlc .tel a {
    font-size: 160%;
    line-height: 1;
    letter-spacing: -0.04em;
    text-decoration: none;
    padding-left: 37px;
    display: inline-block;
    position: relative;
}

#drwNav .contactBlc .partBlc .tel a::before {
    background-image: url(../img/common/free_tel.png);
    background-repeat: no-repeat;
    background-size: contain;
    width: 30px;
    height: 25px;
    content: '';
    position: absolute;
    top: 2px;
    left: 0;
}

#drwNav .contactBlc .partBlc .time {
    line-height: 1.6;
    text-align: center;
}

#drwNavTrigger:checked~#wrapper {
    transition-delay: 0s;
    transform: translateX(-300px);
}

@media screen and (min-width: 1201px) {
    #drwNav {
        display: none;
        opacity: 1;
        transform: translateX(0px);
    }
    .drwNavClose {
        display: none;
    }
}

@media screen and (max-width: 1200px) {
    #drwNav {
        display: flex;
    }
    .drwNavBtn {
        display: block;
    }
}

@media screen and (max-width: 767px) {
    .drwNavBtn {
        top: 10px;
    }
    #drwNav .gNav li a {
        padding-top: 10px;
        padding-bottom: 10px;
    }
    #drwNav .contactBlc .partBlc .tel a::before {
        top: 1px;
    }
}

/* --------------------------------------------------
 Header
-------------------------------------------------- */

#header {
    width: 100%;
    border-bottom: 1px solid #dbdbdb;
    box-sizing: border-box;
    position: relative;
}

#header .topBar {
    border-top: 5px solid #402c1a;
    border-bottom: 1px solid #dbdbdb;
    padding: 20px;
    display: flex;
    justify-content: space-between;
}

#header .topBar .leftBlc {
    margin-right: 40px;
    display: flex;
    align-items: flex-start;
    flex: 1;
}

#header .topBar .leftBlc #logo {
    width: 270px;
}

#header .topBar .leftBlc .txt {
    margin-left: 20px;
    margin-top: 10px;
    flex: 1;
}

#header .topBar .rightBlc {
    width: 700px;
    display: flex;
}

#header .topBar .rightBlc .btn {
    margin-right: 30px;
    width: 270px;
}

#header .topBar .rightBlc .btn a {
    width: 100%;
    text-align: center;
    box-sizing: border-box;
}

#header .topBar .rightBlc .btn>div {
    margin-bottom: 5px;
}

#header .topBar .rightBlc .btn>div:last-of-type {
    margin-bottom: 0;
}

#header .topBar .rightBlc .contact {
    text-align: right;
}

#header .topBar .rightBlc .contact .tel a {
    font-size: 280%;
    line-height: 1;
    text-decoration: none;
    padding-left: 75px;
    display: inline-block;
    position: relative;
}

#header .topBar .rightBlc .contact .tel a::before {
    background-image: url(../img/common/free_tel.png);
    background-repeat: no-repeat;
    background-size: contain;
    width: 60px;
    height: 40px;
    content: "";
    position: absolute;
    top: 3px;
    left: 0;
}

#header .topBar .rightBlc .contact .txt {
    font-size: 130%;
}

#header .navBar {
    position: relative;
    z-index: 928;
}

#header .navBar.fixNav {
    background-color: #fff;
    width: 100%;
    border-bottom: 1px solid #dbdbdb;
    position: fixed;
    top: 0;
    left: 0;
}

#header .navBar #gNav {
    background-color: rgba(255, 255, 255, 0);
    text-align: center;
    transition: all 200ms ease-in-out;
}

#header .navBar #gNav>ul {
    letter-spacing: -0.4em;
}

#header .navBar #gNav li {
    display: inline-block;
    letter-spacing: normal;
    position: relative;
}

#header .navBar #gNav li .toggleCheck {
    display: none;
}

#header .navBar #gNav li a, #header .navBar #gNav li .txt {
    color: #404040;
    font-size: 126%;
    text-decoration: none;
    padding: 20px 25px;
    display: block;
    position: relative;
    transition: all 200ms ease-in-out;
}

#header .navBar #gNav>ul>li>a::before, #header .navBar #gNav>ul>li>.txt::before {
    content: "";
    background-color: #dbdbdb;
    width: 1px;
    height: 48px;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    transition: all 200ms ease-in-out;
}

#header .navBar #gNav>ul>li:last-of-type>a::after, #header .navBar #gNav>ul>li:last-of-type>.txt::after {
    content: "";
    background-color: #dbdbdb;
    width: 1px;
    height: 48px;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    transition: all 200ms ease-in-out;
}

#header .navBar #gNav>ul>li.hoverAft>a:hover::before {
    background-color: white;
    opacity: 1;
}

#header .navBar #gNav>ul>li.hoverBef>a::after {
    content: "";
    background-color: #dbdbdb;
    width: 1px;
    height: 48px;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    transition: all 200ms ease-in-out;
}

#header .navBar #gNav>ul>li:hover>a, #header .navBar #gNav>ul>li.active>a, #header .navBar #gNav>ul>li:hover>.txt, #header .navBar #gNav>ul>li.active>.txt {
    color: #fff;
    background-color: #402c1a;
}

#header .navBar #gNav>ul>li.active>a::before, #header .navBar #gNav>ul>li>a:hover::before {
    opacity: 0;
}

#header .navBar #gNav>ul>li:last-of-type>a:hover::after {
    opacity: 0;
}

#header .navBar #gNav li a .line, #header .navBar #gNav li .txt .line {
    display: block;
}

#header .navBar #gNav li a .line::before, #header .navBar #gNav li .txt .line::before {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 8px 9px 8px;
    border-color: transparent transparent #91c11d transparent;
    margin: auto;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    opacity: 0;
    transition: all 200ms ease-in-out;
}

#header .navBar #gNav li a[href^="#"], #header .navBar #gNav li .txt {
    cursor: default;
}

#header .navBar #gNav ul .subNav {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 999;
    transition: all 200ms ease-in-out;
}

#header .navBar #gNav ul .subNav li {
    width: 100%;
    max-width: 230px;
    margin-bottom: 2px;
    margin-left: auto;
    margin-right: auto;
    float: none;
    display: block;
}

#header .navBar #gNav ul .subNav li a {
    background: #91c11d;
    font-size: 100%;
    color: #fff;
    text-decoration: none;
    height: auto;
    line-height: 1.8;
    padding: 7px 5%;
    text-align: left;
    position: static;
    display: block;
    overflow: visible;
    -webkit-transform: rotateY(90deg) skewY(5deg) translateY(-20px);
    transform: rotateY(90deg) skewY(5deg) translateY(-20px);
    opacity: 0;
    visibility: hidden;
    -webkit-transition: .4s ease;
    transition: .4s ease;
}

#header .navBar #gNav ul .subNav li a:hover {
    background-color: #91c11d;
}

#header .navBar #gNav ul .subNav li:last-child a {
    border-bottom: none;
}

#header .navBar #gNav ul .subNav li a:after {
    display: none;
}

.navBar #gNav ul li:hover>.btnNav .subNav {
    visibility: visible;
    opacity: 1;
}

.navBar #gNav ul li:hover>.subNav a {
    -webkit-transform: rotateY(0deg) skewY(0deg) translateY(0px);
    transform: rotateY(0deg) skewY(0deg) translateY(0px);
    visibility: visible;
    opacity: 1;
}

.navBar #gNav ul li>.btnNav .toggleCheck:checked+.txt, .navBar #gNav ul li>.btnNav .txt.activeHover {
    background-color: transparent;
    color: #91c11d;
}

.navBar #gNav ul li>.btnNav .toggleCheck:checked+.txt .line:after, .navBar #gNav ul li>.btnNav .txt.activeHover .line:after {
    opacity: 1;
}

.navBar #gNav ul li:hover>.btnNav .subNav, .navBar #gNav ul li:hover>.btnNav .toggleCheck:checked~.subNav, .navBar #gNav ul li:hover>.btnNav .toggleCheck:not(:checked)~.subNav {
    visibility: visible;
    opacity: 1;
}

.navBar #gNav ul li:hover>.btnNav .subNav a, .navBar #gNav ul li:hover>.btnNav .toggleCheck:checked~.subNav a, .navBar #gNav ul li:hover>.btnNav .toggleCheck:not(:checked)~.subNav a {
    -webkit-transform: rotateY(0deg) skewY(0deg) translateY(0px);
    transform: rotateY(0deg) skewY(0deg) translateY(0px);
    visibility: visible;
    opacity: 1;
}

.navBar #gNav ul li>.btnNav .txt.activeHover, .navBar #gNav ul li .toggleCheck:checked~.txt {
    color: #91c11d!important;
}

#header .navBar #gNav ul li .toggleCheck:checked~.subNav {
    visibility: visible;
    opacity: 1;
}

#header .navBar #gNav ul li .toggleCheck:checked~.subNav a {
    -webkit-transform: rotateY(0deg) skewY(0deg) translateY(0px);
    transform: rotateY(0deg) skewY(0deg) translateY(0px);
    visibility: visible;
    opacity: 1;
}

#header .navBar #gNav ul li .subNav.show li a {
    -webkit-transform: rotateY(0deg) skewY(0deg) translateY(0px);
    transform: rotateY(0deg) skewY(0deg) translateY(0px);
    visibility: visible;
    opacity: 1;
}

#header .navBar #gNav>ul>li:hover>.btnNav .txt, #header .navBar #gNav>ul>li.active>.btnNav .txt {
    background-color: transparent;
    color: #91c11d;
}

#header .navBar #gNav>ul>li>.btnNav a:hover {
    background-color: #91c11d;
}

#header .navBar #gNav ul li .subNav.show.unlock, #header .navBar #gNav ul li .subNav.show.lock, #header .navBar #gNav ul li .subNav.lock, #header .navBar #gNav ul li .subNav.hide.lock {
    visibility: visible;
    opacity: 1;
}

#header .navBar #gNav ul li .subNav.lock li a {
    -webkit-transform: rotateY(0deg) skewY(0deg) translateY(0px);
    transform: rotateY(0deg) skewY(0deg) translateY(0px);
    visibility: visible;
    opacity: 1;
}

#header .navBar #gNav ul li .subNav.hide.unlock, #header .navBar #gNav ul li .subNav.unlock {
    visibility: hidden;
    opacity: 0;
}

@media screen and (max-width: 1366px) {
    #header .topBar .rightBlc .btn {
        width: 30%;
    }
    #header .topBar .rightBlc {
        width: 610px;
    }
}

@media screen and (max-width: 1200px) {
    #header .topBar .leftBlc {
        padding-right: 25px;
        margin-right: 0;
    }
    #header .topBar .rightBlc {
        display: none;
    }
    #header .navBar #gNav {
        display: none;
    }
}

@media screen and (max-width: 1000px) {
    #header .topBar .leftBlc #logo {
        width: 200px;
    }
}

@media screen and (max-width: 767px) {
    #header .topBar .leftBlc {
        text-align: center;
        flex-wrap: wrap;
        padding-right: 0;
    }
    #header .topBar .leftBlc #logo {
        width: 100%;
    }
    #header .topBar .leftBlc #logo img {
        width: 200px;
    }
    #header .topBar .leftBlc .txt {
        width: 100%;
        margin-left: 0;
        margin-top: 10px;
        flex: auto;
    }
}

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

#contents {
    width: 100%;
    position: relative;
}

/* --------------------------------------------------
 Footer
-------------------------------------------------- */

#footer {
    width: 100%;
    padding-top: 2%;
    box-sizing: border-box;
    position: relative;
}

#footer .fNav {
    max-width: 1100px;
    margin: 0 auto;
}

#footer .fNav ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

#footer .fNav ul li {
    padding: 5px 25px;
    margin-bottom: 2%;
    position: relative;
}

#footer .fNav ul li a {
    font-size: 126%;
    text-decoration: none;
    color: #515154;
}

#footer .fNav ul li a:hover {
    color: #402c1a;
}

#footer .fNav ul li.active a {
    color: #402c1a;
}

#footer .fNav ul li .line::before {
    content: "";
    background-color: #dbdbdb;
    width: 1px;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

#footer .fNav ul li .line::after {
    content: "";
    background-color: #dbdbdb;
    width: 1px;
    height: 100%;
    position: absolute;
    top: 0;
    right: -1px;
}

#footer #pageTop {
    display: none;
}

#footer #pageTop a {
    box-shadow: -3px 6px 10px 0px rgba(149, 149, 149, 0.35);
    background-color: #402c1a;
    width: 50px;
    height: 50px;
    text-decoration: none;
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    right: 10px;
    bottom: 50px;
    z-index: 911;
    transition: all 300ms cubic-bezier(.25, .46, .45, .94);
}

#footer #pageTop a:hover {
    opacity: 0.7;
}

#footer #pageTop a i {
    color: #fff;
}

#footer #pageTop .txt {
    color: #fff;
    display: none;
}

#footer .copyright {
    background-color: #402c1a;
    margin-top: 2%;
}

#footer .copyright p {
    color: #fff;
    text-align: center;
    padding: 15px 0;
}

@media screen and (max-width: 1200px) {
    #footer .fNav ul li a {
        font-size: 100%;
    }
}

@media screen and (max-width: 1000px) {
    #footer .fNav ul li {
        padding: 0 10px;
    }
}

@media screen and (max-width: 767px) {
    #footer .fNav ul {
        justify-content: space-between;
    }
    #footer .fNav ul li {
        width: 48%;
        border-bottom: 1px solid #dbdbdb;
        padding: 0;
        margin-right: 4%;
    }
    #footer .fNav ul li:nth-of-type(2n) {
        margin-right: 0;
    }
    #footer .fNav ul li a {
        padding: 10px 15px;
        display: block;
    }
    #footer .fNav ul li .line::before {
        display: none;
    }
    #footer .fNav ul li .line::after {
        display: none;
    }
    #footer #pageTop {
        border-bottom: 1px solid rgba(64, 44, 26);
        display: block;
        margin-top: 4%;
    }
    #footer #pageTop a {
        width: 100%;
        height: auto;
        padding: 15px 0;
        position: static;
    }
    #footer #pageTop a i {
        margin-right: 10px;
    }
    #footer #pageTop .txt {
        display: inline-block;
    }
    #footer .copyright {
        margin-top: 0;
    }
}

@media screen and (max-width: 480px) {
    #footer .fNav ul li {
        width: 49%;
        margin-right: 2%;
    }
    #footer .fNav ul li a {
        font-size: 90%;
        padding: 10px 2px;
    }
}

/* --------------------------------------------------
 Other
-------------------------------------------------- */

.hide {
    opacity: 0;
}