.nav-element-6b0c931.nav-is-school .nav-element-school-inline .nav-nav-menu--main {
    width: 100% !important;
}
.nav-element-6b0c931.nav-is-school .nav-element-school-inline {
    width: 100% !important;
}
/*! Nav CSS for JPC Sports CMS */
/* Nav Core Styles */
.nav *,
.nav :after,
.nav :before {
    box-sizing: border-box;
}

.nav a {
    box-shadow: none;
    text-decoration: none;
}

.nav img {
    border: none;
    border-radius: 0;
    box-shadow: none;
    height: auto;
    max-width: 100%;
}

/* Nav Section Styles */
.nav-section {
    position: relative;
}

.nav-section .nav-container {
    display: flex;
    margin-left: auto;
    margin-right: auto;
    position: relative;
}

.nav-section.nav-section-boxed > .nav-container {
    max-width: 1200px;
}

.nav-section.nav-section-stretched {
    position: relative;
    width: 100%;
}

/* Nav Column Styles */
.nav-column {
    display: flex;
    height: 100%;
    min-height: 1px;
    position: relative;
}

.nav-column-gap-default > .nav-column > .nav-element-populated {
    padding: 10px 5px;
}

.nav-column.nav-col-25,
.nav-column[data-col="25"] {
    width: 25%;
}

.nav-column.nav-col-20,
.nav-column[data-col="20"] {
    width: 20%;
}

.nav-column.nav-col-50,
.nav-column[data-col="50"] {
    width: 50%;
}

.nav-column.nav-col-80,
.nav-column[data-col="80"] {
    width: 80%;
}

.nav-column.nav-col-100,
.nav-column[data-col="100"] {
    width: 100%;
}

/* Custom Header Column Widths */
.nav-element-6b0c931 .nav-element-9e61cd3 {
    width: 35% !important;
}

.nav-element-6b0c931 .nav-element-44622ca {
    width: 25.175% !important;
}

.nav-element-6b0c931 .nav-element-278d03d {
    width: 19.783% !important;
}

.nav-element-6b0c931 .nav-element-21bebe8 {
    width: 19.983% !important;
}

/* School variant: put menu on same row with logo and make it wide */
.nav-element-6b0c931.nav-is-school .nav-element-9e61cd3 {
    width: 20% !important;
}
.nav-element-6b0c931.nav-is-school .nav-element-44622ca {
    width: 80% !important;
}
.nav-element-6b0c931.nav-is-school .nav-element-school-inline .nav-nav-menu--layout-horizontal .nav-nav-menu {
    justify-content: flex-end; /* 右寄せ */
    flex-wrap: wrap;
    margin-inline-start: 0;
    width: 100%;
}

/* school時PCでは均等割付を防ぐため、flex-growを無効化 */
.nav-element-6b0c931.nav-is-school .nav-element-school-inline .nav-nav-menu--layout-horizontal .nav-nav-menu > li {
    flex-grow: 0 !important;
}
.nav-element-6b0c931.nav-is-school .nav-element-school-inline .nav-nav-menu--layout-horizontal .nav-nav-menu > li > a {
    flex-grow: 0 !important;
}
.nav-element-6b0c931.nav-is-school .nav-element-school-inline .nav-nav-menu--layout-horizontal .nav-nav-menu > li > a {
    padding: 13px 16px;
}

/* Nav Widget Styles */
.nav-widget-wrap {
    align-content: flex-start;
    flex-wrap: wrap;
    position: relative;
    width: 100%;
}

.nav-widget-wrap.nav-element-populated {
    display: flex;
}

/* Header Button Widget Wrap Styles */
.nav-element-6b0c931 .nav-element-278d03d .nav-widget-wrap.nav-element-populated,
.nav-element-6b0c931 .nav-element-21bebe8 .nav-widget-wrap.nav-element-populated {
    align-content: center;
    align-items: center;
}

.nav-column-gap-default > .nav-column > .nav-element-populated {
    padding: 10px;
}

