@charset "utf-8";

/*================================
Layout
================================*/
@media all and (max-width:768px){
    .w1500 {
        width: 100%;
        max-width: 1500px;
        margin-inline: auto;
    }
}

/*================================
Common parts
================================*/
@media all and (max-width:768px){
    .mv {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .mv .img {
        width: 100%;
        height: auto;
    }

    .mv .img img {
        pointer-events: none;
    }

    .mv .inner {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
    }

    body:not(.home) .mv .title .label {
        font-size: 4.975vw;
    }

    .sns_list {
        display: flex;
        align-items: center;
        column-gap: 15px;
    }

    .section_normal {
        padding-top: 5.721vw;
        margin-bottom: 5.721vw;
    }

    .section_header {
        margin-bottom: 6.219vw;
        margin-inline: 3.731vw;
        text-align: center;
    }

    .section_header .title {
        font-size: 4.975vw;
        text-align: center;
    }

    .section_header p {
        margin-top: 2.488vw;
        font-size: 3.483vw;
    }

    .btn_list {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 4.478vw;
        padding-inline: 3.731vw;
    }

    .btn_list .item {
        min-width: 100%;
    }
}

/*================================
Header
================================*/
@media all and (max-width:768px){
    header {
        z-index: 10000;
        padding: 0;
    }
    header.fixed,
    body:not(.home) header {
        padding: 0;
        z-index: 10000;
    }
    body:not(.home) header.fixed {
        padding: 0;
        background: rgba(104,187,189,0.95);
    }
    header .inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 19.9vw;
        padding-inline: 3.731vw;
        padding-block: 0;
    }
    body:not(.home) header .inner {
        padding-block: 0;
    }
    body:not(.home) header {
        margin-bottom: 0;
        position: relative;
        z-index: 10000;
    }
    /* スクロール時の固定ヘッダーが常にコンテンツより前面 */
    header.fixed,
    header.fixed .inner,
    body:not(.home) header.fixed,
    body:not(.home) header.fixed .inner {
        z-index: 10001 !important;
    }
    header .header_upper {
        width: 100%;
        z-index: 10001;
    }
    header .header_logo img {
        height: 11.443vw;
    }
    .hamburger {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 11.443vw;
        height: 11.443vw;
        z-index: 101;
        transition: all 0.3s ease;
        border: 1px solid #FFF;
        transform: translate3d(0,0,0);
        cursor: pointer;
    }

    .hamburger span {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: 7.2vw;
        height: 0.48vw;
        background: #FFF;
        border-radius: 9999px;
        transition: all 0.3s ease;
        pointer-events: none;
    }
    .hamburger span:nth-of-type(1) {
        top: 2.488vw;
    }
    .hamburger span:nth-of-type(2) {
        top: 5.224vw;
    }
    .hamburger span:nth-of-type(3) {
        bottom: 2.488vw;
    }

    header .inner .menu {
        display: grid;
        grid-template-columns: 1fr 1fr;
        justify-content: center;
        column-gap: 4.267vw;
        row-gap: 10.667vw;
    }

    header .inner .menu li:not(:nth-of-type(1)) a {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 37.333vw;
        font-size: 4.8vw;
        color: #FFF;
        text-align: center;
    }

    header .inner .menu li:nth-of-type(1) {
        display: none;
    }

    header .inner .menu li:not(:nth-of-type(1)) a:before {
        content: "";
        position: absolute;
        top: 0px;
        left: 50%;
        transform: translate(-50%,0);
        width: 24.913vw;
        height: 13.589vw;
    }
    
    /* menu open */
    .nonScroll .header_trigger .label:before {
        content: "CLOSE";
        font-size: 2.933vw;
    }
    .nonScroll .hamburger {
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 101;
    }
    .nonScroll .hamburger span:nth-of-type(1) {
        top: 5.224vw;
        transform: translateX(-50%) rotate(45deg);
    }
    .nonScroll .hamburger span:nth-of-type(2) {
        top: 5.224vw;
        opacity: 0;
    }
    .nonScroll .hamburger span:nth-of-type(3) {
        top: 5.224vw;
        transform: translateX(-50%) rotate(-45deg);
    }
    .header_nav_sp {
        position: fixed !important;
        top: 0;
        left: 0;
        width: 100%;
        padding: 10.667vw 0 55.467vw;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        background: var(--color-arrowgreen);
        background-attachment: local;
        transition: all 0.3s ease;
    }
    .nonScroll .header_nav_sp {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: all !important;
        z-index: 10000;
        overflow: auto;
        height: 100dvh;
        padding-inline: 7.463vw;
    }
    .header_nav_sp_tel a {
        width: 55.473vw;
        height: 14.677vw;
        border-radius: 8px;
        margin-top: 4.975vw;
        margin-inline: auto;
    }

    .header_nav_sp_tel a .tel_number {
        margin-top: 1.493vw;
        font-size: 5.97vw;
    }
    .header_nav_sp_link {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 2.488vw;
        margin-top: 4.975vw;
    }
    .header_nav_sp_link a {
        width: 68.905vw;
        height: 12.687vw;
        border-radius: 9999px;
        margin-inline: auto;
    }

    .header_nav_sp_list {
        margin-top: 10.945vw;
    }

    .header_nav_sp_list li .nav_parent {
    }

    .header_nav_sp_list li .nav_parent span {
        position: relative;
        display: block;
        padding: 3.731vw 0;
        font-size: 3.731vw;
        color: #FFF;
        border-bottom: 1px solid #FFF;
    }

    .header_nav_sp_list li .nav_parent:has(.sub) span:before,
    .header_nav_sp_list li .nav_parent:has(.sub) span:after {
        content: "";
        position: absolute;
        right: 3.731vw;
        top: 50%;
        transform: translateY(-50%);
        width: 1em;
        height: 2px;
        background-color: #FFF;
        transition: all 0.3s;
    }

    .header_nav_sp_list li .nav_parent:has(.sub) span:after {
        transform: rotate(90deg) translateY(-50%);
        transform-origin: center;
    }

    .header_nav_sp_list li .nav_parent:has(.sub).active span:after {
        transform: rotate(0deg) translateY(-50%);
        transform-origin: center;
    }

    .header_nav_sp_list li .nav_parent .sub {
        display: none;
    }

    .header_nav_sp_list li .nav_parent .sub a {
        display: block;
        padding: 3.731vw 0 3.731vw 1em;
        font-size: 3.483vw;
        color: #FFF;
        border-bottom: 1px solid #FFF;
    }

    .header_nav_sp_tel .btn_tel .label {
        font-size: 2.985vw;
    }

    .header_nav_sp .header_nav_sp_info {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        row-gap: 5.97vw;
        margin-top: 5.97vw;
    }

    .header_nav_sp_info_logo img {
        height: 11.443vw;
    }

    .header_nav_sp_info_address {
        font-size: 3.483vw;
        color: #FFF;
    }

    .header_nav_sp .sns_list {
        column-gap: 4.975vw;
    }

    .header_nav_sp .sns_list a img {
        height: 6.468vw;
    }

    .header_nav_sp .btn_contact .label {
        position: relative;
        padding-left: 30px;
    }

    .header_nav_sp .btn_contact .label:before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        display: block;
        width: 18px;
        height: 14px;
        background: url(../img/common/icon_mail.svg) no-repeat;
        background-size: cover;
    }

    .header_nav_sp .btn_cart .label {
        position: relative;
        padding-left: 30px;
    }

    .header_nav_sp .btn_cart .label:before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        display: block;
        width: 19px;
        height: 20px;
        background: url(../img/common/icon_cart.svg) no-repeat;
        background-size: cover;
    }
}


