@charset "utf-8";

:root {
    --color-black: #333;
}
html {
    font-family: "Zen Kaku Gothic New", sans-serif;
}
@media (min-width: 769px) {
    html {
        font-size: calc(100 / 1440 * 1vw);
        scroll-padding-top: calc(100 / 1440 * 1vw * 120);
    }
    [disp-only]:not([disp-only~='pc']) {
        display: none !important;
    }
}
@media (max-width: 768px) {
    html {
        font-size: calc(100 / 390 * 1vw);
        scroll-padding-top: calc(100 / 390 * 1vw * 80);
    }
    [disp-only]:not([disp-only~='sp']) {
        display: none !important;
    }
}

.wrap {
    position: relative;
    overflow:hidden;
    background: #fff;
}
@media (min-width: 769px) {
    @media(hover: hover){
        .hover_fade {
            transition: opacity 0.4s;
        }
        .hover_fade:hover {
            opacity: 0.4;
        }
    }
}
.scroll_fade_up {
    transition: opacity 0.4s, translate 0.4s;
    opacity: 0;
    translate: 0 20rem;
}
.scroll_fade_up.is_animated {
    opacity: 1;
    translate: 0 0rem;
}

/* header */
.header {
    position: fixed;
    z-index:30;
    top: 0;
    left: 0;
    width:100%;
}
.header_inner {
    display: flex;
    justify-content: space-between;
}
.header_logo_link {
    display:block;
}
.header_logo_link > img {
    height: auto;
}
.header_nav {
    display: flex;
}
.btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--color-black);
    border:1px solid var(--color-black);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    overflow: hidden;
}
.header_nav_list {
    display: flex;
    margin-inline: 20rem;
    height: 100%;
}
.header_nav_list > li {
    display:flex;
    align-items: center;
}
.header_nav_list > li > a {
    color: #fff;
    text-align: center;
    font-weight: 700;
    text-decoration: none;
}
.main {
    position:relative;
}
.header_logo,
.header_nav_btn_wrap,
.menu_btn {
  position: relative; /* 通常描画 */
  z-index: 1; /* blend の下に埋もれないように保証 */
}

