@charset "UTF-8";

body {
    background-color: #6F6F5F;
}

.fv_area .float_content {
    bottom: -32px;
}

@media(min-width: 800px) {
    .fv_area .float_content {
        bottom: -16px;
    }
}

h2 {
    color: #FAFAF2;
}

#izakaya a,
#reserve_form button {
    background-color: #F1E573;
    font-weight: bold;
    padding: 16px;
    border-radius: 20px;
    padding-right: 64px;
    display: block;
    width: fit-content;
    box-sizing: border-box;
    text-align: center;
    margin: 16px auto;
    position: relative;
}

#izakaya a img,
#reserve_form a img {
    position: absolute;
    top: 13px;
    right: 20px;
    opacity: 1;
    transition: all .25s;
}

#izakaya a:hover img,
#reserve_form a:hover img {
    right: 0;
	opacity: 0;
}

.fv_area {
    margin-bottom: 80px;
    background-image: url(fv.jpg);
}

#yotei,
#course {
    color: #FAFAF2;
}

#yotei .bg_wood {
    background-image: url(bg_wood1.png);
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 20px;
    padding: 16px;
    box-sizing: border-box;
    max-width: 880px;
    margin: auto;
}

#yotei .bg_wood h2 {
    text-align: center;
    margin-top: 0;
}

#izakaya {
    border-radius: 0px 30px 30px 0px;
    margin-right: 16px;
    padding: 8px 0 24px;
    margin-bottom: 80px;
    position: relative;
}

#izakaya .bg_black {
    position: absolute;
    margin-right: 16px;
    height: 100%;
    background: rgba(0, 0, 0, 0.25);
    width: 100%;
    border-radius: 0 32px 32px 0;
    max-width: 1280px;
    z-index: -1;
}

@media (min-width: 768px) {
    #izakaya .bg_black {
        width: 80%;
    }
}

#izakaya .basic_block {
    position: relative;
    padding-right: 0;
    margin: auto;
}

@media (max-width: 343px) {
    #izakaya h2 br {
        display: none;
    }
}

#izakaya h2 {
    text-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
}

#izakaya h2 span {
    margin-left: 16px;
    font-size: 1.2em;
    position: relative;
}

#izakaya h2 span::after {
    content: "";
    width: 132px;
    height: 20px;
    background-color: rgba(233, 139, 42, 0.8);
    border-radius: 10px;
    position: absolute;
    bottom: 0px;
    left: -8px;
    z-index: -1;
}

#izakaya .flexbox .content_p {
    background-color: rgba(250, 250, 242, 0.9);;
    border-radius: 20px;
    padding: 16px;
    box-sizing: border-box;

}

#izakaya .flexbox .img_wrapper {
    text-align: center;
}

#izakaya .flexbox .img_wrapper img {
    width: 100%;
    max-width: 420px;
}

@media (min-width: 768px) {
    #izakaya .flexbox {
        display: flex;
        position: relative;
        height: 400px;
        align-items: center;
    }

    #izakaya .flexbox .img_wrapper {
        position: absolute;
        top: 0;
        right: -16px;
        width: 600px;
        z-index: 0;
    }

    #izakaya .flexbox .img_wrapper img {
        max-width: none;
        position: relative;
        z-index: -1;
    }

    #izakaya .flexbox .content {
        flex-basis: 50%;
        z-index: 1;
    }

    #izakaya .flexbox .content a {
        margin: 48px 0;
    }
}

#osusume h2 {
    text-align: center;
    line-height: 2.5em;
}

#osusume h2 span {
    padding: 24px;
    padding-bottom: 26px;
    background-image: url(fukidashi.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom;
    font-size: 0.8em;
}

#osusume .flexbox .content {
    max-width: 420px;
    margin: auto;
}

#osusume .img_wrapper {
    text-align: center;
}

#osusume .img_wrapper img {
    width: 100%;
    max-width: 420px;
}

#osusume .flexbox .content .menu_name {
    background-color: #F1E573;
    padding: 8px;
    width: 65%;
    font-weight: bold;
    margin-top: -30px;
    position: relative;
    margin-bottom: 16px;
    border-radius: 0px 16px 16px 0px;
    font-size: 1.2em;
}

