/* competition global */

ul,
ol {
    margin-bottom: 0;
}

/* container */

#container {
    background-color: #3c3c3c;
    font-size: 18px;
}

#container a {
    color: #09f;
}

/* hero */

#hero {
    width: 960px;
    margin: 0 auto;
}

#hero .hero-banner {
    height: 400px;
}


/* tab */

#tab {
    width: 960px;
    height: 123px;
    margin: 0 auto;
    padding-top: 1px;
}

#tab .tab-items {
    font-size: 0;
}

#tab .tab-items .tab-item {
    display: inline-block;
    width: 192px;
    height: 122px;
}

#tab .tab-items.tab-6 .tab-item {
    width: 160px;
}

#tab .tab-items .tab-item .ti-anchor {
    display: block;
    width: 192px;
    height: 122px;
    background-repeat: no-repeat;
    background-color: #fff;
    background-position: center top;
    background-size: 192px 244px;
    border-right: 1px solid #3c3c3c;
}

#tab .tab-items .tab-item .ti-anchor.active {
    background-position: center bottom;
}

#tab .tab-items .tab-item-outline .ti-anchor {
    background-image: url(/images/competition/2026/tab-outline-bg.png);
}

#tab .tab-items .tab-item-highlights .ti-anchor {
    background-image: url(/images/competition/2026/tab-highlights-bg.png);
}

#tab .tab-items .tab-item-result .ti-anchor {
    background-image: url(/images/competition/2026/tab-result-bg.png);
}

#tab .tab-items .tab-item-climbers .ti-anchor {
    background-image: url(/images/competition/2026/tab-climbers-bg.png);
}

#tab .tab-items .tab-item-schedule .ti-anchor {
    background-image: url(/images/competition/2026/tab-schedule-bg.png);
}

#tab .tab-items .tab-item-access .ti-anchor {
    background-image: url(/images/competition/2026/tab-access-bg.png);
}

#tab .tab-items .tab-item-only-access .ti-anchor {
    background-image: url(/images/competition/2026/tab-only-access-bg.png);
}

#tab .tab-items.tab-6 .tab-item .ti-anchor {
    width: 160px;
}

#tab .tab-items.tab-6 .tab-item .ti-anchor.active {
    background-position: center bottom;
}

#tab .tab-items.tab-6 .tab-item.tab-item-outline .ti-anchor {
    background-image: url(/images/competition/2026/tab6-outline-bg.png);
}

#tab .tab-items.tab-6 .tab-item.tab-item-highlights .ti-anchor {
    background-image: url(/images/competition/2026/tab6-highlights-bg.png);
}

#tab .tab-items.tab-6 .tab-item.tab-item-result .ti-anchor {
    background-image: url(/images/competition/2026/tab6-result-bg.png);
}

#tab .tab-items.tab-6 .tab-item.tab-item-climbers .ti-anchor {
    background-image: url(/images/competition/2026/tab6-climbers-bg.png);
}

#tab .tab-items.tab-6 .tab-item.tab-item-schedule .ti-anchor {
    background-image: url(/images/competition/2026/tab6-schedule-bg.png);
}

#tab .tab-items.tab-6 .tab-item.tab-item-access .ti-anchor {
    background-image: url(/images/competition/2026/tab6-access-bg.png);
    border-right: none;
}

#tab .drop-down {
    display: none;
    position: absolute;
    z-index: 100;
    text-align: center;
}
#tab .drop-down.show {
    display: block;
}

#tab .drop-down a {
    display: block;
    width: 192px;
    padding: 15px 0;
    color: #666;
    font-size: 16px;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
    border-bottom: 1px solid #666;
    background: #fff;
    font-size: 23px;
}

#tab .drop-down a:hover {
    background: #3c3c3c;
    color: #fff;
    text-decoration: none;
}

/* outline */

#outline {
    padding-bottom: 60px;
    background-color: #fff;
}

#outline .outline-header {
    background-color: #3c3c3c;
    background-image: url(/images/competition/2026/header-title-outline.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 500px 80px;
    height: 180px;
}

#outline .outline-content {
    width: 960px;
    margin: 0 auto;
    padding: 30px 0;
}

#outline .oc-title {
    border-left: 5px solid #333;
    padding-left: 10px;
    font-size: 28px;
    line-height: 40px;
    margin-bottom: 30px;
    color: #000;
}

#outline .non-style li {
    list-style-position: inside;
    list-style: none;
}

.oc-card-list {
    background-color: #fff;
    border-top: 1px solid #ccc;
    margin-bottom: 30px;
}

.oc-card {
    display: flex;
    border-bottom: 1px solid #ccc;
}