@media (min-width: 769px) {
    .header {
        height: 120rem;
    }
    .header_logo_link {
        padding: 30rem;
    }
    .header_logo_link > img {
        width:60rem;
    }
    .header_nav {
        padding: 28rem 24rem;
    }
    .btn {
        position: relative;
        font-size: 16rem;
        line-height: 1.25;
    }
    .header_nav_btn {
        width: 284rem;
        height: 64rem;
        padding: 21rem 24rem;
    }
    .btn_arrow {
        position: relative;
        width: 36rem;
        height: 100%;
        background: url(../images/btn_arrow.svg) no-repeat 50% 50% / contain;
    }
    @media(hover: hover){
        .btn {
            transition: background-color 0.4s, color 0.4s;
        }
        .btn:hover {
            background-color: #fff;
            color: var(--color-black);
        }
        .btn_arrow {
            transition: clip-path 0.4s, transform 0.4s;
            clip-path: polygon(100% 0%, 100% 100%, 0% 100%, 0% 0%);
        }
        .btn:hover .btn_arrow {
            clip-path: polygon(100% 0%, 100% 100%, 50% 100%, 50% 0%);
            transform: translateX(-4rem);
        }
        .btn::before {
            content:"";
            position: absolute;
            top: 0;
            bottom: 0;
            right: 20rem;
            width: 34rem;
            height: 34rem;
            border-radius: 50%;
            display: block;
            margin-block: auto;
            background:var(--color-black);
            scale: 2;
            transition: scale 0.4s;
        }
        .btn:hover::before {
            scale: 1;
        }
    }
    .header_nav_list_wrap {
        position: fixed;
        z-index:35;
        top: 0;
        right: 0;
        padding: 28rem 24rem;
        height: 120rem;
        margin-right: calc(290rem);
        mix-blend-mode: difference;
        color:#333;
    }
    .header_nav_list > li > a {
        position: relative;
        padding-inline: 20.4rem;
        font-size: 16rem;
        line-height: 1.25;
        padding-block: 20rem;
        margin-top: -10rem;
    }
    @media(hover: hover){
        .header_nav_list > li > a .header_nav_item_link_txt {
            transition: opacity 0.4s;
        }
        .header_nav_list > li > a::before {
            content:"";
            display:block;
            margin-inline: auto;
            position: absolute;
            bottom:0;
            left:0;
            right:0;
            width: calc(100% - 20rem * 2);
            height:4rem;
            background:var(--color-black);
            opacity:0;
            transition: opacity 0.4s;
        }
        .header_nav_list > li > a:hover .header_nav_item_link_txt {
            opacity:0.4;
        }
        .header_nav_list > li > a:hover::before {
            opacity: 1;
        }
    }
    .main {
        padding-top: 120rem;
    }
}
@media (max-width: 768px) {
    .header {
        height: 80rem;
    }
    .header_logo_link {
        padding: 20rem;
    }
    .header_logo_link > img {
        width: 40rem;
    }
    .header_nav {
        padding: 16rem;
    }
    .btn {
        font-size: 12rem;
        line-height: 1.25;
    }
    .header_nav_btn {
        width: 220rem;
        height: 48rem;
        padding: 21rem 24rem;
    }
    .btn_arrow {
        width: 26rem;
        height: 100%;
        background: url(../images/btn_arrow.svg) no-repeat 50% 50% / contain;
    }
    .menu_btn {
        width: 48rem;
        height: 48rem;
        background: var(--color-black);
        border: none;
        position: relative;
        padding: 0;
        margin-right: 8rem;
    }
    .menu_btn_line {
        position:absolute;
        display: block;
        top:0;
        left:0;
        bottom:0;
        right:0;
        margin:auto;
        width:24rem;
        height:2rem;
        background:#fff;
    }
    .menu_btn_line:nth-child(1) {
        translate: 0 -6rem;
    }
    .menu_btn_line:nth-child(3) {
        translate: 0 6rem;
    }
    .menu_btn_line:nth-child(1) {
        transition: translate 0.2s 0.2s, rotate 0.2s;
    }
    .menu_btn_line:nth-child(2) {
        transition: opacity 0.4s;
    }
    .menu_btn_line:nth-child(3) {
        transition: translate 0.2s 0.2s, rotate 0.2s;
    }

    .is_menu_open .menu_btn_line:nth-child(1) {
        transition: translate 0.2s 0s, rotate 0.2s 0.2s;
        translate: 0 0;
        rotate: 30deg;
    }
    .is_menu_open .menu_btn_line:nth-child(2) {
        opacity:0;
    }
    .is_menu_open .menu_btn_line:nth-child(3) {
        transition: translate 0.2s 0s, rotate 0.2s 0.2s;
        translate: 0 0;
        rotate: -30deg;
    }
    .main {
        padding-top: 80rem;
    }

    /* menu */
    .menu {
        display: none;
        position: fixed;
        z-index: 25;
        top:0;
        left:0;
        width:100%;
        height:100%;
        background:#fff;
    }
    .menu_inner {
        position: absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
        overflow:auto;
    }
    .menu_nav_list {
        min-height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
        color: var(--white, #FFF);
        gap:50rem;
        padding-top: 40rem;
    }
    .menu_nav_list > li > a {
        font-size: 16rem;
        font-weight: 700;
        line-height: 1.25;
        color: var(--color-black);
        text-decoration: none;
    }
}

/* mv */
.mv_inner {
    position: relative;
}
.mv_front {
    position:absolute;
    z-index: 1;
    top:0;
    left:0;
    width:100%;
    height:100%;
    pointer-events: none;
}
.mv_ttl {
    height:auto;
    position:absolute;
    display:block;
    left:0;
    right:0;
    margin-inline: auto;
}
.mv_slide_cover {
    overflow: hidden;
}
.mv_slide_cover > img {
    height: auto;
    filter: grayscale(100%);
    transition: filter 2s, scale 2s;
}
.swiper-slide-active .mv_slide_cover > img {
    filter: grayscale(0%);
    scale: 1.2;
}
[class].swiper-pagination-bullet {
    border: 1px solid #fff;
    background: transparent;
}
[class].swiper-pagination-bullet.swiper-pagination-bullet-active {
    background:#fff;
}
@media (min-width: 769px) {
    .mv_ttl {
        width: 443rem;
        bottom: 55rem;
    }
    .mv_slide_cover {
        margin-inline: 40rem;
    }
    .mv_slide_cover > img {
        width: 460rem;
    }
    [class].swiper-pagination-bullet {
        width: 12rem;
        height: 12rem;
        margin-inline: 8rem!important;
        opacity: 1!important;
    }
    .swiper-pagination {
        bottom: 16rem!important;
    }
}
@media (max-width: 768px) {
    .mv_ttl {
        width: 316rem;
        bottom: 40rem;
    }
    .mv_slide_cover {
        margin-top:25rem;
        margin-inline: 25rem;
    }
    .mv_slide_cover > img {
        width: 340rem;
    }
    [class].swiper-pagination-bullet {
        width: 12rem;
        height: 12rem;
        margin-inline: 8rem!important;
        opacity: 1!important;
    }
    .swiper-pagination {
        bottom: 16rem!important;
    }
}

/* anchor_nav */
.anchor_nav {
    margin-inline: auto;
}
.anchor_nav_list {
    display: flex;
}
.anchor_nav_item_link {
    height: 100%;
    position:relative;
    display: block;
    color: inherit;
    text-decoration: none;
}
.anchor_nav_item_img {
    position: relative;
    overflow: hidden;
}
.anchor_nav_item_img img {
    width: 100%;
    height: auto;
}
.anchor_nav_item_ttl {
    font-weight: 900;
}
.anchor_nav_item_txt {
    color: var(--color-black);
}
.anchor_nav_item_arrow {
    position: absolute;
    right: 0;
    bottom: 0;
    background:var(--color-black);
    display:flex;
    justify-content: center;
    align-items: center;
}
.anchor_nav_item_arrow::before {
    content:"";
    background:url(../images/arrow_w_down.svg) no-repeat 50% 50% / contain;
}
@media (min-width: 769px) {
    .anchor_nav {
        margin-top: 160rem;
        width: 1196rem;
    }
    .anchor_nav_list {
        gap: 40rem;
    }
    .anchor_nav_list > li {
        width: 269rem;
    }
    @media(hover: hover){
        .anchor_nav_item_link .anchor_nav_item_img img {
            filter: grayscale(100%);
            transition: filter 0.4s, scale 0.4s;
        }
        .anchor_nav_item_link:hover .anchor_nav_item_img img {
            filter: grayscale(0%);
            scale: 1.2;
        }
        .anchor_nav_item_ttl {
            transition: opacity 0.4s;
        }
        .anchor_nav_item_link:hover .anchor_nav_item_ttl {
            opacity: 0.4;
        }
    }
    .anchor_nav_item_ttl {
        font-size: 20rem;
        line-height: 1.25;
        margin-top: 14rem;
    }
    .anchor_nav_item_txt {
        font-size: 14rem;
        line-height: 1.75;
        margin-top: 6rem;
    }
    .anchor_nav_item_arrow {
        width: 16rem;
        height:16rem;
    }
    .anchor_nav_item_arrow::before {
        width: 12rem;
        height: 12rem;
    }
}
@media (max-width: 768px) {
    .anchor_nav {
        margin-top: 80rem;
        margin-inline: 25rem;
    }
    .anchor_nav_list {
        flex-direction: column;
        gap: 24rem;
    }
    .anchor_nav_item_ttl {
        font-size: 16rem;
        line-height: 1.75;
        margin-top: 8rem;
    }
    .anchor_nav_item_txt {
        font-size: 12rem;
        line-height: 1.5;
        margin-top: 0rem;
    }
    .anchor_nav_item_arrow {
        width: 16rem;
        height:16rem;
    }
    .anchor_nav_item_arrow::before {
        width: 12rem;
        height: 12rem;
    }
    .animation_ready .anchor_nav_item_img img {
        filter: grayscale(100%);
        scale: 1.2;
        transition: filter 1s, scale 1s;
    }
    .animation_ready .is_animated .anchor_nav_item_img img {
        filter: grayscale(0%);
        scale: 1;
    }
}

/* enter_flow */
.enter_flow {
    position: relative;
}
.enter_flow_box {
    margin-inline:auto;
    display: flex;
    align-items: center;
}
.enter_flow_box_ttl {
    flex:1;
}
.enter_flow_box_ttl {
    text-align: center;
}
.enter_flow_box_ttl_en {
    display: block;
    text-align: center;
    color: var(--color-black);
    font-weight: 900;
}
.enter_flow_box_ttl_jp {
    display: block;
    text-align: center;
    color: var(--color-black);
    font-weight: 700;
}
.enter_flow_box_body_step {
    color: var(--color-black);
    text-align: center;
    font-weight: 900;
}
.enter_flow_box_body_ttl {
    color: var(--color-black);
    text-align: center;
    font-weight: 700;
}
.enter_flow_box_body_txt {
    position: relative;
    color: var(--color-black);
    font-weight: 700;
}
.enter_flow_box_body_txt_fukidashi {
    border-bottom:1px solid var(--color-black);
}
.enter_flow_box_body_txt_fukidashi::before {
    content: "";
    position: absolute;
    right: 0;
    left: 0;
    margin-inline: auto;
    display: block;
    rotate: 45deg;
    background: #fff;
    border-right: 1px solid var(--color-black);
    border-bottom: 1px solid var(--color-black);
}
.enter_flow_box_body_btn {
    margin-inline: auto;
}
@media (min-width: 769px) {
    .enter_flow {
        margin-top: 165rem;
    }
    .enter_flow_box {
        width: 852rem;
        gap: 110rem;
    }
    .enter_flow_list > li + li {
        margin-top: 40rem;
    }
    .enter_flow_box_body {
        width: 496rem;
    }
    .enter_flow_box_ttl_en {
        font-size: 40rem;
        line-height: 1.25;
    }
    .enter_flow_box_ttl_jp {
        font-size: 24rem;
        line-height: 1.25;
    }
    .enter_flow_box_body_step {
        font-size: 20rem;
        line-height: 1.25;
    }
    .enter_flow_box_body_ttl {
        font-size: 24rem;
        line-height: 1.25;
    }
    .enter_flow_box_body_txt {
        font-size: 16rem;
        line-height: 1.75;
        margin-top: 12rem;
        padding-bottom: 23rem;
    }
    .enter_flow_box_body_txt_fukidashi::before {
        bottom: calc(1px - 10rem);
        width: 16rem;
        height: 16rem;
    }
    .enter_flow_box_body_btn_wrap {
        margin-top: 10rem;
    }
    .enter_flow_box_body_btn {
        width: 284rem;
        height: 64rem;
        padding: 21rem 24rem;
    }
}
@media (max-width: 768px) {
    .enter_flow {
        margin-top: 78rem;
        margin-inline: 25rem;
    }
    .enter_flow_box {
        flex-direction: column;
        gap: 22rem;
    }
    .enter_flow_list > li + li {
        margin-top: 26rem;
    }
    .enter_flow_box_ttl_en {
        font-size: 32rem;
        line-height: 1.25;
    }
    .enter_flow_box_ttl_jp {
        font-size: 20rem;
        line-height: 1.25;
        margin-top: 5rem;
    }
    .enter_flow_box_body_step {
        font-size: 16rem;
        line-height: 1.25;
    }
    .enter_flow_box_body_ttl {
        font-size: 20rem;
        line-height: 1.25;
    }
    .enter_flow_box_body_txt {
        font-size: 14rem;
        line-height: 1.75;
        margin-top: 12rem;
        padding-bottom: 14rem;
    }
    .enter_flow_box_body_txt_fukidashi::before {
        bottom: calc(1px - 10rem);
        width: 16rem;
        height: 16rem;
    }
    .enter_flow_box_body_btn_wrap {
        margin-top: 10rem;
    }
    .enter_flow_box_body_btn {
        height: 64rem;
        padding: 21rem 24rem;
        font-size: 14rem;
    }
}
.animation_ready .enter_flow_box {
    opacity:0;
    transform: translateY(100rem);
}
.animation_loaded .enter_flow_box.is_animated {
    opacity:1;
    transform: translateY(0%);
    transition: opacity 1s, transform 1s;
}

/* content_inner */
.content_inner {
    position: relative;
}
.content_box {
    overflow:hidden;
}
.content_box_img {
    overflow:hidden;
}
.content_box_img > img {
    width: 100%;
    height: auto;
}
.content_box_ttl {
    color: var(--color-black);
    font-weight: 900;
}
.content_box_txt {
    color: var(--color-black);
}
.content_box_img_body {
    position:relative;
    overflow:hidden;
}
.content_box_img_body > img {
    position:absolute;
    width:100%;
    height:auto;
    left:0;
    bottom:0;
}
@media (min-width: 769px) {
    .content_inner {
        margin-inline: 120rem;
    }
    .content_box {
        width: 560rem;
    }
    .content_box_ttl {
        font-size: 40rem;
        margin-top: 46rem;
        line-height: 1.25;
    }
    .content_box_txt {
        font-size: 16rem;
        margin-top: 16rem;
        line-height: 1.75;
    }
}
@media (max-width: 768px) {
    .content_inner {
        margin-inline: 25rem;
    }
    .content_box {
        width: 326rem;
    }
    .content_box_ttl {
        font-size: 32rem;
        margin-top: 24rem;
        line-height: 1.25;
    }
    .content_box_txt {
        font-size: 14rem;
        margin-top: 9rem;
        line-height: 1.75;
    }
}
.animation_ready .content_box_img img {
    transition: filter 3s, scale 4s, translate 4s;
    filter: grayscale(100%);
    transform-origin: 50% 100%;
    scale: 1;
}
.animation_loaded .content_box_img.is_animated img {
    filter: grayscale(0%)!important;
    scale: 1.25!important;
    translate: 0 0rem!important;
}

/* venue */
.venue {
    position: relative;
}
@media (min-width: 769px) {
    .venue {
        margin-top: 160rem;
    }
    .venue .content_box_img_body {
        width: 560rem;
        padding-top: calc(1680/1120 * 100%);
    }
    .animation_ready .venue .content_box_img img {
        translate: 0 114rem;
    }

}
@media (max-width: 768px) {
    .venue {
        margin-top: 78rem;
    }
    .venue .content_box_img_body {
        width: 326rem;
        padding-top: calc(489/326 * 100%);
    }
    .animation_ready .venue .content_box_img img {
        translate: 0 66rem;
    }
}

/* ceremony */
.ceremony {
    position: relative;
}
@media (min-width: 769px) {
    .ceremony {
        margin-top: -640rem;
    }
    .ceremony .content_box {
        margin-left: 640rem;
    }
    .ceremony .content_box_img_body {
        width: 560rem;
        padding-top: calc(1680/1120 * 100%);
    }
    .animation_ready .ceremony .content_box_img img {
        translate: 0 18rem;
    }
}
@media (max-width: 768px) {
    .ceremony {
        margin-top: 82rem;
    }
    .ceremony .content_box {
        margin-left: 15rem;
    }
    .ceremony .content_box_img_body {
        width: 326rem;
        padding-top: calc(489/326 * 100%);
    }
    .animation_ready .ceremony .content_box_img img {
        translate: 0 10rem;
    }
}

/* cuisine */
.cuisine {
    position: relative;
}
@media (min-width: 769px) {
    .cuisine {
        margin-top: 164rem;
    }
    .cuisine .content_box {
        margin-left: 240rem;
    }
    .cuisine .content_box_img_body {
        width: 560rem;
        padding-top: calc(1680/1120 * 100%);
    }
    .animation_ready .cuisine .content_box_img img {
        translate: 0 34rem;
    }
}
@media (max-width: 768px) {
    .cuisine {
        margin-top: 82rem;
    }
    .cuisine .content_box_img_body {
        width: 326rem;
        padding-top: calc(489/326 * 100%);
    }
    .animation_ready .cuisine .content_box_img img {
        translate: 0 20rem;
    }
}

/* design */
.design {
    position: relative;
}
@media (min-width: 769px) {
    .design {
        margin-top: 244rem;
    }
    .design .content_box {
        margin-left: 480rem;
    }
    .design .content_box_img_body {
        width: 560rem;
        padding-top: calc(1680/1120 * 100%);
    }
    .animation_ready .design .content_box_img img {
        translate: 0 17rem;
    }
}
@media (max-width: 768px) {
    .design {
        margin-top: 82rem;
    }
    .design .content_box {
        margin-left: 15rem;
    }
    .design .content_box_img_body {
        width: 326rem;
        padding-top: calc(489/326 * 100%);
    }
    .animation_ready .design .content_box_img img {
        translate: 0 10rem;
    }
}

/* slide_area */
.slide_area {
    position:relative;
    overflow: hidden;
}
.slide_area_box_cover {
    position: relative;
    display:flex;
}
.slide_area_box {
    position: absolute;
    top:0;
    left:0;
    height:100%;
    will-change: transform;
    backface-visibility: hidden;
}
.slide_area_box_x {
    position: absolute;
    height: auto;
}
/* safariでループを戻すときにチラつくので、描画範囲外に戻すことで対応 */
.animation_loaded .slide_area_box:nth-child(1) {
    animation: slide_roll 20s infinite linear;
}
.animation_loaded .slide_area_box:nth-child(2) {
    animation: slide_roll 20s -10s infinite linear;
}
@keyframes slide_roll {
    0% {
        transform: translateX(100%);
    }
    100% {
        transform: translateX(-100%);
    }
}
.slide_area_btn {
    margin-inline: auto;
}
@media (min-width: 769px) {
    .slide_area {
        margin-top: 274rem;
    }
    .slide_area_box_cover {
        height: 482rem;
    }
    .slide_area_box {
        min-width: 1968rem;
    }
    .slide_area_box_1 {
        width: 320rem;
        left: 120rem;
        top: 0;
    }
    .slide_area_box_2 {
        width: 262rem;
        left: 560rem;
        top: 0;
    }
    .slide_area_box_3 {
        width: 262rem;
        left: 941rem;
        top: 87rem;
    }
    .slide_area_box_4 {
        width: 296rem;
        left: 1324rem;
        top: 17rem;
    }
    .slide_area_box_5 {
        width: 228rem;
        left: 1740rem;
        top: 0;
    }
    .slide_area_btn_wrap {
        margin-top: 78rem;
    }
    .slide_area_btn {
        width: 640rem;
        height: 160rem;
        padding: 20rem 40rem;
        font-size: 24rem;
    }
    .slide_area_btn::before {
        right: 36rem;
    }
}
@media (max-width: 768px) {
    .slide_area {
        margin-top: 78rem;
    }
    .slide_area_box_cover {
        height: 360rem;
    }
    .slide_area_box {
        min-width: 1476rem;
    }
    .slide_area_box_1 {
        width: 240rem;
        left: 120rem;
        top: 0;
    }
    .slide_area_box_2 {
        width: 196rem;
        left: 420rem;
        top: 0;
    }
    .slide_area_box_3 {
        width: 196rem;
        left: 707rem;
        top: 66rem;
    }
    .slide_area_box_4 {
        width: 222rem;
        left: 993rem;
        top: 13rem;
    }
    .slide_area_box_5 {
        width: 171rem;
        left: 1305rem;
        top: 0;
    }

    .slide_area_btn_wrap {
        margin-top: 80rem;
    }
    .slide_area_btn {
        width: 344rem;
        height: 96rem;
        padding: 20rem 26rem;
        font-size: 14rem;
    }
}

/* access */
.access {
    position: relative;
}
.access_box {
    margin-inline: auto;
    text-align: center;
}
.access_map_ttl {
    font-weight: 900;
}
.access_map_txt {
    color: #000;
    font-weight: 400;
}
.access_map_txt a {
    color: inherit;
}
@media (min-width: 769px) {
    .access {
        margin-top: 161rem;
    }
    .access_box {
        width: 800rem;
    }
    .access_map {
        width:800rem;
        height:auto;
    }
    .access_map_ttl {
        font-size: 40rem;
        line-height: 1.25;
        margin-top: 14rem;
    }
    .access_map_txt {
        font-size: 16rem;
        line-height: 1.75;
        margin-top: 9rem;
    }
    .access_map_txt a {
        text-decoration: none;
        pointer-events: none;
    }
}
@media (max-width: 768px) {
    .access {
        margin-top: 20rem;
    }
    .access_box {
        margin-inline: 25rem;
    }
    .access_map_cover {
        margin-inline: -25rem;
        padding-bottom: calc(8rem) !important;
        overflow-x: auto;
        overflow-y: hidden;
    }
    .access_map {
        width: 600rem;
        height: auto;
        margin-bottom: 36rem;
    }
    .access_map_ttl {
        font-size: 32rem;
        line-height: 1.25;
        margin-top: 20rem;
    }
    .access_map_txt {
        font-size: 12rem;
        line-height: 1.75;
        margin-top: 5rem;
    }
    .access_map_txt a {
        text-decoration: underline;
    }
}

/* instagram */
.instagram {
    position:relative;
}
.instagram_1 {
    position: absolute;
    z-index: 1;
    height: auto;
}
.instagram_2 {
    position: absolute;
    height: auto;
}
.instagram_3 {
    position: absolute;
    height: auto;
}
.instagram_4 {
    position: absolute;
    height: auto;
}
.instagram_front {
    position: absolute;
    z-index: 5;
    top:0;
    left:0;
    width:100%;
    height:100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.instagram_ttl img {
    width:100%;
    height:auto;
}
.instagram_txt {
    font-weight: 700;
}
.instagram_txt_link {
    color: inherit;
    text-decoration: none;
}
.instagram_txt_link_arrow {
    display:inline-block;
    vertical-align: bottom;
    background: url(../images/arrow_b_right.svg) no-repeat 50% 50% / contain;
}
.instagram .instagram_x {
    transition: transform 2s;
}
@media (min-width: 769px) {
    .instagram {
        margin-top: 160rem;
        height: 765rem;
    }
    .instagram_1 {
        top: 76rem;
        left: 0rem;
        width: 370rem;
    }
    .instagram_2 {
        top: 492rem;
        left: 401rem;
        width: 182rem;
    }
    .instagram_3 {
        top: 0rem;
        left: 720rem;
        width: 434rem;
    }
    .instagram_4 {
        top: 218rem;
        left: 1206rem;
        width: 234rem;
    }
    .instagram_front_box {
        margin-top: -265rem;
    }
    .instagram_ttl {
        width: 184rem;
    }
    .instagram_txt {
        font-size: 16rem;
        line-height: 1.25;
        margin-top: 10rem;
    }
    .instagram_txt_link_arrow {
        width:1em;
        height:1em;
    }
    .instagram:has(.instagram_front_box.is_animated) .instagram_1 {
        /* 273 / 555 * -150 */
        transform: translateY(-73rem);
    }
    .instagram:has(.instagram_front_box.is_animated) .instagram_2 {
        transform: translateY(-150rem);
    }
    .instagram:has(.instagram_front_box.is_animated) .instagram_3 {
        /* 273 / 651 * -150 */
        transform: translateY(-62rem);
    }
    .instagram:has(.instagram_front_box.is_animated) .instagram_4 {
        /* 273 / 351 * -150 */
        transform: translateY(-116rem);
    }
}
@media (max-width: 768px) {
    .instagram {
        margin-top: 77rem;
        height: 560rem;
    }
    .instagram_1 {
        top: 0rem;
        left: 0rem;
        width: 186rem;
    }
    .instagram_2 {
        top: 327rem;
        left: 40rem;
        width: 91rem;
    }
    .instagram_3 {
        top: 235rem;
        left: 173rem;
        width: 217em;
    }
    .instagram_4 {
        top: 34rem;
        left: 233rem;
        width: 117rem;
    }
    .instagram_front_box {
        margin-top: 5rem;
    }
    .instagram_ttl {
        width: 145rem;
    }
    .instagram_txt {
        font-size: 14rem;
        line-height: 1;
        margin-top: 7rem;
    }
    .instagram_txt_link_arrow {
        width: 1em;
        height: 1em;
        margin-left: 0.8em;
    }
    .instagram:has(.instagram_front_box.is_animated) .instagram_1 {
        /* 131 / 268 * -64 */
        transform: translateY(-31rem);
    }
    .instagram:has(.instagram_front_box.is_animated) .instagram_2 {
        transform: translateY(-64rem);
    }
    .instagram:has(.instagram_front_box.is_animated) .instagram_3 {
        /* 131 / 313 * -64 */
        transform: translateY(-26rem);
    }
    .instagram:has(.instagram_front_box.is_animated) .instagram_4 {
        /* 131 / 169 * -64 */
        transform: translateY(-49rem);
    }
}

/* footer_logo_area */
.footer_logo_area {
    position: relative;
    text-align: center;
}
.footer_logo_area img {
    height: auto;
}
@media (min-width: 769px) {
    .footer_logo_area {
        padding-block: 160rem 90rem;
    }
    .footer_logo_area img {
        width: 180rem;
    }
}
@media (max-width: 768px) {
    .footer_logo_area {
        padding-block: 192rem;
    }
    .footer_logo_area img {
        width: 146rem;
    }
}

/* footer_instagram_area */
.footer_instagram_area {
    text-align: center;
    display:flex;
    justify-content: center;
    align-items: center;
}
.footer_instagram_icon img {
    height:auto;
}
@media (min-width: 769px) {
    .footer_instagram_icon img {
        width:48rem;
    }
}
@media (max-width: 768px) {
    .footer_instagram_icon img {
        width: 48rem;
    }
}

/* pagetop_btn_area */
.pagetop_btn_area {
    display: flex;
    justify-content: end;
    align-items: center;
}
.pagetop_btn {
    position: relative;
    border-radius: 50%;
    background-color: var(--color-black);
    color: #fff;
    border:1px solid var(--color-black);
}
.pagetop_btn_txt {
    position:absolute;
    left:0;
    width:100%;
    text-align: center;
    font-weight: 700;
}
.pagetop_btn_txt::before {
    content:"";
    display:block;
    position:absolute;
    left:0;
    right:0;
    margin-inline:auto;
    background:url(../images/arrow_w_up.svg) no-repeat 50% 50% / contain;
}
@media (min-width: 769px) {
    .pagetop_btn_area {
        margin-inline: 120rem;
    }
    .pagetop_btn {
        width: 80rem;
        height: 80rem;
    }
    .pagetop_btn_txt {
        bottom: 12rem;
        font-size: 12rem;
        letter-spacing: calc(0.48/12*1em);
    }
    .pagetop_btn_txt::before {
        width:12rem;
        height:12rem;
        bottom: calc(100% + 3rem);
    }
    @media(hover: hover){
        .pagetop_btn {
            transition: color 0.4s, background-color 0.4s;
        }
        .pagetop_btn_link:hover .pagetop_btn {
            background-color: #fff;
            color: var(--color-black);
        }
        .pagetop_btn_txt::after {
            content:"";
            display:block;
            position:absolute;
            left:0;
            right:0;
            margin-inline:auto;
            background:url(../images/arrow_b_up.svg) no-repeat 50% 50% / contain;
            width:12rem;
            height:12rem;
            bottom: calc(100% + 3rem);
            opacity: 0;
            transition: opacity 0.4s;
        }
        .pagetop_btn_txt::before {
            transition: opacity 0.4s;
        }
        .pagetop_btn_link:hover .pagetop_btn_txt::after {
            opacity: 1;
        }
        .pagetop_btn_link:hover .pagetop_btn_txt::before {
            opacity: 0;
        }
    }
}
@media (max-width: 768px) {
    .pagetop_btn_area {
        margin-inline: 24rem;
    }
    .pagetop_btn {
        width: 64rem;
        height: 64rem;
    }
    .pagetop_btn_txt {
        bottom: 12rem;
        font-size: 12rem;
        letter-spacing: calc(0.48/12*1em);
    }
    .pagetop_btn_txt::before {
        width: 8rem;
        height: 8rem;
        bottom: calc(100% + 0rem);
    }
}

/* footer_copy_area */
.footer_copy_area {
    display:flex;
    justify-content: center;
}
.footer_copy_area_box {
    display:flex;
    justify-content: center;
    align-items: center;
}
.footer_copy_area_icon img {
    height:auto;
}
@media (min-width: 769px) {
    .footer_copy_area {
        padding-block: 40rem;
    }
    .footer_copy_area_box {
        gap: 24rem;
    }
    .footer_copy_area_icon img {
        width: 24rem;
    }
    .footer_copy_area_txt {
        font-size: 12rem;
        line-height: 1.5;
    }
}
@media (max-width: 768px) {
    .footer_copy_area {
        padding-block: 40rem;
    }
    .footer_copy_area_box {
        gap: 24rem;
    }
    .footer_copy_area_icon img {
        width: 24rem;
    }
    .footer_copy_area_txt {
        font-size: 10rem;
        line-height: 1.5;
    }
}
.animation_ready .footer_logo {
    opacity: 0;
    transform: translateY(100rem);
}
.animation_loaded .footer_logo.is_animated {
    transition: opacity 1s, transform 1s;
    opacity: 1;
    transform: translateY(0);
}

/* simplebar */
[class].simplebar-track.simplebar-horizontal {
    left: 25rem;
    right: 25rem;
    height: 16rem;
    border: 1px solid var(--color-black);
    border-radius: 9999px;
    background: #DCE3E5;
}
.simplebar-scrollbar.simplebar-visible:before {
    opacity: 1!important;
    background: var(--color-black);
}
[class].simplebar-scrollbar:before {
    top: 0px;
    bottom: 0px;
    left: 0px;
    right: 0px;
}
