/* ===============================================
   FV Section Styles - PC & SP
   =============================================== */

/* -----------------------------------------------
   FV Section PC
   ----------------------------------------------- */
.fv {
    position: relative;
    width: 100%;
    height: calc(100vw * 859 / 1400);
    overflow: hidden;
}

.fv_background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100vw * 846 / 1400);
    overflow: hidden;
}

.fv_bg_image {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100vw * 1402 / 1400);
    height: calc(100vw * 854 / 1400);
    object-fit: cover;
}

.fv_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.fv_content {
    position: absolute;
    top: calc(100vw * 154 / 1400);
    left: 50%;
    transform: translateX(-50%);
    width: calc(100vw * 537 / 1400);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(100vw * 64 / 1400);
    z-index: 2;
}

.fv_text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(100vw * 32 / 1400);
}

.fv_subtitle {
    font-family: 'Noto Serif JP', serif;
    font-weight: 500;
    font-size: calc(100vw * 40 / 1400);
    color: #ffffff;
    letter-spacing: 0.02em;
    line-height: 2;
    text-align: center;
    margin: 0;
}

.fv_title {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: calc(100vw * 120 / 1400);
    color: #ffffff;
    letter-spacing: 0.02em;
    line-height: normal;
    text-align: center;
    margin: 0;
}

.fv_description {
    font-family: 'Noto Serif JP', serif;
    font-weight: 500;
    font-size: calc(100vw * 24 / 1400);
    color: #ffffff;
    letter-spacing: 0.02em;
    line-height: 2;
    text-align: center;
    margin: 0;
}

.fv_recruit_btn {
    width: calc(100vw * 305 / 1400);
    height: calc(100vw * 66 / 1400);
    background: linear-gradient(180deg, #cb7b7b 0%, #9b4949 100%);
    border: 1px solid #9b4949;
    border-radius: calc(100vw * 6 / 1400);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(100vw * 16 / 1400);
    text-decoration: none;
    position: relative;
    transition: opacity 0.3s ease;
}

.fv_recruit_btn:hover {
    opacity: 0.8;
}

.fv_recruit_btn span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: calc(100vw * 16 / 1400);
    color: #ffffff;
    letter-spacing: 0.02em;
    line-height: 2;
}

.fv_recruit_btn svg {
    width: calc(100vw * 33 / 1400);
    height: calc(100vw * 22.5 / 1400);
}

.fv_wave {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: calc(100vw * 46 / 1400);
    z-index: 3;
}

.fv_wave_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: rotateX(180deg);
}

.fv_cta_buttons {
    position: absolute;
    bottom: calc(100vw * 46 / 1400);
    left: 0;
    width: 100%;
    height: calc(100vw * 56 / 1400);
    display: flex;
    z-index: 4;
}

