/* 2026 main visual theme. Event data, route behavior and publication flags stay in their existing files. */
:root {
  --ink: #263b30;
  --paper: #faf8f1;
  --orange: #ce430b;
  --blue: #1767a1;
  --green: #176843;
  --yellow: #efb41a;
  --red: #be2334;
  --line: #263b3026;
  --art: url('./assets/main-visual.webp');
}
:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
/* Venue-column timetable: native buttons and dialog keep details keyboard accessible. */
.schedule-help { font-size: .82rem; line-height: 1.9; margin: 0 0 28px; color: #58665b; }
.schedule-day-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin: 0 0 20px; }
.schedule-day-heading h3 { margin:0; font-size:1.6rem; color:var(--green); }
.schedule-day-heading > span { font-size:.7rem; letter-spacing:.12em; }
.schedule-scroll { overflow:auto; max-height: min(78vh,1000px); border:1px solid #bcc9c0; border-radius:12px; background:#fff; overscroll-behavior:contain; isolation:isolate; }
.schedule-grid { --minute-height:4px; display:grid; grid-template-columns:64px repeat(var(--venue-count),minmax(190px,1fr)); min-width:calc(64px + var(--venue-count)*190px); position:relative; }
.schedule-corner { grid-column:1; grid-row:1; position:sticky; left:0; top:0; z-index:5; display:grid; place-items:center; background:#284f3d; color:white; font-size:.7rem; letter-spacing:.08em; }
.tone-green { --tone:#176843; --tint:#e3f0e5; }
.tone-blue { --tone:#1767a1; --tint:#e2eef7; }
.tone-orange { --tone:#a74417; --tint:#fbecdc; }
.tone-red { --tone:#a7283d; --tint:#fae7eb; }
.tone-violet { --tone:#614282; --tint:#eee6f5; }
.tone-olive { --tone:#647126; --tint:#eff2d8; }
.schedule-venue { grid-row:1; position:sticky; top:0; z-index:4; margin:0; display:grid; align-items:center; text-align:center; padding:10px; background:var(--tone); color:white; border-left:1px solid #ffffff50; font-size:.85rem; line-height:1.5; }
.schedule-lane { border-right:1px solid #d1ddd6; background:repeating-linear-gradient(to bottom,#fff 0,#fff 119px,#d9e5de 119px,#d9e5de 120px); pointer-events:none; }
.schedule-tick { grid-column:1; position:sticky; left:0; z-index:3; width:64px; height:120px; padding:6px 8px; background:#f0f4f0; border-top:1px solid #d1ddd6; font-size:.68rem; font-weight:700; font-variant-numeric:tabular-nums; }
.schedule-tick:last-of-type { height:24px; }
.schedule-event { z-index:1; align-self:stretch; min-height:0; margin:1px 3px; padding:9px 10px; border:0; border-left:3px solid var(--tone); border-radius:3px; color:#21352a; background:var(--tint); text-align:left; overflow:hidden; display:flex; flex-direction:column; gap:5px; font:inherit; cursor:pointer; }
.schedule-event:hover { filter:brightness(.96); box-shadow:inset 0 0 0 1px var(--tone); }
.schedule-event:focus-visible { outline-offset:-3px; z-index:2; }
.schedule-event-time { display:block; color:var(--tone); font-size:.68rem; line-height:1.3; font-weight:800; font-variant-numeric:tabular-nums; flex-shrink:0; }
.schedule-event strong { font-size:.83rem; line-height:1.5; overflow:hidden; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; flex-shrink:0; }
.schedule-event-cast { font-size:.68rem; line-height:1.8; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.event-more { display:block; font-size:.66rem; font-weight:600; margin-top:auto; color:var(--tone,var(--green)); }
.schedule-event.is-short { padding:3px 6px; gap:1px; }
.schedule-event.is-short strong { font-size:.75rem; line-height:1.35; white-space:nowrap; display:block; text-overflow:ellipsis; }
.schedule-event.is-short .schedule-event-time { font-size:.6rem; }
.schedule-zoom { display:flex; gap:6px; margin:0 0 14px; }
.schedule-zoom button { font:inherit; font-size:.73rem; padding:10px 15px; border:1px solid var(--line); border-radius:30px; background:transparent; color:var(--green); cursor:pointer; }
.schedule-zoom button[aria-pressed="true"] { background:var(--green); color:white; }
.schedule-lane { background:repeating-linear-gradient(to bottom,#fff 0,#fff calc(var(--minute-height)*30 - 1px),#d9e5de calc(var(--minute-height)*30 - 1px),#d9e5de calc(var(--minute-height)*30)); }
.schedule-tick { height:calc(var(--minute-height)*30); }
.is-compact .schedule-event { padding:4px 7px; gap:2px; }
.is-compact .schedule-event strong { font-size:.74rem; line-height:1.35; -webkit-line-clamp:2; }
.is-compact .schedule-event-time { font-size:.6rem; line-height:1.2; }
.is-compact .schedule-event-cast,.is-compact .schedule-event .event-more { display:none; }
.is-compact .schedule-event.is-short { padding:0 5px; gap:0; }
.is-compact .schedule-event.is-short strong { font-size:.68rem; }
.is-compact .schedule-event.is-micro { flex-direction:row; align-items:center; gap:4px; }
.is-compact .schedule-event.is-micro strong { flex-shrink:1; }
.eve-schedule { border-collapse:collapse; width:100%; background:#fff; border:1px solid var(--line); }
.eve-schedule caption { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.eve-schedule th,.eve-schedule td { padding:20px; border:1px solid var(--line); text-align:left; }
.eve-schedule thead { background:var(--green); color:white; }
.eve-schedule tbody th { width:110px; color:var(--green); font-size:1.2rem; }
.eve-schedule small { display:block; font-size:.62rem; letter-spacing:.1em; }
.eve-event { display:flex; flex-direction:column; gap:14px; width:100%; padding:18px; text-align:left; border:0; background:#e3f0e5; color:var(--ink); cursor:pointer; font:inherit; }
.eve-event strong { font-size:1.25rem; }
.eve-event > span { line-height:1.8; }
.event-dialog { width:min(720px,calc(100vw - 28px)); max-height:calc(100dvh - 40px); padding:0; border:0; border-radius:16px; background:var(--paper); color:var(--ink); overscroll-behavior:contain; }
.event-dialog::backdrop { background:#153c2bcc; backdrop-filter:blur(4px); }
.dialog-close { position:sticky; top:12px; z-index:2; display:block; margin:12px 16px 0 auto; border:1px solid var(--green); border-radius:30px; padding:10px 16px; background:var(--paper); color:var(--green); cursor:pointer; }
#eventDialogContent { padding:20px 36px 36px; }
#eventDialogTitle { margin:12px 0; font-size:1.6rem; line-height:1.6; color:var(--green); }
.event-detail-time { font-size:1.05rem; font-weight:700; color:var(--green); }
#eventDialogContent p { line-height:1.9; }
#eventDialogContent .timetable-row-hero { display:block; width:100%; max-height:480px; object-fit:contain; margin:24px auto; background:white; border-radius:8px; }
.running-order-table { border-collapse:collapse; width:100%; margin-block:20px; font-size:.9rem; }
.running-order-table th,.running-order-table td { padding:10px; border-bottom:1px solid var(--line); text-align:left; }
.running-order-table th { white-space:nowrap; }
.running-order-table thead { color:var(--green); background:#e4edde; }
.event-inline-details { margin-top:16px; }
.event-inline-details summary { cursor:pointer; font-size:.8rem; font-weight:700; color:var(--green); padding:8px 0; }
.event-inline-details > div { padding-block:16px; line-height:1.9; }
.exhibition-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.exhibition-grid article { background:#fff; padding:20px; border-radius:10px; }
.exhibition-grid img { width:100%; height:210px; object-fit:contain; }
.exhibition-grid h5 { font-size:1.1rem; margin:12px 0; }
.exhibition-grid p { font-size:.85rem; line-height:1.9; }
@media(max-width:600px) {
  .schedule-scroll { border-radius:8px; max-height:75vh; }
  .schedule-grid { grid-template-columns:52px repeat(var(--venue-count),190px); min-width:calc(52px + var(--venue-count)*190px); }
  .schedule-tick { width:52px; padding-inline:4px; font-size:.62rem; }
  .schedule-day-heading h3 { font-size:1.22rem; }
  .schedule-day-heading > span { font-size:.6rem; }
  .eve-schedule th,.eve-schedule td { padding:12px; }
  .eve-schedule tbody th { width:80px; font-size:1rem; }
  .eve-event { padding:12px; font-size:.82rem; }
  #eventDialogContent { padding:16px 20px 24px; }
  #eventDialogTitle { font-size:1.2rem; }
  .running-order-table { font-size:.8rem; }
  .running-order-table th,.running-order-table td { padding:10px 5px; }
  .exhibition-grid { grid-template-columns:1fr; }
}
.site-header { background: #faf8f1f2; padding-inline: 4%; border-bottom-color: #263b301a; }
.desktop-nav { gap: clamp(20px, 2.5vw, 40px); }
.desktop-nav a::after { background: var(--green); height: 3px; border-radius: 50%; }
.sound-button { border-color: var(--line); }
.hero { display: grid; grid-template-columns: .84fr 1.16fr; align-items: center; gap: 3%; min-height: 0; padding: 34px 3% 48px 5%; max-width: 1720px; margin: auto; }
.hero::before, .hero::after { content: none; }
.hero-content { width: 100%; margin: 0; padding: 24px 0; }
.hero .eyebrow { color: var(--green); font-size: .65rem; letter-spacing: .12em; }
.hero-logo { width: min(58%, 235px); max-height: none; margin: 24px 0 25px; filter: none; }
.hero-tagline { margin: 0; max-width: 550px; font-size: clamp(1.15rem, 2.15vw, 2.15rem); line-height: 1.7; letter-spacing: -.045em; }
.hero-tagline .mobile-only { display: block; }
.hero-art { margin: 0; width: 100%; background: transparent; border-radius: 6px; overflow: hidden; }
.hero-art img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
.afterparty-callout { margin: 22px 0 0; padding: 16px 0; border-top: 1px solid var(--line); font-size: .85rem; line-height: 1.8; }
.afterparty-callout a { color: var(--green); font-weight: 800; text-underline-offset: 4px; }
.venue-guide-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-block: 24px 48px; }
.venue-guide-grid img { width: 100%; height: auto; border: 1px solid var(--line); border-radius: 10px; }
.start-only-schedule { margin-top: 32px; }
.start-only-schedule > h4 { color: var(--green); }
.performer-affiliation { font-size: .72rem; line-height: 1.6; margin: 0; color: #58665b; }
.timetable-lineup-role { font-size: .75rem; }
.marche-card-photo.is-logo { object-fit: contain; padding: 22px; background: #fff; }
.marche-card-brand { display: block; width: 100%; height: 72px; margin: 12px auto 0; padding: 6px 20px; object-fit: contain; background: #fff; border-radius: 8px; }
.venue-activity { margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line); }
.sports-overview { display: block; width: min(100%, 300px); height: auto; margin: 24px auto; border-radius: 10px; }
.sports-experience-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; }
.sports-experience-grid article { background: #fff; padding: 16px; border: 1px solid var(--line); border-radius: 12px; }
.sports-experience-grid img { display: block; width: 100%; height: auto; border-radius: 8px; }
.sports-experience-grid h5 { font-size: 1rem; margin-block: 18px 10px; }
.sports-experience-grid p { font-size: .875rem; line-height: 1.8; }
.sports-experience-grid .sports-day { color: var(--green); font-weight: 700; }
.marche-card-location { color: #58665b; font-size: .75rem; padding-inline: 20px; }
.marche-area-title { font-size: 1.4rem; color: var(--green); margin-top: 48px; }
.marche-collaboration { margin: 16px; padding: 18px; background: #f7eed5; border-radius: 10px; }
.marche-collaboration h5 { font-size: .65rem; letter-spacing: .08em; color: var(--green); margin: 0 0 8px; }
.marche-collaboration p { font-size: .82rem; line-height: 1.8; margin: 6px 0; }
.marche-collaboration .collab-member { font-size: 1rem; font-weight: 800; }
@media(max-width:600px) { .venue-guide-grid { grid-template-columns: 1fr; } .eve-event strong { font-size: 1rem; } }
.event-status { display: grid; grid-template-columns: 32px 1fr; gap: 16px; width: 100%; max-width: 440px; padding: 24px 0 0; margin: 26px 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: none; box-shadow: none; }
.event-status > span { background: none; color: var(--green); padding: 0; font-size: .85rem; letter-spacing: .1em; text-align: center; }
.event-dates { justify-content: space-between; gap: 15px; }
.event-dates p { gap: 4px; }
.event-dates strong { font: 750 clamp(1.9rem, 3.2vw, 3.1rem)/1 system-ui, sans-serif; letter-spacing: -.07em; }
.event-dates small { color: var(--ink); font-size: .64rem; }
.event-dates small:last-child { color: #576159; }
.venue-status { display: block; grid-column: 1/-1; border: 0; padding: 5px 0 0; font-size: .83rem; line-height: 1.8; }
.venue-status strong { font-size: .8rem; letter-spacing: .04em; }
.hero-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.hero-links a { display: flex; gap: 24px; align-items: center; justify-content: space-between; padding: 14px 20px; border: 1px solid var(--green); border-radius: 100px; color: var(--green); font-size: .78rem; font-weight: 800; transition: background .2s, color .2s; }
.hero-links a:first-child { color: white; background: var(--green); }
.hero-links a:hover { color: white; background: #114e32; }
.announcement { margin: 0 5%; padding: 24px 0; background: none; border-top: 1px solid var(--line); }
.announcement span { background: var(--green); border-radius: 100px; padding: 6px 12px; }
.section-shell, .article-shell { width: min(90%, 1200px); }
.intro { position: relative; gap: 7%; padding-block: 100px 110px; }
.intro h3 { color: var(--green); font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.5; letter-spacing: -.055em; }
.intro > div:first-child::after { content: ''; display: block; width: 230px; height: 125px; margin-top: 35px; background: var(--art) 0 38% / 310% auto; border-radius: 50% 45% 42% 35%; mix-blend-mode: multiply; }
.intro-copy { padding-top: 48px; font-size: .9rem; line-height: 2.2; }
.intro-copy p:first-child { font-size: 1.06rem; }
.section-number { color: var(--green); font-size: .66rem; margin-bottom: 26px; }
.organizer-line { font-size: .8rem; }
.program-preview { background: #edf1e8; color: var(--ink); padding-block: 80px 95px; position: relative; }
.section-number.light { color: var(--green); }
.section-heading-row h3 { color: var(--green); font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.5; }
.program-tagline { font-size: .9rem; letter-spacing: .08em; }
.program-cards { margin-top: 40px; gap: 28px; }
.program-card { background: none; padding: 0; min-height: 0; }
.program-card > span { color: var(--green); }
.card-illustration { height: auto; aspect-ratio: 1.45; margin-top: 12px; background-image: var(--art); background-repeat: no-repeat; background-color: white; border-radius: 45% 48% 12% 12% / 50% 50% 12% 12%; }
.card-illustration i { display: none; }
.stage-visual { background-size: 250%; background-position: 50% 100%; }
.food-visual { background-size: 300%; background-position: 94% 24%; }
.market-visual { background-size: 270%; background-position: 0 56%; }
.program-card h4 { font-size: clamp(1.05rem, 1.8vw, 1.55rem); margin: 24px 0 8px; letter-spacing: .03em; }
.program-card p { line-height: 1.8; }
.coming-soon { padding-block: 75px; border-bottom: 1px solid var(--line); }
.coming-soon-links { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 0; }
.coming-soon-links a { margin: 0; padding: 20px 0; justify-content: space-between; gap: 12px; }
.sponsor-strip { padding-block: 65px 85px; }
.page-hero { min-height: 275px; padding-block: 65px; background: #edf1e8; color: var(--green); isolation: isolate; }
.page-hero::before, .page-hero::after { content: ''; position: absolute; z-index: -1; width: 190px; height: 190px; top: 48px; background: var(--art) 100% 0 / 320%; border-radius: 45% 55% 50% 40%; }
.page-hero::before { left: max(2%, calc((100% - 1240px)/2)); transform: rotate(-9deg); }
.page-hero::after { right: max(2%, calc((100% - 1240px)/2)); background-position: 0 53%; transform: rotate(8deg); }
.page-hero h2 { font-size: clamp(2.2rem, 5vw, 4rem); margin-top: 17px; letter-spacing: -.045em; line-height: 1.4; }
.page-hero > span { display: none; }
.page-hero.color-orange { background-color: #f8ece2; }
.page-hero.color-yellow { background-color: #f5edcf; }
.page-hero.color-blue { background-color: #eaf0f3; }
.page-hero.color-paper { background-color: #f0eee5; }
.article-shell { padding-block: 55px 100px; }
.filter-bar { gap: 10px; padding-bottom: 26px; margin-bottom: 32px; border-bottom: 1px solid var(--line); }
.filter-bar select, .filter-bar input[type='search'] { border: 1px solid #798579; border-radius: 8px; padding: 14px 18px; color: var(--ink); min-width: 0; max-width: 100%; }
.performer-grid { gap: 30px 22px; }
.performer-card { padding: 0 0 20px; border: 0; border-bottom: 1px solid var(--line); background: none; align-content: start; transition: transform .2s; }
.performer-card-photo, .performer-card-avatar { border-radius: 12px; background-color: #fff; }
.performer-card-avatar, .marche-card-avatar { color: var(--green); background: #e8edde; font-size: 1.8rem; border-radius: 12px; }
.performer-card h3 { padding-inline: 6px; font-size: .93rem; line-height: 1.7; }
.performer-name-prefix { display: block; font-size: .78em; line-height: 1.6; margin-bottom: .25em; }
.schedule-notice { padding: 12px 16px; border-left: 3px solid var(--green); background: #edf1e7; font-size: .9rem; line-height: 1.8; }
.performer-card:hover { transform: translateY(-4px); }
.performer-detail h3, .venue-detail h3 { color: var(--green); line-height: 1.4; overflow-wrap: anywhere; }
.performer-detail-photo { background: #fff; border-radius: 14px; }
.timetable-day h3 { padding-block: 20px; border-bottom: 2px solid var(--green); }
.timetable-day-toggle { font-size: 1.3rem; color: var(--green); }
.timetable-time { font-size: .95rem; color: var(--green); padding-top: 3px; }
.timetable-row { padding: 26px 6px; gap: 28px; }
.timetable-body h4 { font-size: 1.06rem; line-height: 1.8; }
.timetable-meta, .timetable-lineup { line-height: 1.9; }
.badge-provisional { background: #f5e6b8; padding: 3px 9px; color: #584616; }
.venue-map { border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.venue-map-legend { border-left: 3px solid var(--green); padding-left: 20px; margin-top: 26px; }
.venue-map-back { border-radius: 8px; padding: 15px 18px; color: var(--green); }
.venue-card { border-radius: 8px; background: #fff; padding: 20px 16px; transition: border-color .2s; }
.venue-card:hover { border-color: var(--green); }
.venue-card h4 { font-size: .95rem; line-height: 1.6; }
.venue-area h3 { color: var(--green); font-size: 1.25rem; }
.marche-card { padding: 16px; border-radius: 12px; background: white; }
.marche-card-photo { border-radius: 8px; }
.marche-card-toggle { line-height: 1.6; padding-block: 8px; }
.sponsor-card { background: white; border: 1px solid var(--line); border-radius: 12px; }
.placeholder-note { background: #f0ece1; border-left-color: #aa7b32; }
.site-footer { position: relative; background: #175d3d; padding-top: 70px; border-top: 8px solid #efb41a; }
.footer-brand { background: var(--paper); border-radius: 12px; width: 200px; padding: 22px; }
.footer-main nav a { padding-block: 5px; }
.entry-gate { background: var(--paper); }
.entry-gate::before, .entry-gate::after { content: ''; position: absolute; width: 26vw; height: 40vh; background: var(--art) 0 45% / 300%; border-radius: 40%; }
.entry-gate::before { left: -8vw; bottom: -10vh; transform: rotate(12deg); }
.entry-gate::after { right: -9vw; top: -6vh; background-position: 100% 0; transform: rotate(-12deg); }
.entry-sun { background: #eeebdf; }
.entry-sun::before, .entry-sun::after { content: none; }
.entry-logo { width: min(60vw, 290px); margin-bottom: 30px; }
.entry-button { background: var(--green); border: 0; box-shadow: none; padding-block: 20px; }
@media (min-width: 821px) and (max-width: 1100px) {
  .hero { gap: 2%; padding-left: 4%; }
  .hero-logo { width: 160px; margin-block: 16px; }
  .hero-tagline { font-size: 1.75rem; }
  .hero-links a { padding: 12px 14px; gap: 12px; font-size: .7rem; }
  .event-status { margin-top: 18px; padding-top: 18px; }
  .page-hero::before, .page-hero::after { width: 140px; height: 140px; top: 68px; }
}
@media (max-width: 820px) {
  :root { --art: url('./assets/main-visual-small.webp'); }
  .hero { display: flex; flex-direction: column; gap: 0; padding: 14px 5% 32px; }
  .hero-art { order: -1; max-width: 580px; }
  .hero-content { display: grid; grid-template-columns: 1fr; max-width: 580px; padding: 24px 0 0; }
  .hero .eyebrow { font-size: .58rem; }
  .hero-logo { display: none; }
  .hero-tagline { font-size: clamp(1.05rem, 5.2vw, 2rem); line-height: 1.85; margin-top: 12px; max-width: none; }
  .hero-tagline .mobile-only { display: block; }
  .event-status { max-width: none; margin-top: 20px; gap: 16px; }
  .event-dates strong { font-size: 2.4rem; }
  .event-dates { justify-content: space-between; }
  .venue-status { display: block; }
  .hero-links a { flex: 1; gap: 10px; font-size: .76rem; padding: 14px 16px; }
  .intro { gap: 16px; padding-block: 65px; }
  .intro > div:first-child { position: relative; }
  .intro > div:first-child::after { position: absolute; width: 110px; height: 80px; right: 0; bottom: -10px; margin: 0; opacity: .8; }
  .intro h3 { font-size: 1.9rem; }
  .intro-copy { padding-top: 12px; }
  .program-preview { padding-block: 60px; }
  .program-cards { grid-template-columns: 1fr; gap: 30px; }
  .program-card { display: grid; grid-template-columns: 40% 1fr; align-items: center; column-gap: 20px; }
  .program-card > span { display: none; }
  .card-illustration { grid-row: 1/3; margin: 0; aspect-ratio: 1; }
  .program-card h4 { margin: 0; align-self: end; font-size: 1rem; }
  .program-card p { align-self: start; margin-top: 10px; font-size: .74rem; }
  .coming-soon { padding-block: 45px; }
  .coming-soon-links { grid-template-columns: 1fr; gap: 0; }
  .sponsor-strip { padding-block: 50px 65px; }
  .page-hero { min-height: 215px; padding: 48px 5%; }
  .page-hero h2 { font-size: clamp(1.7rem, 7vw, 3rem); max-width: 85vw; }
  .page-hero::before, .page-hero::after { width: 95px; height: 95px; opacity: .2; top: auto; bottom: -12px; }
  .page-hero::before { left: -28px; }
  .page-hero::after { right: -28px; }
  .article-shell { padding-block: 34px 65px; }
  .filter-bar { gap: 8px; }
  .filter-bar select { flex: 1 1 140px; width: 100%; font-size: .78rem; }
  .performer-grid { gap: 22px 14px; }
  .performer-card { padding: 0 0 15px; }
  .performer-card h3 { font-size: .83rem; }
  .timetable-row { gap: 10px; padding-block: 22px; }
  .timetable-day-toggle { font-size: 1.08rem; gap: 7px; }
  .timetable-day-count { font-size: .66rem; }
  .footer-main { padding-bottom: 35px; }
  .footer-main nav { gap: 14px 22px; margin-top: 35px; }
  .entry-note { font-size: .85rem; }
  .entry-tagline { font-size: .9rem; }
}
@media (max-width: 360px) {
  .intro > div:first-child::after { position: static; width: 100px; margin-top: 20px; opacity: 1; }
}
.event-poster-link { display: block; margin-block: 20px; color: var(--green); }
.event-poster-link span { display: block; text-align: center; text-decoration: underline; text-underline-offset: 3px; font-size: .85rem; }
.support-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 28px; }
.support-card { display: grid; grid-template-rows: 150px auto; gap: 16px; padding: 26px; border: 1px solid var(--line); border-radius: 12px; background: white; text-align: center; }
.support-logo { display: flex; align-items: center; justify-content: center; }
.support-logo img { display: block; max-width: 100%; max-height: 100%; width: 100%; height: 100%; object-fit: contain; }
.support-card p { margin: 0; font-size: .9rem; line-height: 1.6; font-weight: 700; }
.support-group + .support-group, .home-partners { margin-top: 70px; padding-top: 40px; border-top: 1px solid var(--line); }
.support-group h3 { color: var(--green); font-size: 1.7rem; margin: 8px 0; }
.home-partners h3 { font-size: 1rem; }
.partner-grid { max-width: 780px; }
.partner-grid .support-logo img { max-width: 250px; }
@media (max-width: 520px) {
  .support-grid { grid-template-columns: 1fr; gap: 16px; }
  .support-card { grid-template-rows: 125px auto; padding: 20px; }
  .event-dates small { font-size: .58rem; white-space: nowrap; }
  .event-status { column-gap: 8px; }
}
