/*layout*/

html {
    scroll-behavior: smooth;
}

.l-header {
    z-index: 1000;
}

.l-wrap {
    padding-top: 60px;
    padding-bottom: 50px;
    min-height: 100vh;
}

.l-main {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.l-bottom {
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 2000;
    transform: translate(0, 0);
    transition-duration: 0.5s;
    transition-timing-function: ease;
    transition-delay: 0s;
}

.l-bottom.is-firstview {
    bottom: -200px;
}


/*bootStrapOverwrite*/

a {
    color: #b88e7f;
}

a:hover {
    color: #59443d;
}


/*width-height*/

.w-10per {
    width: 10%;
}

.w-15per {
    width: 15%;
}

.w-20per {
    width: 20%;
}

.w-25per {
    width: 25%;
}

.w-30per {
    width: 30%;
}

.w-35per {
    width: 35%;
}

.w-40per {
    width: 40%;
}

.w-45per {
    width: 45%;
}

.w-50per {
    width: 50%;
}

.w-60per {
    width: 60%;
}

.w-70per {
    width: 70%;
}

.w-100per {
    width: 100%;
}

.w-300px {
    width: 300px;
}

.w-400px {
    width: 400px;
}

.w-800px {
    width: 800px;
}

.w-900px {
    width: 900px;
}

.w-1000px {
    width: 1000px;
}

.h-100per {
    height: 100%;
}

.h-150px {
    height: 150px;
}

.h-200px {
    height: 200px;
}

.h-300px {
    height: 300px;
}

.h-300px-important {
    height: 300px!important;
}

.h-400px {
    height: 400px;
}

.h-100per {
    height: 100%;
}

.h-30vh {
    height: 30vh;
}

.h-50vh {
    height: 50vh;
}

.h-75vh {
    height: 75vh;
}

.h-80vh {
    height: 80vh;
}

.maxw-1140px {
    max-width: 1140px;
}

.maxw-1400px {
    max-width: 1200px;
}

.minh-100vh {
    min-height: 100vh;
}

.minh-400px {
    min-height: 420px;
}

@media (min-width:768px) {
    .w-md-75per {
        width: 75%;
    }
}

@media (min-width:992px) {
    .w-lg-25per {
        width: 25%;
    }
    .w-lg-75per {
        width: 75%;
    }
    .w-lg-100px {
        width: 100px;
    }
    .w-lg-150px {
        width: 150px;
    }
    .w-lg-160px {
        width: 160px;
    }
    .w-lg-240px {
        width: 240px;
    }
    .w-lg-400px {
        width: 400px;
    }
    .w-lg-600px {
        width: 600px;
    }
    .w-lg-800px {
        width: 800px;
    }
    .w-lg-900px {
        width: 900px;
    }
    .w-lg-auto {
        width: inherit;
    }
    .minh-lg-auto {
        min-height: auto;
    }
    .minh-lg-200px {
        min-height: 200px;
    }
    .minh-lg-240px {
        min-height: 240px;
    }
}


/*position*/

.position-middle-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.position-bottom-left {
    position: absolute;
    bottom: 0;
    left: 0;
}

.position-top-left {
    position: absolute;
    top: 0;
    left: 0;
}

.z-index-100 {
    z-index: 100;
}

.z-index-200 {
    z-index: 200;
}

.z-index-300 {
    z-index: 300;
}

.z-index-400 {
    z-index: 400;
}

.z-index-500 {
    z-index: 500;
}


/*font*/

.font-notosans {
    font-family: 'Noto Sans JP', sans-serif;
}

.font-notoserif {
    font-family: 'Noto Serif JP', serif;
}

.font-Oswald {
    font-family: 'Oswald', sans-serif;
}

.font-size-0_8 {
    /*label,small*/
    font-size: 0.8rem;
}

.font-size-0_9 {
    font-size: 0.9rem;
}

.font-size-1 {
    /*defaultSize*/
    font-size: 1rem;
}

.font-size-1_2 {
    font-size: 1.2rem;
}

.font-size-1_4 {
    /*h2~h3*/
    font-size: 1.4rem;
}

.font-size-2 {
    /*h2~h3*/
    font-size: 2rem;
}

.font-size-2_4 {
    /*h1*/
    font-size: 2.4rem;
}

.font-size-3 {
    /*cta,price*/
    font-size: 3rem;
}

.font-size-4 {
    /*cta,price*/
    font-size: 4rem;
}

.line-height-1 {
    line-height: 1;
}

.line-height-1_4 {
    line-height: 1.4;
}

.line-height-1_7 {
    line-height: 1.7;
}

.line-height-2 {
    line-height: 2;
}

.vertical-rl {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}

@media (min-width:992px) {
    .font-size-lg-1 {
        font-size: 1rem;
    }
    .font-size-lg-1_2 {
        font-size: 1.2rem;
    }
    .font-size-lg-1_4 {
        font-size: 1.4rem;
    }
    .font-size-lg-2 {
        font-size: 2rem;
    }
    .font-size-lg-2_4 {
        font-size: 2.4rem;
    }
    .font-size-lg-3 {
        font-size: 3rem;
    }
    .font-size-lg-4 {
        font-size: 4rem;
    }
    .font-size-lg-5 {
        font-size: 5rem;
    }
}


/*color*/

.color-black,
a.color-black,
a.color-black:hover {
    color: #222;
    text-decoration: none;
}

.color-white,
a.color-white,
a.color-white:hover {
    color: #fff;
    text-decoration: none;
}

.color-lgray {
    color: #ccc;
}

.color-gray {
    color: #999;
    text-decoration: none;
}

.color-dgray {
    color: #222;
    text-decoration: none;
}

.color-pink,
a.color-pink {
    color: #c85554;
}

.color-base,
a.color-base {
    color: #f2e7d7;
}

.color-contrast,
a.color-contrast {
    color: #342626;
}

@media (min-width:992px) {
    .color-lg-white {
        color: #fff;
    }
}

.text-decoration-none {
    text-decoration: none;
}


/*background*/

.bg-white-05 {
    background: rgba(255, 255, 255, 0.50);
}

.bg-white-08 {
    background: rgba(255, 255, 255, 0.85);
}

.bg-black-08 {
    background: rgba(0, 0, 0, 0.80);
}

.bg-black {
    background: #000;
}

.bg-llgray {
    background: #f6f6f6;
}

.bg-lgray {
    background: #eeeeee;
}

.bg-gray {
    background: #dddddd;
}

.bg-dgray {
    background: #666666;
}

.bg-base {
    background: #f2ede1;
}

.bg-contrast {
    background: #342626;
}

.bg-lpink {
    background: #fceaee;
}

.bg-pink {
    background: #f36f6f;
}

.bg-lblue {
    background: #ebf9fc;
}

.bg-lgreen {
    background: #d4edda;
}

.bg-green {
    background: #1cd966;
}

.bg-grid {
    background-image: url('/assets/img/bg-grid.svg');
    background-repeat: repeat;
    background-size: 50px 50px;
}

.bg-hover-lgray:hover {
    background-color: #ddd;
}


/*border*/

.border-base {
    border: 1px solid #f2ede1;
}

.border-gray {
    border: 1px solid #ccc;
}

.rounded-1 {
    border-radius: 1rem;
}

.rounded-2 {
    border-radius: 2rem;
}

.box-shadow-l {
    box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.5);
}


