/*
Thema Name: asaba-ryokan
Thema URI: https://31abb01c3d624487a9d113cdad19bf09.vfs.cloud9.ap-northeast-1.amazonaws.com/
Description: あさば旅館のテーマです
Version: 1.0
Author: Inaba
*/

/*アニメーション--------------------------------------------------------------*/

.fadeInTop {
	opacity: 0;
}
.fadeIn {
    -webkit-animation-name: fadeInAnime;
    animation-name: fadeInAnime;
    -webkit-animation-duration: 1.5s;
    animation-duration:1.5s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeInAnime {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.fadeUpTop {
    -webkit-animation-delay: 1.5s;
    animation-delay: 1.5s;
    -webkit-animation-name: fadeUpTopAnime;
    animation-name: fadeUpTopAnime;
    -webkit-animation-duration: 1.0s;
    animation-duration:1.0s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    opacity: 0;
    
}

@keyframes fadeUpTopAnime {
    from {
        opacity: 0;
        -webkit-transform: translateY(30px);
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

.fadeUpTrigger {
    opacity: 0;
}

.fadeUp {
    -webkit-animation-name: fadeUpAnime;
    animation-name: fadeUpAnime;
    -webkit-animation-duration: 1s;
    animation-duration:1s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    opacity: 0;
    
}

.fadeUpTopText {
    -webkit-animation-delay: 1s;
    animation-delay: 1s;
    -webkit-animation-name: fadeUpAnime;
    animation-name: fadeUpAnime;
    -webkit-animation-duration: 1s;
    animation-duration:1s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    opacity: 0;
}

@-webkit-keyframes fadeUpAnime{
    from {
        opacity: 0;
        -webkit-transform: translateY(100px);
        transform: translateY(100px);
    }
    to {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}

/*共通------------------------------------------------------------------------*/

body {
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    color: #333;
}

@media screen and (max-width: 991px) {
    body {
        font-size: 90%;
    }
}

h2 {
    font-size: 2.5rem;
    letter-spacing: 0.3em;
}

@media screen and (max-width: 991px) {
    h2 {
        font-size: 1.8rem;
    }
}

.section_title {
    margin-top: 100px;
    text-align: center;
}

.section_title h2::after {
    display: block;
    font-size: 1rem;
    letter-spacing: 0.2em;
}

.title_line {
    letter-spacing: -1em;
}
.title_line span {
    display: inline-block;
    margin:0;
    padding: 0;
    height: 3px;
    width: 22px;
}

.title_line span:nth-child(1) {
    background-color: #006881;
}

.title_line span:nth-child(2) {
    background-color: #333;
}

.section_title_description {
    margin-top: 50px;
    margin-bottom: 50px;
    text-align: center;
    font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
}

.section_title_description_sp {
    display: none;
}

@media screen and (max-width: 767px) {
    .section_title {
        margin-top: 70px;
    }
    .section_title_description {
        display: none;
    }
    .section_title_description_sp {
        display: block;
        margin: 30px;
        text-align: left;
        font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
    }
    .section_title h2{
        font-size: 1.5rem;
    }
    .section_title h2::after {
        font-size: 0.8rem;
    }
}

.detail_btn {
    position: relative;
    margin: 0 auto;
    width: 50%;
    height: 60px;
    background-color: #001f43;
    border-radius: 5px;
    text-align: center;
}

.detail_btn a {
    display: inline-block;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: #fff;
    line-height: 60px;
    font-size: 1.2rem;
}

.fa-chevron-right {
    position: absolute;
    top: 20px;
    left: 30px;
    margin-right: 100px;
    color: #fff;
    font-size: 1.2rem;
}

@media screen and (max-width: 991px) {
    .detail_btn {
        height: 40px;
    }
    .detail_btn a {
        line-height: 40px;
        font-size: 1rem;
    }
    .fa-chevron-right {
        font-size: 1rem;
        top: 10px;
        left: 20px;
    }
}
/*header----------------------------------------------------------------------*/
header {
    margin-top: -80px;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 100;
}

.slideDown {
    -webkit-animation-delay: 2s;
    animation-delay: 2s;
    -webkit-animation-name: slideDownAnime;
    animation-name: slideDownAnime;
    -webkit-animation-duration: 0.5s;
    animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

@keyframes slideDownAnime {
    from {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
    to {
        -webkit-transform: translateY(80px);
        transform: translateY(80px);
    }
}

.header_flex {
    display: flex;
    justify-content: flex-start;
    height: 80px;
    background-color: rgba(255, 255, 255, 0.8);
}


.header_logo img {
    height: 38px;
    width: auto;
    margin: 21px 0 21px 60px;
}

.header_nav ul {
    list-style: none;
    margin: 0;
}

.header_nav li {
    float: left;
    line-height: 80px;
    padding: 0 22px;
}

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

/*スマホ用ヘッダー*/
.header_sp {
    display: none;
    height: 60px;
    background-color: rgba(255, 255, 255, 0.8);
}

@media screen and (max-width: 991px) {
    .header_flex {
        display: none;
    }
    .header_sp {
        display: block;
    }
}

.menu_btn {
    position: absolute;
    top: 0;
    left: 0;
    width: 40px;
    height: 60px;
    cursor: pointer;
    z-index: 100;
}

.menu_btn span {
    display: inline-block;
    position: absolute;
    left: 10px;
    width: 27px;
    height: 2px;
    background-color: #333;
    transition: all 0.5s ease-in-out;
}

.menu_btn span:nth-child(1) {
    top: 15px;
}
.menu_btn span:nth-child(2) {
    top: 28px;
}
.menu_btn span:nth-child(3) {
    top: 41px;
}

.menu_btn.active span:nth-child(1) {
    top: 30px;
    -webkit-transform: rotate(-315deg);
    -moz-transform   : rotate(-315deg);
    transform: rotate(-315deg);
}
.menu_btn.active span:nth-child(2),.menu_btn.active span:nth-child(3) {
    top: 30px;
    -webkit-transform: rotate(315deg);
    -moz-transform   : rotate(315deg);
    transform: rotate(315deg);
}

.header_logo_sp {
    position: absolute;
    left: 50px;
    display: inline-block;
    height: 60px;
    width: auto;
    padding-top: 15px;
	padding-bottom: 15px;
}

.header_logo_sp a {
    display: inline-block;
    width: 100%;
    height: 100%;
}

.header_logo_sp img {
	height: 100%;
	width: auto;
}

.header_nav_sp {
    display: none;
    text-align: center;
    background-color: rgba(255, 255, 255, 0.9);
    width: 100%;
    height: 100vh;
    padding: 20px 20px 0 20px;
}

.header_nav_sp.panelactive {
    display: block;
}

.header_nav_sp ul {
    list-style: none;
    padding: 0;
}

.header_nav_sp li {
    padding-top: 15px;
    padding-bottom: 15px;
    border-bottom: 1px solid #c0c0c0;
}

.header_nav_sp a {
    color: #000;
    text-decoration: none;
}

/*top------------------------------------------------------------------------*/

.top_bg {
    
    width: 100%;
    max-width: 100%;
    height: auto;
}

@media screen and (max-width:767px) {
    .top_img {
        overflow: hidden;
    }
    .top_bg {
        width: 200%;
        max-width: 200%;
        margin-left: -50%;
    }
}

.top_img {
    position: relative;
    width: 100%;
}
.top_logo {
    position: absolute;
    display: inline-block;
    top: 45%;
    left: 50%;
    -webkit- transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: auto;
    height: 35%;
    max-height: 35%;
}

@media screen and (max-width: 767px) {
    .top_logo {
        height: 40%;
        max-height: 40%;
        width: auto;
    }
}

.introduction {
    position: relative;
}

.top_bg_02 {	
    height: 680px;
    width: 100%;
    object-fit: cover;
}

.top_text {
    position: absolute;
    top: 0;
    right: 0;
    writing-mode: vertical-rl;
    background-color: rgba(255, 255, 255, 0.8);
    padding: 60px;
    margin: 80px 60px;
    line-height: 2.5em;
}

.top_text h2 {
    margin-left: 60px;
    font-size: 1.8rem;
    letter-spacing: 0.1em;
}

@media screen and (max-width: 767px) {
    .top_bg_02 {
        height: 500px;
        width: 100%;
    	object-fit: cover;
    }
    .top_text {
    	margin: 10px;
        padding: 40px 0;
    }
    .top_text h2 {
        margin: 0 20px 0 20px;
        font-size: 1.3rem;	
    }
    .top_text p {
        margin: 0 0 0 20px;
    }
}


/*room-----------------------------------------------------------------------*/

.room {
    margin: 0 60px;
}

@media screen and (max-width: 991px) {
    .room {
        margin: 0;
    }
}

#room_title h2::after {
    content: 'room';
}

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

.rooms {
    margin: 100px 0;
}

.rooms ul {
    display: flex;
    justify-content: space-between;
    list-style: none;
    margin: 0;
    padding: 0;
}

.rooms li {
    width: 22%;
}

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

.room_list_sp_img {
    display: none;
}

@media screen and (max-width: 991px) {
    .room_top_img {
        display: none;
    }
    .room_list_pc_img {
        display: none;
    }
    .room_list_sp_img {
        display: block;
    }
    .rooms {
        margin-top: 50px;
    }
    .rooms ul {
        display: block;
    }
    .rooms li {
        width: 100%;
        height: 300px;
        position: relative;
    }
    
    .rooms li h3 {
        position: absolute;
        bottom: 10px;
        left: 30px;
        color: #fff;
    }
    .rooms img {
        height: 100%;
        object-fit: cover;
    }
}
@media screen and (max-width: 767px) {
    .rooms li {
        height: 150px;
    }
}



.room_front_title {
    margin-top: 30px;
    letter-spacing: 0.2em;
}

.room_front_title::after {
    margin-left: 20px;
    white-space: pre;
    display: inline-block;
    font-size: 0.7rem;
    letter-spacing: 0;
}

#room_front_title_moegi::after {
    content: 'MOEGI\A 116㎡';
}

#room_front_title_ugetsu::after {
    content: 'UGETSU\A 89㎡';
}

#room_front_title_dodan::after {
    content: 'DODAN\A 97㎡';
}

#room_front_title_nadeshiko::after {
    content: 'NADESHIKO\A 80㎡';
}

/*bath------------------------------------------------------------------------*/

.bath {
    margin-right: 60px;
    display: flex;
    justify-content: space-between;
}

.bath_top_img {
    width: 50%;
}

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

.bath_content {
    width: 50%;
    margin-left: 30px;
}

@media screen and (max-width: 991px) {
    .bath {
        display: block;
        margin: 0;
    }
    .bath_top_img {
        display: none;
    }
    .bath_content {
        width: 100%;
        margin: 0;
    }
    .baths {
        padding-right: 30px;
    }
}

#bath_title {
    margin-top: 50px;
}

#bath_title h2::after {
    content: 'hot springs';
}