#osusume .flexbox .content .inner {
    background: rgba(250, 250, 242, 0.9);
    border-radius: 0px 10px 10px 0px;
    padding: 8px;
    box-sizing: border-box;
}

#osusume .flexbox .content .inner {
    margin-bottom: 32px;
}

#osusume .flexbox .content span {
    font-weight: bold;
}

@media (min-width: 1000px) {
    #osusume h2 {
        margin-bottom: 0;
    }

    #osusume .flexbox {
        display: flex;
        background-image: url(orange.png);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
    }

    #osusume .flexbox .content {
        flex-basis: 30%;
    }

    #osusume .flexbox .content:first-child {
        margin-bottom: 150px;
    }

    #osusume .flexbox .content:last-child {
        margin-top: 150px;
    }

    #osusume .flexbox .content .inner._1 {
        margin-bottom: 48px;
    }
}


@media (min-width: 800px) {
    #course {
        margin-top: -100px;
    }
}


#course .h2_wrapper {
    max-width: 1080px;
    margin: auto;

}

#course h2 {
    width: fit-content;
    padding-top: 48px;
    padding-bottom: 32px;
    padding-right: 16px;
    padding-left: 8px;
    background-image: url(course_back.png);
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 0px 10px 10px 0px;
    position: relative;
}

#course h2 span {
    z-index: 1;
    position: relative;
}

#course h2 img {
    position: absolute;
    bottom: 0;
    left: -16px;
    width: 160px;
}

@media (min-width: 768px) {
    #course h2 {
        padding-left: 48px;
        padding-right: 32px;
        border-radius: 0px 20px 20px 0px;
    }

    #course h2 img {
        left: 8px;
        bottom: -20px;
        width: 200px;
    }
}

#course .flexbox {
    max-width: 420px;
    margin: 48px auto;
}

#course .flexbox .img_wapper {
    text-align: center;
}

#course .flexbox img {
    width: 100%;
    vertical-align: bottom;
}

#course .flexbox .frame {
    padding: 16px;
    position: relative;
    margin-top: 16px;
}

#course .flexbox .frame::before,
#course .flexbox .frame::after {
    content: '';
    width: 24px;
    height: 32px;
    position: absolute;
}

#course .flexbox .frame::before {
    border-right: 3px solid #E98B2A;
    border-top: 3px solid #E98B2A;
    top: 0;
    right: 0;
    border-radius: 0 10px 0 0;
}

#course .flexbox .frame::after {
    border-left: 3px solid #E98B2A;
    border-bottom: 3px solid #E98B2A;
    bottom: 0;
    left: 0;
    border-radius: 0 0 0 10px;
}

#course .flexbox .frame.yellow::before {
    border-right: 3px solid #F1E573;
    border-top: 3px solid #F1E573;
}

#course .flexbox .frame.yellow::after {
    border-left: 3px solid #F1E573;
    border-bottom: 3px solid #F1E573;
}

#course .flexbox .frame .menu {
    display: flex;
    justify-content: space-between;
    padding-bottom: 24px;
    padding-top: 16px;
    border-bottom: solid 3px #E98B2A;
}

#course .flexbox .frame .menu.yellow {
    border-bottom: 3px solid #F1E573;
}

#course .flexbox .frame .menu .name {
    font-weight: bold;
}

@media (min-width: 768px) {
    #course .flexbox {
        display: flex;
        justify-content: space-between;
        max-width: none;
        margin-right: 16px;
        margin-bottom: 96px;
    }

    #course .flexbox .img_wapper {
        flex-basis: 50%;
    }

    #course .flexbox .frame {
        flex-basis: 40%;
        margin-top: 0;
    }

    #course .basic_block {
        padding: 0;
    }

    #course .flexbox:nth-child(2) {
        margin-left: 16px;
        margin-right: 0;
        flex-direction: row-reverse;
    }
}

#eigyo {
    background-image: url(bg_blob.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    max-width: 1080px;
    margin: auto;
    margin-bottom: 80px;
}

@media (min-width: 768px) {
    #eigyo {
        background-size: 48%;
    }
}

#eigyo h2 {
    padding: 0 16px;
    box-sizing: border-box;
    max-width: 1080px;
    margin: 1em auto;
}

#eigyo .flexbox {
    max-width: 1080px;
}

#eigyo .padding {
    padding-left: 16px;
    padding-right: 16px;
}

