/* 御堂筋チャレンジ2026 共通スタイル
   .challenge2026 の中だけに適用し、WordPressの他のページへ影響させません。 */
.challenge2026 { max-width: 960px; margin: 0 auto; padding: 0 clamp(.5rem, 2vw, 1.25rem); color: #333; line-height: 1.8; }
.challenge2026 * { box-sizing: border-box; }
.challenge2026 h1 { margin: 0 0 1em; font-size: clamp(1.7rem, 4vw, 2.5rem); line-height: 1.4; }
.challenge2026 h2 { margin: 4em 0 .9em; padding: 0 0 .35em .6em; border-left: 5px solid #f46b2c; border-bottom: 2px solid #ffe18a; font-size: 1.45rem; }
.challenge2026 .area-map { display: block; width: 100%; height: auto; margin: 0 0 1.7em; }
.challenge2026 .stay-kicker { margin: 0 0 .25em; color: #e85b24; font-weight: 700; }
.challenge2026 .stay-intro { margin: 0 0 1.7em; padding: 1.25em 1.4em; background: #fff2a8; border-left: 4px solid #f4bd2c; }
.challenge2026 .stay-intro p { margin: 0; }
.challenge2026 .stay-intro p + p { margin-top: .55em; }
.challenge2026 .stay-card { padding-bottom: 3em; border-bottom: 2px dashed #f3c88f; }
.challenge2026 .stay-card + .stay-card { margin-top: 80px; }
.challenge2026 .stay-card img { display: block; width: 100%; height: auto; margin-bottom: .9em; }
.challenge2026 .stay-card h3 { margin: 0 0 .55em; color: #d95624; font-size: 1.35rem; line-height: 1.5; }
.challenge2026 .stay-card h3::before { content: "●"; margin-right: .5em; color: #f4bd2c; font-size: .65em; vertical-align: .15em; }
.challenge2026 .stay-card p { margin: .75em 0 0; }
.challenge2026 .stay-card p a { color: #23274F; text-decoration:underline; }
.challenge2026 .stay-card p a:hover { text-decoration:none; }
.challenge2026 .stay-card h2 + p, .challenge2026 .stay-card h3 + p { margin-top: 0; }
.challenge2026 .stay-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .2em .7em; width: max-content; max-width: 100%; margin: .9em 0 .6em; padding: .3em .65em; background: #e8f7fb; border-radius: 7px; color: #096f98; font-size: .88rem; font-weight: 700; line-height: 1.5; }
.challenge2026 .stay-card .stay-meta { margin: .9em 0 .6em; }
.challenge2026 .stay-date { display: inline-flex; flex-wrap: wrap; gap: 0 .4em; }
.challenge2026 .stay-date time, .challenge2026 .stay-date .stay-hours, .challenge2026 .stay-date .stay-days { white-space: nowrap; }
.challenge2026 .stay-meta .stay-date + .stay-map { padding-left: .7em; border-left: 1px solid #9ac8d8; }
.challenge2026 .stay-other-day { white-space: nowrap; }
.challenge2026 .stay-place { font-weight: 700; }
.challenge2026 .stay-note { margin-top: 2.5em; color: #666; font-size: .85rem; }
.challenge2026 .stay-section-lead { margin: 0 0 1.25em; font-weight: 700; }
.challenge2026 .stay-more a { color: #096f98; font-weight: 700; }
.challenge2026 .stay-subitem { padding: 3.5em 0; border-bottom: 1px dotted #f3c88f; }
.challenge2026 .stay-subitem h3 { margin: 0 0 .6em; color: #d95624; font-size: 1.2rem; }
.challenge2026 .stay-subitem img { display: block; width: 100%; height: auto; margin-bottom: .8em; }
.challenge2026 .stay-subitem p { margin: .6em 0 0; }
.challenge2026 .stay-area-link { margin: 1.8em 0 1.5em; text-align: center; }
.challenge2026 .stay-area-link a, .challenge2026 .stay-area-link a:visited { display: inline-block; width: min(100%, 32rem); padding: .85em 1.5em; border: 3px solid #d95624; border-radius: 999px; background: #fff; box-shadow: 0 9px 0 #d95624; color: #d95624; font-weight: 700; line-height: 1.5; text-align: center; text-decoration: none; }
.challenge2026 .stay-area-link a:hover, .challenge2026 .stay-area-link a:focus-visible { background: #fff7e8; }
.challenge2026 .stay-area-link a:focus-visible { outline: 3px solid #f4bd2c; outline-offset: 3px; }
.challenge2026 .stay-gallery { margin: 0 0 1em; }
.challenge2026 .stay-gallery figure { margin: 0 0 1.5em; }
.challenge2026 .stay-gallery figcaption { margin-top: .5em; font-size: .85rem; line-height: 1.6; }

/* 内容に応じて使う部品。固定ページ名ごとの指定はありません。 */
.challenge2026 .stay-card h2 { margin: .2em 0 .55em; padding: 0; border: 0; color: #07899a; font-size: 1.35rem; line-height: 1.5; }
.challenge2026 .stay-intro h2 { margin: 1.25em 0 .4em; padding: 0; border: 0; color: #333; font-size: 1.25rem; line-height: 1.5; }
.challenge2026 .stay-gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75em; }
.challenge2026 .stay-gallery-grid img { margin-bottom: 0; }
.challenge2026 .stay-card .stay-lead { font-weight: 700; }
.challenge2026 .stay-highlight { margin-top: 1.25em; padding: 1em 1.15em; border: 1px solid #f3c88f; border-radius: 8px; background: #fff7e8; }
.challenge2026 .stay-highlight p { margin: 0; }
.challenge2026 .stay-highlight p + p { margin-top: .55em; }
.challenge2026 .stay-highlight p:first-child { font-weight: 700; }
.challenge2026 .stay-card .stay-schedule { margin-top: .4em; }
.challenge2026 .stay-tag { display: inline-block; margin: .2em 0 1.3em; padding: .2em .7em; border-radius: 999px; background: #07899a; color: #fff; font-size: .9rem; font-weight: 700; }

/* タイムテーブルの表 */
.challenge2026 .schedule-table { width: 100%; margin: 0; border-collapse: collapse; table-layout: fixed; font-size: .95rem; }
.challenge2026 .schedule-table th, .challenge2026 .schedule-table td { padding: .7em .8em; border: 1px solid #e7d7d0; vertical-align: top; overflow-wrap: anywhere; }
.challenge2026 .schedule-table thead th { background: #3a3a3a; color: #fff; text-align: left; }
.challenge2026 .schedule-table th:first-child { width: 9.5em; }
.challenge2026 .schedule-table tbody th { background: #fff7f2; font-weight: 700; text-align: left; white-space: nowrap; }
.challenge2026 .schedule-table tbody tr:nth-child(even) td { background: #fffaf7; }
.challenge2026 .schedule-table .schedule-feature th, .challenge2026 .schedule-table .schedule-feature td { background: #fff0c6; }
.challenge2026 .schedule-note { margin-top: 2em; color: #666; font-size: .85rem; }
@media (max-width: 520px) {
  .challenge2026 .stay-gallery-grid { grid-template-columns: 1fr; }
  .challenge2026 .schedule-table { font-size: .86rem; }
  .challenge2026 .schedule-table th:first-child { width: 8.5em; }
  .challenge2026 .schedule-table th, .challenge2026 .schedule-table td { padding: .55em .5em; }
}
