/* ---------------------------------------------
 *  Base
--------------------------------------------- */
html {
    width: 100%;
    height: 100%;
    color: #1C1C1C;
    font-size: 62.5%;
    font-family: 'Noto Serif JP', serif;
    background: #F2F2F0;
}

body {
    font-size: 1.6rem;
    font-weight: 500;
    min-width: 1000px;
    margin: 0;
}

.container {
    max-width: calc(1000px + 10%);
    margin: 0 auto;
    padding: 0 5%
}

.is-mac body {
    font-weight: 400;

}

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

a {
    text-decoration: none
}

/* ---------------------------------------------
*   Fonts
--------------------------------------------- */
@font-face {
    font-family: "BigCaslonWeb";
    src:
        url("../fonts/BigCaslon.woff2") format("woff2"),
        url("../fonts/BigCaslon.woff") format("woff");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-007F;
}

.font-serif-caslon {
    font-family: "BigCaslonWeb", "Playfair Display", "Times New Roman", Times, serif;
}

/* ---------------------------------------------
*   Utility
--------------------------------------------- */
@media screen and (max-width: 767px) {
    .hidden-sp {
        display: none !important;
    }

    .pc-view {
        display: none;
    }

    .sp-view {
        display: block;
    }
}

@media screen and (min-width: 768px) {
    .hidden-pc {
        display: none !important;
    }

    .pc-view {
        display: block
    }

    .sp-view {
        display: none
    }
}

/* ---------------------------------------------
 *  Parts
--------------------------------------------- */

.green_btn {
    position: relative;
    display: inline-block;
    min-width: 200px;
    padding: 17px 25px 17px 50px;
    background-color: #2D7844;
    color: #fff;
    font-size: 16px;
    font-weight: normal;
    text-decoration: none;
    line-height: 1.4;
    text-align: left;
    background-image: url("../img/common/arrow.svg");
    background-repeat: no-repeat;
    background-size: 10px 10px;
    background-position: 25px center;
    transition: background-color 0.3s;
}

.green_btn:hover {
    background-color: #246236;
}

.norm_btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 290px;
    height: 50px;
    border: 1px solid #0B0B0B;
    border-radius: 26px;
    background-color: #fff;
    text-decoration: none;
    color: inherit;
    font-size: 1.6rem;
    font-weight: 500;
}

.norm_btn:hover {
    background-color: #2D7844;
    color: #fff;
    transition: all 0.3s ease;
}


@media (max-width: 767px) {

    .green_btn {
        min-width: auto;
        padding: 15px 25px 15px 35px;
        font-size: 16px;
        background-position: 18px center;
    }

    .norm_btn {
        width: auto;
        white-space: nowrap;
        padding: 0 30px;
        height: 46px;
    }


}

/* ---------------------------------------------
 *  Header
--------------------------------------------- */
header {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
}


.logo {
    position: absolute;
    top: 18px;
    left: 18px;
    margin: 0;
}

.logo img {
    height: 60px;

}


.global-nav {
    position: absolute;
    top: 30px;
    right: 23px;

}

.global-nav ul {
    list-style: none;
    display: flex;
    gap: 2.3rem;
    margin: 0;
    padding: 0;
}

.global-nav a {
    text-decoration: none;
    color: #fff;
    font-size: 1.6rem;
    transition: opacity 0.3s;
}

.global-nav a:hover {
    opacity: 0.7;
}


.nav-member a,
.nav-reserve a {
    display: inline-block;
    width: 96px;

    text-align: center;
    padding: 0.6rem 0;

    border-radius: 9999px;

    font-size: 1.4rem;
    line-height: 1.4;
}


.nav-member a {
    border: 1px solid #fff;
    background: transparent;
    color: #fff;
}


.nav-reserve a {
    background: #fff;
    color: #1C1C1C;
    border: none;
}

#siteHeader {
    --h: 96px;
    --logo-top: 18px;
    --logo-h: 60px;
    --nav-top: 30px;

    height: var(--h);

    z-index: 1000;

}


#siteHeader::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #fff;
    transform: translateY(-100%);

    transition: transform .35s ease, box-shadow .25s ease;
    will-change: transform;
    pointer-events: none;
    z-index: -1;

}


#siteHeader.is-scrolled::before {
    transform: translateY(0);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .08);
}


#siteHeader .logo {
    top: var(--logo-top);
}

#siteHeader .logo img {
    height: var(--logo-h);
}

#siteHeader .global-nav {
    top: var(--nav-top);
}


#siteHeader.is-scrolled {
    --h: 72px;
    --logo-top: 10px;
    --logo-h: 48px;
    --nav-top: 22px;
}


#siteHeader.is-scrolled .global-nav a {
    color: #0B0B0B;
}

#siteHeader.is-scrolled .nav-member a {
    border-color: #2D7844;
    color: #2D7844;
    background: transparent;
}

#siteHeader.is-scrolled .nav-reserve a {
    background: #2D7844;
    color: #fff;
    border: none;
}


#siteHeader.is-scrolled .hamburger span {
    background: #0B0B0B;
}

@media (max-width: 1024px) {
    #siteHeader {
        --h: 64px;
        --logo-top: 8px;
        --logo-h: 40px;
        --nav-top: 16px;
    }

    #siteHeader.is-scrolled {
        --h: 56px;
        --logo-top: 6px;
        --logo-h: 36px;
        --nav-top: 14px;
    }

    #siteHeader .global-nav {
        position: fixed;
        inset: 0;

        z-index: 1200;

        min-height: 100dvh;

        padding-top: env(safe-area-inset-top, 0px);
    }

    #siteHeader .global-nav a {
        color: #fff !important;
    }


    #siteHeader .global-nav .nav-reserve a {
        background: #fff !important;
        color: #1C1C1C !important;
    }


    #siteHeader .global-nav .nav-member a {
        border-color: #fff !important;
        color: #fff !important;
        background: transparent !important;
    }

}

/* ---------------------------------------------
 *  Hamburger Menu (SP)
--------------------------------------------- */
.hamburger {
    display: none;
    position: absolute;
    top: 20px;
    right: 20px;
    width: 25px;
    height: 20px;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    z-index: 1100;

}

.hamburger span {
    display: block;
    height: 3px;
    width: 100%;
    background: #fff;
    border-radius: 2px;
    transition: 0.4s;
}


.hamburger.active span:nth-child(1) {
    transform: rotate(45deg) translate(6px, 6px);
}

.hamburger.active span:nth-child(2) {
    opacity: 0;
}

.hamburger.active span:nth-child(3) {
    transform: rotate(-45deg) translate(6px, -6px);
}

.hamburger.active span {
    background: #fff !important;
}

@media screen and (max-width: 1024px) {
    body {
        min-width: auto;
    }

    .global-nav {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background: #2D7844;

        text-align: center;
        justify-content: center;
        align-items: center;
    }

    .global-nav ul {
        flex-direction: column;
        gap: 2rem;

        padding: 0;
    }

    .global-nav li {
        margin: 0;
    }

    .hamburger {
        display: flex;
    }

    .global-nav.active {
        display: flex;

    }
}

@media (max-width: 1024px) {

    #siteHeader .hamburger {
        position: fixed;
        top: 16px;
        right: 16px;
        z-index: 1400;

    }
}


/* ---------------------------------------------
 *  Footer
--------------------------------------------- */

footer {
    background: #225A33;
}

.footer_flex {
    padding: 60px 0 50px;
    display: flex;
    justify-content: space-between;
    align-items: center
}

footer .logo_box {
    color: #fff;
}

footer .logo_box p {
    font-size: 1.5rem;
    line-height: 1.8;
    margin: 15px 0 0
}

footer .logo_box img {
    max-width: 210px;
}

.footer_list {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(5, auto);

    gap: 15px 5vw;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 1.6rem;
}

.footer_list li a {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;

    color: #fff;
    text-decoration: none;
}

.footer_list li a::before {
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    background: url("../img/common/footer_arrow.svg") no-repeat center / contain;
}

.copyright {
    background: #050505;
    text-align: center;
    padding: 12px
}

.copyright p {
    margin: 0;
    font-size: 1.4rem;
    color: #fff
}

@media screen and (max-width: 1024px) {

    footer .logo_box img {
        max-width: 190px;
    }

    .footer_list {
        gap: 15px 3.5vw;
        font-size: 1.5rem;
    }

    footer .hidden-pc {
        display: block !important
    }
}

@media screen and (max-width: 767px) {

    .footer_flex {
        padding: 40px 0 30px;
        display: block;
    }

    footer .logo_box {
        text-align: center
    }

    footer .logo_box p {
        font-size: 1.5rem;
        line-height: 1.8;
        margin: 15px 0 0;
    }

    footer .logo_box img {
        max-width: 170px;
    }

    .footer_list {
        margin-top: 35px;
        grid-template-rows: repeat(6, auto);
        gap: 8px 6vw;
        justify-content: center;
        font-size: 1.45rem;
    }

    .footer_list li a::before {
        width: 11px;
        height: 11px;
    }

    .copyright {
        background: #050505;
        text-align: center;
        padding: 12px
    }

    .copyright p {
        font-size: 1.2rem;
    }
}


/* ---------------------------------------------
 *  Main Visual
--------------------------------------------- */
.main-visual {
    position: relative;
    width: calc(100% - 10px);

    height: calc(100vh - 10px);

    margin: 5px;
    overflow: hidden;
}


.mv-slider,
.mv-slider .swiper-slide {
    width: 100%;
    height: 100%;
}

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


.mv-title {
    position: absolute;
    top: 53%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;

}

.mv-title img {
    width: 92px;
    height: auto;
}


/* Main Visual 用のページネーションだけに限定 */
.main-visual .swiper-pagination {
    position: absolute !important;
    right: 15px !important;
    top: 50% !important;
    transform: translateY(-50%);
    display: flex !important;
    flex-direction: column;
    gap: 10px;
    width: auto !important;
    height: auto !important;
    left: auto !important;
    bottom: auto !important;
}

.main-visual .swiper-pagination-bullet {
    width: 10px !important;
    height: 10px !important;
    background: #FFFFFF !important;
    opacity: 1 !important;
    margin: 0 !important;
}

.main-visual .swiper-pagination-bullet-active {
    background: #d3e08e !important;
}


.main-visual {
    position: relative;
    width: calc(100% - 10px);

    height: calc(100vh - 10px);

    margin: 5px;
    overflow: hidden;
}

@media screen and (max-width: 1366px) {
    .mv-title img {
        width: 80px;
    }
}

@media screen and (max-width: 1024px) {
    .main-visual {
        width: 100%;

        height: 100vh;
        margin: 0;
    }

    .mv-title img {
        width: 80px;
        margin-top: 30px;
    }
}


@media screen and (max-width: 767px) {
    .mv-title img {
        width: 60px;
        margin-top: 45px;
    }
}


/* ---------------------------------------------
 *  Service Nav (Tabs)
--------------------------------------------- */

.service-nav {
    width: 100%;
    color: var(--svc-fg);
    margin-top: 80px;
    padding-bottom: 80px
}

.service-nav .container {
    max-width: 960px
}

.service-nav h2 {
    margin: 0 0 50px;
    text-align: center;
    font-size: 2.9rem;
    font-weight: 400
}


.service-nav__tablist {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    border-bottom: 1px solid #8E8780;

}


.service-nav__tab {
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    color: #7c7c7c;
    border: 1px solid #8E8780;
    border-top: none;
    border-bottom: none;
    width: 240px;
    text-align: center;
    padding: .9rem 0;
    font: inherit;
    letter-spacing: .04em;
    cursor: pointer;
    margin-right: -1px;
    position: relative;
    z-index: 1;
    transition: color .2s ease, border-color .2s ease;
}

.service-nav__tab:first-child:not(.is-active) {
    border-left: none;
}

.service-nav__tab:hover,
.service-nav__tab:focus-visible {
    color: #0B0B0B;
    border-color: #2D7844;
    outline: none;
}

.service-nav__tab.is-active {
    color: #0B0B0B;
    border: 1px solid #8E8780;
    border-bottom: none;
    z-index: 2;
    background: #F2F2F0;
}

.service-nav__tab.is-active::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 2px;
    background: #F2F2F0;
}

.service-nav__indicator {
    display: none !important;
}


.service-nav__panels {
    margin-top: 0;
}

.service-nav__panel {
    padding: 50px 0 0 0;
    opacity: 0;
    transition: opacity .2s ease;
    border: none !important;
    background: #F2F2F0;
}

.service-nav__panel.is-active {
    opacity: 1;
}

.service-nav__panel[hidden] {
    display: none;
}

.infotab {
    position: relative;
    overflow: hidden
}

.infotab-swiper {
    overflow: visible;
    padding: 0;
}

.infotab_img_list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
}

.infotab_img_list .swiper-slide {
    width: auto;
    box-sizing: border-box;
}

.infotab_img_list li a {
    display: block;
    color: #0B0B0B;
    text-decoration: none;
}

.infotab_img_list li p.date {
    margin: 15px 0 10px;
    font-size: 1.4rem;
}

.infotab_img_list li p.info_ttl {
    margin: 15px 0 0 0;
    font-size: 1.5rem;
    line-height: 1.5;
}

.infotab_img_list .thumb {
    width: 100%;
    aspect-ratio: 225 / 105;
    overflow: hidden;
    background: #ddd;
}

.infotab_img_list .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

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

.infotab_list li {
    display: flex;
    margin: 0 0 20px;
    padding-bottom: 20px;
    border-bottom: 1px dotted gray
}

.infotab_list li p {
    margin: 0
}

.infotab_list li p.date {
    width: 8em
}

.infotab_list li p.info_ttl {
    width: calc(100% - 8em)
}