/*================================
Common Parts
================================*/
@media all and (max-width:768px){

}

/*================================
Home
================================*/
@media all and (max-width:768px){
    /* mv */
    .home .mv .inner {
        width: 100%;
    }
    .home .mv .inner .title {
        text-align: center;
        font-weight: 500;
        color: #FFF;
    }

    .home .mv .inner .title .sub {
        font-size: 4.975vw;
        letter-spacing: 0;
    }

    .home .mv .inner .title .label {
        font-size: 9.95vw;
        letter-spacing: 0;
    }

    .home .mv .inner .text {
        position: relative;
        margin-top: 24px;
        padding-top: 38px;
    }

    .home .mv .inner .text:before {
        content: "";
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 84px;
        height: 1px;
        background: #FFF;
    }

    .home .mv .inner .text p {
        color: #FFF;
        font-size: 3.98vw;
        line-height: 1.7;
        text-align: center;
        letter-spacing: 0;
    }

    /* mv_link */
    .mv_link {
        padding: 40px 15px;
        background: #E0F2F2;
    }

    .mv_link .btn_list {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 3.98vw;
        padding-inline: 0;
    }

    .mv_link .btn_list .btn_large {
        width: 100%;
        max-width: 100%;
        min-width: auto;
    }

    /* home_hall */
    .home_hall {
    }
    .hall_list {
        width: 100%;
        overflow-x: scroll;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr;
        gap: 7.96vw;
        margin-inline: 3.483vw 0;
        padding-bottom: 4.975vw;
    }

    .hall_list .item {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 3;
        gap: 0;
        color: #222;
        width: 74.627vw;
    }

    .hall_list .text {
        margin-top: 2.488vw;
        font-size: 3.731vw;
        line-height: 1.7;
    }

    .hall_list .title {
        margin-top: 2.985vw;
        font-size: 4.975vw;
    }

    .home_hall .banner {
        margin-top: 8.458vw;
        padding-inline: 3.731vw;
    }

    /* home_select */
    .home_select {
        padding-block: 5.721vw 5.721vw;
        margin-inline: 3.731vw;
        background: var(--color-basebeige);
    }

    .select_list_wrap {
        display: grid;
        grid-template-columns: repeat(auto-fit,minmax(280px,1fr));
        gap: 4.975vw;
        padding: 3.731vw;
    }

    .select_list_wrap .list_header {
        position: relative;
    }

    .select_list_wrap .list_header .title {
        position: absolute;
        left: 3.731vw;
        bottom: 2.736vw;
        display: flex;
        align-items: flex-start;
        column-gap: 4px;
        font-size: 4.975vw;
        color: #FFF;
    }

    .select_list_wrap .list_header .title span {
        display: inline-block;
        margin-top: 3px;
        font-size: 3.731vw;
        font-weight: 400;
    }

    .select_list_wrap .select_list {
        display: flex;
        flex-direction: column;
        margin-top: 2.985vw;
        row-gap: 2.985vw;
    }

    .select_list_wrap .select_list li a {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        height: 9.95vw;
        padding: 0.995vw 0 0.995vw 5.473vw;
        background: #FFF;
        border-radius: 9999px;
        color: #222;
        font-size: 3.731vw;
    }

    .select_list_wrap .select_list li a:after {
        content:"";
        position: absolute;
        top: 50%;
        right: 13px;
        transform: translateY(-50%);
        width: 0;
        height: 0;
        border-style: solid;
        border-top: 4px solid transparent;
        border-bottom: 4px solid transparent;
        border-left: 7px solid var(--color-arrowgreen);
        border-right: 0;

    }

    .select_list_wrap .select_list li a span {
        display: block;
        margin-top: 0.498vw;
        font-size: 3.234vw;
        color: #707070;
    }

    /* home_plan */
    .home_plan {
        padding-bottom: 5.721vw;
    }

    .home_plan .plan_list {
        margin-top: 9.204vw;
    }

    .plan_list {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        column-gap: 22px;
        row-gap: 4.975vw;
        padding-inline: 3.731vw;
    }

    .plan_list .item {
        position: relative;
        width: 100%;
        background: #FFF;
    }

    .plan_list .item:nth-of-type(2) {
        width: 100%;
        box-shadow: 0 3px 26px rgba(0,0,0,0.16);
    }

    .plan_list .item:nth-of-type(2):before {
        position: absolute;
        top: -28px;
        right: -12px;
        content: "一番\A人気";
        display: flex;
        align-items: center;
        justify-content: center;
        background: #E03B3B;
        border-radius: 50%;
        width: 76px;
        height: 76px;
        color: #FFF;
        font-size: 16px;
        line-height: 1.5;
        white-space: pre;
    }

    .plan_list .item .plan_header {
        padding: 2.239vw 3.731vw;
        background: #54B3B5;
        text-align: center;
    }

    .plan_list .item:nth-of-type(2) .plan_header {
        padding: 2.239vw 3.731vw;
        background: #68C3C5;
    }

    .plan_list .item .plan_header .title {
        font-size: 20px;
        font-weight: 700;
    }

    .plan_list .item .plan_header .summary {
        margin-top: 0.995vw;
        font-size: 2.985vw;
    }

    .plan_list .item .plan_contents {
        padding: 30px 28px 30px;
    }

    .plan_list .item .plan_contents .price {
        column-gap: 4.726vw;
        height: 14.925vw;
    }

    .plan_list .item .plan_contents .price span {
        font-size: 4.975vw;
    }

    .plan_list .item .plan_contents .price span.number {
        font-size: 8.955vw;
        color: #54B3B5;
    }

    .plan_list .item:nth-of-type(2) .plan_contents .price span.number {
        font-size: 8.955vw;
    }

    .plan_list .item .plan_contents .link {
        margin-top: 2.985vw;
    }

    /* SP: プランカードの「プランの詳細を見る」ボタンを小さく（プラン名と文字サイズを揃える） */
    .plan_list .item .plan_contents .link .link_btn {
        height: 48px;
        font-size: 14px;
        width: 80%;
        max-width: 280px;
        margin-inline: auto;
    }
    .plan_list .item .plan_contents .link .link_btn:after {
        right: 14px;
        border-top-width: 5px;
        border-bottom-width: 5px;
        border-left-width: 9px;
    }

    .home_plan .banner_plan {
        margin-top: 6.716vw;
        margin-inline: 3.731vw;
    }

    .home_plan .btn_list {
        margin-top: 7.96vw;
    }

    /* home_style */
    .home_style {
        margin-bottom: 0;
        padding-bottom: 5.721vw;
        background: url(../img/home/bg_home_style.webp) no-repeat;
        background-size: cover;
    }

    .home_style .section_header {
        display: flex;
        flex-direction: column;
        align-items: center;
        column-gap: 24px;
        row-gap: 4.975vw;
    }

    .home_style .section_header .text {
        width: 100%;
        padding-top: 0;
    }

    .home_style .section_header .map {
        flex: 1;
        box-shadow: 0 3px 36px rgba(0,0,0,0.11);
    }

    .home_style .section_header .text {
        text-align: left;
        color: #FFF;
    }

    .home_style .section_header .text p {
        font-size: 2.736vw;
        color: #FFF;
    }

    .home_style .contents_header .title {
        font-size: 4.975vw;
        text-align: center;
    }

    .home_style .contents_header strong {
        font-size: 6.965vw;
        color: #C9BE69;
        font-weight: 400;
    }

    .home_style .contents_header strong span {
        font-size: 4.975vw;
        font-weight: 500;
    }

    .home_style .style_list {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 40px;
        margin-top: 30px;
    }

    .home_style .style_list > .item {
        padding: 5.721vw 3.731vw;
        background: #FFF;
    }

    .home_style .style_list > .item > .upper > .img {
        order: 3;
        margin-top: 7.214vw;
    }

    .home_style .style_list .item .upper {
        display: grid;
        grid-template-columns: 1fr;
        column-gap: 64px;
    }

    .home_style .style_list .meta {
        display: contents;
    }

    .home_style .style_list .tags {
        order: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 5.224vw;
    }

    .home_style .style_list .tags li {
        display: flex;
        align-items: center;
        justify-content: center;
        column-gap: 8px;
        color: #54B3B5;
    }

    .home_style .style_list .tags li:before {
        content: "";
        display: inline-block;
        width: 21px;
        height: 18px;
        background: url(../img/common/icon_tags.svg) no-repeat;
        background-size: cover;
    }

    .home_style .style_list .upper .title {
        order: 1;
        margin-top: 3.731vw;
        font-size: 4.975vw;
        text-align: center;
    }

    .home_style .style_list .point {
        order: 4;
        margin-top: 20px;
        padding: 20px;
        background: var(--color-basebeige);
    }

    .home_style .style_list .point .label {
        display: flex;
        align-items: center;
        column-gap: 0.995vw;
        font-size: 3.98vw;
    }

    .home_style .style_list .point .label:before {
        content: "";
        display: inline-block;
        width: 23px;
        height: 21px;
        background: url(../img/common/icon_thumbssup.svg) no-repeat;
        background-size: cover;
    }

    .home_style .style_list .point .point_list {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 3.731vw;
        margin-top: 3.731vw;
    }

    .home_style .style_list .point .point_list li {
        display: flex;
        align-items: center;
        column-gap: 2.488vw;
    }

    .home_style .style_list .point .point_list li:before {
        content: "";
        display: block;
        margin-top: 6px;
        width: 10px;
        height: 10px;
        background: var(--color-arrowgreen);
        border-radius: 50%;
    }

    .home_style .lower .title {
        position: relative;
        margin-top: 2.985vw;
    }

    .home_style .lower .title:before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        width: 100%;
        height: 1px;
        background: #E2E2E2;
    }

    .home_style .lower .title .label {
        position: relative;
        width: fit-content;
        padding-right: 3.98vw;
        font-size: 3.483vw;
        background: #FFF;
        z-index: 1;
    }

    .home_style .lower .style_hall_list {
        margin-top: 2.985vw;
    }

    .style_hall_list {
        display: grid;
        grid-template-columns: 1fr;
        gap: 2.985vw;
    }

    .style_hall_list .item {
        position: relative;
        display: flex;
        align-items: center;
        column-gap: 2.488vw;
        padding: 2.488vw 2.488vw;
        border: 2px solid var(--color-arrowgreen);
        border-radius: 8px;
        color: var(--color-arrowgreen);
    }

    .style_hall_list .item::after {
        content:"";
        position: absolute;
        top: 50%;
        right: 18px;
        transform: translateY(-50%);
        width: 0;
        height: 0;
        border-style: solid;
        border-top: 6px solid transparent;
        border-bottom: 6px solid transparent;
        border-left: 11px solid var(--color-arrowgreen);
        border-right: 0;
    }

    .style_hall_list .item img {
        height: 9.95vw;
        border-radius: 8px;
    }

    .home_style .btn_list {
        margin-top: 5.721vw;
    }

    /* home_example */
    .home_example {
        margin-top: 0;
        padding-bottom: 5.721vw;
        background: var(--color-basegray);
    }

    .example_list .title {
        margin-top: 1.493vw;
        font-size: 4.478vw;
    }

    .example_list .summary {
        margin-top: 3.98vw;
        font-size: 3.98vw;
    }

    .example_list .meta {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        column-gap: 2.736vw;
        margin-top: 3.731vw;
        font-size: 3.98vw;
    }

    .example_list .meta:before {
        content: "";
        display: inline-block;
        width: 8.209vw;
        height: 8.209vw;
        background: url(../img/common/icon_footer_recommend@2x.webp) no-repeat;
        background-size: cover;
    }

    .home_example .link {
        margin-top: 56px;
    }

    :not(.plan_contents) > .link .link_btn {
        width: 64.179vw;
        height: 13.433vw;
        margin-inline: auto;
        font-size: 3.731vw;
        letter-spacing: 0;
    }

    /* home_news */
    .home_news {
        margin-top: 0;
        padding-top: 0;
    }

    .news_list {
        display: grid;
        grid-template-columns: repeat(auto-fit,minmax(373px,1fr));
        column-gap: 40px;
        row-gap: 5.721vw;
        margin-inline: 3.731vw;
    }

    .news_list .item {
        color: #222;
    }

    .news_list .title {
        margin-top: 2.488vw;
        font-size: 4.478vw;
        font-weight: 500;
    }

    .news_list .summary {
        margin-top: 1.99vw;
        font-size: 3.98vw;
        line-height: 1.7;
    }

    .news_list .meta {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-top: 2.985vw;
    }

    .news_list .meta .date {
        font-size: 3.234vw;
        color: #A5A5A5;
    }

    .news_list .meta .category {
        padding: 4px 10px;
        background: #62B9BA;
        border-radius: 9999px;
        font-size: 3.483vw;
        color: #FFF;
    }

    .home_news .link {
        margin-top: 5.721vw;
    }

    /* home_about */

    .home_about {
        margin-top: 0;
        padding-top: 0;
        margin-bottom: 0;
    }

    .home_about .about_list .item {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        height: 51.244vw;
    }

    .home_about .about_list .item .text {
        width: 100%;
        padding: 3.731vw 3.731vw;
    }

    .home_about .about_list .item .text .title {
        font-size: 4.975vw;
        text-align: center;
    }

    .home_about .about_list .item .text p {
        margin-top: 4.229vw;
        font-size: 2.488vw;
        line-height: 1.7;
    }

    .home_about .about_list .item .text .link a {
        margin: 3.98vw auto 0;
        height: 8.955vw;
    }

    .home_about .about_list .item_thought {
        background: url(../img/home/bg_home_about_thought_sp.webp) no-repeat;
        background-size: cover;
    }

    .home_about .about_list .item_freedom {
        background: url(../img/home/bg_home_about_freedom_sp.webp) no-repeat;
        background-size: cover;
    }

    .home_about .about_list .item_challenge {
        background: url(../img/home/bg_home_about_challenge_sp.webp) no-repeat;
        background-size: cover;
    }
}

