@charset "utf-8";

/* 既存テーマの750px幅・書体を引き継ぐ競技会詳細ページ。 */
.event-page { background: #fff; color: #292929; }
.event-page *, .event-page *::before, .event-page *::after { box-sizing: border-box; }
.event-page button { font: inherit; color: inherit; cursor: pointer; }
.event-page a:focus-visible, .event-page summary:focus-visible { outline: 3px solid #0070c7; outline-offset: 4px; }

/* 写真上では所属シリーズと大会名だけを表示する。 */
.event-page .event-hero { position: relative; min-height: 390px; display: flex; align-items: flex-end; isolation: isolate; padding: 100px 35px 35px; color: #fff; background: #183346; }
.event-page .event-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.event-page .event-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0, 0, 0, .12), rgba(0, 0, 0, .78)); }
.event-page .event-hero-series { font-size: 24px; line-height: 1.65; margin-bottom: 14px; }

/* 競技会名が未入力なら、シリーズ名をヒーロー下端へ詰める。 */
.event-page .event-hero-series:last-child { margin-bottom: 0; }
.event-page h1 { font-size: 33px; font-weight: 500; line-height: 1.5; }
.event-page .event-content { padding: 28px 25px 45px; }

/* 開催概要・申込・資料への入口。 */
.event-page .event-overview { padding: 25px; border: 1px solid #ddd; border-top: 4px solid #0091ff; border-radius: 4px; margin: 0 0 42px; }
.event-page .event-overview-title { margin: 0 0 20px; font-size: 27px; font-weight: 500; }
.event-page .event-facts { margin: 0 0 24px; font-size: 23px; line-height: 1.7; }
.event-page .event-facts > div { display: grid; grid-template-columns: 125px minmax(0, 1fr); gap: 10px; padding: 3px 0; }
.event-page .event-facts dt, .event-page .event-facts dd { margin: 0; font-size: inherit; }
.event-page .event-facts dt::after { content: "："; float: right; }
.event-page .event-entry-period { display: flex; align-items: center; justify-content: center; gap: 12px; font-size: 20px; margin-bottom: 12px; }
.event-page .event-status { background: #e5f6ee; color: #006a43; padding: 4px 12px; font-size: 18px; font-weight: 500; }
.event-page .event-entry-button { position: relative; width: 100%; padding: 22px 55px; border: 0; border-radius: 3px; background: linear-gradient(135deg, #008bff, #00a6ff); color: #fff; font-size: 27px; font-weight: 600; text-align: center; }
.event-page .event-entry-button > span { position: absolute; right: 24px; color: #ffff00; }
.event-page .event-official-button { position: relative; display: flex; flex-direction: column; align-items: center; width: 100%; padding: 13px 45px; border: 1px solid #d6dce0; border-radius: 3px; background: #f4f5f6; margin-bottom: 16px; font-size: 24px; }
.event-page .event-official-button small, .event-page .event-document-button small { display: block; font-family: "Josefin Sans", sans-serif; font-size: 19px; line-height: 1.4; font-weight: 600; }
.event-page .event-official-button small { border-top: 1px solid #cfd3d6; padding-top: 6px; margin-top: 7px; min-width: 230px; }
.event-page .event-official-button b { position: absolute; right: 23px; top: 28px; font-weight: 400; color: #657784; }
/* ボタンが減っても、3個並ぶときと同じ幅を維持する。 */
.event-page .event-document-buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.event-page .event-document-button { padding: 19px 6px 15px; border: 1px solid #dce0e5; border-radius: 3px; font-size: 23px; text-align: center; }
.event-page .event-document-button small { margin: 13px 5px 0; padding-top: 12px; border-top: 1px solid rgba(0, 0, 0, .12); font-size: 17px; }

/* トップページの英字見出し・青を引き継いだ資料一覧。 */
.event-page .event-section { margin: 0 0 45px; }
.event-page .event-section-title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px 16px; margin: 0 0 17px; }
.event-page .event-section-title > span { font-family: "Josefin Sans", sans-serif; font-size: 60px; line-height: 1.1; color: #0091ff; margin: 0; }
.event-page .event-section-title > small { font-size: 17px; font-weight: 400; }
.event-page .event-notices { margin: 0; padding: 0; list-style: none; }
.event-page .event-notices li:nth-child(odd) { background: #f5f5f5; }
.event-page .event-notices li:nth-child(even) { background: #ebebeb; }
/* タイトル・日付・矢印を1行の情報として揃える。 */
/* タイトル1行・2行とも同じ高さにし、3行目から内容に応じて伸ばす。 */
.event-page .event-notices a, .event-page .event-notices .event-notice-content { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 126px; align-items: center; column-gap: 14px; width: 100%; min-height: 98px; padding: 12px 60px 12px 20px; border: 0; background: transparent; text-align: left; }
.event-page .event-notice-title { min-width: 0; overflow-wrap: anywhere; font-size: 23px; line-height: 1.6; }
.event-page .event-notice-meta { display: flex; align-items: center; justify-content: flex-start; gap: 8px; margin: 0; font-size: 18px; color: #535353; }
.event-page .event-notice-meta time { white-space: nowrap; }

/* 行全体がリンク。矢印は枠を付けず、背景に馴染む目印にする。 */
.event-page .event-notice-open { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 40px; color: #a3b8c7; font: 400 48px/1 Arial, sans-serif; }
.event-page .event-new { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; background: #db2449; pointer-events: none; }
.event-page .event-more summary { width: fit-content; margin: 12px 0 0 auto; padding: 10px 22px; background: #4d4d4d; color: #fff; font-size: 19px; list-style: none; cursor: pointer; }
.event-page .event-more summary::-webkit-details-marker { display: none; }
.event-page .event-more[open] summary { margin-bottom: 12px; }

/* 紹介文は下部に控えめにまとめ、シリーズページへつなぐ。 */
.event-page .event-about { margin: 10px 0 0; padding: 28px 25px; background: #f4f8fb; border-top: 2px solid #0091ff; }
.event-page .event-about h2 { font-size: 25px; font-weight: 500; margin: 0 0 16px; }
.event-page .event-about p { font-size: 20px; line-height: 1.9; }
.event-page .event-about h3 { font-size: 21px; font-weight: 500; margin: 25px 0 4px; }
.event-page .event-about .event-series-intro { font-size: 17px; color: #5c6770; margin-bottom: 13px; }
.event-page .event-series-links a { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 0; border: 0; border-bottom: 1px solid #d5e1ea; background: transparent; color: #0069af; font-size: 20px; line-height: 1.6; text-align: left; }
.event-page .event-series-links a span { font-size: 28px; }

/* 公開済みは青、未公開はグレー。資料の種類ごとの色分けはしない。 */
.event-page a { text-decoration: none; }
.event-page .event-document-button { display: flex; flex-direction: column; justify-content: center; min-height: 112px; color: #145a86; background: #edf5fb; border-color: #bcd3e3; line-height: 1.5; }
.event-page .event-document-button small { border-color: #ccdde9; }
.event-page .event-document-button:hover { background: #deedf8; border-color: #6aa9d2; opacity: 1; }
.event-page .event-regulation-button:not(.is-unavailable) { border-color: #f2a1b7; background: #fff0f4; color: #c6244a; box-shadow: 0 6px 14px rgba(211, 36, 73, .15); }
.event-page .event-regulation-button:not(.is-unavailable) small { border-color: #f5bfd0; }
.event-page .event-regulation-button:not(.is-unavailable):hover { border-color: #e97899; background: #ffe0e9; box-shadow: 0 8px 18px rgba(211, 36, 73, .23); }
.event-page .event-document-result:not(.is-unavailable) { border-color: #8ed0f5; background: #e1f4ff; color: #0079c2; box-shadow: 0 6px 14px rgba(0, 145, 255, .16); }
.event-page .event-document-result:not(.is-unavailable) small { border-color: #a9daf5; }
.event-page .event-document-result:not(.is-unavailable):hover { border-color: #5db9ed; background: #cbeaff; box-shadow: 0 8px 18px rgba(0, 145, 255, .24); }
.event-page .event-document-button.is-unavailable, .event-page .event-document-button.is-unavailable:hover { color: #707982; background: #f1f3f4; border-color: #dce1e5; cursor: default; }
.event-page .is-unavailable small { color: #707982; border-color: #dce1e5; font-family: inherit; font-size: 16px; font-weight: 400; }
.event-page .event-entry-button { display: flex; align-items: center; justify-content: center; grid-column: 2 / 4; min-height: 112px; padding: 20px 38px 20px 18px; font-size: 25px; background: linear-gradient(135deg, #0074c9, #0086df); }
.event-page .event-entry-button:hover { background: #0069b9; opacity: 1; }
.event-page .event-entry-button > span { right: 15px; color: #fff; }
.event-page .event-entry-wait { grid-column: 2 / 4; }

/* 特別規則書がなくても、参加者一覧と競技結果の位置を動かさない。 */
.event-page .event-document-entrylist { grid-column: 2; grid-row: 1; }
.event-page .event-document-result { grid-column: 3; grid-row: 1; }
.event-page .event-official-button { color: #3c5364; background: #f6f8fa; }
.event-page .event-official-button:hover { background: #eaf1f6; opacity: 1; }

/* 受付状態はボタン群の下。開催日以降はPHP側で欄ごと出力しない。 */
.event-page .event-entry-period { justify-content: flex-start; flex-wrap: wrap; margin: 22px 0 0; padding-top: 18px; border-top: 1px solid #e1e7ec; font-size: 18px; line-height: 1.7; gap: 8px 12px; }
.event-page .event-status { border-radius: 3px; white-space: nowrap; }
.event-page .event-status-before, .event-page .event-status-scheduled { color: #fff; background: #2e8b57; }
.event-page .event-status-open { color: #fff; background: #db2449; }
.event-page .event-status-closed { color: #fff; background: #9e2338; }
.event-page .event-status-running { color: #fff; background: #087850; }
.event-page .event-status-finished { color: #727980; background: #f0f1f2; }
.event-page .event-notices a { color: #292929; }
.event-page .event-notices a:hover { background: #e6f0f8; opacity: 1; }
.event-page .event-notices li:nth-child(odd) { background: #f5f7f9; }
.event-page .event-notices li:nth-child(even) { background: #ebeff3; }
.event-page .event-more-show, .event-page .event-more-close { margin: 0; }
.event-page .event-more-close, .event-page .event-more[open] .event-more-show { display: none; }
.event-page .event-more[open] .event-more-close { display: inline; }
.event-page .event-more summary b { display: inline-block; margin-left: 20px; font-weight: 400; }
.event-page .event-more[open] summary b { transform: rotate(45deg); }
.event-page .event-empty { padding: 20px; background: #f5f7f9; color: #65717b; font-size: 20px; }

/* 750px固定ビューポートでも、スマートフォンで読みやすい大きさを優先する。 */
.event-page .event-hero { min-height: 440px; padding: 112px 32px 34px; }
.event-page .event-hero-series { margin-bottom: 16px; font-size: 30px; font-weight: 600; line-height: 1.5; }
.event-page h1 { font-size: 40px; font-weight: 600; line-height: 1.45; }
.event-page .event-content { padding: 32px 24px 58px; }
.event-page .event-overview { padding: 28px 22px; margin-bottom: 58px; }
.event-page .event-overview-title { margin-bottom: 22px; font-size: 34px; }
.event-page .event-facts { margin-bottom: 28px; font-size: 30px; line-height: 1.65; }
.event-page .event-facts > div { grid-template-columns: 152px minmax(0, 1fr); gap: 12px; padding: 5px 0; }
.event-page .event-entry-period { margin-top: 26px; padding-top: 20px; font-size: 26px; }
.event-page .event-status { padding: 6px 12px; font-size: 24px; }
.event-page .event-official-button { min-height: 104px; margin-bottom: 18px; padding: 14px 48px; font-size: 28px; }
.event-page .event-official-button small { font-size: 22px; }
.event-page .event-document-buttons { gap: 10px; }
.event-page .event-document-button { min-height: 124px; padding: 16px 5px; font-size: 28px; }
.event-page .event-document-button small { margin-top: 10px; padding-top: 10px; font-size: 20px; }
.event-page .event-entry-button { min-height: 124px; padding: 18px 36px 18px 14px; font-size: 30px; }
.event-page .event-section { margin-bottom: 62px; }
.event-page .event-section-title { margin-bottom: 22px; }
.event-page .event-section-title > small { font-size: 24px; }
.event-page .event-notices a, .event-page .event-notices .event-notice-content { grid-template-columns: minmax(0, 1fr) 146px; min-height: 124px; padding: 15px 62px 15px 16px; column-gap: 14px; }
.event-page .event-notice-title { font-size: 32px; line-height: 1.45; }
.event-page .event-notice-meta { gap: 10px; font-size: 26px; }
.event-page .event-notice-row { display: block; min-height: 0; padding: 15px 62px 15px 16px; }
.event-page .event-notice-copy { display: flex; min-width: 0; flex-direction: column; gap: 10px; }
.event-page .event-notice-row .event-notice-title { display: block; font-weight: 600; }
.event-page .event-notice-comment { display: block; color: #5d6871; font-size: 24px; font-weight: 400; line-height: 1.55; white-space: pre-wrap; }
.event-page .event-notice-row .event-notice-meta { justify-content: flex-start; min-height: 28px; gap: 12px; margin-left: 4px; font-size: 20px; }
.event-page .event-new { width: 12px; height: 12px; }
.event-page .event-notice-open { width: 40px; height: 48px; right: 10px; font-size: 52px; }
.event-page .event-more summary { margin-top: 16px; padding: 14px 24px; font-size: 28px; }
.event-page .event-about { margin-top: 16px; padding: 32px 24px; }
.event-page .event-about h2 { margin-bottom: 18px; font-size: 34px; }
.event-page .event-about p { font-size: 28px; line-height: 1.8; }
.event-page .event-about h3 { font-size: 30px; }
.event-page .event-about .event-series-intro { font-size: 24px; }
.event-page .event-series-links a { padding: 18px 0; font-size: 28px; }
.event-page .event-empty { padding: 24px; font-size: 28px; }

/* 下部の補足説明は控えめにし、競技資料への入口を優先する。 */
.event-page .event-overview { margin-bottom: 78px; }
.event-page .event-section { margin-bottom: 80px; }
.event-page .event-document-buttons { gap: 6px; margin-right: -16px; margin-left: -16px; }
.event-page .event-document-button { min-height: 150px; padding: 18px 4px; font-size: 30px; }
.event-page .event-document-button small { margin-top: 12px; padding-top: 12px; font-size: 22px; }
.event-page .event-about { margin-top: 0; padding: 28px 22px; }
.event-page .event-about h2 { margin-bottom: 14px; font-size: 30px; }
.event-page .event-about p { font-size: 24px; line-height: 1.75; }
.event-page .event-about h3 { font-size: 26px; }
.event-page .event-about .event-series-intro { font-size: 22px; }
.event-page .event-series-links a { padding: 14px 0; font-size: 24px; }

/* 特別規則書と、時期に応じて切り替わる主導線を二分割で表示する。 */
.event-page .event-action-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; margin: 0; }
.event-page .event-action-layout.has-regulation { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.9fr); align-items: start; }
.event-page .event-regulation-stack { display: flex; min-width: 0; flex-direction: column; gap: 10px; }
.event-page .event-action-layout .event-document-button, .event-page .event-action-layout .event-entry-button { width: 100%; height: 150px; min-height: 150px; margin: 0; }
.event-page .event-action-layout .event-entry-button { grid-column: auto; padding: 18px 32px 18px 12px; }
.event-page .event-primary-action { grid-column: 2; }
.event-page .event-action-layout:not(.has-regulation) .event-primary-action { grid-column: 1; }
.event-page .event-entrylist-link { display: inline-flex; min-height: 48px; box-sizing: border-box; align-self: center; align-items: center; justify-content: center; gap: 8px; padding: 8px 18px; border: 1px solid #bcd3e3; border-radius: 999px; background: #edf5fb; color: #145a86; font-size: 20px; font-weight: 600; line-height: 1.4; }
.event-page .event-entrylist-link:hover { border-color: #6aa9d2; background: #deedf8; color: #145a86; opacity: 1; }
.event-page .event-entrylist-link span { color: inherit; font-family: "Josefin Sans", sans-serif; font-size: 16px; font-weight: 600; }
.event-page .event-entrylist-link.is-unavailable { border-color: #dce1e5; background: #f1f3f4; color: #737f87; cursor: default; }

/* 競技会情報はカードにせず、ほかの情報セクションと同じ見出し構成にする。 */
.event-page .event-overview { padding: 0; border: 0; border-radius: 0; background: transparent; }
.event-page .event-overview .event-section-title { margin-bottom: 22px; }