.fv_cta_phone,
.fv_cta_reservation {
    width: 50%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(100vw * 16 / 1400);
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.fv_cta_phone:hover,
.fv_cta_reservation:hover {
    opacity: 0.8;
}

.fv_cta_phone {
    background-color: #bf9443;
}

.fv_cta_reservation {
    background-color: #5b885b;
}

.fv_cta_phone svg,
.fv_cta_reservation svg {
    width: calc(100vw * 24 / 1400);
    height: calc(100vw * 24 / 1400);
}

.fv_cta_phone span,
.fv_cta_reservation span {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: calc(100vw * 16 / 1400);
    color: #ffffff;
    letter-spacing: 0.02em;
    line-height: 2;
}

/* -----------------------------------------------
   FV Section SP
   ----------------------------------------------- */
@media (max-width: 768px) {
    .fv {
        height: calc(100vw * 687 / 375);
    }

    .fv_background {
        height: calc(100vw * 687 / 375);
        overflow: hidden;
    }

    .fv_bg_image {
        height: calc(100vw * 760 / 375);
        left: 50%;
        top: calc(100vw * -72 / 375);
    }

    .fv_content {
        top: calc(100vw * 186 / 375);
        width: calc(100vw * 291 / 375);
        gap: calc(100vw * 64 / 375);
    }

    .fv_text {
        gap: calc(100vw * 28 / 375);
    }

    .fv_subtitle {
        font-size: calc(100vw * 20 / 375);
    }

    .fv_title {
        font-size: calc(100vw * 60 / 375);
    }

    .fv_description {
        font-size: calc(100vw * 13 / 375);
    }

    .fv_recruit_btn {
        width: calc(100vw * 225 / 375);
        height: calc(100vw * 50 / 375);
        border-radius: calc(100vw * 6 / 375);
        gap: calc(100vw * 16 / 375);
    }

    .fv_recruit_btn span {
        font-size: calc(100vw * 14 / 375);
    }

    .fv_recruit_btn svg {
        width: calc(100vw * 24.75 / 375);
        height: calc(100vw * 16.875 / 375);
    }

    .fv_wave {
        height: calc(100vw * 12 / 375);
    }

    .fv_cta_buttons {
        height: calc(100vw * 56 / 375);
        bottom: calc(100vw * 19 / 375);
    }

    .fv_cta_phone svg,
    .fv_cta_reservation svg {
        width: calc(100vw * 18 / 375);
        height: calc(100vw * 18 / 375);
    }

    .fv_cta_phone span,
    .fv_cta_reservation span {
        font-size: calc(100vw * 14 / 375);
    }

    .fv_cta_phone,
    .fv_cta_reservation {
        gap: calc(100vw * 16 / 375);
    }
}

/* ===============================================
   CONCEPT Section Styles - PC & SP
   =============================================== */

/* Common Section Title Styles */
.section_title_en {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: calc(100vw * 88 / 1400);
    color: #bf9443;
    line-height: normal;
    letter-spacing: 0.02em;
    margin: 0;
}

.section_title_ja {
    font-family: 'Noto Serif JP', serif;
    font-weight: 500;
    font-size: calc(100vw * 18 / 1400);
    color: #bf9443;
    letter-spacing: 0.02em;
    margin: 0;
    line-height: 1.8;
}

@media (max-width: 768px) {
    .section_title_en {
        font-size: calc(100vw * 40 / 375);
    }

    .section_title_ja {
        font-size: calc(100vw * 13 / 375);
    }
}

/* -----------------------------------------------
   CONCEPT Section PC
   ----------------------------------------------- */
.concept {
    width: 100%;
    padding: calc(100vw * 120 / 1400) 0;
    position: relative;
}

.concept_content {
    width: 100%;
    max-width: calc(100vw * 1400 / 1400);
    margin: 0 auto;
    position: relative;
}

.concept_header {
    position: absolute;
    top: calc(100vw * 174 / 1400);
    left: calc(100vw * 100 / 1400);
    z-index: 2;
}

.concept .section_title_en {
    font-size: calc(100vw * 88 / 1400);
}

.concept .section_title_ja {
    font-size: calc(100vw * 18 / 1400);
    margin-top: calc(100vw * 5 / 1400);
}

.concept_catchphrase {
    font-family: 'Noto Serif JP', serif;
    font-weight: 500;
    font-size: calc(100vw * 22 / 1400);
    color: #4c5559;
    line-height: 1.8;
    letter-spacing: 0.02em;
    margin: 0;
    margin-top: calc(100vw * 24 / 1400);
}

.concept_images {
    position: relative;
    width: 100%;
    height: calc(100vw * 1551 / 1400);
}

.concept_img {
    position: absolute;
    object-fit: cover;
}

.concept_img_1 {
    top: 0;
    left: calc(100vw * 536 / 1400);
    width: calc(100vw * 864 / 1400);
    height: calc(100vw * 789 / 1400);
}

.concept_img_2 {
    top: calc(100vw * 789 / 1400);
    left: 0;
    width: calc(100vw * 728 / 1400);
    height: calc(100vw * 680 / 1400);
    /* Subtract shape approximation with border-radius */
}

.concept_img_3 {
    bottom: 0;
    right: calc(100vw * 0 / 1400);
    width: calc(100vw * 536 / 1400);
    height: calc(100vw * 304 / 1400);
}

.concept_text {
    position: absolute;
    top: calc(100vw * 990 / 1400);
    right: calc(100vw * 100 / 1400);
    width: calc(100vw * 435 / 1400);
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: calc(100vw * 14 / 1400);
    color: #000000;
    line-height: 2;
    letter-spacing: 0.02em;
    z-index: 2;
}

.concept_text p {
    margin: 0 0 calc(100vw * 10 / 1400) 0;
}

.concept_text p:last-child {
    margin-bottom: 0;
}

/* -----------------------------------------------
   CONCEPT Section SP (新規実装)
   ----------------------------------------------- */
@media (max-width: 768px) {
    /* SP専用conceptセクション */
    .concept.sp {
        display: block;
        padding: calc(100vw * 80 / 375) 0;
    }

    /* PC用conceptセクションを非表示 */
    .concept:not(.sp) {
        display: none;
    }

    .concept_sp_container {
        position: relative;
        width: calc(100vw * 375 / 375);
        min-height: calc(100vw * 1200 / 375);
    }

    /* 画像1: 大きな画像（上部、右寄せ） */
    .concept_sp_image_1 {
        position: absolute;
        top: 0;
        left: calc(100vw * 75 / 375);
        width: calc(100vw * 300 / 375);
        height: calc(100vw * 274 / 375);
        z-index: 1;
    }

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

    /* 見出しとキャッチコピー */
    .concept_sp_header {
        position: absolute;
        top: calc(100vw * 338 / 375);
        left: calc(100vw * 40 / 375);
        width: calc(100vw * 295 / 375);
        display: flex;
        flex-direction: column;
        gap: calc(100vw * 32 / 375);
        z-index: 2;
    }

    .concept_sp_title_area {
        display: flex;
        flex-direction: column;
        gap: calc(100vw * 5 / 375);
    }

    .concept_sp_title_en {
        font-family: 'Cormorant Garamond', serif;
        font-weight: 500;
        font-size: calc(100vw * 40 / 375);
        color: #bf9443;
        letter-spacing: 0.02em;
        line-height: normal;
        margin: 0;
    }

    .concept_sp_title_ja {
        font-family: 'Noto Serif JP', serif;
        font-weight: 500;
        font-size: calc(100vw * 13 / 375);
        color: #bf9443;
        letter-spacing: 0.02em;
        line-height: normal;
        text-align: left;
        margin: 0;
    }

    .concept_sp_catchphrase {
        font-family: 'Noto Serif JP', serif;
        font-weight: 500;
        font-size: calc(100vw * 16 / 375);
        color: #4c5559;
        letter-spacing: 0.02em;
        line-height: 1.8;
        margin: 0;
    }

    /* 画像2: 中程度の画像（左寄せ） */
    .concept_sp_image_2 {
        position: absolute;
        top: calc(100vw * 527 / 375);
        left: 0;
        width: calc(100vw * 264 / 375);
        height: calc(100vw * 251 / 375);
        z-index: 1;
    }

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

    /* 画像3: 小さな画像（右寄せ、重なる） */
    .concept_sp_image_3 {
        position: absolute;
        top: calc(100vw * 638 / 375);
        left: calc(100vw * 167 / 375);
        width: calc(100vw * 208 / 375);
        height: calc(100vw * 120 / 375);
        z-index: 2;
    }

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

    /* 本文テキスト */
    .concept_sp_description {
        position: absolute;
        top: calc(100vw * 842 / 375);
        left: 50%;
        transform: translateX(-50%);
        width: calc(100vw * 295 / 375);
        font-family: 'Noto Sans JP', sans-serif;
        font-weight: 400;
        font-size: calc(100vw * 13 / 375);
        color: #4c5559;
        letter-spacing: 0.02em;
        line-height: 2;
        z-index: 2;
    }

    .concept_sp_description p {
        margin: 0 0 calc(100vw * 10 / 375) 0;
    }

    .concept_sp_description p:last-child {
        margin-bottom: 0;
    }
}

/* PC表示時はSP専用conceptを非表示 */
@media (min-width: 769px) {
    .concept.sp {
        display: none;
    }
}

/* ===============================================
   OUR STYLE Section Styles - PC & SP
   =============================================== */

/* -----------------------------------------------
   OUR STYLE Section PC
   ----------------------------------------------- */
.our_style {
    width: 100%;
    padding: calc(100vw * 120 / 1400) 0;
    background-color: #272e27;
}

.our_style_content {
    width: calc(100vw * 1400 / 1400);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 80 / 1400);
    align-items: flex-end;
}