/*================================
Pages Common
================================*/
@media all and (max-width:768px){
    .page_header {
        padding: 6.965vw 3.731vw;
    }

    .page_header .title {
        font-size: 4.975vw;
        text-align: center;
    }

    .page_header .section_contents p {
        font-size: 3.483vw;
        text-align: left;
        line-height: 1.7;
    }
}

/*================================
Styles スタイルで選ぶ
================================*/
@media all and (max-width:768px){
    .style main {
        padding-bottom: 13.682vw;
    }

    .style .tab_list {
        display: grid;
        grid-template-columns: 1fr;
        align-items: flex-end;
        justify-content: space-evenly;
        row-gap: 0.995vw;
        height: auto;
        margin-top: 0;
    }

    .style .tab_list .item {
        width: 100%;
        justify-self: stretch;
    }

    .style .tab_list .item .tab_list_label {
        width: 100%;
    }

    .style .tab_list .item .tab_list_label label {
        display: block;
        width: 100%;
        padding: 3.731vw 3.731vw 3.731vw;
        text-align: center;
        background: rgba(134,134,134,0.122);
        font-size: 3.483vw;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.4s ease;

    }

    .style .tab_list .item input[type=radio] {
        display: none;
    }

    .style .tab_list .item input[type=radio]:checked ~ .tab_list_label label {
        padding: 3.731vw 3.731vw 3.731vw;
        background: var(--color-arrowgreen);
        color: #FFF;
    }

    .style .tab_contents {
        visibility: hidden;
        pointer-events: none;
        opacity: 0;
        height: 0;
        transition: opacity 1.5s ease;
    }

    .style .tab_contents.active {
        visibility: visible;
        pointer-events: all;
        height: auto;
        opacity: 1;
    }

    .style .tab_contents .tab_inner {
        padding: 6.965vw 3.731vw 6.965vw;
        background: #F0FAF3;
    }

    .style .styles_tab_header .title {
        color: #2EA1A2;
        font-size: 4.975vw;
        font-weight: 500;
    }

    .style .styles_tab_header .lead {
        margin-top: 3.98vw;
        font-size: 3.483vw;
        line-height: 1.7;
    }

    .style .styles_plan {
        margin-top: 6.965vw;
    }

    .style .styles_plan .styles_plan_list {
        display: flex;
        flex-direction: column;
        row-gap: 6.965vw;
    }

    .style .styles_plan .styles_plan_list .item {
        padding: 6.965vw 3.731vw;
        background: #FFF;
    }

    .style .styles_plan .styles_plan_list .item > .title {
        font-size: 4.478vw;
        font-weight: 500;
    }

    .style .styles_plan .styles_meta {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 3.731vw;
        margin-top: 3.731vw;
    }

    .style .styles_plan .styles_meta .point {
        padding: 3.731vw;
        background: var(--color-basebeige);
    }

    .style .styles_plan .styles_meta .point .point_list {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 3.731vw;
        margin-top: 0;
    }

    .style .styles_plan .styles_meta .point .point_list li {
        display: flex;
        align-items: center;
        column-gap: 2.488vw;
    }

    .style .styles_plan .styles_meta .point .point_list li span {
        flex: 1;
    }

    .style .styles_plan .styles_meta .point .point_list li:before {
        content: "";
        display: block;
        margin-top: 0;
        width: 10px;
        height: 10px;
        background: var(--color-arrowgreen);
        border-radius: 50%;
    }

    .style .styles_plan .styles_meta .price {
        display: flex;
        align-items: center;
        column-gap: 2.488vw;
        margin-top: 3.731vw;
        padding: 3.731vw;
        background: #F2F2F2;
    }

    .style .styles_plan .styles_meta .price .number {
        display: flex;
        align-items: flex-end;
        font-size: 4.975vw;
        color: var(--color-arrowgreen);
        line-height: 1;
    }

    .style .styles_plan .styles_meta .price .number small {
        font-size: 3.483vw;
    }

    .style .styles_plan .styles_voice {
        margin-top: 3.731vw;
    }

    .style .styles_plan .styles_voice > .title {
        font-size: 3.483vw;
        font-weight: normal;
    }

    .style .styles_plan .styles_voice .voice_list {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
        gap: clamp(2.222vw, 2.222vw, 32px);
        margin-top: 3.731vw;
    }

    .style .styles_plan .styles_voice .voice_list > .item {
        padding: 20px 25px;
        border: 1px solid #EAEAEA;
    }

    .style .styles_plan .styles_voice .voice_list > .item p {
        position: relative;
        padding-left: 23px;
        font-size: 2.985vw;
    }

    .style .styles_plan .styles_voice .voice_list > .item p:before {
        content: "";
        position: absolute;
        left: 0;
        width: 2px;
        height: 100%;
        background: var(--color-arrowgreen);
    }

    .style .styles_plan .link {
        margin-top: 5.97vw;
    }

    .style .styles_hall {
        margin-top: 5.97vw;
    }

    .style .styles_hall > .title {
        position: relative;
        font-size: 3.483vw;
        font-weight: normal;
    }

    .style .styles_hall > .title span {
        position: relative;
        display: block;
        width: fit-content;
        padding-right: 3.483vw;
        background: #F0FAF3;
        z-index: 1;
    }

    .style .styles_hall > .title:after {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        width: 100%;
        height: 1px;
        background: #E2E2E2;
        z-index: 0;
    }

    .style .styles_hall .styles_hall_list {
        display: flex;
        flex-direction: column;
        row-gap: 3.731vw;
        margin-top: 3.731vw;
    }

    .style .styles_hall .styles_hall_list .item {
        padding: 6.965vw 3.731vw;
        background: #FFF;
    }

    .style .styles_hall .styles_hall_list .styles_hall_meta {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 3.731vw;
        column-gap: 18px;
    }

    .style .styles_hall .styles_hall_list .styles_hall_meta .title .label {
        font-size: 3.98vw;
        font-weight: 500;
    }

    .style .styles_hall .styles_hall_list .styles_hall_meta .address {
        display: flex;
        align-items: center;
        column-gap: 8px;
        margin-top: 6px;
        font-size: 2.985vw;
    }

    .style .styles_hall .styles_hall_list .styles_hall_meta .address:before {
        content: "";
        width: 17px;
        height: 21px;
        background: url(../img/common/icon_location.svg) no-repeat;
        background-size: cover;
    }

    .style .styles_hall .styles_hall_list .styles_hall_meta .point {
        margin-top: 3.731vw;
        padding: 3.731vw;
        background: var(--color-basebeige);
    }

    .style .styles_hall .styles_hall_list .styles_hall_meta .point .point_list {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 11px;
    }

    .style .styles_hall .styles_hall_list .styles_hall_meta .point .point_list li {
        display: flex;
        align-items: center;
        column-gap: 2.488vw;
    }

    .style .styles_hall .styles_hall_list .styles_hall_meta .point .point_list li span {
        flex: 1;
    }

    .style .styles_hall .styles_hall_list .styles_hall_meta .point .point_list li:before {
        content: "";
        display: block;
        margin-top: 0;
        width: 10px;
        height: 10px;
        background: var(--color-arrowgreen);
        border-radius: 50%;
    }

    .style .styles_hall .styles_hall_list .styles_hall_voice {
        margin-top: 3.731vw;
    }

    .style .styles_hall .styles_hall_list .styles_hall_voice > .title {
        font-size: 3.483vw;
        font-weight: normal;
    }

    .style .styles_hall .styles_hall_list .styles_hall_voice .voice_list {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
        gap: clamp(2.222vw, 2.222vw, 32px);
        margin-top: 18px;
    }

    .style .styles_hall .styles_hall_list .styles_hall_voice .voice_list > .item {
        padding: 20px 25px;
        border: 1px solid #EAEAEA;
    }

    .style .styles_hall .styles_hall_list .styles_hall_voice .voice_list > .item p {
        position: relative;
        padding-left: 23px;
        font-size: 2.985vw;
    }

    .style .styles_hall .styles_hall_list .styles_hall_voice .voice_list > .item p:before {
        content: "";
        position: absolute;
        left: 0;
        width: 2px;
        height: 100%;
        background: var(--color-arrowgreen);
    }

    .style .styles_hall .styles_hall_list .link {
        margin-top: 33px;
    }
}