.oc-label,
.oc-content {
    padding: 10px;
}

.oc-label {
    background-color: #666;
    color: #fff;
    font-weight: normal;
    width: 260px;
    text-align: left;
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.oc-content {
    font-size: 18px;
    width: 100%; /* Flexible under flexbox */
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Zebra striping for cards */
.oc-card:nth-child(odd) .oc-label,
.oc-card:nth-child(odd) .oc-content {
    background-color: #d8d8d8;
    color: #000;
}

.oc-card:nth-child(even) .oc-label,
.oc-card:nth-child(even) .oc-content {
    background-color: #fff;
    color: #000;
}

/* Nested sub-lists for Trainer Application */
.oc-sub-list {
    width: 75%;
    border: 1px solid #ddd;
}
.oc-sub-item {
    display: flex;
    border-bottom: 1px solid #ddd;
}
.oc-sub-item:last-child {
    border-bottom: none;
}
.oc-sub-label {
    width: 200px;
    background-color: #333;
    color: #fff;
    text-align: center;
    padding: 10px;
    flex-shrink: 0;
}
.oc-sub-content {
    padding: 10px;
    background-color: #fff;
    flex-grow: 1;
}

/* holder */

#holder {
    background-color: #fff;
}

#holder .holder-header {
    background-color: #3c3c3c;
    padding-bottom: 60px;
    background-image: url(/images/competition/2026/header-title-outline.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
    background-size: 500px 80px;
}

#holder .holder-content {
    width: 960px;
    margin: 0 auto;
    padding: 30px 0;
    font-size: 18px;
}

#holder .hc-title {
    border-left: 5px solid #333;
    padding-left: 10px;
    font-size: 28px;
    line-height: 40px;
    margin-bottom: 30px;
    color: #000;
}

#holder .hc-subtitle {
    border-bottom: 1px solid #999;
    font-size: 24px;
    line-height: 36px;
    margin-bottom: 10px;
}

/* hightlight */

#highlights {
    background-color: #fff;
}

#highlights .highlights-header {
    background-color: #3c3c3c;
    padding-bottom: 60px;
    background-image: url(/images/competition/2026/header-title-highlights.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
    background-size: 500px 80px;
}

#highlights .highlights-content {
    width: 960px;
    margin: 0 auto;
    padding: 30px 0;
    font-size: 18px;
}

#highlights .hc-title {
    border-left: 5px solid #333;
    padding-left: 10px;
    font-size: 28px;
    line-height: 40px;
    margin-bottom: 30px;
    color: #000;
}

#highlights .hc-cover-image-wrapper {
    width: 960px;
    height: 480px;
}

/* result */

#result {
    background-color: #fff;
    padding-bottom: 60px;
}

#result .result-header {
    background-color: #3c3c3c;
    background-image: url(/images/competition/2026/header-title-result.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
    background-size: 500px 80px;
}

#result .result-content {
    width: 960px;
    margin: 0 auto;
    padding: 30px 0;
}

#result .rc-title {
    border-left: 5px solid #333;
    padding-left: 10px;
    font-size: 28px;
    line-height: 40px;
    margin-bottom: 30px;
    color: #000;
}

#result .rc-subtitle {
    font-size: 24px;
    font-weight: bold;
    line-height: 36px;
    margin-bottom: 10px;
}

/* climbers */

#climbers {
    background-color: #fff;
}

#climbers .climbers-header {
    background-color: #3c3c3c;
    padding-bottom: 60px;
    background-image: url(/images/competition/2026/header-title-climbers.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
    background-size: 500px 80px;
}

#climbers .climbers-content {
    width: 960px;
    margin: 0 auto;
    padding: 30px 0;
}

#climbers .cc-title {
    border-left: 5px solid #333;
    padding-left: 10px;
    font-size: 28px;
    line-height: 40px;
    margin-bottom: 30px;
    color: #000;
}

#climbers .cc-subtitle {
    border-bottom: 1px solid #999;
    font-size: 24px;
    line-height: 36px;
    margin-bottom: 10px;
}

/* order */

#order {
    background-color: #fff;
}

#order .order-header {
    background-color: #3c3c3c;
    padding-bottom: 60px;
    background-image: url(/images/competition/2026/header-title-order.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
    background-size: 500px 80px;
}

#order .order-content {
    width: 960px;
    margin: 0 auto;
    padding: 30px 0;
}

#order .oc-title {
    border-left: 5px solid #333;
    padding-left: 10px;
    font-size: 28px;
    line-height: 40px;
    margin-bottom: 10px;
    color: #000;
}

