  /*
 911爆料网 Park – cleaned.css (v1)
 --------------------------------------------------
 目的:
  - 不要/未使用?重複スタイルの削除
  - セクション順で並べ替え（Base → Utilities → Layout → Sections → Components → Footer → Responsive）
  - 極端な z-index の是正
  - 同一定義の統合（modal_* / modal_text / close_btn など）
  - メディアクエリの集約（主要BP: 961px, 768px, 600px, 480px）
 注意:
  - HTMLはそのまま。クラス名のリネームは未実施（_00?_07等は存続）。
  - 削除例: .jpark_top_inner_box_flag, .jpark_section_3_wave, .jpark_section_3_inner ._01/_02, 重複の modal 定義 etc.
 --------------------------------------------------
*/

/* ==================================================
   0) Variables / Base tokens
================================================== */
:root {
    --bg: #F4F8FA;
    --fg: #515F67;
    --brand: #8196A2;
    --brand-dark: #8096A3;
    --muted: #8496A2;
    --radius: 20px;
}

/* ==================================================
   1) Base
================================================== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.jpark {
    padding-top: 95px;
    font-family: 'Noto Sans JP',
        'メイリオ',
        'Hiragino Sans',
        'ヒラギノ角ゴシック',
        'Hiragino Kaku Gothic Pro',
        'ヒラギノ角ゴ Pro W3',
        'ＭＳ Ｐゴシック',
        Osaka,
        Verdana,
        sans-serif;
    background: var(--bg);
    font-weight: 400;
    letter-spacing: 0.22em;
    overflow-x: hidden;
    position: relative;
    word-break: break-word;
}

.jpark.jpark_en {
    letter-spacing: 0.04em;
}

.jpark_text {
    font-size: 1.2vw;
    letter-spacing: .22em;
    line-height: 2;
    color: var(--fg);
}

.jpark_en .jpark_text {
    letter-spacing: 0.04em !important;
    word-break: break-word;
}

.jpark_text.jpark_accsess {
    margin: 30px auto;
}

.jpark_font_bold {
    font-weight: 700;
}

.jpark_top_text {
    line-height: 2.5;
    font-size: 1.35vw;
    letter-spacing: .22em !important;
}

/* open中にスクロールを止める */
body.no-scroll {
    overflow: hidden;
    height: 100%;
}

/* ==================================================
   2) Utilities (visibility)
================================================== */
.jpark_md_on,
.jpark_sp_on,
.jpark_sm_on,
.jpark_en_on {
    display: none !important;
}

@media (max-width: 961px) {

    .jpark_md_on,
    .jpark_en_on {
        display: block !important;
    }

    .jpark_md_off {
        display: none !important;
    }
}

@media (max-width: 768px) {
    .jpark_en_on {
        display: none !important;
    }
}

@media (max-width: 480px) {
    .jpark_sp_on {
        display: block !important;
    }

    .jpark_sp_off {
        display: none !important;
    }
}

@media (max-width: 380px) {
    .jpark_sm_on {
        display: block !important;
    }
}

/* ==================================================
   3) Header / Navigation
================================================== */
.jpark_header {
    height: 90px;
    display: flex;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 30;
    width: 100%;
    background: rgba(248, 249, 250, .85);
    transform: translateY(0);
    transition: transform .4s ease;
}

.jpark_header_wrap {
    width: 90%;
    margin: 0 auto;
}

.jpark_header_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.jpark_header_logo {
    width: 150px;
}

.jpark_nav_links {
    display: flex;
    gap: 2.3rem;
    align-items: center;
    padding: 0;
    letter-spacing: 0.05em;
}

.jpark_en .jpark_nav_links {
    letter-spacing: 0.04em;
}

.ground_nav._01 {
    margin-right: -15px;
}
.jpark_nav_links a {
    display: flex;
    align-items: center;
    font-weight: 500;
    font-size: clamp(13px, 1vw, 16px);
    line-height: 1.4;
    transition: color .3s;
}

.jpark_en .jpark_nav_links a {
    font-size: clamp(11px, 1vw, 16px);
}

.jpark_en .jpark_header .only_pc .header_nav_lang a {
    font-size: clamp(13px, 1vw, 18px);
}

.jpark_header .jpark_link {
    display: inline-block;
    margin: 0;
    padding: .6em 1.6em !important;
    width: fit-content;
    text-align: center;
    background: var(--brand) !important;
    color: #fff;
    text-decoration: none;
    border-radius: 999px;
    white-space: normal;
}

.jpark_has_memu_border {
    border: 0 !important;
    text-align: center;
    margin: 50px auto;
}

.jpark_has_memu_border a {
    padding: 0 !important;
}

.jpark_header_nav_lang_sp {
    display: flex !important;
    justify-content: center;
    width: 247px;
    margin: 0 auto;
    gap: 20px !important;
}

.header_nav_lang a img {
    width: 30%;
    margin: 0 2px 0 0;
}

.jpark_header.is-up {
    background-color: transparent;
}

.jpark_header.is-down {
    transform: translateY(0);
}

/* SP drawer */
@media (max-width:1300px) {
    .jpark_header.is-up {
        transform: translateY(-80px);
    }

    .jpark_header_inner.open .header_sp {
        left: 0;
    }

    .header_sp {
        width: 100%;
        height: 100vh;
        position: fixed;
        top: 90px;
        left: 100%;
        padding: 53px 20px 80px;
        background: #FAFAFA;
        overflow-y: auto;
        transition: all .3s;
        z-index: 50;
    }

    .only_sp {
        display: block;
    }

    .header_nav {
        display: none;
    }

    .header_sp_menu {
        display: block;
        width: 30px;
        height: 30px;
        background: url(/static/files/pr_yokosuka/assets/img/ico_menu_open.svg) no-repeat center;
        position: absolute;
        top: 25px;
        right: 25px;
        cursor: pointer;
    }

    .header_sp_list {
        width: 90%;
        margin: 0 auto;
        max-width: 1200px;
    }

    .header_sp_list .has_memu>a {
        background: none;
    }

    .header_sp_list .has_memu {
        position: relative;
    }

    .header_sp_list>li {
        width: 100%;
        border-bottom: 1px solid #D5E3EB;
    }

    .header_sp_list .has_memu>a {
        background: none;
    }

    .header_sp_list>li>a {
        padding: 20px 40px 20px 20px;
        display: block;
    }
}

@media (min-width:961px) {
    .jpark_header.is-up {
        transform: translateY(-110px);
    }
}

@media (max-width:660px) {
    .header_nav_lang a img {
        width: 15%;
    }

    .jpark_header_nav_lang_sp {
        gap: 10px !important;
    }
}

@media (max-width:510px) {
    .header_nav_lang a img {
        width: 10%;
    }

    .header_sp_list>li>a {
        font-size: 16px !important;
    }

    .jpark_header .jpark_link {
        width: 100%;
    }

    .header_sp {
        padding: 10px 20px 80px;
    }

    .jpark_has_memu_border {
        margin: 25px auto;
    }
}

/* ==================================================
   4) Top hero / Parallax
================================================== */
.jpark_top_section {
    left: 3.4722vw;
    right: 3.4722vw;
    bottom: 3.4722vw;
    height: calc(85vh - 3.4722vw);
    margin-bottom: 10vh;
}

.jpark_parallax_wrapper {
    width: 90vw;
    height: 103%;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
}

.jpark_scroll_container {
    width: 100%;
    height: 100%;
    overflow-y: auto;
    position: relative;
    scrollbar-width: none;
    -ms-overflow-style: none;
    clip-path: inset(0 0 round 1.3889vw);
    -webkit-overflow-scrolling: touch;
}

.jpark_scroll_container::-webkit-scrollbar {
    display: none;
}

.jpark_scroll_image {
    width: 100%;
    height: 160%;
    max-height: 1450px;
    display: block;
    object-fit: cover;
}

.jpark_scroll_image.jpark_top_1400,
.jpark_scroll_image.jpark_top_sp {
    display: none;
}

@media (min-width:1400px) {
    .jpark_scroll_image.jpark_top_1400 {
        display: block;
        transform: scale(1.2);
    }

    .jpark_scroll_image.jpark_top_main {
        display: none;
    }
}

@media (max-width:600px) {
    .jpark_scroll_image.jpark_top_main {
        display: none;
    }

    .jpark_scroll_image.jpark_top_sp {
        display: block;
        transform: scale(1.5);
    }
}

@media (max-width:1400px) {
    .jpark_scroll_image {
        max-height: none;
        height: 160%;
    }
}

@media (max-width:768px) {
    .jpark_scroll_image {
        height: 150%;
    }
}

@media (max-width:480px) {
    .jpark_scroll_image {
        height: 120%;
    }

    .jpark_scroll_container {
        height: 98%;
        clip-path: inset(0 0 round 3.3889vw);
    }
}