.baths ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.baths li {
    width: 50%;
    padding-left: 30px;
    margin-bottom: 30px;
}

.bath_list a {
    text-decoration: none;
    color: #333;
    width: 100%;
    height: 100%;
}

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

.bath_list h3 {
    font-size: 1.4rem;
    letter-spacing: 0.2em;
    padding: 15px 20px;
    border-bottom: solid 1px #c0c0c0;
    border-right: solid 1px #c0c0c0;
}

.bath_list h3::after {
    display: inline-block;
    font-size: 0.8rem;
    margin-left: 15px;
    letter-spacing: 0.1em;
}

#bath_front_title_outdoor::after {
    content: 'outdoor baths';
}

#bath_front_title_private::after {
    content: 'private baths';
}

#bath_front_title_ladies::after {
    content: 'ladies’ baths';
}

#bath_front_title_mens::after {
    content: 'mens’ baths';
}

@media screen and (max-width:991px) {
    .baths li {
        margin-bottom: 10px;
    }
    .bath_list h3 {
        font-size: 0.8rem;
        text-align: center;
        padding-top: 5px;
        padding-bottom: 5px;
    }
    .bath_list h3::after {
        font-size: 0.6rem;
        margin-left: 0;
        
    }
}

/*stage----------------------------------------------------------------------*/