#order .oc-subtitle {
    font-size: 20px;
    line-height: 28px;
    margin-bottom: 10px;
    color: #333;
}

/* recommendation */

#recommendation {
    background-color: #fff;
}

#recommendation .recommendation-header {
    background-color: #3c3c3c;
    padding-bottom: 60px;
    background-image: url(/images/competition/2026/header-title-recommendation.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
    background-size: 500px 80px;
}

#recommendation .recommendation-content {
    width: 960px;
    margin: 0 auto;
    padding: 30px 0;
}

#recommendation .rc-title {
    border-left: 5px solid #333;
    padding-left: 10px;
    font-size: 28px;
    line-height: 40px;
    margin-bottom: 30px;
    color: #000;
}

#recommendation .rc-subtitle {
    border-bottom: 1px solid #999;
    font-size: 24px;
    line-height: 36px;
    margin-bottom: 10px;
}

/* schedule */
#schedule {
    padding-bottom: 60px;
    background-color: #fff;
}

#schedule .schedule-header {
    background-color: #3c3c3c;
    background-image: url(/images/competition/2026/header-title-schedule.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
    background-size: 500px 80px;
}

#schedule .schedule-content {
    width: 960px;
    margin: 0 auto;
    padding: 30px 0;
}

#schedule .sc-title {
    border-left: 5px solid #333;
    padding-left: 10px;
    font-size: 28px;
    line-height: 40px;
    margin-bottom: 30px;
    color: #000;
}

#schedule .sc-subtitle {
    border-bottom: 1px solid #999;
    font-size: 24px;
    line-height: 36px;
    margin-bottom: 10px;
}

#schedule .game td {
    font-weight: bold;
    font-style: italic;
}


/* access */

#access {
    background-color: #fff;
    padding-bottom: 60px;
}

#access .access-header {
    background-color: #3c3c3c;
    background-image: url(/images/competition/2026/header-title-access.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
    background-size: 500px 80px;
}

#access .access-header.only {
    background-image: url(/images/competition/2026/header-title-only-access.png);
}

#access .access-content {
    width: 960px;
    margin: 0 auto;
    padding: 30px 0;
}

#access .ac-title {
    border-left: 5px solid #333;
    padding-left: 10px;
    font-size: 28px;
    line-height: 40px;
    margin-bottom: 30px;
    color: #000;
}

#access .ac-subtitle {
    border-bottom: 1px solid #999;
    font-size: 24px;
    line-height: 36px;
    margin-bottom: 10px;
}

/* information */

#information {
    background-color: #fff;
    padding-bottom: 60px;
}

#information .information-header {
    background-color: #3c3c3c;
    background-image: url(/images/competition/2026/information-header-title.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
}

#information .information-content {
    width: 960px;
    margin: 0 auto;
    padding: 30px 0;
}

#information .im-title {
    border-left: 5px solid #333;
    padding-left: 10px;
    font-size: 28px;
    line-height: 40px;
    margin-bottom: 30px;
    color: #000;
}

#information .im-subtitle {
    border-bottom: 1px solid #999;
    font-size: 24px;
    font-weight: bold;
    line-height: 36px;
    margin-bottom: 10px;
}

/* sponsors */

#sponsors-wrapper {
    background-color: #000;
    text-align: center;
}

#sponsors {
    width: 960px;
    margin: 0 auto;
}

#sponsors .sponsors-header {
    width: 960px;
    margin: 0 auto;
    background-image: url(/images/competition/2026/sponsors-header-title.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
    background-size: 320px 60px;
}

#sponsors .sponsors-banner {
    width: 960px;
    margin: 0 auto;
    padding-bottom: 60px;
}

#sponsors .sb-items {
    list-style-type: none;
    vertical-align: middle;
    text-align: center;
    font-size: 0;
    margin-bottom: 20px;
}

#sponsors .sb-item {
    display: inline-block;
    vertical-align: middle;
    width: 310px;
    height: 140px;
    background-color: #fff;
    text-align: center;
    margin-right: 15px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

#sponsors .sb-item-dmg {
	background-image: url(/images/competition/2026/sponsors-banner-dmg.png);
}

#sponsors .sb-item-sumitomocorp {
	background-image: url(/images/competition/2026/sponsors-banner-sumitomocorp.png);
}

#sponsors .sb-item-cow-soap {
	background-image: url(/images/competition/2026/sponsors-banner-cow-soap.png);
}

#sponsors .sb-item-nisshinkasai {
	background-image: url(/images/competition/2026/sponsors-banner-nisshinkasai.png?v=2);
}

#sponsors .sb-item-tosho {
	background-image: url(/images/competition/2026/sponsors-banner-tosho.png);
}