@media (max-width:480px) {
    .jpark_scroll_container {
        height: 99%;
    }
}

.jpark_top_inner_box {
    width: 100%;
    text-align: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -44%);
    color: #fff;
    z-index: 2;
    pointer-events: none;
}

.jpark_top_inner_box_logo {
    width: 40%;
    max-width: 800px;
    margin: 0 auto;
}

.jpark_top_inner_box figure img {
    width: 100%;
}

.jpark_top_inner_box p {
    margin: 20px 0 35px;
    font-size: 50px;
    letter-spacing: .2em;
    font-weight: 400;
}

/* scroll cue */
.p-top-hero__scroll {
    position: absolute;
    bottom: 0;
    left: 49.5%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    color: #fff;
}

.p-top-hero__scroll p {
    margin-bottom: 0 !important;
    letter-spacing: 0.05em;
    font-size: 16px;
}

.p-top-hero__line {
    width: 1px;
    background-color: rgba(255, 255, 255, .7);
    height: 50px;
    bottom: -5px;
    position: relative;
}

.p-top-hero__dot {
    position: absolute;
}

.p-top-hero__dot::before {
    content: "";
    position: absolute;
    top: 0;
    left: 3px;
    border-radius: 50%;
    animation: dot_opacity 3s cubic-bezier(.165, .84, .44, 1) infinite;
    background-color: #fff;
}

.p-top-hero__dot::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    animation: dot_scale 3s cubic-bezier(.165, .84, .44, 1) infinite;
    background: radial-gradient(circle, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .4) 100%);
}

.jpark_en .p-top-hero__dot::before {
    left: 3px;
}

.jpark_en .p-top-hero__dot::after {
    left: -4px;
}

@keyframes dot_scroll_lg {

    0%,
    10% {
        transform: translateY(0);
    }

    95%,
    100% {
        transform: translateY(40px);
    }
}

@keyframes dot_scroll_sm {

    0%,
    10% {
        transform: translateY(0);
    }

    95%,
    100% {
        transform: translateY(40px);
    }
}

@keyframes dot_scroll_sp_modal {

    0%,
    10% {
        transform: translateY(0);
    }

    95%,
    100% {
        transform: translateY(25px);
    }
}

@media (max-width:1670px) {
    .p-top-hero__scroll {
        left: 49%;
    }
}

@media (max-width:1200px) {
    .p-top-hero__scroll {
        left: 48.5%;
    }
}

@media (max-width:961px) {
    .p-top-hero__scroll {
        left: 47.5%;
    }
    .p-top-hero__dot {
        top: 33px;
        left: 15px;
        animation: dot_scroll_sm 3s cubic-bezier(.165, .84, .44, 1) infinite;
    }

    .p-top-hero__dot::before {
        width: 9px;
        height: 9px;
    }

    .p-top-hero__dot::after {
        top: -6px;
        left: -3px;
        width: 21px;
        height: 21px;
    }

    .p-top-hero__dot::before {
        left: 4px;
    }

    .jpark_top_inner_box_logo {
        width: 64%;
    }
}

@media (max-width:480px) {
    .p-top-hero__scroll {
        left: 44.5%;
    }

    .p-top-hero__line {
        height: 59px;
        bottom: -9px;
    }

    .p-top-hero__dot::before {
        left: 3px;
    }

}

@media (min-width:961px) {
    .p-top-hero__dot {
        top: 30px;
        left: 14px;
        animation: dot_scroll_lg 3s cubic-bezier(.165, .84, .44, 1) infinite;
    }

    .p-top-hero__dot::before {
        width: 11px;
        height: 11px;
    }

    .p-top-hero__dot::after {
        top: -7px;
        left: -4px;
        width: 25px;
        height: 25px;
    }
}

/* ==================================================
   5) About section
================================================== */
.jpark_about_section {
    position: relative;
}

.wrapper2 {
    max-width: 1400px;
    width: 90%;
    display: flex;
    justify-content: space-between;
    margin: 0 auto 10vh;
}

.left-side {
    width: 29%;
}

.jpark_en .left-side {
    width: 27%;
}

.left-text {
    font-size: clamp(40px, 4vw, 60px);
    letter-spacing: .05em;
    line-height: 1.3;
    color: var(--fg);
    font-weight: 500;
    font-family: "mundial", sans-serif;
}

.right-side {
    width: 60%;
}

.jpark_en .right-side {
    width: 64%;
}

.right-text {
    font-size: 3vw;
    letter-spacing: .05em;
    line-height: 1.2;
    color: var(--fg);
}

.jpark_title {
    font-size: clamp(1.5rem, 3vw, 4.5rem);
    line-height: 1.8;
    color: var(--fg);
    margin-bottom: clamp(40px, 6vw, 100px);
    font-weight: 500;
    letter-spacing: .05em;
}

.jpark_en .jpark_title {
    font-size: clamp(1.5rem, 3vw, 4.2rem);
    line-height: 1.8;
    color: var(--fg);
    margin-bottom: clamp(40px, 6vw, 100px);
    font-weight: 500;
}

@media (max-width:1480px) {
    .jpark_title {
        font-size: clamp(1.5rem, 3vw, 4.2rem);
    }

    .right-side {
        width: 63%;
    }

    .jpark_en .right-side {
        width: 67%;
    }
}

@media (max-width:1223px) {
    .jpark_title {
        font-size: clamp(1.5rem, 3vw, 4rem);
        margin-bottom: clamp(40px, 4vw, 100px);
    }

    .right-side {
        width: 65%;
    }
}

/* logo ticker */
.p-top-about__slide {
    overflow: hidden;
    width: 100%;
}

.p-top-about__slide-track {
    display: flex;
    width: max-content;
    animation: ticker-scroll 60s linear infinite;
}

.p-top-about__slide-track img {
    margin-right: 30px;
    height: 100%;
    width: 800px;
    object-fit: contain;
}

@keyframes ticker-scroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}


@media (max-width:1220px) {
    .right-side {
        width: 61%;
    }
}

/* ==================================================
   6) Section 3 – Facility / Map
================================================== */
.jpark_section_3 {
    position: relative;
    margin: 100px calc(50% - 50vw) 0;
}

.jpark_custom_scroll_wrapper {
    background: var(--bg);
}

.jpark_section_3_inner_content {
    max-width: 1300px;
    width: 90%;
    margin: 0 auto;
    padding: 0;
}

.jpark_section_3_inner {
    position: relative;
    background: #E4ECF0;
    margin: 0 auto;
    overflow: hidden;
}

.jpark_section_3_inner ._01 {
    margin: 0 auto;
}

.jpark_section_3_inner ._02 {
    margin: 0 auto;
}

.jpark_section_title {
    font-family: "mundial", sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 60px;
    padding-left: 40px;
    position: relative;
    letter-spacing: .08em;
    color: var(--fg);
}

.jpark_section_title:before {
    content: "";
    display: block;
    width: 15px;
    height: 48px;
    background: url(/static/files/pr_yokosuka/assets/img/img-ttl.svg) no-repeat top left;
    position: absolute;
    top: 30px;
    left: 0;
}

.jpark_section_sub_title {
    font-size: 18px;
    padding-left: 42px;
    margin: -10px 0 0;
    font-weight: 300;
    color: var(--fg);
}

.jpark_underline {
    text-decoration: underline 1px #aaaaaa;
    font-size: 1.2vw !important;
}

.jpark_undertext {
    font-size: 1.2vw !important;
}

.jpark_interactive-map-container {
    position: relative;
    width: 100%;
    margin: 50px auto 110px;
}

.jpark_interactive-map-container img {
    width: 100%;
    height: auto;
    display: block;
}

.jpark_map-icon {
    position: absolute;
    width: 150px;
    height: 150px;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10;
}

.jpark_map-icon img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: contain;
    transition: opacity 0.3s ease;
}

.jpark_map-icon .hover-image {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
}

.jpark_map-icon:hover .hover-image {
    opacity: 1;
}

.jpark_map-icon:hover .default-image {
    opacity: 0;
}

/* --- モバイル：hover を無効化して hover-image 非表示 --- */
@media (hover: none) and (pointer: coarse) {
    .jpark_map-icon .hover-image {
        display: none !important;
    }

    .jpark_map-icon .default-image {
        opacity: 1 !important;
    }
}

/* アイコンの配置位置 */
.jpark_oka-icon {
    bottom: 10%;
    right: 4%;
    animation: jpark_pulse 2.5s infinite;
    border-radius: 50%;
}

.jpark_yokosukakaryoku-icon {
    position: absolute;
    top: 12%;
    right: 30%;
    border-radius: 50%;
    width: 150px;
    height: 150px;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10;
}

