@charset "UTF-8";

html {
    font-size: 62.5%;
    scroll-behavior: smooth;
}
body {
    width: 100%;
    height: 100%;
    font-size: 1.6em;
    line-height: 1.6;
    letter-spacing: 0.07em;
}
*,
*:before,
*:after {
    box-sizing:border-box;
}
/* ------------------------------------- /
/   共通
/* ------------------------------------- */
.taC {
    text-align: center;
}
.taR {
    text-align: right;
}
.fwM {
    font-weight: 500;
}
.fwSB {
    font-weight: 600;
}
.fwB {
    font-weight: 700;
}
img {
    display: block;
    width: 100%;
}


/* ------------------------------------- /
/   inner
/* ------------------------------------- */
.inner {
    width: min(100%, 1366px);
    margin: 0 auto;
    padding: 0 min(6%, calc((1366px - 1200px) / 2));
}
@media screen and (max-width:600px){
.inner {
    padding: 0 4%;
}
}

/* ------------------------------------- /
/   pc-none、sp-none
/* ------------------------------------- */
.pc-none {
    display: none;
}
.pc-none768 {
    display: none;
}
.pc-none500 {
    display: none;
}
.pc-none__inline {
    display: none;
}
.pc-none__inline768 {
    display: none;
}
.pc-none__inline1200 {
    display: none;
}
@media (max-width: 1200px) {
.pc-none__inline1200 {
    display: inline;
}
}
@media (max-width: 768px) {
.pc-none768 {
    display: block;
}
.pc-none__inline768 {
    display: inline;
}
.sp-none768 {
    display: none !important;
}
}
@media (max-width: 600px) {
.pc-none {
    display: block;
}
.pc-none__inline {
    display: inline;
}
.sp-none {
    display: none !important;
}
}
@media (max-width: 500px) {
.sp-none500 {
    display: none !important;
}
.pc-none500 {
    display: block;
}
}

/* ------------------------------------- /
/   サイトカラー、フォント
/* ------------------------------------- */
body {
    font-family: "Zen Maru Gothic", serif;
    font-weight: 500;
    color: #ffffff;
    background-color : var(--color-navy);
    background-image: url('../img/bg.jpg');
    background-position: center top;
    background-size: 100% auto;
    background-repeat: repeat-y;
}
a {
    color: #ffffff;
    text-decoration: none;
}
::selection {
    background: #987792;
    color: #fff;
}
:root {
    --color-navy: #010045;
    --color-blue: #05096E;
    --color-yellow: #FFDD91;
    --color-pink: #FE8790;
}
.bg-navy {
    background-color: var(--color-navy);
}
.bg-blue {
    background-color: var(--color-blue);
}
.bg-yellow {
    background-color: var(--color-yellow);
}
.bg-pink {
    background-color: var(--color-pink);
}
.bg-white {
    background-color: #fff;
}
.color-navy {
    color: var(--color-navy);
}
.color-blue {
    color: var(--color-blue);
}
.color-yellow {
    color: var(--color-yellow);
}
.color-pink {
    color: var(--color-pink);
}
.color-white {
    color: #fff;
}

/* ------------------------------------- /
/  body
/* ------------------------------------- */
body {
    position: relative;
}

/* ------------------------------------- /
/  header
/* ------------------------------------- */
header {
    width: 100%;
}

/* ------------------------------------- /
/  h2
/* ------------------------------------- */
.page_h2 {
    width: min(60%, 785px);
    margin: 0 auto;
}
.page_subtitle {
    font-size: clamp(1.8rem, 3.0vw, 3.0rem);
    letter-spacing: 0;
}