.stage_sp {
    display: none;
}

#stage_title h2::after {
    content: 'stage / shuzenji cultual journey';
}

.stage_top_img {
    position: relative;
    width: 100%;
}

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

.stage_list {
    position: absolute;
    bottom: -250px;
    list-style: none;
    padding: 0;
    display: flex;
    justify-content: center;
}

.stage_list_item {
    width: 22%;
    margin: 50px 35px;
}

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

.stage_list_item p {
    margin-top: 30px;
    font-size: 0.8rem;
    line-height: 2em;
}

#detail_btn_stage {
    margin-top: 250px;
    width: 40%;
}


/*スマホ用*/
@media screen and (max-width: 767px) {
    .stage_pc {
        display: none;
    }
    .stage_sp {
        display: block;
        padding: 60px 30px;
        background-image: url("./assets/img/front-page/stage_top.png");
        background-size: cover;
        background-position: center;
    }
    
    .stage_sp dl {
        display: flex;
        flex-wrap: wrap;
        margin-bottom: 0;
    }
    .stage_sp dt {
        width: 25%;
        padding-bottom: 30px;
    }
    .stage_sp dd {
        width: 75%;
        color: #fff;
        font-size: 0.8rem;
        padding-left: 15px;
        font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
    }
    .stage_sp dt img {
        width: 100%;
        height: auto;
    }
    #detail_btn_stage {
        margin-top: 30px;
        width: 100%;
    }
}