.infotab_list li p.info_ttl a:hover {
    color: #2D7844
}

.infotab_list li a {
    text-decoration: none;
    color: #0B0B0B;
}

.info_top_link {
    display: flex;
    justify-content: center;

    gap: 40px;

    margin: 50px 0 0;
}

.circle_btn {
    display: inline-flex;
    align-items: center;
    font-size: 1.6rem;
    color: #1C1C1C;
    text-decoration: none;
    position: relative;
    padding-left: 50px;

}


.circle_btn::before {
    content: "";
    display: block;
    width: 40px;
    height: 40px;
    background: url("../img/common/circle_btn.svg") no-repeat center/contain;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}


@media screen and (max-width: 767px) {

    .service-nav {
        margin-top: 40px;
        padding-bottom: 40px
    }

    .service-nav h2 {
        margin: 0 0 30px;
        font-size: 2.2rem;
    }

    .service-nav__tab {
        width: calc(100% / 3);
        padding: 7px 5px;
        font-size: 1.4rem
    }


    .service-nav__panel {
        padding: 30px 0 0 0;
    }

    .infotab_img_list li p.date {
        margin: 14px 0 7px;
        font-size: 1.3rem;
    }

    .infotab_img_list li p.info_ttl {
        margin: 0;
        font-size: 1.5rem;
        line-height: 1.45;
    }

    .infotab_list li {
        display: block;
        margin: 0 0 15px;
        padding-bottom: 15px;
    }

    .infotab_list li p.date {
        width: auto;
        font-size: 1.3rem;
        margin-bottom: 5px
    }

    .infotab_list li p.info_ttl {
        width: 100%;
        font-size: 1.5rem;
        line-height: 1.6
    }


    .info_top_link {
        display: flex;
        flex-flow: column;
        align-items: center;
        gap: 15px;
        margin: 30px 0 0;
    }

    .info_top_link .circle_btn:first-child {
        margin-right: 1em
    }

    .circle_btn {
        padding-left: 37px;
    }

    .circle_btn::before {
        width: 30px;
        height: 30px;
    }
}

/* ---------------------------------------------
 *  Video Section
--------------------------------------------- */

.video-block {
    position: relative;
    width: calc(100% - 10px);
    margin: 0 auto;
    cursor: pointer;
    line-height: 0;
}

.video-poster {
    display: block;
    width: 100%;
    height: auto;
}

.video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    width: 100px;
    height: 100px;
    pointer-events: none;
}

@media (max-width: 767px) {
    .video-play {
        width: 50px;
        height: 50px;
    }
}

.video-el {
    display: block;
    width: 100%;
    height: auto;
    outline: none;
    border: 0;
}

@supports (translate: -50% -50%) {
    .video-play {
        transform: none;
        translate: -50% -50%;
    }
}

/* ---------------------------------------------
 *  Course Section
--------------------------------------------- */

.course-block {
    padding: 100px 0
}

.course-block {
    background: url("../img/top/course-bg.svg") no-repeat calc(100% - 10%) center / 60% auto;
}

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

.course_flex .img_box {
    width: 30%;
}

.course_flex .img_box img {
    margin: 7px 0;
    border-radius: 5px
}

.course_flex .cont_box {
    width: 70%;
    padding-left: 120px
}

.course-block h2 {
    font-family: "BigCaslonWeb", "Playfair Display", "Times New Roman", Times, serif;
    font-size: 8rem;
    margin: 0 0 20px;
    font-weight: 400
}

.course-block .cach {

    font-size: 2.6rem;
    margin: 0
}

.course-block .disc {
    margin: 30px 0 35px;
    line-height: 2.2;
    font-size: 1.65rem;
}

@media (max-width: 1024px) {
    .course-block {
        padding: 60px 0
    }

    .course-block {
        background: url("../img/top/course-bg.svg") no-repeat calc(100% - 10%) center / 90% auto;
    }

    .course_flex {
        flex-flow: column-reverse;
    }

    .course_flex .img_box {
        width: calc(100% + 10px);
        display: flex;
        margin-top: 35px
    }

    .course_flex .img_box img {
        width: calc(100% / 2);
        margin: 0;
        margin-right: 10px;
    }

    .course_flex .cont_box {
        width: 100%;
        padding-left: 0
    }

    .course-block h2 {
        font-size: 6rem;
        margin: 0 0 10px;
    }

    .course-block .cach {
        font-size: 2.2rem;
        margin: 0
    }

    .course-block .disc {
        margin: 20px 0 25px;
        line-height: 2;
        font-size: 1.6rem;
    }
}

@media (max-width: 767px) {

    .course-block {
        padding: 40px 0
    }

    .course-block {
        background: url("../img/top/course-bg.svg") no-repeat center 10% / 130% auto;
    }

    .course_flex .img_box {
        width: calc(100% + 10px);
        margin-top: 35px
    }

    .course_flex .img_box img {
        max-width: 50%;
        width: calc(50% - 10px);
        margin-right: 10px;
    }

    .course-block h2 {
        font-size: 6rem;
        margin: 0 0 10px;
    }

    .course-block .cach {
        font-size: 2.2rem;
        line-height: 1.5
    }

    .course-block .disc {
        line-height: 1.9;
    }
}

/* ---------------------------------------------
 *  Power Spot
--------------------------------------------- */
html,
body {
    overflow-x: hidden;
}

.power-spot {
    padding: 40px 0;

    padding-bottom: 85px;

    overflow-x: hidden;
    overflow-y: visible;
}

.power-spot .swiper {
    width: 100%;
    overflow-x: hidden;
    overflow-y: visible;
    padding-bottom: 45px;

}

.power-spot .swiper-wrapper {
    transition-timing-function: linear !important;
}

.pspot-card {
    position: relative;
    width: 300px !important;
    height: 450px;
    border-radius: 10px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
}

.pspot-card.is-offset {
    transform: translateY(45px);
}

.pspot-vtitle {
    position: absolute;
    top: 23px;
    right: 18px;
    margin: 0;
    color: #fff;
    writing-mode: vertical-rl;
    text-orientation: upright;

    text-shadow: 0 1px 4px rgba(0, 0, 0, .35);
    font-size: 4.9rem;
    line-height: 1.05;
    letter-spacing: .05em;
}

.pspot-vtitle span {
    font-size: 1.8rem;
    font-weight: 500;
    letter-spacing: .05em;
    margin-left: .3em;
    display: block
}

.pspot-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .7);
    color: #fff;
    opacity: 0;
    transition: opacity .2s ease;
    display: grid;
    place-items: center;
    padding: 24px;
}

.pspot-overlay__inner {
    max-width: 90%;
}

.pspot-overlay h4 {
    margin: 0 0 10px;
    font-size: 2.6rem;
    font-weight: 600;
}

.pspot-overlay h4 span {
    display: block;
    font-size: 1.6rem;
    font-weight: 400
}

.pspot-overlay p {
    margin: 0;
    font-size: 1.4rem;
    line-height: 1.8;
    white-space: normal;
}

.pspot-card:hover .pspot-overlay {
    opacity: 1;
}

.ps_info {
    padding: 80px 0 0
}

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

.ps_ttl h2 {
    font-family: "BigCaslonWeb", "Playfair Display", "Times New Roman", Times, serif;
    font-size: 7rem;
    margin: 0 0 40px;
    font-weight: 400
}

.ps_ttl p {
    font-size: 2.4rem;
    margin: 0 0 0 35PX
}

.ps_desc {
    margin: 0 0 40px;
    line-height: 2;
    font-size: 1.7rem;
}

@media (max-width: 767px) {

    .power-spot {
        padding: 40px 0;

        padding-bottom: 55px;
    }


    .pspot-card {
        width: 240px !important;
        height: 360px;
    }

    .pspot-vtitle {
        top: 15px;
        right: 10px;
        font-size: 3.4rem;
    }

    .pspot-vtitle span {
        font-size: 1.6rem;
    }

    .pspot-overlay p {
        margin: 0;
        font-size: 1.4rem;
        line-height: 1.6;
        white-space: normal;
    }

    .pspot-overlay__inner {
        max-width: 95%;
    }


    .pspot-overlay h4 {
        margin: 0 0 8px;
        font-size: 2.0rem;
    }

    .pspot-overlay h4 span {
        font-size: 1.4rem;
        font-weight: 400
    }

    .ps_info {
        padding: 45px 0 0
    }

    .ps_ttl {
        display: block;
    }

    .ps_ttl h2 {
        font-size: 5.5rem;
        margin: 0;
    }

    .ps_ttl p {
        font-size: 2.0rem;
        margin: 10px 0 25px
    }

    .ps_desc {
        margin: 0 0 30px;
        line-height: 1.9;
        font-size: 1.6rem;
    }

}

/* ---------------------------------------------
 *  Bar_img
--------------------------------------------- */

#top .bar_img {
    margin: 0 5px
}

/* ---------------------------------------------
 *  Facility
--------------------------------------------- */

.facility {
    margin: 120px 0 160px
}

.facility_flex {
    display: flex;
    align-items: center;
    margin-bottom: 60px
}

.facility_flex.reverse {
    flex-flow: row-reverse
}

.facility_flex .img {
    width: 50%
}

.facility_flex .cont {
    width: 50%;
}

.facility_flex .cont .inner {
    padding-right: 55px
}

.facility_flex.reverse .cont .inner {
    padding-right: 0;
    padding-left: 55px
}

.facility_flex .cont h2 {
    font-family: "BigCaslonWeb", "Playfair Display", "Times New Roman", Times, serif;
    font-size: 4.7rem;
    margin: 0 0 25px;
    font-weight: 400;

    letter-spacing: .01em
}

.facility_flex .cont h2 span {
    font-size: 1.6rem;
    margin-left: 15px
}

.facility_flex .cont p {
    line-height: 2;
    margin: 0 0 35px
}

@media (max-width: 1024px) {

    .facility {
        margin: 80px 0 50px
    }

    .facility_flex {
        display: block;
        margin-bottom: 40px
    }

    .facility_flex .img {
        width: 100%;
        margin-top: 35px
    }

    .facility_flex .cont {
        width: 100%;
    }

    .facility_flex .cont .inner {
        padding-right: 0
    }

    .facility_flex.reverse .cont .inner {
        padding-right: 0;
        padding-left: 0
    }

    .facility_flex .cont h2 {
        font-size: 4.7rem;
        margin: 0 0 20px;
    }

    .facility_flex .cont h2 span {
        font-size: 1.5rem;
    }

    .facility_flex .cont p {
        line-height: 1.85;
        margin: 0 0 30px
    }
}

@media (max-width: 767px) {

    .facility {
        margin: 50px 0
    }

    .facility_flex {
        margin-bottom: 40px
    }

    .facility_flex .img {
        width: 100%;
        margin-top: 30px
    }

    .facility_flex .cont {
        width: 100%;
    }

    .facility_flex .cont h2 {
        font-size: 4.2rem;
        margin-bottom: 15px
    }


    .facility_flex .cont p {
        line-height: 1.85;
        margin: 0 0 25px
    }
}

/* ---------------------------------------------
 *  Instagram
--------------------------------------------- */

.instagram {
    background: #215832;
    margin: 0 5px 0
}

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

.insta_flex .insta_link {
    width: 35%;
    text-align: center;
    padding: 35px
}

.insta_flex .insta_link img {
    max-width: 250px
}

.insta_flex .insta_box {
    width: 65%;
    margin-top: -65px
}

.insta_flex .insta_link h2 {
    margin: 0 0 5px
}

.insta_flex .insta_link p {
    color: #fff;
    margin: 0 0 20px
}

.follow_btn {
    display: inline-block;
    background: #fff;
    padding: 5px 15px;
    border-radius: 5px;
    text-decoration: none;
    color: #2D7844
}

@media (max-width: 1024px) {

    .instagram {
        margin: 0px 0 0 0
    }

    .insta_flex {
        flex-flow: column;
    }

    .insta_flex .insta_link {
        width: 100%;
        padding: 45px 15px 35px
    }

    .insta_flex .insta_box {
        width: 100%;
        margin-top: 0;
        padding-bottom: 20px
    }

    .insta_flex .insta_link h2 {
        margin: 0 0 10px
    }

    .insta_flex .insta_link p {
        font-size: 1.45rem;
        margin: 0 0 15px
    }

    .follow_btn {
        padding: 5px 15px;
        font-size: 1.45rem;
    }
}

/* ---------------------------------------------
 *  Access
--------------------------------------------- */

.access {
    padding: 85px 0 80px
}

.access_flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 35px
}

.access_flex .green_btn {
    min-width: auto;
    padding-right: 28px
}

.access h2 {
    font-family: "BigCaslonWeb", "Playfair Display", "Times New Roman", Times, serif;
    font-size: 6.2rem;
    margin: 0;
    font-weight: 400;
    letter-spacing: .01em
}

.access h2 span {
    font-size: 1.6rem;
    margin-left: 15px
}

.access_flow {
    display: flex;
    margin-top: 45px
}

.access_flow .inner {
    width: 50%
}

.access_flow .inner h3 {
    border-left: 7px solid #C3B259;
    margin: 0 0 22px;
    padding-left: 10px;
    font-weight: 500;
    font-size: 1.9rem;
}

.access_flow .inner p {
    line-height: 2;
    margin: 0
}

.access_flow .inner a {
    text-decoration: none;
    color: #0B0B0B
}

@media (max-width: 767px) {

    .access {
        padding: 50px 0
    }

    .access_flex {
        display: flex;
        flex-flow: column;
        align-items: flex-start;
        margin-bottom: 35px
    }

    .access_flex .green_btn {
        min-width: auto;
        padding-right: 28px
    }

    .access h2 {
        font-size: 4.2rem;
        margin-bottom: 15px
    }

    .access iframe {
        height: 300px
    }

    .access_flow {
        display: block;
        margin-top: 0
    }

    .access_flow .inner {
        width: 100%
    }

    .access_flow .inner h3 {
        border-left: 6px solid #C3B259;
        margin: 30px 0 18px;
    }

    .access_flow .inner p {
        line-height: 1.8;
    }
}