#sponsors .sb-item-nishio {
	background-image: url(/images/competition/2026/sponsors-banner-nishio.png);
}

#sponsors .sponsors-banner h3 {
	font-size: 16px;
	color: #ffffff;
	margin-bottom: 10px;
	font-weight: normal;
	font-family: Meiryo, sans-serif;
}

  #sponsors .sb-item-large {
    width: 310px;
    height: 140px;
    margin-right: 15px;
  }

  #sponsors .sb-item-medium {
    width: 231px;
    height: 104px;
    margin-right: 12px;
  }

  #sponsors .sb-item-small {
    width: 153px;
    height: 69px;
    margin-right: 8px;
}

/* suppliers */

#suppliers-wrapper {
    background-color: #999;
    text-align: center;
}

#suppliers {
    width: 960px;
    margin: 0 auto;
}

#suppliers .suppliers-header {
    width: 960px;
    margin: 0 auto;
    background-image: url(/images/competition/2026/suppliers-header-title.png);
    background-repeat: no-repeat;
    background-position: center center;
    height: 180px;
    background-size: 320px 60px;
}

#suppliers .suppliers-banner {
    width: 960px;
    margin: 0 auto;
    padding-bottom: 60px;
    text-align: center;
}

#suppliers .sb-items {
    list-style-type: none;
    vertical-align: middle;
    font-size: 0;
}

#suppliers .sb-item {
    display: inline-block;
    vertical-align: middle;
    width: 310px;
    height: 140px;
    background-color: #fff;
    text-align: center;
    margin-right: 15px;
    background-repeat: no-repeat;
    background-position: center center;
}

#suppliers .sb-item:last-child {
    margin-right: 0;
}

#suppliers .sb-item-anchor {
    display: block;
    width: 310px;
    height: 140px;
    border: 1px solid #808080;
}

#suppliers .sb-item-silver {
    width: 231px;
    height: 104px;
    margin-right: 12px;
}

#suppliers .sb-item-silver-anchor {
    width: 231px;
    height: 104px;
}

#suppliers .sb-item-silver-tnf {
    background-image: url(/images/competition/2026/suppliers-banner-silver-tnf.png);
}


/* links */

#links {
    background-color: #fff;
}

#links .links-header {
    width: 960px;
    margin: 0 auto;
    background-image: url(/images/competition/2026/links-header-title.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 320px 60px;
    height: 180px;
}

#links .links-banner {
    padding-bottom: 60px;
}

#links .lb-items {
    width: 960px;
    margin: 0 auto;
    list-style-type: none;
    vertical-align: middle;
    text-align: center;
    font-size: 0;
}

#links .lb-item {
    display: inline-block;
    vertical-align: middle;
    width: 310px;
    height: 120px;
    background-color: #fff;
    text-align: center;
    margin-right: 15px;
    border: 1px solid #ccc;
    background-repeat: no-repeat;
    background-position: center center;
}

#links .lb-item.jada {
    width: 300px;
    height: 150px;
    margin-top: 20px;
}

#links .lb-item-anchor {
    display: block;
    width: 310px;
    height: 120px;
}

#links .lb-item-anchor.jada {
    width: 300px;
    height: 150px;
}

#links .lb-item:last-child {
    margin-right: 0;
}

#links .lb-item-jcrd {
    background-image: url(/images/competition/2026/links-banner-jcrd.png);
}

#links .lb-item-anchor span {
    display: none;
}

#links .lb-item-jsc {
    background-image: url(/images/links-banner-jsc.png);
}

#links .lb-item-toto {
    background-image: url(/images/competition/2026/links-banner-toto.png);
    background-size: contain;
}

#links .lb-item-jada {
    background-image: url(/images/links-banner-jada.jpg);
    background-size: 100%;
    width: 300px;
    height: 150px;
}

/* btn */
#container a.btn-outline-primary:hover {
    color: #fff;
}

/* Desktop Layout Fix */
.gh-header-row {
    float: left;
    width: 480px;
    margin: 0;
    padding: 30px 0 0 0; /* Align vertically with right logo (110px - 50px)/2 */
}
#gh-content .gh-jmsca-logo {
    float: right;
    display: block; /* Ensure it floats properly */
}
#gh-content .gh-nav-wrapper {
    clear: both;
    width: 100%;
}