/*information-----------------------------------------------------------------*/

.information {
    margin: 0 60px;
}

#information_title h2::after {
    content: 'information';
}

.information_list {
    list-style: none;
    padding: 0;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.information_list_item {
    width: 49%;
    margin-bottom: 20px;
}

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

@media screen and (max-width: 991px) {
    .information {
        margin: 0 10px;
    }
    .information_list {
        display: block;
    }
    .information_list_item {
        width: 100%;
        margin-bottom: 10px;
    }
}

/*access----------------------------------------------------------------------*/

#access_title h2::after {
    content: 'access';
}

.map {
    margin-top: 70px;
    width: 100%;
    height: 550px;
}

@media screen and (max-width: 991px) {
    .map {
        height: 350px;
    }
}

iframe {
    width: 100%;
    height: 100%;
}



/*footer----------------------------------------------------------------------*/

.footer_nav{
    padding: 50px;
    background-color: #091530;
    color: #fff;
}

.footer_nav ul {
    list-style: none;
    padding: 0;
}

.footer_nav a {
    text-decoration: none;
    color: #fff;
}

#menu-footer-navigation {
    display: flex;
    justify-content: center;
}

.footer_nav .menu-item {
    width: 20%;
    font-size: 1.5rem;
}

.footer_nav .menu-item a {
    display: inline-block;
    margin-bottom: 30px;
}

.sub-menu .menu-item {
    width: 100%;
    font-size: 1rem;
}

.sub-menu .menu-item a {
    margin-bottom: 15px;
}

@media screen and (max-width: 767px) {
    .footer_nav {
        padding: 10px;
    }
    .footer_nav ul {
        margin-bottom: 0;
    }
    .sub-menu {
        margin-left: 15px;
    }
    #menu-footer-navigation {
        display: block;
    }
    .footer_nav .menu-item {
        width: 100%;
        font-size: 1rem;
    }
    .footer_nav .menu-item a  {
        margin-bottom: 15px;
    }
    .sub-menu .menu-item {
        font-size: 0.8rem;
    }
    
}

.copyright {
    padding: 50px 0;
    text-align: center;
}

.copyright small {
    display: block;
    margin-top: 30px;
    letter-spacing: 0.2em;
}

@media screen and (max-width: 991px) {
    .copyright {
        padding: 20px 0;
    }
    .copyright img {
        width: 10%;
        height: auto;
    }
    .copyright small{
        margin-top: 20px;
    }
}

/*page-rooms------------------------------------------------------------------*/

#page-rooms_title h2::after {
    content: 'site guidance';
}

.page-rooms_top_visual {
    width: 100%;
}

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

@media screen and (max-width:767px) {
    .page-rooms_top_visual {
        overflow: hidden;
    }
    .page-rooms_top_visual img {
        width: 150%;
        max-width: 150%;
        margin-left: -25%;
    }
}

.rooms_main {
    margin-left: 70px;
    margin-bottom: 130px;
    text-align: center;
}

.page-rooms-list {
    list-style: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}

.page-rooms-list-item {
    width: 33%;
    padding: 100px 60px 0 0;
}

.page-rooms-list-item img {
    width: 100%;
    max-width: 100%;
    height: auto;
    margin-bottom: 30px;
}

.page-rooms-list-description {
    width: 90%;
    margin: 0 auto;
}

.page-rooms-list-item h3::after {
    content: 'MOEGI';
    display: block;
    margin-top: 10px;
    font-size: 0.7rem;
    letter-spacing: 0.4em;
}
.page-rooms-list-item #moegi::after {
    content: 'MOEGI';
}
.page-rooms-list-item #ugetsu::after {
    content: 'UGETSU';
}
.page-rooms-list-item #dodan::after {
    content: 'DODAN';
}
.page-rooms-list-item #nadeshiko::after {
    content: 'NADESHIKO';
}
.page-rooms-list-item #salon::after {
    content: 'SALON';
}
.page-rooms-list-item #este::after {
    content: 'ESTE';
}