/* ---------------------------------------------
 *  Reservation
--------------------------------------------- */


.reservation {
    padding: 85px 0
}

.reservation h2 {
    font-family: "BigCaslonWeb", "Playfair Display", "Times New Roman", Times, serif;
    font-size: 6.2rem;
    margin: 0;
    font-weight: 400;
    letter-spacing: .01em;
    border-bottom: 1px solid #B2B2B2;
    padding-bottom: 20px
}

.reservation h2 span {
    font-size: 1.6rem;
    margin-left: 15px
}


.reservation_flex {
    display: flex;
    padding-top: 50px;
}

.reservation_flex .tel_box {
    width: 50%;
}

.reservation_flex .online_box {
    width: 50%;
    justify-content: start
}

.reservation_flex .online_box img {
    margin: 0;
    padding: 0;
    max-width: 480px
}

.tel_ttl {
    display: flex;
    align-items: center;
    margin: 0;
}

.tel_ttl h3 {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 400;
}

.tel_ttl p {
    margin: 0 0 0 15px;
    font-size: 1.5rem;
}

.tel_ttl p span {
    color: #fff;
    background: #2D7844;
    font-size: 1.1rem;
    padding: 2px 8px;
    margin-right: 10px;
    border-radius: 20px
}

.reserv_tel {
    display: inline-flex;
    align-items: center;
    font-size: 5.6rem;
    color: #0B0B0B;
    gap: 0.5em;
    margin: -5px 0 18px
}

.reserv_tel::before {
    content: "";
    display: inline-block;
    width: 45px;
    height: 45px;
    background: url("../img/common/icon-tel.svg") no-repeat center / contain;
}


.reserv_tel a {
    text-decoration: none;
    color: inherit;
}

.online_link_btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 0.6em;
    width: 400px;
    height: 87px;
    background-color: #225A33;
    border-radius: 8px;
    color: #fff;
    font-size: 1.9rem;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.online_link_btn::before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url("../img/top/icon-cal.svg") no-repeat center / contain;
}

.online_link_btn:hover {
    background-color: #1b4728;
}

.online_att {
    margin: 25px 0 0 0;
    padding: 0;
    list-style: none;
    font-size: 1.6rem;
}

.online_att li {
    position: relative;
    padding-left: 1.4em;

    line-height: 1.8;
    text-indent: -1.4em;

    margin-bottom: 5px
}

.online_att li::before {
    content: "◆";
    color: #0B0B0B;
    font-size: 1.6rem;
    margin-right: 0.4em;

}

.banner_flex {
    display: flex;
    justify-content: space-between;
    gap: 25px;

    list-style: none;
    padding: 40px 0 0 0;
    margin: 50px 0 0 0;
    border-top: 1px solid #B2B2B2;

}

.banner_flex li {
    flex: 1;

}

.banner_flex img {
    display: block;
    width: 100%;
    height: auto;
}

@media (max-width: 1024px) {

    .reservation_flex {
        display: block;
        padding-top: 50px;
    }

    .reservation_flex .tel_box {
        width: 100%;
    }

    .reservation_flex .online_box {
        width: 100%;
        margin-top: 35px
    }
}


@media (max-width: 767px) {

    .reservation {
        padding: 45px 0
    }

    .reservation h2 {
        font-size: 4.2rem;
        padding-bottom: 20px
    }

    .reservation h2 span {
        font-size: 1.6rem;
        margin-left: 15px
    }

    .reservation_flex {
        padding-top: 30px;
    }

    .tel_ttl {
        display: block;
    }

    .tel_ttl h3 {
        margin: 0;
        font-size: 1.6rem;
        font-weight: 400;
    }

    .tel_ttl p {
        margin: 8px 0 0 1.2em;
        font-size: 1.4rem;
    }

    .reserv_tel {
        font-size: 3.6rem;
        gap: 0.3em;
        margin: 8px 0 25px
    }

    .reserv_tel::before {
        width: 35px;
        height: 35px;
    }

    .online_link_btn {
        width: 100%;
        height: 70px;
    }

    .online_att {
        margin: 25px 0 0 0;
        font-size: 1.5rem;
    }

    .banner_flex img {
        display: block;
        width: 100%;
        height: auto;
    }

    .banner_flex {
        flex-direction: column;
        gap: 15px;
        margin-top: 30px;
        padding-top: 30px
    }

    .banner_flex li {
        flex: none;
        width: 100%;
    }
}

/* ---------------------------------------------
*   下階層　共通
--------------------------------------------- */

.lower-cont {
    padding-top: 50px;
    padding-bottom: 60px;
    line-height: 1.8
}

.bread ul {
    list-style: none;
    padding: 0;
    margin: 20px 0 0 0;
    display: flex;
    flex-flow: wrap;
    font-size: 1.4rem;
}

.bread ul li::after {
    content: "＞";
    color: #adadad;
    font-size: 1.2rem;
    margin: 0 1em
}

.bread ul li:last-child::after {
    content: none
}

.bread ul li a {
    text-decoration: none;
    color: #2D7844
}

/*部品*/

.h2_ttl {
    font-weight: 500;
    font-size: 2.6rem;
    margin: 50px 0 40px;
    padding-bottom: 5px;
    border-bottom: 3px double #818181;
    display: flex;
    align-items: baseline;
    justify-content: space-between
}

.h2_ttl:first-of-type {
    margin-top: 0;
}

.h2_ttl span {
    font-size: 1.8rem;
    font-style: italic;
    color: #725c48
}

.h3_ttl {
    display: flex;
    margin: 40px 0 35px;
    align-items: center;
    font-size: 1.6rem;
    font-weight: 500;
    padding: .5em .7em;
    background-color: #2D7844;
    color: #fff;
}

.h3_ttl::before {
    display: inline-block;
    width: 4px;
    height: 1.3em;
    margin-right: .5em;
    background-color: #fff;
    content: '';
}

.h2_ttl_center {
    font-weight: 500;
    font-size: 3.6rem;
    margin: 50px 0 45px;
    text-align: center;
    line-height: 1.65
        /*font-style: italic;*/
}

.h2_ttl_center:first-of-type {
    margin-top: 0
}

.h2_ttl_center span {
    display: block;
    font-size: 1.6rem;
    font-weight: 400;
}

.h2_ttl_center::after {
    content: "";
    display: block;
    width: 80px;
    height: 4px;
    background-color: #2D7844;
    margin: 18px auto 0;
}

.h3_border_bl {
    margin: 45px 0 35px;
    padding: 2px 0 6px 10px;
    font-weight: 500;
    line-height: 1.5;
    border-left: 8px solid #2D7844;
    border-bottom: 1px solid #2D7844;
}

.bdleft_ttl {
    margin: 40px 0 30px;
    background: #1A572D;
    color: #fff;
    font-weight: 500;
    font-size: 2rem;
    border-left: 13px solid #C3B259;
    padding: 2px 12px 4px
}

ul.kome_list {
    list-style: none;
    padding-left: 0;
}

ul.kome_list li {
    position: relative;
    padding-left: 1.5em;
    margin: 5px 0;
    line-height: 1.6
}

ul.kome_list li::before {
    content: "※";
    position: absolute;
    left: 0;
    top: 0;
    color: #000;
}

ul.circle_list {
    list-style: none;
    padding-left: 0;
}

ul.circle_list li {
    position: relative;
    padding-left: 1.5em;
    margin: 5px 0;
    line-height: 1.6
}

ul.circle_list li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 0;
    color: #000;
}

.pdf_icon {
    width: 16px;
    height: auto;
    margin-right: 5px
}

@media screen and (max-width: 1024px) {

    .bread ul {
        margin: 15px 0 0 0;
        font-size: 1.3rem;
    }

    .bread ul li::after {
        font-size: 1.1rem;
        margin: 0 .8em
    }
}


@media screen and (max-width: 767px) {

    .lower-cont {
        padding-top: 40px;
        padding-bottom: 45px
    }

    .bread ul {
        margin: 10px 0 0 0;
        font-size: 1.2rem;
    }

    .bread ul li::after {
        margin: 0 .5em
    }

    /*部品*/

    .h2_ttl {
        font-size: 2.0rem;
        margin: 45px 0 30px;
        padding-bottom: 5px;
    }

    .h3_ttl {
        display: flex;
        margin: 40px 0 25px;
        ;
        font-size: 1.5rem;
        font-weight: 500;
        padding: .25em .4em;
    }

    .h3_ttl::before {
        width: 3px;
        height: 1.2em;
        margin-right: .5em;
    }

    .h2_ttl_center {
        font-size: 2.8rem;
        margin: 40px 0 30px;
        ;
        line-height: 1.65
    }

    .h2_ttl_center span {
        font-size: 1.4rem;
    }

    .h2_ttl_center::after {
        width: 60px;
        height: 3px;
        margin: 15px auto 0;
    }

    .h3_border_bl {
        margin: 35px 0 25px;
        padding: 1px 0 5px 8px;
        font-size: 1.8rem;
        font-weight: 500;
        line-height: 1.5;
        border-left: 6px solid #2D7844;
    }

    .bdleft_ttl {
        margin: 30px 0 25px;
        font-size: 1.6rem;
        border-left: 8px solid #C3B259;
        padding: 2px 0 3px 10px
    }

}


/* ---------------------------------------------
*   投稿フォーマット共通
--------------------------------------------- */

.sng_cont {
    margin-top: 40px
}

.sng_cont p {
    font-size: 1.6rem;
    line-height: 1.8;
    margin-bottom: 1em
}

.sng_cont p:first-of-type {
    margin-top: 0
}

.sng_cont p:last-of-type {
    margin-bottom: 0
}

.sng_cont h1 {
    font-size: 3.6rem;
    font-weight: 600;
    margin: 15px 0
}

.sng_cont h2 {
    font-size: 3.2rem;
    font-weight: 600;
    margin: 15px 0
}

.sng_cont h3 {
    font-size: 2.8rem;
    font-weight: 600;
    margin: 15px 0
}

.sng_cont h4 {
    font-size: 2.4rem;
    font-weight: 600;
    margin: 15px 0
}

.sng_cont h5 {
    font-size: 2rem;
    font-weight: 600;
    margin: 15px 0
}

.sng_cont h6 {
    font-size: 1.8rem;
    font-weight: 600;
    margin: 15px 0
}

.sng_cont img {
    margin: 15px 0;
}

.sng_cont a {
    color: #CF0357
}

.sng_cont a:hover {
    color: #ff8000
}


/********* 投稿ページ詳細  レスポンシブ *********/
@media only screen and (max-width: 767px) {

    .sng_cont {
        margin-top: 25px
    }

    .sng_cont p {
        font-size: 1.5rem;
        line-height: 1.8;
    }

    .sng_cont h1 {
        font-size: 3.2rem;
        margin-bottom: 10px
    }

    .sng_cont h2 {
        font-size: 2.8rem;
        margin-bottom: 10px
    }

    .sng_cont h3 {
        font-size: 2.4rem;
        margin-bottom: 10px
    }

    .sng_cont h4 {
        font-size: 2.0rem;
        margin-bottom: 10px
    }

    .sng_cont h5 {
        font-size: 1.8rem;
        margin-bottom: 10px
    }

    .sng_cont h6 {
        font-size: 1.6rem;
        font-weight: 600;
        margin: 15px 0
    }

    .sng_cont img {
        margin: 15px 0
    }
}

/* ---------------------------------------------
*   ページネーション
--------------------------------------------- */

.pager {
    margin: 0 auto 0
}

.pager .pagination {
    text-align: center;
    font-family: sans-serif
}

.pager .pagination {
    padding: 0;
}

.pager .pagination li {
    display: inline;
    margin: 0 2px;
    padding: 0;
    display: inline-block;
    background: #9f9f9f;
    width: 50px;
    height: 50px;
    text-align: center;
    position: relative;
    border-radius: 50px;
    font-size: 1.5rem;
    line-height: 0
}


.pager .pagination li a {
    vertical-align: middle;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-align: center;
    display: table;
    color: #fff;
    text-decoration: none;
    -webkit-transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

.pager .pagination li a span {
    display: table-cell;
    vertical-align: middle;
}

.pager .pagination li a:hover,
.pager .pagination li a.active {
    color: #fff;
    background: #2f623f;
    border-radius: 50px;
}

/********* ページネーション  レスポンシブ *********/
@media only screen and (max-width: 767px) {

    .pager {
        margin: 25px auto 0
    }


    .pager .pagination {
        text-align: center;
    }

    .pager .pagination li {
        display: none;
        font-size: 1.4rem;
        background: #2f623f;
    }

    .pager .pagination li.pre,
    .pager .pagination li.next {
        display: inline-block;
        width: 40%;
        height: 50px;
        text-align: center;
    }

    .pager .pagination li.pre a,
    .pager .pagination li.next a {
        width: 100%;
        text-align: center;
    }

    .pager .pagination li.pre span::after {
        content: "　前の10件へ";
    }

    .pager .pagination li.next span::before {
        content: "次の10件へ　";
    }

    .pager .pagination li a:hover,
    .pager .pagination li a.active {
        color: #fff;
        background: #27402f;
        border-radius: 50px;
    }
}


/* ---------------------------------------------
 *  下階層：Page Hero
--------------------------------------------- */
/* Page Hero (Lower) */
.page-hero {
    width: 100%;
    height: 360px;
    position: relative;
    overflow: hidden;
    background-image: url("../img/top/slide01.jpg");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.30);
    pointer-events: none;
}