/* Hamburger Menu Base (Hidden on Desktop) */
.hamburger-menu {
    display: none;
    cursor: pointer;
    width: 30px;
    height: 25px;
    position: relative;
    z-index: 1000;
}
.hamburger-menu span {
    display: block;
    width: 100%;
    height: 3px;
    background-color: #333;
    position: absolute;
    left: 0;
    transition: all 0.3s;
}
.hamburger-menu span:nth-child(1) { top: 0; }
.hamburger-menu span:nth-child(2) { top: 11px; }
.hamburger-menu span:nth-child(3) { bottom: 0; }

.hamburger-menu.active span:nth-child(1) {
    transform: rotate(45deg);
    top: 11px;
}
.hamburger-menu.active span:nth-child(2) {
    opacity: 0;
}
.hamburger-menu.active span:nth-child(3) {
    transform: rotate(-45deg);
    bottom: 11px;
}

#mobile-menu {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.95);
    z-index: 999;
    overflow-y: auto;
    padding-top: 60px;
    text-align: center;
}
#mobile-menu.open {
    display: block;
}
.mm-content {
    padding: 20px;
}
.mm-user, .mm-nav {
    list-style: none;
    padding: 0;
    margin-bottom: 30px;
}
.mm-user li, .mm-nav li {
    margin-bottom: 15px;
    font-size: 18px;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}
.mm-user li a, .mm-nav li a {
    color: #333;
    text-decoration: none;
    display: block;
    width: 100%;
}
.mm-logo img {
    max-width: 200px;
    height: auto;
}

@media screen and (max-width: 768px) {
    #container {
        width: 100%;
        margin: 0;
        padding-bottom: 60px;
    }
    #hero {
        width: 100%;
        margin: 0;
    }
    #hero .hero-banner {
        height: auto;
    }

    #tab {
        width: 100%;
        height: auto;
        margin: 0;
        position: relative;
    }
    #tab .tab-items {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
    }
    #tab .tab-items .tab-item {
        width: 33.33%; /* 3 items per row */
        height: auto;
        display: block;
    }
    #tab .tab-items .tab-item .ti-anchor {
        width: 100%;
        height: 60px; /* Reduced height for mobile */
        background-size: cover;
        background-position: center top !important; /* Keep icon visible */
    }

    #outline .outline-content,
    #holder .holder-content,
    #highlights .highlights-content,
    #result .result-content,
    #climbers .climbers-content,
    #order .order-content,
    #recommendation .recommendation-content,
    #schedule .schedule-content,
    #access .access-content,
    #information .information-content {
        width: 100%;
        padding: 20px 10px;
        box-sizing: border-box;
    }

    #outline .outline-header
    {
        background-size: auto 55px;
        height: 90px;
        width: 100%;
    }

    #sponsors .sponsors-header,
    #suppliers .suppliers-header,
    #links .links-header,
    #gf-links .links-header,
    #gf-suppliers .gf-suppliers-header,
    #gf-sponsors .gf-sponsors-header {
        background-size: auto 60px;
        height: 130px;
        width: 100%;
    }

    .oc-card-list {
        width: 100%;
    }
    .oc-card {
        flex-direction: column;
    }
    .oc-label,
    .oc-content {
        width: 100%;
        box-sizing: border-box;
    }

    /* Sponsors & Suppliers Responsive */
    #sponsors, #suppliers, #links, #gf-sponsors, #gf-suppliers, #gf-links {
        width: 100%;
    }
    #sponsors .sponsors-banner,
    #suppliers .suppliers-banner,
    #links .links-banner,
    #gf-sponsors .gf-sponsors-banner,
    #gf-suppliers .gf-suppliers-banner,
    #gf-links .links-banner {
        width: 100%;
        padding-bottom: 20px;
        text-align: center !important;
    }

    #sponsors .sb-items,
    #suppliers .sb-items,
    #links .lb-items,
    #gf-sponsors .sb-items,
    #gf-suppliers .sb-items,
    #gf-links .lb-items {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        padding: 0 !important;
        margin-left:auto !important;
        margin-right:auto !important;
        width: 100% !important;
        list-style: none !important;
    }

    #sponsors .sb-item,
    #suppliers .sb-item,
    #links .lb-item,
    #gf-sponsors .sb-item,
    #gf-suppliers .sb-item,
    #gf-links .lb-item {
        margin: 10px !important;
        display: block !important;
        max-width: 100% !important;
        background-size: contain !important;
        float: none !important;
    }

    /* Match PC Sizes precisely as requested */
    #sponsors .sb-item-large {
        width: 310px !important;
        height: 140px !important;
    }
    #sponsors .sb-item-medium,
    #suppliers .sb-item-silver {
        width: 231px !important;
        height: 104px !important;
    }
    #sponsors .sb-item-small {
        width: 153px !important;
        height: 69px !important;
    }
    #links .lb-item {
        width: 310px !important;
        height: 120px !important;
    }

    #links .lb-item-jada {
        width: 300px !important;
        height: 150px !important;
    }

    #links .lb-item.jada {
        width: 300px !important;
        height: 150px !important;
    }

    #links .lb-item-jsc {
        background-size: 95% !important;
    }

    /* Ensure specific anchored items scale correctly */
    #sponsors .sb-item-anchor,
    #suppliers .sb-item-anchor,
    #links .lb-item-anchor,
    #gf-sponsors .sb-item-anchor {
        width: 100% !important;
        height: 100% !important;
        display: block !important;
    }

    #sponsors .sb-item img,
    #gf-sponsors .sb-item img {
        width: 100% !important;
        height: auto !important;
    }

    /* Footer */
    #gf-copyright {
        width: 100%;
        padding: 40px 10px;
        box-sizing: border-box;
    }
    #gf-copyright .gf-copyright-logo {
        float: none;
        text-align: center;
        margin-bottom: 20px;
    }
    #gf-copyright .gf-copyright-logo img {
        margin: 0 auto;
    }
    #gf-copyright .gf-copyright-text {
        text-align: center;
    }
    #gf-copyright .gf-docs-link {
        width: 100%;
        margin-left: 0;
        text-align: center;
    }

    /* Global Header Overrides for Mobile */
    #gh-content {
        width: 100%;
        padding: 10px;
        box-sizing: border-box;
    }
    .gh-header-row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        padding: 0; /* Reset desktop padding */
    }
    #gh-content .gh-logo {
        width: auto;
        height: 50px; /* match logo height */
        display: flex;
        align-items: center;
        margin: 0;
    }
    #gh-content .gh-logo .gh-logo-image {
        height: 40px; /* Slightly smaller for mobile */
        width: auto;
    }

    /* Hide desktop elements */
    #gh-user-wrapper,
    .gh-nav-wrapper,
    #gh-content > .gh-jmsca-logo {
        display: none !important;
    }

    /* Show hamburger */
    .hamburger-menu {
        display: block;
    }

}

