/* リセット */
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    font-weight: normal;
    vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
}

body {
    line-height: 1;
}

blockquote,
q {
    quotes: none;
}

ol,
ul {
    list-style: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
    content: "";
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

input,
textarea,
select {
    appearance: none;
    border-radius: 0;
    padding: 0;
    margin: 0;

    &:focus {
        outline: 0;
    }
}





/* ーーーーーーーーーー
init
ーーーーーーーーーー */
:root {
    --color-main: #55645a;
    --color-black: #283741;
    --color-pink: #faf0eb;
}

html {
    scroll-behavior: smooth;
    color: var(--color-black);
}

body {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    min-height: 100vh;
    font-family: "Zen Old Mincho", serif;

    &.header-open {
        overflow: hidden;
    }
}

main {
    width: 100%;
    max-width: 1072px;
    margin: 0 auto;
    padding: 80px 16px 0;
    box-sizing: border-box;

    @media(max-width:768px){
        padding-top: 64px;
    }

    &.top {
        padding-top: 0;
    }

    &.header-open {
        pointer-events: none;
    }
}

a {
    display: block;
    text-decoration: none;
    line-height: 1.2;
    color: var(--color-black);
}

address {
    font-style: normal;
}


/* /////////////// */
/* パーツ設定 */
/* /////////////// */

/* ローディング画面 */
div.load {
    position: fixed;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100vw;
    height: 100vh;
    top: 0;
    left: calc((100vw - 100%) / -2);
    margin: auto 0;
    background-color: var(--color-main);
    transition: 1s;
    opacity: 1;
    z-index: 25;

    &.none {
        pointer-events: none;
        opacity: 0;
    }

    p.load-text {
        flex-shrink: 0;
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 16px;
        align-items: center;
        width: fit-content;
        box-sizing: border-box;
        text-align: center;
        color: #fff;
        letter-spacing: 0.5rem;

        &::before {
            flex-shrink: 0;
            content: "";
            width: 152px;
            aspect-ratio: 450/800;
            background: url(../image/logo.png) center center / contain no-repeat;
        }
    }
}

/* 緑背景（幅100vw） */
.greenback {
    position: relative;
    color: #fff;

    &::before {
        position: absolute;
        content: "";
        width: 100vw;
        height: 100%;
        top: 0;
        left: calc((100vw - 100%) / -2);
        background-color: var(--color-main);
        z-index: -1;
    }
}

/* フェードインアニメーション要素 */
.fadein {
    opacity: 0;
    transform: translateY(100px);
    transition: opacity 2s, transform 1s; 

    &.fadein-on {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 見出し３ */
h2.common,
h3.common,
p.common {
    position: relative;
    width: fit-content;
    margin-top: 104px;
    padding-left: 40px;
    box-sizing: border-box;
    font-family: "Montserrat", sans-serif;
    line-height: 1.4;
    letter-spacing: 0.2rem;
    font-size: 1.5rem;

    &::before {
        position: absolute;
        content: "";
        width: 24px;
        aspect-ratio: 1/1;
        inset: 0;
        top: 6px;
        background: url(../image/pattern-triangle.svg) center center / contain no-repeat;
    }

    @media(max-width: 768px) {
        margin-top: 64px;
        padding-left: 24px;
        font-size: 1.25rem;

        &::before {
            width: 16px;
        }
    }

    &.center {
        margin-left: auto;
        margin-right: auto;
        text-align: center;
        padding-right: 40px;

        &::before {
            top: 0;
            bottom: 0;
            margin: auto 0;
        }

        &::after {
            position: absolute;
            content: "";
            width: 24px;
            aspect-ratio: 1/1;
            top: 0;
            bottom: 0;
            margin: auto 0;
            right: 0;
            background: url(../image/pattern-triangle.svg) center center / contain no-repeat;
            transform: scale(-1, 1);
        }

        @media(max-width: 768px) {
            margin-top: 64px;
            padding: 0 32px;
            letter-spacing: 0.2rem;
            font-size: 1.25rem;
    
            &::before,
            &::after {
                width: 16px;
            }
        }
    }

    &.white {
        color: #fff;
        &::before {
            background: url(../image/pattern-triangle-white.svg) center center / contain no-repeat;
        }
    }
}

h4.common {
    color: #fff;
    padding-left: 20px;
    font-size: 1.375rem;
    font-family: "Montserrat", sans-serif;
}

/* 項目名 */
.name {
    position: relative;
    font-family: "Montserrat", sans-serif;
    font-size: 1.25rem;
    padding-left: 24px;
    box-sizing: border-box;
    line-height: 1.4;
    
    &::before {
        position: absolute;
        content: "";
        width: 12px;
        aspect-ratio: 1/1;
        inset: 0;
        top: 8px;
        background: url(../image/pattern-single.svg) center center / contain no-repeat;
    }

    @media(max-width: 768px) {
        padding-left: 16px;
        font-size: 1.125rem;

        &::before {
            top: 6px;
        }
    }

    &.white {
        color: #fff;

        &::before,
        &::after {
            background: url(../image/pattern-single-white.svg) center center / contain no-repeat;
        }
    }

    &.center {
        width: fit-content;
        margin: 0 auto;
        padding-right: 24px;

        &::after {
            position: absolute;
            content: "";
            width: 12px;
            aspect-ratio: 1/1;
            top: 0;
            right: 0;
            bottom: 0;
            margin: auto 0;
            background: url(../image/pattern-single.svg) center center / contain no-repeat;
            transform: rotate(180deg);
        }
    }
}

.name-s {
    display: flex;
    align-items: center;
    gap: 4px;

    &::before {
        content: "-";
        padding-bottom: 4px;
        box-sizing: border-box;
    }
}

/* 説明とリンク */
p.explain{
    margin-top: 32px;
    line-height: 2;

    @media(max-width:768px){
        margin-top: 24px;
    }

    @media(max-width: 480px) {
        font-size: 0.875rem;
    }

    span {
        display: block;
    }

    a{
        display: inline;
        text-decoration: underline;
    }
}

/* dl要素 */
dl.common {
    display: flex;
    flex-direction: column;
    gap: 4px;

    div {
        display: flex;
        gap: 4px;
    }

    dt,
    dd {
        width: fit-content;
        padding: 16px;
        box-sizing: border-box;
        line-height: 1.4;
        text-align: center;
        border: solid 1px var(--color-main);

        @media(max-width:768px){
            font-size: 0.875rem;
        }

        span {
            display: inline-block;
        }
    }

    dt {
        flex-shrink: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        border: solid 1px var(--color-main);
        background-color: var(--color-main);
        color: #fff;
    }

    dd {
        flex-shrink: 1;
        width: 100%;
        background-color: #fff;
    }

    &.single {
        flex-direction: row;
    }
}

/* /////////////// */
/* ボタン */
/* /////////////// */
.btn-transparent,
.btn-black,
.btn-translucent,
.btn-white {
    position: relative;
    width: fit-content;
    min-height: 24px;
    padding: 8px 32px;
    box-sizing: border-box;
    text-align: center;
    z-index: 5;

    &::before {
        position: absolute;
        content: "";
        width: 12px;
        aspect-ratio: 1/1;
    }

    @media(max-width: 768px) {
        padding: 6px 24px;
    }

    span {
        display: inline-block;
    }
}

/* 透明ボタン、半透明ボタン */
.btn-transparent,
.btn-translucent {
    border: solid 0.5px #fff;
    color: #fff;

    &::before {
        right: -6px;
        bottom: -6px;
        border-left: solid 1px #fff;
        transform: rotate(45deg);
        transition: border-left 0.2s;
    }
}

/* 透明ボタン */
.btn-transparent {
    transition: background-color 0.2s, color 0.2s;

    &:hover {
        color: var(--color-black);
        background-color: #fff;

        &::before {
            border-left: solid 1px var(--color-main);
        }
    }
}

/* 半透明ボタン */
.btn-translucent {
    background-color: rgba(250, 240, 235, 0.15);
    transition: background-color 0.2s, color 0.2s;

    &:hover {
        color: var(--color-black);
        background-color: #fff;

        &::before {
            border-left: solid 1px var(--color-main);
        }
    }
}

/* 黒フチボタン */
.btn-black {
    background-color: transparent;
    border: solid 1px var(--color-black);
    box-shadow: 0 0.5px 0 var(--color-main);
    transition: border 0.2s, background-color 0.2s, color 0.2s;

    &::before {
        right: -6px;
        bottom: -6px;
        border-left: solid 1px var(--color-black);
        transform: rotate(45deg);
        transition: border-left 0.2s;
    }

    &:hover {
        border: solid 1px var(--color-main);
        color: #fff;
        background-color: var(--color-main);

        &::before {
            border-left: solid 1px #fff;
        }
    }
}

/* 白背景ボタン */
.btn-white {
    border: solid 0.5px #fff;
    transition: color 0.2s;

    &::before {
        width: 100%;
        height: 100%;
        inset: 0;
        background-color: #fff;
        clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
        z-index: -1;
        transition: background-color 0.2s;
    }

    &:hover {
        color: #fff;
        background-color: #fff;

        &::before {
            background-color: var(--color-main);
        }
    }
}

/* テーブル（表） */
table{
    width: 100%;
    max-width: 1000px;
    table-layout: fixed;
    border-spacing: 3px;
    border-collapse: separate;
    overflow: hidden;

    @media(max-width:560px){
        display: block;
        width: 100%;
        overflow: scroll;
    }
    
    caption{
        position: relative;
        width: fit-content;
        margin-top: 40px;
        margin-bottom: 16px;
        padding-left: 24px;
        box-sizing: border-box;
        font-family: "Montserrat", sans-serif;
        font-size: 1.25rem;
        line-height: 1.4;
        letter-spacing: 0.05rem;
        text-align: left;
        
        @media(max-width:768px){
            margin-top: 24px;
            font-size: 1rem;
        }

        @media(max-width:560px){
            display: block;
            width: 100%;
        }

        span{
            display: inline-block;
        }

        &::before {
            position: absolute;
            content: "";
            width: 12px;
            aspect-ratio: 1/1;
            inset: 0;
            top: 8px;
            background: url(../image/pattern-single.svg) center center / contain no-repeat;
        }
    }

    thead,tbody{
        text-align: center;

        th,td {
        }

        tr{
            th{
                color: #fff;
                background-color: var(--color-main);

                @media(max-width:560px){
                    width: 88px;
                }
            }

            td{
                box-sizing: border-box;
                border: solid 1px var(--color-main);
                background-color: #fff;

                @media(max-width:560px){
                    width: 112px;
                }
            }
        }
    }

    thead{
        th{
            padding: 12px;
        }

        tr {
            @media(max-width:560px){
                display: flex;
                gap: 4px;
            }
        }
    }

    tbody{
        th{
            padding: 24px 12px;

            @media(max-width:560px){
                flex-shrink: 0;
            }
        }

        tr {
            @media(max-width:560px){
                display: flex;
                gap: 4px;
                margin-top: 4px;

                &:nth-child(1) {
                    margin-top: 0;
                }
            }

            td {
                @media(max-width:560px){
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                }
            }

            &:nth-child(n+3) {
                td {
                    @media(max-width:560px){
                        flex-shrink: 1;
                        width: 100%;
                    }
                }
            }
        }
    }
}

div.price-text-wrapper {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 16px;

    p.name-s {
        @media(max-width:480px){
            font-size: 0.875rem;
        }
    }
}

/* 下層ページカバー */
div.cover02{
    height: 400px;
    position: relative;
    padding: 104px 16px;
    box-sizing: border-box;

    @media(max-width:768px){
        height: 280px;
    }

    @media(max-width:480px){
        height: 240px;
    }

    &::before {
        position: absolute;
        content: "";
        width: 100vw;
        height: 100%;
        top: 0;
        left: calc((100vw - 100%) / -2);
        background: center center / cover no-repeat;
        /* background-imageのみ各ページで指定 */
        z-index: -1;
    }

    h2.common02{
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        font-family: "Montserrat", sans-serif;
        color: #fff;
        letter-spacing: 0.2rem;
        font-size: 2.5rem;

        &::before {
            position: absolute;
            content: "";
            height: calc(100% + 48px);
            aspect-ratio: 1/1;
            inset: 0;
            top: -24px;
            margin: 0 auto;
            background: url(../image/pattern-min.svg);
            border-radius: 50%;
            opacity: 0.8;
        }

        @media(max-width:768px){
            font-size: 2rem;
        }

        @media(max-width:480px){
            font-size: 1.75rem;
        }
    }
}

/* スライダー */
ul.slider-list {
    display: flex;
    /* モバイル時widthは直接指定 */
    transform: translateX(0%);
    animation: slider 30s linear infinite;

    li {
        flex-shrink: 0;

        img {
            width: 100%;
            object-fit: cover;
        }
    }
}
@keyframes slider {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-50%); }
}

/* フッター予約パーツ */
div#parts-reserve {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: 100vw;
    margin-top: 248px;
    margin-left: calc((100vw - 100%) / -2);
    padding: 104px 16px;
    box-sizing: border-box;
    background: url(../image/room-cover3.webp) center center / cover no-repeat;

    &.none {
        display: none;
    }

    &::before {
        position: absolute;
        content: "";
        width: 24px;
        height: 40px;
        top: -144px;
        left: 0;
        right: 0;
        margin:  0 auto;
        background: url(../image/pattern-diamond.svg) center center / contain no-repeat;
    }

    &::after {
        position: absolute;
        content: "";
        width: 100vw;
        height: 100%;
        top: 0;
        left: calc((100vw - 100%) / -2);
        backdrop-filter: blur(8px);
        background-color: rgba(0, 0, 0, 0.2);
        backdrop-filter: blur(2px);
    }

    @media(max-width: 768px) {
        margin-top: 200px;

        &::before {
            top: -120px;
        }
    }

    p.text {
        text-align: center;
        font-family: "Montserrat", sans-serif;
        color: #fff;
        line-height: 1.4;
        letter-spacing: 0.2rem;
        font-size: 1.25rem;
        z-index: 2;

        span {
            display: inline-block;
        }
    }

    ul.reserve-list {
        position: relative;
        display: flex;
        justify-content: center;
        gap: 40px;
        padding-bottom: 80px;
        box-sizing: border-box;

        &::before {
            position: absolute;
            content: "";
            width: 24px;
            height: 40px;
            bottom: 0;
            left: 0;
            right: 0;
            margin: 0 auto;
            background: url(../image/pattern-diamond-white.svg) center center / contain no-repeat;
            z-index: 2;
        }

        @media(max-width: 880px) {
            gap: 24px;
        }

        @media(max-width: 640px) {
            flex-direction: column;
            align-items: center;
            gap: 24px;
        }

        li {
            @media(max-width: 880px) {
                width: calc((100% - 24px) / 2);
            }

            @media(max-width: 640px) {
                width: 100%;
                max-width: 280px;
            }

            a.btn-translucent {
                width: 400px;
                padding: 8px 80px;
                font-size: 2rem;
                border: solid 1px #fff;
                box-shadow: 0 0 10px rgba(0, 0, 0, 0.8);

                &::before {
                    width: 24px;
                    right: -12px;
                    bottom: -12px;
                    transform: rotate(45deg);
                }

                @media(max-width: 880px) {
                    width: 100%;
                }

                @media(max-width: 800px) {
                    font-size: 1.5rem;
                }

                @media(max-width: 704px) {
                    padding: 6px 64px;
                }

                @media(max-width: 400px) {
                    padding: 6px 40px;
                }
            }
        }
    }
}