/* Header Button Widget (child of nav-widget-wrap) */
.nav-element-6b0c931 .nav-element-278d03d .nav-widget-button,
.nav-element-6b0c931 .nav-element-21bebe8 .nav-widget-button {
    width: 100%;
}

.nav-widget {
    position: relative;
    width: 100%;
}

.nav-widget-container {
    width: 100%;
}

/* Nav Button Styles */
.nav-button {
    background-color: #69727d;
    border-radius: 3px;
    color: #fff;
    display: inline-block;
    font-size: 15px;
    line-height: 1;
    padding: 12px 24px;
    fill: #fff;
    text-align: center;
    transition: all .3s;
}

.nav-button:focus,
.nav-button:hover,
.nav-button:visited {
    color: #fff;
}

.nav-button-content-wrapper {
    display: flex;
    flex-direction: row;
    gap: 5px;
    justify-content: center;
}

/* Header buttons - icon on the right */
.nav-element-6b0c931 .nav-widget-button .nav-button-content-wrapper {
    flex-direction: row-reverse;
}

.nav-button-icon {
    align-items: center;
    display: flex;
}

.nav-button-icon svg {
    height: auto;
    width: 1em;
}

.nav-button-text {
    display: inline-block;
}

.nav-button.nav-size-md {
    border-radius: 4px;
    font-size: 16px;
    padding: 15px 30px;
}

.nav-button-wrapper {
    display: inline-block;
}

/* ヘッダーボタンのラッパーは幅を100%に */
.nav-element-449c3e4 .nav-button-wrapper,
.nav-element-d483a36 .nav-button-wrapper {
    width: 100% !important;
}

/* Nav Alignment Styles */
.nav-align-justify .nav-button {
    width: 100%;
}

/* Nav Nav Menu Styles */
.nav-nav-menu {
    position: relative;
    z-index: 2;
}

.nav-nav-menu:after {
    clear: both;
    content: " ";
    display: block;
    font: 0/0 serif;
    height: 0;
    overflow: hidden;
    visibility: hidden;
}