/* Competition Menu Redesign (Mobile Option B - 5 Column Refined) */
@media screen and (max-width: 768px) {
    #tab {
        width: 100%;
        height: auto;
        padding: 5px 2px;
        background-color: #f5f5f5; /* Light grey bg for contrast */
    }
    #tab .tab-items {
        display: flex;
        flex-wrap: nowrap;
        gap: 2%;
        justify-content: space-between;
    }
    #tab .tab-items .tab-item {
        width: 18% !important; /* Fit 5 items */
        height: auto !important;
        margin: 0 !important;
        display: block !important;
    }
    #tab .tab-items .tab-item .ti-anchor {
        width: 100% !important;
        height: auto !important;
        background-image: none !important; /* Hide desktop bg */
        border: none !important;
        padding: 0;
        display: block !important;
    }

    .mobile-tab-label {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        justify-content: center; /* Vertically centered */
        background-color: #fff;
        border-radius: 4px;
        padding: 8px 2px;
        box-shadow: 0 1px 2px rgba(0,0,0,0.05);
        position: relative;
        text-align: center;
        height: 100%; /* Fill anchor */
        min-height: 85px; /* Fixed height for consistency */
        color: #000;
        text-decoration: none;
    }
    .ti-anchor:hover .mobile-tab-label {
        text-decoration: none;
        background-color: #fafafa;
    }

    /* Borders (Half of the frame) */
    .mobile-tab-label::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 50%; /* Half width */
        height: 3px;
        background-color: #3c3c3c;
        border-bottom-right-radius: 0;
        border-bottom-left-radius: 0;
        border-top-left-radius: 4px;
    }
    .mobile-tab-label::after {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 3px;
        height: 50%; /* Half height */
        background-color: #3c3c3c;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
        border-top-left-radius: 4px;
    }

    .mtl-icon {
        width: 27px; /* Larger icons */
        height: 27px;
        margin-bottom: 4px;
        margin-top: 5px;
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
    }

    .mtl-text {
        font-size: 10px;
        font-weight: bold;
        color: #000;
        line-height: 1.25;
        word-break: keep-all;
    }

    /* SVG Icons */
    .icon-outline {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3Cpolyline points='10 9 9 9 8 9'/%3E%3C/svg%3E");
    }
    .icon-climbers {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
    }
    .icon-schedule {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
    }
    .icon-result {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='2' width='8' height='4' rx='1' ry='1' /%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' /%3E%3Cpath d='M12 11h4' /%3E%3Cpath d='M12 16h4' /%3E%3Cpath d='M8 11h.01' /%3E%3Cpath d='M8 16h.01' /%3E%3C/svg%3E");
    }
    .icon-access {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11a2 2 0 0 0 2 2h0a2 2 0 0 0 2-2v0a2 2 0 1 1 4 0v0a2 2 0 0 0 2 2h0a2 2 0 1 1 4 0v0a2 2 0 0 0 2-2v0'/%3E%3Cpath d='M21 21H3V3h18v18Z'/%3E%3Cline x1='3' y1='12' x2='21' y2='12' stroke-dasharray='4 4'/%3E%3C/svg%3E");
    }
}