.page-hero__inner {
    position: relative;
    z-index: 1;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 50px;
    box-sizing: border-box;
}

.page-hero__title {
    margin: 0;
    color: #fff;
    font-size: 3rem;
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
}

@media (max-width: 1024px) {
    .page-hero__inner {
        padding-top: 34px;
    }
}

@media (max-width: 767px) {
    .page-hero {
        height: 200px;
    }

    .page-hero__title {
        font-size: 2.2rem;
    }
}

/* Page Hero (各ページ背景) */

#member .page-hero {
    background-image: url("../img/mv/01.jpg");
}

#member .page-hero::before,
#gaiyo .page-hero::before,
#recruit .page-hero::before {
    background: rgba(0, 0, 0, 0.25);
}

#info .page-hero {
    background-image: url("../img/mv/03.jpg");
}

#fee .page-hero {
    background-image: url("../img/mv/05.jpg");
}

#guide .page-hero {
    background-image: url("../img/mv/06.jpg");
}

[id^="hall-"] .page-hero {
    background-image: url("../img/mv/06.jpg");
}

#facilities .page-hero {
    background-image: url("../img/mv/07.jpg");
}

#restaurant .page-hero {
    background-image: url("../img/mv/08.jpg");
}

#access .page-hero {
    background-image: url("../img/mv/01.jpg");
}

#gaiyo .page-hero {
    background-image: url("../img/mv/02.jpg");
}

#dress .page-hero {
    background-image: url("../img/mv/10.jpg");
}

#recruit .page-hero {
    background-image: url("../img/mv/11.jpg");
}

#contact .page-hero {
    background-image: url("../img/mv/12.jpg");
}

#yakkan .page-hero {
    background-image: url("../img/mv/13.jpg");
}

#policy .page-hero {
    background-image: url("../img/mv/16.jpg");
}


/* ---------------------------------------------
 *  下階層：お知らせ
--------------------------------------------- */

.info_archive_list {
    margin: 0 0 40px;
    padding: 0;
    list-style: none;
    color: #0B0B0B;
    border-bottom: 1px dotted #0B0B0B;
}

.info_archive_list li {
    display: flex;
    align-items: center;
    padding: 25px 0;
}

.info_archive_list li + li {
    border-top: 1px dotted #0B0B0B;
}

.info_archive_list .date {
    font-size: 1.6rem;
    width: 5em;
    flex-shrink: 0;
    margin: 0 12px 0 0
}

.info_archive_list .cat {
    font-size: 1.1rem;
    line-height: 1;
    color: #fff;
    padding: 4px 5px;
    display: inline-block;
    margin-right: 20px
}

.info_archive_list a {
    font-size: 1.6rem;
    color: #0B0B0B;
    text-decoration: none;
}

.info_archive_list a:hover {
    color: #2D7844;
}

@media (max-width: 767px) {


    .info_archive_list {
        margin: 0 0 30px;
    }

    .info_archive_list li {
        flex-wrap: wrap;
        align-items: center;
        padding: 20px 0;
    }

    .info_archive_list .date {
        font-size: 1.3rem;
        width: auto;
    }

    .info_archive_list .cat {
        font-size: 1.0rem;
    }

    .info_archive_list a {
        font-size: 1.5rem;
        width: 100%;
        display: block;
        margin-top: 8px
    }
}

/* ---------------------------------------------
 *  下階層：お知らせ詳細
--------------------------------------------- */

.info-content {
    max-width: 920px;
    margin: 0 auto
}

.info-ttl-wrap {
    text-align: center
}

.info-ttl-wrap .date {
    margin: 0
}

.info-ttl-wrap h2 {
    font-size: 2.6rem;
    font-weight: 400;
    margin: 15px 0 20px
}

.info-ttl-wrap .cat {
    margin: 0
}

.info-ttl-wrap .cat span {
    font-size: 1.3rem;
    color: #fff;
    padding: 4px 6px;
    margin: 0 5px
}

@media screen and (max-width: 767px) {

    .info-ttl-wrap .date {
        font-size: 1.3rem;
        margin: 0
    }

    .info-ttl-wrap h2 {
        font-size: 1.90rem;
        margin: 10px 0 10px;
        line-height: 1.5;

    }

    .info-ttl-wrap .cat {
        margin: 12px 0 0 0
    }

    .info-ttl-wrap .cat span {
        font-size: 1.2rem;
        padding: 2.5px 6px 3px;
        margin: 0 5px
    }
}


/* -----------------------------------------------------------------
 *  下階層：メンバー
----------------------------------------------------------------- */
#member .page-hero {
    height: 600px
}

#member .page-hero__title {
    font-size: 4rem;
    line-height: 1.6
}

#member .page-hero__title span {
    font-size: 1.8rem;
    display: block;
    font-weight: 400
}

.cb_ttl {
    position: relative;
    text-align: center;
    font-size: 3.0rem;
    max-width: 480px;
    margin: 0 auto 50px;
    line-height: 1;
    font-weight: 400;
}

.cb_ttl:before {
    position: absolute;
    top: calc(50% + 3px);
    left: 0;
    width: 100%;
    height: 1px;
    content: '';
    background: #555555;
}

.cb_ttl span {
    position: relative;
    padding: 0 1em;
    background: #F2F2F0;
}

.login_com {
    text-align: center;
    font-size: 1.8rem;
    line-height: 1.8;
}

.login_form {
    width: 100%;
    max-width: 700px;
    margin: 40px auto;
    font-size: 1.6rem;
    background: #ffffff;
    border: 1px solid #777777;
    padding: 45px 55px;
    text-align: center;
    box-sizing: border-box;
    min-width: 0;
}

.login_form table {
    width: 100%;
    margin-bottom: 20px;
    table-layout: fixed;
}

.login_form th,
.login_form td {
    vertical-align: baseline;
    padding: 8px 15px;
}

.login_form th {
    text-align: right;
    width: 6em;
    font-weight: 400;
}

.login_form p {
    font-size: 1.4rem;
    margin-top: 8px;
}

#member .login_form .form__item {
    border: 1px solid gray;
    padding: 8px;
    font-size: 1.6rem;
    font-family: -apple-system, Segoe UI, Helvetica Neue, Hiragino Kaku Gothic ProN, "メイリオ", meiryo, sans-serif;
    background: #fff;
    width: 100%;
    box-sizing: border-box;
}

#member .login_form .birth-selects {
    display: flex;
    gap: 0.5em;
    align-items: center;
}

#member .login_form .birth-selects select.form__item {
    width: auto;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    padding-right: 2.8em;
    min-width: 0;
}

#member .login_form .birth-selects select[name="birth_month"] {
    flex: 0 0 7.5em;
    width: 7.5em;
}

#member .login_form .birth-selects select[name="birth_day"] {
    flex: 0 0 7.5em;
    width: 7.5em;
}

#member .login_form .submit_btn {
    background-color: #235f35;
    color: #fff;
    font-family: -apple-system, Segoe UI, Helvetica Neue, Hiragino Kaku Gothic ProN, "メイリオ", meiryo, sans-serif;
    padding: 10px 25px;
    font-weight: 500;
    font-size: 1.7rem;
    border-radius: 5px;
    border: none;
    transition: all 0.3s ease;
}

#member .login_form .submit_btn:hover {
    background-color: #06a024;
}

.logout_wrap {
    padding: 20px 0 20px 20px
}

.btn-logout {
    display: inline-block;
    width: 100px;
    text-align: center;
    padding: 4px 0;
    background-color: #67746b;
    color: #fff;
    font-size: 1.3rem !important;
    text-decoration: none;
    border-radius: 9999px;
    transition: background-color 0.3s ease;
}

.btn-logout:hover {
    background-color: #256536;
}




/*レイアウト*/


.member-wrapper {
    display: flex;
    width: 100%
}

.member-wrapper .side_menu {
    width: 22%;
    min-width: 18em;
    flex-shrink: 0;
    background: #c3d0c6;
    border-right: 1px solid #5d5d5d;
}

.member-wrapper .main_contents {
    flex: 1;
    background: #fff
}

.member-wrapper .main_contents .container {
    padding: 0 7.5%
}

/*サイドメニュー*/

.side_menu_list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 1.6rem;
    border-bottom: 1px solid #5d5d5d;
    background: #f3faf2
}

.side_menu_list > li {
    border-top: 1px solid #8d8d8d;
}

.side_menu_list > li:first-child {
    border-top: none;
}

.side_menu_list > li > a {
    display: block;
    padding: 20px 15px 20px 20px;
    color: #0B0B0B;
    text-decoration: none;
    box-sizing: border-box;
}

.side_menu_list > li > a:hover,
.side_menu_list > li > a:focus-visible {
    background: #2D7844;
    color: #fff;
    outline: none;
}

.side_menu_list .menu-toggle {
    all: unset;
    display: block;
    width: 100%;
    position: relative;
    padding: 20px 40px 20px 20px;
    /* 右に矢印スペース */
    color: #0B0B0B;
    box-sizing: border-box;
    cursor: pointer;
}

.side_menu_list .menu-toggle:hover,
.side_menu_list .menu-toggle:focus-visible {
    background: #2D7844;
    color: #fff;
    outline: none;
}

/* 矢印（CSSで描画・環境依存なし） */
.side_menu_list .menu-toggle::after {
    content: "";
    position: absolute;
    right: 15px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
    /* ▼相当（右下矢印） */
    transition: transform .2s ease;
    pointer-events: none;
}

.side_menu_list .has-sub.is-open .menu-toggle::after {
    transform: translateY(-50%) rotate(-135deg);
    /* ▲相当（上向き） */
}

.side_menu_list .submenu {
    display: none;
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px dotted #a3a3a3
}

.side_menu_list .has-sub.is-open .submenu {
    display: block;
}

.side_menu_list .submenu li {
    border: none;
}

.side_menu_list .submenu a {
    display: block;
    padding: 8px 15px 8px 1.8em;
    color: #0B0B0B;
    text-decoration: none;
    box-sizing: border-box;
}

.side_menu_list .submenu li:last-child a {
    padding-bottom: 15px;
}

.side_menu_list .submenu a::before {
    content: "▶";
    font-size: 0.8em;
    margin-right: 0.5em;
    display: inline-block;
    vertical-align: middle;
    color: currentColor;
}

.side_menu_list .submenu a:hover,
.side_menu_list .submenu a:focus-visible {
    background: #5fa073;
    color: #fff;
    outline: none;
}

.side_menu_list .submenu a:hover::before,
.side_menu_list .submenu a:focus-visible::before {
    color: #fff;
}

/*メインコンテンツ*/

.main_contents {
    padding-bottom: 60px
}

.main_menu_wrap {
    margin-top: 60px
}

.main_menu_ttl {
    font-size: 2.4rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid #134d24;
    border-top: 6px solid #134d24;
    padding: 12px 15px;
    margin: 60px 0 40px;
    font-weight: 500;
}

.main_menu_ttl.border_bottom_ttl {
    border: none;
    border-bottom: 2px dotted #134d24;
    padding: 0 15px 15px 0;
}

.main_menu_ttl span {
    display: flex;
    align-items: center;
}

.main_menu_ttl span a {
    font-size: 1.6rem;
    background: #134d24;
    color: #fff;
    text-decoration: none;
    padding: 5px 20px;
    border-radius: 30px;
}

.main_menu_ttl span a:hover {
    background: #a78d39
}

.mamber_info_list {
    list-style: none;
    padding: 0;
    margin: 09
}

.mamber_info_list li {
    margin: 15px 0;
    padding-bottom: 15px;
    border-bottom: 1px dotted #0B0B0B
}

.mamber_info_list li a {
    text-decoration: none;
    display: flex;
    align-items: center;
    color: #0B0B0B
}

.mamber_info_list li span {
    font-size: 1.5rem;
    width: 7em;
}

.mem_arc {
    margin-bottom: 45px
}



@media screen and (max-width: 1024px) {

    #member .page-hero {
        height: 400px
    }

    /*レイアウト*/
    .member-wrapper {
        display: flex;
        flex-flow: column-reverse;
    }

    .member-wrapper .side_menu {
        width: 100%;
        border-top: 2px solid #5d5d5d;
        border-right: none
    }

    .member-wrapper .main_contents .container {
        padding: 0 5%
    }

    /*サイドメニュー*/

    .side_menu_list {
        font-size: 1.5rem;
    }

    .side_menu_list > li > a {
        display: block;
        padding: 15px 15px 15px 15px;
    }

    .side_menu_list > li > a:hover,
    .side_menu_list > li > a:focus-visible {
        background: #2D7844;
        color: #fff;
        outline: none;
    }

    .side_menu_list .menu-toggle {
        padding: 15px 40px 15px 15px;
    }

    .side_menu_list .submenu a {
        display: block;
        padding: 8px 15px 8px 1.8em;
        color: #0B0B0B;
        text-decoration: none;
        box-sizing: border-box;
    }

    .side_menu_list .submenu li:last-child a {
        padding-bottom: 15px;
    }

    /*メインコンテンツ*/

    .main_contents {
        padding-bottom: 40px
    }

    .main_menu_wrap {
        margin-top: 40px
    }

    .main_menu_ttl {
        font-size: 2.0rem;
        padding: 10px 13px;
        margin: 45px 0 30px;
    }

    .main_menu_ttl.border_bottom_ttl {
        padding: 0 0 8px 0;
    }

    .main_menu_ttl span a {
        font-size: 1.4rem;
        ;
        padding: 5px 15px;
    }
}