/* ------------------------------------- /
/  footer
/* ------------------------------------- */
footer {
    padding: 0 0 min(12vw, 160px);
    position: relative;
}
footer::before {
    content: '';
    display: block;
    width: 100%;
    height: 738px;
    background-image: url('../img/footer_bg.svg');
    background-position: center top;
    background-size: auto 100%;
    background-repeat: repeat-x;
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: -1;
}
.footer_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    row-gap: 30px;
    width: min(100%, 1000px);
    margin: 0 auto;
}
.footer_list_column {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    column-gap: 15px;
    width: 50%;
}
.footer_list_column:nth-child(3),
.footer_list_column:nth-child(5) {
    width: 48%;
}
    .footer_list_column dt {
        width: min(100%, 100px);
        padding: 2px 0 0 24px;
        background-image: url('../img/star.svg');
        background-position: left center;
        background-size: 16px auto;
        background-repeat: no-repeat;
    }
    .footer_list_column dd {
        width: calc(100% - 100px - 15px);
        font-size: clamp(1.6rem, 3.0vw, 1.8rem);
        letter-spacing: 0;
    }
.footer_list_column:nth-child(1) {
    width: 100%;
    align-items: center;
}
    .footer_list_column:nth-child(1) dt {
        width: auto;
    }
    .footer_list_column:nth-child(1) dd {
        width: auto;
        font-size: clamp(2.0rem, 3.0vw, 2.5rem);
    }
    .footer_list_column span {
        display: inline-block;
    }
    .footer_list_column .fsB {
        font-size: 1.22em;
    }
.access_train {
    padding: 0 0 0 24px;
    background-image: url('../img/icon_train.svg');
    background-position: left 8px;
    background-size: 14px auto;
    background-repeat: no-repeat;
}
.access_car {
    padding: 0 0 0 24px;
    background-image: url('../img/icon_car.svg');
    background-position: left 10px;
    background-size: 14px auto;
    background-repeat: no-repeat;
}
@media (max-width: 768px) {
.footer_list {
    width: min(100%, 550px);
}
.footer_list_column,
.footer_list_column:nth-child(3),
.footer_list_column:nth-child(5) {
    width: 100%;
}
}

/* ------------------------------------- /
/  event
/* ------------------------------------- */
.ebvent_text {
    font-size: clamp(1.5rem, 3.0vw, 2.0rem);
}
    .ebvent_text .fsS {
        font-size: 0.8em;
    }


/* ------------------------------------- /
/  map
/* ------------------------------------- */
.map_img {
    margin: 0 auto;
}
.map_text {
    margin: 0 auto;
    padding: 0 0 0 calc((100% - 1000px) / 2);
}
    .map_text h3 {
        padding: 0 0 0 24px;
        background-image: url('../img/star.svg');
        background-position: left center;
        background-size: 16px auto;
        background-repeat: no-repeat;
    }
    .map_text p {
        padding: 0 0 0 24px;
        font-size: clamp(1.6rem, 3.0vw, 1.6rem);
        letter-spacing: 0;
    }
        .map_text p span {
            display: inline-block;
        }
        .map_text p span.fsS {
            font-size: 0.85em;
        }

/* ------------------------------------- /
/  menu
/* ------------------------------------- */
.menu_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.menu_column {
    width: min(48.5%, 580px);
    background-color: #7991bc;
}
.menu_column.menu_01,
.menu_column.menu_02,
.menu_column.menu_05,
.menu_column.menu_06 {
    width: 100%;
}
.menu_title {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    font-size: clamp(1.8rem, 3.0vw, 3.0rem);
    position: relative;
}
.menu_title::before {
    content: '';
    display: block;
    width: 36px;
    height: 36px;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
}
.menu_column.menu_01 .menu_title::before {
    background-image: url('../img/num_1.svg');
}
.menu_column.menu_02 .menu_title::before {
    background-image: url('../img/num_2.svg');
}
.menu_column.menu_03 .menu_title::before {
    background-image: url('../img/num_3.svg');
}
.menu_column.menu_04 .menu_title::before {
    background-image: url('../img/num_4.svg');
}
.menu_column.menu_05 .menu_title::before {
    background-image: url('../img/num_5.svg');
}
.menu_column.menu_06 .menu_title::before {
    background-image: url('../img/num_6.svg');
}
    .menu_title > span {
        display: block;
        line-height: 1.2;
        padding: 0 0 5px;
    }
        .menu_title span span {
            display: inline-block;
            margin: 0 0 0 10px;
            padding: 0;
            font-size: 0.65em;
        }
    .menu_title p {
        width: 100%;
        position:absolute;
        left: 0;
        top: 20px;
        padding: 0 0 0 45px;
        font-size: 0.74em;
    }
        .menu_title p span {
            display: inline-flex;
            justify-content: center;
            align-items: center;
            line-height: 1.2;
            font-size: 0.75em;
            padding: 0 10px;
            min-height: 28px;
            border-radius: 14px;
            vertical-align: bottom;
            margin-bottom: 5px;
        }
        .menu_title p:nth-child(3) {
            display: none;
        }