.page-rooms-list-item p {
    text-align: left;
    margin-bottom: 60px;
    margin-top: 30px;
}

.page-rooms-list-item .detail_btn {
    width: 100%;
    background-color: #fff;
    border: 1px solid #001f43;
}

.page-rooms-list-item .detail_btn a {
    color: #001f43;
}

.page-rooms-list-item .fa-chevron-right {
    color: #001f43;
}

@media screen and (max-width:991px) {
    .page-rooms-list-item h3 {
        font-size: 1.3rem;
    }
    .rooms_main {
        margin-left: 30px;
    }
    .page-rooms-list li {
        padding: 30px 30px 0 0;
    }
    .page-rooms-list-item img {
        margin-bottom: 15px;
    }
    .page-rooms-list-item p {
        margin-bottom: 30px;
        margin-top: 15px;
    }
}
@media screen and (max-width:767px) {
    .rooms_main {
        margin-bottom: 80px;
        margin-left: 10px;
    }
    .page-rooms-list {
        display: block;
    }
    .page-rooms-list-item {
        width: 100%;
        padding: 40px 10px 0 0;
    }
    .page-rooms-list-item p {
        margin: 15px 0;
    }
    .page-rooms-list-item img {
        margin-bottom: 15px;
    }
}

/*page.php------------------------------------------------------------------------*/

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

#moegi_title h2::after {
    content:'MOEGI';
}
#ugetsu_title h2::after {
    content:'UGETS';
}
#dodan_title h2::after {
    content:'DODAN';
}
#nadeshiko_title h2::after {
    content:'NADESHIKO';
}
#salon_title h2::after {
    content:'salon';
}
#este_title h2::after {
    content:'este';
}
#stage_title h2::after {
    content:'history of the shuzenji cultual journey';
}
#information_title h2::after {
    content:'information';
}
#access_title h2::after {
    content:'access';
}


/*page-bath-------------------------------------------------------------------*/

.page-bath_top_visual {
    width: 100%;
}

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

@media screen and (max-width:767px) {
    .page-bath_top_visual {
        overflow: hidden;
    }
    .page-bath_top_visual img {
        width: 150%;
        max-width: 150%;
        margin-left: -25%;
    }
}
#page-bath_title h2::after {
    content: 'hot springs';
    letter-spacing: 0.4em;
}

.page-bath_main {
    margin: 100px 0;
}

.page-bath_list {
    list-style: none;
    padding: 0;
}

.page-bath_list_item {
    margin-bottom: 100px;
    display: flex;
    justify-content: flex-start;
}

.page-bath_list_item_img {
    width: 58%;
}

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

.page-bath_list_description {
    width: 42%;
    padding: 150px 60px;
    text-align: center;
}

.page-bath_list_description h3 {
    margin-bottom: 30px;
    font-size: 2.5rem;
    letter-spacing: 0.3em;
}

.page-bath_list_description p {
    margin-bottom: 60px;
    font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
}

.page-bath_list_img img {
    padding: 0 5px;
    width: 30%;
}

#bath_private_title {
    order: 2;
}
#bath_private_description {
    order: 1;
}
.page-bath_main_sp {
    display: none;
}

@media screen and (max-width:1199px)  {
    .page-bath_main {
        display: none;
    }
    .page-bath_main_sp {
        display: block;
    }
    .page-bath_list_item {
        flex-wrap: wrap;
        margin-bottom: 50px;
    }
    .page-bath_list_item_img {
        width: 85%;
    }
    .page-bath_list_title {
         width: 15%;
        writing-mode: vertical-rl;
		position: relative;
        
    }
    .page-bath_list_title h3 {
		position: absolute;
		top: 0;
		left: 0;
        display: inline-block;
        margin: 0;
        font-size: 1.5rem;
        align-items: center;
    }
    .page-bath_list_description {
        width: 85%;
        padding: 30px 0 0 10px;
        text-align: left;
    }
    .page-bath_list_description p {
        margin: 0;
    }
    #page-bath_private {
        justify-content: flex-end;
    }
    #bath_private_title {
        order: 1;
    }
    #bath_private_description {
        order: 2;
    }
	#page-bath_outdoor {
		padding-top: 160px;
		margin-top: -160px;
	}
	#page-bath_private {
		padding-top: 160px;
		margin-top: -160px;
	}
	#page-bath_mensladies {
		padding-top: 160px;
		margin-top: -160px;
	}
}