.our_style_header {
    padding-right: calc(100vw * 100 / 1400);
}

.our_style_items {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 104 / 1400);
}

.our_style_item {
    display: flex;
    align-items: center;
    gap: calc(100vw * 100 / 1400);
}

.our_style_item_1 {
    padding-right: calc(100vw * 100 / 1400);
}

.our_style_item_2 {
    padding-left: calc(100vw * 100 / 1400);
}

.our_style_item_3 {
    padding-right: calc(100vw * 100 / 1400);
}

.our_style_image {
    width: calc(100vw * 750 / 1400);
    height: calc(100vw * 424 / 1400);
    flex-shrink: 0;
}

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

.our_style_text {
    width: calc(100vw * 450 / 1400);
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 36 / 1400);
    color: #bf9443;
}

.our_style_title {
    font-family: 'Noto Serif JP', serif;
    font-weight: 500;
    font-size: calc(100vw * 22 / 1400);
    line-height: 1.8;
    letter-spacing: 0.02em;
    margin: 0;
}

.our_style_description {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: calc(100vw * 14 / 1400);
    line-height: 2;
    letter-spacing: 0.02em;
    margin: 0;
}

/* -----------------------------------------------
   OUR STYLE Section SP
   ----------------------------------------------- */
@media (max-width: 768px) {
    .our_style {
        padding: calc(100vw * 80 / 375) 0;
    }

    .our_style_content {
        width: calc(100vw * 295 / 375);
        margin: 0 auto;
        gap: calc(100vw * 64 / 375);
        align-items: flex-end;
    }

    .our_style_header {
        padding-right: 0;
    }

    .our_style_items {
        gap: calc(100vw * 64 / 375);
    }

    .our_style_item {
        flex-direction: column;
        gap: calc(100vw * 16 / 375);
        align-items: flex-start;
    }

    .our_style_item_1,
    .our_style_item_2,
    .our_style_item_3 {
        padding: 0;
    }

    .our_style_item_2 {
        flex-direction: column-reverse;
    }

    .our_style_image {
        width: calc(100vw * 295 / 375);
        height: calc(100vw * 167 / 375);
    }

    .our_style_text {
        width: calc(100vw * 295 / 375);
        gap: calc(100vw * 16 / 375);
    }

    .our_style_title {
        font-size: calc(100vw * 16 / 375);
    }

    .our_style_description {
        font-size: calc(100vw * 13 / 375);
    }
}

