@charset "utf-8";

html {
    scroll-behavior: smooth;
    font-size: 62.5%;
}

body {
    font-family: 'Noto Serif JP', serif;
    font-size: 1.6rem;
    line-height: 1.5;
    letter-spacing: 0em;
    color: #2D323D;
}
p, a, span, h1, h2, h3, h4, h5, h6, li ,input ,textarea ,label {
    letter-spacing: 0.1em;
}
a:hover img {
    opacity: 1;
}

/* -----------font-----------*/
.Playfair {
    font-family: "Playfair", serif;
    font-weight: 400;
    font-style: normal;
}
.Quattrocento {
    font-family: "Quattrocento", serif;
    font-weight: 400;
    font-style: normal;
}
.ScheherazadeNew {
    font-family: "Scheherazade New", serif;
    font-weight: 400;
    font-style: normal;
}

/* -----------共通-----------*/
img {
    width: 100%;
    height: auto;
}

.sp {
    display: block;
}

.pc {
    display: none;
}

.target {
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
}
.about_promise_title.target {
    transition: opacity 1.5s 0.8s ease-in-out;
}
.about_promise_subtitle.target {
    transition: opacity 1.5s 0.8s ease-in-out;
}
.about_promise_item.target {
    transition: opacity 1.5s 1.6s ease-in-out;
}

.target.fade_in {
    opacity: 1;
}

.fixed_line {
    display: none;
    width: 178px;
    aspect-ratio: 1;
    position: fixed;
    z-index: 10;
    bottom: 23px;
    right: 23px;
    z-index: 10;
    border-radius: 50%;
    text-decoration: none;
    justify-content: center;
    align-items: center;
}
.fixed_line::after {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    background: radial-gradient(at center, #C99A23 56%, transparent 70%);
    opacity: 0.8;
    transition: scale 0.4s ease-in-out;
}
@media (any-hover: hover) {
    .fixed_line:hover {
        &::after {
            scale: 1.2;
        }
    }
}

.fixed_line_inner {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.fixed_line_img {
    width: 29px;
}

.fixed_line_text {
    font-size: 1.6rem;
    font-weight: 500;
    color: #F9F9F5;
    text-align: center;
}

.sec_inner  {
    max-width: 1136px;
    margin: 0 auto;
    padding: 0 28px;
    box-sizing: border-box;
}

.sec_title {
    font-size: 3.5rem;
    color: #2D323D;
    line-height: 1;
}

.main_btn {
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    border: 1px solid #2D323D;
    border-radius: 4px;
    padding: 12px 50px 12px 20px;
    box-sizing: border-box;
    position: relative;
    box-shadow: 3px 3px 5px 0 #2D323D66;
    transition: all 0.3s ease-in-out;
}
.main_btn::after {
    content: '';
    display: block;
    width: 40px;
    height: 0.75px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%) scaleX(0);
    right: -9px;
    border-radius: 100px;
    background: #2D323D;
    transform-origin: left;
    transition: transform 0.3s ease-in-out;
}

.main_btn_text {
    font-size: 1.4rem;
    font-weight: 500;
    color: #2D323D;
}

.main_btn_arrow {
    width: 22px;
    position: absolute;
    right: 20px;
    transition: transform 0.3s ease-in-out;
}

.main_btn_arrow_line {
    width: 22px;
    height: 0.75px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: -11px;
    background: #2D323D;
    transform-origin: left;
    border-radius: 100px;
    transition: transform 0.3s ease-in-out;
}
.main_btn_arrow:after {
    content: '';
    display: block;
    width: 4px;
    height: 0.75px;
    position: absolute;
    right: -11px;
    transform: translateY(-1.5px) rotate(225deg);
    background: #2D323D;
    border-radius: 100px;
    transition: transform 0.3s ease-in-out;
}
.main_btn_arrow:before {
    content: '';
    display: block;
    width: 4px;
    height: 0.75px;
    position: absolute;
    right: -11px;
    transform: translateY(1.5px) rotate(-225deg);
    background: #2D323D;
    border-radius: 100px;
    transition: transform 0.3s ease-in-out;
}

.radius_btn {
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    background: #11275A66;
    border: 1px solid #F9F9F5;
    border-radius: 100px;
    padding: 10px 50px 10px 20px;
    margin: 40px 0 0;
    box-sizing: border-box;
    position: relative;
    animation: shadow 3s ease-in-out infinite;
    transition: all 0.3s ease-in-out;
}
.radius_btn::after {
    content: '';
    display: block;
    width: 50px;
    height: 1px;
    position: absolute;
    right: -11px;
    transform: scaleX(0);
    background: #F9F9F5;
    transform-origin: left;
    transition: transform 0.3s ease-in-out;
}

.radius_btn_text {
    font-size: 1.4rem;
    font-weight: 500;
    color: #F9F9F5;
}

.radius_btn_arrow {
    width: 20px;
    position: absolute;
    right: 20px;
    transition: transform 0.3s ease-in-out;
}

@media (any-hover: hover) {
    .main_btn:hover .main_btn_arrow {
        transform: translateX(40px);
    }
    .main_btn:hover::after {
        transform: translateY(-50%) scaleX(1);
    }
    .radius_btn:hover {
        animation: none;
        box-shadow: 0px 0px 14px 0 #DDE7EF;
    }
    .radius_btn:hover .radius_btn_arrow {
        transform: translateX(40px);
    }
    .radius_btn:hover::after {
        transform: scaleX(1);
    }
}

@keyframes shadow {
    0% {
        box-shadow: 0px 0px 14px 0 #DDE7EF;
    }
    50% {
        box-shadow: 0px 0px 14px 0 #DDE7EF00;
    }
    100% {
        box-shadow: 0px 0px 14px 0 #DDE7EF;
    }
}

/* -----------breadcrumbs-----------*/
.breadcrumbs {
    padding: 100px 0 50px;
}

.breadcrumbs .sec_inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;
}

.breadcrumbs_arrow {
    width: 6px;
    height: 12px;
}

.breadcrumbs_item {
    font-size: 1.3rem;
    line-height: 1;
    color: #2D323D;
    text-decoration: none;
}

a.breadcrumbs_item {
    flex-shrink: 0;
}

/* -----------SP header-----------*/
header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease-in-out;
}

header.scrolled {
    opacity: 1;
}

.fixed_header {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 20px;
    box-sizing: border-box;
    pointer-events: none;
    background: #ffffff33;
    backdrop-filter: blur(10px);
}
header.scrolled .fixed_header {
    pointer-events: auto;
}

.fixed_header_logo {
    width: 56px;
    height: auto;
    pointer-events: auto;
}

.fixed_header_inner {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
}

.fixed_header_lang {
    height: 24px;
    display: flex;
    gap: 0px;
    font-size: 1.4rem;
    color: #2D323D;
}

.fixed_header_lang a {
    color: #2D323D;
    text-decoration: none;
}

.fixed_header_hamburger {
    width: 22px;
    height: 17px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: space-between;
    gap: 5px;
    cursor: pointer;
    transition: gap 0.3s ease-in-out;
}
.fixed_header_hamburger_line {
    width: 22px;
    height: 1px;
    background-color: #2D323D;
    transition: all 0.3s ease-in-out;
}
.fixed_header_hamburger_line:nth-child(2) {
    width: 17px;
}
.fixed_header_hamburger_line:nth-child(3) {
    width: 13px;
}

.sp_banner {
    width: 100%;
    height: 80px;
    display: flex;
    align-items: center;
    padding: 7.5px 0;
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 10;
    background: #B7994C;
    opacity: 0;
    transition: opacity 0.6s ease-in-out;
}
.sp_banner.show {
    opacity: 1;
}

.sp_banner_news {
    width: 38%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    text-decoration: none;
    border-right: 1px solid #F9F9F5;
}

.sp_banner_text {
    font-size: 1.4rem;
    color: #F9F9F5;
}

.sp_banner_news img {
    width: 40px;
}

.sp_banner_line {
    width: 62%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    text-decoration: none;
}

.sp_banner_line img {
    width: 29px;
}

.fixed_header_nav {
    width: 100vw;
    height: 100vh;
    background: #ECECE333;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    backdrop-filter: blur(14px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease-in-out;
}
.fixed_header_nav.active {
    opacity: 1;
    pointer-events: auto;
}

.fixed_header_nav_head {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px;
    box-sizing: border-box;
}

.fixed_header_nav_head_lang {
    display: flex;
    align-items: center;
    gap: 0px;
    font-size: 1.4rem;
    color: #2D323D;
}

.fixed_header_nav_head_lang a {
    font-size: 1.4rem;
    color: #2D323D;
    text-decoration: none;
}

.fixed_header_nav_head_logo {
    width: 56px;
}

.fixed_header_nav_head_close {
    width: 25px;
    height: 25px;
    margin: 10px 0 0 auto;
    display: block;
    cursor: pointer;
}

.fixed_header_nav_inner {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    padding: 0;
    background: #ECECE333;
    box-sizing: border-box;
}

.fixed_header_nav_close {
    width: 25px;
    cursor: pointer;
    margin: 0 0 10px;
    display: none;
}

.fixed_header_nav_item {
    width: fit-content;
    font-size: 2.4rem;
    color: #2D323D;
    text-decoration: none;
}
.fixed_header_nav_item::after {
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background-color: #2D323D;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease-in-out;
}
@media (any-hover: hover) {
    .fixed_header_nav_item:hover::after {
        transform: scaleX(1);
    }
}
/* .fixed_header_nav_item.is-active {
    border-bottom: 1px solid #2D323D;
} */

/* -----------footer-----------*/
.footer_contact {
    background: linear-gradient(-140deg, #ECECE3, #DDE7EF);
    padding: 50px 0;
}

.footer_contact .sec_inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
}

.footer_contact_title {
    font-size: 2.3rem;
    font-weight: 600;
    text-align: center;
}

.footer_contact_text {
    font-size: 1.4rem;
    line-height: 2.1;
    text-align: left;
}