.menu_detail {
    position: relative;
}
    .menu_detail p {
        font-size: clamp(1.6rem, 3.0vw, 2.0rem);
        letter-spacing: 0;
    }
    .menu_detail p:has(.fsS .fsS) {
        line-height: 1.2;
    }
    .menu_detail p.aqua {
        font-size: clamp(1.6rem, 3.0vw, 1.9rem);
    }
        .menu_detail p .fsS {
            font-size: 0.9em;
        }
        .menu_detail p .ilb {
            display: inline-block;
        }
        .menu_detail p img {
            display: inline-block;
            vertical-align: bottom;
        }
        .menu_detail p img.time {
            width: 27px;
            margin-bottom: 2px;
        }
        .menu_detail p img.star {
            width: 17px;
            margin-bottom: 5px;
        }
    .menu_detail .udl {
        background: linear-gradient(transparent 80%, var(--color-pink) 0%);
    }
    .menu_detail .marker {
        background: linear-gradient(transparent 5%, var(--color-pink) 0%);
    }
.menu_detail_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    row-gap: 15px;
    margin: 0 auto;
    font-size: clamp(1.6rem, 3.0vw, 2.0rem);
    letter-spacing: 0;
}
    .menu_detail_list li {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        width: 100%;
    }
    .menu_detail_list img {
        width: min(100%, 28px);
        margin: 0 15px 0 0;
    }
    .menu_detail_list img.arrow {
        width: 5px;
    }
.menu_detail_img {
    position: absolute;
}
/*menu_01*/
.menu_column.menu_01 .menu_detail_list {
    width: min(100%, 716px);
}
    .menu_column.menu_01 .menu_detail_list li:nth-child(2n + 1) {
        width: 61.5%;
    }
    .menu_column.menu_01 .menu_detail_list li:nth-child(2n) {
        width: calc(100% - 61.5%);
    }
    .menu_column.menu_01 .menu_detail_list + p {
        width: min(100%, 716px);
        margin: 0 auto;
    }
.menu_more {
    display: flex;
    justify-content: center;
    align-items: center;
    width: min(100%, 250px);
    min-height: 60px;
    margin: 0 auto;
    background-color: #fff;
    border: 1px #fff solid;
    color: var(--color-blue);
    font-size: clamp(1.6rem, 3.0vw, 2.0rem);
    transition-duration: 0.2s;
}
.menu_more:hover {
    background-color: transparent;
    color: #fff;
}
.menu_more::after {
    content: '';
    display: block;
    width: 8px;
    height: 10px;
    background-image: url('../img/arrow_blue.svg');
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    transition-duration: 0.2s;
}
.menu_more:hover::after {
    background-image: url('../img/arrow_white.svg');
}
    .menu_more span {
        display: block;
        line-height: 1.2;
    }
.menu_detail_img.img_01 {
    width: max(20.78%, 120px);
    right: 6.47%;
    bottom: 1.3%;
}

/*menu_02*/
.menu_column.menu_02 .menu_detail_list {
    width: min(100%, 160px);
}
.menu_detail_img.img_02 {
    width: max(4.57%, 26px);
    left: 14.66%;
    top: -6%;
}
.menu_detail_img.img_03 {
    width: max(8.28%, 36px);
    right: 15.95%;
    top: -38%;
}