/* ===============================================
   ROOM Section Styles - PC & SP
   =============================================== */

/* -----------------------------------------------
   ROOM Section PC
   ----------------------------------------------- */
.room {
    width: 100%;
    padding: calc(100vw * 120 / 1400) 0;
}

.room_content {
    width: calc(100vw * 1200 / 1400);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 80 / 1400);
    align-items: center;
}

.room_header {
    text-align: center;
}

.room .section_title_en {
    text-align: center;
}

.room .section_title_ja {
    text-align: center;
}

.room_items {
    width: 100%;
    display: flex;
    justify-content: space-between;
    gap: calc(100vw * 24 / 1400);
}

.room_item {
    width: calc(100vw * 376 / 1400);
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 24 / 1400);
}

.room_image {
    width: calc(100vw * 376 / 1400);
    height: calc(100vw * 376 / 1400);
    overflow: hidden;
}

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

.room_text {
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 24 / 1400);
    color: #4c5559;
}

.room_title {
    font-family: 'Noto Serif JP', serif;
    font-weight: 500;
    font-size: calc(100vw * 22 / 1400);
    line-height: 1.8;
    letter-spacing: 0.02em;
    margin: 0;
}

.room_description {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: calc(100vw * 14 / 1400);
    line-height: 2;
    letter-spacing: 0.02em;
    margin: 0;
}