/* サブカバー */
div {
    &.slider-img-cover {
        height: 600px;
        margin-left: calc((100vw - 100%) / -2);
        width: 100vw;

      div.text-area {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        position: relative;
        max-width: 1040px;
        height: 100%;
        margin: 0 auto;
        z-index: 1;

        h2 {
            position: relative;
            display: flex;
            flex-direction: column;
            gap: 8px;
            width: fit-content;
            height: fit-content;
            padding: 40px;
            padding-bottom: 24px;
            box-sizing: border-box;
            background-color: var(--color-black);
            font-family: "Montserrat", sans-serif;
            font-size: 2.125rem;
            line-height: 1;
            letter-spacing: 0.2rem;
            color: #fff;

            span {
                display: block;
            }
        }

        p {
            display: flex;
            justify-content: flex-end;
            align-items: flex-end;
            flex-wrap: wrap;
            margin-bottom: 40px;
            font-style: italic;

            @media (max-width: 768px) {
                margin-bottom: 24px;
            }

            @media (max-width: 480px) {
                margin-bottom: 40px;
            }

          span {
            position: relative;
            width: fit-content;
            margin-top: 16px;
            padding: 8px 0;
            padding-right: 8px;
            display: block;
            font-size: 1.5rem;
            height: fit-content;
            white-space: nowrap;

            &::before,
            &::after {
                position: absolute;
                content: "";
                height: 100%;
                width: calc(100% + 32px);
                top: 0;
                left: -16px;
                background-color: #fff;
                z-index: -1;
            }

            @media (max-width: 768px) {
                margin-top: 10px;
                font-size: 1.25rem;
                padding: 6px 0;
            }

            @media (max-width: 480px) {
                padding-right: 0;
            }
          }
        }
      }

      ul.img-cover {
        position: absolute;
        width: 100vw;
        height: 600px;
        left: calc(((100vw - 100%) / 2) * (-1));
        top: 0;
        overflow: hidden;

        li {
          height: 100%;
          width: 100%;
          background-repeat: no-repeat;
          background-position: center;
          background-size: cover;
          position: absolute;
          left: 0;
          top: 0;
          opacity: 0;
          transition: opacity 1s ease;

          &.now {
            opacity: 1;
          }

          img {
            display: block;
            height: 600px;
            width: 100%;
            object-fit: cover;
            object-position: center;
          }
        }
      }
    }

    &.nav-cover {
        background-color: #fff;
        padding: 80px 0;
        width: 100vw;
        margin-left: calc(((100vw - 100%) / 2) * (-1));

        ul.img-cover-nav {
            display: flex;
            justify-content: center;
            max-width: 1040px;
            margin: 0 auto;
            gap: 8px;
            padding-left: 16px;
            padding-right: 16px;

            li {
                opacity: 0.5;
                transition: opacity 1s ease;

                &:hover, &.now {
                    opacity: 1;
                }

                a {
                    display: block;
                    cursor: pointer;

                    img {
                        display: block;
                        width: 100%;
                        max-height: 164px;
                    }
                }
            }
        }
    }
}

@media (max-width: 1200px) {
    div.slider-img-cover {
        width: 100%;
        margin-left: 0;
    }
}
  
@media (max-width: 768px) {
    div.slider-img-cover {
        height: 440px;
    }
}
  
@media (max-width: 768px) {
    div.slider-img-cover div.text-area h2 {
        font-size: 1.5rem;
        margin-left: 0;
        padding: 40px 16px 24px;
    }
}
  
@media (max-width: 768px) {
    div.slider-img-cover ul.img-cover {
        height: 440px;
    }
}

@media (max-width: 768px) {
    div.nav-cover {
        padding: 40px 0;
    }
}

@media(max-width: 480px) {
    div.slider-img-cover {
        height: 100vh;
    }

    div.slider-img-cover ul.img-cover {
        height: 100vh;

        li {
            height: 100%;

            img {
                height: 100%;
            }
        }
    }
}


div#page {
    div.page-content {
        line-height: 1.6;
        margin-top: 40px;

        h3,
        h4,
        h5,
        h6 {
            margin-top: 24px;
            margin-bottom: 8px;
            font-family: "Montserrat", sans-serif;
            line-height: 1.4;
            letter-spacing: 0.08rem;

            @media(max-width:768px){
                margin-top: 20px;
            }
        }

        h3 {
            position: relative;
            width: fit-content;
            padding-left: 32px;
            box-sizing: border-box;
            font-size: 1.25rem;

            &::before {
                position: absolute;
                content: "";
                width: 20px;
                aspect-ratio: 1/1;
                inset: 0;
                top: 4px;
                background: url(../image/pattern-triangle.svg) center center / contain no-repeat;
            }

            @media(max-width: 768px) {
                padding-left: 24px;
                font-size: 1.125rem;

                &::before {
                    width: 16px;
                }
            }
        }

        h4 {
            font-size: 1.125rem;
            position: relative;
            padding-left: 20px;
            box-sizing: border-box;
            
            &::before {
                position: absolute;
                content: "";
                width: 10px;
                aspect-ratio: 1/1;
                inset: 0;
                top: 6px;
                background: url(../image/pattern-single.svg) center center / contain no-repeat;
            }

            @media(max-width:768px){
                font-size: 1rem;
            }
        }

        h5 {
            font-size: 1rem;
            display: flex;
            gap: 4px;

            &::before {
                content: "-";
                box-sizing: border-box;
                line-height: 1.2;
            }

            @media(max-width:768px){
                font-size: 1rem;
            }
        }

        h6 {
            font-size: 1rem;

            @media(max-width:768px){
                font-size: 0.875rem;
            }
        }

        p {
            @media(max-width:768px){
                font-size: 0.875rem;
            }
        }

        img {
            object-fit: contain;
            width: fit-content;
            max-width: 100%;
            margin-top: 16px;
        }

        a {
            display: inline;
            text-decoration: underline;
            text-decoration-thickness: 0.8px;
            text-underline-offset: 2px;
        }

        a.wp-block-button__link {
            display: block;
            position: relative;
            width: fit-content;
            min-height: 24px;
            margin: 16px 0;
            padding: 4px 32px;
            box-sizing: border-box;
            background-color: transparent;
            border: solid 1px var(--color-black);
            box-shadow: 0 0.5px 0 var(--color-main);
            border-radius: 0;
            text-align: center;
            color: var(--color-black);
            transition: border 0.2s, background-color 0.2s, color 0.2s;
            text-decoration: none;
            z-index: 5;

            &::before {
                position: absolute;
                content: "";
                width: 12px;
                aspect-ratio: 1/1;
                right: -6px;
                bottom: -6px;
                border-left: solid 1px var(--color-black);
                transform: rotate(45deg);
                transition: border-left 0.2s;
            }

            @media(max-width: 768px) {
                padding: 2px 24px;
            }
        
            &:hover {
                border: solid 1px var(--color-main);
                color: #fff;
                background-color: var(--color-main);
        
                &::before {
                    border-left: solid 1px #fff;
                }
            }
        }

        ul,ol {
            margin-top: 16px;
            padding-left: 24px;
            box-sizing: border-box;
            }

            ul {
            list-style: disc;
            }

            ol {
            list-style: decimal;
        }
    }
}
  

/* 404ページ */
div#nopage {
    position: relative;
    padding-top: 120px;
    padding-bottom: 120px;
    box-sizing: border-box;

    &::before {
        position: absolute;
        content: "";
        width: 100vw;
        height: 100%;
        top: 0;
        left: calc((100vw - 100%) / -2);
        background-color: var(--color-main);
        z-index: -1;
    }

    h2 {
        text-align: center;
        letter-spacing: 0.08rem;
        color: #fff;
        font-size: 6rem;
    }

    p.sub {
        display: flex;
        justify-content: center;
        text-align: center;
        gap: 16px;
        margin-top: 16px;
        text-align: center;
        color: #fff;
        font-family: "Montserrat", sans-serif;
        letter-spacing: 0.08rem;
        font-style: italic;
        font-size: 1.5rem;
        font-weight: light;

        &::before,
        &::after {
            content: "-";
        }
    }

    p.explain {
        margin-top: 40px;
        text-align: center;
        color: #fff;

        span {
            display: inline-block;
        }
    }

    a.btn-transparent {
        margin: 24px auto 0;
    }
}