.footer_contact_wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.footer_contact_btn {
    width: 100%;
    max-width: 340px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0px;
    padding: 20px 20px;
    box-sizing: border-box;
    text-decoration: none;
    background: linear-gradient(-130deg, #ECECE3, #DDE7EF);
    box-shadow: 3px 3px 5px 0 #2D323D66;
    border-radius: 100px;
}

.footer_contact_btn_text {
    flex-grow: 1;
    font-size: clamp(1.7rem, 1.78rem, 1.8rem);
    line-height: 1;
    color: #2D323D;
}

.footer_contact_btn_icon {
    width: 24px;
    aspect-ratio: 1;
}

.footer_contact_time {
    width: 100%;
    font-size: 1.1rem;
}

.footer_contact_time_holiday {
    font-size: 1.1rem;
    line-height: 2.5;
}

.footer_main {
    background: #2D323D;
    padding: 50px 0 130px;
}

.footer_main .sec_inner {
    max-width: 1022px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer_main_logo {
    font-size: 2.4rem;
    font-weight: 600;
    color: #F9F9F5;
}

.footer_main_list {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    gap: 5px;
}

.footer_main_list_inner {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.footer_main_list_item {
    width: fit-content;
    font-size: 1.3rem;
    color: #F9F9F5;
    text-decoration: none;
}
.footer_main_list_item::after {
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background-color: #F9F9F5;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease-in-out;
}
.footer_main_list_item:first-child {
    font-size: 1.6rem;
    /* pointer-events: none; */
}
@media (any-hover: hover) {
    .footer_main_list_item:hover {
        &::after {
            transform: scaleX(1);
        }
    }
}

.footer_main_line {
    width: 100%;
    height: 0.75px;
    background: #F9F9F5;
    margin: 10px 0;
}

.footer_main_address {
    color: #F9F9F5;
    font-size: 1.3rem;
    line-height: 1;
}
.footer_main_address .ScheherazadeNew {
    font-size: 1.5rem;
    line-height: 1;
}

small {
    font-size: 1rem;
    color: #F9F9F5;
}

/* -----------loading-----------*/
.loading {
    width: 100vw;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F3F9FE;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    pointer-events: none;
    animation: loadingFadeOut 1.5s 5.5s ease-in-out both;
}
.loading_inner {
    width: 60%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 35px;
}

/* ローディング中は表示 */
.loading.show {
    opacity: 1;
    visibility: visible;
}

/* フェードアウト */
.loading.hide {
    opacity: 0;
    visibility: hidden;
}

/* ローディング内のアニメーション */
.loading_image {
    animation: loadingImage 1.2s ease-in-out both;
}

.loading_text_wrap {
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin: 0 0 0 -30px;
}

.loading_text_wrap svg:nth-of-type(1) {
    margin: 0 -30px 0 0;
}

.loading_text {
    opacity: 0;
    animation: fadeText 1.2s ease-in-out both;
}
.loading_text {
    opacity: 1;
}
.loading_text path {
    fill: none;
    stroke: #2d323d;
    stroke-width: 1;
    stroke-linecap: round;
    stroke-linejoin: round;
    animation: none;
    -webkit-animation: none;
}

.loading_text .cls-1 {
    stroke-dasharray: 1100;
    stroke-dashoffset: 1100;
    animation: draw 2s  ease-in-out forwards;
}
.loading_text .cls-2 {
    stroke-dasharray: 110;
    stroke-dashoffset: 110;
    animation: draw 0.5s 2s ease forwards;
}
.loading_text .cls-3 {
    stroke-dasharray: 250;
    stroke-dashoffset: 250;
    animation: draw 0.4s 2.4s ease forwards;
}
.loading_text .cls-4 {
    stroke-dasharray: 500;
    stroke-dashoffset: 500;
    animation: draw 1.4s 2.8s ease forwards;
}
.loading_text .cls-5 {
    stroke-dasharray: 300;
    stroke-dashoffset: 300;
    animation: draw 1s 4s ease forwards;
}
.loading_text .cls-6 {
    stroke-dasharray: 110;
    stroke-dashoffset: 110;
    animation: draw 1s 4.5s ease forwards;
}


/* アニメーション本体 */
@keyframes draw {
    to { stroke-dashoffset: 0; }
}

/* ローディングアニメーション */
@keyframes loadingFadeOut {
    0% { opacity: 1 }
    100% { opacity: 0 }
}
@keyframes loadingImage {
    0% { opacity: 0 }
    100% { opacity: 1 }
}
@keyframes fadeText {
    to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

/* -----------top-----------*/
.top_mv {
    height: 100svh;
    position: relative;
    z-index: 1;
}
.top_mv::after {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    opacity: 0.7;
    background: linear-gradient(-80deg, rgba(255, 255, 255, 0), rgba(17, 39, 90, 0.3));
}

.top_mv_movie {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

.top_mv_header {
    width: 116px;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding: 28px;
    box-sizing: border-box;
}

.top_mv_header_logo {
    width: 60px;
    height: 100%;
}

.top_mv_header_lang {
    display: flex;
    gap: 0px;
    font-size: 1.4rem;
    color: #F9F9F5;
}

.top_mv_header_lang a {
    color: #F9F9F5;
    text-decoration: none;
}

.top_mv_header_nav {
    width: fit-content;
    font-size: 2.4rem;
    display: none;
    flex-direction: column;
    gap: 30px;
    padding: 20px 0;
}

.top_mv_header_nav a {
    width: fit-content;
    color: #F9F9F5;
    text-decoration: none;
}
.top_mv_header_nav a::after {
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background-color: #F9F9F5;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease-in-out;
}
@media (any-hover: hover) {
    .top_mv_header_nav a:hover::after {
        transform: scaleX(1);
    }
}

.top_mv_hamburger {
    width: 25px;
    height: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 5px;
    cursor: pointer;
    margin: 0 auto 0 0;
}
.top_mv_hamburger_line {
    width: 25px;
    height: 1px;
    background-color: #F9F9F5;
}
.top_mv_hamburger_line:nth-child(2) {
    width: 20px;
}
.top_mv_hamburger_line:nth-child(3) {
    width: 14px;
}

.top_mv_news {
    display: none;
    align-items: center;
    gap: 6px;
    width: fit-content;
    position: absolute;
    bottom: 50px;
    left: 0;
    z-index: 1;
    padding: 20px 200px 20px 50px;
    background: linear-gradient(to right, #DDE7EF 65%, transparent 100%);
    color: #2D323D;
    text-decoration: none;
}

.top_mv_news_label {
    font-size: 2rem;
    line-height: 1;
}

.top_mv_news_line {
    width: 25px;
    height: 0.75px;
    background: #2D323D;
    transform: rotate(117.23deg);
}

.top_mv_news_title {
    font-size: 1.3rem;
    line-height: 1;
}

.top_mv_news_arrow {
    width: 18px;
    transition: transform 0.3s ease-in-out;
}

@media (any-hover: hover) {
    .top_mv_news:hover .top_mv_news_arrow {
        transform: translateX(15px);
    }
}

.top_mv_scroll {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    position: absolute;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
}

.top_mv_scroll_text {
    font-size: 1.4rem;
    font-weight: 500;
    color: #F9F9F5;
}
.top_mv_scroll_img {
    width: 32px;
    animation: topMvScroll 1.5s ease-in-out infinite;
}

@keyframes topMvScroll {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(8px);
    }
    100% {
        transform: translateY(0px);
    }
}

/* top gallery */
.top_gallery {
    position: relative;
    z-index: 1;
    background: #F3F9FE;
    padding: 20vh 0 30vh;
    height: 100vh;
    position: sticky;
    top: 0;
    overflow: hidden;
}

.top_gallery .sec_inner {
    max-width: unset;
    padding: 0 0 0 28px;
}

.top_gallery_carousel {
    position: relative;
    overflow: hidden;
    /* margin: 30px 0 0; */
}

.top_gallery_carousel_content.swiper-wrapper {
    height: 30vh;
    align-items: center;
    justify-content: flex-start;
    margin: 0 0 60px;
}

/* .top_gallery_carousel .swiper-slide {
    width: auto;
    max-width: calc(100% - 28px);
    position: relative;
    top: 10%;
    transform-origin: left center;
    padding: 20px;
    box-sizing: border-box;
    &.active {
        z-index: 2;
        padding: 0;
    }
} */

.top_gallery_carousel .swiper-slide {
    width: auto;
    max-width: calc(100% - 28px);
    position: relative;
    top: 10%;
    transform-origin: center center;
    transition: transform 0.6s ease, z-index 0.3s ease;
    box-sizing: border-box;
    z-index: 1;
    margin-right: 24px;
}

.top_gallery_carousel .swiper-slide img {
    display: block;
    width: auto;
    height: 100%;
    object-fit: contain;
    transition: transform 0.6s ease;
}
.top_gallery_carousel .swiper-slide.active img {
    transform: scale(1.1);
    z-index: 2;
}

.top_gallery_carousel .swiper-slide img {
    box-sizing: border-box;
}

/* .top_gallery_carousel_content img {
    display: block;
    width: auto;
    height: 100%;
    object-fit: cover;
} */

.top_gallery_carousel_toggles {
    position: relative;
    display: flex;
    justify-content: flex-start;
    gap: 10px;
    margin: 11px 0;
}

.top_gallery_carousel_toggles .swiper-button-prev,
.top_gallery_carousel_toggles .swiper-button-next {
    width: 30px;
    height: 30px;
    color: #000;
    position: relative;
    margin: unset;
    right: unset;
    left: unset;
    background: #2D323D;
    border-radius: 50%;
    transition: all 0.3s ease-in-out;
}
.top_gallery_carousel_toggles .swiper-button-prev {
    transform: rotate(180deg);
}
@media (any-hover: hover) {
    .top_gallery_carousel_toggles .swiper-button-prev:hover,
    .top_gallery_carousel_toggles .swiper-button-next:hover {
        opacity: 0.5;
    }
}

.top_gallery_carousel_toggles .swiper-button-next.swiper-button-disabled, 
.top_gallery_carousel_toggles .swiper-button-prev.swiper-button-disabled {
    opacity: 0.5;
}
.top_gallery_carousel_toggles .swiper-button-prev::after,
.top_gallery_carousel_toggles .swiper-button-next::after {
    width: 18px;
    height: 100%;
    content: '';
    display: block;
    background: url(../img/white_arrow.svg) no-repeat center center / contain;
    border-radius: 50%;
}

.top_gallery_carousel .top_gallery_carousel_pagination.swiper-pagination {
    position: relative;
    top: unset;
    bottom: unset;
    margin: unset;
    display: flex;
    margin: 30px 0;
}


.top_gallery_carousel_pagination .swiper-pagination-bullet {
    background: #2D323D; /* ドット色 */
    opacity: 0.5;
}
.top_gallery_carousel_pagination .swiper-pagination-bullet-active {
    opacity: 1;
}


/* ページネーション */
.swiper-pagination {
    display: flex;
    gap: 8px;
    margin-top: 20px;
}

.pagination-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #ccc;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.3s;
    &.active {
        background-color: #333;
    }
}
.swiper-button-prev.disabled,
.swiper-button-next.disabled {
    opacity: 0.5;
    pointer-events: none;
    cursor: default;
}

/* top about */
.top_about {
    position: relative;
    z-index: 1;
    background: #F3F9FE;
    background: linear-gradient(-130deg, #C9CDCD, #11275A);
    padding: 100px 0;
    margin: 100px 0 0;
}

.top_about_inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
}

.top_about_left {
    width: 100%;
    color: #F9F9F5;
}

.top_about_title {
    font-size: 2.6rem;
    line-height: 3rem;
    margin: 0 0 40px;
}

.top_about_sp_image {
    display: block;
    width: 100%;
    margin: 0 0 40px;
}

.top_about_title_small {
    font-size: 2.2rem;
    line-height: 3.3rem;
}

.top_about_subtitle {
    font-size: 1.6rem;
    line-height: 1.5;
    margin: 0 0 15px;
}

.top_about_text_wrap {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.top_about_text {
    font-size: 1.3rem;
    line-height: 2.5;
}

.top_about_right {
    display: none;
    width: 50%;
    max-width: 500px;
    position: sticky;
    top: 0vh;
    align-items: center;
    align-self: flex-start;
}

.top_about_right img {
    position: relative;
}

.top_about_bottom {
    width: 100%;
    max-height: 110px;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
}

.gradient_bg {
    position: relative;
    z-index: 1;
    background: linear-gradient(to bottom, #ECECE3, #DDE7EF);
}

.top_instagram {
    padding: 60px 0 100px;
}

.top_instagram_title {
    text-align: center;
}

.top_instagram_wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin: 20px auto;
}

.top_instagram_item {
    width: calc((100% - 20px) / 2);
    aspect-ratio: 1;
}

.top_instagram_item img {
    width: 100%;
    object-fit: cover;
    display: block;
}

.top_plan {
    padding: 100px 0;
}

.top_plan_text {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.top_plan_text_desc {
    font-size: 1.4rem;
    font-weight: 500;
    padding: 0 0 20px;
}

.top_plan_favorite {
    max-width: 455px;
    padding: 20px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    box-shadow: 3px 3px 5px 0 #2D323D66;
}

.top_plan_favorite_label {
    font-size: 1.3rem;
    line-height: 1;
    padding: 6px 20px;
    border-radius: 100px;
    color: #F9F9F5;
    background: #2D323D;
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(0, -50%);
}

.top_plan_favorite_title {
    font-size: 1.8rem;
    line-height: 1;
}

.top_plan_favorite_price {
    font-size: 2.4rem;
    line-height: 1;
    letter-spacing: 0;
}

.top_case {
    padding: 100px 0;
}

.top_case_title {
    text-align: center;
}

.top_case_subtitle {
    font-size: 1.6rem;
    line-height: 1;
    text-align: center;
    margin: 0px 0 0;
}

.top_case_list {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin: 40px 0;
}

.top_case_item {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 20px;
    background: #fff;
    color: #2D323D;
    text-decoration: none;
    box-shadow: 3px 3px 5px 0 #2D323D66;
    border-radius: 40px 0 0 0;
}

.top_case_item_image {
    width: 100%;
    height: 140px;
    object-fit: cover;
    display: block;
    border-radius: 20px 0 0 0;
    transition: all 0.3s ease-in-out;
}
@media (any-hover: hover) {
    .top_case_item:hover {
        .top_case_item_image {
            filter: brightness(0.7);
        }
    }
}

.top_case_item_text {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0 10px 20px;
    box-sizing: border-box;
    position: relative;
}

.top_case_item_text_title {
    font-size: 1.6rem;
}

.top_case_item_text_place {
    font-size: 1.4rem;
    line-height: 1;
}

.top_case_item_arrow {
    width: 20px;
    position: absolute;
    bottom: 20px;
    right: 20px;
    transition: all 0.6s ease-in-out;
}

@media (any-hover: hover) {
    .top_case_item:hover {
        .top_case_item_arrow {
            transform: translate(10px, 0%);
        }
    }
}
.top_case .main_btn {
    margin: 0 auto 0;
}

.top_blog {
    padding: 100px 0;
    position: relative;
    z-index: 1;
    background: #86909E;
}

.top_blog_title {
    color: #F9F9F5;
}

.top_blog_list {
    display: flex;
    gap: 10px;
    margin: 30px 0;
}

.top_blog_item {
    width: calc(50% - 5px);
    aspect-ratio: 1.4;
    position: relative;
}
.top_blog_item:nth-of-type(3) {
    display: none;
}
.top_blog_item:nth-of-type(4) {
    display: none;
}

.top_blog_item_tag {
    font-size: 1.3rem;
    line-height: 1;
    position: absolute;
    top: 0;
    left: 0;
    background: #2D323D;
    color: #F9F9F5;
    padding: 10px;
}

.top_blog_item_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.top_blog .main_btn {
    width: 200px;
    border-color: #F9F9F5;
    padding: 10px 44px 10px 15px;
}

.top_blog .main_btn::after {
    background: #F9F9F5;
}

.top_blog .main_btn_text {
    color: #F9F9F5;
}

/* -----------about-----------*/
.about_page {
    background: linear-gradient(to bottom, #F9F9F5, #DDE7EF);
}

.about_promise {
    padding: 0px 0;
}

.about_promise_logo {
    display: block;
    width: 68px;
    margin: 0 auto 10px;
}

.about_promise_title {
    font-size: 4.5rem;
    line-height: 1;
    text-align: center;
}

.about_promise_subtitle {
    font-size: 1.4rem;
    font-weight: 500;
    text-align: center;
}

.about_promise_list {
    margin: 30px auto;
    display: flex;
    flex-direction: column;
}

.about_promise_item {
    width: 100%;
    margin: 0 auto;
    padding: 20px 10px 20px;
    border-top: 1px solid #2D323D;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-sizing: border-box;
    gap: 15px;
}
.about_promise_item:first-of-type {
    border-top: none;
}

.about_promise_item_num {
    font-size: 4rem;
    line-height: 1;
}

.about_promise_item_title {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
}

.about_promise_item_text {
    font-size: 1.4rem;
    line-height: 2.1;
}

.about_about {
    padding: 100px 0 50px;
}

.about_about_content {
    display: flex;
    flex-direction: column-reverse;
    gap: 50px;
}

.about_about_content_left {
    width: 100%;
}

.about_about_content_left_first,
.about_about_content_left_second {
  overflow: hidden; /* 画像がはみ出るのを防止 */
}

.about_about_content_left_first img,
.about_about_content_left_second img {
    scale: 1.3;
    object-fit: cover;
}

.about_about_content_left_first {
    display: block;
    width: 80%;
    aspect-ratio: 0.7;
    object-fit: cover;
    margin: 0 auto 0 0;
}

.about_about_content_left_second {
    display: block;
    width: 60%;
    margin: -50px 0 0 auto;
}

.about_about_content_right {
    width: 100%;
}

.about_about_content_right_title {
    font-size: 5rem;
    line-height: 1;
}

.about_about_content_right_subtitle {
    font-size: 1.4rem;
    font-weight: 500;
}

.about_about_content_right_phrase {
    font-size: 2rem;
    line-height: 50px;
    margin: 20px 0;
}
.about_about_content_right_phrase span {
    font-size: 2.6rem;
    line-height: 40px;
}

.about_about_content_right_text {
    max-width: 490px;
    font-size: 1.3rem;
    line-height: 2;
}

.about_member {
    padding: 50px 0 50px;
}

.about_member_content {
    display: flex;
    flex-direction: column;
    gap: 50px;
    position: relative;
    z-index: 1;
}

.about_member_content_right {
    width: 100%;
    position: relative;
    z-index: -1;
}

.about_member_content_right_first,
.about_member_content_right_second,
.about_member_content_right_third,
.about_member_content_right_fourth {
    overflow: hidden;
}

.about_member_content_right_first img,
.about_member_content_right_second img,
.about_member_content_right_third img,
.about_member_content_right_fourth img {
    scale: 1.2;
    object-fit: cover;
}

.about_member_content_right_first {
    display: block;
    width: 40%;
    object-fit: cover;
    position: relative;
    margin: -20% 0 0 auto;
    z-index: -2;
}

.about_member_content_right_second {
    display: block;
    width: 50%;
    object-fit: cover;
    position: relative;
    z-index: -1;
    margin: -5% auto 0 0;
}

.about_member_content_right_third {
    display: block;
    width: 40%;
    object-fit: cover;
    position: relative;
    margin: -10% 0 0 auto;
    z-index: -2;
}

.about_member_content_right_fourth {
    display: block;
    width: 40%;
    object-fit: cover;
    position: relative;
    z-index: -3;
    margin: 0 auto 0 10%;
}

.about_member_content_left {
    width: 100%;
}

.about_member_content_left_title {
    font-size: 5rem;
    line-height: 1;
}

.about_member_content_left_subtitle {
    font-size: 1.4rem;
    font-weight: 500;
}

.about_member_content_left_phrase {
    font-size: 2rem;
    line-height: 33px;
    margin: 20px 0;
}
.about_member_content_left_phrase span {
    font-size: 2.6rem;
    line-height: 40px;
}

.about_member_content_left_text {
    max-width: 575px;
    font-size: 1.3rem;
    line-height: 2;
}

.about_review {
    padding: 50px 0 100px;
}

.about_review .sec_inner {
    padding: 0;
}

.about_review_title {
    font-size: 5rem;
    line-height: 1;
    text-align: left;
    padding: 0 28px;
}

.about_review_list {
    margin: 20px 0;
}

.about_review_item.swiper-slide {
    height: unset;
    display: flex;
    flex-direction: column;
}

.about_review_item_image {
    border-radius: 10px 10px 0 0;
    display: block;
}

.about_review_item_title {
    font-size: 1.6rem;
    font-weight: 500;
    padding: 10px 10px;
    background: #F9F9F5;
}

.about_review_item_place {
    font-size: 1.3rem;
    line-height: 1;
    padding: 0px 10px 10px;
    background: #F9F9F5;
}

.about_review_item_text {
    font-size: 1.3rem;
    line-height: 2.1;
    padding: 7.5px 10px;
    background: #F9F9F5;
    border-radius: 0 0 10px 10px;
    flex-grow: 1;
}

.about_review_carousel_toggles {
    position: relative;
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 11px 0;
}

.about_review_carousel_toggles .swiper-button-prev,
.about_review_carousel_toggles .swiper-button-next {
    width: 30px;
    height: 30px;
    color: #000;
    position: relative;
    margin: unset;
    right: unset;
    left: unset;
    background: #2D323D;
    border-radius: 50%;
    transition: all 0.3s ease-in-out;
}
@media (any-hover: hover) {
    .about_review_carousel_toggles .swiper-button-prev:hover,
    .about_review_carousel_toggles .swiper-button-next:hover {
        opacity: 0.5;
    }
}

.about_review_carousel_toggles .swiper-button-prev {
    transform: rotate(180deg);
}
.about_review_carousel_toggles .swiper-button-next.swiper-button-disabled, 
.about_review_carousel_toggles .swiper-button-prev.swiper-button-disabled {
    opacity: 0.5;
}
.about_review_carousel_toggles .swiper-button-prev::after,
.about_review_carousel_toggles .swiper-button-next::after {
    width: 18px;
    height: 100%;
    content: '';
    display: block;
    background: url(../img/white_arrow.svg) no-repeat center center / contain;
    border-radius: 50%;
}

.about_review_carousel .about_review_carousel_pagination.swiper-pagination {
    position: relative;
    top: unset;
    bottom: unset;
    margin: unset;
    display: flex;
    justify-content: center;
    margin: 20px 0;
}


.about_review_carousel_pagination .swiper-pagination-bullet {
    background: #2D323D; /* ドット色 */
    opacity: 0.5;
}
.about_review_carousel_pagination .swiper-pagination-bullet-active {
    opacity: 1;
}

.about_review .main_btn {
    margin: 30px auto 0;
}

/* -----------privacy_policy-----------*/
.privacy_policy_page {
    background: linear-gradient(to bottom, #F9F9F5, #DDE7EF);
}

.privacy_policy {
    padding: 0px 0px 100px;
}

.privacy_policy .sec_inner {
    max-width: 1080px;
    padding: 0 28px;
}

.privacy_policy_title {
    font-size: 2.8rem;
    font-weight: 600;
}

.privacy_policy_desc {
    font-size: 1.6rem;
    font-weight: 500;
    margin: 16px 0;
}

.privacy_policy_label {
    font-size: 1.6rem;
    font-weight: 500;
    margin: 16px 0 8px;
}

.privacy_policy_text {
    font-size: 1.3rem;
    line-height: 1;
}

.privacy_policy_list_text {
    font-size: 1.3rem;
    line-height: 1;
    display: flex;
}
.privacy_policy_list_text::before {
    content: '・';
    display: block;
    border-radius: 50%;
}

/* -----------plan-----------*/
.plan_page {
    background: linear-gradient(to bottom, #F9F9F5, #DDE7EF);
}

.plan_content {
    padding: 14px 0 100px;
}

.plan_content_desc {
    font-size: 1.3rem;
    line-height: 2.1;
    text-align: center;
    font-weight: 500;
}

.plan_content_desc_strong {
    font-size: 1.3rem;
    line-height: 2.1;
    font-weight: bold;
}

.plan_content_desc_link {
    font-weight: 500;
    text-decoration: underline;
    color: #86909E;
}

.plan_content_main {
    display: none;
}

.plan_content_title {
    height: 94px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: url(../img/plan_main_head.webp) no-repeat center center / cover;
    color: #F9F9F5;
    border-radius: 10px 10px 0 0;
    position: relative;
    z-index: 1;
}
.plan_content_options .plan_content_title {
    background: url(../img/plan_options_head.webp) no-repeat -150px center / cover;
}
.plan_content_title::after {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background: #2D323D80;
    border-radius: 10px 10px 0 0;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

.plan_content_title_label {
    font-size: 2rem;
    font-weight: 600;
}

.plan_content_title_text {
    font-size: 1.1rem;
    text-align: center;
    line-height: 1;
}

.plan_content_main_sp {
    display: block;
    padding: 50px 0px 0px;
    position: relative;
}

.plan_swipe_text {
    width: 152px;
    aspect-ratio: 1;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    pointer-events: none;
}

.plan_swipe_text.is-hidden {
    opacity: 0;
}

.plan_table_dotted {
    border-bottom: 0.75px solid transparent;
    border-image: repeating-linear-gradient(
        to right,
        #86909E 0,
        #86909E 1.5px,
        transparent 1.5px,
        transparent 3px
    ) 1;
}

.plan_main_swiper_item {
    width: calc(100% - 48px) !important;
    margin: 0 0 10px;
    box-shadow: 3px 3px 5px 0 #2D323D66;
    border-radius: 0 0 10px 10px;
}

.plan_content_main_sp .plan_main_content {
    padding: 40px 20px 30px;
    background: #FFFFFF;
    border-radius: 0 0 10px 10px;
}

.plan_content_main_sp .plan_main_top {
    font-size: 1.4rem;
    font-weight: 500;
    border-bottom: 1px solid #86909E;
    line-height: 1;
    margin: 0 0 10px;
    padding: 0 0 10px;
    position: relative;
}

.plan_content_main_sp .plan_table_cell_price {
    font-size: 2rem;
    font-weight: 400;
    line-height: 1;
}

.plan_content_main_sp .plan_main_group {
    display: flex;
    flex-direction: column;
}

.plan_content_main_sp .plan_table_head {
    font-size: 1.4rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0 0 10px;
}

.plan_content_main_sp .plan_table_head_icon {
    width: 20px;
}

.plan_content_main_sp .plan_table_item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 5px;
    margin: 0 0 10px;
    padding: 0 0 10px;
    border-bottom: 1px solid #86909E;
}

.plan_content_main_sp .plan_main_group:last-of-type .plan_table_item:last-of-type {
    border-bottom: none;
}

.plan_content_main_sp .plan_table_cell_text {
    font-size: 1.1rem;
    line-height: 1;
}

.plan_content_main_sp .plan_table_cell_text_small {
    font-size: 0.9rem;
    line-height: 1.2;
}

.plan_content_main_sp .plan_table_cell_check {
    font-size: 1.3rem;
    display: flex;
    justify-content: center;
    font-family: "Scheherazade New", sans-serif;
    line-height: 1;
}
.plan_content_main_sp .plan_main_group:nth-of-type(3) .plan_table_cell_check {
    font-size: 1.5rem;
}

.plan_content_main_sp .plan_table_cell_check_unit {
    font-size: 1.3rem;
    line-height: 1;
    font-family: "Noto Serif JP", serif;
}

.plan_table_popular_img {
    width: 64px;
    position: absolute;
    top: 0;
    left: -12px;
    transform: translate(0, -100%);
}

.plan_main_carousel_toggles {
    width: calc(100% + 20px);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    display: flex;
    justify-content: center;
    justify-content: space-between;
    gap: 10px;
    margin: 11px 0;
}

.plan_main_carousel_toggles .swiper-button-prev,
.plan_main_carousel_toggles .swiper-button-next {
    width: 30px;
    height: 30px;
    color: #000;
    position: relative;
    margin: unset;
    right: unset;
    left: unset;
    background: #2D323D;
    border-radius: 50%;
}
@media (any-hover: hover) {
    .plan_main_carousel_toggles .swiper-button-prev:hover,
    .plan_main_carousel_toggles .swiper-button-next:hover {
        opacity: 0.5;
    }
}

.plan_main_carousel_toggles .swiper-button-prev {
    transform: rotate(180deg);
}
.plan_main_carousel_toggles .swiper-button-prev::after,
.plan_main_carousel_toggles .swiper-button-next::after {
    width: 18px;
    height: 100%;
    content: '';
    display: block;
    background: url(../img/white_arrow.svg) no-repeat center center / contain;
    border-radius: 50%;
}

.plan_content_options {
    margin: 50px 24px 0px;
    border-radius: 10px;
    box-shadow: 3px 3px 5px 0 #2D323D66;
}

.plan_content_options_table {
    width: 100%;
    background: #FFFFFFD9;
    padding: 30px 20px;
    border-radius: 0 0 10px 10px;
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
}

.plan_options_table_inner {
    width: 100%;
}

.plan_options_table_inner_pc {
    display: none;
}

.plan_options_table_travel {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.plan_options_table_wrap {
    width: 100%;
    padding: 0 0 10px;
    margin: 0 0 10px;
    border-bottom: 0.75px solid #86909E;
}
.plan_options_table_wrap:last-of-type {
    border: none;
}

.plan_options_category {
    display: flex;
    align-items: center;
    gap: 10px;
}

.plan_options_category_icon {
    width: 20px;
}

.plan_options_category_text {
    font-size: 1.6rem;
    font-weight: 500;
}

.plan_options_list {
    padding: 0;
    margin: 0;
}

.plan_options_list_item {
    display: flex;
    align-items: center;
    gap: 5px;
    position: relative;
    padding: 3.5px 0 3.5px 14px;
}
.plan_options_list_item::before {
    content: '・';
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(-10%, -50%);
}
.plan_options_table_travel .plan_options_list_item::before {
    content: '・';
    display: block;
    position: absolute;
    left: 0;
    top: 10px;
    transform: translate(-10%, -50%);
}

.plan_options_table_travel .plan_options_list_item {
    flex-wrap: wrap;
}

.plan_options_list_item_text {
    font-size: 1.1rem;
    line-height: 1;
}

.plan_options_list_item_text .pc {
    display: inline-block;
}

.plan_options_table_travel .plan_options_list_item:nth-of-type(1) .plan_options_list_item_text {
    font-weight: bold;
}
.plan_options_table_travel .plan_options_list_item:nth-of-type(1) .plan_options_list_item_text:nth-of-type(1) {
    width: 100%;
}

.plan_options_list_item_price {
    font-size: 1.3rem;
    line-height: 1;
}

.plan_options_list_item_price_small {
    font-size: 1.1rem;
    line-height: 1;
    font-family: "Noto Serif JP", serif;
}

.plan_options_list_item_dot {
    font-size: 1.3rem;
    line-height: 1;
    font-weight: 500;
}

.plan_options_note {
    font-size: 1.1rem;
    line-height: 1.5;
    border-top: 0.75px solid #86909E;
    padding: 30px 0 0;
}

.plan_page .main_btn {
    margin: 10px auto 0 -5px;
    padding: 8.5px 35px 8.5px 10px;
}

.plan_content_bottom {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    margin: 50px 0 0;
    position: relative;
    padding: 0 24px;
    gap: 20px;
}

.plan_content_bottom_images {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.plan_content_bottom_images_img1,
.plan_content_bottom_images_img2 {
    overflow: hidden;
}

.plan_content_bottom_images_img1 {
    width: 80%;
    max-width: 320px;
    margin: 0px auto 100px 0;
}

.plan_content_bottom_images_img2 {
    width: 70%;
    max-width: 320px;
    margin: -130px 0 0 0;
}

.plan_content_bottom_images_img1 img,
.plan_content_bottom_images_img2 img {
    scale: 1.3;
    object-fit: cover;
}

.plan_content_bottom_wrapper_title {
    font-size: 3.5rem;
    line-height: 1;
}

.plan_content_bottom_wrapper_text {
    font-size: 2.3rem;
    font-weight: 600;
}

.plan_content_bottom_wrapper_desc {
    font-size: 1.4rem;
    font-weight: 500;
    margin: 10px 0 10px;
}

/* -----------blog-----------*/
.blog_page {
    background: linear-gradient(to bottom, #F9F9F5, #DDE7EF);
}
.blog_content {
    padding: 30px 0;
}

.blog_content .sec_inner {
    max-width: 1016px;
}

.blog_content_list {
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.blog_content_item {
    width: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 30px;
    text-decoration: none;
    color: #2D323D;
    flex-direction: column;
}
.blog_content_item.hidden {
    display: none;
}

.blog_content_item_image_wrap {
    width: 100%;
    height: 200px;
    flex-shrink: 0;
    position: relative;
}

.blog_content_item_image_tag {
    font-size: 1.3rem;
    line-height: 1;
    color: #F9F9F5;
    background: #2D323D;
    padding: 10px;
    position: absolute;
    top: 0;
    left: 0;
}

.blog_content_item_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.blog_content_item_date {
    font-size: 1.5rem;
    line-height: 1;
}

.blog_content_item_title {
    font-size: 2rem;
    line-height: 1.2;
    margin: 3px 0 10px;
}

.blog_content_item_text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 2.5;
    font-size: 1.3rem;
    -webkit-line-clamp: 4; /* 表示する行数 */
    max-height: calc(2.5em * 4);
    text-overflow: ellipsis;
    white-space: normal;
}

.blog_content_item_text br:nth-of-type(1) {
    display: none;
}

.blog_content_more_wrap {
    margin: 40px auto;
    text-align: center;
    display: flex;
    justify-content: center;
}

.blog_content_more_wrap .more_btn {
    font-size: 1.6rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
    background: none;
    border: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.blog_content_more_wrap .more_btn_arrow {
    width: 17px;
}

/* -----------blog single-----------*/
.blog_single_content_item_info {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.blog_single_content_item_category {
    width: fit-content;
    font-size: 1.3rem;
    color: #F9F9F5;
    padding: 10px;
    background: #2D323D;
    text-decoration: none;
}

.blog_single_content_item_title {
    font-size: 2rem;
    font-weight: 600;
}

.blog_single_content_item_date {
    font-size: 1.3rem;
    line-height: 1;
}

.blog_single_content_item_date_num {
    font-size: 1.5rem;
}

.blog_single_content .blog_single_inner {
    padding: 50px 0px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.blog_single_content_item_image {
    width: 100%;
    max-height: 540px;
    object-fit: cover;
    display: block;
}

.blog_single_page .wp-block-image img {
    height: 100%;
    max-height: 570px;
    object-fit: contain;
}

.blog_single_page h2 {
    font-size: 2.8rem;
    font-weight: 600;
    padding: 0 0 0 10px;
    border-bottom: 2px solid #2D323D;
}
.blog_single_page h3 {
    font-size: 2.2rem;
    font-weight: 600;
    padding: 0 0 0 10px;
    border-left: 2px solid #2D323D;
}

.blog_single_page .main_btn {
    margin: 0px auto 100px;
}

/* -----------case-----------*/
.case_page {
    background: linear-gradient(to bottom, #F9F9F5, #DDE7EF);
}

.case_content {
    padding: 30px 0;
}

.case_content .sec_inner {
    max-width: 1016px;
}

.case_content_list {
    display: flex;
    flex-direction: column;
    gap: 50px;
    padding: 0 0 50px;
}

.case_content_item {
    width: 100%;
    height: 385px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    background: #fff;
    color: #2D323D;
    flex-direction: column;
    padding: 20px;
    box-sizing: border-box;
    box-shadow: 3px 3px 5px 0 #2D323D66;
}
.case_content_item.hidden {
    display: none;
}

.case_content_item_image_wrap {
    width: 100%;
    flex-shrink: 0;
    position: relative;
    border-radius: 7px;
    overflow: hidden;
}

.case_content_item_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.case_content_item_info {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.case_content_item_title {
    max-height: 84px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    font-size: 2rem;
    line-height: 1.4;
}

.case_content_item_date {
    font-size: 1.3rem;
    line-height: 1;
}

.case_content_item_place {
    font-size: 1.3rem;
    line-height: 1;
}

.case_content_item_plan {
    width: fit-content;
    font-size: 1.6rem;
    line-height: 1.5;
    padding: 5px 10px;
    background: #DDE7EF8C;
}

.case_content_pagination {
    display: flex;
    justify-content: center;
}

.case_content_pagination .page-numbers {
    font-size: 1.5rem;
    line-height: 1;
    font-family: "Scheherazade New", serif;
    color: #2D323D;
    text-decoration: none;
    padding: 1px 10px;
    /* border-right: 1px solid #86909E; */
}
.case_content_pagination .page-numbers:last-child {
    border-right: none;
}

.case_content_pagination .page-numbers.prev img {
    transform: rotate(180deg);
}

.case_content_pagination .page-numbers:not(.prev):not(.next):not(.dots) {
    border-right: 1px solid #86909E;
}
.case_content_pagination .page-numbers:not(.prev):not(.next):last-child,
.case_content_pagination .page-numbers:not(.prev):not(.next):not(.dots):has(+ .page-numbers.next),
.case_content_pagination .page-numbers:not(.prev):not(.next):not(.dots):has(+ .page-numbers.dots) {
    border-right: none;
}

/* -----------case single-----------*/
.case_single_page {
    background: linear-gradient(to bottom, #F9F9F5, #DDE7EF);
}

.case_single_content_item_info {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0px 0 0;
}

.case_single_content_item_category {
    width: fit-content;
    font-size: 1.3rem;
    color: #F9F9F5;
    padding: 10px;
    background: #2D323D;
}

.case_single_content_item_title {
    font-size: 1.8rem;
}

.case_single_content_item_place {
    font-size: 1.4rem;
    line-height: 1.5;
    font-weight: 500;
}

.case_single_content_item_date {
    font-size: 1.3rem;
    line-height: 1;
}

.case_single_content_item_tags_list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;

}

.case_single_content_item_tags_list_item {
    font-size: 13px;
    line-height: 1;
}

.case_single_content .case_single_inner {
    padding: 30px 0px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.case_single_content_item_image {
    width: 100%;
    max-height: 540px;
    object-fit: cover;
    display: block;
}

.case_single_page .main_btn {
    margin: 0px auto 100px;
}

.case_single_sec_title {
    font-size: 3.5rem;
    line-height: 1;
}

.case_single_information_content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: column;
    gap: 40px;
}

.case_single_information_left {
    width: 100%;
}

.case_single_information_item {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 10px 20px 10px;
    box-sizing: border-box;
    border-bottom: 1px solid #2D323D;
}

.case_single_information_item_title {
    flex-shrink: 0;
    width: 100px;
    font-size: 1.4rem;
    font-weight: 500;
}

.case_single_information_item_value {
    font-size: 1.3rem;
    line-height: 1;
}

.case_single_information_recommend {
    padding: 10px;
    box-sizing: border-box;
    border-bottom: 1px solid #2D323D;
    padding: 10px;
}

.case_single_information_recommend_title {
    font-size: 1.6rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
}

.case_single_information_recommend_value {
    font-size: 1.3rem;
    line-height: 1.5;
}

.case_single_information_item_value a {
    display: block;
    font-size: 1.3rem;
    line-height: 1;
    text-decoration: underline;
    color: #86909E;
    margin: 10px 0 0;
}

.case_single_information_recommend_icon {
    width: 20px;
    height: 20px;
    object-fit: contain;
    display: block;
}

.case_single_information_content_image {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.case_single_information_content_image img {
    aspect-ratio: 1;
    object-fit: cover;
}

.case_single_pictures {
    padding: 100px 0 50px;
}

.case_single_pictures .sec_inner {
    padding: 0 calc(20px + 28px);
}

.case_single_pictures_inner {
    position: relative;
}

.case_single_pictures .case_single_sec_title {
    margin: 0 0 30px -20px;
}

.case_single_pictures_content {
    /* height: 320px; */
}

.case_single_pictures .swiper-wrapper {
    align-items: center;
}

.case_single_pictures .swiper-slide {
    height: 100%;
    cursor: pointer;
}
.case_single_pictures .swiper-slide img {
    height: 100%;
    object-fit: contain;
}

.case_single_pictures .swiper-button-prev,
.case_single_pictures .swiper-button-next {
    top: calc(50% + 55px);
    color: #2D323D;
    font-weight: 100;
    transform: translateY(-50%);
    z-index: 8;
}
.case_single_pictures .swiper-button-prev {
    left: -40px;
    background: url(../img/swiper_next.svg) no-repeat center center / contain;
    transform: translateY(-50%) rotate(180deg);
}
.case_single_pictures .swiper-button-next {
    right: -40px;
    left: unset;
    background: url(../img/swiper_next.svg) no-repeat center center / contain;
}
.case_single_pictures .swiper-button-prev::after,
.case_single_pictures .swiper-button-next::after {
    display: none;
}
.image-modal {
    padding: 0 20px;
}
.case_pictures_modal_prev,
.case_pictures_modal_next {
    width: 60px;
    padding: 0;
    position: absolute;
    top: 50%;
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: center;
    transition: opacity 0.3s ease-in-out;
}
.case_pictures_modal_prev img,
.case_pictures_modal_next img {
    width: 98%;
    max-width: 40px;
}
@media (any-hover: hover) {
    .case_pictures_modal_prev:hover,
    .case_pictures_modal_next:hover {
        opacity: 0.5;
    }
}
.case_pictures_modal_prev {
    left: 0px;
    transform: translate(-100%, -50%) rotate(180deg);
    cursor: pointer;
}
.case_pictures_modal_next {
    right: 0px;
    transform: translate(100%, -50%);
    cursor: pointer;
}

.case_pictures_modal_prev.disabled,
.case_pictures_modal_next.disabled {
    opacity: 0.5;
    pointer-events: none;
}

.case_pictures_modal_close {
    width: 28px;
    max-width: 35px;
    position: absolute;
    top: 0px;
    right: -20px;
    transform: translate(100%, -100%);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}

.case_pictures_modal_close .case_pictures_modal_close-img {
    cursor: pointer;
}

.case_single_video {
    padding: 50px 0 100px;
}

.case_single_video .sec_inner {
    padding: 0 calc(0px + 28px);
}

.case_single_video_content {
    width: 100%;
    max-width: 743px;
    aspect-ratio: 16/9;
    height: 100%;
    object-fit: cover;
    margin: 30px auto 0;
}

.case_single_video_content iframe {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.case_single_pictures .image-modal {
    display: none;
    position: fixed;
    inset: 0;
    background: linear-gradient(-130deg, #ECECE37a, #86909E7a);
    justify-content: center;
    align-items: center;
    z-index: 9999;
    cursor: zoom-out;
}

.case_single_pictures .image-modal.active {
    display: flex;
    cursor: default;
}

.case_single_pictures .image-modal-content {
    width: 75%;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
}

.case_single_pictures .image-modal-content img {
    object-fit: contain;
    cursor: default;
    display: block;
    height: 100%;
}

.case_single_pictures .image-modal-content #modal-image {
    max-width: 70vw;
}

.case_single_pictures .image-modal-close {
    width: 28px;
    max-width: 35px;
    position: absolute;
    top: 0px;
    right: -15px;
    transform: translate(100%, -100%);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}

.case_single_pictures .image-modal-close .image-modal-close-img {
    cursor: pointer;
}

/* -----------gallery-----------*/
.gallery_content {
    padding: 0px 0 50px;
}

.gallery_content_inner {
    display: flex;
    flex-direction: column-reverse;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin: 0 0 50px;
}

.gallery_content_tags {
    max-width: 600px;
    padding: 0 30px 0 0;
    max-height: 40px;
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    position: relative;
    z-index: 2;
    transition: all 0.3s ease-in-out;
}

.gallery_content_tags.active {
    max-height: 100%;
}

.gallery_content_tags_item_more {
    width: 16px;
    position: absolute;
    top: 15px;
    right: 0;
    transition: all 0.3s ease-in-out;
}
.gallery_content_tags.active .gallery_content_tags_item_more {
    transform: rotate(180deg);
}

.gallery_content_tags_item {
    font-size: 1.3rem;
    line-height: 1;
    padding: 10px;
    box-sizing: border-box;
    border-radius: 100px;
    border: 1px solid #2D323D;
    cursor: pointer;
}
.gallery_content_tags_item.active {
    background: #2D323D;
    color: #fff;

}

.gallery_content_search {
    width: fit-content;
    max-width: 100%;
    position: relative;
}

.gallery_content_search input {
    width: 250px;
    max-width: 100%;
    font-size: 1.3rem;
    line-height: 1;
    border: 1px solid #2D323D;
    padding: 10px;
    box-sizing: border-box;
    border-radius: 100px;
    background: transparent;
    padding: 16px 35px 16px 15px;
    transition: all 0.3s ease-in-out;
}
.gallery_content_search input:focus {
    width: 320px;
}

.gallery_content_search_icon {
    width: 22px;
    height: 22px;
    object-fit: contain;
    display: block;
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translate(0, -50%);
}

.gallery_content_search_text {
    font-size: 1.3rem;
    line-height: 1;
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translate(0, -50%);
    color: #fff;
    background: #2D323D;
    padding: 10px;
    border-radius: 100px;
    opacity: 0;
    cursor: pointer;
    pointer-events: none;
    transition: all 0.3s ease-in-out;
}
.gallery_content_search input:focus ~ .gallery_content_search_text {
    opacity: 1;
    pointer-events: auto;
}

.gallery_content_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* スマホ2列 */
    grid-auto-rows: 5px; /* 高さの基準を少し大きめに */
    gap: 10px;
}

.gallery_item_wrapper {
    position: relative;
    overflow: hidden;
}

.gallery_content_item {
    width: 100%;
    display: block;
    cursor: default;
}

.gallery_content_list .gallery_item_wrapper img {
    display: block;
    object-fit: cover;
    height: 100%;
    cursor: pointer;
}

.gallery_hover_info {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6);
    color: #fff;
    text-align: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    flex-direction: column;
    gap: 3px;
}

.gallery_hover_info_place {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.5;
}

.gallery_hover_info_line {
    width: 80%;
    height: 1px;
    background: #fff;
}

.gallery_hover_info_date {
    font-size: 1.6rem;
    line-height: 1;
}

.gallery_item_wrapper:hover .gallery_hover_info {
    opacity: 1;
}

/* ---- モーダル ---- */
.gallery_modal {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(-130deg, #ECECE3aa, #86909Eaa);
    justify-content: center;
    align-items: center;
    padding: 0 20px;
    box-sizing: border-box;
}

.gallery_modal_content {
    width: 75%;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    margin: 0 auto;
}

.gallery_modal_info {
    align-self: flex-start;
    padding: 20px 0 0px 9px;
    font-size: 1.3rem;
    line-height: 1;
}

.gallery_modal_img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    cursor: default;
    display: block;
}

.gallery_modal_prev,
.gallery_modal_next {
    width: 60px;
    position: absolute;
    top: 50%;
    background: none;
    border: none;
    cursor: pointer;
    transition: opacity 0.3s ease-in-out;
}
.gallery_modal_prev img,
.gallery_modal_next img {
    width: 98%;
    max-width: 40px;
}
.gallery_modal_prev {
    left: 0px;
    transform: translate(-100%, -50%) rotate(180deg);
}
.gallery_modal_next {
    right: 0px;
    transform: translate(100%, -50%);
}

.gallery_modal_prev.disabled,
.gallery_modal_next.disabled {
    opacity: 0.5;
    pointer-events: none;
}

@media (any-hover: hover) {
    .gallery_modal_prev:hover,
    .gallery_modal_next:hover {
        opacity: 0.5;
    }
}
.gallery_modal_close {
    width: 28px;
    max-width: 35px;
    position: absolute;
    top: 0px;
    right: -20px;
    transform: translate(100%, -100%);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}

.gallery_modal_close .gallery_modal_close-img {
    cursor: pointer;
}

.gallery_content_more_wrap {
    margin: 40px auto;
    text-align: center;
    display: flex;
    justify-content: center;
}

.gallery_content_more_wrap .more_btn {
    font-size: 1.6rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
    background: none;
    border: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.gallery_content_more_wrap .more_btn_arrow {
    width: 17px;
}

/* -----------ipad-----------*/

@media screen and (min-width:640px) {

    .sp {
        display: block;
    }

    .pc {
        display: none;
    }

    /* -----------共通-----------*/
    .top_page .fixed_line {
        opacity: 0;
        pointer-events: none;
        transition: opacity 1s ease-in-out;
    }
    .top_page .fixed_line.show {
        opacity: 1;
        pointer-events: auto;
    }
    .fixed_line {
        display: flex;
    }

    .sec_title {
        font-size: 5.6rem;
    }

    .main_btn_text {
        font-size: 1.6rem;
    }

    .radius_btn_text {
        font-size: 1.6rem;
    }

    .sp_banner {
        display: none;
    }

    .breadcrumbs {
        padding: 150px 0 50px;
    }

    .breadcrumbs .sec_inner {
        justify-content: flex-end;
    }

    /* -----------SP header-----------*/
    .fixed_header {
        width: 168px;
        padding: 30px;
        flex-direction: column;
        background: transparent;
        backdrop-filter: none;
    }

    .fixed_header_inner {
        gap: 20px;
        align-items: flex-start;
    }

    .fixed_header_lang {
        font-size: 1.6rem;
    }

    .fixed_header_hamburger {
        width: 22px;
        height: 22px;
        align-items: flex-start;
    }
    .fixed_header_hamburger_line {
        width: 28px;
    }
    .fixed_header_hamburger_line:nth-child(2) {
        width: 22px;
    }
    .fixed_header_hamburger_line:nth-child(3) {
        width: 16px;
    }

    .fixed_header_nav {
        background: #F9F9F566;
        backdrop-filter: blur(4px);
    }

    .fixed_header_nav_head {
        display: none;
    }

    .fixed_header_nav_inner {
        width: 300px;
        padding: 50px;
        align-items: flex-start;
        background: #ECECE3CC;
    }

    .fixed_header_nav_close {
        display: block;
    }

    /* -----------footer-----------*/
    .footer_contact_time {
        width: fit-content;
    }

    .footer_contact_text {
        text-align: center;
    }


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

    .loading_inner {
        width: 35%;
    }
    .top_mv_header {
        width: 180px;
        padding: 40px;
    }

    .top_mv_header_logo {
        width: 80px;
    }

    .top_mv_header_lang {
        font-size: 2rem;
    }

    .top_mv_header_nav {
        display: flex;
        font-size: 2rem;
    }

    .top_mv_hamburger {
        display: none;
    }

    .top_mv_news {
        display: flex;
        padding: 20px 60px 20px 30px;
    }
    @media (any-hover: hover) {
    .top_mv_news:hover .top_mv_news_arrow {
            transform: translateX(10px);
        }
    }

    .top_mv_scroll {
        display: none;
    }

    .top_gallery {
        padding: 10vh 0 200px 120px;
    }

    .top_gallery_carousel_content.swiper-wrapper {
        max-height: 340px;
        margin: 0 0 50px;
    }

    .top_gallery_carousel_toggles {
        margin: 30px 0;
    }
    
    .top_gallery_carousel_toggles .swiper-button-prev,
    .top_gallery_carousel_toggles .swiper-button-next {
        width: 37px;
        height: 37px;
    }

    .top_gallery_carousel_pagination .swiper-pagination-bullet {
        width: 10px;
        height: 10px;
        margin: 0;
    }

    .top_about {
        padding: 200px 30px;
    }

    .top_about_title {
        font-size: 3.8rem;
        line-height: 4.4rem;
    }
    
    .top_about_title_small {
        font-size: clamp(2.8rem, 3rem, 3rem);
        line-height: 6rem;
    }

    .top_instagram_item {
        width: calc((100% - 60px) / 4);
    }

    .top_instagram {
        padding: 50px 0 200px;
    }

    .top_case_subtitle {
        margin: 10px 0 0;
    }
    
    .top_case_list {
        gap: 40px;
    }

    .top_case_item {
        height: 140px;
        flex-direction: row;
        align-items: center;
    }

    .top_case_item_image {
        width: 40%;
        height: 100%;
        border-radius: 40px 0 0 0;
    }

    .top_case_item_text {
        flex-grow: 1;
        padding: 0 45px 0 0;
    }

    .top_case_item_arrow {
        bottom: 50%;
        right: 20px;
        transform: translateY(50%);
    }
    @media (any-hover: hover) {
        .top_case_item:hover {
            .top_case_item_arrow {
                transform: translate(10px, 50%);
            }
        }
    }

    .top_blog .main_btn {
        width: 250px;
        padding: 10px 50px 10px 31px;
    }

    /* -----------about-----------*/
    .about_promise_title {
        font-size: 7rem;
    }

    .about_promise_item {
        width: 80%;
        padding: 30px 20px 20px;
    }

    .about_promise_item_num {
        font-size: 6rem;
    }

    .about_promise_item_title {
        font-size: clamp(2rem, 2vw, 2.4rem);
    }

    .about_promise_item_text {
        font-size: 1.6rem;
    }

    .about_member_content {
        flex-direction: column;
    }

    .about_about_content_left_title {
        font-size: 7rem;
    }

    .about_about_content_left_phrase {
        font-size: 3rem;
        line-height: 60px;
        margin: 30px 0;
    }
    .about_about_content_left_phrase span {
        font-size: 4rem;
        line-height: 50px;
    }

    .about_about_content_left_text {
        line-height: 2.5;
    }

    .about_member_content_left_title {
        font-size: 7rem;
    }

    .about_member_content_left_phrase {
        font-size: 3rem;
        line-height: 60px;
        margin: 30px 0;
    }
    .about_member_content_left_phrase span {
        font-size: 4rem;
        line-height: 50px;
    }

    .about_member_content_left_text {
        line-height: 2.5;
    }
    
    .about_review {
        padding: 50px 0 200px;
    }

    .about_review_title {
        font-size: 7rem;
        padding: 0;
    }
    
    .about_review_carousel_toggles .swiper-button-prev,
    .about_review_carousel_toggles .swiper-button-next {
        width: 37px;
        height: 37px;
    }

    .about_review_carousel_pagination .swiper-pagination-bullet {
        width: 10px;
        height: 10px;
        margin: 0;
    }

    .about_review .sec_inner {
        padding: 0 20px;
    }

    .about_review_item_title {
        padding: 10px 20px;
    }

    .about_review_item_place {
        padding: 0px 20px 10px;
    }

    .about_review_item_text {
        padding: 7.5px 20px;
    }

    /* -----------plan-----------*/
    .plan_main {
        padding: 50px 0 150px;
    }

    .plan_main_desc .pc {
        display: block;
    }

    .plan_main_desc {
        font-size: 1.6rem;
    }

    .plan_main_desc_strong {
        font-size: 1.6rem;
    }

    .plan_options_table_travel .plan_options_list_item {
        flex-wrap: unset;
    }
    .plan_options_table_travel .plan_options_list_item:nth-of-type(1) .plan_options_list_item_text:nth-of-type(1) {
        width: unset;
    }

    .plan_options_list_item_text {
        font-size: 1.3rem;
    }
    .plan_options_list_item_text br {
        display: none;
    }

    .plan_options_list_item_price {
        font-size: 1.5rem;
    }
    .plan_options_list_item_price br {
        display: none;
    }

    .plan_options_list_item_price_small {
        font-size: 1.3rem;
    }

    .plan_options_list_item_dot {
        font-size: 1.5rem;
    }

    .plan_options_note {
        font-size: 1.3rem;
        padding: 50px 0 0;
    }

    .plan_content_bottom {
        flex-direction: row;
        margin: 100px 0 0;
    }

    .plan_content_bottom_images_img1 {
        width: 85%;
        max-width: 350px;
        margin: 0 65px 100px 0;
    }
    
    .plan_content_bottom_images_img2 {
        width: 70%;
        max-width: 280px;
        margin: -140px 0 0 0;
    }

    .plan_content_bottom_wrapper_title {
        font-size: 5rem;
        text-align: center;
    }
    
    .plan_content_bottom_wrapper_text {
        font-size: 2.2rem;
        text-align: center;
    }
    
    .plan_content_bottom_wrapper_desc {
        font-size: 1.6rem;
        white-space: nowrap;
        text-align: center;
        margin: 30px 0 30px;
    }
    .plan_content_bottom_wrapper_desc .pc {
        display: block;
    }

    /* -----------blog-----------*/
    .plan_content {
        padding: 14px 0 160px;
    }

    .blog_content_item_text {
        font-size: 1.6rem;
    }

    .blog_content_item {
        width: 80%;
    }

    .blog_content_list {
        gap: 70px;
    }
    
    .blog_content_item_image_wrap {
        height: 300px;
    }

    /* -----------blog single-----------*/
    .blog_single_content_item_title {
        font-size: 2.8rem;
    }

    .blog_single_content .blog_single_inner {
        padding: 50px 60px;
        gap: 50px;
    }

    /* -----------case-----------*/
    .case_content_item {
        width: 80%;
    }

    /* -----------case single-----------*/
    .case_single_content_item_info {
        margin: 50px 0 0;
    }

    .case_single_content_item_title {
        font-size: 2.8rem;
    }

    .case_single_content .case_single_inner {
        padding: 50px 0px 100px;
        gap: 50px;
    }

    .case_single_information .sec_inner {
        padding: 100px calc(0px + 28px) 100px;
    }
    
    .case_single_sec_title {
        font-size: 6rem;
        margin: 0 0 50px;
    }

    .image-modal {
        padding: 0 100px;
    }

    .case_single_pictures {
        padding: 100px 0 100px;
    }

    .case_single_pictures .case_single_sec_title {
        margin: 0 0 30px -60px;
    }
    
    .case_single_pictures .sec_inner {
        padding: 0 calc(60px + 28px);
    }

    .case_single_pictures .swiper-button-prev {
        left: -60px;
    }

    .case_single_pictures .swiper-button-next {
        right: -60px;
    }

    .case_single_pictures .image-modal-content {
        width: unset;
        height: 75vh;
    }

    .case_pictures_modal_prev,
    .case_pictures_modal_next {
        top: 50%;
    }
    .case_pictures_modal_prev {
        left: -20px;
    }
    .case_pictures_modal_next {
        right: -20px;
    }

    .case_single_video {
        padding: 100px 0 200px;
    }

    .case_single_video .sec_inner {
        padding: 0 calc(0px + 28px);
    }

    /* -----------gallery-----------*/
    .gallery_content {
        padding: 30px 0 50px;
    }

    .gallery_content_inner {
        flex-direction: row;
    }

    .gallery_modal {
        padding: 0 100px;
    }

    .gallery_modal_content {
        width: unset;
        height: 65vh;
    }

    .gallery_modal_close {
        width: 48px;
    }

    .gallery_modal_prev,
    .gallery_modal_next {
        top: 50%;
    }
    .gallery_modal_prev {
        left: -20px;
    }
    .gallery_modal_next {
        right: -20px;
    }
    
    /* -----------privacy_policy-----------*/
    .privacy_policy .sec_inner {
        padding: 0 60px;
    }

}

/* -----------PC-----------*/

@media screen and (min-width:960px) {


    body {
        font-size: 15px;
    }

    .sp {
        display: none;
    }

    .pc {
        display: block;
    }

    /* -----------共通-----------*/
    .sec_title {
        font-size: 7rem;
    }

    /* -----------PC header-----------*/
    .fixed_header {
        padding: 50px;
    }

    .fixed_header_logo {
        width: 68px;
    }


    /* -----------footer-----------*/
    .footer_contact {
        padding: 100px 0;
    }

    .footer_contact_wrap {
        flex-direction: row;
        justify-content: center;
        gap: 30px;
    }

    .footer_contact_title {
        font-size: 2.8rem;
    }

    .footer_contact_text {
        font-size: 1.6rem;
    }
    
    .footer_contact_btn {
        width: unset;
        max-width: unset;
        margin: 0;
        justify-content: center;
        padding: 20px 30px;
        gap: 10px;
        transition: all 0.5s ease-in-out;
    }
    @media (any-hover: hover) {
        .footer_contact_btn:hover {
            transform: translate(-5px, -5px);
        }
    }
    
    .footer_contact_btn_text {
        font-size: 2.4rem;
        line-height: 1.5;
        flex-grow: unset;
    }

    .footer_contact_btn_icon {
        width: 28px;
    }

    .footer_contact_time {
        font-size: 1.3rem;
        line-height: 2.5;
    }

    .footer_contact_time_holiday {
        font-size: 1.3rem;
    }

    .footer_main {
        padding: 100px 0 80px;
    }

    .footer_main .sec_inner {
        gap: 30px;
    }

    .footer_main_line {
        margin: 0;
    }

    .footer_main_list {
        flex-direction: row;
        gap: 15px;
    }

    .footer_main_list_inner {
        width: calc((100% - 75px) / 6);
    }

    /* -----------top-----------*/
    .top_mv_header {
        width: 214px;
        padding: 50px;
    }

    .top_mv_header_logo {
        width: 114px;
    }

    .top_mv_header_lang {
        font-size: 2.4rem;
    }

    .top_mv_header_nav {
        padding: 30px 0;
    }

    .top_mv_news {
        padding: 20px 200px 20px 50px;
    }

    .top_mv_news_label {
        font-size: 2rem;
    }

    .top_gallery {
        /* padding: 10vh 0 300px 180px; */
        padding: 0 0 300px 180px;
        display: flex;
        align-items: center;
    }

    .top_plan {
        padding: 200px 0;
    }

    .top_plan .sec_inner {
        display: flex;
        align-items: flex-end;
        gap: 40px;
    }
    
    .top_plan_text_desc {
        font-size: 1.6rem;
    }

    .top_plan_favorite_title {
        font-size: 2rem;
    }

    .top_plan_favorite_price {
        font-size: 3rem;
    }

    .top_plan_image img {
        display: block;
    }
    
    .top_instagram_item {
        width: calc((100% - 80px) / 5);
    }

    .top_case {
        padding: 150px 0;
    }

    .top_case_item {
        height: 196px;
    }

    .top_case_item_image {
        width: 100%;
    }

    .top_case_item_text {
        padding: 0 50px 0 20px;
    }

    .top_case_item_text_title {
        font-size: 2.4rem;
    }

    .top_case_item_text_place {
        font-size: 2rem;
    }

    .top_case_item_arrow {
        width: 25px;
    }

    .top_blog {
        padding: 150px 0;
    }

    .top_blog_list {
        gap: 30px;
    }

    .top_blog_item {
        width: calc((100% - 90px) / 4);
    }
    .top_blog_item:nth-of-type(3) {
        display: block;
    }
    .top_blog_item:nth-of-type(4) {
        display: block;
    }

    .footer_contact_title .pc {
        display: inline-block;
    }

    /* -----------about-----------*/
    .about_promise_logo {
        margin: 0 auto 50px;
    }

    .about_promise_title {
        font-size: 10rem;
    }

    .about_promise_list {
        margin: 50px auto;
        flex-direction: row;
    }

    .about_promise_item {
        width: calc(100% / 3);
        border-left: 1px solid #2D323D;
        border-top: unset;
        padding: 0 20px 0px;
        gap: 20px;
    }
    .about_promise_item:last-of-type {
        border-right: 1px solid #2D323D;
        border-bottom: unset;
    }

    .about_promise_item_title {
        height: 70px;
    }

    .about_about {
        padding: 200px 0 100px;
    }

    .about_about_content {
        flex-direction: row;
    }

    .about_about_content_left {
        width: 60%;
    }

    .about_member {
        padding: 200px 0 150px;
    }

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

    .about_member_content_right {
        width: 100%;
    }

    .about_member_content_right {
        position: absolute;
        right: 60px;
    }

    .about_member_content_right_first {
        width: 264px;
        position: absolute;
        bottom: 0;
        right: 0;
    }
    
    .about_member_content_right_second {
        width: 215px;
        position: absolute;
        bottom: 165px;
        right: min(190px, 13vw);
    }

    .about_member_content_right_third {
        width: 264px;
        position: absolute;
        bottom: 300px;
        right: 0;
    }

    .about_member_content_right_fourth {
        width: 264px;
        position: absolute;
        bottom: 386px;
        right: 216px;
    }

    /* -----------plan-----------*/
    .plan_content_desc {
        font-size: 1.5rem;
        line-height: 2.5;
    }
    
    .plan_content_desc_strong {
        font-size: 1.5rem;
    }

    .plan_content {
        padding: 14px 0 100px;
    }
    
    .plan_content_main {
        display: block;
        margin: 50px 0 0;
        border-radius: 20px;
        box-shadow: 3px 3px 5px 0 #2D323D66;
    }

    .plan_content_title::after {
        border-radius: 20px 20px 0 0;
    }

    .plan_content_title_label {
        font-size: 2.8rem;
    }

    .plan_content_title_text {
        font-size: 1.6rem;
    }

    .plan_content_main_table {
        width: 100%;
        background: #FFFFFFD9;
        padding: 60px 50px 40px;
        border-radius: 0 0 20px 20px;
        box-sizing: border-box;
    }

    .plan_table_row {
        display: flex;
        gap: 10px;
        margin: 0 0 10px;
    }

    .plan_table_category {
        margin: 0;
    }

    .plan_table_top {
        display: flex;
        gap: 10px;
        margin: 0 0 10px;
    }

    .plan_table_top_item {
        width: calc(100% / 5);
        padding: 0 0 10px;
        font-size: 1.3rem;
        line-height: 1;
        display: flex;
        flex-direction: column;
        gap: 5px;
        border-bottom: 1px solid #86909E;
    }
    .plan_table_top_item:nth-of-type(2) {
        min-width: 130px;
    }
    .plan_table_top_item:nth-of-type(3) {
        min-width: 114px;
    }

    .plan_table_top_popular {
        position: relative;
    }
    .plan_table_top_popular_img {
        width: 64px;
        position: absolute;
        top: 0;
        left: -20px;
        transform: translate(0, -100%);
    }

    .plan_table_cell_price {
        align-self: flex-end;
    }

    .plan_table_cell_price span {
        font-size: 0.9rem;
        line-height: 1;
    }

    .plan_table_item {
        width: calc(100% / 5);
        padding: 0 0 10px;
        display: flex;
        justify-content: center;
        align-items: center;
        border-bottom: 0.75px solid #86909E;
    }

    .plan_table_head {
        width: 36%;
        display: flex;
        align-items: center;
        gap: 5px;
        padding: 0 0 10px;
        border-bottom: 0.75px solid #86909E;
    }
    
    .plan_table_category .plan_table_head {
        border: none;
    }

    .plan_table_head_icon {
        width: 20px;
    }

    .plan_table_head_text {
        font-size: 1.3rem;
        line-height: 1;
    }

    .plan_table_head_text_small {
        font-size: 1.1rem;
    }

    .plan_table_cell_check {
        font-size: 1.5rem;
        display: flex;
        justify-content: center;
        font-family: "Scheherazade New", sans-serif;
        line-height: 1;
        margin: 0 0 -4px;
    }

    .plan_table_cell_check_unit {
        font-size: 1.3rem;
        line-height: 1;;
        font-family: "Noto Serif JP", serif;
    }
    
    .plan_table_row:last-of-type .plan_table_head {
        border-bottom: none;
    }
    .plan_table_row:last-of-type .plan_table_item {
        border-bottom: none;
    }

    .plan_content_options {
        margin: 100px 0 0px;
        border-radius: 20px;
    }

    .plan_content_options .plan_content_title {
        background: url(../img/plan_options_head.webp) no-repeat center center / cover;
    }

    .plan_content_options_table {
        padding: 60px 50px 40px;
        border-radius: 0 0 20px 20px;
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .plan_options_table_wrap {
        width: 100%;
        height: 124px;
    }
    
    .plan_options_table_travel {
        width: 100%;
        height: unset;
        padding: 0 0 20px;
        margin: 0 0 20px;
    }

    .plan_options_table_inner {
        display: none;
    }

    .plan_options_table_inner_pc {
        width: 100%;
        display: flex;
        justify-content: space-between;
        position: relative;
        margin: 0 0 50px;
    }
    .plan_options_table_inner_pc::after {
        content: '';
        display: block;
        width: 1px;
        height: 100%;
        border-right: 1px solid transparent;
        border-image: repeating-linear-gradient(
            to top,
            #86909E 0,
            #86909E 2px,
            transparent 2px,
            transparent 4px
        ) 1;
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
    }

    .plan_options_table_inner_pc_wrap {
        width: calc(50% - 20px);
    }

    .plan_options_table_inner_pc_wrap .plan_options_table_wrap:last-of-type {
        padding: 0;
        margin: 0;
    }
    
    .plan_content_main_sp {
        display: none;
    }

    .plan_options_list_item_text {
        font-size: 1.3rem;
    }

    .plan_options_list_item_dot {
        font-size: 1.5rem;
    }

    .plan_page .main_btn {
        margin: 50px auto 0;
    }

    .plan_content_bottom {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin: 100px 0 0;
        gap: 50px;
    }

    .plan_content_bottom .main_btn {
        flex-shrink: 0;
    }

    .plan_content_bottom_images {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
    }

    .plan_content_bottom_images_img1 {
        width: 68%;
        max-width: unset;
        margin: 0 auto 0 0;
    }

    .plan_content_bottom_images_img2 {
        width: 65%;
        max-width: unset;
        margin: -80px 0 0 0;
    }

    .plan_content_bottom_wrapper_title {
        font-size: 7rem;
    }
    
    .plan_content_bottom_wrapper_text {
        font-size: 2.8rem;
    }
    
    .plan_content_bottom_wrapper_desc {
        font-size: 1.6rem;
    }

    /* -----------blog-----------*/
    .blog_content_item {
        width: 100%;
        flex-direction: row;
    }

    .blog_content_item_image_wrap {
        width: 420px;
        height: 300px;
    }

    .blog_content_more_wrap {
        margin: 70px auto;
    }

    /* -----------case-----------*/
    .case_content_list {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 50px;
        padding: 0 0 100px;
    }
    
    .case_content_item {
        width: calc((100% - 100px) / 3);
    }

    .case_content_item_image_wrap {
        width: 100%;
        aspect-ratio: 1.4;
    }

    .case_content_more_wrap {
        margin: 70px auto;
    }

    /* -----------case single-----------*/
    .case_single_sec_title {
        font-size: 5rem;
    }

    .case_single_information_content {
        display: flex;
        align-items: center;
        flex-direction: row;
        justify-content: space-between;
        gap: 20px;
    }

    .case_single_information_left {
        max-width: 330px;
    }

    .case_single_information_content_image {
        width: 50%;
    }

    /* -----------gallery-----------*/
    .gallery_content_more_wrap {
        margin: 70px auto;
    }

    .gallery_content_list {
        grid-template-columns: repeat(3, 1fr);
    }

    /* -----------privacy_policy-----------*/
    .privacy_policy {
        padding: 80px 0px;
    }

}


@media screen and (min-width:1025px) {


    .sp {
        display: none;
    }

    .pc {
        display: block;
    }

    /* -----------共通-----------*/
    .breadcrumbs .sec_inner {
        justify-content: flex-start;
    }

    /* -----------PC header-----------*/


    /* -----------footer-----------*/
    .footer_contact_btn {
        padding: 20px 40px;
    }

    /* -----------top-----------*/
    .top_about_left {
        width: 50%;
        max-width: 500px;
    }

    .top_about_title {
        font-size: clamp(3.6rem, 3.6rem, 4rem);
        line-height: 5rem;
    }

    .top_about_right {
        display: flex;
        top: calc(50vh - 333px / 2);
    }

    
.top_about_sp_image {
    display: none;
}

}