/*------------------------------------------------------------------------------
  PC or ALL
------------------------------------------------------------------------------*/


/* 通常コンテンツ（フェードなし、スライドインのみ） */
.content {
    position: relative;
    transform: translateY(100px);
    /* 初期状態は下にオフセット */
    transition: transform 1s ease;
    z-index: 2;
    background: #fff;
    /* transform のみ */
    background: url(../images/body-bg.png);
}

body:not(.home) .content {
    transform: none;
}

.pagetop {
    z-index: 5;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes ripple {
    0% {
        width: 10px;
        height: 10px;
        opacity: 1;
    }

    100% {
        width: 100px;
        height: 100px;
        opacity: 0;
    }
}



* {
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
}

.en {
    font-weight: normal !important;
}

.ja {
    letter-spacing: 0.07em;
}

/* 通常コンテンツ（フェードなし、スライドインのみ） */

/* ブラーエフェクト用の共通クラス */
.scroll-blur {
    opacity: 0;
    filter: blur(10px);
    transform: translateY(40px);
    /* 少し下から上に */
    transition: opacity 1s ease, filter 1s ease, transform 1s ease;
}

/* スクロール時に発火するクラス */
.scroll-blur.in-view {
    opacity: 1;
    filter: blur(0px);
    transform: translateY(0);
}

.fade-in {
    opacity: 0;
    transition: all 0.8s ease-out;
    position: relative;
}

.fade-in.top {
    transform: translateY(-50px);
}

.fade-in.left {
    transform: translateX(-50px);
}

.fade-in.right {
    transform: translateX(50px);
}

.fade-in.bottom {
    transform: translateY(50px);
}

.fade-in.visible {
    opacity: 1;
    transform: translate(0, 0);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: normal;
    letter-spacing: 0.07em;
}

.sp-none {
    display: block;
}

.sp-block {
    display: none;
}


.header-translate {
    position: fixed;
    left: 2vmax;
    top: 2vmax;
    z-index: 999;
    z-index: 1004;
}


.header-translate .gt_float_switcher {
    background: transparent !important;
    box-shadow: none !important;
}

.header-translate .gt-selected {
    background-color: transparent !important;
}

.header-translate .gt_float_switcher img {
    width: 20px;
}

.header-translate .gt_float_switcher .gt_options a,
.header-translate .gt_float_switcher .gt-selected .gt-current-lang span.gt-lang-code {
    color: #000;
    font-size: 1.8rem;
    mix-blend-mode: difference;
}

.header-news a {
    position: fixed;
    text-align: center;
    z-index: 9999;
    left: 5px;
    bottom: 5px;
    padding: 0.8em 2em;
    background: rgba(255, 255, 255, 0.8);
    line-height: 1.4;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    font-size: 1.4rem;
}

.header-news a::before {
    content: "\e614";
    margin: 0 5px 0 0;
    font-family: "Material Symbols Outlined";
    font-variation-settings: "FILL"1, "wght"500, "GRAD"0, "opsz"20;
}


.moved .header-news a:hover {
    background: rgba(255, 255, 255, 1);
    opacity: 1;

}

.header-news a .en {
    font-size: 1.0rem;
    display: block;
}



@keyframes zoomUp {
    0% {
        transform: scale(1.15);
    }

    100% {
        transform: scale(1);
    }
}

.slideshow-type01 .swiper-slide-active img,
.slideshow-type01 .swiper-slide-duplicate-active img,
.slideshow-type01 .swiper-slide-prev img {
    animation: zoomUp 10s linear 0s normal both;
}

.gnav {
    transition: opacity 1s ease-in-out;
    /* フェードをより柔らかく */
}

.gnav {
    position: absolute;
    top: 60px;
    right: 140px;
    z-index: 2;
}

.gnav ul {
    display: flex;
    gap: 2em;
}

.gnav li {
    writing-mode: vertical-rl;
    text-orientation: upright;
    width: auto;
    overflow-wrap: break-word;
    word-wrap: break-word;
    white-space: normal;
}

.gnav li a {
    color: #fff;
    letter-spacing: 0.2em;
    font-weight: bold;
}


.drawer-open {
    top: 40px;
    right: 20px;
    background: none;
    color: black;
    mix-blend-mode: difference;
}



.drawer-open .name {
    display: block;
    position: absolute;
    top: 75px;
    left: 25px;
    font-size: 1.3rem;
    transform: rotate(90deg);
    letter-spacing: 0.2em;
    font-family: "Noto Serif JP", serif;
    color: #fff;
}

.drawer-active .drawer-open {
    mix-blend-mode: normal;

}

.drawer-active .drawer-open .bar01,
.drawer-active .drawer-open .bar02 {
    background: var(--text-color);

}


.drawer-active .name {
    color: var(--text-color);

}


.more-btn {
    margin-top: 4vmax;
    display: block;
}

.more-btn a {
    min-width: 300px;
    display: inline-block;
    text-align: center;
    padding: 1.5em 2em;
    background: none;
    border: none;
    position: relative;
    text-transform: uppercase;
    font-weight: bold;
    letter-spacing: 3px;
    cursor: pointer;
    font-size: 1.4rem;
}

.more-btn a:after,
.more-btn a:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    border: 1px solid var(--text-color);
    transition: transform .2s;
}