.room_btn {
    display: flex;
    align-items: center;
    gap: calc(100vw * 16 / 1400);
    text-decoration: none;
    align-self: flex-end;
    transition: opacity 0.3s ease;
}

.room_btn:hover {
    opacity: 0.7;
}

.room_btn span {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: calc(100vw * 22 / 1400);
    color: #bf9443;
    letter-spacing: 0.02em;
    line-height: 1.8;
}

.room_btn svg {
    width: calc(100vw * 26 / 1400);
    height: calc(100vw * 26 / 1400);
}

/* -----------------------------------------------
   ROOM Section SP
   ----------------------------------------------- */
@media (max-width: 768px) {
    .room {
        padding: calc(100vw * 80 / 375) 0;
    }

    .room_content {
        width: calc(100vw * 295 / 375);
        margin: 0 auto;
        gap: calc(100vw * 64 / 375);
    }

    .room_items {
        flex-direction: column;
        gap: calc(100vw * 64 / 375);
        align-items: center;
    }

    .room_item {
        width: calc(100vw * 295 / 375);
        gap: calc(100vw * 16 / 375);
    }

    .room_image {
        width: calc(100vw * 295 / 375);
        height: calc(100vw * 295 / 375);
    }

    .room_text {
        gap: calc(100vw * 16 / 375);
    }

    .room_title {
        font-size: calc(100vw * 16 / 375);
    }

    .room_description {
        font-size: calc(100vw * 13 / 375);
    }

    .room_btn {
        gap: calc(100vw * 14 / 375);
    }

    .room_btn span {
        font-size: calc(100vw * 20 / 375);
    }

    .room_btn svg {
        width: calc(100vw * 24 / 375);
        height: calc(100vw * 24 / 375);
    }
}

/* ===============================================
   MENU Section Styles - PC & SP
   =============================================== */

/* -----------------------------------------------
   MENU Section PC
   ----------------------------------------------- */
.menu {
    width: 100%;
    padding: calc(100vw * 120 / 1400) 0;
    background-color: #272e27;
    position: relative;
    overflow: hidden;
}

.menu_content {
    width: calc(100vw * 1200 / 1400);
    margin: 0 auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    position: relative;
}

.menu_left {
    width: calc(100vw * 550 / 1400);
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 50 / 1400);
}

.menu_header {
    color: #bf9443;
}

.menu_lists {
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 50 / 1400);
}

.menu_category {
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 30 / 1400);
}

.menu_category_header {
    display: flex;
    align-items: center;
    gap: calc(100vw * 24 / 1400);
    padding-right: calc(100vw * 112 / 1400);
}

.menu_category_title {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: calc(100vw * 40 / 1400);
    color: #bf9443;
    letter-spacing: 0.02em;
    line-height: 1.8;
    margin: 0;
    white-space: nowrap;
}

.menu_category_line {
    flex: 1;
    height: 1px;
    background-color: #bf9443;
}

.menu_items {
    width: calc(100vw * 400 / 1400);
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 24 / 1400);
}

.menu_item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #bf9443;
}

.menu_time {
    font-family: 'Noto Serif JP', serif;
    font-weight: 500;
    font-size: calc(100vw * 22 / 1400);
    line-height: 1.8;
    letter-spacing: 0.02em;
    width: calc(100vw * 82 / 1400);
}