@media screen and (max-width: 767px) {

    #member .page-hero {
        height: 200px
    }

    #member .page-hero__title {
        font-size: 2.4rem;
    }

    #member .page-hero__title span {
        font-size: 1.4rem;
    }


    .login_com {
        text-align: left;
        font-size: 1.5rem;
    }

    .login_form {
        width: 100%;
        margin: 20px auto 0;
        font-size: 1.5rem;
        padding: 25px 10px 30px;
    }

    .login_form table {
        width: 100%;
        margin-bottom: 10px;
    }

    .login_form th,
    .login_form td {
        vertical-align: baseline;
        padding: 8px 12px 8px 0;
    }

    .login_form th {
        width: 6em;
        white-space: nowrap
    }

    #member .login_form .form__item {
        padding: 8px;
        font-size: 1.5rem;
    }

    #member .login_form .birth-selects {
        flex-wrap: wrap;
    }

    #member .login_form .birth-selects select[name="birth_month"],
    #member .login_form .birth-selects select[name="birth_day"] {
        flex: 1 1 calc(50% - .25em);
        width: auto;
    }

    #member .login_form .submit_btn {
        font-size: 1.5rem;
        padding: 8px 20px
    }

    .main_menu_ttl {
        font-size: 1.8rem;
        padding: 8px 10px;
        margin: 40px 0 30px;
    }

    .main_menu_ttl span a {
        font-size: 1.3rem;
        ;
    }

    .mamber_info_list li {
        margin: 15px 0;
        padding-bottom: 15px;
        border-bottom: 1px dotted #0B0B0B
    }

    .mamber_info_list li a {
        flex-flow: column;
        align-items: flex-start;
    }

    .mamber_info_list li span {
        font-size: 1.3rem;
        margin-bottom: 3px
    }

    .mem_arc {
        margin-bottom: 25px
    }

}

/* ---------------------------------------------
*   下階層：料金
--------------------------------------------- */

.yoyaku_att {
    font-weight: 500;
    margin-top: 10px;
    line-height: 1.8
}

.fee_tbl {
    border-collapse: collapse;
    background: #fff;
    width: 100%
}

.fee_tbl th,
.fee_tbl td {
    border: 1px solid #000;
    padding: 15px 20px;
    text-align: center
}

.fee_tbl th {
    font-weight: 500
}

.fee_tbl thead th {
    background: #2D7844;
    color: #fff
}

.fee_tbl tbody th {
    width: 30%;
    background: #ebe1ca
}

.fee_tbl .blank {
    background: #9a9a9a
}

.fee_tbl td span {
    font-size: 1.2rem
}

.fee_total th {
    background: #e6c4a7 !important
}

.fee_total td {
    background: #eddfd3 !important
}

@media screen and (max-width: 767px) {

    .fee_tbl th,
    .fee_tbl td {
        padding: 10px 10px;
        line-height: 1.5
    }

    .fee_tbl tbody th {
        width: auto;
    }

    .fee_tbl td span {
        font-size: 1.1rem;
        display: block
    }

}


/* ---------------------------------------------
*   下階層：レストラン
--------------------------------------------- */

.restaurant_ttl {
    font-size: 3rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 50px 0 40px;
    padding: 10px 5px;
    font-weight: 500;
    font-size: 2.8rem;
    border-top: solid 3.5px #2b5338;
    border-bottom: dotted 1px #2b5338
}

.restaurant_ttl span {
    font-size: 1.8rem;
    font-style: italic;
}

.restaurant_ttl:first-of-type {
    margin-top: 0
}

.restaurant_h3_ttl {
    margin: 25px 0 10px;
    font-weight: 500
}

ul.restaurant_menu_list {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 40px;
    list-style: none;
    margin: 25px 0 0 0;
    padding: 0;
    text-align: center
}

ul.restaurant_menu_list li {
    width: calc((100% - 80px) / 3);
    box-sizing: border-box;
}

ul.rest_menu_col4 {
    gap: 20px 35px;
}

ul.rest_menu_col4 li {
    width: calc((100% - 105px) / 4);
}

ul.restaurant_menu_list img {
    display: block;
    background: #fff;
    padding: 5px
}

ul.restaurant_menu_list h3 {
    margin: 8px 0 2px 0;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.5
}

ul.restaurant_menu_list h3 span {
    font-size: 1.3rem;
    display: block;
    font-weight: 400;
}

ul.restaurant_menu_list p {
    margin: 0;
    line-height: 1.5;
    font-size: 1.5rem
}

ul.restaurant_menu_list p span {
    font-size: 1.3rem
}

p.menu_op {
    margin-top: 5px !important;
    line-height: 1.6
}

p.restaurant_att {
    margin: 0;
    font-size: 1.5rem
}

.rest_menu_list {
    list-style: none;
    padding-left: 0;
    display: flex;
    flex-flow: wrap;
    width: calc(100% + 40px);
}

.rest_menu_list li {
    width: calc(100% / 2 - 40px);
    display: flex;
    justify-content: space-between;
    margin-right: 40px;
    margin-bottom: 10px;
    white-space: nowrap;
    border-bottom: 1px dotted gray;
    padding-bottom: 10px;
}


.rest_menu_list li span::before {
    /*content: "窶ｦ窶ｦ";*/
    margin-left: 1em;
    margin-right: 1em;
}

.rest_menu_list li .dan {
    width: 100%;
    padding-bottom: 0;
    margin-bottom: 0
}

.rest_menu_list .dan-inner {
    display: flex;
    justify-content: space-between;
    margin: 5px 0 0 0
}

.rest_menu_list .dan-inner dt {
    padding-left: 1em
}

.rest_menu_list .dan-inner dd {
    margin: 0;
}

.rest_menu_list .dan-inner dd::before {
    /*content: "窶ｦ窶ｦ";*/
    margin-right: 1em
}

.rest_single_img {
    max-width: 860px;
    margin: 0 auto
}

.rest_single_img .border {
    border: 5px solid #fff
}

.drink_list {
    display: flex;
    flex-wrap: wrap;
    list-style: disc;
    list-style-position: inside;
    padding-left: 0;
    margin: 0;
    font-size: 1.6rem;
}

.drink_list li {
    box-sizing: border-box;
    width: 33.3333%;
    margin: 0;
}

.party_ttl {
    font-size: 1.8rem;
    font-weight: 500;
    margin-bottom: 10px;
}

.party_ttl::before {
    content: "■";
    margin-right: 4px
}

.party_menu {
    margin: 0 0 20px;
    margin-left: 1em;
}



@media screen and (max-width: 767px) {

    .restaurant_ttl {
        margin: 40px 0 30px;
        padding: 10px 5px;
        font-size: 2rem;
        border-top: solid 3px #2b5338;
    }

    .restaurant_ttl span {
        font-size: 1.4rem;
    }

    ul.restaurant_menu_list {
        gap: 12px 15px;
        list-style: none;
        margin: 25px 0 0 0;
    }

    ul.restaurant_menu_list li {
        width: calc((100% - 15px) / 2);
    }

    ul.rest_menu_col4 {
        gap: 12px 15px;
    }

    ul.rest_menu_col4 li {
        width: calc((100% - 15px) / 2);
    }

    ul.restaurant_menu_list img {
        padding: 3px
    }

    ul.restaurant_menu_list h3 {
        margin: 7px 0 3px 0;
        font-size: 1.4rem;
        line-height: 1.4
    }

    ul.restaurant_menu_list h3 span {
        font-size: 1.2rem;
    }

    .restaurant_h3_ttl {
        margin: 15px 0 10px;
        font-size: 1.7rem;
    }

    ul.restaurant_menu_list p.manu_price {
        margin: 0;
        line-height: 1.4;
        font-size: 1.4rem
    }

    ul.restaurant_menu_list p.manu_price span {
        font-size: 1.4rem;
        display: block
    }

    p.menu_op {
        margin-top: 8px !important;
        line-height: 1.5
    }

    p.restaurant_att {
        margin: 0;
        font-size: 1.5rem
    }

    .rest_menu_list {
        padding-left: 0;
        width: 100%;
    }

    .rest_menu_list li {
        width: 100%;
        margin-right: 0;
        margin-bottom: 10px;
        padding-bottom: 10px;
        white-space: normal;
    }

    .rest_menu_list li .dan {
        width: 100%;
        padding-bottom: 0;
        margin-bottom: 0
    }

    .rest_menu_list .dan-inner {
        margin: 5px 0 0 0;
        line-height: 1.3
    }

    .rest_menu_list .dan-inner dt {
        padding-left: .5em;

    }

    .rest_menu_list .dan-inner dd {
        margin: 0 0 0 1em;
        white-space: nowrap;
    }

    .drink_list li {
        width: 100%;
    }

    .party_ttl {
        font-size: 1.6rem;
        font-weight: 600;
        margin-bottom: 5px;
    }

    .party_menu {
        margin: 0 0 15px;
        margin-left: 1em;
    }
}


/* ---------------------------------------------
*   下階層：アクセス
--------------------------------------------- */


#access .lower-cont .container {
    max-width: 920px
}

.access_address {
    margin: 30px 0 0
}

.access_address h3 {
    display: flex;
    align-items: baseline;
    margin: 0 0 8px;
    font-weight: 500;
    font-size: 2rem
}

.access_address h3 img {
    margin-left: 10px;
    width: 17px;
    height: auto
}

.access_address p {
    margin: 0
}

.access_address a {
    text-decoration: none;
    color: #0e2ba2
}

.station-info {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.5em 1em;
    margin: 0;
    padding: 0;
}

.station-info dt,
.station-info dd {
    margin: 0;
}

.station-info dt {
    font-weight: 500;
    color: #256a3a
}

.station-info dt::before {
    content: "◆";
    margin-right: 3px;
    color: #1C1C1C
}

.station-info dt::after {
    content: "→";
    margin-left: 5px;
    color: #1C1C1C
}

@media screen and (max-width: 767px) {

    #access iframe {
        height: 300px
    }

    .access_address {
        margin: 20px 0 0
    }

    .access_address h3 {
        font-size: 1.8rem
    }

    .access_address h3 img {
        margin-left: 8px;
        width: 15px;
    }

    .access_address p {
        line-height: 1.6;
        margin-bottom: 8px
    }

    .station-info {
        grid-template-columns: 1fr;
    }

    .station-info dt::after {
        content: none;
    }

    .station-info dd::before {
        content: "→";
        margin-right: 8px;
        color: #1C1C1C
    }

    .station-info dt,
    .station-info dd {
        line-height: 1.4
    }

    .station-info dd {
        margin: 0 0 10px 1em
    }
}



/* ---------------------------------------------
*   下階層：コーストップ
--------------------------------------------- */

#course .lower-cont,
#guide .lower-cont {
    padding-bottom: 0
}

.course_ttl_wrap {
    text-align: center;
}

.course_ttl_wrap h2 {
    margin: 40px 0 15px 0;
    font-size: 7.3rem;
    font-family: "BigCaslonWeb", "Playfair Display", "Times New Roman", Times, serif;
    font-weight: 400;
    line-height: 1
}

.tab_ttl {
    margin: 0 0 35px 0;
    font-size: 5.2rem;
    text-align: center;
    font-family: "BigCaslonWeb", "Playfair Display", "Times New Roman", Times, serif;
    font-weight: 400;
    line-height: 1
}

.course_ttl_wrap p {
    margin: 0;
    font-size: 2.4rem
}

.course_fukan {
    max-width: 870px;
    margin: 50px auto 30px
}

.designer_comment {
    max-width: 1000px;
    margin: 0 auto
}

.designer_comment p {
    line-height: 2;
    margin: 0
}

p.designer_sign {
    text-align: right;
    margin-top: 15px;
    font-size: 1.8rem
}


/*タブ*/
.course_tab_wrap {
    margin-top: 75px
}

.ocic-tabs {
    --gap: 10px;
    --inactive-bg: #e2e5dd;
    --active-bg: #fff;
    --text: #333;
    --border: 1px solid #b1b1b1;
    color: var(--text);
}

.ocic-tab-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ocic-tab-headers {
    display: flex;
    gap: var(--gap);
    align-items: stretch;
    /*margin-left: -15px*/
}

.ocic-tab-label {
    position: relative;
    z-index: 2;
    flex: 1 0 48%;
    background: var(--inactive-bg);
    border: var(--border);
    border-bottom: none;
    border-radius: var(--radius) var(--radius) 0 0;
    text-align: center;
    padding: 20px 0 15px;
    line-height: 1;
    font-weight: 400;
    font-size: 2.4rem;
    cursor: pointer;
    display: grid;
    place-items: center;
    user-select: none;
}

.ocic-tab-label:focus-visible {
    outline: 2px solid #6aa9ff;
    outline-offset: 2px;
}

.ocic-tab-panel {
    background: var(--active-bg);
    border-top: var(--border);
    /* 上の線は残す */
    border-left: none;
    /* 左の線を消す */
    border-right: none;
    /* 右の線を消す */
    border-bottom: none;
    /* 下の線を消す */
    border-radius: 0 0 var(--radius) var(--radius);
    padding: 80px 0 100px;
    position: relative;
    z-index: 1;
}

#tab-out:checked ~ .container .ocic-tab-headers #label-out,
#tab-in:checked ~ .container .ocic-tab-headers #label-in {
    background: var(--active-bg);
    cursor: default;
    position: relative;
    z-index: 3;
}

/* ★選択タブ直下の線を隠すマスク */
#tab-out:checked ~ .container .ocic-tab-headers #label-out::after,
#tab-in:checked ~ .container .ocic-tab-headers #label-in::after {
    content: "";
    position: absolute;
    left: -1px;
    right: -1px;
    bottom: -1px;
    height: 1px;
    background: var(--active-bg);
    z-index: 4;
}

#tab-out:checked ~ #panel-out {
    display: block;
}

#tab-in:checked ~ #panel-in {
    display: block;
}

