/* Google Fonts 読み込み */
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700;800&family=Noto+Serif+JP:wght@300;400;500;600;700&display=swap');

/* 共通 */
h4{
    font-family: "Shippori Mincho";
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 180%;
}
p{
    color: #311B08;
    font-family: "Noto Serif JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 180%;
}
._inner{
    width: 80%;
    max-width: 1080px;
    margin: 0 auto;
}
._flex{
    display: flex;
    justify-content: space-between;
    align-items: start;
}
._reverse{
    flex-direction: row-reverse;
}

._flex-title{
    width: 10%;
    display: flex;
    justify-content: start;
    align-items: start;
    flex-direction: row-reverse;
    text-align: left;
}
._flex-title h3{
    writing-mode: vertical-rl;
    text-orientation: mixed;
    color: #311B08;
    text-align: left;
    font-family: "Shippori Mincho";
    font-size: clamp(1.25rem, 1.098rem + 0.65vw, 1.875rem);
    font-style: normal;
    font-weight: 800;
    line-height: 163%;
    letter-spacing: 8px;
}
._flex-title span{
    writing-mode: vertical-rl;
    color: #311B08;
    font-family: "Shippori Mincho";
    font-size: clamp(0.875rem, 0.845rem + 0.13vw, 1rem);
    font-style: normal;
    font-weight: 800;
    line-height: 163%; /* 26.08px */
    letter-spacing: 0.96px;
}
._flex-text{
    width: 45%;
}
._flex-text h4{
    margin-bottom: 8px;
}
._flex-text ._bg{
    background: #fff;
    padding: 16px;
    margin-top: 8px;
}
._flex-img{
    width: 40%;
}
._title{
    text-align: center;
    margin-bottom: 64px;
}
._title::before{
    content: "";
    display: block;
    width: 18px;
    aspect-ratio: 18/112;
    margin: 0 auto;
    background-image: url(../img/title-dec1.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
._title span{
    color: #4B4B4B;
    font-family: "Noto Serif JP";
    font-size: clamp(2rem, 1.757rem + 1.04vw, 3rem);
    font-style: normal;
    font-weight: 300;
    line-height: 160%; /* 76.8px */
    letter-spacing: 2.88px;
    margin-bottom: 24px;
}
._title span::after{
    content: "";
    display: block;
    width: 42px;
    aspect-ratio: 42/17;
    margin: 0 auto;
    background-image: url(../img/title-dec2.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
._title h2{
    color: #4B4B4B;
    text-align: center;
    font-family: "Noto Serif JP";
    font-size: clamp(2rem, 1.757rem + 1.04vw, 3rem);
    font-style: normal;
    font-weight: 600;
    line-height: 170%; /* 81.6px */
    letter-spacing: 2.88px;
}



/* header */
header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 80px;
    z-index: 100;
    background: linear-gradient(180deg, #FFF 80%, rgba(255, 255, 255, 0.00) 100%);
}

.header-inner {
    width: 80%;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    position: relative;
}

/* ハンバーガーメニュー */
.hamburger-menu {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 30px;
    height: 24px;
    cursor: pointer;
    z-index: 101;
}

.hamburger-menu span {
    display: block;
    width: 100%;
    height: 3px;
    background-color: #443B38;
    transition: all 0.3s ease;
}

.hamburger-menu.active span:nth-child(1) {
    transform: rotate(45deg) translate(6px, 6px);
}

.hamburger-menu.active span:nth-child(2) {
    opacity: 0;
}

.hamburger-menu.active span:nth-child(3) {
    transform: rotate(-45deg) translate(6px, -6px);
}

/* ナビゲーションメニュー */
.nav-menu {
    width: 100%;
}

.nav-menu ul{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0;
    margin: 0;
}

.nav-menu ul a{
    color:#443B38;
    font-family: "Noto Serif JP";
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 200%;
    text-decoration: none;
}

.nav-menu li{
    text-align: center;
    width: 25%;
    position: relative;
}

.nav-menu li::after{
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 10px;
    height: 10px;
    background-image: url(../img/header-icon.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.nav-menu li:last-child::after{
    display: none;
}

/* SPサイズでのスタイル */
@media screen and (max-width: 768px) {
    .hamburger-menu {
        display: flex;
    }
    
    .nav-menu {
        position: fixed;
        top: 0;
        right: -100%;
        width: 100%;
        height: 100vh;
        background: rgba(255, 255, 255, 0.95);
        transition: right 0.3s ease;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .nav-menu.active {
        right: 0;
    }
    
    .nav-menu ul {
        flex-direction: column;
        gap: 40px;
        width: 100%;
    }
    
    .nav-menu li {
        width: 100%;
        text-align: center;
    }
    
    .nav-menu li::after {
        display: none;
    }
    
    .nav-menu ul a {
        font-size: 20px;
        display: block;
        padding: 20px 0;
    }
}
/* mv */
#mv{
    width: 100%;
    height: 100vh;
    position: relative;
    background-image: url(../img/mv-bg.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
#mv img{
    position: absolute;
    width: 30%;
    max-width: 500px;
    top: 50%;
    right: 15%;
    transform: translateY(-50%);
}

/* about */
.about-txt{
    position: relative;
    width: 100%;
    padding: 100px 0;
    background: #FAF8ED;
}
.about-txt::before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 30%;
    aspect-ratio: 526/237;
    background-image: url(../img/dec1.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.about-txt::after{
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 30%;
    aspect-ratio: 526/237;
    background-image: url(../img/dec2.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.about-txt h2{
    width: 80%;
    max-width: 800px;
    margin: 0 auto;
    color:#4B4B4B;
    text-align: center;
    /* PC/Noto Serif JP_H3 */
    font-family: "Noto Serif JP";
    font-size: clamp(1rem, 0.879rem + 0.52vw, 1.5rem);
    font-style: normal;
    font-weight: 400;
    line-height: 200%;
    padding:16px 0 ;
    border-top: 2px solid #ECC585;
}
.about-txt h2:nth-of-type(2){
    border-bottom: 2px solid #ECC585;
}

.about-layout{
    padding: 100px 0;
    background-image: url(../img/about-layout-bg.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.about-layout-inner{
    display: flex;
    justify-content: space-between;
    align-items: start;
    width: 80%;
    max-width: 1080px;
    margin: 0 auto;
}
.about-layout-item{
    width: 22%;
}
.about-layout-item h3{
    display: flex;
    justify-content: center;
    align-items: center;
    gap:8px ;
    margin-bottom: 24px;

    /* noto serif */
    color: #FFF;
    text-align: center;
    font-family: "Noto Serif JP";
    font-size: 20px;
    font-style: normal;
    font-weight: 500;
    line-height: 200%; /* 40px */
    letter-spacing: 2px;
}
.about-layout-item h3::before{
    content: "";
    width: 18px;
    aspect-ratio: 1/1;
    background-image: url(../img/dog-icon.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.about-layout-item ._bold{
    color: #FFF;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    margin: 24px 0;
}
.about-layout-item p{
    color: #FFF;
    text-align: center;
}


/* stay */
#stay{
    background-image: url(../img/stay-bg.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding-bottom: 100px;
}
.stay-inner{
    display: flex;
    flex-direction: column;
    gap: 80px;
}
.stay-flex{
    background: linear-gradient(90deg, rgba(141, 104, 79, 0.00) 0%, #8D684F 100%);
    padding: 32px 24px;
    box-sizing: border-box;
}
.stay-flex._reverse{
    background: var(--Linear, linear-gradient(90deg, #8D684F 0%, rgba(141, 104, 79, 0.00) 100%));
}

/* room */
#room{
    position: relative;
    background:#FAF8ED;
    padding-bottom: 170px;
}
#room::before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 40%;
    aspect-ratio: 938/227;
    background-image: url(../img/dec3.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
#room::after{
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 40%;
    aspect-ratio: 938/227;
    background-image: url(../img/dec4.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.room-content{
    background: #fff;
}
.room-con-img{
    position: relative;
}
.room-con-img span{
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 16px;
    background: #ECC585;
}
.room-con-txt{
    padding: 24px;
}
.room-con-txt h3{
    color: #1D1D1D;
    text-align: center;
    font-family: "Noto Serif JP";
    font-size: 32px;
    font-style: normal;
    font-weight: 700;
    line-height: 160%;
    margin: 24px 0 16px;
}
.room-con-layout{
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 24px;
}
.room-con-info{
    width: 49%;
    background: #FEF4E5;
}
.room-con-info h4{
    color: #FEF4E5;
    text-align: center;
    font-family: "Noto Serif JP";
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 190%; /* 40px */
    letter-spacing: 2px;
    background: #311B08;
}
.room-con-info:last-of-type h4{
    background: #8D684F;
}
.room-info-flex{
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    padding: 16px;
}
.room-info-flex p{
    display: flex;
    align-items: center;
    justify-content: left;
    gap: 8px;
    white-space: nowrap;
}
.room-info-flex p::before{
    content: "";
    width: 10px;
    aspect-ratio: 1/1;
    background-image: url(../img/icon.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.room-con-info:last-of-type .room-info-flex p::before{
    width: 16px;
    background-image: url(../img/dog-icon.webp);
}


/* food */
#food{
    background-image: url(../img/stay-bg.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding-bottom: 170px;
}
.food-inner{
    display: flex;
    flex-direction: column;
    gap: 120px;
}
.food-flex{
    gap: 24px;
}
.food-flex-title h3{
    color: #4B4B4B;
    font-family: "Noto Serif JP";
    font-size: 64px;
    font-style: normal;
    font-weight: 700;
    line-height: 120%;
    position: relative;
    top: -32px;
    right: -24px;
}
.food-flex:last-of-type .food-flex-title h3{
    color: #8D684F;
}
.food-flex-bg{
    background: #E3CFF5;
}
.food-flex:last-of-type .food-flex-bg{
    background: #F5DFCF;
}
.food-flex-img{
    margin-right: calc(50% - 50vw);
    flex: auto;
}
.btn {
    margin: 0 auto;
    background-color: #311B08;
    transition: background-color 0.5s ease;
}
.btn a {
    display: block;
    padding: 12px 0;
    color: #FBFBFB;
    font-size: 18px;
    font-weight: 700;
    line-height: 2;
    width: 320px;
    text-align: center;
    font-family: "Noto Serif JP";
    transition: color 0.5s ease;
}
.btn:hover {
    background-color: #FBFBFB;
}
.btn a:hover {
    color: #311B08;
}
.morning-stub {
    background-color: #F5DFCF;
}
.morning-stub h3 {
    color: #A87551;
}
.title_p-2 {
    margin-top: 100px;
}
.bg-transparent {
    background-color: transparent !important;
}
.note {
    margin: 75px auto;
    background-color: #fff;
    border-radius: 8px;
}
.note p {
    padding: 40px;
    color: #443B38;
    font-weight: 700;
    line-height: 2;
}
/* footer */
.footer-cta{
    height: 300px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.footer-cta img{
    width: 50%;
    height: 100%;
    object-fit: cover;
}
.footer-cta a{
    width: 50%;
    height: 100%;
    padding-left: 40px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: left;
    gap: 16px;
    background: #8D684F;
}
.footer-cta a p{
    color: #FFF;
    font-family: "Noto Serif JP";
    font-size: clamp(1.125rem, 0.791rem + 1.42vw, 2.5rem);
    font-style: normal;
    font-weight: 400;
    line-height: 190%;
}
.footer-cta a::before{
    content: "";
    width: 50px;
    aspect-ratio: 1/1;
    background-image: url(../img/arrow.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.footer-info{
    background: #443B38;
    padding-bottom: 80px;
}
.footer-info ._title h2,.footer-info ._title span{
    color: #FFF;
}
.footer-info ._title::before{
    background-image: url(../img/title-dec1-wh.webp);
}
.footer-info ._title span::after{
    background-image: url(../img/title-dec2-wh.webp);
}
.footer-info-item{
    width: 80%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 32px;
    border-radius: 8px;
    background: #fff;
}

.footer-address{
    display: flex;
    justify-content: left;
    align-items: center;
    gap: 24px;
    width: 80%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 30px 0;
    background: #fff;
}
.footer-address > img{
    width: 20%;
    min-width: 200px;
}
.footer-address a{
    width: 30px;
    aspect-ratio: 1/1;
}
.copyright{
    display: flex;
    justify-content: center;
    align-items: center;
    background: #443B38;
    padding: 16px 0;
}
.copyright p{
    color: #FFF;
    font-size: 14px;
    font-family: "Noto Serif JP";
}

/* トップへ戻るボタン */
.scroll-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 60px;
    height: 60px;
    background: #8D684F;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 1000;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.scroll-to-top.show {
    opacity: 1;
    visibility: visible;
}

.scroll-to-top:hover {
    background: #7A5A42;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.scroll-to-top span {
    color: #FFF;
    font-family: "Noto Serif JP";
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}

.sp-only{
    display: none;
}
@media screen and (max-width: 768px) {
    .pc-only{
        display: none;
    }
    .sp-only{
        display: block;
    }
    ._inner{
        width: 90%;
    }
    ._flex{
        flex-wrap: wrap;
    }
    ._flex-title{
        width: 25%;
        justify-content: center;
        flex-direction: row;
    }
    ._flex-text{
        width: 70%;
    }
    ._flex-img{
        width: 100%;
    }
    ._title::before{
        width: 10px;
    }

    .header-inner{
        width: 90%;
    }
    #mv{
        background-image: url(../img/mv-bg.webp);
        background-position: 0%;
        height: 65vh;
        margin-top: 60px;
        max-height: 440px;
    }
    #mv img{
        width: 60%;
        top: auto;
        transform: translate(0,0);
        bottom: 10%;
        left: -1%;
    }
    .about-txt h2{
        width: 90%;
    }
    .about-txt h2:nth-of-type(2){
        border-bottom:none;
    }
    .about-txt h2:last-of-type{
        border-bottom: 2px solid #ECC585;
    }
    .about-layout-inner{
        width: 90%;
        flex-direction: column;
    }
    .about-layout-item{
        width: 100%;
    }
    .about-layout-item img{
        display: block;
        width: 80%;
        margin: 0 auto;
    }
    .about-layout-item h3{
        margin-top: 40px;
        margin-bottom: 8px;
    }
    .about-layout-item ._bold{
        margin: 8px 0;
    }
    .stay-flex-img {
        margin-top: 24px;
    }
    #room{
        padding-bottom: 100px;
    }
    .room-con-txt{
        padding: 8px;
    }
    .room-con-txt h3{
        font-size: 24px;
    }
    .room-con-layout{
        flex-direction: column;
    }
    .room-con-info{
        width: 100%;
    }
    .room-con-info h4{
        font-size: 16px;
    }
    .room-con-img span{
        display: block;
        position: static;
        margin-top: -1px;
    }
    #food{
        padding-bottom: 100px;
    }
    .food-flex-title{
        width: 10%;
    }
    .food-flex-title h3{
        font-size: 32px;
        top: -16px;
        right: -12px;
    }
    .food-flex-text {
        width: 80%;
    }
    .food-flex-img{
        margin-right: 0;
    }
    .footer-cta img{
        display: none;
    }
    .footer-cta a{
        width: 100%;
        justify-content: center;
        padding-left: 0;
    }
    .footer-address{
        flex-direction: column;
    }
    .footer-address a{
        width: 60px;
    }
    .copyright p{
        font-size: 12px;
        text-align: center;
    }
    
    /* SPサイズでのトップへ戻るボタン */
    .scroll-to-top {
        bottom: 20px;
        right: 20px;
        width: 50px;
        height: 50px;
    }
    
    .scroll-to-top span {
        font-size: 20px;
    }
}