.menu_dots {
    flex: 1;
    height: 1px;
    background-image: repeating-linear-gradient(
        to right,
        #bf9443 0,
        #bf9443 4px,
        transparent 4px,
        transparent 8px
    );
    margin: 0 calc(100vw * 10 / 1400);
}

.menu_price {
    font-family: 'Noto Serif JP', serif;
    font-weight: 500;
    font-size: calc(100vw * 22 / 1400);
    line-height: 1.8;
    letter-spacing: 0.02em;
}

.menu_btn {
    display: flex;
    align-items: center;
    gap: calc(100vw * 16 / 1400);
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.menu_btn:hover {
    opacity: 0.7;
}

.menu_btn span {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: calc(100vw * 22 / 1400);
    color: #bf9443;
    letter-spacing: 0.02em;
    line-height: 1.8;
}

.menu_btn svg {
    width: calc(100vw * 26 / 1400);
    height: calc(100vw * 26 / 1400);
}

.menu_images {
    position: relative;
    width: calc(100vw * 650 / 1400);
    height: calc(100vw * 595 / 1400);
    overflow: visible;
}

.menu_img {
    position: absolute;
    object-fit: cover;
}

.menu_img_1 {
    top: 0;
    left: 0;
    width: calc(100vw * 650 / 1400);
    height: calc(100vw * 595 / 1400);
}

.menu_img_2 {
    top: calc(100vw * -250 / 1400);
    right: calc(100vw * -125 / 1400);
    width: calc(100vw * 424 / 1400);
    height: calc(100vw * 282 / 1400);
}

/* -----------------------------------------------
   MENU Section SP
   ----------------------------------------------- */
@media (max-width: 768px) {
    .menu {
        padding: calc(100vw * 200 / 375) 0 calc(100vw * 120 / 375);
        position: relative;
    }

    .menu_content {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        flex-direction: column;
        align-items: center;
        gap: calc(100vw * 64 / 375);
        position: relative;
    }

    .menu_left {
        width: calc(100vw * 295 / 375);
        gap: calc(100vw * 34 / 375);
        order: 1;
        position: relative;
        z-index: 2;
    }

    .menu_header {
        text-align: center;
        margin-bottom: calc(100vw * 40 / 375);
    }

    .menu .section_title_ja {
        text-align: left;
    }

    .menu_lists {
        gap: calc(100vw * 80 / 375);
    }

    .menu_category {
        gap: calc(100vw * 24 / 375);
    }

    .menu_category_header {
        gap: calc(100vw * 24 / 375);
        padding-right: 0;
    }

    .menu_category_title {
        font-size: calc(100vw * 24 / 375);
    }

    .menu_items {
        width: 100%;
        gap: calc(100vw * 16 / 375);
    }

    .menu_item {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .menu_time {
        font-size: calc(100vw * 16 / 375);
        width: auto;
        flex-shrink: 0;
    }

    .menu_dots {
        margin: 0 calc(100vw * 8 / 375);
        flex-grow: 1;
    }

    .menu_price {
        font-size: calc(100vw * 16 / 375);
        flex-shrink: 0;
    }

    .menu_btn {
        gap: calc(100vw * 14 / 375);
        margin-top: calc(100vw * 24 / 375);
    }

    .menu_btn span {
        font-size: calc(100vw * 20 / 375);
    }

    .menu_btn svg {
        width: calc(100vw * 24 / 375);
        height: calc(100vw * 24 / 375);
    }

    .menu_images {
        width: 100%;
        height: auto;
        order: 2;
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .menu_img_1 {
        width: calc(100vw * 295 / 375);
        height: calc(100vw * 200 / 375);
        position: relative;
        margin: 0 auto;
    }

    .menu_img_2 {
        position: absolute;
        top: calc(100vw * -958 / 375);
        right: 0;
        width: calc(100vw * 216 / 375);
        height: calc(100vw * 144 / 375);
        z-index: 1;
    }
}

/* ===============================================
   THERAPIST Section Styles - PC & SP
   =============================================== */

/* -----------------------------------------------
   THERAPIST Section PC
   ----------------------------------------------- */
.therapist {
    width: 100%;
    padding: calc(100vw * 120 / 1400) 0;
    padding-bottom: calc(100vw * 160 / 1400);
}

.therapist_content {
    width: calc(100vw * 1200 / 1400);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 80 / 1400);
}

.therapist_header {
    color: #bf9443;
}

.therapist_images {
    display: flex;
    justify-content: space-between;
    gap: calc(100vw * 50 / 1400);
}

.therapist_image {
    width: calc(100vw * 200 / 1400);
    height: calc(100vw * 300 / 1400);
    overflow: hidden;
}

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

.therapist_btn {
    display: flex;
    align-items: center;
    gap: calc(100vw * 16 / 1400);
    text-decoration: none;
    align-self: flex-end;
    transition: opacity 0.3s ease;
}

.therapist_btn:hover {
    opacity: 0.7;
}

.therapist_btn span {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: calc(100vw * 22 / 1400);
    color: #bf9443;
    letter-spacing: 0.02em;
    line-height: 1.8;
}

.therapist_btn svg {
    width: calc(100vw * 26 / 1400);
    height: calc(100vw * 26 / 1400);
}

/* -----------------------------------------------
   THERAPIST Section SP
   ----------------------------------------------- */
@media (max-width: 768px) {
    .therapist {
        padding: calc(100vw * 80 / 375) 0;
        padding-bottom: calc(100vw * 120 / 375);
    }

    .therapist_content {
        width: calc(100vw * 295 / 375);
        margin: 0 auto;
        gap: calc(100vw * 64 / 375);
    }

    .therapist_images {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: calc(100vw * 40 / 375);
        justify-items: center;
    }

    .therapist_image {
        width: calc(100vw * 128 / 375);
        height: calc(100vw * 180 / 375);
    }

    .therapist_image:nth-child(5) {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .therapist_btn {
        gap: calc(100vw * 14 / 375);
    }

    .therapist_btn span {
        font-size: calc(100vw * 20 / 375);
    }

    .therapist_btn svg {
        width: calc(100vw * 24 / 375);
        height: calc(100vw * 24 / 375);
    }
}

/* ===============================================
   RECRUIT Section
   =============================================== */

/* RECRUIT Section PC */
.recruit {
    width: 100%;
    background-color: #272e27;
}

.recruit_content {
    display: flex;
    align-items: center;
}

.recruit_image {
    width: calc(100vw * 700 / 1400);
    height: calc(100vw * 440 / 1400);
    flex-shrink: 0;
}

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

.recruit_text_area {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 64 / 1400);
    padding: calc(100vw * 28 / 1400) calc(100vw * 100 / 1400);
}

.recruit_header {
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 8 / 1400);
}

.recruit_header .section_title_en {
    font-size: calc(100vw * 88 / 1400);
    color: #bf9443;
    text-align: start;
}

.recruit_header .section_title_ja {
    font-size: calc(100vw * 18 / 1400);
    color: #bf9443;
}

.recruit_description {
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 4 / 1400);
    color: #bf9443;
}