.more-btn a:after {
    transform: translate(3px, 3px);
}

.more-btn a:before {
    transform: translate(-3px, -3px);
}

.more-btn a:hover:after,
.more-btn a:hover:before {
    transform: translate(0);
}


.more-btn a span {
    position: relative;
}

.more-btn a span:before,
.more-btn a span:after {
    position: absolute;
    top: 50%;
    right: -2.5em;
    height: 1px;
    background: var(--text-color);
    content: '';
}

.more-btn a span:before {
    width: 30px;
    transform: translateY(-50%);
    background: var(--text-color);
}

.more-btn a span:after {
    width: 8px;
    transform: translateY(-50%) rotate(45deg);
    transform-origin: right center;
}


.footer {
    position: relative;
    z-index: 4;
    padding-top: 0;
}


.footer-inner {
    display: flex;
    gap: 2vmax;
    justify-content: space-between;
    margin-bottom: 4vmax;
    position: relative;
}

.footer-logo {
    flex-grow: 0;
}

.footer-add {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.footer-nav {
    flex-grow: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    margin-top: 20px;
}

.footer-nav .nav ul {
    display: flex;
}

.footer .nav li {
    border-right: 1px solid #fff;
    display: inline-block;
    padding-right: 1em;
}

.footer .nav li:last-of-type {
    border-right: none;
    padding-right: 0;
    padding-left: 1em;
}


.footer-add .about {
    height: 100%;
    text-align: left;


}

.footer-add table {
    border-collapse: separate !important;
    border-spacing: 0 20px;
    /* 横方向は 0、縦方向は 10px */
    margin-bottom: 2em;
}



.footer-nav-list ul {
    margin-bottom: 4vmax;
}

.footer-nav-list li {
    margin: 0 0 1em 0;
    font-size: 2.4rem;
    text-align: left;
}

.pagetop a {
    background: var(--main-color);
    color: #fff;
    border: 1px solid #fff;
}

.footer-sub .copyright {
    text-align: center;
}


.footer-sns {
    position: absolute;
    bottom: 10px;
    right: 10px;
    z-index: 2;
    display: flex;
    align-items: center;
    flex-direction: column;

}

.footer-sns .ttl {
    display: block;
    font-size: 1.2rem;
    font-weight: bold;
    color: #ffffff;
    transform: rotate(90deg);
    transform-origin: center;
    letter-spacing: 0.2em;
    margin-bottom: 60px;
}

.footer-sns .sns-icon-list {
    flex-direction: column;
}

.footer-sns .sns-icon-list li a {
    background: none;
    width: 30px;
    height: 30px;
}

.google-map iframe {
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: grayscale(100%);
    pointer-events: none;
}

.google-map.active iframe {
    pointer-events: auto;
    /* クリックされたら有効化 */
}


.drawer-nav>ul {
    width: 500px;
}

.drawer-nav>ul li .label {
    font-size: 2.4rem;
}

/*------------------------------------------------------------------------------
  LOWER
------------------------------------------------------------------------------*/
.page-header {
    background: url(../images/page-header.png)no-repeat center center /cover;
    position: relative;
    z-index: 1;
}

.page-header::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
}

.page-header .logo {
    position: absolute;
    left: 20px;
    top: 40px;
}

.page-title {
    display: flex;
    align-items: center;
    height: auto;
    min-height: 600px;
    background: none;
}

.page-title h1,
.page-title p {
    writing-mode: vertical-rl;
    text-orientation: upright;
    width: auto;
    overflow-wrap: break-word;
    word-wrap: break-word;
    white-space: normal;
    color: #fff;
    position: relative;
    font-weight: normal;

}

.page-title h1::before,
.page-title p::before {
    position: absolute;
    content: "";
    width: 1px;
    height: 40px;
    top: -80px;
    left: 50%;
    background: #fff;
    display: block;
    transform: translateX(-50%);
}

/* 20250403 added by Fabo */
.mt-0 {
    margin-top: 0 !important;
}

.mt-s {
    margin-top: 4vh !important;
}

.mt-m {
    margin-top: 7vh !important;
}