/*================================
Footer
================================*/
@media all and (max-width:768px){
    /* footer_members */
    .footer_members {
        background: #ebf0ec;
        margin-top: 0;
        padding-top: 6.219vw;
        padding-bottom: 6.219vw;
    }

    .footer_members .inner {
        margin-left: 3.731vw;
        margin-right: 3.731vw;
        padding: 137px 40px 50px;
        background: #FFF;
        border-radius: 9999px;
        box-sizing: border-box;
        max-width: calc(100% - 7.462vw);
    }

    .footer_members .present .title .label,
    .footer_members .present .title .label strong {
        word-break: break-all;
        overflow-wrap: anywhere;
    }

    .footer_members .section_header {
        position: relative;
    }

    .footer_members .section_header:before {
        content: "";
        position: absolute;
        top: -97px;
        left: 50%;
        transform: translateX(-50%);
        display: block;
        width: 80px;
        height: 80px;
        background: url(../img/common/icon_members.svg) no-repeat;
        background-size: cover;
    }

    .footer_members .present {
        position: relative;
        max-width: 886px;
        margin-top: 2.736vw;
        margin-inline: auto;
        padding: 4.975vw 30px 4.975vw 122px;
        background: #FEFCF0;
    }

    .footer_members .present:before {
        content: "";
        position: absolute;
        top: 50%;
        left: 34px;
        transform: translateY(-50%);
        display: block;
        width: 79px;
        height: 98px;
        background: url(../img/common/img_footer_members_handbook@2x.webp) no-repeat;
        background-size: cover;
    }

    .footer_members .present .title .label {
        font-weight: 400;
        font-size: 3.483vw;
    }

    .footer_members .present .title .label strong {
        color: var(--color-arrowgreen);
        font-weight: 400;
    }

    .footer_members .present p {
        margin-top: 10px;
        font-size: 2.985vw;
        letter-spacing: 0;
    }

    .footer_members .link {
        margin-top: 5.97vw;
    }

    /* footer_contact */
    .footer_contact {
        background: url(../img/common/bg_footer_contact.webp) no-repeat;
        background-size: cover;
        margin-top: 0;
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .footer_contact .section_header {
        color: #FFF;
    }

    .footer_contact .section_header p {
        color: #FFF;
    }

    .director_list {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        column-gap: 41px;
        margin-inline: 3.731vw;
    }

    .director_list .item {
        position: relative;
    }

    .director_list .item .text {
        position: absolute;
        left: 0.498vw;
        bottom: 0.498vw;
        color: #FFF;
    }

    .director_list .item .text .position {
        font-size: 1.99vw;
    }

    .director_list .item .text .name {
        margin-top: 0;
        font-size: 2.985vw;
        font-weight: 500;
    }

    .footer_contact .recommend {
        margin-top: 4.975vw;
        margin-inline: 3.731vw;
        padding: 4.726vw 4.726vw;
        background: #fdfcef;
    }

    .footer_contact .recommend > .title {
        display: grid;
        grid-template-columns: 1fr;
        column-gap: 39px;
        letter-spacing: 0;
    }

    .footer_contact .recommend > .title .label {
        font-size: 4.975vw;
        letter-spacing: 0;
        text-align: center;
    }

    .footer_contact .recommend > .title .lead {
        margin-top: 2.488vw;
        font-size: 3.234vw;
        letter-spacing: 0;
    }

    .footer_contact .recommend_box {
        margin-top: 54px;
        padding-top: 47px;
        border-top: 1px solid #ADADAD;
    }

    .footer_contact .recommend_box .title {
        position: relative;
        width: fit-content;
        margin-inline: auto;
        padding-left: 15.92vw;
        padding-bottom: 1.493vw;
    }

    .footer_contact .recommend_box .title:before {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        display: block;
        width: 11.194vw;
        height: 11.692vw;
        background: url(../img/common/bg_footer_contact_recommend_sp.webp) no-repeat;
        background-size: cover;
    }

    .footer_contact .recommend_box .title .label {
        width: fit-content;
        background:none;
        font-size: 3.483vw;
    }

    .footer_contact .recommend_box .title .label span {
        width: fit-content;
        background:linear-gradient(transparent 60%, #F5E8A2 60%);
        font-size: 3.483vw;
    }

    .footer_contact .recommend_box .title .label span:nth-of-type(2) {
        transform: translateX(-4vw);
    }

    .footer_contact .recommend_list {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 2.488vw;
    }

    .footer_contact .recommend_list .item {
        padding: 2.985vw;
        background: #FFF;
    }

    .footer_contact .recommend_list .item .meta {
        column-gap: 3.483vw;
    }

    .footer_contact .recommend_list .item .meta .img img {
        width: 7.711vw;
    }

    .footer_contact .recommend_list .item .meta .star img {
        width: 12.438vw;
        height: auto;
    }

    .footer_contact .recommend_list .item .meta .name {
        margin-top: 0.498vw;
        font-size: 2.488vw;
    }

    .footer_contact .recommend_list .item .text {
        margin-top: 2.488vw;
        font-size: 2.488vw;
    }

    .footer_contact .btn_list {
        margin-top: 4.478vw;
    }

    /* footer_recruit */
    .footer_recruit {
        height: auto;
        padding-top: 6.219vw;
        background: #F0FAF3;
    }

    .footer_recruit .inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        margin: 0;
    }

    .footer_recruit .inner .section_header {
        width: 100%;
        text-align: center;
        margin-bottom: 25px;
    }

    .footer_recruit .inner .section_header .title {
        font-size: 4.478vw;
    }

    .footer_recruit .inner .section_header .lead {
        margin-top: 5.721vw;
        font-size: 5.97vw;
    }

    .footer_recruit .inner .section_contents {
        width: 100%;
        text-align: center;
    }

    .footer_recruit .inner .section_contents .label {
        font-size: 3.98vw;
    }

    .footer_recruit .inner .section_contents p {
        margin-top: 5.97vw;
    }

    .footer_recruit .inner .link .link_btn {
        margin: 6.716vw auto 0;
    }

    /* footer */
    #footer {
        padding: 11.194vw 15px;
        background: #f3f7f4;
    }

    #footer .inner {
        grid-template-columns: 1fr;
        row-gap: 7.214vw;
    }

    /* SP: フッター情報ブロック全体を中央揃えに（ロゴ・住所・電話・FAX含む） */
    .footer_info {
        text-align: center;
    }

    .footer_info_logo {
        display: block;
        text-align: center;
        margin-inline: auto;
    }

    .footer_info_logo picture {
        display: block;
    }

    .footer_info_logo img {
        width: 62.438vw;
    }

    .footer_info .footer_info_address {
        width: fit-content;
        margin-inline: auto;
        margin-top: 5.721vw;
    }

    .footer_info .footer_info_address .footer_tel {
        margin-top: 0;
    }

    .footer_info .sns_list {
        margin-top: 3.731vw;
        justify-content: center;
    }

    .footer_info .sns_list a img {
        height: 6.468vw;
        filter: brightness(0.4);
    }

    .footer_info .footer_info_link {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 2.488vw;
        margin-top: 3.731vw;
        width: 68.657vw;
        margin-inline: auto;
    }

    .footer_info .btn_contact .label {
        position: relative;
        padding-left: 30px;
    }

    .footer_info .btn_contact .label:before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        display: block;
        width: 18px;
        height: 14px;
        background: url(../img/common/icon_mail.svg) no-repeat;
        background-size: cover;
    }

    .footer_info .btn_cart .label {
        position: relative;
        padding-left: 30px;
    }

    .footer_info .btn_cart .label:before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        display: block;
        width: 19px;
        height: 20px;
        background: url(../img/common/icon_cart.svg) no-repeat;
        background-size: cover;
    }

    .footer_nav {
        display: flex;
        gap: 3.483vw;
    }

    .footer_nav_column,
    .footer_nav_column_sp {
        display: flex;
        flex-direction: column;
        gap: 9.95vw;
    }

    .footer_nav .footer_nav_list li a,
    .footer_nav_list_etc li a {
        font-size: 3.731vw;
    }

    .footer_nav .footer_nav_list li:first-of-type a {
        margin-bottom: 2.985vw;
        font-size: 3.731vw;
    }

    .copyright {
        height: 7.711vw;
        font-size: 3.731vw;
    }
}