.recruit_description p {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: calc(100vw * 14 / 1400);
    line-height: 1.8;
    margin: 0;
}

.recruit_btn {
    display: flex;
    align-items: center;
    gap: calc(100vw * 16 / 1400);
    text-decoration: none;
    margin-left: auto;
    width: fit-content;
    transition: opacity 0.3s ease;
}

.recruit_btn:hover {
    opacity: 0.7;
}

.recruit_btn span {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: calc(100vw * 20 / 1400);
    color: #bf9443;
    letter-spacing: 0.02em;
}

.recruit_btn svg {
    width: calc(100vw * 26 / 1400);
    height: calc(100vw * 26 / 1400);
}

/* RECRUIT Section SP */
@media (max-width: 768px) {
    .recruit {
        padding: calc(100vw * 40 / 375) 0 calc(100vw * 80 / 375);
        position: relative;
        background-color: unset;
    }

    .recruit_content {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        display: grid;
        grid-template-columns: max-content;
        grid-template-rows: max-content;
        place-items: start;
    }

    .recruit_image {
        grid-area: 1 / 1;
        margin-top: 0;
        margin-left: 0;
        width: 100%;
        height: calc(100vw * 235 / 375);
        position: relative;
        z-index: 1;
    }

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

    .recruit_text_area {
        grid-area: 1 / 1;
        margin-top: calc(100vw * 168 / 375);
        margin-left: calc(100vw * 30 / 375);
        width: calc(100vw * 345 / 375);
        padding: calc(100vw * 40 / 375) calc(100vw * 40 / 375) calc(100vw * 40 / 375) calc(100vw * 10 / 375);
        background-color: #272e27;
        display: flex;
        flex-direction: column;
        gap: calc(100vw * 40 / 375);
        box-sizing: border-box;
        z-index: 2;
    }

    .recruit_header {
        display: flex;
        flex-direction: column;
        gap: calc(100vw * 5 / 375);
        align-items: flex-start;
    }

    .recruit_header .section_title_en {
        font-size: calc(100vw * 40 / 375);
        text-align: left;
    }

    .recruit_header .section_title_ja {
        font-size: calc(100vw * 13 / 375);
        text-align: left;
    }

    .recruit_description {
        display: flex;
        flex-direction: column;
        gap: 0;
        width: calc(100vw * 295 / 375);
        margin-left: auto;
    }

    .recruit_description p {
        font-size: calc(100vw * 13 / 375);
        line-height: 2;
        margin: 0;
    }

    .recruit_btn {
        margin-left: auto;
        gap: calc(100vw * 14 / 375);
    }

    .recruit_btn span {
        font-size: calc(100vw * 20 / 375);
    }

    .recruit_btn svg {
        width: calc(100vw * 24 / 375);
        height: calc(100vw * 24 / 375);
    }
}