.nav-nav-menu,
.nav-nav-menu li,
.nav-nav-menu ul {
    display: block;
    line-height: normal;
    list-style: none;
    margin: 0;
    padding: 0;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

.nav-nav-menu ul {
    display: none;
}

.nav-nav-menu a,
.nav-nav-menu li {
    position: relative;
}

.nav-nav-menu li {
    border-width: 0;
}

.nav-nav-menu a {
    align-items: center;
    display: flex;
}

.nav-nav-menu a{
    line-height: 20px;
    padding: 10px 10px;
}

.nav-nav-menu a.current {
    background: transparent;
    color: #fff;
}

.nav-nav-menu a.disabled {
    color: #88909b;
    cursor: not-allowed;
}

.nav-nav-menu .sub-arrow {
    align-items: center;
    display: flex;
    line-height: 1;
    margin-block-end: -10px;
    margin-block-start: -10px;
}

.nav-nav-menu .sub-arrow i {
    pointer-events: none;
}

.nav-nav-menu .sub-arrow .fa.fa-chevron-down,
.nav-nav-menu .sub-arrow .fas.fa-chevron-down {
    font-size: .7em;
}

/* Nav Nav Menu Layout */
.nav-nav-menu--layout-horizontal {
    display: flex;
}

.nav-nav-menu--layout-horizontal .nav-nav-menu {
    display: flex;
    flex-wrap: wrap;
}

.nav-nav-menu--layout-horizontal .nav-nav-menu a {
    flex-grow: 1;
    white-space: nowrap;
}

.nav-nav-menu--layout-horizontal .nav-nav-menu > li {
    display: flex;
}

.nav-nav-menu--layout-horizontal .nav-nav-menu > li ul,
.nav-nav-menu--layout-horizontal .nav-nav-menu > li > .scroll-down {
    top: 100% !important;
}

/* Nav Nav Menu Alignment */
.nav-nav-menu__align-justify .nav-nav-menu--layout-horizontal .nav-nav-menu {
    width: 100%;
}

.nav-nav-menu__align-justify .nav-nav-menu--layout-horizontal .nav-nav-menu > li {
    flex-grow: 1;
}

.nav-nav-menu__align-justify .nav-nav-menu--layout-horizontal .nav-nav-menu > li > a {
    justify-content: center;
}

.nav-nav-menu__align-center .nav-nav-menu {
    justify-content: center;
    margin-inline-end: auto;
    margin-inline-start: auto;
}

.nav-nav-menu__align-center .nav-nav-menu--layout-vertical > ul > li > a {
    justify-content: center;
}

/* Nav Nav Menu Dropdown */
.nav-nav-menu--dropdown {
    background-color: #fff;
    font-size: 13px;
}

.nav-nav-menu--dropdown a {
    color: #0a8f20;
}

.nav-nav-menu--dropdown a.current {
    background: #e2e2e2;
    color: #00516d;
}

.nav-nav-menu--dropdown a.disabled {
    color: #b3b3b3;
}

.nav-nav-menu--dropdown .nav-item.nav-item-active,
.nav-nav-menu--dropdown .nav-item.highlighted,
.nav-nav-menu--dropdown .nav-item:focus,
.nav-nav-menu--dropdown .nav-item:hover,
.nav-sub-item.nav-item-active,
.nav-sub-item.highlighted,
.nav-sub-item:focus,
.nav-sub-item:hover {
    background-color: #e2e2e2;
    color: #fff;
}

/* Nav Menu Toggle */
.nav-menu-toggle {
    align-items: center;
    background-color: rgba(0,0,0,.05);
    border: 0 solid;
    border-radius: 0;
    color: #0a8f20;
    cursor: pointer;
    display: flex;
    font-size: var(--nav-menu-icon-size,22px);
    justify-content: center;
    margin-left: auto;
    padding: .25em;
}

.nav-menu-toggle.nav-active .nav-menu-toggle__icon--open,
.nav-menu-toggle:not(.nav-active) .nav-menu-toggle__icon--close {
    display: none;
}

.nav-menu-toggle .e-font-icon-svg {
    fill: #0a8f20;
    height: 1em;
    width: 1em;
}

.nav-menu-toggle svg {
    height: auto;
    width: 1em;
    fill: var(--nav-menu-icon-color,currentColor);
}

span.nav-menu-toggle__icon--close,
span.nav-menu-toggle__icon--open {
    line-height: 1;
}

/* Nav Sticky Styles */
.nav-sticky--active {
    z-index: 99;
}

.nav-sticky__spacer .e-n-menu .e-n-menu-content {
    display: none;
}

.e-con.nav-sticky--active {
    z-index: var(--z-index,99);
}

/* Nav Responsive Styles */
@media (max-width: 767px) {
    .nav .nav-hidden-mobile,
    .nav .nav-hidden-phone {
        display: none;
    }
}

@media (max-width: 1024px) {
    .nav-section .nav-container {
        flex-wrap: wrap;
    }
    
    .nav .nav-hidden-tablet {
        display: none;
    }
}

@media (min-width: 1025px) {
    .nav .nav-hidden-desktop {
        display: none;
    }
}

/* Nav Nav Menu Responsive */
@media (max-width: 767px) {
    .nav-nav-menu--dropdown-mobile .nav-nav-menu--main {
        display: none;
    }
}

@media (min-width: 768px) {
    .nav-nav-menu--dropdown-mobile .nav-menu-toggle,
    .nav-nav-menu--dropdown-mobile .nav-nav-menu--dropdown {
        display: none;
    }
    
    .nav-nav-menu--dropdown-mobile nav.nav-nav-menu--dropdown.nav-nav-menu__container {
        overflow-y: hidden;
    }
}

@media (max-width: 1024px) {
    .nav-nav-menu--dropdown-tablet .nav-nav-menu--main {
        display: none;
    }
}

@media (min-width: 1025px) {
    .nav-nav-menu--dropdown-tablet .nav-menu-toggle,
    .nav-nav-menu--dropdown-tablet .nav-nav-menu--dropdown {
        display: none;
    }
    
    .nav-nav-menu--dropdown-tablet nav.nav-nav-menu--dropdown.nav-nav-menu__container {
        overflow-y: hidden;
    }
}

/* Nav Nav Menu Toggle */
.nav-widget-nav-menu:not(.nav-nav-menu--toggle) .nav-menu-toggle {
    display: none;
}

.nav-widget-nav-menu .nav-widget-container,
.nav-widget-nav-menu:not(:has(.nav-widget-container)):not([class*=nav-hidden-]) {
    display: flex;
    flex-direction: column;
}

/* ハンバーガートグルを縦センタリング */
.nav-widget-nav-menu .nav-widget-container {
    align-items: center;
}

.nav-nav-menu--toggle {
    --menu-height: 100vh;
}

.nav-nav-menu--toggle .nav-menu-toggle:not(.nav-active) + .nav-nav-menu__container {
    max-height: 0;
    overflow: hidden;
    transform: scaleY(0);
}

.nav-nav-menu--toggle .nav-menu-toggle.nav-active + .nav-nav-menu__container {
    animation: hide-scroll .3s backwards;
    max-height: var(--menu-height);
    transform: scaleY(1);
}

.nav-nav-menu--dropdown.nav-nav-menu__container {
    margin-top: 10px;
    overflow-x: hidden;
    overflow-y: auto;
    transform-origin: top;
    transition: max-height .3s, transform .3s;
}

.nav-nav-menu--dropdown.nav-nav-menu__container .nav-sub-item {
    font-size: .85em;
}

/* FontAwesome Icons */
.fas {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
}

.fa-map-marked-alt:before {
    content: "\f5a0";
}

.fa-link:before {
    content: "\f0c1";
}

.fa-caret-down:before {
    content: "\f0d7";
}

.fa-caret-down::before {
    padding: 10px;
}

/* Animation Keyframes */
@keyframes hide-scroll {
    0%, to {
        overflow: hidden;
    }
}


/* Submenu Arrow */
.sub-arrow {
    position: relative;
}

.sub-arrow .fa-caret-down {
    transition: transform 0.3s ease;
}

/* Header Styles */
header[data-nav-type="header"] {
    position: fixed;
    z-index: 999;
    top: 0;
    left: 0;
    width: 100%;
}

/* Mobile Navigation Height Fix */
@media (max-width: 1024px) {
    .nav-section.nav-element-7945b9e {
        height: 60px !important;
        min-height: 60px !important;
    }
    
    .nav-section.nav-element-7945b9e .nav-container {
        height: 60px;
        align-items: center;
    }
    
    .nav-section.nav-element-7945b9e .nav-widget-image img {
        max-height: 40px;
        width: auto;
    }
}

/* Header Background - White */
.nav-section.nav-element-6b0c931 {
    background-color: #ffffff !important;
}

/* PCヘッダー: コンテナ内の要素を縦センタリング */
.nav-section.nav-element-6b0c931 .nav-container {
    align-items: center;
}

/* Navigation Bar Background - Dark Green */
.nav-section.nav-element-fe4a614 {
    background-color: #297842 !important;
}

/* Navigation Menu Text - White（PC版の最初の階層のみ） */
.nav-section.nav-element-fe4a614 .nav-nav-menu > li > a {
    color: #ffffff;
}

.nav-section.nav-element-fe4a614 .nav-nav-menu > li > a:hover {
    color: #C9C9C9;
}

/* PC版ナビバー - 現在のページのリンク */
.nav-section.nav-element-fe4a614 .nav-nav-menu > li > a.current {
    color: #CACACA;
}

/* Button Styles - Common */
.nav-element-449c3e4 .nav-button,
.nav-element-d483a36 .nav-button {
    color: #ffffff !important;
    border-radius: 0px !important;
    font-weight: bold !important;
    padding: 15px 30px !important;
    font-size: 16px !important;
    border: none !important;
    transition: all 0.3s ease !important;
    display: inline-block !important;
}

/* Button Styles - Individual Colors */
.nav-element-449c3e4 .nav-button {
    background-color: #199BC8 !important;
}

.nav-element-d483a36 .nav-button {
    background-color: #2E426E !important;
}

.nav-element-449c3e4 .nav-button:hover {
    background-color: #00516D !important;
}

.nav-element-d483a36 .nav-button:hover {
    background-color: #297842 !important;
}



.nav-section.nav-element-fe4a614 {
    
}

/* Logo styling */
.nav-widget-image img {
    max-height: 60px;
    width: auto;
}

/* Button spacing and alignment */
.nav-column.nav-col-25 {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Button columns alignment */
.nav-element-278d03d,
.nav-element-21bebe8 {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/* Button container spacing */
.nav-element-278d03d .nav-widget-container,
.nav-element-21bebe8 .nav-widget-container {
    margin-left: 8px;
    display: flex;
    justify-content: flex-end;
}

.nav-element-278d03d .nav-widget-container:first-child {
    margin-left: 0;
}

/* Navigation menu alignment */
.nav-nav-menu__align-justify .nav-nav-menu {
    justify-content: space-around;
}

.nav-nav-menu a {
    font-weight: 500;
    text-transform: none;
}

/* サブメニュー項目のパディング */
.sub-menu .nav-sub-item {
    padding: 13px 20px !important;
    color: #00516d ;
    transition: background-color 0.3s ease !important;
}

/* サブメニュー項目のホバー時もパディングを維持 */
.sub-menu .nav-sub-item:hover,
.sub-menu .nav-sub-item:focus {
    padding: 13px 20px;
    background-color: #CFCFCF;
    color: #00516d;
}

/* メインメニューのcurrent状態の背景を削除（1階層目のみ） */
.nav-nav-menu--main .nav-nav-menu > li > a {
    padding: 13px 20px;
}
.nav-nav-menu--main .nav-nav-menu > li > a.current {
    background: transparent;
    color: #C9C9C9;
}

/* サブメニューのcurrent状態 */
.sub-menu .nav-sub-item.current {
    background: #CFCFCF;
    color: #00516d;
}

/* Mobile Specific Styles */
@media (max-width: 1024px) {
    .nav-column {
        width: 100%;
    }
    
    .nav-column.nav-col-50 {
        width: 50%;
    }
    
    /* スマホ表示のナビバー幅を100%に設定 */
    .nav-section.nav-element-7945b9e {
        width: 100% !important;
    }
    
    .nav-section.nav-element-7945b9e .nav-container {
        width: 100% !important;
        max-width: 100% !important;
    }
    
    /* スマホ表示のナビバー背景色をPCと同じ色に設定 */
    .nav-section.nav-element-7945b9e {
        background-color: #ffffff !important;
    }
    
    /* JavaScriptで制御するため、CSSでのpadding-top設定を削除 */
    /* body {
        padding-top: 60px;
    } */
}

/* Reset padding for desktop */
@media (min-width: 1025px) {
    /* JavaScriptで制御するため、CSSでのpadding-top設定を削除 */
    /* body {
        padding-top: 0;
    } */
}

/* ==========================================
   ハンバーガーメニュー アコーディオン機能
   ========================================== */

/* ハンバーガーメニューの表示制御 */
.nav-widget-nav-menu .nav-widget-container,
.nav-widget-nav-menu:not(:has(.nav-widget-container)):not([class*=nav-hidden-]) {
    display: flex;
    flex-direction: column;
}

.nav-nav-menu--toggle {
    --menu-height: 100vh;
}

.nav-nav-menu--toggle .nav-menu-toggle:not(.nav-active) + .nav-nav-menu__container {
    max-height: 0;
    overflow: hidden;
    transform: scaleY(0);
}

.nav-nav-menu--toggle .nav-menu-toggle.nav-active + .nav-nav-menu__container {
    animation: hide-scroll .3s backwards;
    max-height: var(--menu-height);
    transform: scaleY(1);
}

.nav-nav-menu--dropdown.nav-nav-menu__container {
    margin-top: 10px;
    overflow-x: hidden;
    overflow-y: auto;
    transform-origin: top;
    transition: max-height .3s, transform .3s;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: #fff;
    border: 1px solid #e6e6e6;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
    z-index: 9999;
    border-radius: 0;
    max-height: 400px;
}

/* モバイル・タブレットメニュー内のサブメニューは通常フロー内に表示 */
@media (max-width: 1024px) {
    .nav-nav-menu__container .sub-menu.nav-nav-menu--dropdown {
        position: static !important;
        width: 100% !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        margin-top: 0 !important;
        max-height: none !important;
        left: auto !important;
        top: auto !important;
    }
    
    /* サブメニュー内のリンクにインデントを追加（padding: 13px 20pxを考慮して左だけ+20px） */
    #sm-17595818541842607-2 li > a {
        padding-left: 40px !important;
    }
    
    /* メニュー項目にボーダーを追加（最後の要素を除く） */
    .nav-nav-menu__container .nav-nav-menu > li:not(:last-child) {
        border-style: solid;
        border-color: #e2e2e2;
        border-bottom-width: 1px;
    }
}

/* デスクトップではサブメニューを絶対配置 */
@media (min-width: 1025px) {
    .sub-menu.nav-nav-menu--dropdown {
        position: absolute !important;
    }
}

.nav-nav-menu--dropdown.nav-nav-menu__container .nav-sub-item {
    font-size: .85em;
}

/* メニューアイテムのスタイル調整 */
.nav-nav-menu--dropdown .nav-item {
    padding: 14px 20px;
    border-bottom: 1px solid #f0f0f0;
    transition: all 0.3s ease;
}

.nav-nav-menu--dropdown .nav-item:last-child {
    border-bottom: none;
}

/* スムーズなアニメーション */
.nav-nav-menu--dropdown {
    transform-origin: top center;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* モバイル版でのより詳細な位置調整（メインメニューのみ） */
@media (max-width: 767px) {
    .nav-51 .nav-element.nav-element-aaeaace .nav-nav-menu--dropdown.nav-nav-menu__container {
        left: -15px !important;
        width: calc(100% + 30px) !important;
        min-width: 280px !important;
        margin-top: 0 !important;
        border-radius: 0 !important;
        box-shadow: 0 6px 20px rgba(0,0,0,0.2) !important;
    }
}

/* ==============================
   School(PC)専用の調整
   - ロゴ高さ制限解除
   - カラム幅の調整
   - メニューリンクのパディング調整
   ============================== */
/* PCヘッダーセクションにのみ付与される .nav-element-6b0c931 と
   school判定クラス .nav-is-school を絞り込んで影響範囲を限定 */
.nav-element-6b0c931.nav-is-school .nav-widget-image img {
    max-height: none !important;
    height: auto;
}

.nav-element-6b0c931.nav-is-school .nav-element-9e61cd3 {
    width: 27.806% !important;
}

.nav-element-6b0c931.nav-is-school .nav-element-44622ca {
    width: 72.194% !important;
}

.nav-element-6b0c931.nav-is-school .nav-element-school-inline .nav-nav-menu--layout-horizontal .nav-nav-menu > li > a {
    padding: 10px !important;
    font-size: 0.8em;
    font-weight: 600;
    color: #000;
}

.nav-element-6b0c931.nav-is-school .nav-element-school-inline .nav-nav-menu--layout-horizontal .nav-nav-menu > li > a:hover {
    color: #078E2C;
}

/* タブレット版での位置調整（メインメニューのみ） */
@media (min-width: 768px) and (max-width: 1024px) {
    .nav-51 .nav-element.nav-element-d0c7e4c .nav-nav-menu--dropdown.nav-nav-menu__container {
        left: -10px !important;
        width: calc(100% + 20px) !important;
        margin-top: 6px !important;
    }
}

/* Elementor Icons - elementor-icons.min.cssで定義されているため、ここでは上書きしない */
/* .eicon-menu-bar:before と .eicon-close:before は elementor-icons.min.css から読み込まれます */

/* ==========================================
   メインコンテンツエリアの調整
   ========================================== */

/* スマホ・タブレットのデフォルト値 */
@media (max-width: 1024px) {
    #page {
        padding-top: 60px;
    }
}