/*menu_04*/
.menu_detail_img.img_04 {
    width: max(25%, 90px);
    right: -5%;
    top: -50%;
}

/*menu_05*/
.menu_column.menu_05 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    row-gap: 30px;
    position: relative;
}
.menu_column.menu_05::before {
    content: '';
    display: block;
    width: 100%;
    height: 15px;
    background-color: var(--color-navy);
    position: absolute;
    left: 0;
    top: 15px;
}
.menu_column.menu_05::after {
    content: '';
    display: block;
    width: 100%;
    height: 15px;
    background-color: var(--color-navy);
    position: absolute;
    left: 0;
    bottom: 15px;
}
.menu_left {
    width: max(30%, calc(100% - 560px));
}
    .menu_left .menu_detail {
        background-image: url('../img/aqua_08.svg');
        background-position: right 5% top 50%;
        background-size: 20%;
        background-repeat: no-repeat;
    }
    .menu_left .menu_detail_list {
        row-gap: 5px;
    }
    .menu_left p {
        font-size: clamp(1.4rem, 3.0vw, 2.0rem);
        letter-spacing: 0;
    }
.menu_right {
    width: min(65%, 540px);
}
    .menu_right .menu_detail_list {
        row-gap: 5px;
    }
    .menu_right .menu_more {
        margin: 0;
    }

.menu_column.menu_05 .menu_title {
    padding: 65px 0 0 0;
    letter-spacing: 0;
}
.menu_detail_img.img_05 {
    width: max(12.5%, 60px);
    left: 3%;
    top: 5%;
}
.menu_detail_img.img_06 {
    width: max(8%, 45px);
    right: 9%;
    top: 2%;
}
.menu_detail_img.img_07 {
    width: max(6.5%, 37px);
    right: 4%;
    top: 35%;
}
.menu_detail_img.img_08 {
    width: max(10.5%, 59px);
    right: 0%;
    bottom: -2%;
    z-index: 1;
}
.menu_detail_img.img_09 {
    width: max(10.7%, 37px);
    right: 1.5%;
    top: 25%;
}
.menu_detail_img.img_11 {
    width: max(8%, 45px);
    left: 5%;
    top: 5%;
}
.menu_detail_img.img_12 {
    width: max(10%, 60px);
    left: 3%;
    top: 5%;
}

/*menu_06*/
.menu_column.menu_06 .menu_detail_list {
    width: min(100%, 420px);
}
    .menu_column.menu_06 .menu_detail_list li:nth-child(1) {
        width: 45%;
    }
    .menu_column.menu_06 .menu_detail_list li:nth-child(2) {
        width: calc(100% - 45%);
    }
    .menu_column.menu_06 .menu_detail_list li:nth-child(3) {
        width: min(100%, 290px);
        margin: 0 auto;
    }
.menu_detail_img.img_10 {
    width: max(12.8%, 75px);
    left: 10%;
    top: -5%;
}