/* ===============================================
   RESERVATION Section
   =============================================== */

/* RESERVATION Section PC */
.reservation {
    width: 100%;
    height: calc(100vw * 480 / 1400);
    position: relative;
    /* background-image moved to .reservation_background with parallax */
    display: flex;
    align-items: center;
    justify-content: center;
    margin: calc(100vw * 120 / 1400) 0 0 0;
    overflow: hidden;
}

.reservation_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.reservation_content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: calc(100vw * 16 / 1400);
    align-items: center;
}

.reservation_title_en {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: calc(100vw * 88 / 1400);
    color: #ffffff;
    text-align: center;
    letter-spacing: 0.02em;
    line-height: normal;
    margin: 0;
}

.reservation_title_ja {
    font-family: 'Noto Serif JP', serif;
    font-weight: 500;
    font-size: calc(100vw * 22 / 1400);
    color: #ffffff;
    text-align: right;
    letter-spacing: 0.02em;
    line-height: 1.8;
    margin: 0;
}

.reservation_border {
    position: absolute;
    left: calc(100vw * 100 / 1400);
    width: calc(100vw * 1200 / 1400);
    height: calc(100vw * 400 / 1400);
    background-image: url('../img/reservation_img_frame.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 3;
    pointer-events: none;
}

/* RESERVATION Section SP */
@media (max-width: 768px) {
    .reservation {
        height: calc(100vw * 360 / 375);
        padding: 0;
        /* background-image moved to .reservation_background with parallax */
    }

    .reservation_content {
        gap: calc(100vw * 16 / 375);
    }

    .reservation_title_en {
        font-size: calc(100vw * 40 / 375);
    }

    .reservation_title_ja {
        font-size: calc(100vw * 16 / 375);
    }

    .reservation_border {
        top: calc(100vw * 40 / 375);
        left: calc(100vw * 40 / 375);
        width: calc(100vw * 295 / 375);
        height: calc(100vw * 280 / 375);
        background-image: url('../img/reservation_img_frame_sp.png');
    }
}