/*list*/

.list-square {
    margin: 0;
    padding: 0 0 0 1.6rem;
}

.list-square li {
    margin: 0;
    padding: 0;
    list-style: none;
    padding-bottom: .25rem;
    position: relative;
}

.list-square li::before {
    border: 1px solid #999;
    content: "";
    width: 1rem;
    height: 1rem;
    display: block;
    position: absolute;
    top: .25rem;
    left: -1.6rem;
}


/*form*/

input[type=radio]+.btn-formlabel::before {
    font-family: FontAwesome;
    content: "\f111";
    color: #ccc;
    margin-right: .2rem;
}

input[type=checkbox]+.btn-formlabel::before {
    font-family: FontAwesome;
    content: "\f0c8";
    color: #ccc;
    margin-right: .2rem;
}

input[type=radio]:checked+.btn-formlabel::before,
input[type=checkbox]:checked+.btn-formlabel::before {
    color: #b88e7f;
}


/*others*/

.opacity-0 {
    opacity: 0;
}

.opacity-050 {
    opacity: 0.5;
}

.overflow-hidden {
    overflow: hidden;
}

.overflow-y {
    overflow-y: scroll;
}

.break-word {
    overflow-wrap: break-word;
}

.cursor-pointer {
    cursor: pointer;
}

.collapse-d-none {
    display: block;
}

.collapsed .collapse-d-none {
    display: none;
}

.collapse-d-block {
    display: none;
}

.collapsed .collapse-d-block {
    display: block;
}

.nav-pills .nav-link.active,
.nav-pills .show>.nav-link {
    background: #342626;
}

.page-link {
    color: #342626;
}

.page-item.active .page-link {
    background: #ddd;
    border: 1px solid #ccc;
    color: #342626;
}


/*  
Animation
---------------------------------*/

.animation {
    opacity: 0;
}

.animation.is-animation-active {
    animation: kf-fadein 1.0s ease 0s;
    animation-fill-mode: forwards;
}

@keyframes kf-fadein {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes kf-down {
    from {
        margin-top: -100px;
    }
    to {
        margin-top: 0px;
    }
}


/*print*/

.size_a4_v {
    width: 210mm;
    height: 297mm;
    page-break-after: always;
    padding: 10mm;
    box-sizing: content-box;
}

.size_a4_b {
    width: 297mm;
    height: 210mm;
}

@media print {
    .print-none {
        display: none;
    }
}