@media (max-width: 1000px) {
    .menu_title p {
        text-align: center;
    }
.menu_detail_img.img_08 {
    right: auto;
    left: 10%;
    bottom: 5%;
}
.menu_detail_img.img_10 {
    left: 0;
    top: 5%;
}
.menu_column.menu_05 {
    flex-direction: column-reverse;
    align-items: center;
}
.menu_left {
    width: min(100%, 450px);
}
.menu_right {
    width: 100%;
}
    .menu_left .menu_detail {
        background-position: right 2% bottom 20%;
        background-size: 18%;
    }
.menu_detail_img.img_11 {
    width: max(12%, 70px);
    top: 55%;
}
.menu_detail_img.img_09 {
    width: 20%;
    right: 5%;
    top: 12%;
}
}
@media (max-width: 768px) {
.menu_title::before {
    width: 24px;
    height: 24px;
}
    .menu_title > span {
        padding: 0 0 2px;
    }
.menu_column {
    width: 100%;
}
    .menu_detail_list img {
        width: min(100%, 20px);
        margin: 0 10px 0 0;
    }
.menu_detail_img.img_01 {
    right: -1%;
    bottom: auto;
    top: 0%;
}
.menu_detail_img.img_04 {
    right: -5%;
    top: -35%;
}
.menu_detail_img.img_05 {
    top: auto;
    bottom: 5%;
}
.menu_detail_img.img_06 {
    right: auto;
    left: 5%;
}
.menu_detail_img.img_07 {
    top: 25%
}
.menu_detail_img.img_08 {
    left: auto;
    right: 0;
    bottom: 35%
}
.menu_detail_img.img_10 {
    left: auto;
    right: 0;
    top: 10%;
}
.menu_column.menu_01 .menu_detail_list {
    width: min(100%, 300px);
}
    .menu_column.menu_01 .menu_detail_list li:nth-child(2n + 1),
    .menu_column.menu_01 .menu_detail_list li:nth-child(2n) {
        width: 100%;
    }
.menu_column.menu_06 .menu_detail_list {
    width: min(100%, 280px);
}
    .menu_column.menu_06 .menu_detail_list li:nth-child(1),
    .menu_column.menu_06 .menu_detail_list li:nth-child(2),
    .menu_column.menu_06 .menu_detail_list li:nth-child(3) {
        width: 100%;
    }
    .menu_column.menu_01 .menu_detail_list + p {
        width: min(100%, 300px);
    }
.menu_column.menu_05 .menu_title {
    padding: 55px 0 0 0;
}
    .menu_title p {
    }
.menu_detail_img.img_02 {
    left: 6%;
}
.menu_detail_img.img_03 {
    right: 6%;
    top: -8%;
}
}
@media (max-width: 600px) {
.menu_detail_img.img_09 {
    right: 2%;
    top: 11%;
}
.menu_detail_img.img_11 {
    left: auto;
    right: 7%;
    top: 46%;
}
}
@media (max-width: 400px) {
.menu_column.menu_05 .menu_title {
    padding: 45px 0 0 0;
}
    .menu_title p {
        padding: 0;
        font-size: 0.85em;
        text-align: center;
    }
        .menu_title span span {
            display: block;
            width: 100%;
            margin: 0;
            font-size: 0.85em;
            text-align: center;
        }
        .menu_title p:first-child span {
            display: none;
        }
        .menu_title p:nth-child(3) {
            display: block;
            position: relative;
            top: 0;
            margin: 10px 0 0;
        }
.menu_detail_img.img_09 {
    right: 1%;
    top: 9%;
}
.menu_detail_img.img_11 {
    right: 2%;
    top: 56%;
}
}

/* ------------------------------------- /
/  form
/* ------------------------------------- */

.form .inner {
    background-image: url('../img/star_bg_01.svg'), url('../img/star_bg_02.svg');
    background-position: left 10vw, right 8vw;
    background-size: min(11.05vw, 151px) auto, min(21.82vw, 298px) auto;
    background-repeat: repeat-y;
}
.form_wrapper {
    width: min(100%, 800px);
    margin: 0 auto;
}
.form_text {
    font-size: clamp(1.6rem, 3.0vw, 2.0rem);
    background-image: url('../img/form_dot.svg');
    background-position: center bottom;
    background-size: auto 4px;
    background-repeat: repeat-x;
}
    .form_text .fsB {
        font-size: 1.15em;
    }
.contact-form {
    font-size: clamp(1.6rem, 3.0vw, 2.0rem);
}
    .radio_column label .fsS {
        font-size: 0.8em;
    }
.form_title {
    padding: 0 0 10px;
    border-bottom: 1px #fff solid;
    font-size: clamp(1.6rem, 3.0vw, 2.0rem);
}
.form_subbox {
    background-image: url('../img/form_dot.svg');
    background-position: center bottom;
    background-size: auto 4px;
    background-repeat: repeat-x;
}
.form_subbox.hide {
    display: none;
}
#member_text_03.hide {
    display: none;
}