/* Competition Outline Redesign (Mobile Card Stack - DIV Structure) */
@media screen and (max-width: 768px) {
    /* Reset wrapper width and background */
    .outline-content,
    #participation .outline-content,
    #notes .outline-content,
    #recommendation .recommendation-content,
    #schedule .schedule-content,
    #access .access-content,
    #information .information-content {
        width: 100% !important;
        padding: 2px 15px 20px 15px !important;
        box-sizing: border-box;
    }

    #climbers .climbers-content,
    #holder .holder-content,
    #order .order-content {
        width: 100% !important;
        padding: 2px 15px 20px 15px !important;
        box-sizing: border-box;
    }

    .oc-card-list {
        background-color: transparent !important;
        border: none !important;
        margin-bottom: 0 !important;
    }

    /* Item Card */
    .oc-card {
        display: block !important;
        margin-bottom: 20px;
        background-color: #fff;
        border-radius: 8px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.06);
        padding: 20px !important;
        border: 1px solid #f0f0f0;
    }
    .oc-card:last-child {
        margin-bottom: 0;
    }

    /* Header styling (Label) */
    .oc-label {
        width: 100% !important;
        background-color: transparent !important;
        color: #333;
        font-size: 15px !important;
        font-weight: bold;
        text-align: left;
        padding: 0 0 10px 0 !important;
        margin-bottom: 15px !important;
        display: inline-block !important;
    }

    /* Content styling */
    .oc-content {
        width: 100% !important;
        color: #000;
        font-size: 15px !important;
        line-height: 1.6 !important;
        padding: 0 !important;
        background-color: transparent !important;
    }

    /* Nested sub-lists for Trainer Application */
    .oc-sub-list {
        width: 100% !important;
        border-top: none !important;
    }
    .oc-sub-item {
        display: block !important;
        margin-top: 10px;
        border: 1px solid #eee;
        border-radius: 4px;
        overflow: hidden;
    }
    .oc-sub-label {
        width: 100% !important;
        padding: 5px !important;
        background-color: #333 !important;
        color: #fff !important;
        font-size: 12px !important;
        text-align: center;
    }
    .oc-sub-content {
        padding: 10px !important;
        background-color: #fff !important;
        font-size: 14px !important;
    }

    /* Sections headers */
    .oc-title {
        font-size: 24px !important; /* Slightly larger */
        line-height: 1.4 !important;
        margin-bottom: 25px !important;
        border-left-width: 5px !important;
        padding-left: 15px !important;
        background-color: #fff; /* Ensure label legible on gray bg */
        padding-top: 5px;
        padding-bottom: 5px;
        margin-top: 15px;
    }

    /* Make lists inside content behave nicely */
    .oc-content ul {
        padding-left: 20px;
        margin: 5px 0 0 0;
    }

    /* Alerts inside content */
    .alert {
        width: 100% !important;
        box-sizing: border-box;
        margin-top: 15px !important;
        border-radius: 6px;
    }


    /* Mobile Table & Layout Adjustments */
    .table-responsive {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Responsive Iframe (Maps) */
    .ac-map {
        position: relative;
        padding-bottom: 56.25%; /* 16:9 ratio */
        height: 0;
        overflow: hidden;
        max-width: 100%;
        background: #eee;
    }
    .ac-map iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: 0;
    }

    /* Sub-page Headers on Mobile */
    #climbers .climbers-header,
    #schedule .schedule-header,
    #access .access-header,
    #order .order-header,
    #holder .holder-header {
        background-size: auto 55px;
        height: 90px;
                background-position: center;
    }

    /* Mobile font size adjustments for tables */
    /* Merged Media Query */
        /* Access Page Specifics */
        .ac-title, .cc-title, .sc-title, .oc-title, .hc-title {
            font-size: 1.5rem;
            margin-top: 20px;
            margin-bottom: 15px;
        }
        .ac-subtitle, .sc-subtitle, .hc-subtitle {
            font-size: 1.2rem;
            margin-top: 20px;
            margin-bottom: 10px;
            padding-left: 2px;
        }

        /* Compact tables for mobile */
        .table {
            font-size: 12px !important;
        }
        .table th, .table td {
             padding: 4px 6px !important;
             /* white-space: nowrap;  Prevent awkward wrapping if possible, or allow it but keep tight */
        }
        /* Allow wrapping for long text like affiliations if needed, but names usually short */
        .table td a {
            display: inline-block;
        }

    /* Mobile Modal for Dropdowns */
        #tab .drop-down.show {
            display: flex;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.9);
            z-index: 9999;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }

        #tab .drop-down.show a {
            display: block;
            width: 80%;
            max-width: 300px;
            padding: 20px;
            margin: 15px 0;
            background: #fff;
            color: #333;
            font-size: 18px;
            font-weight: bold;
            text-align: center;
            border-radius: 8px;
            border: none;
            text-decoration: none;
        }

        /* Sponsors Mobile Styles */
        #sponsors .sponsors-banner {
            width: 100% !important;
            padding-bottom: 20px;
        }
        #sponsors .sb-items {
            display: block;
            width: 100%;
            margin-bottom: 20px;
        }
        #sponsors .sb-item {
            display: inline-block;
        }
        #sponsors .sb-item-sumitomocorp,
        #sponsors .sb-item-dmg,
        #sponsors .sb-item-cow-soap,
        #sponsors .sb-item-nisshinkasai,
        #sponsors .sb-item-tosho,
        #sponsors .sb-item-nishio,
        #sponsors .sb-item-large,
        #sponsors .sb-item-medium,
        #sponsors .sb-item-small {
            max-width: 310px;
            height: auto;
            background-size: contain;
        }
        /* Specific height adjustments if background-size: contain makes them too short */
        #sponsors .sb-item-sumitomocorp,
        #sponsors .sb-item-dmg,
        #sponsors .sb-item-large {
             height: 140px;
        }
        #sponsors .sb-item-cow-soap,
        #sponsors .sb-item-nisshinkasai,
        #sponsors .sb-item-tosho,
        #sponsors .sb-item-nishio,
        #sponsors .sb-item-medium {
            height: 104px;
        }
        #sponsors .sb-item-small {
            height: 69px;
        }
    }

    /* Mobile Menu Redesign */
    @media screen and (max-width: 768px) {
        .mobile-menu {
            position: fixed;
            top: 50px; /* Adjust based on header height */
            left: 0;
            width: 100%;
            height: calc(100vh - 50px);
            background-color: rgba(255, 255, 255, 0.98);
            z-index: 9990;
            transform: translateX(100%);
            transition: transform 0.3s ease-in-out;
            overflow-y: auto;
            display: block;
            visibility: hidden; /* Hide when closed to prevent focusing */
        }

        .mobile-menu.open {
            transform: translateX(0);
            visibility: visible;
        }

        .mm-content {
            padding: 30px 20px;
            max-width: 600px;
            margin: 0 auto;
        }

        .mm-section {
            margin-bottom: 35px;
        }

        .mm-heading {
            font-size: 13px;
            color: #888;
            letter-spacing: 0.08em;
            border-bottom: 2px solid #888; /* Gray accent */
            padding-bottom: 8px;
            margin-bottom: 0;
            font-weight: bold;
            display: inline-block;
        }

        .mm-list {
            list-style: none;
            padding: 0;
            margin: 0;
            margin-top: 10px;
        }

        .mm-list li {
            margin-bottom: 0;
            border-bottom: 1px solid #f0f0f0;
        }

        .mm-list li:last-child {
            border-bottom: none;
        }

        .mm-list li a,
        .mm-list li.login span {
            display: flex;
            align-items: center;
            padding: 18px 5px;
            color: #000;
            text-decoration: none;
            font-size: 16px;
            font-weight: 500;
            transition: background-color 0.2s;
        }

        .mm-list li a:active {
            background-color: #fafafa;
        }

        .mm-list li i {
            color: #ccc;
            margin-right: 15px;
            font-size: 18px;
            width: 24px;
            text-align: center;
            transition: color 0.2s;
        }

        /* Active/Hover state for icons */
        .mm-list li a:hover i,
        .mm-list li a.active i {
            color: #888;
        }
        .mm-list li a.active {
            background-color: #f5f5f5;
            font-weight: bold;
        }

        .mm-logo {
            text-align: center;
            margin-top: 40px;
            padding-top: 30px;
            border-top: 1px solid #eee;
            margin-bottom: 40px;
        }

        .mm-logo img {
            height: auto;
            width: 30%;
            opacity: 0.7;
        }
    }