#tab-out:checked ~ #panel-in,
#tab-in:checked ~ #panel-out {
    display: none;
}

#tab-out:checked ~ #panel-out[hidden] {
    display: block;
}

#tab-in:checked ~ #panel-in[hidden] {
    display: block;
}


/*ヤードテーブル*/

.cource_map_yard {
    border-collapse: collapse;
    width: 100%
}

.cource_map_yard th,
.cource_map_yard td {
    border: 1px solid #1C1C1C;
    text-align: center;
    padding: 10px
}

.cource_map_yard thead th {
    background: #ede9e1;
    font-weight: 500;
}

.cource_map_yard thead th a {
    color: #1C1C1C;
}

.cource_map_yard tbody th {
    background: #F7F5F1;
    font-weight: 500;
}

.cource_map_yard tbody th.par,
.par_head {
    background: #ededed !important;
    border-bottom: 2px solid #676262 !important;
}

.hdcp {
    border-top: 3px double #676262 !important;
    background: #f8f8f8
}

.cource_map_yard tbody th.ball {
    text-align: left;
    width: 9em
}

.cource_map_yard tbody th.ball span::before {
    content: "●";
    margin-right: 5px;
    margin-left: 2em
}

.tag-black span::before {
    color: #0B0B0B
}

.tag-blue span::before {
    color: #180fe8
}

.tag-white span::before {
    color: #fff
}

.tag-silver span::before {
    color: #a7a7a7
}

.tag-red span::before {
    color: #e60505
}

.course_img_list {
    margin-top: 70px;
    list-style: none;
    padding: 0;
    display: flex;
    flex-flow: wrap;
    gap: 0 30px
}


.course_img_list {
    display: flex;
    flex-wrap: wrap;
    gap: 30px 35px;
}

.course_img_list li {
    flex: 1 1 calc(100% / 3 - 35px);
    box-sizing: border-box;
}

.course_img_list li a {
    color: #0B0B0B
}

.course_img_list li h4 {
    margin: 0;
    background: #F7F5F1;
    padding: 10px 13px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-weight: 500;
    font-size: 2.3rem;
    line-height: 1
}

.course_img_list li h4 span {
    font-size: 1.5rem
}

@media (max-width: 767px) {

    .course_ttl_wrap h2 {
        margin: 10px 0 10px 0;
        font-size: 4.3rem;
    }


    .course_ttl_wrap p {
        font-size: 1.8rem
    }

    .course_fukan {
        margin: 25px auto 20px
    }

    .designer_comment p {
        line-height: 1.9;
    }

    p.designer_sign {
        margin-top: 12px;
        font-size: 1.7rem
    }

    .ocic-tab-label {
        padding: 12px 0;
        font-size: 1.7rem;
    }

    .ocic-tab-panel {
        padding: 40px 0 30px;
    }

    .tab_ttl {
        margin: 0 0 25px 0;
        font-size: 3.2rem;
    }


    .table_wrap {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .cource_map_yard th,
    .cource_map_yard td {
        padding: 8px 9px;
        font-size: 1.5rem
    }

    .cource_map_yard tbody th.ball {
        width: auto;
        padding: 8px 10px
    }

    .cource_map_yard tbody th.ball span::before {
        margin-left: 0
    }

    .course_img_list {
        margin-top: 40px;
        gap: 0 0
    }


    .course_img_list {
        gap: 15px 0;
    }

    .course_img_list li {
        flex: 1 1 100%;
    }

    .course_img_list li h4 {
        margin: 0;
        padding: 10px 10px;
        font-size: 2.2rem;
        line-height: 1
    }

    .course_img_list li h4 span {
        font-size: 1.5rem
    }

}

/* ---------------------------------------------
*   下階層：コース詳細
--------------------------------------------- */

#course_ud .lower-cont .container {
    max-width: 1100px;
}

.course_ttl {
    display: flex;
    align-items: center;
    gap: 20px;
    width: 100%;
}

.course_ttl .course_type {
    margin: 0;
    font-size: 2.9rem;
    white-space: nowrap;
}

.course_ttl .line {
    flex: 1;
    height: 1px;
    background: #0B0B0B;
    display: block;
}

.hole_header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 15px;
    margin-bottom: 45px
}

.hole_header h3 {
    margin: 0;
    font-size: 4.9rem;
    font-weight: 500;
    white-space: nowrap;
    line-height: 1
}

.hole_header .hdcp_no {
    margin: 0;
    font-size: 2.3rem;
    white-space: nowrap;
}

.course_info {
    display: flex;
    margin-top: 50px
}

.course_info .img_fukan {
    width: 40%
}

.course_info .img_fukan img {
    border: 6px solid #fff;
}

.course_info .info {
    width: 60%;
    padding-left: 60px
}

.course_info .info h4 {
    margin: 0 0 20px;
    padding-bottom: 5px;
    font-size: 2.6rem;
    font-weight: 500;
    border-bottom: 1.5px dotted gray;
    font-style: italic
}

.course_info .info h5 {
    margin: 30px 0 7px;
    font-size: 2.6rem;
    font-weight: 500;
    font-style: italic
}

.course_info .info p {
    margin: 0;
}

.yard_tbl {
    background: #fff;
    border-collapse: collapse;
    width: 100%;
}

.yard_tbl th,
.yard_tbl td {
    border: 1px solid #707070;
    text-align: center !important;
    padding: 5px 10px;

}

.yard_tbl th {
    font-weight: 400;
    white-space: nowrap;
    padding: 10px 10px;
}

.yard_tbl span {
    margin-right: 5px
}

.yard_tbl tbody th {
    padding: 5px 15px;
}

.yard_tbl tbody td {
    font-size: 2.6rem;
    font-weight: 500
}

.yard_tbl .black {
    color: #0B0B0B;
}

.yard_tbl .blue {
    color: #180fe8;
}

.yard_tbl .white {
    color: #d6f0ef;
}

.yard_tbl .silver {
    color: #909090;
}

.yard_tbl .red {
    color: #e60505;
}

@media (max-width: 1024px) {

    .course_info {
        display: flex;
        flex-flow: column-reverse;
        margin-top: 50px
    }

    .course_info .img_fukan {
        width: 100%;
        margin-top: 35px;

    }

    .course_info .img_fukan img {
        max-width: 450px;
    }

    .course_info .info {
        width: 100%;
        padding-left: 0
    }
}

@media (max-width: 767px) {


    .course_ttl .course_type {
        font-size: 1.8rem;
    }

    .hole_header {
        margin-top: 5px;
        margin-bottom: 25px
    }

    .hole_header h3 {
        margin: 0;
        font-size: 2.9rem;
    }

    .hole_header .hdcp_no {
        font-size: 1.6rem;
    }

    .course_info {
        margin-top: 30px
    }

    .course_info .img_fukan {
        margin-top: 20px
    }

    .course_info .img_fukan img {
        border: 5px solid #fff;
        max-width: 100%;
        width: calc(100% - 10px);
    }

    .course_info .info h4 {
        padding-bottom: 3px;
        font-size: 2.2rem;
    }

    .course_info .info h5 {
        margin: 20px 0 5px;
        font-size: 2.2rem;
    }

    .course_info .info p {
        font-size: 1.5rem
    }

    .yard_tbl {
        background: #fff;
        border-collapse: collapse;
        width: 100%;
    }

    .yard_tbl th,
    .yard_tbl td {
        border: 1px solid #707070;
        text-align: center !important;
        padding: 5px 5px;

    }

    .yard_tbl th {
        white-space: normal;
        padding: 8px 5px;
        font-size: 1.3rem;
        line-height: 1.4
    }

    .yard_tbl th span {
        font-size: 1.7rem;
        display: block
    }

    .yard_tbl span {
        margin-right: 0px
    }

    .yard_tbl tbody th {
        padding: 8px 7px;
    }

    .yard_tbl tbody td {
        font-size: 1.6rem;
    }

}


/********スライダー*********/

.course_slider {
    margin: 0;
    background: #fff;
    padding: 18px;
}

.course-slider-main {
    width: 100%;
    margin-bottom: 10px;
}

.course-slider-main .swiper-slide img {

    height: auto;
    object-fit: cover;
    border-radius: 4px;
}

.course-slider-thumb {
    padding-top: 0;
}

.course-slider-thumb .swiper-slide {
    width: 120px;
    cursor: pointer;
    opacity: 1;
    /* ← 透明にするとボヤけるので1のままに */
    filter: brightness(0.5);
    /* ← 非選択を少し暗く */
    transition: filter .2s ease;
}

.course-slider-thumb .swiper-slide-thumb-active {
    filter: brightness(1);
    /* ← 選択中は明るく */
}


.course-slider-thumb .swiper-slide-thumb-active {
    opacity: 1;
}

.course-slider-thumb .swiper-slide img {
    width: 100%;
    object-fit: cover;
    border-radius: 3px;
}


/******コースページネーション*******/

.course-pagination a {
    color: #fff;
    /*line-height: 1; */
}

/* 全体 */
.course-pagination {
    max-width: 1200px;
    margin: 40px auto 0;
    display: flex;
    align-items: stretch;
    background: #284731;
    color: #fff;
    border-radius: 999px;
    overflow: hidden;
    font-family: "Times New Roman", serif;
}

.course-pagination > * {
    border-left: 1px solid rgba(255, 255, 255, 0.35);
}

.course-pagination > *:first-child {
    border-left: none;
}

/* Prev / Next */
.course-pagination__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 18px 32px;
    text-decoration: none;
    font-size: 1.6rem;
    white-space: nowrap;
    flex: 0 0 auto;
    transition: background 0.25s;
    color: #fff;
}

.course-pagination__btn:hover {
    background: #316942;
}

/* 矢印 */
.course-pagination__icon {
    width: 12px;
    height: 12px;
    position: relative;
}

.course-pagination__icon::before {
    content: "";
    position: absolute;
    inset: 0;
    border-style: solid;
    border-color: transparent;
}

.course-pagination__icon--prev::before {
    border-width: 2px 0 0 2px;
    border-top-color: #fff;
    border-left-color: #fff;
    transform: rotate(-45deg) translate(1px, 1px);
}

.course-pagination__icon--next::before {
    border-width: 2px 2px 0 0;
    border-top-color: #fff;
    border-right-color: #fff;
    transform: rotate(45deg) translate(-1px, 1px);
}

/* 数字 */
.course-pagination__pages {
    display: flex;
    flex: 1 1 auto;
}

.course-pagination__page {
    flex: 1 1 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    text-decoration: none;
    color: #fff;
    padding: 0 10px;
    transition: background 0.25s;
}

.course-pagination__page:hover {
    background: #316942;
}

.course-pagination__page.is-active {
    background: #1a883c;
    font-weight: 700;
}

.course-pagination__page + .course-pagination__page {
    border-left: 1px solid rgba(255, 255, 255, 0.35);
}

/* IN Course（リンク） */
.course-pagination__course {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px 40px;
    font-size: 1.8rem;
    white-space: nowrap;
    text-decoration: none;
    color: #fff;
    transition: background 0.25s;
}

.course-pagination__course:hover {
    background: #316942;
}

/* SP版（797px以下） */
@media (max-width: 797px) {

    .course-pagination {
        margin: 30px auto 0;
    }

    .course-pagination__pages {
        display: none;
    }

    .course-pagination__btn,
    .course-pagination__course {
        flex: 1 1 0;
        padding: 12px 20px;
        font-size: 1.6rem;
    }

    .course-pagination__icon {
        width: 10px;
        height: 10px;
    }
}

/* ---------------------------------------------
*   下階層：施設紹介
--------------------------------------------- */

p.ttl_discription {
    font-size: 1.7rem;
    margin-top: 10px;
    line-height: 1.6
}

.facilitys_slide {
    max-width: 920px;
    margin: 30px auto 0
}

.facilitys_ch {
    margin-top: 100px
}

.fac_ttl {
    display: flex;
    flex-flow: wrap;
    justify-content: space-between;
    align-items: baseline;
    font-size: 5.2rem;
    font-family: "BigCaslonWeb", "Playfair Display", "Times New Roman", Times, serif;
    font-weight: 400;
    line-height: 1;
    margin: 0 0 50px;
    padding-bottom: 15px;
    border-bottom: 1px solid #0B0B0B;
}

.fac_ttl span {
    font-size: 1.8rem
}

.fac_img_list {
    display: flex;
    flex-flow: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
    width: calc(100% + 55px)
}

.fac_img_list li {
    width: calc(100% / 3 - 55px);
    margin: 0 55px 50px 0
}


.fac_img_list li img {
    display: block;
}

.fac_img_list li h4 {
    margin: 20px 0 12px;
    font-weight: 500;
    font-size: 1.8rem;
    line-height: 1;
    text-align: center
}

.fac_img_list li p {
    font-size: 1.4rem;
    margin: 0;
    line-height: 1.7
}

.facilitys_sp {
    margin-top: 20px
}

.facilitys_sp .fac_brand {
    margin: -15px 0 60px 0;
    color: #643c15;
    line-height: 1.6;
    font-size: 1.5rem
}


@media (max-width: 1024px) {

    .fac_img_list {
        width: calc(100% + 40px)
    }

    .fac_img_list li {
        width: calc(100% / 3 - 40px);
        margin: 0 40px 50px 0
    }
}