.mt-l {
    margin-top: 10vh !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.mb-s {
    margin-bottom: 4vh !important;
}

.mb-m {
    margin-bottom: 7vh !important;
}

.mb-l {
    margin-bottom: 10vh !important;
}

.child-page-nav {
    grid-template-columns: repeat(3, 1fr);
    gap: 5px;
}

.child-page-nav li {}

.child-page-nav li a {
    border-radius: 0px;
    background: none;
    color: #000;
    text-align: center;
    padding: 1em 1em 2em 1em;
}

.child-page-nav li a:before {
    content: "\e313";
    position: absolute;
    top: auto;
    bottom: 3px;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Material Symbols Outlined";
    font-variation-settings: "FILL"1, "wght"500, "GRAD"0, "opsz"20;
}

.child-page-nav li.current_page_item a {
    border-bottom: 0;
    background: none;
}

.page-content h2:not([class]),
.page-content h3:not([class]),
.page-content h4:not([class]) {
    margin-bottom: 3vh;
}

.blog-content h2:not([class]),
.page-content h2:not([class]) {
    font-size: 3.8rem;
    padding: 0.5em 0;
    border-bottom: none;
    background: url(../images/title02.png)no-repeat center left /contain;
}

.blog-content h2:not([class]):after,
.page-content h2:not([class]):after,
.blog-content h3:not([class]):after,
.page-content h3:not([class]):after {
    display: none;
}

.blog-content h3:not([class]),
.page-content h3:not([class]) {
    padding: 0.5em 0;
    background: url(../images/title03.png)no-repeat bottom left /contain;
}

.box-color {
    margin: 0 0 6vh;
    padding: 3vh;
    background: #ededed;
}

.box-color :first-child {
    margin-top: 0 !important;
}

.box-color :last-child {
    margin-bottom: 0 !important;
}

.box-border {
    margin: 0 0 6vh;
    padding: 3vh;
    border: 1px solid #000;
}

.box-border :first-child {
    margin-top: 0 !important;
}

.box-border :last-child {
    margin-bottom: 0 !important;
}

.page-content .image-text-type01 .text {
    overflow: hidden;
}

.page-content .image-text-type01 .text :first-child {
    margin-top: 0;
}

.page-content .list-check-type01 {
    display: flex;
    justify-content: flex-start;
}

.align-center {
    text-align: center;
}

.table-type02 table td {
    background: #ededed;
}

.table-price {
    width: calc(100% + 10px);
    margin: 0 -5px 25px;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 5px;
}

.table-price th,
.table-price td {
    padding: 15px;
    text-align: center;
    vertical-align: middle;
}

.table-price th {
    background: var(--main-color);
    color: #fff;
    font-weight: bold;
}

.table-price td {
    background: #ededed;
}

/*------------------------------------------------------------------------------
  TABLET and SHONE
------------------------------------------------------------------------------*/
@media screen and (max-width: 1024px) {


    .content,
    .footer,
    .footer-top-wrap {
        margin-left: 0;
    }

    .gnav {
        display: none;
    }

    .header {
        width: 100%;
        height: 60px;
        background: none;
    }

    .header-logo {
        width: 80px;
        position: absolute;
        left: 0px;
        top: 0;
        text-align: center;
    }

    .drawer-open {
        top: 0px;
        right: 0px;
    }

    .header-translate {
        right: 90px;
        top: 18px;
    }

    .sphone-fixed-footer ul li.menu a:before {
        content: "\ea19";
    }

}

/*------------------------------------------------------------------------------
  TABLET ONLY
------------------------------------------------------------------------------*/
@media screen and (min-width: 600px) and (max-width: 1024px) {}

/*------------------------------------------------------------------------------
  SPHONE ONLY
------------------------------------------------------------------------------*/


@media screen and (max-width: 599px) {
    .header-news {
        display: none;
    }


    .drawer-open .name {
        transform: none;
        top: 55px;
    }



    .moved .header-logo {
        width: 50px;
    }

    .sp-none {
        display: none;
    }

    .sp-block {
        display: block;
    }

    .ttl-en {
        font-size: 10vw;
    }

    .drawer-nav>ul {
        width: 100%;
    }

    .sphone-fixed-footer ul li.reserve a:before {
        content: "\e614";
    }

    .more-btn a {
        min-width: 200px;
    }

    .footer-nav-list {
        display: none;
    }

    .footer-nav .nav ul {
        justify-content: center;
    }

    .footer-inner {
        flex-direction: column;
    }

    .footer-add .about {
        border-top: 1px solid #999;
        margin: 4vmax 0;
    }

    .page-header .logo {
        position: absolute;
        left: 20px;
        top: 20px;
        width: 100px;
    }

    .page-title {
        display: flex;
        align-items: center;
        height: auto;
        min-height: 60vh;
        background: none;
    }

    .page-title h1 span,
    .page-title p span {
        font-size: 2.4rem;
    }


    .child-page-nav li a {
        font-size: 3.2vw;
    }


}