.competition-page { min-width: 0; }
.competition-page .competition-main,
.competition-page .competition-anchor-nav { font-size: 17px; line-height: 1.5; }
.competition-page .competition-container { width: min(1200px, calc(100% - 40px)); margin: 0 auto; }
.competition-page .competition-banner img { display: block; width: 100%; height: auto; }
.competition-page .competition-anchor-nav { padding: 20px 0; background: #f4f6f9; }
.competition-page .competition-anchor-nav .competition-container { display: grid; grid-template-columns: 2fr 1.1fr 1.1fr 1.1fr; gap: 12px; }
.competition-page .competition-anchor-nav a { padding: 6px 12px; text-align: center; white-space: nowrap; font-size: 16px; color: #17245f; border: 1px solid #e7ecf2; background: #fff; }
.competition-page .competition-anchor-nav a.is-active { color: #fff; background: #17245f; font-weight: bold; }
.competition-page .competition-section { padding: 24px 0 36px; scroll-margin-top: 24px; }
.competition-page .competition-section + .competition-section { border-top: 16px solid #f4f6f9; padding-top: 61px; }
.competition-page .competition-heading { height: 48px; margin-bottom: 28px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 1px solid #959bbc; }
.competition-page .competition-heading h2,
.competition-page .competition-heading h3 { color: #17245f; font-size: 24px; line-height: 32px; padding-left: 16px; border-left: 5px solid #17245f; margin: 0; }
.competition-page .competition-heading-small { height: 40px; margin-bottom: 18px; }
.competition-page .competition-heading-small h3 { font-size: 20px; line-height: 28px; border-left-width: 3px; padding-left: 11px; }
.competition-page .competition-more { font-size: 15px; color: #666; line-height: 24px; flex-shrink: 0; margin-top: 6px; }
.competition-page .competition-more .iconfont { font-size: 12px; }
.competition-page .competition-news-columns { display: grid; grid-template-columns: minmax(0, 826fr) minmax(0, 346fr); gap: 28px; }
.competition-page .competition-news-columns > *,
.competition-page .competition-half-columns > * { min-width: 0; }
.competition-page .competition-focus { height: 196px; background: #f4f6f9; }
.competition-page .competition-focus .swiper-slide { display: flex; gap: 22px; padding: 18px; box-sizing: border-box; }
.competition-page .competition-focus-image { display: block; width: 294px; flex-shrink: 0; height: 160px; }
.competition-page .competition-focus-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.competition-page .competition-focus-copy { min-width: 0; flex: 1; }
.competition-page .competition-focus-copy h3 { font-size: 17px; line-height: 26px; font-weight: bold; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.competition-page .competition-focus-copy p { margin: 16px 0 18px; font-size: 15px; line-height: 25px; color: #666; height: 50px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.competition-page .competition-detail { display: inline-flex; align-items: center; width: auto; height: 22px; gap: 8px; color: #a33a24; font-size: 15px; line-height: 22px; }
.competition-page .competition-detail img { width: 12px; height: 12px; object-fit: contain; }
.competition-page .competition-pagination { position: absolute; z-index: 2; right: 18px; bottom: 13px; left: auto; width: auto; display: flex; gap: 10px; }
.competition-page .competition-pagination .competition-bullet { display: block; width: 8px; height: 8px; border-radius: 50%; margin: 0; background: #cbd2dd; opacity: 1; cursor: pointer; }
.competition-page .competition-pagination .competition-bullet-active { background: #17245f; }
.competition-page .competition-news { margin: 0; padding: 0; list-style: none; }
.competition-page .competition-news li { height: 50px; box-sizing: border-box; }
.competition-page .competition-news li + li { border-top: 1px solid #e7ecf2; }
.competition-page .competition-news li > a,
.competition-page .competition-news li > span { display: flex; align-items: center; gap: 10px; height: 100%; line-height: 24px; }
.competition-page .competition-news .iconfont { font-size: 10px; color: #6d7788; flex-shrink: 0; width: 10px; }
.competition-page .competition-news-title { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; flex: 1; min-width: 0; }
.competition-page .competition-news time { font-size: 15px; color: #666; flex-shrink: 0; margin-left: 10px; }
.competition-page .competition-notices { display: flex; flex-direction: column; min-height: 446px; }
.competition-page .competition-notices-national { min-height: 496px; }
.competition-page .competition-notices-heading { display: flex; justify-content: space-between; height: 40px; background: #e7ecf2; flex-shrink: 0; }
.competition-page .competition-notices-heading h3 { margin: 0; padding: 6px 28px 6px 18px; font-size: 20px; line-height: 28px; color: #fff; background: #17245f; clip-path: polygon(0 0,100% 0,87% 100%,0 100%); }
.competition-page .competition-notices-heading .competition-more { margin-top: 8px; }
.competition-page .competition-notice-list { display: flex; flex-direction: column; justify-content: space-evenly; flex: 1; margin: 16px 0 0; padding: 0 20px; list-style: none; background: #2c3259; color: #fff; }
.competition-page .competition-notice-list li { padding: 15px 0; }
.competition-page .competition-notice-list li + li { border-top: 1px solid #535a7a; }
.competition-page .competition-notice-list li > a,
.competition-page .competition-notice-list li > span { display: block; }
.competition-page .competition-notice-list time { display: block; color: #c2c6d5; font-size: 15px; line-height: 21px; margin-bottom: 8px; }
.competition-page .competition-notice-list li > a > span,
.competition-page .competition-notice-list li > span > span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 17px; line-height: 26px; }
.competition-page .competition-certificate { display: block; flex-shrink: 0; margin-top: 16px; }
.competition-page .competition-certificate img { display: block; width: 100%; height: auto; aspect-ratio: 346 / 64; }
.competition-page .competition-half-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.competition-page .competition-picture { position: relative; display: block; overflow: hidden; height: 262px; background: #e7ecf2; }
.competition-page .competition-picture img { width: 100%; height: 100%; display: block; object-fit: cover; }
.competition-page .competition-picture > span { position: absolute; bottom: 0; left: 0; right: 0; background: #17245fe8; color: #fff; font-size: 16px; line-height: 36px; padding: 0 14px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.competition-page .competition-news-compact { background: #e7ecf2; padding: 24px 20px; font-size: 18px; min-height: 257px; }
.competition-page .competition-news-compact li + li { border: 0; margin-top: 16px; }
.competition-page .competition-news-compact li { height: 29px; }
.competition-page .competition-news-compact li > a,
.competition-page .competition-news-compact li > span { height: 29px; line-height: 29px; }
.competition-page .competition-world { padding-bottom: 32px; }
.competition-page .competition-service-columns .competition-news-compact { min-height: 262px; padding-top: 26px; padding-bottom: 27px; }
.competition-page .competition-service-swiper { height: 262px; width: 100%; }
.competition-page .competition-service-swiper .competition-picture > span { padding-right: 76px; }
.competition-page .competition-service-swiper .competition-bullet { background: #8294bb; }
.competition-page .competition-service-swiper .competition-bullet-active { background: #fff; }
.competition-page .competition-showcase { margin-top: 36px; }
.competition-page .competition-gallery { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.competition-page .competition-gallery .competition-picture { height: auto; padding-bottom: 36px; }
.competition-page .competition-gallery img { height: auto; aspect-ratio: 224 / 127; object-fit: cover; }
.competition-page .competition-gallery .competition-picture > span { background: #17245f; }
.competition-page .competition-editions { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.competition-page .competition-editions button { width: 224px; height: 36px; border: 0; padding: 0 12px; background: #e7ecf2; color: #333; font: inherit; font-size: 16px; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.competition-page .competition-editions button.is-active { background: #17245f; color: #fff; font-weight: bold; }
.competition-page .competition-past select { max-width: 240px; height: 36px; border: 0; background: #fff; color: #666; font: inherit; font-size: 15px; cursor: pointer; }
.competition-page .competition-past select:disabled { cursor: default; }
.competition-page .competition-empty { display: flex; align-items: center; justify-content: center; min-height: 100px; color: #666; font-size: 16px; }
.competition-page .competition-gallery > .competition-empty { grid-column: 1 / -1; }
.competition-page .competition-notice-list .competition-empty { color: #c2c6d5; }
.competition-page .competition-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.competition-page [hidden] { display: none !important; }
.competition-page .competition-main a:hover,
.competition-page .competition-more:hover { text-decoration: underline; }
.competition-page .competition-news li > a:hover,
.competition-page .competition-notice-list li > a:hover { text-decoration: none; }
.competition-page .competition-news li > a:hover .competition-news-title,
.competition-page .competition-notice-list li > a:hover > span { text-decoration: underline; }
.competition-page .competition-main :focus-visible,
.competition-page .competition-anchor-nav :focus-visible { outline: 2px solid #a33a24; outline-offset: 3px; }
@media (min-width: 769px) and (max-width: 1100px) {
    .competition-page .competition-focus-image { width: 38%; }
    .competition-page .competition-news-columns { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 20px; }
    .competition-page .competition-editions button { flex: 1; min-width: 0; }
}
@media (max-width: 768px) {
    .competition-page .competition-container { width: calc(100% - 32px); }
    .competition-page .competition-anchor-nav { padding: 12px 0; }
    .competition-page .competition-anchor-nav .competition-container { display: flex; overflow-x: auto; gap: 8px; }
    .competition-page .competition-anchor-nav a { flex-shrink: 0; font-size: 14px; }
    .competition-page .competition-section { padding: 24px 0; }
    .competition-page .competition-section + .competition-section { padding-top: 24px; border-top-width: 10px; }
    .competition-page .competition-heading { height: auto; min-height: 44px; margin-bottom: 20px; }
    .competition-page .competition-heading h2 { font-size: 20px; line-height: 28px; padding-left: 10px; }
    .competition-page .competition-heading-small h3 { font-size: 18px; }
    .competition-page .competition-news-columns,
    .competition-page .competition-half-columns { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .competition-page .competition-focus { height: auto; min-height: 196px; }
    .competition-page .competition-focus .swiper-slide { padding: 14px 14px 32px; gap: 14px; height: auto; }
    .competition-page .competition-focus-image { width: 36%; height: 130px; }
    .competition-page .competition-focus-copy h3 { font-size: 15px; line-height: 23px; }
    .competition-page .competition-focus-copy p { margin: 10px 0; font-size: 13px; line-height: 21px; height: 42px; }
    .competition-page .competition-detail { font-size: 13px; }
    .competition-page .competition-news { font-size: 15px; }
    .competition-page .competition-news time { font-size: 12px; margin-left: 0; }
    .competition-page .competition-news li > a,
    .competition-page .competition-news li > span { gap: 6px; }
    .competition-page .competition-news-compact { padding: 20px 14px; min-height: 0; }
    .competition-page .competition-notices { min-height: 0; }
    .competition-page .competition-notice-list { padding: 0 16px; }
    .competition-page .competition-certificate { max-width: 346px; align-self: center; width: 100%; }
    .competition-page .competition-picture,
    .competition-page .competition-service-swiper { height: auto; aspect-ratio: 588 / 262; }
    .competition-page .competition-service-swiper .competition-picture { height: 100%; }
    .competition-page .competition-showcase { margin-top: 28px; }
    .competition-page .competition-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .competition-page .competition-gallery .competition-picture { aspect-ratio: auto; }
    .competition-page .competition-picture > span { font-size: 14px; padding-left: 10px; padding-right: 10px; }
    .competition-page .competition-editions { flex-wrap: wrap; }
    .competition-page .competition-editions button { width: auto; max-width: 100%; font-size: 14px; }
}
.competition-page #competition-special .competition-notice-list {
    justify-content: flex-start;
}
.competition-page .competition-gallery-swiper { overflow: hidden; width: 100%; min-width: 0; }
.competition-page .competition-gallery-swiper .swiper-slide { height: auto; padding: 0; box-sizing: border-box; }
.competition-page .competition-gallery-swiper .competition-picture { width: 100%; height: auto; }
.competition-page .competition-gallery-controls { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 16px; }
.competition-page .competition-gallery-stage { position: relative; min-width: 0; }
.competition-page .competition-gallery-arrows button { position: absolute; top: calc(50% - 18px); transform: translateY(-50%); z-index: 2; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 4px; background: rgba(23, 36, 95, .7); color: #fff; cursor: pointer; }
.competition-page .competition-gallery-prev { left: 8px; }
.competition-page .competition-gallery-next { right: 8px; }
.competition-page .competition-gallery-arrows button::before { content: ''; display: block; width: 10px; height: 10px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; }
.competition-page .competition-gallery-prev::before { transform: translateX(2px) rotate(-135deg); }
.competition-page .competition-gallery-next::before { transform: translateX(-2px) rotate(45deg); }
.competition-page .competition-gallery-arrows button:hover { background: rgba(23, 36, 95, .95); }
.competition-page .competition-gallery-status { font-size: 14px; color: #666; text-align: center; }
.competition-page .competition-editions button:disabled { cursor: default; opacity: .5; }
.competition-page .competition-gallery-controls {
    display: none;
}