@media (max-width: 767px) {

    p.ttl_discription {
        font-size: 1.5rem;
        margin-top: 10px;
    }

    .facilitys_slide {
        margin: 20px auto 0
    }

    .facilitys_ch {
        margin-top: 50px
    }

    .fac_ttl {
        font-size: 3.2rem;
        margin: 0 0 30px;
        padding-bottom: 10px;
    }

    .fac_ttl span {
        font-size: 1.5rem
    }

    .fac_img_list {
        display: block;
        width: 100%
    }

    .fac_img_list li {
        width: 100%;
        margin: 0 0 30px 0
    }

    .fac_img_list li:last-child {
        margin-bottom: 0
    }


    .fac_img_list li img {
        display: block;
    }

    .fac_img_list li h4 {
        margin: 18px 0 8px;
        font-size: 1.7rem;
    }

    .fac_img_list li p {
        line-height: 1.6
    }

    .facilitys_sp {
        margin-top: 45px
    }

    .facilitys_sp .fac_brand {
        margin: 15px 0 0px 0;
    }
}


/* スライダー全体のレイアウト */

.hero-slider .hero-slider__pagination.swiper-pagination {
    position: static;
    inset: auto;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    transform: none;
    display: flex;
    flex-direction: row;
    width: 100%;
    margin: 14px auto 0;
    height: 6px;
    background: #dcdcdc;
    /* 全体の下地グレー */
    border-radius: 3px;
    overflow: hidden;
    opacity: 1;
}

.hero-slider__pagination {
    display: flex;
    width: 100%;
    margin: 14px auto 0;
    height: 6px;
    background: #dcdcdc;
    border-radius: 3px;
    overflow: hidden;
    cursor: ew-resize;
    /* ← 左右ドラッグできそうなカーソル */
}


/* 各セグメント（bullet） */
.hero-slider__pagination .swiper-pagination-bullet {
    flex: 1;
    /* 枚数に応じて等分される */
    height: 100%;
    margin: 0;
    border-radius: 0;
    background: transparent;
    /* 下地のグレーを見せる */
    opacity: 1;
}

/* アクティブなスライドのセグメントだけグリーン */
.hero-slider__pagination .swiper-pagination-bullet-active {
    background: #2d7844;
}

.js-hero-slider {
    width: 100%;
    overflow: hidden;
    cursor: grab;
    /* つかめそうなカーソルに */
}



/* ---------------------------------------------
*   下階層：クラブ概要
--------------------------------------------- */

.club_flex {
    display: flex;
    margin-top: 55px
}

.club_img {
    width: 35%
}

.club_img ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.club_img ul li {
    margin-bottom: 10px
}

.club_img ul li img {
    display: block;
}

.club_info {
    padding-left: 60px;
    width: 65%
}

.club_tbl {
    border-collapse: collapse
}

.club_tbl tr {
    border-bottom: 1px dotted #0B0B0B
}

.club_tbl th,
.club_tbl td {
    padding: 20px 0;
    text-align: left;
    vertical-align: top;
    line-height: 1.7
}

.club_tbl th {
    width: 10em;
    font-weight: 500
}

.club_tbl p.att {
    font-size: 1.4rem;
    line-height: 1.6;
    margin: 4px 0 0 0
}

.club_tbl a {
    text-decoration: none;
    color: #0000ce
}

.btn-round {
    display: inline-block;
    padding: 5px 20px;
    background-color: #2d7844;
    color: #fff !important;
    text-decoration: none;
    border-radius: 9999px;
    font-size: 16px;
    transition: background-color 0.3s ease;
}

.btn-round:hover {
    background-color: #1a4b27;
}


@media (max-width: 1024px) {

    .club_flex {
        flex-flow: column-reverse;
        margin-top: 35px
    }

    .club_img {
        width: 100%;
        margin-top: 35px
    }

    .club_img ul {
        display: flex;
        flex-flow: wrap;
        width: calc(100% + 20px)
    }

    .club_img ul li {
        margin: 0 20px 20px 0 !important;
        padding-bottom: 0 !important;
        width: calc(100% / 2 - 20px)
    }

    .club_info {
        padding-left: 0;
        width: 100%
    }

    .club_tbl th,
    .club_tbl td {
        padding: 15px 0;
        line-height: 1.6
    }

    .club_tbl th {
        width: 10em;
    }

    .club_tbl p.att {
        font-size: 1.4rem;
        margin: 2px 0 0 0
    }

    .btn-round {
        padding: 5px 20px;
        margin: 5px 0;
    }
}

@media (max-width: 767px) {

    .club_tbl tr:first-child {
        border-top: 1px dotted #0B0B0B
    }

    .club_tbl th,
    .club_tbl td {
        display: block;
        width: 100%;
    }

    .club_tbl th {
        width: 100%;
        padding: 20px 0 0 0;
        font-weight: 600;
        font-size: 1.5rem
    }

    .club_tbl td {
        padding: 3px 0 15px 0
    }

    .club_img {
        margin-top: 25px
    }

    .club_img ul {
        width: calc(100% + 10px)
    }

    .club_img ul li {
        margin: 0 10px 10px 0 !important;
        width: calc(100% / 2 - 10px)
    }
}

/* ---------------------------------------------
*   下階層：個人情報保護方針
--------------------------------------------- */

.policy_wrap h3 {
    margin: 35px 0 23px;
    padding-bottom: 6px;
    font-size: 1.7rem;
    font-weight: 500;
    border-bottom: 1px dotted #1C1C1C
}

.policy_wrap ul {
    padding-left: 2em;
    margin: 0
}

.policy_wrap p {
    margin-left: .5em
}

.policy_wrap a {
    text-decoration: none
}


@media (max-width: 767px) {

    .policy_wrap h2 {
        margin: 0 0 25px;
        font-size: 2rem
    }

    .policy_wrap h3 {
        margin: 30px 0 18px;
        padding-bottom: 4px;
        font-size: 1.6rem;
    }

    .policy_wrap ul {
        padding-left: 1.0em;
        font-size: 1.5rem
    }

    .policy_wrap p {
        margin-left: 0;
        font-size: 1.5rem
    }
}


/* ---------------------------------------------
*   下階層：採用情報
--------------------------------------------- */

.recruit-block {
    background-color: #fff;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
    padding: 70px;
}

.recruit-block + .recruit-block {
    margin-top: 50px;
}

.recruit__category {
    font-size: 3.6rem;
    font-weight: 500;
    border-bottom: 3px solid #282E60;
    padding-bottom: 5px;
    margin: 0 0 45px;
}

.recruit__description_wrap {
    display: flex;
    margin-bottom: 40px
}

.rec_image {
    width: 45%;
    margin-right: 50px
}

.recruit__description {
    width: 55%;
    line-height: 2.3;
    margin: 0;
}

.recruit-img-list {
    display: flex;
    list-style: none;
    min-width: 0;
    margin: 0 -17px 55px;
    padding: 0;
}

.recruit-img-list__item {
    flex: 0 0 33.33%;
    box-sizing: border-box;
    padding: 0 17px;
}

.recruit__img {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    padding-top: 66.45%;
}

.recruit-job {
    border: 1px solid #282E60;
}

.recruit-job + .recruit-job {
    margin-top: 25px;
}

.recruit-job__header {
    display: flex;
    align-items: center;
    min-width: 0;
    height: 85px;
    background-color: #F0F4FA;
    position: relative;
    z-index: 0;
    cursor: pointer;
}

.recruit-job__header::before {
    content: '';
    background-color: #282E60;
    display: block;
    height: 1px;
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    z-index: 10;
}

.recruit-job__name {
    flex: 1 1 auto;
    font-size: 2rem;
    font-weight: 400;
    margin: 0;
    padding: 0 30px 0 55px;
    position: relative;
    z-index: 0;
}

.recruit-job__name::before {
    content: '▶︎';
    line-height: 1;
    margin-top: -0.5em;
    position: absolute;
    left: 25px;
    top: 50%;
}

.recruit-job__btn {
    flex: 0 0 85px;
    appearance: none;
    background: #282E60;
    border: none;
    outline: none;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 85px;
    height: 85px;
    position: relative;
    z-index: 0;
    cursor: pointer;
    transition: opacity 0.25s;
}

.recruit-job__btn:hover {
    opacity: 0.8;
}

.recruit-job__btn-icon,
.recruit-job__btn-icon::before {
    display: block;
    width: 35px;
    height: 5px;
    background-color: #fff;
    position: absolute;
    top: 50%;
    left: 25px;
    margin-top: -2.5px;
    user-select: none;
}

.recruit-job__btn-icon::before {
    content: '';
    left: 0;
    transform: rotate(90deg);
}

.recruit-job.is-opened .recruit-job__btn-icon::before {
    display: none;
}

.recruit-job__content-container {
    height: 0;
    overflow: hidden;
    transition: height 0.35s;
}

.recruit-job__content {
    line-height: 2;
    padding: 30px;
}

.rec_gaiyo {
    border-collapse: collapse;
    width: 100%;
}

.rec_gaiyo th,
.rec_gaiyo td {
    border: 1px solid #adadad;
    padding: 20px 25px;
    line-height: 1.8;
    font-weight: 400
}

.rec_gaiyo th {
    background: #f0f0f0;
    width: 8em;
    text-align: left;
    white-space: nowrap
}

.rec_gaiyo th.head {
    background: #22232B;
    color: #fff;
    text-align: left
}

.rec_gaiyo ul {
    padding-left: 1.2em;
    margin: 0
}

.rec_gaiyo td h5 {
    margin: 25px 0 25px;
}

.rec_gaiyo td h5 span {
    font-size: 1.8rem;
    font-weight: 500;
    background: #132f79;
    color: #fff;
    padding: 7px 12px 8px
}

.rec_gaiyo td h6 {
    margin: 20px 0 10px;
    font-size: 1.7rem;
    font-weight: 500;
}

.rec_gaiyo td p {
    margin: 0;
    line-height: 1.7
}

@media screen and (max-width: 767px) {

    .recruit__description_wrap {
        display: block;
        margin-bottom: 40px
    }

    .rec_image {
        width: 100%;
        margin-right: 0;
        margin: 25px 0 15px
    }

    .recruit__description {
        width: 100%;
        line-height: 2;
    }

    .recruit-block {
        padding: 30px 20px;
    }

    .recruit-block + .recruit-block {
        margin-top: 40px;
    }

    .recruit__category {
        font-size: 2rem;
        padding-bottom: 6px;
        margin: 0 0 25px;
    }

    .recruit__description {
        font-size: 1.5rem;
        line-height: 1.86;
        margin: 0 0 25px;
    }

    .recruit-img-list {
        display: block;
        margin: 0 0 30px;
    }

    .recruit-img-list__item {
        padding: 0;
    }

    .recruit-img-list__item + .recruit-img-list__item {
        margin-top: 15px;
    }

    .recruit-job + .recruit-job {
        margin-top: 10px;
    }

    .recruit-job__header {
        height: 60px;
    }

    .recruit-job__name {
        font-size: 1.5rem;
        padding: 0 15px 0 43px;
    }

    .recruit-job__name::before {
        left: 15px;
    }

    .recruit-job__category {
        font-size: 1.4rem;
    }

    .recruit-job__btn {
        flex: 0 0 60px;
        width: 60px;
        height: 60px;
        position: relative;
        z-index: 0;
        cursor: pointer;
        transition: opacity 0.25s;
    }

    .recruit-job__btn-icon,
    .recruit-job__btn-icon::before {
        width: 26px;
        left: 17px;
    }

    .recruit-job__btn-icon::before {
        left: 0;
    }

    .recruit-job__content {
        line-height: 1.86;
        padding: 15px;
    }

    .rec_gaiyo {
        border-bottom: 1px solid #adadad;
    }

    .rec_gaiyo th,
    .rec_gaiyo td {
        display: block;
        width: 100%;
        text-align: left;
        padding: 8px 8px;
        line-height: 1.6;
        font-size: 1.5rem;
        border-bottom: none
    }

    .rec_gaiyo th {
        background: #f0f0f0
    }

    .rec_gaiyo th.head {
        background: #22232B;
        color: #fff;
        text-align: left
    }

}

/* ---------------------------------------------
*   下階層：ドレスコード
--------------------------------------------- */

.dress_img {
    margin: 60px auto 45px;
    padding-bottom: 45px;
    border-bottom: 3px dotted #A2A2A2;
    text-align: center
}

.dress_img img {
    max-width: 950px;
    height: auto
}

/* 共通リスト設定 */
.dress_list_ok,
.dress_list_ng {
    list-style: none;
    padding: 0;
    margin: 0;
}

.dress_list_ok li,
.dress_list_ng li {
    position: relative;
    padding-left: 26px;
    /* アイコン＋余白 */
    margin-bottom: 10px;
    line-height: 1.6;
}

/* OKアイコン */
.dress_list_ok li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.3em;
    width: 18px;
    height: 18px;
    background: url("../img/dress/icon_maru.svg") no-repeat center center;
    background-size: contain;
}

/* NGアイコン */
.dress_list_ng li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.3em;
    width: 18px;
    height: 18px;
    background: url("../img/dress/icon_batsu.svg") no-repeat center center;
    background-size: contain;
}

.dress_list_dot {
    list-style: disc;
    padding: 0 0 0 1em;
    margin: 0;
}

.dress_list_dot li {
    margin-bottom: 10px;
}

.etiquette img {
    max-width: 480px;
    margin-top: 25px
}

@media (max-width: 767px) {

    .dress_img {
        margin: 40px auto 20px;
        padding-bottom: 20px;
    }


    .dress_list_ok li,
    .dress_list_ng li {
        padding-left: 24px;
        /* アイコン＋余白 */
        margin-bottom: 5px;
    }

    /* OKアイコン */
    .dress_list_ok li::before {
        top: 0.4em;
        width: 16px;
        height: 16px;
    }

    /* NGアイコン */
    .dress_list_ng li::before {
        top: 0.4em;
        width: 16px;
        height: 16px;
    }

    .dress_list_dot li {
        margin-bottom: 7px;
    }

}

/* ---------------------------------------------
*   下階層：会員専用
--------------------------------------------- */

.member_h3_ttl {
    font-size: 1.8rem;
    color: #e6141c;
}