#eigyo .bg_white {
    background-color: #FAFAF2;
    border-radius: 20px;
    padding: 16px;
    box-sizing: border-box;
    margin: auto;
    max-width: 880px;
}

#eigyo .padding_left {
    padding-left: 16px;
}

#eigyo dl {
    background-color: #FAFAF2;
    border-radius: 30px 0 0 30px;
    padding: 16px 24px;
    box-sizing: border-box;
    margin-left: auto;
    max-width: 480px;
    display: table;
    width: 100%;
}

#eigyo dl div {
    display: table-row;
}

#eigyo dl dt,
#eigyo dl dd {
    display: table-cell;
    padding: 16px;
    font-weight: bold;
}

#eigyo dl .second dt,
#eigyo dl .second dd {
    border-bottom: 1.5px solid #6F6F5F;
    border-top: 1.5px solid #6F6F5F;
}

#eigyo dl dt {
    width: 50%;
    position: relative;
}

#eigyo dl dt::after {
    content: '';
    width: 18px;
    height: 18px;
    border-radius: 9px;
    background-color: #F1E573;
    position: absolute;
    top: 21px;
    right: 14%;
}

#eigyo dl dd {
    width: 50%;
}

@media (min-width: 768px) {
    #eigyo .flexbox {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin: auto;
    }

    #eigyo .padding {
        flex-basis: 40%;
    }

    #eigyo .padding_left {
        flex-basis: 50%;
    }
}

#reserve_form .bg_white {
    background-color: #FAFAF2;
    max-width: 880px;
    margin: auto;
    border-radius: 30px;
    padding: 16px;
    box-sizing: border-box;
}

#reserve_form .bg_white h2 {
    color: #6F6F5F;
    text-align: center;
}

@media (min-width: 480px) {
    #reserve_form .bg_white h2 br {
        display: none;
    }
}

#reserve_form .bg_white .p {
    border-radius: 20px;
    border: 1.5px solid #6F6F5F;
    padding: 8px;
    max-width: 640px;
    margin: auto;
}

#reserve_form .bg_white .form {
    max-width: 640px;
    margin: auto;
}

#reserve_form .form div {
    margin-top: 16px;
}

#reserve_form .form .required {
    padding-left: 4px;
}

#reserve_form .form .required::before {
    content: "*";
    color: red;
}

#reserve_form .form dd {
    margin: 0;
}

#reserve_form .form dd input {
    width: -webkit-fill-available;
    padding: 4px;
    border-radius: 8px;
    border: solid 1.5px #6F6F5F;
}

#reserve_form .form dt img {
    width: 20px;
    vertical-align: middle;
}

@media(min-width: 560px) {
    #reserve_form .form dl {
        display: table;
        width: 100%;
    }
    #reserve_form .form div {
        display: table-row;
    }

    #reserve_form .form dt,
    #reserve_form .form dd {
        display: table-cell;
        padding-top: 48px;
    }

    #reserve_form .form dd input {
        padding: 8px;
        border-radius: 12px;
    }

    #reserve_form .form .table-row {
        display: table-row;
    }

    #reserve_form .table-row div {
        display: table-cell;
    }

    #reserve_form .table-row div .flexbox {
        display: flex;
        align-items: center;
        flex-direction: column;
    }

    #reserve_form .table-row div .flexbox dt {
        display: flex;
        align-items: center;
        flex-direction: column;
        padding-top: 16px;
    }

    #reserve_form .form dt img {
        width: 48px;
        margin: 8px 0;
    }

    #reserve_form .table-row div .flexbox dd {
        padding: 0;
    }
}

#reserve_form button {
    border: none;
    color: #6B6350;
    font-family: Yu gothic;
    font-size: 1em;
    position: relative;
}

#reserve_form button::after {
    content: "";
    width: 32px;
    height: 32px;
    background-image: url(arrow.svg);
    background-repeat: no-repeat;
    background-position: center;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 16px;
    opacity: 1;
    transition: all .25s;
}

#reserve_form button:hover {
    cursor: pointer;
}

#reserve_form button:hover::after {
    right: 0;
    opacity: 0;
}

.cloud_back > div {
    background-image: url(cloud_2.png);
}

.footer::before {
    background-image: url(footer_background.png);
}