/* ーーーーーーーーーー
ヘッダー・フッター
ーーーーーーーーーー */
/* ヘッダー */
header {
    position: fixed;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100vw;
    height: 80px;
    padding: 0 16px;
    box-sizing: border-box;
    z-index: 20;

    &::before {
        position: absolute;
        content: "";
        width: 100%;
        height: 100%;
        inset: 0;
        background-color: var(--color-main);
        transform: translateY(0);
        transition: 0.4s;
        z-index: -1;
    }

    @media(max-width: 768px) {
        height: 64px;
    }

    &.top {
        &::before {
            transform: translateY(-100%);
        }

        h1 {
            transition: 0.8s;
            transform: translateY(-150%);
        }

        div.header-content {
            div.guide {
                ul.lang-switcher {
                    li {
                        a {
                            &:hover {
                                color: #fff;
                                background-color: rgba(0,0,0,0.5);
                        
                                &::before {
                                    background-color: transparent;
                                }
                            }
                        }
                    }
                }
                a.btn-white {
                    background-color: rgba(0,0,0,0.5);
                    &:hover {
                        &::before {
                            background-color: transparent;
                        }
                    }
                }
            }
        }
    }

    h1 {
        flex-shrink: 0;
        width: 56px;
        aspect-ratio: 1/1;
        background: url(../image/logo-header.png) center center / contain no-repeat;
        text-indent: 100%;
        white-space: nowrap;
        overflow: hidden;
        transform: translateY(0);

        @media(max-width: 768px) {
            width: 48px;
        }

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

    div.header-content {
        position: relative;
        display: flex;
        align-items: center;
        gap: 24px;
        height: 100%;

        @media(max-width: 768px) {
            gap: 16px;
        }

        div.guide {
            display: flex;
            align-items: center;
            gap: 16px;

            @media(max-width: 768px) {
                gap: 12px;
            }

            @media(max-width: 480px) {
                display: none;
            }

            &.none {
                display: none;
            }

            ul.lang-switcher {
                flex-shrink: 0;
                width: fit-content;
                height: fit-content;
    
                li {
                    &.none {
                        display: none;
                    }

                    a {
                        position: relative;
                        width: fit-content;
                        min-height: 24px;
                        padding: 8px 32px;
                        box-sizing: border-box;
                        text-align: center;
                        border: solid 0.5px #fff;
                        transition: color 0.2s;
                        z-index: 5;

                        &::before {
                            position: absolute;
                            content: "";
                            width: 100%;
                            height: 100%;
                            inset: 0;
                            aspect-ratio: 1/1;
                            background-color: #fff;
                            clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
                            z-index: -1;
                            transition: background-color 0.2s;
                        }
                    
                        &:hover {
                            color: #fff;
                            background-color: #fff;
                    
                            &::before {
                                background-color: var(--color-main);
                            }
                        }

                        @media(max-width: 768px) {
                            padding: 6px 24px;
                        }
                    }

                    a[lang="ja"] {
                        display: none;
                    }
                    a[lang="en-GB"] {
                        display: block;
                    }
                }

                &.en {
                    li {
                        a[lang="ja"] {
                            display: block;
                        }
                        a[lang="en-GB"] {
                            display: none;
                        }
                    }
                }
            }
    
            a.reserve-btn {
            }
        }
    
        div.menu {
            position: relative;
            display: flex;
            flex-direction: column;
            justify-content: center;
            height: 100%;
            margin-left: 16px;

            p.menu-text {
                position: relative;
                width: 48px;
                height: 32px;
                border-top: solid 1px #fff;
                text-indent: 100%;
                white-space: nowrap;
                overflow: hidden;
                cursor: pointer;

                &::before,
                &::after {
                    position: absolute;
                    content: "";
                    height: 1px;
                    right: 0;
                    bottom: 0;
                    background-color: #fff;
                    transition: 0.2s;
                }

                &::before {
                    width: 60%;
                    top: 0;
                    margin: auto 0;
                    transition: width 0.2s;
                }

                &::after {
                    width: 100%;
                    bottom: 0;
                }

                &:hover {
                    &::before {
                        width: 100%;
                    }
                }

                @media(max-width: 768px) {
                    width: 40px;
                    height: 24px;
                }

                &.open {
                    border-top: solid 0 transparent;

                    &::before {
                        width: 100%;
                        transform: rotate(45deg);
                    }

                    &::after {
                        bottom: 50%;
                        transform: rotate(-45deg);
                    }
                }
            }

            div.menu-content {
                position: absolute;
                min-width: 320px;
                min-height: 100vh;
                height: 100vh;
                overflow-y: auto;
                top: 0;
                right: -16px;
                padding: 104px 24px 200px 24px;
                box-sizing: border-box;
                background-color: var(--color-main);
                transition: 0.2s;
                transform: translateX(100%);
                z-index: -2;

                @media(max-width: 768px) {
                    min-width: 240px;
                    padding: 80px 16px 200px 16px;
                }

                @media(max-width: 480px) {
                    width: 100vw;
                }

                &.open {
                    transform: translateX(0);   
                }

                ul.menu-list {
                    flex-direction: column;
    
                    li {
                        a {
                            display: flex;
                            align-items: center;
                            justify-content: space-between;
                            padding: 16px;
                            box-sizing: border-box;
                            border-bottom: solid 0.5px #fff;
                            color: #fff;
                            transition: 0.2s;
    
                            &::after {
                                content: "";
                                width: 16px;
                                aspect-ratio: 1/1;
                                background: url(../image/pattern-triangle-white.svg) center center / contain no-repeat;
                                transition: 0.2s;
                            }
    
                            &:hover {
                                &::after {
                                    transform: translateX(4px);
                                }
                            }
    
                            @media(max-width: 768px) {
                                padding: 12px;
    
                                &::after {
                                    width: 12px;
                                }
                            }
                        }
    
                        &:first-child {
                            a {
                                border-top: solid 0.5px #fff;
                            }
                        }
                    }
                }

                div.menu-other {
                    display: flex;
                    flex-direction: column;
                    gap: 16px;
                    margin-top: 24px;

                    ul.lang-switcher {
                        flex-shrink: 0;
                        width: 100%;
                        height: fit-content;
            
                        li {
                            &.none {
                                display: none;
                            }
        
                            a {
                                position: relative;
                                width: 100%;
                                min-height: 24px;
                                padding: 8px 32px;
                                box-sizing: border-box;
                                text-align: center;
                                border: solid 0.5px #fff;
                                transition: color 0.2s;
                                z-index: 5;
        
                                &::before {
                                    position: absolute;
                                    content: "";
                                    width: 100%;
                                    height: 100%;
                                    inset: 0;
                                    aspect-ratio: 1/1;
                                    background-color: #fff;
                                    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
                                    z-index: -1;
                                    transition: background-color 0.2s;
                                }
                            
                                &:hover {
                                    color: #fff;
                                    background-color: #fff;
                            
                                    &::before {
                                        background-color: var(--color-main);
                                    }
                                }
        
                                @media(max-width: 768px) {
                                    padding: 6px 24px;
                                }
                            }
        
                            a[lang="ja"] {
                                display: none;
                            }
                            a[lang="en-GB"] {
                                display: block;
                            }
                        }
        
                        &.en {
                            li {
                                a[lang="ja"] {
                                    display: block;
                                }
                                a[lang="en-GB"] {
                                    display: none;
                                }
                            }
                        }
                    }

                    a.reserve-btn-menu {
                        width: 100%;
                        padding: 8px 24px;
                    }
                }
            }
        }
    }
}


/* フッター */
footer {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    max-width: 1216px;
    margin: 0 auto ;
    padding: 0 16px;
    box-sizing: border-box;

    &::before {
        position: absolute;
        content: "";
        width: 100vw;
        height: 100%;
        top: 0;
        left: calc((100vw - 100%) / -2);
        background-color: var(--color-main);
        z-index: -1;
    }

    a,address {
        color: #fff;
    }

    h2.footer-title {
        flex-shrink: 0;
        width: 120px;
        aspect-ratio: 120/192;
        margin: 32px 0 0;

        @media(max-width: 1069px) {
            width: 80px;
            margin: 32px auto;
        }

        a {
            width: 100%;
            height: 100%;
            background: url(../image/logo.png) center center / contain no-repeat;
            text-indent: 100%;
            white-space: nowrap;
            overflow: hidden;
        }
    }

    div.footer-content {
        flex-shrink: 1;
        margin: 24px 0 32px;

        @media(max-width: 1069px) {
            display: flex;
            flex-direction: column;
            align-items: center;
            width: 100%;
            margin: 0 0 32px 0;
        }

        ul.footer-menu {
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
            gap: 16px 40px;

            @media(max-width: 960px) {
                gap: 16px 24px;
            }
            
            li {
                a {
                    font-size: 1.125rem;

                    &:hover {
                        text-decoration: underline;
                        text-underline-offset: 2px;
                        text-decoration-thickness: 0.8px;
                    }
                }
            }
        }

        address {
            margin-top: 32px;

            @media(max-width: 480px) {
                font-size: 0.875rem;
            }
        }

        ul.sns-list {
            display: flex;
            gap: 24px;
            margin-top: 24px;

            li {
                a {
                    display: flex;
                    align-items: center;
                    gap: 8px;
                    text-decoration: underline;
                    text-underline-offset: 2px;
                    font-size: 0.875rem;

                    &::before {
                        content: "";
                        width: 29px;
                        aspect-ratio: 1/1;
                        background: url(../image/logo-instagram-white.svg) center center / contain no-repeat;
                    }
                }
            }
        }

        ul.footer-menu-sub {
            display: flex;
            gap: 24px;
            margin-top: 24px;

            li {
                a {
                    text-decoration: underline;
                    text-underline-offset: 2px;
                    font-size: 0.875rem;
                }
            }
        }
    }

    div.other-content {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 8px 0;
        box-sizing: border-box;
        
        &::before {
            position: absolute;
            content: "";
            width: 100vw;
            height: 100%;
            top: 0;
            left: calc((100vw - 100%) / -2);
            background-color: #fff;
            z-index: -1;
        }

        @media(max-width: 480px) {
            flex-direction: column;
            justify-content: center;
            gap: 8px;
        }

        ul.group-list {
            display: flex;
            align-items: center;
            gap: 8px;

            li {
                a {
                    width: 48px;
                    aspect-ratio: 1/1;
                    text-indent: 100%;
                    white-space: nowrap;
                    overflow: hidden;
                }

                a.ifoo {
                    background: url(../image/logo-ifoo.webp) center center / contain no-repeat;
                }
                a.vegahouse {
                    background: url(../image/logo-vegahouse.svg) center center / contain no-repeat;
                }
                a.tokuei {
                    background: url(../image/logo-tokuei.webp) center center / contain no-repeat;
                }
            }
        }

        p.copylight {
            color: var(--color-main);
            font-size: 0.875rem;
        }
    }
}



/* ーーーーーーーーーー
トップ
ーーーーーーーーーー */
/* トップ　英語 */
div#top {
    position: relative;

    p.scroll {
        position: fixed;
        display: none;
    }

    div.cover {
        position: relative;
        display: flex;
        justify-content: center;
        gap: 8px;
        height: calc(100vh + 32px);
        width: 100vw;
        margin-left: calc((100vw - 100%) / -2);
        padding: 0 16px 40px;
        box-sizing: border-box;
        clip-path: ellipse(150% 100% at 50% 0%);
        overflow: hidden;

        &::before {
            position: absolute;
            content: "";
            width: 100%;
            height: 100%;
            inset: 0;
            background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url(../image/top-cover-pattern.svg) top center / cover no-repeat;
            pointer-events: none;
            z-index: -1;
        }

        @media(max-width:768px){
            &::before {
                background: url(../image/top-cover-pattern-mobile.svg) top center / contain no-repeat;
            }
        }

        @media(max-width:480px){
            flex-direction: column;
            align-items: center;
        }

        h2.top {
            width: 184px;
            aspect-ratio: 450/800;
            text-indent: 100%;
            white-space: nowrap;
            overflow: hidden;
            background: url(../image/logo.png) center center / contain no-repeat;
            opacity: 0;
            transition: 0.4s;

            &.on {
                opacity: 1;
            }

            @media(max-width:480px){
                width: 160px;
            }
        }

        p.catch {
            width: 400px;
            aspect-ratio: 400/152;
            background: url(../image/top-catch-en.svg) center center / contain no-repeat;
            text-indent: 100%;
            white-space: nowrap;
            overflow: hidden;
            transition: 2s;
            opacity: 0;

            &.on {
                opacity: 1;
            }

            @media(max-width:480px){
                background: url(../image/top-catch-mobile-en.svg) center center / contain no-repeat;
            }
        }

        video{
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: -2;
        }

        img {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: -2;
        }
    }

    div.introduction {
        position: relative;
        padding-bottom: 200px;
        box-sizing: border-box;

        &::before {
            position: absolute;
            content: "";
            width: 100vw;
            height: 120%;
            bottom: 0;
            left: calc((100vw - 100%) / -2);
            background-color: var(--color-main);
            pointer-events: none;
            z-index: -2;
        }

        /* about共通 */
        p.about-text {
            position: relative;
            padding: 56px;
            padding-top: 40px;
            box-sizing: border-box;
            line-height: 2;

            &::before {
                position: absolute;
                content: "";
                width: 100%;
                aspect-ratio: 1/1;
                inset: 0;
                margin: auto;
                background-color: #fff;
                border-radius: 50%;
                opacity: 0.75;
                z-index: -1;
            }

            &::after {
                position: absolute;
                content: "";
                width: 100%;
                aspect-ratio: 1/1;
                left: 0;
                right: -80px;
                bottom: -32px;
                margin: 0 auto;
                border-radius: 50%;
                background: url(../image/pattern-min.svg);
                z-index: -1;
            }

            @media(max-width:768px){
                padding: 48px;
                padding-top: 32px;
                font-size: 0.875rem;
            }

            @media(max-width:480px){
                margin-left: -40px;
            }

            span {
                display: block;
                white-space: nowrap;
            }

            span.big {
                position: absolute;
                top: 26px;
                left: 12px;
                margin-bottom: 8px;
                line-height: 0.2;
                font-size: 3rem;

                @media(max-width:768px){
                    font-size: 2.5rem;
                }
            }

            span.space {
                position: relative;
                padding-left: 48px;
                box-sizing: border-box;

                @media(max-width:768px){
                    padding-left: 40px;
                }
            }
        }

        div.about {
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 56vh;

            &::before {
                position: absolute;
                content: "";
                width: 100vw;
                height: calc(100% - 240px);
                top: 240px;
                left: calc((100vw - 100%) / -2);
                background: linear-gradient(to bottom, transparent, transparent 80%, var(--color-main) 100% ), url(../image/top-about.webp) bottom right / cover no-repeat;
                clip-path: ellipse(150% 100% at 50% 100%);
                z-index: -1;
            }

            @media(max-width:768px){
                &::before {
                    height: 72%;
                    margin-bottom: 240px;
                    top: 200px;
                }
            }
            
            @media(max-width:647px){
                &::before {
                    top: 236px;
                }
            }

            @media(max-width:640px){
                gap: 64vw;

                &::before {
                    height: auto;
                    aspect-ratio: 4/3;
                }
            }

            @media(max-width:504px){
                &::before {
                    top: 236px;
                }
            }

            @media(max-width:480px){
                gap: 80vw;

                &::before {
                    aspect-ratio: 1/1;
                }
            }

            @media(max-width:456px){
                &::before {
                    top: 272px;
                }
            }

            @media(max-width:383px){
                &::before {
                    top: 308px;
                }
            }

            p.about-copy {
                position: relative;
                margin: 0 auto;
                padding: 80px 0;
                text-align: center;
                line-height: 2;
                font-size: 1.25rem;
    
                &::before {
                    position: absolute;
                    content: "";
                    width: 320px;
                    aspect-ratio: 1/1;
                    inset: 0;
                    margin: auto;
                    border-radius: 50%;
                    background: url(../image/pattern-min.svg);
                    opacity: 0.8;
                }

                @media(max-width:768px){
                    padding: 64px 0;
                    font-size: 1.125rem;
                }

                @media(max-width:400px){
                    &::before {
                        width: 100%;
                    }
                }
    
                span {
                    display: block;
                    letter-spacing: 0.2rem;
                    color: #fff;
                    font-family: "Montserrat", sans-serif;
                }

                span.wrap {
                    display: inline-block;
                }
            }
        }

        div.about-villa {
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: flex-end;
            margin-top: 104px;

            &::before {
                position: absolute;
                content: "";
                width: 100vw;
                height: 88%;
                top: 0;
                left: calc((100vw - 100%) / -2);
                background: linear-gradient(to top, transparent, transparent 50%, var(--color-main) 100% ), url(../image/top-villa.webp) bottom center / cover no-repeat;
                clip-path: ellipse(150% 100% at 50% 0);
                z-index: -1;
            }

            @media(max-width:768px){
                &::before {
                    background: linear-gradient(to top, transparent, transparent 70%, var(--color-main) 100% ), url(../image/top-villa.webp) bottom center / cover no-repeat;
                    top: 80px;
                    height: 70%;
                }
            }

            @media(max-width:481px){
                &::before {
                    top: 200px;
                }
            }

            @media(max-width:480px){
                &::before {
                    height: auto;
                    aspect-ratio: 3/4;
                }
            }

            @media(max-width:330px){
                &::before {
                    top: 240px;
                }
            }

            p.villa-text {
                font-family: "Montserrat", sans-serif;
                line-height: 2;
                color: #fff;
                text-align: end;
                font-size: 1.25rem;

                @media(max-width:768px){
                    font-size: 1.125rem;
                }

                @media(max-width:504px){
                    align-self: center;
                    text-align: center;
                }

                span {
                    display: block;
                    letter-spacing: 0.2rem;
                }

                span.wrap {
                    display: inline-block;
                }
            }

            a.btn-white {
                margin-top: 24px;

                @media(max-width:504px){
                    align-self: center;
                }

                &:hover {
                    background-color: rgba(0,0,0,0.4);
                    
                    &::before {
                        background-color: transparent;
                    }
                }
            }

            p.about-text {
                align-self: flex-start;
                margin-top: 80vh;
                padding: 48px 64px;
                padding-top: 40px;

                &::before {
                    width: 100%;
                }

                &::after {
                    width: 100%;
                    top: -32px;
                    left: -32px;
                    right: auto;
                    bottom: auto;
                }

                @media(max-width:768px){
                    margin-top: 64vw;
                    padding: 32px 56px;
                    padding-top: 24px;

                    &::before {
                        width: 100%;
                    }
                }

                @media(max-width:504px){
                    margin-top: 88vw;
                }

                @media(max-width:480px){
                    margin-top: 104vw;
                }

                span.big {
                    left: 2px;
                }
            }
        }

        div.feature01-first,
        div.feature01-second,
        div.feature02,
        div.feature03,
        div.feature04 {
            margin-top: 200px;
            color: #fff;

            @media(max-width:768px){
                margin-top: 120px;
            }

            p.explain {
                line-height: 2.5;

                @media(max-width:768px){
                    line-height: 2;
                }

                span {
                    @media(max-width:460px){
                        display: inline;
                    }
                }
            }
        }

        p.feature-text {
            position: relative;
            width: fit-content;
            padding-bottom: 20px;
            box-sizing: border-box;
            border-bottom: solid 1px #fff;
            font-family: "Montserrat", sans-serif;
            line-height: 1.4;
            letter-spacing: 0.2rem;
            font-size: 2rem;

            &::before {
                position: absolute;
                content: "";
                width: 16px;
                aspect-ratio: 1/1;
                left: -10px;
                bottom: -10px;
                border-radius: 50%;
                border: solid 1px #fff;

            }

            @media(max-width:768px){
                padding-bottom: 8px;
                font-size: 1.5rem;

                &::before {
                    width: 12px;
                    left: -8px;
                    bottom: -8px;
                }
            }

            span {
                display: inline-block;
                width: fit-content;
                font-family: "Montserrat", sans-serif;
            }

            span.wrap {
                display: inline-block;
            }
        }

        div.feature01-first {
            position: relative;
            padding-bottom: 40px;
            box-sizing: border-box;

            &::before {
                position: absolute;
                content: "";
                width: calc(100% - 524px);
                aspect-ratio: 400/248;
                top: 0;
                right: 0;
                bottom: 0;
                margin: auto 0;
                background: url(../image/top-feature01-01-en.webp) center center / cover no-repeat;
                border-radius: 0 56px 56px 0;
            }

            @media(max-width:960px){
                width: fit-content;
                margin-left: auto;
                margin-right: auto;
                padding-bottom: 344px;

                &::before {
                    width: 100%;
                    aspect-ratio: 400/247;
                    top: auto;
                    left: 0;
                    margin: 0 auto;
                    border-radius: 56px 0 56px 0;
                }
            }

            @media(max-width:768px){
                padding-bottom: 304px;
            }

            @media(max-width:480px){
                padding-bottom: 64vw;

                &::before {
                    border-radius: 8vw 0 8vw 0;
                }
            }

            p.feature-text {
                @media(max-width:960px){
                    width: fit-content;
                    margin: 0 auto;
                    text-align: center;
                }

                @media(max-width:480px){
                    text-align: start;
                }   

                span {
                    display: block;
                }

                span.wrap {
                    display: inline;

                    @media(max-width:480px){
                        display: inline-block;
                    }
                }
            }

            p.explain {
                @media(max-width:960px){
                    text-align: center;
                }

                @media(max-width:480px){
                    text-align: start;
                }   
            }

            p.supplement {
                margin-top: 24px;
                box-sizing: border-box;
                font-size: 0.875rem;

                @media(max-width:960px){
                    text-align: center;
                }  
                
                @media(max-width:480px){
                    text-align: start;
                }   
            }
        }

        div.feature01-second {
            position: relative;
            margin-top: 104px;
            padding-left: 280px;
            box-sizing: border-box;

            &::before {
                position: absolute;
                content: "";
                width: 200px;
                aspect-ratio: 1/1;
                top: 0;
                left: 0;
                bottom: 0;
                margin: auto 0;
                background: url(../image/top-feature01-02.svg) center center / contain no-repeat;
            }

            @media(max-width:768px){
                width: fit-content;
                margin-left: auto;
                margin-right: auto;
                margin-bottom: 40px;
                padding-left: 0;
                padding-bottom: 160px;

                &::before {
                    width: 184px;
                    top: auto;
                    right: 0;
                    margin: 0 auto;
                }

                &::after {
                    position: absolute;
                    content: "";
                    width: 24px;
                    aspect-ratio: 24/42;
                    left: 0;
                    right: 0;
                    bottom: -32px;
                    margin: 0 auto;
                    background: url(../image/pattern-diamond-white.svg) center center / contain no-repeat;
                }
            }

            @media(max-width:640px){
                padding-left: 0;
            }

            p.feature-text-sub {
                font-family: "Montserrat", sans-serif;
                letter-spacing: 0.2rem;
                line-height: 1.4;
                font-size: 1.5rem;

                @media(max-width:768px){
                    text-align: center;
                    font-size: 1.25rem ;
                }

                @media(max-width:491px){
                    text-align: start;
                }   

                span {
                    display: inline-block;

                    @media(max-width:768px){
                        display: block;
                    }
                }
            }

            p.explain {
                position: relative;

                &::before {
                    position: absolute;
                    content: "";
                    width: 24px;
                    aspect-ratio: 24/42;
                    right: 200px;
                    bottom: -44px;
                    background: url(../image/pattern-diamond-white.svg) center center / contain no-repeat;
                
                
                }

                @media(max-width:1072px){
                    &::before {
                        right: auto;
                        left: 560px;
                    }
                }

                @media(max-width:904px){
                    &::before {
                        right: 0;
                        left: auto;
                    }
                }

                @media(max-width:768px){
                    text-align: center;

                    &::before {
                        display: none;
                    }
                }

                @media(max-width:491px){
                    text-align: start;
                }   
            }
        }

        div.feature02 {
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: flex-end;
            width: 100vw;
            margin-left: calc((100vw - 100%) / -2);
            padding-bottom: 64px;
            box-sizing: border-box;
            overflow: hidden;

            &::before {
                position: absolute;
                content: "";
                width: 100vw;
                height: calc(100% + 40px);
                top: 0;
                left: calc((100vw - 100%) / -2);
                background: linear-gradient(to left, var(--color-main) 30%, transparent 70%, transparent 100%);
                z-index: -1;
            }

            @media(max-width:840px){
                align-items: flex-start;
                padding: 440px 16px 0;

                &::before {
                    display: none;
                }
            }

            @media(max-width:640px){
                padding-top: calc(64vw + 24px);
            }

            p.feature-text {
                min-width: 440px;
                margin-right: calc((100vw - 1040px) / 2);

                &::before {
                    left: 32%;
                }

                @media(max-width:1088px){
                    margin-right: 16px;
                }

                @media(max-width:840px){
                    min-width: 0;
                    margin-right: 0;
                }

                span {
                    display: block;
                }
            }

            p.explain {
                min-width: 472px;
                margin-top: 24px;
                margin-right: calc((100vw - 1040px) / 2);

                @media(max-width:1088px){
                    margin-right: 16px;
                }

                @media(max-width:840px){
                    min-width: 0;
                    margin-right: 0;
                }

                span {
                    @media(max-width:490px){
                        display: inline;
                    }
                }
            }

            a.btn-transparent {
                margin-top: 24px;
                margin-right: calc((100vw - 1040px) / 2 + 288px);
                
                @media(max-width:1088px){
                    margin-right: 308px;
                }

                @media(max-width:840px){
                    margin-right: 0;
                }
            }

            ul.slider-list {
                position: absolute;
                height: 100%;
                width: calc(640px * 8);
                top: 20px;
                left: 0;
                z-index: -2;

                @media(max-width: 1040px) {
                    width: calc(600px * 8);
                }

                @media(max-width:840px){ 
                    height: 400px;
                    top: 0;
                }

                @media(max-width:640px){
                    height: 64vw;
                    width: 800vw;
                }

                li {
                    width: 640px;
                    height: 100%;
                    z-index: 2;

                    @media(max-width: 1040px) {
                        width: 600px;
                    }

                    @media(max-width:640px){
                        width: 100vw;
                    }

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

        div.feature03 {
            position: relative;
            padding: 120px 0;
            box-sizing: border-box;

            &::before {
                position: absolute;
                content: "";
                width: 100vw;
                height: 64vh;
                min-height: 800px;
                top: 0;
                left: calc((100vw - 100%) / -2);
                background: linear-gradient(to top, var(--color-main) 0, transparent 20%, transparent 60%, var(--color-main) 100% ), url(../image/top-feature03-01.webp) center right / cover no-repeat;
                z-index: -1;
            }

            @media(max-width:768px){
                padding-top: 80px;

                &::before {
                    height: 100vw;
                    min-height: 0;
                    background: linear-gradient(to top, var(--color-main) 0, transparent 20%, transparent 80%, var(--color-main) 100% ), url(../image/top-feature03-01.webp) center right / cover no-repeat;
                }
            }

            @media(max-width:640px){
                padding-bottom: 80px;
            }

            @media(max-width:480px){
                padding-top: 24px;
                padding-bottom: 440px;

                &::after {
                    position: absolute;
                    content: "";
                    height: 200px;
                    width: 104px;
                    right: calc((100% - 200px) / 2 - 32px);
                    bottom: -16px;
                    border-radius: 24px 0 24px 0;
                    background: url(../image/pattern-min.svg);
                    opacity: 0.8;
                    z-index: -1;
                }
            }

            p.feature-text {
                margin-bottom: 600px;
                margin-left: auto;
                font-family: "Montserrat", sans-serif;
                text-align: end;

                &::before {
                    left: 64%;
                }

                @media(max-width:768px){
                    margin-bottom: 80vw;
                }

                @media(max-width:480px){
                    margin-right: auto;
                    text-align: center;
                    margin-bottom: calc(100vw - 120px);
                }

                span {
                    @media(max-width:640px){
                        display: block;
                        width: fit-content;
                        margin-left: auto;
                    }
                }

                span.wrap {
                    display: inline;

                    @media(max-width:352px){
                        display: block;
                    }
                }
            }

            p.explain {
                position: relative;
                width: 100%;
                margin-top: 0;
                padding-top: 120px;
                padding-left: 344px;
                box-sizing: border-box;

                &::before {
                    position: absolute;
                    content: "";
                    height: 240px;
                    aspect-ratio: 400 / 640;
                    top: -32px;
                    left: 152px;
                    border-radius: 24px 0 24px 0;
                    background: url(../image/pattern-min.svg);
                    opacity: 0.8;
                }

                &::after {
                    position: absolute;
                    content: "";
                    width: 272px;
                    height: calc(100% + 120px + 28px + 40px);
                    top: 0;
                    left: 0;
                    border-radius: 40px 0 40px 0;
                    background: url(../image/wasabi-img-2.webp) center center / cover no-repeat;
                }

                @media(max-width:768px){
                    &::after {
                        height: calc(100% + 120px + 24px + 24px);
                    }
                }

                @media(max-width:640px){
                    padding-top: 80px;
                    padding-left: 240px;

                    &::before {
                        top: -20px;
                        left: 64px;
                    }

                    &::after {
                        width: 200px;
                        height: calc(100% + 80px + 24px + 24px);
                    }
                }

                @media(max-width:480px){
                    padding-top: 0;
                    padding-left: 0;
                    text-align: center;

                    &::before,
                    &::after {
                        display: none;
                    }

                    span {
                        display: inline;
                    }
                }

                span {
                    @media(max-width:749px){
                        display: inline;
                    }
                }
            }

            a.btn-transparent {
                position: relative;
                margin-top: 40px;
                margin-left: 344px;

                @media(max-width:768px){
                    margin-top: 24px;
                }

                @media(max-width:640px){
                    margin-left: 240px;
                }

                @media(max-width:480px){
                    margin-left: auto;
                    margin-right: auto;

                    &::after {
                        position: absolute;
                        content: "";
                        width: 232px;
                        height: 400px;
                        left: -52px;
                        right: 0;
                        bottom: -440px;
                        margin: 0 auto;
                        border-radius: 40px 0 40px 0;
                        background: url(../image/wasabi-img-2.webp) center center / cover no-repeat;
                        pointer-events: none;
                    }
                }
            }
        }

        div.feature04 {
            position: relative;
            padding: 80px 0 0;
            padding-right: calc(100% - 540px);
            box-sizing: border-box;

            &::before {
                position: absolute;
                content: "";
                height: 100%;
                width: 56vw;
                top: 0;
                right: calc((100vw - 100%) / -2);
                background: url(../image/top-feature04-02.svg) top -32px center / contain repeat-x, linear-gradient(to right, var(--color-main), transparent 40%), url(../image/top-hotspring.webp) center center / cover no-repeat;
                z-index: -1;
            }

            @media(max-width:768px){
                padding: 40px 0 0 ;
                padding-right: calc(100% - 440px);
            }

            @media(max-width:720px){
                display: flex;
                flex-direction: column;
                align-items: center;
                padding-right: 0;
                padding-bottom: calc(100vw + 16px);

                &::before {
                    width: 100vw;
                    height: 100vw;
                    top: auto;
                    left: -16px;
                    bottom: 0;
                    background: url(../image/top-feature04-03.svg) top left 48px / contain no-repeat, url(../image/top-feature04-02.svg) top -32px center / contain repeat-x, linear-gradient(to right, var(--color-main), transparent 40%), url(../image/top-hotspring.webp) center center / cover no-repeat;
                }

                &::after {
                    position: absolute;
                    content: "-88m";
                    left: 0;
                    bottom: -8px;
                    font-size: 0.8rem;
                    font-weight: 300;
                    font-style: italic;
                    writing-mode: horizontal-tb;
                }
            }

            p.feature-text {
                width: fit-content;

                &::before {
                    left:auto;
                    right: -10px;
                }

                @media(max-width:720px){
                    text-align: center;
                }

                span {
                    width: fit-content;

                    @media(max-width:720px){
                        display: block;
                        margin: 0 auto;
                    }
                }

                span.wrap {
                    display: inline;
                    @media(max-width:340px){
                        display: inline-block;
                    }
                }
            }

            p.explain {
                position: relative;
                width: fit-content;
                padding: 40px 80px 80px 0;
                box-sizing: border-box;
                line-height: 3;

                &::before {
                    position: absolute;
                    content: "";
                    width: 24px;
                    height: 100%;
                    top: 0;
                    right: 0;
                    background: url(../image/top-feature04-03.svg) top center / contain no-repeat;
                }

                &::after {
                    position: absolute;
                    content: "-88m";
                    right: 32px;
                    bottom: -24px;
                    font-weight: 300;
                    font-style: italic;
                    writing-mode: horizontal-tb;
                }

                @media(max-width:768px){
                    padding: 24px 80px 40px 0;
                    line-height: 2;

                    &::after {
                        right: 24px;
                        bottom: -12px;
                    }
                }

                @media(max-width:720px){
                    padding: 0;
                    text-align: center;

                    &::before,
                    &::after {
                        display: none;
                    }
                }

                span {
                    @media(max-width:480px){
                        display: block;
                    }
                }
            }

            a.btn-translucent {
                position: absolute;
                bottom: 24px;
                right: 0;
                box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
                border: solid 1px #fff;

                @media(max-width:720px){
                    position: relative;
                    margin: 24px auto 0;
                    inset: auto;
                    background-color: transparent;
                    box-shadow: 0 0 0 transparent;
                    border: solid 0.5px #fff;
                    transition: background-color 0.2s, color 0.2s;

                    &::before {
                        right: -6px;
                        bottom: -6px;
                        border-left: solid 1px #fff;
                        transition: border-left 0.2s;
                    }

                    &:hover {
                        color: var(--color-black);
                        background-color: #fff;
                
                        &::before {
                            border-left: solid 1px var(--color-main);
                        }
                    }
                }
            }
        }
    }

    section.news,
    section.wasabi,
    section.instagram,
    section.information {
        margin-top: 104px;

        @media(max-width:768px){
            margin-top: 80px;
        }
    }

    section.news {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 80px;

        @media(max-width:800px){
            flex-direction: column;
            align-items: center;
            gap: 32px;
        }

        div.news-head {
            position: relative;
            flex-shrink: 0;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 24px;

            &::before {
                content: "";
                width: 32px;
                aspect-ratio: 24 / 32;
                background: url(../image/pattern-diamond.svg) center center / contain no-repeat;
            }

            h3 {
                box-sizing: border-box;
                font-family: "Montserrat", sans-serif;
                letter-spacing: 0.2rem;
                font-size: 1.5rem;
            }

            a.btn-black {
            }
        }

        ul.news-list {
            flex-shrink: 1;
            display: flex;
            flex-direction: column;

            li {
                border-bottom: solid 0.8px var(--color-main);

                &:nth-child(1) {
                    border-top: solid 0.8px var(--color-main);
                }

                a {
                    position: relative;
                    display: flex;
                    gap: 16px;
                    min-height: 84px;
                    padding: 16px 8px;
                    padding-right: 40px;
                    box-sizing: border-box;

                    &::before {
                        position: absolute;
                        content: "";
                        width: 10px;
                        aspect-ratio: 1/1;
                        top: 0;
                        right: 4px;
                        bottom: 0;
                        margin: auto 0;
                        background: url(../image/pattern-single.svg) center center / contain no-repeat;
                        transform: translateX(0);
                        transition: transform 0.2s;
                    }

                    @media(max-width:768px){
                        gap: 12px;
                        padding-right: 32px;
                    }

                    @media(max-width:480px){
                        flex-direction: column;
                        gap: 0;
                        min-height: 112px;
                    }

                    time {
                        flex-shrink: 0;
                        width: 112px;
                        margin: auto 0;
                        line-height: 1.8;
                        font-size: 0.875rem;

                        @media(max-width:480px){
                            margin: auto 0 0;
                        }
                    }

                    p {
                        flex-shrink: 1;
                        margin: auto 0;
                        line-height: 1.6;

                        @media(max-width:480px){
                            margin: 0 0 auto;
                        }
                    }

                    &:hover {
                        &::before {
                            transform: translateX(4px);
                        }

                        time,p {
                            text-decoration: underline;
                            text-underline-offset: 2px;
                            text-decoration-thickness: 0.8px;
                        }
                    }
                }
            }

            li.noarticle {
                padding: 16px 8px;
                box-sizing: border-box;
            }
        }
    }

    h3.common-top {
        position: relative;
        padding: 40px 0;
        box-sizing: border-box;
        text-align: center;
        line-height: 1.6;
        font-family: "Montserrat", sans-serif;
        letter-spacing: 0.2rem;
        font-size: 2rem;

        &::before {
            position: absolute;
            content: "";
            height: 100%;
            aspect-ratio: 1/1;
            inset: 0;
            margin: auto;
            background: url(../image/pattern-min-black.svg);
            border-radius: 50%;
            z-index: -1;
            opacity: 0.8;
        }

        @media(max-width:768px){
            padding: 24px 0;
            font-size: 1.5rem;
        }

        span {
            display: block;
            font-family: "Montserrat", sans-serif;
        }
    }

    section.wasabi {
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding-right: calc(100% - 440px);
        box-sizing: border-box;

        &::before {
            position: absolute;
            content: "";
            width: calc(100% - 480px);
            top: 0;
            bottom: 0;
            right: 0;
            margin: auto 0;
            background: url(../image/meal-cover1.webp) center center / cover no-repeat;
            border-radius: 56px 0 56px 0;
        }

        &::after {
            content: "";
            width: 32px;
            aspect-ratio: 24 / 32;
            margin-top: 24px;
            background: url(../image/pattern-diamond.svg) center center / contain no-repeat;
        }

        @media(max-width:960px){
            padding-right: 0;
            padding-bottom: 400px;

            &::before {
                position: absolute;
                content: "";
                width: auto;
                height: 320px;
                aspect-ratio: 400 / 247;
                top: auto;
                left: 0;
                bottom: 72px;
                margin: 0 auto;
            }

            &::after {
                position: absolute;
                bottom: 0;
                left: 0;
                right: 0;
                margin: 0 auto;
            }
        }

        @media(max-width:560px){
            padding-bottom: 72vw;

            &::before {
                width: 100%;
                height: calc(72vw - 80px);
                bottom: 80px;
                border-radius: 40px 0 40px 0;
            }
        }

        h3.common-top {
            span {
                &:nth-child(1) {
                    font-size: 1.25rem;

                    @media(max-width:768px){
                        font-size: 1.125rem;
                    }
                }
            }
        }

        p.explain {
            margin-top: 16px;
            text-align: center;

            span {
                @media(max-width:480px){
                    display: inline;
                }
            }
        }

        p.surplement {
            margin-top: 16px;
            text-align: center;
            line-height: 1.4;

            @media(max-width:768px){
                font-size: 0.875rem;
            }

            span {
                display: inline-block;
            }
        }

        a.btn-black {
            margin-top: 40px;

            @media(max-width:960px){
                margin-bottom: 40px;
            }

            @media(max-width:560px){
                margin-top: 24px;
            }
        }
    }

    section.instagram {
        padding-bottom: 80px;
        box-sizing: border-box;
        border-bottom: solid 1px var(--color-main);

        ul.instagram-list {
            display: flex;
            justify-content: center;
            gap: 8px;
            max-width: 1000px;
            margin: -16px auto 0;
            border-radius: 56px;
            overflow: hidden;

            @media(max-width:768px){
                flex-wrap: wrap;
                max-width: 400px;
                margin: 24px auto 0;
                border-radius: 24px;
            }

            li {
                width: calc((100% - 24px) / 4);
                aspect-ratio: 3/4;

                @media(max-width:768px){
                    width: calc((100% - 8px) / 2);
                }

                a {
                    width: 100%;
                    height: 100%;
                    overflow: hidden;

                    img {
                        object-fit: cover;
                        width: 100%;
                        height: 100%;
                        transform: scale(1);
                        transition: transform 0.4s;
                    }

                    &:hover {
                        img {
                            transform: scale(1.04);
                        }
                    }
                }
            }
        }

        a.instagram-link {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 16px;
            margin-top: 24px;
            text-decoration: underline;
            text-underline-offset: 2px;
            text-decoration-thickness: 0.8px;

            &::before {
                content: "";
                width: 30px;
                aspect-ratio: 1/1;
                background: url(../image/logo-instagram.svg) center center / contain no-repeat;
            }
        }
    }

    section.information {
        section.price {
            margin-top: 24px;

            h3.common {
                margin-top: 0;
            }

            a.btn-black {
                margin: 40px auto 0;

                @media(max-width:768px){
                    margin-top: 24px;
                }
            }
        }

        div.detail {
            max-width: 720px;
            margin-left: auto;
            margin-right: auto;

            a.detail-btn {
                position: relative;
                width: 100%;
                margin-top: 24px;
                border-radius: 0 56px 0 56px;
                background: linear-gradient(rgba(0,0,0,0.4),rgba(0,0,0,0.4)), url(../image/top-information.webp) center center / 100% no-repeat;
                color: #fff;
                background-size: 100%;
                transition: background-size 0.4s;
                overflow: hidden;

                &::before {
                    position: absolute;
                    content: "";
                    width: 24px;
                    aspect-ratio: 24 / 16;
                    right: 24px;
                    bottom: 24px;
                    background: url(../image/top-information-arrow.svg) center center / contain no-repeat;
                }

                &::after {
                    position: absolute;
                    content: "";
                    width: 0.5px;
                    height: 200px;
                    right: 40px;
                    bottom: -40px;
                    background-color: rgba(255, 255, 255, 0.8);
                    transform: rotate(45deg);
                }

                @media(max-width:424px){
                    border-radius: 0 40px 0 40px;
                    background: linear-gradient(rgba(0,0,0,0.4),rgba(0,0,0,0.4)), url(../image/top-information.webp) center center / cover no-repeat;
                }

                &:hover {
                    background-size: 104%;

                    @media(max-width:424px){
                        background-size: cover;
                    }
                }

                p.detail-text {
                    padding: 104px 24px;
                    box-sizing: border-box;
                    line-height: 1.6;
                    text-align: center;
                    font-size: 1.125rem;

                    @media(max-width:768px){
                        font-size: 1rem;
                    }

                    span {
                        display: inline-block;
                    }
                }

                p.btn-text {
                    position: absolute;
                    right: 56px;
                    bottom: 24px;

                    @media(max-width:768px){
                        font-size: 0.875rem;
                    }
                }
            }
        }
    }
}



/* ーーーーーーーーーー
メイン
ーーーーーーーーーー */

/* お料理 */
div#meal section.meal-main-section {
    position: relative;
    
    section {
        &.private-lounge {
            &::after {
                content: "";
                display: block;
                width: 24px;
                height: 40px;
                margin: 80px auto 0;
                background: url(../image/pattern-diamond.svg) center center / contain no-repeat;
            }

            div {
                &.header-img {
                    max-width: 1040px;
                    width: 100%;
                    margin: 0 auto;
                    display: flex;
                    flex-direction: column-reverse;

                    h3 {
                        color: #fff;
                        text-align: right;
                        font-size: 1.25rem;
                        margin-top: -56px;
                        margin-bottom: 56px;
                        padding-right: 44px;
                        font-family: "Montserrat", sans-serif;
                        font-size: 1.75rem;
                        letter-spacing: 0.2em;
                        background: no-repeat right center url(../image/triangle_left.svg);
                    }

                    img {
                        width: 100vw;
                        margin-left: calc((100vw - 100%) / -2);
                    }
                }

                &.flex {
                    display: flex;
                    justify-content: space-between;
                    flex-direction: row-reverse;
                    max-width: 1040px;
                    margin: 0 auto;

                    div {
                        &.text-area {
                            width: 100%;
                            min-width: 50%;
                            max-width: 656px;
                            box-sizing: border-box;
                            padding: 12px 0;
                            display: flex;
                            flex-direction: column;
                            justify-content: center;
                            margin-left: 44px;
                            line-height: 1.875;

                            p {
                                @media(max-width: 480px) {
                                    font-size: 0.875rem;
                                }

                                span {
                                    display: inline-block;
                                }
                            }
                        }

                        &.img-area img {
                            display: block;
                            max-width: 500px;
                            width: 100%;
                        }
                    }
                }
            }
        }

        &.wasabi {
            position: relative;
            margin-top: 80px;

            &::before {
                position: absolute;
                content: "";
                width: 100vw;
                height: 100%;
                top: 0;
                left: calc((100vw - 100%) / -2);
                background-color: var(--color-main);
                z-index: -1;
            }

            div {
                &.cover {
                    padding-top: 80px;

                    > div.flex {
                        margin: 0 auto;
                        display: flex;
                        justify-content: space-between;
                        width: 100%;
                    }

                    div {
                        &.flex div {
                            &.left-area div {
                                &.text-area {
                                    color: #fff;

                                    h3.common.white {
                                        margin-top: 0;
                                        white-space: nowrap;

                                        @media(max-width: 768px) {
                                            white-space: wrap;
                                        }

                                        span.dib {
                                            display: inline-block;
                                        }
                                    }

                                    p.explain {
                                        margin-top: 40px;
                                        line-height: 2;
                                    }
                                }

                                &.left-bottom-img {
                                    position: relative;

                                    &:before {
                                        content: "";
                                        display: block;
                                        position: absolute;
                                        left: 16px;
                                        top: 16px;
                                        width: 100%;
                                        height: 100%;
                                        background-image: url(../image/pattern-min.svg);
                                        border-top-right-radius: 52px;
                                        border-bottom-left-radius: 52px;
                                        z-index: 0;
                                    }

                                    img {
                                        display: block;
                                        width: 100%;
                                        margin-top: 40px;
                                        max-width: 1254px;
                                        border-top-right-radius: 52px;
                                        border-bottom-left-radius: 52px;
                                        position: relative;
                                        z-index: 1;
                                    }
                                }
                            }

                            &.right-img {
                                max-width: 492px;
                                max-height: 600px;
                                margin-left: 36px;
                                margin-top: auto;
                                position: relative;
                                width: 100%;
                                height: 100%;

                                &:before {
                                    content: "";
                                    display: block;
                                    position: absolute;
                                    left: 16px;
                                    top: 16px;
                                    width: 100%;
                                    height: 100%;
                                    background-image: url(../image/pattern-min.svg);
                                    border-top-left-radius: 52px;
                                    border-bottom-right-radius: 52px;
                                    z-index: 0;
                                }

                                img {
                                    object-fit: cover;
                                    width: 100%;
                                    height: 100%;
                                    max-height: 600px;
                                    position: relative;
                                    border-top-left-radius: 52px;
                                    border-bottom-right-radius: 52px;
                                }
                            }
                        }

                        &.times {
                            position: relative;
                            margin-top: 80px;

                            &::before {
                                position: absolute;
                                content: "";
                                width: 100vw;
                                height: 320px;
                                left: calc((100vw - 100%) / -2);
                                bottom: -120px;
                                background: url(../image/triangle_reverse.svg) top right -40px / contain no-repeat;
                                z-index: -1;
                            }

                            @media (max-width: 768px) {
                                &::before {
                                    display: none;
                                }
                            }

                            div.flex {
                                display: flex;
                                max-width: 786px;
                                margin: 0 auto;
                                justify-content: space-between;
                                gap: 32px;

                                div {
                                    &.left {
                                        width: 100%;
                                        box-sizing: border-box;
                                    }

                                    dl.common {
                                        margin-top: 20px;

                                        div {
                                            dt {
                                                width: 100%;
                                                box-sizing: border-box;
                                                max-width: 96px;
                                                border: solid 1px #fff;

                                                @media (max-width: 400px) {
                                                    max-width: 80px;
                                                }
                                            }

                                            dd {
                                                font-size: 1.25rem;

                                                @media (max-width: 768px) {
                                                    font-size: 1.125rem;
                                                }

                                                p span.small {
                                                    font-size: 0.875rem;
                                                }
                                            }
                                        }
                                    }

                                    &.right {
                                        width: 100%;
                                        box-sizing: border-box;
                                    }
                                }
                            }

                            dl.common {
                                &.single {
                                    max-width: 786px;
                                    margin: 40px auto 0;

                                    dt {
                                        width: 96px;
                                        border: solid 1px #fff;

                                        @media (max-width: 400px) {
                                            width: 80px;
                                        }
                                    }

                                    dd {
                                        display: flex;
                                        flex-direction: column;
                                        justify-content: center;

                                        span {
                                        }
                                    }
                                }
                            }

                            p.explain {
                                max-width: 786px;
                                margin-left: auto;
                                margin-right: auto;
                                text-align: center;
                                color: #fff;
                            }
                        }
                    }
                }

                &.reserve-meal {
                    position: relative;
                    margin-top: 80px;
                    text-align: center;
                    color: #fff;
                    box-sizing: border-box;
                    padding: 80px 0;

                    &::before {
                        position: absolute;
                        content: "";
                        width: 100vw;
                        height: 100%;
                        top: 0;
                        left: calc((100vw - 100%) / -2);
                        background: no-repeat center / cover url(../image/wasabi-reserve-cover.webp);
                        z-index: -1;
                    }

                    h4 {
                        font-family: "Montserrat", sans-serif;
                        font-size: 1.375rem;
                        letter-spacing: 0.2rem;
                    }

                    nav {
                        margin-top: 54px;

                        &:after {
                            content: "";
                            display: block;
                            width: 24px;
                            height: 40px;
                            right: 0;
                            margin: 36px auto 0;
                            background: url(../image/pattern-diamond-white.svg) center center / contain no-repeat;
                        }

                        ul {
                            display: flex;
                            justify-content: center;
                            gap: 64px;
                            font-size: 1.5rem;

                            li {
                                width: 100%;
                                max-width: 440px;

                                a {
                                    width: 100%;
                                    padding-top: 16px;
                                    padding-bottom: 16px;
                                    border: solid 1px #fff;
                                    overflow: hidden;

                                    @media(max-width: 480px) {
                                        font-size: 1.25rem;
                                    }

                                    span.dib {
                                        display: inline-block;
                                    }

                                    &::before {
                                        width: 32px;
                                        right: -16px;
                                        bottom: -16px;
                                    }

                                    span.br {
                                        display: block;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    p.supplement {
        width: fit-content;
        margin: 80px auto 0;
        margin-top: 40px;
        padding: 24px;
        box-sizing: border-box;
        border: solid 1px var(--color-main);
        line-height: 1.6;

        @media(max-width: 480px) {
            font-size: 0.875rem;
        }

        span {
            display: block;
        }
    }
}
    
@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.cover {
        padding-top: 80px;
        padding-bottom: 80px;
    }
}
  
@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.cover > div.flex {
        display: block;
    }
}

@media (max-width: 1069px) {
    div#meal section.meal-main-section section.wasabi div.cover div.flex div.left-area div.text-area {
        padding-left: 0px;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.cover div.flex div.left-area div.text-area p.explain {
        margin-top: 24px;
        line-height: 2;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.cover div.flex div.left-area div.text-area p.explain span {
        display: inline;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.cover div.flex div.left-area div.left-bottom-img img {
        margin-top: 24px;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.cover div.flex div.right-img {
        max-width: 320px;
        margin-left: 0;
        margin-top: 40px;
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.cover div.times {
        margin-top: 80px;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.cover div.times div.flex {
        display: block;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.cover div.times div.flex div.right {
        margin-top: 24px;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.reserve-meal {
        min-height: 0;
        padding: 104px 0;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.reserve-meal h4 {
        font-size: 1.25rem;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.wasabi div.reserve-meal nav ul {
        flex-direction: column;
        align-items: center;
        gap: 24px;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.private-lounge::after {
        margin-top: 40px;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.private-lounge div.header-img h3 {
        margin-right: 12px;
        font-size: 1.375rem;
        margin-top: -32px;
        margin-bottom: 32px;
        padding-right: 32px;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.private-lounge div.header-img img {
        aspect-ratio: 4 / 3;
        object-fit: cover;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.private-lounge div.flex {
        display: block;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.private-lounge div.flex div.text-area {
        margin-left: 0;
        padding: 18px 0 40px;
        text-align: center;
    }
}

@media (max-width: 768px) {
    div#meal section.meal-main-section section.private-lounge div.flex div.img-area {
        padding: 0;
    }
}

@media (max-width: 415px) {
    div#meal section.meal-main-section section.private-lounge div.header-img h3 {
        margin-top: -56px;
    }
}


/* 客室 */
div#room {
    position: relative;

    div.about {
        position: relative;
        padding: 120px 0;
        box-sizing: border-box;

        &::before {
            position: absolute;
            content: "";
            width: 100vw;
            height: 100%;
            top: 0;
            left: calc((100vw - 100%) / -2);
            background-color: var(--color-main);
            z-index: -1;
        }

        &::after {
            position: absolute;
            content: "";
            width: 100vw;
            height: 200px;
            top: -96px;
            left: calc((100vw - 100%) / -2);
            background: url(../image/pattern-three-triangle-white.svg) top left -120px / contain no-repeat;
            z-index: -1;
        }

        @media(max-width: 768px) {
            gap: 16px;
            padding: 80px 0;
        }

        @media(max-width: 560px) {
            padding: 64px 0 120px;
        }

        @media(max-width: 480px) {
            padding: 64px 0;
        }

        p.about-text {
            color: #fff;
            font-family: "Montserrat", sans-serif;
            line-height: 2;
            letter-spacing: 0.2rem;
            font-size: 1.5rem;

            @media(max-width: 768px) {
                font-size: 1.25rem;
            }

            @media(max-width: 480px) {
                max-width: 324px;
                margin: 0 auto;
                letter-spacing: 0.08rem;
            }

            span {
                display: block;
            }

            span.wrap {
                display: inline-block;

                @media(max-width: 560px) {
                    display: block;
                }
            }
        }

        ul.about-img-list {
            display: flex;
            flex-direction: row-reverse;
            gap: 16px;
            width: 100%;
            margin-top: -56px;
            padding-bottom: 80px;
            box-sizing: border-box;

            @media(max-width: 768px) {
                gap: 16px;
            }

            @media(max-width: 640px) {
                gap: 8px;
            }

            @media(max-width: 560px) {
                margin-top: -80px;
            }

            @media(max-width: 480px) {
                flex-direction: column;
                gap: 16px;
                max-width: 280px;
                margin-top: -80px;
                margin-left: auto;
                margin-right: auto;
                padding-bottom: 24px;
            }

            li {
                width: calc((100% - 32px) / 3);
                aspect-ratio: 344 / 520;
                border-radius: 56px 0 56px 0;
                overflow: hidden;

                @media(max-width: 768px) {
                    border-radius: 40px 0 40px 0;
                }

                @media(max-width: 640px) {
                    width: calc((100% - 16px) / 3);
                    border-radius: 32px 0 32px 0;
                }

                @media(max-width: 480px) {
                    width: 100%;
                }

                &:nth-child(2),
                &:nth-child(3) {
                    transform: translateY(40px);

                    @media(max-width: 560px) {
                        transform: translateY(64px);
                    }

                    @media(max-width: 480px) {
                        transform: translateY(0);
                    }
                }

                &:nth-child(3) {
                    transform: translateY(80px);

                    @media(max-width: 560px) {
                        transform: translateY(128px);
                    }
                    
                    @media(max-width: 480px) {
                        transform: translateY(0);
                    }
                }

                img {
                    object-fit: cover;
                    width: 100%;
                    height: 100%;
                }
            }
        }
    }

    section.detail {
        position: relative;

        &::before {
            position: absolute;
            content: "";
            width: 100vw;
            height: 200px;
            top: -160px;
            left: calc((100vw - 100%) / -2);
            background: url(../image/pattern-three-triangle-white.svg) top right -40px / contain no-repeat;
            transform: scale(1,-1);
            z-index: 0;
        }

        @media(max-width: 480px) {
            &::before {
                top: -200px;
            }
        }

        section.detail-content {
            p.explain {
                margin-top: 0;
            }
    
            dl.common {
                dt {
                    width: 114px;
                }

                dd {
                    max-width: 748px;
                }
            }

            &:nth-child(2),
            &:nth-child(4) {
                position: relative;
                display: flex;
                flex-direction: column;
                gap: 24px;

                p.explain {
                    span {
                        display: inline-block;

                        @media(max-width: 480px) {
                            display: inline;
                        }
                    }
                }
            }

            &:nth-child(2) {
                margin-top: 32px;

                @media(max-width: 880px) {
                    padding-right: 0;

                    &::before {
                        display: none;
                    }
                }
            }

            &:nth-child(3),
            &:nth-child(4) {
                margin-top: 80px;
            }

            &:nth-child(3) {
                p.explain {
                    margin-top: 24px;

                    span {
                        display: inline-block;

                        @media(max-width: 480px) {
                            display: inline;
                        }
                    }
                }

                ul.room-list {
                    display: flex;
                    gap: 24px;
                    margin-top: 24px;

                    @media(max-width: 768px) {
                        gap: 16px;
                    }

                    @media(max-width: 640px) {
                        flex-direction: column;
                        gap: 32px;
                    }

                    li {
                        display: flex;
                        flex-direction: column;
                        gap: 16px;
                        width: calc((100% - 24px) / 2);

                        @media(max-width: 768px) {
                            width: calc((100% - 16px) / 2);
                        }

                        @media(max-width: 640px) {
                            gap: 8px;
                            width: 100%;
                        }

                        img {
                            object-fit: cover;
                            width: 100%;
                            aspect-ratio: 100 / 64;
                        }
                    }
                }
            }

            &:nth-child(4) {
                display: flex;
                flex-direction: row;
                align-items: center;

                @media(max-width: 768px) {
                    flex-direction: column;
                }

                div.content {
                    display: flex;
                    flex-direction: column;
                    gap: 24px;

                    p.explain {
                        span {
                            display: inline-block;

                            span.wrap {
                                display: inline;
                            }
                        }
                    }
                }

                img {
                    max-width: 560px;
                    aspect-ratio: 100 / 64;

                    @media(max-width: 1080px) {
                        width: 480px;
                    }

                    @media(max-width: 880px) {
                        width: 400px;
                    }

                    @media(max-width: 768px) {
                        width: 100%;
                        max-width: 100%;
                    }
                }
            }

            ul.img-list {
                display: flex;
                gap: 24px;

                @media(max-width: 768px) {
                    gap: 16px;
                }

                @media(max-width: 640px) {
                    flex-wrap: wrap;
                    gap: 24px;
                }

                li {
                    width: calc((100% - 24px) / 2);

                    @media(max-width: 768px) {
                        width: calc((100% - 16px) / 2);
                    }

                    @media(max-width: 640px) {
                        width: 100%;
                    }

                    img {
                        object-fit: cover;
                        width: 100%;
                        aspect-ratio: 100 / 64;
                    }
                }
            }
        }
    }
}


/* お風呂 */
div#baths {
    position: relative;

    div.slider-img-cover {
        div.text-area {
            p {
                margin-left: 200px;

                @media(max-width: 768px) {
                    margin-left: 0;
                }
            }
        }
    }

  div.about {
        position: relative;
        padding: 120px 0;
        box-sizing: border-box;

        &::before {
            position: absolute;
            content: "";
            width: 100vw;
            height: 100%;
            top: 0;
            left: calc((100vw - 100%) / -2);
            background-color: var(--color-main);
            z-index: -1;
        }

        &::after {
            position: absolute;
            content: "";
            width: 100vw;
            height: 200px;
            top: -40px;
            left: calc((100vw - 100%) / -2);
            background: url(../image/pattern-three-triangle-white.svg) top left -120px / contain no-repeat;
            z-index: -1;
        }

        @media(max-width: 768px) {
            padding: 104px 0;
        }

        div.about-content {
            position: relative;
            display: flex;
            flex-direction: column;
            justify-content: center;
            flex-wrap: wrap;
            gap: 24px;
            width: 100%;
            height: 400px;
            margin:  0 auto;

            @media(max-width: 950px) {
                gap: 16px;
            }

            @media(max-width: 768px) {
                align-items: center;  
                height: auto;
            }
    
            p {
                flex-shrink: 1;
                width: calc(100% - (600px + 24px));
                color: #fff;

                @media(max-width: 950px) {
                    width: calc(100% - (480px + 16px));
                }

                @media(max-width: 868px) {
                    width: 340px;
                }

                @media(max-width: 768px) {
                    width: 100%;
                    max-width: 640px;
                }
            }
    
            p.about-text {
                font-family: "Montserrat", sans-serif;
                line-height: 1.4;
                letter-spacing: 0.2rem;
                font-size: 1.5rem;

                @media(max-width: 768px) {
                    font-size: 1.25rem;
                }

                span {
                    display: block;

                    @media(max-width: 768px) {
                        display: inline;
                    }
                }
            }
    
            p.explain {
                margin-top: 0;

                span {
                }
            }

            div.about-img {
                position: relative;
                flex-shrink: 1;
                width: 100%;
                max-width: 600px;
                height: fit-content;

                &::before {
                    position: absolute;
                    content: "";
                    width: 100%;
                    height: 100%;
                    top: 16px;
                    left: 16px;
                    background-image: url(../image/pattern-min.svg);
                    border-top-right-radius: 52px;
                    border-bottom-left-radius: 52px;
                    border-radius: 0 56px 0 56px;
                    z-index: -1;
                }

                @media(max-width: 950px) {
                    max-width: 480px;
                }

                @media(max-width: 868px) {
                    width: calc(100% - (340px + 16px));
                }

                @media(max-width: 768px) {
                    &::before {
                        border-radius: 0 40px 0 40px;
                    }
                }

                @media(max-width: 768px) {
                    width: 100%;
                    max-width: 640px;
                }

                p {
                    position: absolute;
                    inset: 0;
                    text-indent: 100%;
                    overflow: hidden;
                    white-space: nowrap;
                }

                img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    border-radius: 0 56px 0 56px;

                    @media(max-width: 768px) {
                        border-radius: 0 40px 0 40px;
                    }
                }
            }
    
            &.reverse {
                margin-top: 120px;

                @media(max-width: 950px) {
                    margin-top: 80px;
                }

                p.about-text {
                    order: 2;

                    @media(max-width: 768px) {
                        order: 1;
                    }
                }

                p.explain {
                    order: 3;

                    @media(max-width: 768px) {
                        order: 2;
                    }
                }

                div.about-img {
                    order: 1;

                    &::before {
                        top: 16px;
                        left: -16px;
                        border-radius: 56px 0 56px 0;
                    }

                    @media(max-width: 768px) {
                        order: 3;
                    }

                    img {
                        border-radius: 56px 0 56px 0;

                        @media(max-width: 768px) {
                            border-radius: 40px 0 40px 0;
                        }
                    }
                }
            }
        }
  }

    section.detail {
        position: relative;

        &::before {
            position: absolute;
            content: "";
            width: 100vw;
            height: 200px;
            top: -240px;
            left: calc((100vw - 100%) / -2);
            background: url(../image/pattern-three-triangle-white.svg) top right -40px / contain no-repeat;
            transform: scale(1,-1);
            z-index: -1;
        }

        div.detail-normal {
            position: relative;
            margin-top: 64px;
            padding-left: 440px;
            box-sizing: border-box;

            &::before {
                position: absolute;
                content: "";
                max-width: 400px;
                height: 100%;
                aspect-ratio: 400 / 248;
                inset: 0;
                margin: auto 0;
                background: url(../image/hotspring-detail01.webp) center center / cover no-repeat;
            }

            @media(max-width: 864px) {
                width: 480px;
                margin: 40px auto 0;
                padding-left: 0;
                padding-bottom: 360px;

                &::before {
                    width: 100%;
                    max-width: 100%;
                    height: 320px;
                    aspect-ratio: 0;
                    top: auto;
                }
            }

            @media(max-width: 640px) {
                width: 100%;
                padding-bottom: calc(64vw + 24px);

                &::before {
                    height: 64vw;
                }
            }

            p.explain {
                margin-top: 24px;

                span.wrap {
                    display: inline-block;

                    @media(max-width: 864px) {
                        display: inline;
                    }
                }
            }

            dl {
                margin-top: 24px;

                dt {
                    border: solid 1px var(--color-main);
                    background-color: var(--color-main);
                }
            }

            a.btn-black {
                margin-top: 24px;
            }
        }

        div.detail-option {
            position: relative;
            margin-top: 80px;
            background-color: var(--color-main);
            padding: 80px 320px 80px 40px;
            box-sizing: border-box;
            text-align: center;

            &::before {
                position: absolute;
                content: "";
                width: 280px;
                height: 100%;
                top: 0;
                right: 0;
                background: url(../image/hotspring-detail02.webp) center center / cover no-repeat;
            }

            @media(max-width: 680px) {
                padding: 80px 280px 80px 24px;

                &::before {
                    width: 256px;
                }
            }

            @media(max-width: 640px) {
                padding: 80px 24px calc(100vw - 32px + 80px) 24px;

                &::before {
                    width: 100%;
                    height: calc(100vw - 32px);
                    top: auto;
                    bottom: 0;
                    background-position: bottom center;
                }
            }

            p {
                color: #fff;

                span {
                    display: inline-block;
                }
            }

            p.explain {
                margin-top: 24px;

                &:last-child {
                    position: relative;
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    gap: 24px;

                    &::before {
                        content: "";
                        width: 24px;
                        height: 40px;
                        margin: 0 auto;
                        background: url(../image/pattern-diamond-white.svg) center center / contain no-repeat;
                    }
                }

                span {
                    @media(max-width: 400px) {
                        display: inline;
                    }
                }
            }

            a.btn-white {
                margin: 24px auto;
            }
        }
    }
}



/* ーーーーーーーーーー
ほか
ーーーーーーーーーー */
/* 旅館詳細 */
div#information{
    div.cover02{
        &::before {
            background-image: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(../image/information-cover.webp);
        }
    }

    #price,
    #info {
        scroll-margin-top: 200px;
    }

    section.price{
        position: relative;

        &::after{
            position: absolute;
            content: '';
            width: 100vw;
            height: 224px;
            left: calc((100vw - 100%) / -2);
            bottom: -170px;
            background: url(../image/pattern-three-triangle.svg) center left -5vw / contain no-repeat;
            position: absolute;
        }

        @media(max-width:768px){
            &::after{
                height: 160px;
                bottom: -216px;
            }
        }

        @media(max-width:480px){
            &::after{
                background-position: center right -25vw ;
            }
        }

        div.supplement-wrapper{
            display: flex;
            flex-direction: column;
            gap: 4px;
            margin-top: 16px;

            p.supplement{
                display: flex;
                gap: 4px;
                line-height: 1.2;
                font-size: 0.875rem;
            }
        }
    
        a{
            margin:  40px auto 0;
        }
    }

    section.info{
        margin-top: 120px;

        @media(max-width:768px){
            margin-top: 120px;
        }

        dl{
            margin-top: 56px;

            @media(max-width:768px){
                margin-top: 40px;
            }

            div#item {
                scroll-margin-top: 120px;
            }

            div.item{
                padding: 24px 0;
                border-bottom: solid 1px var(--color-main);
                display: flex;
                justify-content: space-between;
                align-items: center;

                &:first-child{
                    border-top: solid 1px var(--color-main);
                }

                @media(max-width:768px){
                    padding: 32px 0;
                    display: block;
                }

                dt{
                    width: 144px;
                    text-align: center;
                    line-height: 1.2;
                    padding-right: 64px;
                    font-family: "Montserrat", sans-serif;

                    @media(max-width:768px){
                        width: 100%;
                        padding: 0;
                    }
                }

                dd{
                    width: 100%;
                    max-width: 720px;

                    @media(max-width:768px){
                        margin-top: 32px;
                        font-size: 0.875rem;
                    }

                    &.spec{
                        ul{
                            display: flex;
                            flex-wrap: wrap;
                            gap: 16px 40px;

                            @media(max-width:480px){
                                display: block;
                            }

                            li{
                                display: flex;
                                flex-wrap: wrap;
                                line-height: 1.4;

                                &::after{
                                    content: '／';
                                    position: relative;
                                    right: -20px;
                                }

                                &:last-child{
                                    &::after{
                                        content: none;
                                    }
                                }

                                @media(max-width:480px){
                                    margin-top: 12px;

                                    &::after{
                                        content: none;
                                    }

                                    &:first-child{
                                        margin-top: 0;
                                    }
                                }
                            }
                        }
                    }

                    &.guide{
                        ul.time{
                            display: flex;
                            flex-wrap: wrap;
                            gap: 16px 40px;

                            @media(max-width:480px){
                                display: block;
                            }

                            li{
                                display: flex;
                                flex-wrap: wrap;
                                line-height: 1.4;

                                &::after{
                                    content: '／';
                                    position: relative;
                                    right: -20px;
                                }

                                &:last-child{
                                    &::after{
                                        content: none;
                                    }
                                }

                                @media(max-width:480px){
                                    margin-top: 12px;

                                    &::after{
                                        content: none;
                                    }

                                    &:first-child{
                                        margin-top: 0;
                                    }
                                }
                            }
                        }

                        p.supplement{
                            display: flex;
                            gap: 4px;
                            margin-top: 16px;
                            line-height: 1.2;
                        }

                        ul.detail{
                            margin-top: 16px;
                            
                            li{
                                display: flex;
                                flex-wrap: wrap;
                                padding: 12px;
                                line-height: 1.4;

                                &:nth-child(odd){
                                    background-color: var(--color-pink);
                                }
                            }
                        }
                    }

                    &.amenity{
                        ul{
                            display: flex;
                            flex-wrap: wrap;
                            gap: 24px;

                            @media(max-width:768px){
                                width: 600px;
                                margin: 0 auto;
                                gap: 16px ;
                            }

                            @media(max-width:668px){
                                width: 446px;
                            }

                            @media(max-width:468px){
                                width: 292px;
                            }

                            li{
                                width: 138px;
                            }
                        }
                    }

                    &.option{
                        display: flex;
                        flex-direction: column;
                        gap: 12px;
                        
                        p{
                            line-height: 1.2;

                            @media(max-width:768px){
                                text-align: center;
                            }
                        }
                    }
                }
            } 
        }
    }

    section.access{
        margin-top: 160px;
        position: relative;

        @media(max-width:960px){
            &::before{
                top: -80px;
            }
        }

        @media(max-width:768px){
            margin-top: 120px;

            &::before{
                height: 160px;
            }
        }

        @media(max-width:480px){
            &::before{
                background-position: center left -25vw ;
            }
        }

        div.access-wrapper{
            margin-left: auto;
            padding: 16px 0 ;
            position: relative;
            box-sizing: border-box;

            &::before {
                position: absolute;
                content: "";
                height: 100%;
                width: 50vw;
                top: 0;
                left: calc((100vw - 100%) / -2);
                background: linear-gradient(to left, #fff, transparent 70%), url(../image/information-access.webp) center center / cover no-repeat;
                z-index: -1;
            }
    
            @media(max-width:880px){
                display: flex;
                flex-direction: column;
                align-items: center;
                padding-right: 0;
                padding-top: 360px;
    
                &::before {
                    width: 100vw;
                    height: 100%;
                    max-height: 320px;
                    top: 0;
                    left: -16px;
                    bottom: auto;
                    background: url(../image/information-access.webp) center center / cover no-repeat;
                }
            }

            div.access-contents{
                width: 100%;
                max-width: 468px;
                margin-left: auto;

                @media(max-width:880px){
                    max-width: 100%;
                }

                h3.common{
                    margin-top: 0;
                }
    
                dl.spot{
                    margin-top: 56px;
                    padding: 40px 0;
                    border-top: solid 1px var(--color-main);
                    border-bottom: solid 1px var(--color-main);
                    display: flex;
                    align-items: center;
    
                    @media(max-width:1200px){
                        margin-top: 40px;
                        padding: 24px 0;
                    }
    
                    dt{
                        width: 144px;
                        text-align: center;
                        font-family: "Montserrat", sans-serif;
    
                        @media(max-width:1200px){
                            width: 120px;
                        }

                        @media(max-width:768px){
                            text-align: left;
                        }
                    }

                    dd {
                        line-height: 1.4;

                        @media(max-width:480px){
                            font-size: 0.875rem;
                        }
                    }
                }
    
                dl.traffic{
                    dt{
                        margin-top: 32px;
                        width: 148px;
                        padding: 8px 0 8px 8px;  /* 見た目の余白を揃える */
                        display: flex;
                        font-family: "Montserrat", sans-serif;
                        justify-content: center;
                        align-items: center;
                        color: #fff;
                        background-color: var(--color-black);
                    }

                    dd{
                        margin-top: 8px;
                        line-height: 1.75;

                        @media(max-width:480px){
                            font-size: 0.875rem;
                        }
    
                        span{
                            display: inline-block;
                        }
                    }
                }

                p.supplement{
                    display: flex;
                    gap: 4px;
                    line-height: 1.2;
                }
            }
        }

        iframe{
            margin-top: 80px;
            width: 100%;

            @media(max-width:768px){
                margin-top: 40px;
            }
        }
    }
}

/* 周辺観光 */
div#sightseeing{
    @media(max-width:768px){
        padding-bottom: 120px;
    }

    div.cover02{
        &::before {
            background-image: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)), url(../image/sightseeing-cover.webp);
        }
    }

    section{
        div.introduction{
            padding: 120px 0;
            background: url(../image/pattern-kagoshima.svg) center center / 496px 400px no-repeat;

            @media(max-width:768px){
                padding: 80px 0;
                background-size: 400px 360px;
            }

            p.introduction-text{
                font-size: 1.375rem;
                line-height: 1.75;
                letter-spacing: 0.08em;
                text-align: center;

                @media(max-width:768px){
                    font-size: 1.125rem;
                }

                @media(max-width:375px){
                    font-size: 1rem;
                }

                span{
                    display: block;

                    @media(max-width:560px){
                        display: inline;
                    }

                    span.wrap {
                        display: inline-block;

                        @media(max-width:560px){
                            display: inline;
                        }
                    }
                }

                span.big {
                    display: flex;
                    flex-direction: column;
                    align-items: center;
                    position: relative;
                    margin-top: 16px;
                    font-size: 2.5rem;

                    &::before {
                        content: "";
                        width: 24px;
                        height: 40px;
                        margin-bottom: 8px;
                        background: url(../image/pattern-diamond.svg) center center / contain no-repeat;
                    }

                    @media(max-width:768px){
                        font-size: 1.75rem;
                    }
    
                    @media(max-width:375px){
                        font-size: 1.5rem;
                    }

                    span.wrap {
                        display: inline-block;

                        @media(max-width:480px){
                            display: inline;
                        }
                    }
                }
            }
        }

        div.slider-list-wrapper{
            padding: 16px 0;
            border-top: 1px solid var(--color-black);
            border-bottom: 1px solid var(--color-black);
            position: relative;
            width: 100vw;
            /* height: 320px; */
            margin-left: calc((100vw - 100%) / -2);
            box-sizing: border-box;
            overflow: hidden;

            @media(max-width:640px){
                height: fit-content;
            }
            
            ul.slider-list{
                /* width: 8208px; */
                width: calc(400px * 18);
                animation: slider 30s linear infinite;

                @media(max-width:640px){
                    /* width: 1800vw; */
                    width: calc(100vw * 18);
                }

                li{
                    /* width: 456px; */
                    width: 400px;
                    height: 100%;

                    @media(max-width:640px){
                        width: 100vw;
                        height: fit-content;
                    }

                    a{
                        /* display: flex;
                        justify-content: space-around; */

                        p{
                            font-size: 1.25rem;
                            /* writing-mode: vertical-rl;
                            -ms-writing-mode: tb-rl; */
                            /* padding: 0 24px; */

                            @media(max-width:640px){
                                font-size: 1.125rem;
                                /* padding: 0 3vw; */
                                display: flex;
                                align-items: center;
                            }

                            @media(max-width:480px){
                                font-size: 1rem;
                            }
                        }
    
                        img{
                            width: 100%;
                            /* max-width: 382px; */
                            max-width: 382px;
                            margin-top: 8px;
                            border-radius: 4px;

                            @media(max-width:640px){
                                max-width: 96vw;
                                height: 100%;
                            }
                        }
                    }
                }
            }
        }

        div.sightseeing-list{
            dl{
                margin-top: 32px;
                font-family: "Montserrat", sans-serif;
                display: flex;
                flex-wrap: wrap;
                justify-content: space-between;
                gap: 48px 0;

                div{
                    width: calc((100% - 48px) / 3);
                    display: flex;
                    flex-direction: column;
                    scroll-margin-top: 104px;

                    @media(max-width:768px){
                        width: calc((100% - 24px) / 2);
                        scroll-margin-top: 88px;
                    }

                    @media(max-width:480px){
                        width: 100%;
                    }

                    dt{
                        order: 2;
                        margin-top: 16px;
                        font-size: 1.375rem;
                        line-height: 1.2;

                        @media(max-width:768px){
                            font-size: 1.125rem;
                        }
                    }

                    dd.explain{
                        order: 3;
                        margin-top: 16px;
                        line-height: 1.4;
                    }

                    dd.image{
                        order: 1;

                        img{
                            width: 100%;
                            border-radius: 4px;
                        }
                    }

                    dd.link{
                        order: 4;
                        margin-top: 16px;

                        a{
                            text-decoration: underline;
                            position: relative;
                            width: fit-content;

                            &::after{
                                content: '>';
                                position: absolute;
                                right: -12px;
                            }
                        }
                    }
                }
            }
        }
    }
}


/* アクティビティ */
div#activity {
    div.cover02::before {
        background-image: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(../image/activity_header_back.webp);
    }

    section.event {
        margin-top: 64px;
    }

    h3 {
        position: relative;
        padding: 0 152px;
        font-size: 2rem;
        letter-spacing: 0.2em;
        text-align: center;
        line-height: 1.5;

        &::before, &::after {
            position: absolute;
            content: '';
            flex-grow: 1;
            width: 152px;
            height: 1px;
            background-color: var(--color-black);
            top: 0;
            bottom: 0;
            margin: auto 0;
        }

        @media (max-width: 768px) {
            font-size: 1.75rem;
            padding: 0 40px;

            &::before, &::after {
                width: 40px;
            }
        }

        @media (max-width: 480px) {
            padding: 0 24px;
            font-size: 1.5rem;

            &::before, &::after {
                width: 20px;
            }
        }

        &.second {
            padding: 0 192px;

            &::before, &::after {
                width: 192px;
            }

            @media (max-width: 800px) {
                padding: 0 40px;

                &::before, &::after {
                    width: 40px;
                }
            }

            @media (max-width: 768px) {
            }

            @media (max-width: 480px) {
                padding: 0 24px;

                &::before, &::after {
                    width: 20px;
                }
            }
        }

        &::before {
            left: 0;
        }
        &::after {
            right: 0;
        }

        span {
            display: inline-block;
        }
    }

    section {
        &.event {
            ul.img-list {
                display: flex;
                margin-top: 40px;
                gap: 5px;

                @media (max-width: 768px) {
                    flex-wrap: wrap;
                    max-width: 520px;
                    margin: 40px auto 0;
                }

                @media (max-width: 640px) {
                    max-width: 100%;
                }

                li {
                    @media (max-width: 768px) {
                        width: calc((100% - 5px) / 2);
                    }
                }

                li img {
                    display: block;
                    width: 100%;
                }
            }

            p.explain {
                text-align: center;

                &:after {
                    content: "";
                    display: block;
                    width: 24px;
                    height: 40px;
                    margin: 44px auto 0;
                    background: url(../image/pattern-diamond.svg) center center / contain no-repeat;
                }

                @media (max-width: 480px) {
                    text-align: start;
                }

                span.db {
                    display: block;
                }

                span.wrap {
                    display: inline-block;

                    @media (max-width: 640px) {
                        display: inline;
                    }
                }
            }
        }

        &.experience {
            margin-top: 104px;
            @media (max-width: 480px) {
                margin-top: 56px;
            }

            div.img-area {
                position: relative;
                margin-top: 64px;

                @media (max-width: 480px) {
                    margin-top: 40px;
                }

                p.catch {
                    position: absolute;
                    left: 0;
                    top: 0;
                    padding-left: 56px;
                    padding-top: 56px;
                    z-index: 1;
                    line-height: 2.5;
                    color: #fff;
                    letter-spacing: 0.02em;

                    @media (max-width: 786px) {
                        position: static;
                        padding: 0;
                        color: var(--color-black);
                        line-height: 2;
                        text-align: center;
                    }

                    @media (max-width: 480px) {
                        font-size: 0.875rem;
                    }

                    span.db {
                        display: block;
                    }
                }

                dl {
                    display: flex;
                    flex-wrap: wrap;
                    gap: 4px;

                    @media (max-width: 786px) {
                        flex-wrap: wrap;
                        margin-top: 32px;
                    }

                    div {
                        position: relative;
                        width: calc(50% - 2px);
                        position: relative;

                        &::before {
                            position: absolute;
                            content: "";
                            width: 8px;
                            aspect-ratio: 1/1;
                            right: 16px;
                            bottom: 18px;
                            border-top: solid 1px #fff;
                            border-left: solid 1px #fff;
                            color: #fff;
                            transform: rotate(45deg);
                        }

                        @media (max-width: 640px) {
                            width: 100%;
                            aspect-ratio: 100 / 64;
                        }

                        &:first-child {
                            width: 100%;
                        }

                        dt {
                            position: absolute;
                            right: 40px;
                            bottom: 16px;
                            font-family: "Montserrat", sans-serif;
                            color: #fff;
                            text-align: right;
                            line-height: 1.25;
                            z-index: 2;

                            @media (max-width: 480px) {
                                bottom: 12px;
                            }

                            span {
                                &.dib {
                                    display: inline-block;    
                                }

                                &.dnsp {
                                    @media (max-width: 480px) {
                                        display: none;
                                    }
                                }
                            }
                        }

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

                        dd img {
                            object-fit: cover;
                            display: block;
                            width: 100%;
                            height: 100%;
                        }
                    }
                }
            }

            section.detail-info {
                margin: 64px auto 0;
                max-width: 640px;

                @media (max-width: 480px) {
                    margin-top: 40px;
                }

                dl.common {
                    margin-top: 16px;

                    div {
                        dt {
                            width: 100%;
                            max-width: 148px;
                        }

                        dd {
                            text-align: left;

                            ul {
                                li {
                                    display: flex;
                                    gap: 4px;
                                }
                            }

                            p {
                                display: flex;
                                gap: 4px;
                            }
                        }
                    }
                }
            }

            p.explain {
                margin-top: 64px;
                text-align: center;
                line-height: 2;

                @media (max-width: 480px) {
                    margin-top: 32px;
                    text-align: start;
                }

                span.db {
                    display: block;
                }
            }
        }
    }
}



/* 別邸 */
div#villa{
    div.cover02{
        &::before {
            background-image: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(../image/villa-cover.webp);
        }
    }

    section.summary{
        margin-top: 64px;

        h3{
            font-size: 2rem;
            letter-spacing: 0.45em;
            text-align: center;

            display: flex; 
            align-items: center; 
            justify-content: center;

            &::before,
            &::after{
                content: '';
                flex-grow: 1; 
                height: 1px; 
                background-color: var(--color-black);
            }

            @media(max-width:768px){
                font-size: 1.75rem;
            }

            @media(max-width:640px){
                position: relative;
                flex-direction: column;

                &::before,
                &::after{
                    position: absolute;
                    width: calc((100% - 372px) / 2);
                    top: 0;
                    bottom: 0;
                    margin: auto 0;
                }
                &::before {
                    left: 0;
                }
                &::after {
                    right: 0;
                }
            }

            @media(max-width:480px){
                letter-spacing: 0.2em;
                font-size: 1.5rem;

                &::before,
                &::after{
                    width: calc((100% - 240px) / 2);
                }
            }

            span{
                display: inline;
                padding: 0 40px;

                @media(max-width:768px){
                    padding: 0 32px;
                }

                @media(max-width:640px){
                    display: block;
                    padding: 0;
                }

                /* @media(max-width:480px){
                    padding: 0 20px;
                } */
                
                &:first-child {
                    padding-right: 16px;

                    @media(max-width:640px){
                        padding-right: 0;
                    }
                }
                &:last-child {
                    padding-left: 0;
                }
            }
        }

        div.content-top,
        div.content-bottom{
            margin-top: 56px;
            display: flex;
            align-items: center;
            gap: 16px;

            @media(max-width:916px){
                flex-direction: column-reverse;
            }

            @media(max-width:704px){
                gap: 24px;
            }

            @media(max-width:600px){
                flex-direction: column-reverse;
                align-items: center;
            }

            img{
                flex-shrink: 0;
                width: 100%;
                /* max-width: 800px; */
                max-width: 640px;
                height: fit-content;
                min-width: 0;

                @media(max-width:980px){
                    max-width: 480px;
                }

                @media(max-width:916px){
                    max-width: 800px;
                }
            }

            p{
                max-width: 800px;
                font-size: 1rem;
                /* writing-mode: vertical-rl;
                -ms-writing-mode: tb-rl; */
                line-height: 3;
                /* padding: 0 48px; */

                /* @media(max-width:1200px){
                    font-size: 1.25rem;
                } */

                @media(max-width:880px){
                    font-size: 1.125rem;
                    line-height: 2.5;
                    /* padding: 0 24px; */
                }

                @media(max-width:704px){
                    font-size: 1rem;
                    /* padding: 0; */
                }

                @media(max-width:600px){
                    /* font-size: 1.125rem; */
                    line-height: 2;
                }

                span {
                    display: inline-block;
                }

                span.db{
                    display: block;

                    span.num{
                        text-combine-upright: all;
                        -ms-text-combine-horizontal: all;
                        -webkit-text-combine: horizontal;
                        font-family: "Noto Serif JP", serif;
                    }
                }

                span.db-sp{
                    @media(max-width:600px){
                        display: block;
                    }

                    @media(max-width:480px){
                        display: inline;
                    }
                }
            }
        }

        div.content-top{
            flex-direction: row-reverse;

            @media(max-width:916px){
                flex-direction: column-reverse;
            }

            @media(max-width:600px){
                flex-direction: column-reverse;
            }
        }

        div.content-bottom{
            position: relative;

            &::after{
                content: '';
                display: block;
                width: 604px;
                height: 888px;
                background: url(../image/pattern-bamboo.svg) center / contain no-repeat;
                position: absolute;
                bottom: -288px;
                left: -88px;
                z-index: -1;
            }

            @media(max-width:768px){

                &::after{
                    width: 520px;
                    height: auto;
                    aspect-ratio: 604 / 888;
                }
            }
            @media(max-width:480px){

                &::after{
                    /* width: 440px; */
                    width: calc(100vw + 64px);
                    bottom: -216px;
                }
            }
        }
    }

    section.gallery{
        margin-top: 200px;

        @media(max-width:768px){
            margin-top: 120px;
        }

        ul{
            margin-top: 32px;
            display: flex;
            gap: 16px;
            flex-wrap: wrap;

            @media(max-width:400px){
                gap: 8px;
            }

            li{
                width: calc((100% - 16px) / 2);
                aspect-ratio: 100 / 64;
                overflow: hidden;

                @media(max-width:480px){
                    width: 100%;
                }

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

        a{
            margin: 80px auto 0;
        }
    }
}


/* ーーーーーーーーーー
お知らせ関連
ーーーーーーーーーー */
div#news {
    position: relative;
    padding: 0 40px;

    &::before {
        position: absolute;
        content: "";
        width: 100vw;
        height: calc(100% + 248px);
        top: 0;
        left: calc((100vw - 100%) / -2);
        background-color: var(--color-pink);
        z-index: -1;
    }

    @media(max-width:768px){
        padding: 0 20px;

        &::before {
            height: calc(100% + 200px);
        }
    }

    @media(max-width:480px){
        padding: 0;
    }

    div.cover02{
        &::before {
            background-image: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(../image/news-cover.webp);
        }
    }

    p.explain {
        max-width: 960px;
        margin: 0 auto;
        padding: 80px 16px;
        box-sizing: border-box;
        background-color: #fff;
        text-align: center;
        line-height: 1.6;

        @media(max-width:768px){
            padding: 64px 0;
        }

        @media(max-width:480px){
            position: relative;

            &::before {
                position: absolute;
                content: "";
                width: 100vw;
                height: 100%;
                top: 0;
                left: calc((100vw - 100%) / -2);
                background-color: #fff;
                z-index: -1;
            }
        }

        span.wrap {
            display: inline-block;
        }
    }

    ul.news-list {
        width: 100%;
        max-width: 960px;
        margin: 0 auto;
        padding: 0 40px 80px;
        box-sizing: border-box;
        background-color: #fff;
        border-radius: 0 0 56px 56px;

        @media(max-width:768px){
            padding: 0 24px 80px;
        }

        @media(max-width:480px){
            position: relative;
            padding: 0 0 80px;

            &::before {
                position: absolute;
                content: "";
                width: 100vw;
                height: 100%;
                top: 0;
                left: calc((100vw - 100%) / -2);
                background-color: #fff;
                z-index: -1;
            }
        }

        li {
            a {
                position: relative;
                display: flex;
                flex-direction: column;
                justify-content: center;
                min-height: 120px;
                padding: 24px 36px 24px 16px;
                box-sizing: border-box;
                border-top: solid 1px var(--color-main);

                &::before {
                    position: absolute;
                    content: "";
                    width: 16px;
                    aspect-ratio: 1/1;
                    top: 0;
                    right: 8px;
                    bottom: 0;
                    margin: auto 0;
                    background: url(../image/pattern-triangle.svg) center center / contain no-repeat;
                    transform: translateX(0);
                    transition: transform 0.2s;
                }

                @media(max-width:480px){
                    padding: 24px 32px 24px 8px;

                    &::before {
                        width: 12px;
                    }
                }

                time {
                    color: var(--color-main);
                    font-size: 0.875rem;
                }

                p {
                    margin-top: 8px;
                }

                &:hover {
                    &::before {
                        transform: translateX(4px);
                    }
                    
                    p {
                        text-decoration: underline;
                        text-underline-offset: 2px;
                        text-decoration-thickness: 0.8px;
                    }
                }
            }

            &:first-child {
                position: relative;

                &::before {
                    position: absolute;
                    content: "NEW";
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                    width: 64px;
                    height: 64px;
                    top: 0;
                    bottom: 0;
                    left: -80px;
                    margin: auto 0;
                    background-color: var(--color-main);
                    border-radius: 50%;
                    border: solid 8px #fff;
                    font-family: "Montserrat", sans-serif;
                    color: #fff;
                }

                @media(max-width:768px){
                    &::before {
                        width: 48px;
                        height: 48px;
                        left: -52px;
                        border: solid 6px #fff;
                        font-size: 0.875rem;
                    }
                }

                @media(max-width:480px){
                    &::before {
                        display: none;
                    }

                    time {
                        @media(max-width:480px){
                            display: flex;
                            align-items: center;
                            gap: 8px;
    
                            &::before {
                                content: "NEW";
                                padding: 2px 8px;
                                box-sizing: border-box;
                                font-family: "Montserrat", sans-serif;
                                background-color: var(--color-main);
                                color: #fff;
                                line-height: 1;
                                font-size: 0.875rem;
                            }
                        }
                    }
                }
            }

            &:last-child {
                a {
                    border-bottom: solid 1px var(--color-main);
                }
            }
        }
    }

    p.noarticle {
        margin-top: 24px;
    }

    div.nav-links {
        display: flex;
        justify-content: center;
        gap: 16px;
        margin-top: 40px;

        span,
        a {
            width: 40px;
            aspect-ratio: 1/1;
            padding: 8px;
            box-sizing: border-box;
            background-color: var(--color-main);
            border: solid 1px var(--color-main);
            color: #fff;
            text-align: center;
            line-height: 1.2;
            transition: background-color 0.2s, color 0.2s;

            @media(max-width:480px){
                width: 36px; 
                font-size: 0.875rem;
            }

            &:nth-child(1) {
                background-color: var(--color-pink);
                color: var(--color-main);
            }

            &:hover {
                background-color: var(--color-pink);
                color: var(--color-main);
            }
        }
    }
}

/* シングルページ */
div#single {
    position: relative;
    max-width: 960px;
    margin: 0 auto;
    min-height: calc(100vh - 800px);
    padding: 24px 0 0;
    box-sizing: border-box;

    &::before {
        position: absolute;
        content: "";
        width: 100vw;
        height: calc(100% + 248px);
        top: 0;
        left: calc((100vw - 100%) / -2);
        background-color: var(--color-pink);
        z-index: -1;
    }

    @media(max-width:768px){
        padding-top: 16px;   
    
        &::before {
            height: calc(100% + 200px);
        }
    }

    a.back {
        display: flex;
        align-items: center;
        gap: 8px;
        width: fit-content;
        color: var(--color-main);
        font-size: 0.875rem;
        text-decoration: underline;
        text-underline-offset: 2px;
        text-decoration-thickness: 0.8px;

        &::before {
            content: "";
            width: 10px;
            aspect-ratio: 1/1;
            margin-left: 0;
            background: url(../image/pattern-single.svg) center center / contain no-repeat;
            transform: scale(-1, 1) translateX(0);
            transition: transform 0.2s;
        }

        &:hover {
            &::before {
                transform: scale(-1, 1) translateX(2px);
            }
        }
    }

    div.news-wrapper {
        margin-top: 24px;
        padding: 0 32px 80px;
        box-sizing: border-box;
        background-color: #fff;
        border-radius: 24px;
        overflow: hidden;

        @media(max-width:768px){
            margin-top: 16px;
            padding: 0 16px 64px;
        }

        @media(max-width:480px){
            position: relative;
            padding: 0 0 40px;
            overflow: visible;

            &::before {
                position: absolute;
                content: "";
                width: 100vw;
                height: 100%;
                top: 0;
                left: calc((100vw - 100%) / -2);
                background-color: #fff;
                z-index: -1;
            }
        }

        h2 {
            margin-top: 40px;
            font-size: 1.75rem;
            font-family: "Montserrat", sans-serif;
            line-height: 1.4;
            letter-spacing: 0.08rem;
    
            @media(max-width:768px){
                margin-top: 24px;
                font-size: 1.5rem;
            }
        }
    
        time {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-top: 16px;
            color: var(--color-main);
            font-family: "Montserrat", sans-serif;
            font-size: 0.875rem;
    
            &::before {
                content: "";
                width: 16px;
                aspect-ratio: 1/1;
                background: url(../image/icon-write.svg) center center / contain no-repeat;
            }
        }
    
        div.post-thumbnail {
            width: calc(100% + 64px);
            margin-left: -32px;
            height: 400px;

            @media(max-width:768px){
                width: calc(100% + 32px);
                height: auto;
                aspect-ratio: 100 / 64;
                margin-left: -16px;
            }

            img {
                object-fit: cover;
                width: 100%;
                height: 100%;
            }
        }
    
        div.content {
            margin-top:48px;
            padding-top: 48px;
            box-sizing: border-box;
            border-top: solid 0.8px var(--color-main);
            line-height: 1.6;
    
            @media(max-width:768px){
                margin-top: 32px;
                padding-top: 24px;
            }
    
            h3,
            h4,
            h5,
            h6 {
                margin-top: 24px;
                margin-bottom: 8px;
                font-family: "Montserrat", sans-serif;
                line-height: 1.4;
                letter-spacing: 0.08rem;
    
                @media(max-width:768px){
                    margin-top: 20px;
                }
            }
    
            h3 {
                position: relative;
                width: fit-content;
                padding-left: 32px;
                box-sizing: border-box;
                font-size: 1.5rem;
    
                &::before {
                    position: absolute;
                    content: "";
                    width: 24px;
                    aspect-ratio: 1/1;
                    inset: 0;
                    top: 6px;
                    background: url(../image/pattern-triangle.svg) center center / contain no-repeat;
                }
    
                @media(max-width: 768px) {
                    padding-left: 24px;
                    font-size: 1.25rem;
    
                    &::before {
                        width: 16px;
                    }
                }
            }
    
            h4 {
                font-size: 1.25rem;
                position: relative;
                padding-left: 20px;
                box-sizing: border-box;
                
                &::before {
                    position: absolute;
                    content: "";
                    width: 12px;
                    aspect-ratio: 1/1;
                    inset: 0;
                    top: 8px;
                    background: url(../image/pattern-single.svg) center center / contain no-repeat;
                }
    
                @media(max-width:768px){
                    font-size: 1.125rem;
                }
            }
    
            h5 {
                font-size: 1.125rem;
                display: flex;
                gap: 4px;
    
                &::before {
                    content: "-";
                    box-sizing: border-box;
                    line-height: 1.2;
                }
    
                @media(max-width:768px){
                    font-size: 1rem;
                }
            }
    
            h6 {
                font-size: 1rem;
    
                @media(max-width:768px){
                    font-size: 0.875rem;
                }
            }
    
            p {
                @media(max-width:768px){
                    font-size: 0.875rem;
                }
            }
    
            img {
                object-fit: contain;
                width: fit-content;
                max-width: 100%;
                margin-top: 16px;
            }

            a {
                display: inline;
                text-decoration: underline;
                text-decoration-thickness: 0.8px;
                text-underline-offset: 2px;
            }

            a.wp-block-button__link {
                display: block;
                position: relative;
                width: fit-content;
                min-height: 24px;
                margin: 16px 0;
                padding: 4px 32px;
                box-sizing: border-box;
                background-color: transparent;
                border: solid 1px var(--color-black);
                box-shadow: 0 0.5px 0 var(--color-main);
                border-radius: 0;
                text-align: center;
                color: var(--color-black);
                transition: border 0.2s, background-color 0.2s, color 0.2s;
                text-decoration: none;
                z-index: 5;

                &::before {
                    position: absolute;
                    content: "";
                    width: 12px;
                    aspect-ratio: 1/1;
                    right: -6px;
                    bottom: -6px;
                    border-left: solid 1px var(--color-black);
                    transform: rotate(45deg);
                    transition: border-left 0.2s;
                }

                @media(max-width: 768px) {
                    padding: 2px 24px;
                }
            
                &:hover {
                    border: solid 1px var(--color-main);
                    color: #fff;
                    background-color: var(--color-main);
            
                    &::before {
                        border-left: solid 1px #fff;
                    }
                }
            }

            ul,ol {
                margin-top: 16px;
                padding-left: 24px;
                box-sizing: border-box;
            }

            ul {
                list-style: disc;
            }

            ol {
                list-style: decimal;
            }
        }
    }

    div.post-nav {
        display: flex;
        justify-content: space-between;
        margin-top: 40px;

        a {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 8px 24px;
            border: solid 1px var(--color-main);
            line-height: 1;
            background-color: transparent;
            transition: background-color 0.2s, color 0.2s;

            &::before {
                content: "";
                width: 10px;
                aspect-ratio: 1/1;
                padding-top: 2px;
                box-sizing: border-box;
                background: url(../image/pattern-single.svg) center center / contain no-repeat;
                transform: scale(-1, 1);
            }

            &::after {
                content: "";
                width: 10px;
                aspect-ratio: 1/1;
                padding-top: 2px;
                box-sizing: border-box;
                background: url(../image/pattern-single.svg) center center / contain no-repeat;
            }

            &:hover {
                color: #fff;
                background-color: var(--color-main);

                &::before {
                    background: url(../image/pattern-single-white.svg) center center / contain no-repeat;
                }
                &::after {
                    background: url(../image/pattern-single-white.svg) center center / contain no-repeat;
                }
            }
        }

        a[rel="prev"] {
            &::after {
                display: none;
            }
        }

        a[rel="next"] {
            &::before {
                display: none;
            }
        }
    }
}


/* ーーーーーーーーーー
お問い合わせ
ーーーーーーーーーー */
div#contact {
    margin-bottom: 80px;

    div.cover02{
        &::before {
            background-image: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(../image/contact-cover.webp);
        }
    }

    form#contact-form {
        display: flex;
        flex-direction: column;
        gap: 24px;
        max-width: 640px;
        margin: 80px auto 0;

        @media(max-width:768px){
            margin-top: 40px;
        }

        p.error-message {
            width: 100%;
            font-family: "Montserrat", sans-serif;
            color: red;
            font-size: 0.875rem;
        }

        div.form-item {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 16px;

            @media(max-width:560px){
                flex-direction: column;
                align-items: flex-start;
                gap: 8px;
            }

            label {
                flex-shrink: 0;
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 8px;
                width: 192px;
                font-family: "Montserrat", sans-serif;

                @media(max-width:560px){
                    justify-content: flex-start;
                    width: 100%;
                }

                span {
                    display: block;
                    padding: 2px 4px;
                    box-sizing: border-box;
                    background-color: var(--color-main);
                    font-family: "Montserrat", sans-serif;
                    color: #fff;
                    font-size: 0.75rem;
                }
            }

            input,
            textarea,
            div.date-wrapper {
                flex-shrink: 1;
                width: calc(100% - (192px + 16px));
                padding: 8px;
                box-sizing: border-box;
                border: solid 1px var(--color-main);
                font-size: 1rem;

                @media(max-width:560px){
                    width: 100%;
                }
            }

            &.num {
                position: relative;

                &::before {
                    position: absolute;
                    content: "guests";
                    width: 48px;
                    height: 12px;
                    /* aspect-ratio: 1/1; */
                    right: 8px;
                    bottom: 10px;
                    font-family: "Montserrat", sans-serif;
                    font-size: 0.75rem;
                }
            }

            div.date-wrapper {
                position: relative;
                display: flex;
                justify-content: space-between;
                padding: 0;

                &::before {
                    position: absolute;
                    content: "〜";
                    width: 16px;
                    aspect-ratio: 1/1;
                    inset: 0;
                    margin: auto;
                    font-size: 0.75rem;
                }
                
                div.date-item {
                    position: relative;
                    width: fit-content;

                    label {
                        display: block;
                        position: absolute;
                        width: fit-content;
                        height: 16px;
                        top: 8px;
                        left: 8px;
                        color: rgb(118, 118, 118);
                        font-size: 0.75rem;
                        pointer-events: none;
                    }

                    &:last-child {
                        align-self: flex-end;
                    }

                    input {
                        width: fit-content;
                        min-width: 120px;
                        padding-top: 24px;
                        border: solid 0 transparent;
                    }
                }
            }

            &.submit {
                position: relative;
                width: 100%;
                max-width: 200px;
                margin: 24px auto 0;
                background-color: var(--color-main);
                transition: background-color 0.2s;

                &::before {
                    position: absolute;
                    content: "";
                    width: 12px;
                    aspect-ratio: 1/1;
                    right: -6px;
                    bottom: -6px;
                    border-left: solid 1px #fff;
                    transform: rotate(45deg);
                    transition: border-left 0.2s;
                }
                
                input.btn-black {
                    width: 100%;
                    border: solid 1px var(--color-main);
                    font-family: "Zen Old Mincho", serif;
                    color: #fff;
                    letter-spacing: 0.08rem;
                    font-size: 1rem;
                }

                &:hover {
                    background-color: #fff;

                    input.btn-black {
                        color: var(--color-black);
                        background-color: transparent;
                    }

                    &::before {
                        border-left: solid 1px var(--color-main);
                    }
                }
            }
        }

        div.supplement-wrapper {
            display: flex;
            flex-direction: column;
            gap: 8px;
            margin-top: 40px;
            font-size: 0.875rem;

            p {
                flex-shrink: 1;
                display: flex;
                gap: 4px;
                line-height: 1.4;

                &::before {
                    flex-shrink: 0;
                    content: "※";
                }
            }
        }
    }
}

div#contact-complete {
    margin-bottom: 104px;

    div.page-content {
        text-align: center;
        line-height: 1.6;
        margin-top: 40px;
    }
}