.jpark_yokosukakaryoku-icon img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: contain;
    transition: opacity 0.3s ease;
}

.jpark_hiroba-icon {
    bottom: 39%;
    left: 29%;
    animation: jpark_pulse 2.5s infinite;
    border-radius: 50%;
}

.jpark_ground-icon {
    top: 12%;
    left: 16%;
    animation: jpark_pulse 2.5s infinite;
    border-radius: 50%;
}

/* ホバー時のエフェクト */
.jpark_map-icon:hover {
    z-index: 20;
    animation: unset;
}

.jpark_map-icon:hover::after {
    opacity: 1;
}

/* アニメーション効果 */
@keyframes jpark_pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);
    }

    70% {
        box-shadow: 0 0 0 30px rgba(255, 255, 255, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    }
}

.jpark_flex {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin: 80px auto 0;
}

.jpark_flex_left {
    margin: 0 auto;
    width: 50%;
    position: relative;
}

.jpark_flex_left._02 {
    width: 47%;
}

.jpark_flex_right {
    width: 45%;
    position: relative;
}

.jpark_ground_map {
    margin: 50px auto;
    ;
}

.jpark_flex_image {
    position: relative;
}

.jpark_flex_image img {
    border-radius: 20px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.jpark_flex_right._02 {
    width: 47%;
}

.jpark_flex_logo {
    width: 300px;
    margin: 0 auto 40px;
}

.jpark_text_margin {
    margin: 10px;
}

.jpark_flex_subimg {
    width: 230px;
    margin: 0 0 0 auto;
}

.jpark_box_right {
    margin: 80px -6% 150px 0;
}

.jpark_box_left {
    margin: 80px 0 80px -6%;
}

.jpark_flex.ml {
    gap: 40px;
}

/* ==================================================
   7) Two-row image slider
================================================== */
.p-top-park__tour {
    margin-top: 100px;
    margin-bottom: 60px;
    padding: 40px 0;
    overflow: hidden;
    width: 100vw;
    margin-left: calc(50% - 50vw);
}

.p-top-park__slide,
.p-top-park__slide--bottom {
    overflow: hidden;
    margin-bottom: 40px;
    white-space: nowrap;
}

.p-top-park__slide-wrapper {
    display: inline-flex;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

.p-top-park__slide .p-top-park__slide-wrapper {
    animation-name: slideLeft;
    animation-duration: 80s;
}

.p-top-park__slide--bottom .p-top-park__slide-wrapper {
    animation-name: slideRight;
    animation-duration: 80s;
}

.p-top-park__slide-item {
    flex-shrink: 0;
    width: 280px;
    height: 200px;
    margin-right: 60px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0, 0, 0, .1);
}

.p-top-park__slide-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@keyframes slideLeft {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

@keyframes slideRight {
    from {
        transform: translateX(-50%);
    }

    to {
        transform: translateX(0);
    }
}

/* ==================================================
   8) Course / Info columns
================================================== */

.course-upper-side {
    display: flex;
    padding: 2vh 0;
    margin-bottom: 40px;
    gap: 20px;
    justify-content: space-between;
}

.course-upper-side-left {
    width: 45%;
}

.course-upper-side-right {
    width: 55%;
}

.course-left-side,
.course-right-side {
    flex: 1 1 48%;
    background-color: var(--bg);
    display: flex;
    flex-direction: column;
    padding: 2vh 0;
    gap: 3vh;
}

.course-left-title {
    font-weight: 400;
    font-size: 30px;
    padding-left: 30px;
    margin-bottom: 25px;
    position: relative;
    letter-spacing: .08em;
    color: var(--fg);
}

.jpark_en .course-left-title {
    font-size: 25px;
}

.course-left-title::before {
    content: "";
    display: block;
    width: 15px;
    height: 36px;
    background: url(/static/files/pr_yokosuka/assets/img/img-ttl.svg) no-repeat top left;
    position: absolute;
    top: 6px;
    left: 0;
}

/* ==================================================
   9) Info tables / Ground info
================================================== */
.jpark_custom_scroll_wrapper_inner {
    max-width: 1400px;
    width: 90%;
    margin: 0 auto;
}

.jpark_section_3-1 {
    margin: 100px auto;
}

.jpark_section_3-1_inner {
    margin: 0 auto 80px;
}

.jpark_section_ground_title {
    color: var(--fg);
    border-bottom: 1px solid var(--fg);
    width: 100%;
    padding: 10px 5px;
    font-weight: 500;
    font-size: 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.jpark_section_3-1_inner_content {
    margin: 50px 0 30px 22px;
}

.jpark_table_section {
    width: 100%;
    border-collapse: collapse;
    font-size: 1.2vw;
    line-height: 1.9;
    color: var(--fg);
    border-spacing: 0;
}

.jpark_table_section th {
    background-color: var(--brand-dark);
    color: #fff;
    text-align: center;
    font-weight: 400;
}

.jpark_table_center tr {
    text-align: center;
}

.jpark_table_border_l0 {
    border-left: 0 !important;
}

.jpark_table_section_title_tr {
    border-top: 1.8px solid var(--brand);
}

.jpark_table_section td {
    padding: 25px 15px;
}

.jpark_table_section_title {
    position: relative;
    width: 170px;
    background-color: #fff;
    font-weight: 400;
}

.jpark_en .jpark_table_section_title {
    width: 235px;
}

.ground_info_title {
    border-bottom: 1px solid var(--brand);
    border-right: 0 !important;
}

.jpark_info_table {
    border-collapse: collapse;
    width: 100%;
}

.jpark_info_table th {
    border-right: 1px solid #fff;
    padding: 8px;
    vertical-align: middle;
}

.jpark_info_table th:last-child {
    border-right: 0;
}

.jpark_info_table td {
    padding: 8px;
    vertical-align: middle;
    border-bottom: 1px solid var(--brand);
    border-right: 1px solid var(--brand);
}

.jpark_table_bottom_0 {
    border-bottom: 0 !important;
}

.jpark_table_bottom_w {
    border-bottom: 1px solid #fff !important;
}

.jpark_table_right_0 {
    border-right: 0 !important;
}

.jpark_table_small {
    font-size: 1vw;
}

.ground_info_title_rightbar {
    position: relative;
}

.ground_info_title_rightbar:before {
    content: "";
    height: 100%;
    width: 13px;
    background: var(--bg);
    position: absolute;
    right: -13px;
    top: 0;
}

.jpark_ground_link {
    color: var(--brand);
    padding: 0.5rem 2rem;
    border: 1px solid var(--brand);
    border-radius: 20px;
    font-size: 1.2vw;
    font-weight: 300;
}

.jpark_ground_link span {
    display: inline-block;
    background: url(/static/files/pr_yokosuka/assets/img/arrow-down.svg) no-repeat center right;
    padding-right: 25px;
    width: 15px;
    height: 15px;
    margin-left: 15px;
    position: relative;
    top: 1px;
}

.jpark_en_table_facility {
    width: 195px;
}

.jpark_facility_time {
    text-align: center;
}

.jpark_facility_name {
    padding-left: 15px !important;
}

.jpark_ground_info {
    margin: 0 auto 80px;
}

.jpark_ground_info .jpark_table_section {
    margin: 0 0 50px;
}

.jpark_table_section.jpark_soccer {
    margin: 20px 0 0;
}

.ground_info_subtitle {
    width: 210px;
    border-bottom: 1px solid var(--brand);
}

.ground_info_detail {
    border-bottom: 1px solid var(--brand);
}

.jpark_table_top_p5 {
    padding-top: 5px !important;
}

.jpark_table_bottom_p5 {
    padding-bottom: 5px !important;
}

.ground_info_list {
    margin-top: 50px;
}

.jpark_usage_table {
    width: 100%;
}

.jpark_usage_table.jpark_tennis th {
    padding: 16px 10px;
}

.coat_title {
    font-weight: 400;
    ;
}

.jpark_usage_table td,
.jpark_usage_table th {
    vertical-align: middle;
    text-align: center;
    border: 1px solid #fff;
}

.jpark_time_slot {
    background-color: var(--brand-dark);
    color: #fff;
}

.jpark_table_under {
    text-align: end;
    font-size: 1vw;
    margin: 15px 0 0 0;
}

.jpark_notice_box {
    font-size: 1.2vw;
    padding: 4rem;
    color: var(--fg);
    border: 2px solid var(--brand);
    border-radius: 10px;
    margin: 30px auto;
    line-height: 2;
    background: #fff;
}

.jpark_notice_box_title {
    text-align: center;
    font-weight: 500;
    line-height: 1.5;
    margin: 0 0 5px 0;
    word-break: break-word;
}

.jpark_notice_box_undertitle {
    text-align: center;
    font-size: 1vw;
    margin: 0 0 20px 0 !important;
    word-break: break-word;
}

.jpark_notice_box_ink_btn {
    text-align: center;
    margin: 0 auto;
    display: inherit;
    line-height: 1.5;
    font-size: 1vw;
    font-weight: 400;
    background: var(--brand);
    padding: 1.5rem 2rem;
    color: #fff;
    width: 50%;
    max-width: 770px;
    border-radius: 50px;
    position: relative;
}

.jpark_notice_box_text {
    text-align: center;
    word-break: break-all;
}

.jpark_notice_box_ink_btn::before {
    content: "";
    display: inline-block;
    background: url(/static/files/pr_yokosuka/assets/img/arrow-down-w.svg) no-repeat center right;
    width: 20px;
    height: 20px;
    position: absolute;
    top: 40%;
    right: 5%;
    transform: rotate(270deg);
}

.jpark_en .jpark_notice_box_ink_btn::before {
    right: 3%;
}

.jpark_notice_box_subtitle {
    margin: 50px 0 20px 0;
    text-align: center;
    border-bottom: 1px solid var(--brand);
    font-weight: 500;
}

.jpark_notice_box_sublist_title {
    margin: 0 0 0 -17px !important;
    font-weight: 500;
}

.jpark_en .jpark_notice_box_sublist_title {
    margin: 0 !important;
}

.jpark_notice_box_sublist_title.last {
    margin: 0 0 0 0 !important;
}

.jpark_notice_box_sublist {
    padding-left: 50px;
    line-height: 1.5;
    margin-bottom: 20px;
    list-style: none;
}

.jpark_notice_box_sublist_last {
    margin-bottom: 0;
}

.jpark_table_section_ul {
    padding-left: 15px;
    line-height: 1.5;
    margin-bottom: 20px;
    list-style: none;
}

.jpark_notice_box_sublist li,
.jpark_table_section_ul li {
    position: relative;
    margin-bottom: 5px;
}

.jpark_notice_box_sublist li::before,
.jpark_table_section_ul li:before {
    content: "?";
    position: absolute;
    top: 0;
    left: -20px;
}

.link_blank a {
    display: inline-block;
    background: url(/static/files/pr_yokosuka/assets/img/ico-link.svg) no-repeat center right;
    padding-right: 25px;
    margin-bottom: 5px;
}

.jpark_underline_blue {
    color: #0070CC;
    text-decoration: underline 1px #0070CC;
}

.jpark_number_list {
    padding-left: 1.5em;
    margin: 0;
}

.jpark_number_list ul {
    list-style-type: "?";
    padding-left: 1.5em;
}

.jpark_number_list>li {
    margin-bottom: .5em;
}

/* ==================================================
   10) Access section
================================================== */
.jpark_section_4 {
    position: relative;
    margin: 0 calc(50% - 50vw) 0;
}

.jpark_section_4_inner {
    max-width: 1400px;
    width: 90%;
    margin: 0 auto 200px;
}

.jpark_section_4_inner .jpark_flex {
    display: flex;
    justify-content: center;
    gap: 50px;
    margin: 0 auto;
}

.jpark_section_4_inner .jpark_flex_left {
    margin: 0 auto;
    width: 45%;
    position: relative;
}

.jpark_section_4_inner .jpark_flex_right {
    width: 50%;
    position: relative;
    margin-top: -30px;
}

.jpark_section_4_inner .jpark_flex_image {
    position: relative;
    width: 95%;
    margin: 0 auto;
}

.jpark_section_4_inner .jpark_flex_image img {
    border-radius: var(--radius);
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.jpark_flex_logo {
    width: 80%;
    max-width: 380px;
    margin: 0 auto 40px;
}

.jpark_flex iframe {
    border-radius: var(--radius);
}

.jpark_contact_link {
    display: inline-block;
    margin: 10px auto;
    width: 100%;
    padding: 15px 30px;
    text-align: left;
    background: var(--brand);
    text-decoration: none;
    color: #fff;
    border-radius: 50px;
    font-size: 1vw;
    font-weight: 400;
    position: relative;
}

.jpark_contact_link::after {
    content: "";
    position: absolute;
    top: 50%;
    background: url(/static/files/pr_yokosuka/assets/img/ico-white-arrow.svg) no-repeat center/contain;
    transform: translateY(-50%);
}

@media (min-width:961px) {
    .jpark_contact_link::after {
        right: 1.1806vw;
        width: 1.1806vw;
        height: 1.1806vw;
    }
}

.jpark_section_4_top_image {
    margin: 0 calc(50% - 50vw);
}

.jpark_section_4_under_image_box {
    position: relative;
    margin: 0 calc(50% - 50vw);
    width: 100vw;
}

.jpark_section_4_under_image {
    position: relative;
    z-index: 2;
}

.jpark_section_4_under_image img {
    width: 100%;
}

/* ==================================================
   11) Footer
================================================== */
.jpark_footer {
    background: #EBEEF0;
    padding: 20px 40px;
    margin: 0 calc(50% - 50vw);
    width: 100vw;
}

.jpark_footer_inner {
    max-width: 1400px;
    margin: 50px auto 0;
}

.jpark_footer_nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.jpark_footer_nav ul {
    display: flex;
    gap: 20px;
    font-weight: 600;
}

.jpark_footer_nav ul li {
    margin: 0 20px 0 0;
}

.jpark_sns_nav {
    display: flex;
    align-items: center;
}

.jpark_sns_nav a {
    width: 40px;
    margin: 0 10px;
}

.jpark_footer_detail {
    width: 100%;
    margin: 80px 0;
}

.jpark_footer_detail p {
    margin-bottom: 5px;
    line-height: 2;
    letter-spacing: .1em;
    font-size: 1.1111vw;
}

.jpark_footer_logo {
    width: 250px;
    margin-bottom: 50px;
}

.jpark_footer_arrow {
    position: relative;
    display: inline-block;
    width: 20px;
    height: 1px;
    margin-left: 10px;
    border-radius: 9999px;
    background-color: var(--fg);
}

.jpark_footer_arrow::before {
    content: "";
    position: absolute;
    top: calc(50% - 2px);
    right: 0;
    width: 7px;
    height: 1px;
    border-radius: 9999px;
    background-color: var(--fg);
    transform: rotate(45deg);
    transform-origin: calc(100% - 2px) 50%;
}

.jpark_under_nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 50px 0 30px;
    border-top: 1px solid var(--fg);
}

.jpark_under_nav ul {
    display: flex;
    gap: 30px;
}

@media (max-width:1411px) {
    .jpark_under_nav {
        flex-direction: column;
    }

    .jpark_footer_nav {
        margin: 30px 0 0 0;
    }
}

@media (max-width:1010px) {
    .jpark_under_nav {
        font-size: 2.544529262086514vw;
        flex-direction: column;
    }

    .jpark_under_nav ul {
        flex-wrap: wrap;
        margin: 0 0 50px;
        justify-content: center;
    }
}

/* ==================================================
   12) Character animation (kept, simplified only where safe)
================================================== */
/* ───────────────────────────────────
   1. キャラクターコンテナ
─────────────────────────────────── */
.jpark_character_container {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    margin: 0 auto;
    z-index: 2;
}

.jpark_character_container._map {
    position: absolute;
    top: 35px;
    left: 0;
    width: 100%;
    height: 100%;
}

.jpark_character_container._cycle {
    position: absolute;
    top: -30px;
    right: -195px;
}

.jpark_character_container._00 {
    position: absolute;
    bottom: -40px;
    right: 0;
}

.jpark_character_container._01 {
    position: absolute;
    bottom: -50px;
    right: -30px;
}

.jpark_character_container._02 {
    position: absolute;
    bottom: -15px;
    right: -28px;
    left: auto;
}

.jpark_character_container._03 {
    position: absolute;
    bottom: -32px;
    left: -70px;
}

.jpark_character_container._04 {
    position: absolute;
    bottom: -80px;
    left: auto;
    right: -22px;
}

.jpark_character_container._05 {
    position: absolute;
    bottom: 60px;
    right: 40px;
    z-index: 1;
}

/* ───────────────────────────────────
   2. ラッパー：overflow: visible でバウンドはみ出しを許可
─────────────────────────────────── */
.jpark_character_wrapper {
    position: relative;
    width: 130px;
    height: 130px;
    overflow: visible;
}

.jpark_character_wrapper._map {
    width: 100%;
    height: 100%;
}

.jpark_character_wrapper._00 {
    width: 140px;
    margin: 0 0 0 auto;
}

.jpark_character_wrapper._00 .jpark_character img {
    width: 110%;
    height: 110%;
}

.jpark_character_wrapper._01 {
    width: 300px;
    height: 160px;
}

.jpark_character_wrapper._02,
.jpark_character_wrapper._03 {
    width: 190px;
    height: 190px;
}

.jpark_character_wrapper._cycle {
    width: 170px;
    height: 170px;
}

.jpark_character_wrapper._04 {
    width: 230px;
}

/* ───────────────────────────────────
   3. 画像本体：初期は画面下（隠す）、フェードインしつつ
      最終的に 2.5 回バウンドして元の位置に落ち着く
─────────────────────────────────── */
.jpark_character {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) translateY(100%);
    width: 100%;
    height: 100%;
    opacity: 0;
    animation: jpark_slideUpMultiBounce 1s ease-out 0.3s forwards;
}

.jpark_character img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* アニメーション一時停止クラス（スクロール検知前） */
.jpark_character.jpark_paused {
    animation-play-state: paused;
}

/* ───────────────────────────────────
   4. キーフレーム定義：
     0%   : 下に隠れ?透明
     40%  : 通常位置?不透明（最初のニョキッ）
     55%  : 1st バウンスの頂点 (-20px)
     65%  : 1st バウンスの着地（0px）
     75%  : 2nd バウンスの頂点 (-10px)
     85%  : 2nd バウンスの着地（0px）
     92%  : 3rd バウンスの頂点（-5px）※これが「0.5 回目」のピーク
     100% : 元の位置（0px）に落ち着く
─────────────────────────────────── */
@keyframes jpark_slideUpMultiBounce {
    0% {
        transform: translateX(-50%) translateY(20%);
        opacity: 0;
    }

    15% {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }

    35% {
        transform: translateX(-50%) translateY(-20px);
        opacity: 1;
    }

    45% {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }

    55% {
        transform: translateX(-50%) translateY(-10px);
        opacity: 1;
    }

    75% {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }

    100% {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }
}

/* ───────────────────────────────────
   5. ホバーエフェクト（アニメーション未実行の場合のみ）
─────────────────────────────────── */
.jpark_character_wrapper:hover .jpark_character.jpark_paused {
    animation-play-state: running;
}

/* ───────────────────────────────────
   6. スクロール連動アニメーション用のObserver対象マーカー
─────────────────────────────────── */
.jpark_scroll_trigger {
    /* 観測用の要素。視覚的には見えないが、Intersection Observerの対象となる */
    position: relative;
}

/* ───────────────────────────────────
   7. レスポンシブ対応
─────────────────────────────────── */
@media screen and (min-width: 1600px) {
    .jpark_character_container._05 {
        bottom: 80px;
    }
}

@media screen and (max-width: 1500px) {
    .jpark_character_container._04 {
        bottom: -120px;
        right: 20px;
    }

    .jpark_character_container._03 {
        bottom: -100px;
    }
}

@media screen and (max-width: 1200px) {
    .jpark_character_container._05 {
        bottom: 40px;
    }

    .jpark_character_container._00 {
        bottom: -75px;
    }

    .jpark_character_container._01 {
        bottom: -95px;
    }

    .jpark_character_wrapper._01 {
        width: 260px;
    }

    .jpark_character_wrapper._02 {
        width: 160px;
        height: 160px;
    }
}

@media screen and (max-width: 1050px) {
    .jpark_character_container._00 {
        bottom: -95px;
    }

    .jpark_character_container._01 {
        bottom: -118px;
        right: -9px;
    }
}

@media screen and (max-width: 960px) {
    .jpark_character_container._map {
        top: 5%;
        left: -3%;
        width: 100%;
        height: 100%;
    }

    .jpark_character {
        left: 54%;
    }

    .jpark_character_container._cycle {
        top: auto;
        right: 0%;
        bottom: -180px;
    }

    .jpark_character_container._05 {
        bottom: 26px;
    }

    .jpark_character_container._01 {
        bottom: -57px;
        right: -20px;
    }

    .jpark_map-icon {
        width: 130px;
        height: 130px;
    }
}

@media screen and (max-width: 768px) {
    .jpark_map-icon {
        width: 110px;
        height: 110px;
    }

    .jpark_character_container._map {
        top: 0%;
    }

    .jpark_character_container._05 {
        bottom: 5px;
    }

    .jpark_character_wrapper {
        width: 150px;
        height: 150px;
    }

    .jpark_character_container {
        margin: 30px 0 0;
    }

    .jpark_flex_right._02 {
        margin: 80px auto 0;
    }


    .jpark_character_wrapper {
        scale: 1;
    }

    .jpark_character_container._cycle {
        bottom: -170px;
        right: -3%;
    }

    .jpark_character_container._04 {
        bottom: -95px;
    }

    .jpark_character_container._03 {
        bottom: -64px;
    }

    .jpark_character_container._01 {
        bottom: -40px;
    }

    .jpark_section_4_top_image {
        margin-top: 50px;
    }

}

@media screen and (max-width: 650px) {
    .jpark_map-icon {
        width: 100px;
        height: 100px;
    }
}

@media screen and (max-width: 550px) {
    .jpark_map-icon {
        width: 90px;
        height: 90px;
    }

    .jpark_yokosukakaryoku-icon {
        width: 90px;
        height: 90px;
    }
}

@media screen and (max-width: 500px) {
    .jpark_character_container._cycle {
        bottom: -180px;
    }
}

@media screen and (max-width: 480px) {
    .jpark_map-icon {
        width: 80px;
        height: 80px;
    }

    .jpark_yokosukakaryoku-icon {
        width: 80px;
        height: 80px;
    }

    .jpark_character_container._map {
        top: 1%;
        left: -3%;
        width: 100%;
        height: 100%;
    }

    .jpark_character_wrapper {
        width: 120px;
        height: 100px;
    }

    .jpark_character_wrapper._04 {
        width: 150px;
    }

    .jpark_character_container {
        margin: 20px 0;
    }

    .jpark_character_container._00 {
        bottom: -85px;
        right: -17px;
    }

    .jpark_character_container._01 {
        right: -3px;
        bottom: -64px;
    }

    .jpark_character_container._02 {
        right: -21px;
    }

    .jpark_character_container._03 {
        bottom: -70px;
        left: -56px;
    }

    .jpark_character_container._04 {
        right: -16px;
        bottom: -106px;
    }

    .jpark_character_container._cycle {
        right: -21px;
        width: 140px;
        height: 140px;
    }

    .jpark_character_container._05 {
        bottom: 8px;
    }

    .jpark_underline.jpark_ma_0 {
        margin: 30px auto;
    }

    .jpark_character_wrapper._01 {
        width: 190px;
    }

    .jpark_character_wrapper._02,
    .jpark_character_wrapper._03 {
        width: 120px;
        height: 120px;
    }

    @keyframes jpark_slideUpMultiBounce {
        0% {
            transform: translateX(-50%) translateY(100%);
            opacity: 0;
        }

        40% {
            transform: translateX(-50%) translateY(0);
            opacity: 1;
        }

        55% {
            transform: translateX(-50%) translateY(-15px);
            opacity: 1;
        }

        65% {
            transform: translateX(-50%) translateY(0);
            opacity: 1;
        }

        75% {
            transform: translateX(-50%) translateY(-8px);
            opacity: 1;
        }

        85% {
            transform: translateX(-50%) translateY(0);
            opacity: 1;
        }

        92% {
            transform: translateX(-50%) translateY(-4px);
            opacity: 1;
        }

        100% {
            transform: translateX(-50%) translateY(0);
            opacity: 1;
        }
    }
}

/* ==================================================
12.5) Flags / Waves / Character (_05) – restored
================================================== */
/* Top page floating flag */
.jpark_top_global_flag {
    position: absolute;
    top: -18%;
    right: 1%;
    width: 250px;
    z-index: 4;
    pointer-events: none;
}

.jpark_top_global_flag img {
    width: 100%;
    height: auto;
    display: block;
}


/* Section 3 background wave */
.jpark_section_3_wave {
    margin-bottom: -10px;
}

.jpark_section_3_wave img {
    width: 100%;
    height: auto;
    display: block;
}


/* Section 3 small flag */
.jpark_section_3_flag {
    position: absolute;
    top: 38px;
    left: 0;
    width: 250px;
    z-index: 2;
}

.jpark_section_3_flag img {
    width: 100%;
    height: auto;
    display: block;
}


/* Section 4 flag (access area) */
.jpark_section_4_flag_image {
    width: 250px;
    position: absolute;
    top: -45%;
    right: 0;
    z-index: 2;
}

.jpark_section_4_flag_image img {
    width: 100%;
    height: auto;
    display: block;
}


/* Character Perry (_05) positioning near section 4 under image */
.jpark_character_container._05 {
    position: absolute;
    bottom: 60px;
    right: 40px;
    z-index: 1;
}


/* Responsive adjustments for restored pieces */
@media (max-width:1340px) {
    .jpark_section_3_flag {
        top: 0;
    }
}

@media (max-width:1180px) {
    .jpark_top_global_flag {
        top: -20%;
    }
}

@media (max-width:1070px) {
    .jpark_top_global_flag {
        top: -22%;
    }
}

@media (max-width:961px) {
    .jpark_top_global_flag {
        top: -8%;
    }

    .jpark_section_3_flag {
        top: -13px;
    }

    .jpark_section_4_flag_image {
        top: -12%;
    }
}

@media (max-width:861px) {
    .jpark_top_global_flag {
        top: -9%;
    }
}

@media (max-width:768px) {
    .jpark_top_global_flag {
        width: 190px;
    }

    .jpark_section_3_flag,
    .jpark_section_4_flag_image {
        width: 190px;
    }
}

@media (max-width:596px) {
    .jpark_top_global_flag {
        top: -7%;
    }
}

@media (max-width:520px) {
    .jpark_top_global_flag {
        top: -8%;
    }
}

@media (max-width:480px) {
    .jpark_top_global_flag {
        width: 150px;
        top: -9%;
    }

    .jpark_section_3_flag,
    .jpark_section_4_flag_image {
        width: 150px;
    }

    .jpark_section_4_flag_image {
        top: -8%;
    }

    .jpark_character_container._05 {
        bottom: 8px;
    }
}

@media (min-width:1600px) {
    .jpark_character_container._05 {
        bottom: 80px;
    }
}

@media (max-width:1200px) {
    .jpark_character_container._05 {
        bottom: 40px;
    }
}

/* ==================================================
   13) Responsive tweaks (collected)
================================================== */
@media screen and (max-width: 1430px) {
    .jpark_section_3_inner_content {
        width: 84%;
    }
}

@media (max-width:1250px) {
    .wrapper2 {
        gap: 0;
    }

    .jpark_box_middle {
        width: 75%;
    }

    .jpark_text,
    .jpark_table_section,
    .jpark_table_under,
    .jpark_notice_box,
    .jpark_facility_name,
    .jpark_section_ground_title,
    .jpark_facility_time {
        font-size: 1.4vw;
    }

    .jpark_footer_detail p {
        font-size: 16px;
    }

    .jpark_top_inner_box p {
        font-size: 40px;
    }

    .jpark_map-icon {
        width: 150px;
        height: 150px;
    }

    .jpark_yokosukakaryoku-icon {
        width: 180px;
        height: 180px;
    }
}

@media (max-width:1200px) {
    .jpark_top_inner_box_logo {
        width: 50%;
    }
    .jpark_text.jpark_accsess {
        font-size: 14px;
    }

    .reservation_link {
        margin: 30px auto 0;
        padding: 2em 1.5em;
        font-size: 1.5rem !important;
    }

    .course-left-title,
    .power-station-title,
    .plants-right-title {
        font-size: 29px;
    }
}

@media (max-width:1082px) {
    .course-upper-side {
        flex-direction: column;
        margin: 50px 0;
    }

    .course-upper-side-left,
    .course-upper-side-right {
        width: 100%;
    }
}

@media (max-width:961px) {
    .wrapper2 {
        flex-direction: column;
        width: 100%;
        padding: 0 40px;
    }

    .jpark_section_3_inner_content,
    .jpark_custom_scroll_wrapper_inner {
        width: 100%;
        padding: 20px 40px 100px;
    }

    .jpark_box_right,
    .jpark_box_left {
        margin: 0 auto;
    }

    .left-side,
    .right-side {
        width: 100% !important;
    }

    .jpark_title {
        font-size: 7vw !important;
        line-height: 1 !important;
        margin: 80px 0;
    }

    .jpark_en .jpark_title {
        line-height: 1.6 !important;
    }

    .left-text {
        font-size: 15vw;
        line-height: 1.5;
        letter-spacing: 0.035em;
    }

    .jpark_text,
    .jpark_table_section,
    .jpark_table_under,
    .jpark_notice_box,
    .jpark_section_ground_title,
    .jpark_text.jpark_accsess,
    .jpark_notice_box_title {
        font-size: 2.4vw;
        line-height: 2.2;
        letter-spacing: 0.1em;
    }

    .jpark_undertext,
    .jpark_underline {
        font-size: 2vw !important;
    }

    .jpark_notice_box,
    .jpark_notice_box_title {
        line-height: 1.5;
        letter-spacing: 0.1em;
    }

    .jpark_facility_name,
    .jpark_facility_time {
        font-size: 2.5vw;
        letter-spacing: 0.1em;
    }

    .jpark_footer_detail p {
        font-size: 2.5vw;
        letter-spacing: 0.1em;
    }

    .jpark_notice_box_undertitle,
    .jpark_table_small,
    .jpark_ground_link,
    .jpark_notice_box_ink_btn {
        font-size: 2.2vw;
        letter-spacing: 0.1em;
    }

    .jpark_en .jpark_notice_box_undertitle,
    .jpark_en .jpark_table_small,
    .jpark_en .jpark_ground_link,
    .jpark_en .jpark_notice_box_ink_btn {
        font-size: 2vw;
    }

    .jpark_en .jpark_notice_box_ink_btn::before {
        right: 1%;
    }

    .jpark_flex {
        flex-direction: column;
    }

    .jpark_flex.ml {
        flex-direction: column-reverse;
    }

    .reservation_link {
        letter-spacing: 0.1em;
    }

    .jpark_flex_right,
    .jpark_flex_left,
    .jpark_flex_left._02,
    .jpark_flex_right._02 {
        width: 100%;
    }

    .jpark_flex_right,
    .jpark_flex_left {
        margin-bottom: 100px;
    }

    .jpark_flex_right._02 {
        margin: 100px 0 0;
    }

    .jpark_flex_left._03 {
        margin: 80px 0 0;
    }

    .jpark_contact_link {
        font-size: 3.5vw;
    }

    .jpark_contact_link::after {
        right: 4.3257vw;
        width: 4.3257vw;
        height: 4.3257vw;
    }

    .jera_park_map {
        margin: 50px auto !important;
    }

    .ground_info_detail {
        width: 300px;
    }

    /* modal */
    .jpark_facility_modal {
        padding: 15px;
        align-items: flex-start;
        width: 100%;
        height: 100%;
    }

    .jpark_facility_modal_content {
        width: 72%;
        padding: 4rem;
        border-radius: 15px;
        transform: scale(1) translateY(50px);
        top: 5%;
        right: 0;
    }

    .jpark_facility_modal_content.oka,
    .jpark_facility_modal_content.hiroba {
        top: 13%;
        right: auto;
        padding: 5rem;
    }

    .jpark_facility_modal_ml {
        width: 95%;
    }

    .jpark_facility_modal.show .jpark_facility_modal_content {
        transform: scale(1) translateY(0);
        margin: 15px auto auto;
    }

    .jpark_facility_modal_ml_logo {
        width: 70%;
        margin: 0 auto 40px;
    }

    .jpark_facility_modal_ml_img {
        margin: 30px auto;
    }

    .jpark_modal_text {
        font-size: 16px;
        letter-spacing: .1em;
    }

    .jpark_modal_text_small {
        font-size: 14px !important;
    }

    .jpark_map-icon {
        width: 130px;
        height: 130px;
    }

    .jpark_section_4_flag_image {
        width: 190px;
    }

    .jpark_notice_box_ink_btn {
        width: 80%;
    }

    .jpark_en .jpark_notice_box_ink_btn {
        width: 100%;
    }

    .jpark_notice_box_undertitle {
        margin: 0 0 30px 0 !important;
    }

    .jpark_en .jpark_table_section_title {
        width: 145px;
    }

    .jpark_en_table_th01 {
        width: 104px;
    }

    .jpark_section_4_inner .jpark_flex_left,
    .jpark_section_4_inner .jpark_flex_right {
        width: 100%;
    }

    .jpark_section_3-1_inner_content {
        margin: 50px 0 30px;
    }

    .jpark_section_4_inner {
        max-width: 1400px;
        width: 100%;
        margin: 0 auto;
        padding: 0 40px;
    }
}

@media (max-width:768px) {
    .jpark_title {
        margin: 50px 0;
    }

    .jpark_top_inner_box_logo {
        width: 80%;
    }

    .jpark_map-icon {
        width: 80px;
        height: 80px;
    }

    .jpark_oka-icon {
        bottom: 9%;
    }

    .jpark_yokosukakaryoku-icon {
        top: 9%;
        right: 30%;
        width: 120px;
        height: 120px;
    }

    .jpark_hiroba-icon {
        bottom: 40%;
        left: 28%;
    }

    .jpark_footer_nav {
        flex-direction: column;
    }

    .jpark_footer_nav ul,
    .jpark_sns_nav {
        margin: 20px auto;
        flex-wrap: wrap;
    }

    .jpark_footer_detail {
        margin: 150px auto;
        width: 100%;
    }

    .jpark_box_middle {
        width: 95%;
        margin: 0 auto 230px;
    }

    .jpark_section_4_flag_image,
    .jpark_section_3_flag {
        width: 190px;
    }

    .p-top-park__slide-item {
        width: 220px;
        height: 160px;
    }

    /* modal container width */
    .jpark_facility_modal {
        width: 100vw;
        padding: 10px;
        padding-top: 3vh;
    }

    .jpark_facility_modal_content {
        width: 80%;
        max-width: 98%;
        padding: 3rem;
        border-radius: 12px;
        top: -2%;
        right: 0;
    }

    .jpark_facility_modal_content.hiroba,
    .jpark_facility_modal_content.oka {
        top: 7%;
    }

    .jpark_footer_detail {
        text-align: center;
    }

    .jpark_footer_logo {
        margin: 0 auto 50px;
    }

    .jpark_responsive_table {
        width: 100%;
        display: inline-block;
    }

    .jpark_table_section_title_td {
        padding: 10px 15px;
    }

    .jpark_table_section td {
        padding: 10px 0;
        margin-bottom: 10px;
    }

    .jpark_en .jpark_table_section_title {
        width: 100%;
    }

    .jpark_table_section_title {
        width: 100%;
        font-size: 5vw;
        display: inline-block;
        padding: 10px 15px !important;
    }

    .jpark_facility_name {
        padding-left: 0 !important;
    }

    .jpark_tennis {
        display: table !important;
    }

    .ground_info_list.last {
        border-bottom: 0 !important;
    }

    .jpark_notice_box_ink_btn {
        width: 95%;
    }

    .jpark_notice_box_undertitle,
    .jpark_table_small,
    .jpark_ground_link {
        font-size: 16px;
    }

    .jpark_notice_box_ink_btn {
        font-size: 14px;
    }

    .ground_info_title {
        border-bottom: 0;
        border-top: 1px solid var(--brand);
    }

    .ground_info_detail {
        width: 500px;
    }

    .ground_info_title_rightbar:before {
        content: none;
    }

}

@media (max-width:600px) {

    .jpark_text,
    .jpark_table_section,
    .jpark_table_under,
    .jpark_notice_box,
    .jpark_section_ground_title,
    .jpark_facility_name,
    .jpark_facility_time {
        font-size: 3.2vw;
    }

    .jpark_undertext,
    .jpark_underline {
        font-size: 3vw !important;
    }

    .jpark_text.jpark_accsess {
        font-size: 3.4vw;
    }

    .jpark_section_title {
        font-size: 9.5vw;
        padding-left: 30px;
    }

    .jpark_section_sub_title {
        padding-left: 30px;
    }

    .responsive_table_td_width {
        width: 90px;
    }

    .jpark_section_title:before {
        top: 17px;
    }

    .jpark_section_3-1_inner_content {
        margin: 30px 0;
    }

    .jpark_ground_info h3 {
        font-size: 30px;
        display: block;
    }

    .jpark_ground_link {
        display: block;
        width: 280px;
        margin: 0 0 0 auto;
    }

    .ground_info_list {
        margin-top: 0;
    }

    .ground_info_subtitle {
        width: 40%;
    }

    .jpark_usage_table.jpark_tennis {
        width: 100%;
    }

    .jpark_footer_detail p {
        font-size: 3.5vw;
    }

    .jpark_facility_modal_ml {
        width: 100%;
    }

    .jpark_facility_modal_content {
        width: 90%;
        top: auto;
        bottom: -1%;
        right: 0;
    }

    .jpark_facility_modal_content.hiroba,
    .jpark_facility_modal_content.oka {
        bottom: -8%;
        top: auto;
    }

    .jpark_modal_text_small {
        font-size: 14px !important;
    }

    .left-text {
        font-size: 14vw;
    }

    .jpark_title {
        font-size: 8vw;
    }

    .jpark_notice_box_sublist {
        padding-left: 15px;
    }
}

@media (max-width:480px) {
    .p-top-hero__scroll {
        bottom: 2%;
    }

    .jpark_section_3_flag,
    .jpark_section_4_flag_image {
        width: 150px;
    }

    .jpark_top_inner_box p {
        font-size: 35px;
    }

    .jpark_map-icon {
        width: 60px;
        height: 60px;
    }

    .jpark_oka-icon {
        bottom: 7%;
        right: 1%;
    }

    .jpark_yokosukakaryoku-icon {
        top: 9%;
        right: 30%;
        width: 80px;
        height: 80px;
    }

    .jpark_hiroba-icon {
        bottom: 40%;
        left: 26%;
    }

    .jpark_ground-icon {
        top: 5%;
        left: 16%;
    }

    .jpark_contact_link {
        font-size: 4.5vw;
    }

    .jpark_footer_detail {
        margin: 90px auto;
        width: 100%;
    }

    .jpark_section_4_top_image {
        width: 120%;
        transform: scale(1.5);
    }

    .jpark_info_table th,
    .jpark_info_table td {
        padding: 3px !important;
        line-height: 1.8;
        font-size: 3.8vw;
        letter-spacing: 0.02em;
    }

    .jpark_ground_info h3 {
        font-size: 22px;
    }

    .jpark_en .jpark_ground_info h3 {
        font-size: 18px;
    }

    .jpark_en_table_th01 {
        width: 60px;
    }

    .course-left-title,
    .power-station-title,
    .plants-right-title {
        font-size: 24px;
    }

    .reservation_link {
        width: 90%;
        padding: 1em 1em;
    }

    .jpark_facility_modal_ml_logo {
        width: 70%;
        margin: 0 auto 25px;
    }

    .jpark_facility_modal_ml_img {
        margin: 15px auto;
    }

    .jpark_table_section {
        font-size: 16vw;
    }

    .jpark_table_section_title {
        font-size: 20px;
    }

    .jpark_text,
    .jpark_table_section,
    .jpark_table_under,
    .jpark_notice_box,
    .jpark_section_ground_title,
    .jpark_facility_name,
    .jpark_facility_time,
    .jpark_text.jpark_accsess,
    .jpark_footer_detail p,
    .jpark_under_nav {
        font-size: 16px;
    }

    .jpark_undertext,
    .jpark_underline {
        font-size: 14px !important;
    }

    .jpark_notice_box_undertitle,
    .jpark_table_small,
    .jpark_ground_link {
        font-size: 14px;
    }

    .jpark_modal_text_small,
    .jpark_footer_nav.copy {
        font-size: 12px !important;
    }

    .course-left-title::before,
    .power-station-title::before,
    .plants-right-title::before {
        top: 3px;
    }

    .jpark_en .course-left-title::before,
    .jpark_en .power-station-title::before,
    .jpark_en .plants-right-title::before {
        top: 9px;
    }

    .jpark_table_under {
        text-align: left;
    }

    .jpark_ground_info h3 a {
        display: inherit;
        margin: 20px 0;
        text-align: center;
        width: 100%;
    }

    .jpark_ground_link span {
        top: 3;
    }

    .jpark_ground_link:before {
        content: "";
        width: 100%;
        height: 2px;
        position: absolute;
        top: 25%;
        left: 0;
        background: var(--brand);
    }

    .ground_info_title {
        border-bottom: 0;
        border-top: 1px solid var(--fg);
    }

    .ground_info_subtitle {
        width: 100%;
        display: block;
        border-bottom: 0;
        margin-bottom: 0;
    }

    .ground_info_list {
        border-bottom: 1px solid var(--brand);
        width: 100%;
        display: block;
    }

    .ground_info_detail {
        border-bottom: 0;
        width: 100%;
        display: block;
        padding: 5px 0 10px !important;
    }

    .jpark_table_section_title_tr {
        margin: 10px 0;
    }

    .jpark_table_section td {
        padding: 20px 0 0;
        margin-bottom: 0px;
        line-height: 1.5;
    }

    .jpark_table_section td._02 {
        padding: 20px 0 0;
        line-height: 2;
    }

    .ground_info_subtitle span {
        display: inline-block !important;
        margin-right: 5px;
    }

    .ground_info_list.last {
        padding-bottom: 50px !important;
    }

    .coat_title {
        font-size: 18px;
    }

    .jpark_table_under {
        line-height: 1.5;
    }

    .jpark_notice_box_title {
        font-size: 16px;
        line-height: 1.5;
    }

    .jpark_notice_box {
        padding: 2.5rem 2rem;
        border: 4px solid var(--brand);
    }

    .jpark_notice_box_undertitle {
        line-height: 1.5;
    }

    .jpark_notice_box_subtitle,
    .jpark_notice_box_sublist_title {
        font-size: 20px;
    }

    .jpark_table_top_p5 {
        padding-top: 10px !important;
    }

    .jpark_section_ground_title.border_0 {
        border-bottom: 0 !important;
    }

    .jpark_responsive_table .link_blank {
        line-height: 2 !important;
        font-size: 14px !important;
    }

    .jpark_character_container._05 {
        bottom: -6px;
    }

    .jpark_under_nav ul {
        gap: 0px;
    }

    .jpark_facility_modal_content {
        width: 86%;
        padding: 5rem 2rem;
        top: 50%;
        left: 50%;
        bottom: 0;
        transform: translate(-57.5%, -50%);
    }

    .jpark_facility_modal_content.hiroba,
    .jpark_facility_modal_content.oka {
        bottom: -50%;
        top: auto;
        padding: 5rem 2rem;
    }

    .course-upper-side-right img {
        transform: scale(1.2);
    }

    .jpark_section_title {
        font-size: 9vw;
    }

    .jpark_notice_box_ink_btn {
        width: 100%;
        padding: 1.5rem 3rem 1.5rem 2rem;
    }

    .jpark_notice_box_ink_btn::before {
        right: 5%;
        width: 15px;
        height: 15px;
    }

    .jpark_en_table_facility {
        width: 110px;
    }

    .jpark_en .course-left-title,
    .jpark_en .power-station-title,
    .jpark_en .plants-right-title {
        font-size: 20px;
    }

    .jpark_flex_right,
    .jpark_flex_left {
        margin-bottom: 60px;
    }

    .jpark_flex_right._02 {
        margin: 80px 0 0;
    }

    .course-upper-side-left {
        margin: 25px 0;
    }

    .jpark_en .jpark_notice_box_ink_btn::before {
        right: 3%;
        top: 46%;
    }
}

@media (max-width:425px) {

    .course-left-title,
    .power-station-title,
    .plants-right-title {
        font-size: 22px;
    }

    .jpark_notice_box_ink_btn {
        font-size: 11px;
        padding: 1.5rem 1rem;
    }

    .responsive_table_td_width {
        width: 70px;
    }

    .jpark_en .responsive_table_td_width {
        width: 62px;
    }
}

@media (max-width:400px) {

    .jpark_modal_text_small,
    .jpark_footer_nav.copy {
        font-size: 10px !important;
    }
}

@media (max-width:380px) {
    .jpark_parallax_wrapper {
        height: 100%;
    }

    .jpark_text,
    .jpark_table_section,
    .jpark_table_under,
    .jpark_notice_box,
    .jpark_section_ground_title,
    .jpark_facility_name,
    .jpark_facility_time,
    .jpark_text.jpark_accsess,
    .jpark_under_nav {
        font-size: 14px;
    }

    .jpark_footer_detail p {
        font-size: 13px;
    }

    .reservation_link {
        font-size: 1rem !important;
        padding: 1.5em 1em;
    }

    .jpark_modal_text {
        font-size: 12px;
    }

    .jpark_modal_text_small {
        font-size: 10px !important;
    }

    .jpark_facility_modal_content {
        padding: 3rem 2rem;
    }

    .jpark_facility_modal_content.hiroba,
    .jpark_facility_modal_content.oka {
        bottom: -50%;
        top: auto;
    }

    .jpark_facility_modal_ml {
        width: 100%;
    }

    .jpark_section_title {
        font-size: 8vw;
    }

    .jpark_notice_box_ink_btn {
        width: 100%;
        padding: 1.5rem 2rem;
        font-size: 11px;
    }

    .jpark_notice_box_ink_btn::before {
        right: 2%;
        width: 15px;
        height: 15px;
        top: 43%;
    }

    .jpark_under_nav ul {
        gap: 0;
        flex-direction: column;
    }

    .jpark_footer_nav.copy {
        font-size: 10px;
    }

    .jpark_responsive_table .link_blank {
        font-size: 13px !important;
    }

    .course-left-title,
    .power-station-title,
    .plants-right-title {
        font-size: 20px;
    }

    .jpark_notice_box_title,
    .jpark_notice_box_subtitle,
    .jpark_notice_box_sublist_title {
        font-size: 16px;
    }

    .course-left-title::before,
    .power-station-title::before,
    .plants-right-title::before {
        top: 0;
    }

    .left-text {
        font-size: 13vw;
    }

    .jpark_title {
        font-size: 7.8vw;
    }

    .jpark_notice_box {
        padding: 2.5rem 1.5rem;
    }

    .jpark_en .jpark_notice_box {
        padding: 2.5rem 1rem;
    }

    .jpark_en .jpark_facility_modal_content {
        padding: 2rem;
        transform: translate(-57.5%, -51%);
    }

    .jpark_en .reservation_link {
        margin: 15px auto 0;
    }

    .jpark_en .jpark_notice_box_undertitle,
    .jpark_en .jpark_table_small,
    .jpark_en .jpark_ground_link,
    .jpark_en .jpark_notice_box_ink_btn {
        font-size: 12px;
    }

    .jpark_footer {
        padding: 20px 20px;
    }
}

@media (min-width:1250px) {

    .jpark_underline,
    .jpark_undertext {
        font-size: 16px !important;
    }
}

@media (min-width:1500px) {
    .jpark_ground_info h3 {
        font-size: 22px;
    }

    .jpark_character_wrapper {
        width: 180px;
        height: 180px;
    }
}

@media (min-width:1700px) {

    .jpark_text,
    .jpark_table_section,
    .jpark_notice_box,
    .jpark_table_under,
    .jpark_facility_name,
    .jpark_notice_box_ink_btn,
    .jpark_ground_link {
        font-size: 22px;
    }

    .jpark_en .jpark_text,
    .jpark_en .jpark_table_section,
    .jpark_en .jpark_notice_box,
    .jpark_en .jpark_table_under,
    .jpark_en .jpark_facility_name,
    .jpark_en .jpark_notice_box_ink_btn,
    .jpark_en .jpark_ground_link {
        font-size: 20px;
    }

    .jpark_notice_box_undertitle,
    .jpark_table_small,
    .jpark_table_under {
        font-size: 18px;
    }

    .jpark_en .jpark_notice_box_undertitle,
    .jpark_en .jpark_table_small,
    .jpark_en .jpark_table_under {
        font-size: 16px;
    }

    .jpark_notice_box_ink_btn {
        width: 60%;
    }
}

/* 追従バナー */

.jpark_top_fixed__bnr {
  position: fixed;
  bottom: 2.38vw;
  right: 2.38vw;
  z-index: 100;
  transition: opacity .5s,visibility .5s;
  will-change: opacity,visibility;
}
.jpark_top_fixed__bnr.fixed {
  position: fixed
}
.jpark_top_fixed__bnr.hide {
  opacity: 0;
  visibility: hidden
}
.jpark_top_fixed__bnr .jpark_top_fixed__close {
  text-align: center;
  position: absolute;
  top: -.4vw;
  right: -1.9vw;
  width: 2.4vw;
  height: 2.4vw;
  min-width: 28px;
  min-height: 28px;
  background-color: #fff;
  border-radius: 50%;
  transform: translate(-10px, -10px);
  cursor: pointer;
}
.jpark_top_fixed__bnr .jpark_top_fixed__close::before,
.jpark_top_fixed__bnr .jpark_top_fixed__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.8px;
  height: 1.2vw;
  background: #333;
}
.jpark_top_fixed__bnr .jpark_top_fixed__close::before {
  transform: translate(-50%,-50%) rotate(45deg);
}
.jpark_top_fixed__bnr .jpark_top_fixed__close::after {
  transform: translate(-50%,-50%) rotate(-45deg);
}
.jpark_top_fixed__bnr .jpark_top_fixed__wrap {
  box-shadow: .26vw .26vw .39vw 0 rgba(0,0,0,.2)
}
.jpark_top_fixed__bnr .jpark_top_fixed__link {
  display: block;
  width: 24vw
}
.jpark_top_fixed__bnr .jpark_top_fixed__link img {
  display: block;
}
@media screen and (max-width: 960px) {
  .jpark_top_fixed__bnr {
    right: 3.2vw;
  }
  .jpark_top_fixed__bnr .jpark_top_fixed__link {
    display: block;
    width: 52vw;
    max-width: 320px;
  }
  .jpark_top_fixed__bnr .jpark_top_fixed__close {
    top: -2vw;
    right: -3.8vw;
    width: 11vw;
    height: 11vw;
    max-width: 48px;
    max-height: 48px;
    min-width: 40px;
    min-height: 40px;
  }
  .jpark_top_fixed__bnr .jpark_top_fixed__close::before,
  .jpark_top_fixed__bnr .jpark_top_fixed__close::after {
    width: 2px;
    height: 5vw;
    max-height: 22px;
  }
}