.handicap-rules {
    list-style: none;
    margin: 25px 0 0 0;
    padding: 0;
}

.handicap-rules li {
    position: relative;
    padding-left: 1.6em;
    line-height: 1.8;
    margin: 0 0 1em;
    word-break: break-word;
}

.handicap-rules li::before {
    content: "◆";
    position: absolute;
    left: 0;
    top: 0.15em;
    font-size: 1em;
    line-height: 1;
    display: inline-block;
    width: 1.2em;
    text-align: center;
}

.underlined {
    display: inline;
    border-bottom: 2px solid #e6141c;
    padding-bottom: 2px;
    line-height: 1.8
}

.schedule_tbl {
    border-collapse: collapse;
    width: 100%
}

.schedule_tbl thead th {
    background: #2D7844;
    color: #fff;
    font-weight: 500
}

.schedule_tbl th,
.schedule_tbl td {
    border: 1px solid #1C1C1C;
    padding: 10px 15px
}

.schedule_tbl .day,
.schedule_tbl .month {
    text-align: center;
    background: #ede8cf;
    white-space: nowrap
}

.schedule_tbl .result {
    text-align: center
}


@media (max-width: 767px) {

    .member_h3_ttl {
        font-size: 1.6rem;
    }

    .handicap-rules {
        margin: 20px 0 0 0;
    }

    .table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        /* 慣性スクロール（iOS） */
    }

    .table-wrap .schedule_tbl {
        min-width: 797px;
        /* ここより広いと横スクロール発生。必要に応じて調整 */
        border-collapse: collapse;
    }

    /*ブロックエディタギャラリー対応*/

    .wp-block-gallery {
        display: block !important;
        margin: 0 !important;
        gap: 0 !important;
        /* WP6.x以降のギャップ指定もリセット */
    }

    .wp-block-gallery .blocks-gallery-grid,
    .wp-block-gallery {
        display: block !important;
    }

    .wp-block-gallery .blocks-gallery-item,
    .wp-block-gallery .wp-block-image {
        width: 100% !important;
        margin: 0 0 8px 0 !important;
        /* 下だけ少し余白 */
    }

    .wp-block-gallery .wp-block-image:last-child {
        margin-bottom: 0 !important;
        /* 最後の画像の下余白なし */
    }

    .wp-block-gallery .wp-block-image img {
        width: 100% !important;
        height: auto !important;
        display: block;
        margin: 5px
    }

}

/*Contact Form 7カスタマイズ*/
-------------------------------------------------------------------------*/ #application-thanks h3,
#contact-thanks h3 {
    text-align: center;
    font-size: 3rem;
    font-weight: 600;
    background: #292425;
    color: #fff;
    padding: 45px 15px;
    margin-bottom: 65px
}

#application-thanks .thanks_com,
#contact-thanks .thanks_com {
    text-align: center;
    margin-bottom: 60px
}


.inquiry_wrap {
    width: 100%;
    margin: 0 auto;
    max-width: 960px;
    text-align: center;
}

.inquiry_wrap h2 {
    margin: 0 0 25px;
}

.inquiry {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0px;
    margin-top: 20px;
    margin-bottom: 15px
}

.inquiry tr {
    border-top: dotted 1px #b1b0b0;
}

.inquiry tr:first-child {
    border-top: none;
}

.inquiry th {
    text-align: left;
    padding: 10px 10px 10px 10px;
    width: 17em;
    vertical-align: middle;
    font-weight: 400;
    white-space: nowrap
}

.inquiry td {
    padding: 10px 10px 10px 10px;
    text-align: left
}

.haveto {
    font-size: 1.0rem;
    padding: 5px;
    background: #d60400;
    color: #fff;
    font-weight: normal;
    border-radius: 4px;
    margin-right: 7px;
    position: relative;
    bottom: 1px;
}

.any {
    font-size: 1.0rem;
    padding: 5px;
    background: #006edb;
    color: #fff;
    font-weight: normal;
    border-radius: 4px;
    margin-right: 7px;
    position: relative;
    bottom: 1px;
}

/* CF7チェックボックスとラジオボタンを縦並びに */
span.wpcf7-list-item {
    margin-top: 8px;
    display: block;
}

td.form_policy {
    text-align: center;
    padding-top: 25px;
}

td.form_policy a {
    font-weight: normal;
    margin-left: 0;
    padding-left: 0
}

td.form_policy .policy {
    font-size: 1.7rem;
    line-height: 2.5
}

p.check_att {
    text-align: center;
    font-size: 1.5rem
}

#formbtn {
    display: block;
    padding: 15px;
    width: 350px;
    background: #3e2a2a;
    color: #fff;
    font-size: 1.8rem;
    font-weight: bold;
    border-radius: 4px;
    margin: 10px auto 0;
    border: 2px solid #3e2a2a;
}

#formbtn:hover {
    opacity: 0.7;
    transition: all 0.3s ease;
}

.submit_wrap {
    display: flex;
    flex-flow: wrap;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 00
}

.submit_wrap li {
    margin: 0 10px;
}

.confitm_btn {
    display: block;
    padding: 15px;
    width: 200px;
    background: #3e2a2a;
    color: #fff;
    font-size: 1.8rem;
    font-weight: bold;
    border-radius: 4px;
    margin: 10px auto 0;
    border: 2px solid #3e2a2a;
    transition: all 0.3s ease;
}

.confitm_btn:hover {
    background: rgba(62, 42, 42, 0.7) !important;
    border: 2px solid #3e2a2a;
}

#formbtn.confirm_back {
    width: auto;
    background: #fff;
    color: #3e2a2a;
}

#formbtn.confirm_back:hover {
    background: rgba(62, 42, 42, 0.72);
    border: 2px solid rgba(38, 53, 129, 0.3);
    color: #fff;
    opacity: 1;
}

.inquiry a {
    color: #D80235;
    font-weight: 600;
    margin-left: 1em
}

.inquiry textarea[name="your-message"] {
    width: 100%;
    border: 1px #c1c1c1 solid;
    padding: 10px;
    background: #fafafa;
    font-size: 1.6rem;
    margin-bottom: -6px !important;
}

.inquiry [type="file"] {
    margin: 10px 0 0 0;
}

.inquiry [type="text"],
.inquiry [type="email"],
.inquiry [type="tel"] {
    border: 1px #c1c1c1 solid;
    padding: 10px;
    max-width: 100% !important;
    background: #fafafa;
    font-size: 1.6rem
}

.inquiry .textsp {
    max-width: 100%
}

.inquiry .textfull {
    width: 100%
}

.inquiry .age {
    max-width: 6rem !important
}

.inquiry .content {
    width: 100%;
    border: 1px #c1c1c1 solid;
    padding: 8px;
    height: 150px
}

.inquiry select {
    border: 1px #c1c1c1 solid;
    cursor: pointer;
    line-height: 1.5;
    padding: 8px 10px
}

.wpcf7-radio .wpcf7-list-item {
    display: inline-block;
    margin-right: 1em;
}

#your-year {
    width: 6em;
    margin-right: .3em;
    border: 1px #c1c1c1 solid;
    padding: 8px 10px;
    background: #fafafa;
    font-size: 1.6rem
}

#your-date,
#your-month {
    width: 4em;
    margin-left: .7em;
    margin-right: .3em;
    border: 1px #c1c1c1 solid;
    padding: 8px 10px;
    max-width: 100% !important;
    background: #fafafa;
    font-size: 1.6rem
}

#pref {
    width: 6em;
    margin-right: 8px
}

#city {
    width: calc(100% - 6.9em);
}


/*住所欄の幅*/
.inquiry #city {
    width: 100%;
}

.inquiry dl {
    margin-bottom: 8px
}

.inquiry dl dt {
    margin: 8px 0 5px 0
}

/* エラーメッセージの上部を消去 */
div.screen-reader-response {
    display: none;
}

.wpcf7-not-valid-tip {
    color: #ff0000 !important;
    width: 100%
}

/*送信成功*/
div.wpcf7-mail-sent-ok {
    background: #d5edda;
    color: #185626;
    border: 1px solid #c4e5cc;
    padding: 10px
}

/*送信NG*/
div.wpcf7-validation-errors,
div.wpcf7-acceptance-missing {
    background: #f7d7da;
    color: #711d26;
    border: 1px solid #f4c6cb;
    padding: 10px
}

/*送信失敗*/
div.wpcf7-mail-sent-ng {
    background: #f7d7da;
    color: #711d26;
    border: 1px solid #f4c6cb;
    padding: 10px
}

/*スパムなどで送信ブロックされた場合*/
div.wpcf7-spam-blocked {
    background: #fff2cf;
    color: #846314;
    border: 1px solid #feedbd;
    padding: 10px
}

.form_finish {
    margin: 60px 0 0 0
}

.form_finish p {
    margin: 20px 0;
    line-height: 2;
    font-size: 1.7rem
}

.wpcf7 input::placeholder {
    color: #503b3b;
}

/*ステップバー*/
.stepBar {
    display: flex;
    max-width: 600px;
    position: relative;
    margin: 50px auto 0;
    text-align: center;
    padding: 0
}

.stepBar li {
    font-size: 1.6rem;
    list-style: none;
    position: relative;
    width: 33.333%;
}

.stepBar li:after {
    background: #bababa;
    content: "";
    width: calc(100% - 50px);
    height: 2px;
    position: absolute;
    left: calc(-50% + 25px);
    top: 36.5px;
}

.stepBar li:first-child:after {
    display: none;
}

.stepBar li span {
    background: #bababa;
    color: #ffffff;
    display: inline-block;
    height: 50px;
    margin-bottom: 5px;
    line-height: 50px;
    width: 50px;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
}

.stepBar .visited:after {
    background: #bababa;
}

.stepBar .visited span {
    background: #b20000;
}

/*エラーメッセージ非表示*/
.wpcf7-form.hide_error_message .wpcf7-not-valid-tip {
    display: none;
}

.wpcf7-form.invalid .wpcf7-response-output {
    display: none;
}

.wpcf7-not-valid-tip {
    margin-top: 5px !important;
    font-size: 1.4rem !important
}


@media(max-width:767px) {

    #application-thanks h3 {
        margin-bottom: 35px
    }

    #application-thanks .thanks_com {
        margin-bottom: 35px
    }

    .iq_ttl {
        font-weight: 600;
        color: #D80235;
        font-size: 2rem;
    }

    .inquiry_wrap {
        padding-bottom: 25px
    }

    .inquiry {
        margin-top: -15px
    }

    .inquiry th,
    .inquiry td {
        display: block !important;
        width: 100% !important;
        border-top: none !important;
        -webkit-box-sizing: border-box !important;
        box-sizing: border-box !important;
        text-align: left;
        font-size: 1.5rem;
    }

    .inquiry th {
        padding: 5px 0 0 0;
    }

    .inquiry td {
        padding: 0 0 5px;

    }

    .inquiry textarea[name="your-message"],
    .inquiry [type="text"],
    .inquiry [type="email"],
    .inquiry [type="tel"] {
        font-size: 1.5rem;
        width: 100%
    }

    /* CF7チェックボックスとラジオボタンを縦並びに */
    span.wpcf7-list-item {
        margin-left: 0
    }

    .submit_wrap li {
        margin: 0 2px;
    }

    td.form_policy {
        padding-top: 15px;
        padding-bottom: 0;
        text-align: center;
        margin: 0 !important
    }

    td.form_policy a {
        font-weight: normal;
        margin-left: 0;
        padding-left: 0
    }

    td.form_policy p.form_text {
        text-align: left
    }

    td.form_policy .policy {
        font-size: 1.6rem;
        line-height: 2.0
    }

    #formbtn {
        display: block;
        padding: 10px 20px;
        width: auto;
        font-size: 1.6rem;
        margin-top: 10px
    }

    .confitm_btn {
        margin: 15px 7px !important;
        padding: 8.5px 20px;
    }

    #formbtn.confirm_back {
        margin: 15px 7px;
    }

    /* CF7チェックボックスを縦並びに */
    span .wpcf7-checkbox .wpcf7-list-item {
        margin-top: 5px;
        display: block;
        margin-left: 0;
    }

    .form_finish {
        text-align: left
    }

    .form_finish h3 {
        margin: 40px 0 25px;
        font-size: 1.7rem
    }

    .form_finish p {
        margin: 15px 0;
        line-height: 1.6
    }

    /*ステップバー*/
    .stepBar {
        margin: 25px auto;
        text-align: center;
        padding: 0
    }

    .stepBar li {
        font-size: 1.2rem;
    }

    .stepBar li:after {
        width: calc(100% - 36px);
        left: calc(-50% + 18px);
        top: 18px;
    }

    .stepBar li span {
        height: 36px;
        margin-bottom: 5px;
        line-height: 36px;
        width: 36px;
    }

    #pref {
        width: 6em;
        display: block;
        margin-bottom: 10px
    }

    #city {
        width: 100%;
    }
}

/* ---------------------------------------------
*   下階層：約款
--------------------------------------------- */



.yakkan_wrap h3 {
    margin: 0 0 15px 0;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1;

}

.yakkan_wrap h3.yakkan_top_none {
    margin-top: 20px
}

.yakkan_wrap p {
    margin: 0 0 0 0
}

.yakkan_wrap .yakkan_tekiyo {
    margin: 20px 0 4px -0.6em;
    padding-top: 20px;
    border-top: 1px dotted #0B0B0B
}

.yakkan_wrap .yakkan_tekiyo.top_none {
    margin-top: 0;
    padding-top: 0;
    border-top: none
}

.yakkan_wrap ul,
.yakkan_wrap ol {
    margin: 0
}

.yakkan_last {
    text-align: right;
    margin: 0 !important
}