.select_box {
    width: min(100%, 280px);
    background-color: #fff;
    position: relative;
}
.select_box::before {
    content: '';
    display: block;
    width: 16px;
    height: 9px;
    background-image: url('../img/select_arrow.svg');
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
}
    .select_box select {
        display: block;
        width: 100%;
        min-height: 50px;
        background: none;
        border: none;
        font-family: "Zen Maru Gothic", serif;
        font-size: clamp(1.6rem, 3.0vw, 2.0rem);
        color: #000;
        padding: 0 11px;
        box-sizing: border-box;
        appearance: none;
        position: relative;
    }
    .contact-form select_box.input_error,
    .contact-form input[type=text].input_error,
    .contact-form input[type=tel].input_error,
    .contact-form input[type=email].input_error,
    .contact-form input[type=number].input_error,
    .contact-form textarea.input_error,
    .contact-form div.input_error {
        background-color: #fbefef;
        border: 2px #b42518 solid;
    }
    .input_error + label {
        background-color: #fbefef;
    }
    .contact-form .error {
        color: #b42518;
    }
    .contact-form .error.false {
        display: none;
    }
    .contact-form input[type=text],
    .contact-form input[type=tel],
    .contact-form input[type=email],
    .contact-form input[type=number],
    .contact-form textarea {
        background: none;
        border: none;
        appearance: none;
        width: 100%;
        padding: 10px 15px;
        background-color: #fff;
        color: #000;
        font-family: "Zen Maru Gothic", serif;
        font-size: clamp(1.6rem, 3.0vw, 2.0rem);
    }
    .contact-form textarea {
        min-height: 200px;
    }
    .contact-form input::placeholder,
    .contact-form textarea::placeholder {
        color: rgba(5,9,110,0.38);
    }
    
    .contact-form input[type=radio] {
        display: none;
    }
.radio_box {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    column-gap: 40px;
    row-gap: 20px;
}
.radio_column label {
    display: block;
    padding: 0 0 0 36px;
    position: relative;
    cursor: pointer;
}
.radio_column label::before {
    content: '';
    display: block;
    width: 26px;
    height: 26px;
    background-color: #fff;
    border-radius: 50%;
    position: absolute;
    left: 0;
    top: 0;
}
.radio_column:has(input[type=radio]:checked) label::after {
    content: '';
    display: block;
    width: 18px;
    height: 18px;
    background-color: var(--color-blue);
    border-radius: 50%;
    position: absolute;
    left: 4px;
    top: 4px;
}


.button-box {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row-reverse;
    justify-content: center;
    align-items: center;
    column-gap: 8px;
    row-gap: 12px;
}
    .button-box p {
        width: 100%;
        font-size: clamp(1.6rem, 3.0vw, 2.0rem);
    }
    .button-box button {
        display: flex;
        justify-content: center;
        align-items: center;
        width: min(100%, 250px);
        min-height: 60px;
        margin: 0 auto;
        background-color: #fff;
        border: 1px #fff solid;
        color: var(--color-blue);
        font-family: "Zen Maru Gothic", serif;
        font-size: clamp(1.6rem, 3.0vw, 2.0rem);
        transition-duration: 0.2s;
        cursor: pointer;
    }
    .button-box button:hover {
        background-color: transparent;
        color: #fff;
    }
    .button-box button#form-submit::after {
        content: '';
        display: block;
        width: 8px;
        height: 10px;
        margin: 0 0 0 30px;
        background-image: url('../img/arrow_blue.svg');
        background-position: center;
        background-size: contain;
        background-repeat: no-repeat;
        transition-duration: 0.2s;
    }
    .button-box button:hover#form-submit::after {
        background-image: url('../img/arrow_white.svg');
    }
    .button-box button#form-return::before {
        content: '';
        display: block;
        width: 8px;
        height: 10px;
        margin: 0 30px 0 0;
        background-image: url('../img/arrow_blue.svg');
        background-position: center;
        background-size: contain;
        background-repeat: no-repeat;
        transition-duration: 0.2s;
        transform: rotateZ(180deg);
    }
    .button-box button:hover#form-return::before {
        background-image: url('../img/arrow_white.svg');
    }