:root {
  --font-round: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --ink: #19392d;
  --green: #00613b;
  --green-2: #17834d;
  --cream: #fffdf7;
  --paper: #fffefa;
  --line: #eadfc9;
  --yellow: #ffe925;
  --orange: #ff9900;
  --pink: #ff6785;
  --blue: #56b9dc;
  --purple: #8172e6;
  --shadow: 0 14px 42px rgba(69, 45, 14, .10);
  --radius: 22px;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; color: var(--ink); background: #f8f3e9; font-family: var(--font-round); line-height: 1.75; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
h1, h2, h3, h4, p { margin-top: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 100; padding: .75rem 1rem; color: white; background: var(--green); border-radius: 0 0 10px 10px; }
.skip-link:focus { top: 0; }

.site-header { position: sticky; top: 0; z-index: 50; min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 12px max(24px, calc((100vw - var(--max)) / 2)); background: rgba(255,253,247,.94); border-bottom: 1px solid rgba(0,97,59,.12); backdrop-filter: blur(14px); }
.wordmark { font-family: var(--font-round); color: var(--green); font-weight: 800; font-size: 1.55rem; letter-spacing: .08em; }
.site-nav { display: flex; align-items: center; gap: 1.45rem; font-size: .84rem; font-weight: 700; }
.site-nav a { padding: .55rem 0; border-bottom: 2px solid transparent; }
.site-nav a:hover, .site-nav a:focus-visible { color: var(--green-2); border-color: var(--yellow); }
.site-nav__accent { padding: .55rem 1rem !important; color: white; background: var(--green); border-radius: 7px; }
.menu-button { display: none; width: 44px; height: 44px; padding: 10px; background: transparent; border: 0; }
.menu-button__line { display: block; width: 100%; height: 2px; margin: 6px 0; background: var(--green); transition: .2s; }

.hero { position: relative; min-height: 720px; overflow: hidden; background: radial-gradient(circle at 50% 15%, white 0 18%, transparent 48%), linear-gradient(180deg, #fffdf7, #fffaf0); }
.hero::before, .hero::after { content: ""; position: absolute; width: 320px; height: 320px; border-radius: 42% 58% 55% 45%; opacity: .72; filter: blur(1px); }
.hero::before { left: -120px; top: 110px; background: #ffe44f; transform: rotate(-22deg); }
.hero::after { right: -95px; top: 165px; background: #c6e8f3; transform: rotate(18deg); }
.hero__patterns::before, .hero__patterns::after { content: ""; position: absolute; z-index: 1; width: 250px; height: 150px; opacity: .6; background-image: radial-gradient(circle at 50% 100%, transparent 14px, #f3ce68 15px, #f3ce68 17px, transparent 18px); background-size: 34px 17px; }
.hero__patterns::before { right: 4%; top: 10px; transform: rotate(7deg); }
.hero__patterns::after { left: 13%; top: -55px; transform: rotate(-8deg); }
.hero__content { position: relative; z-index: 4; width: min(var(--max), calc(100% - 48px)); min-height: 390px; margin: 0 auto; padding-top: 44px; display: grid; grid-template-columns: 220px 1fr 220px; align-items: start; }
.hero__copy { grid-column: 2; text-align: center; }
.hero__kicker { margin-bottom: .2rem; font-family: var(--font-round); color: var(--green); font-weight: 700; letter-spacing: .28em; }
.hero h1 { margin-bottom: .1rem; font-family: var(--font-round); color: var(--green); font-size: clamp(3.7rem, 7vw, 6.2rem); font-weight: 700; line-height: 1.15; letter-spacing: .05em; }
.hero__tagline { margin-bottom: 1.05rem; color: var(--green); font-family: var(--font-round); font-size: clamp(1.1rem, 2vw, 1.55rem); font-weight: 800; letter-spacing: .15em; }
.hero__lead { max-width: 620px; margin: 0 auto; font-size: .94rem; font-weight: 600; }
.event-facts { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; align-items: flex-start; margin-top: 62px; color: var(--green); font-family: var(--font-round); }
.event-facts__year { margin-left: 8px; font-size: .85rem; letter-spacing: .28em; }
.event-facts__date { display: flex; align-items: center; gap: .55rem; font-size: 3.45rem; font-weight: 500; line-height: 1; }
.event-facts__date small { display: grid; place-items: center; width: 31px; height: 31px; color: white; background: #0782c4; border-radius: 50%; font-family: var(--font-round); font-size: .85rem; }
.event-facts__time { margin: .9rem 0 .4rem; padding: 0 .35rem; color: var(--ink); background: linear-gradient(transparent 55%, var(--yellow) 55%); font-family: var(--font-round); font-size: 1.45rem; font-weight: 800; }
.event-facts__place { font-size: 1.25rem; font-weight: 800; }
.event-facts__rain { font-family: var(--font-round); font-size: .78rem; }
.hero-scene { position: absolute; z-index: 3; inset: auto 0 0; height: 420px; }
.hero-scene::before { content: ""; position: absolute; inset: 16% 0 0; background: radial-gradient(ellipse at 50% 100%, #cce99b 0 40%, transparent 41%), linear-gradient(158deg, transparent 0 28%, #9bd79f 29% 58%, #6fc798 59% 100%); clip-path: polygon(0 46%, 8% 32%, 20% 40%, 34% 22%, 48% 43%, 63% 16%, 77% 31%, 90% 12%, 100% 28%, 100% 100%, 0 100%); }
.hero-scene__hills { position: absolute; z-index: 1; left: -3%; bottom: -14%; width: 106%; height: 68%; object-fit: fill; }
.hero-scene__stage { position: absolute; z-index: 4; left: 50%; bottom: 40px; width: 250px; transform: translateX(-50%); }
.hero-scene__stall { position: absolute; z-index: 3; bottom: 58px; width: 175px; }
.hero-scene__stall--left { left: 7%; }
.hero-scene__stall--right { right: 7%; }
.hero-scene__people { position: absolute; z-index: 5; bottom: 35px; width: 200px; max-height: 180px; object-fit: contain; object-position: bottom; }
.hero-scene__people--left { left: 22%; }
.hero-scene__people--center { left: 50%; width: 150px; transform: translateX(-50%); }
.hero-scene__people--right { right: 21%; }
.hero-scene__tree { position: absolute; z-index: 2; bottom: 62px; width: 90px; max-height: 170px; object-fit: contain; object-position: bottom; }
.hero-scene__tree--one { left: 2%; }.hero-scene__tree--two { left: 40%; }.hero-scene__tree--three { right: 2%; }

.about { padding: 90px max(24px, calc((100vw - 800px) / 2)); text-align: center; background: var(--paper); }
.section-kicker { margin-bottom: .3rem; color: var(--orange); font-weight: 800; letter-spacing: .25em; }
.about h2 { margin-bottom: 1rem; color: var(--green); font-family: var(--font-round); font-size: clamp(1.8rem, 4vw, 2.7rem); }
.about p:last-child { max-width: 750px; margin: 0 auto; }
.guide { position: relative; padding: 76px 24px 130px; background: linear-gradient(180deg, #fffefa, #f8fff5); overflow: hidden; }
.guide::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 110px;
  background-image:
    url("assets/ichijojifes/decorations/tree-round-full.png"),
    url("assets/ichijojifes/people/family-in-yukata.png"),
    url("assets/ichijojifes/decorations/bush-light-wide.png"),
    url("assets/ichijojifes/decorations/tree-conifer.png"),
    url("assets/ichijojifes/decorations/festival-stage-and-lanterns.png");
  background-repeat: no-repeat;
  background-position: 2% bottom, 18% bottom, 50% bottom, 82% bottom, 98% bottom;
  background-size: auto 100px, auto 86px, auto 35px, auto 92px, auto 98px;
  opacity: .95;
}
.section-heading { display: flex; align-items: center; gap: 1rem; color: var(--green); }
.section-heading--center { justify-content: center; text-align: center; }
.section-heading span { color: #f6cdd5; font-size: .72rem; }
.section-heading h2 { margin: 0; font-family: var(--font-round); font-size: 2rem; letter-spacing: .12em; }
.section-heading p { margin: .15rem 0 1.5rem; font-size: .8rem; font-weight: 700; }
.guide-nav { position: relative; z-index: 2; display: grid; gap: 10px; width: min(780px, 100%); margin: 0 auto; }
.guide-nav a { display: grid; grid-template-columns: 44px 1fr auto; gap: 14px; align-items: center; min-height: 68px; padding: 10px 18px; background: rgba(255,255,255,.92); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 5px 18px rgba(60,50,30,.05); transition: transform .18s, box-shadow .18s; }
.guide-nav a:hover, .guide-nav a:focus-visible { transform: translateY(-2px); box-shadow: 0 9px 24px rgba(60,50,30,.10); }
.guide-nav b, .guide-nav small { display: block; }
.guide-nav b { font-size: .97rem; }.guide-nav small { font-size: .75rem; }
.guide-nav i { color: var(--green); font-size: 1.4rem; font-style: normal; }
.round-icon { display: inline-grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; color: white; border-radius: 50%; font-style: normal; font-weight: 900; }
.round-icon--orange { background: var(--orange); }.round-icon--green { background: #57ad27; }.round-icon--pink { background: var(--pink); }.round-icon--blue { background: var(--blue); }.round-icon--purple { background: var(--purple); }

.content-section { width: min(var(--max), calc(100% - 40px)); margin: 42px auto; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.content-section__bar { position: sticky; top: 74px; z-index: 12; display: flex; align-items: center; gap: 18px; min-height: 82px; padding: 15px 28px; background: rgba(255,254,250,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.content-section__bar h2 { margin: 0; color: #192b26; font-size: 1.55rem; letter-spacing: .05em; }
.content-section__bar h2 small { color: var(--green); font-size: .92rem; }
.content-section__bar > a { margin-left: auto; color: var(--green); font-size: 1.5rem; }
.content-section__body { position: relative; padding: 42px 36px 80px; }
.content-section__body::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 88px;
  background-image:
    url("assets/ichijojifes/decorations/tree-conifer.png"),
    url("assets/ichijojifes/decorations/bush-light-small.png"),
    url("assets/ichijojifes/decorations/tree-round-bright.png"),
    url("assets/ichijojifes/decorations/bush-light-with-flowers.png");
  background-repeat: no-repeat;
  background-position: 3% bottom, 29% bottom, 94% bottom, 68% bottom;
  background-size: auto 68px, auto 24px, auto 76px, auto 28px;
  pointer-events: none;
}
.intro-block { display: grid; grid-template-columns: 145px 1fr 145px; align-items: center; gap: 30px; max-width: 980px; margin: 0 auto 34px; text-align: center; }
.intro-block > img { width: 100%; height: 145px; object-fit: contain; }
.intro-block h3 { margin-bottom: .65rem; color: var(--green); font-family: var(--font-round); font-size: clamp(1.45rem, 3vw, 2.2rem); line-height: 1.45; letter-spacing: .08em; }
.intro-block p { max-width: 650px; margin: 0 auto; font-size: .92rem; }
.intro-block--food > img { height: 105px; }
.info-chip { display: inline-flex; flex-wrap: wrap; gap: .55rem; align-items: center; margin-top: 1.2rem !important; padding: .62rem 1rem; background: #fff9e8; border: 1px solid #f0c869; border-radius: 9px; font-size: 1.05rem !important; }
.info-chip b { color: #684200; }.info-chip small { font-size: .75rem; }
.subheading { display: flex; align-items: center; justify-content: center; gap: .8rem; margin: 38px 0 24px; color: var(--green); font-family: var(--font-round); font-size: 1.55rem; letter-spacing: .16em; }
.subheading::before, .subheading::after { content: ""; width: min(230px, 23vw); border-top: 2px dotted #78ab99; }
.vendor-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.vendor-card { display: grid; grid-template-columns: 155px 1fr; gap: 18px; min-height: 150px; padding: 14px; background: white; border: 1px solid var(--line); border-radius: 11px; }
.vendor-card img { width: 100%; height: 120px; object-fit: contain; background: #fffdf8; border-radius: 8px; }
.vendor-card div { align-self: center; }
.vendor-card span { display: inline-grid; place-items: center; width: 25px; height: 25px; margin-right: .4rem; color: white; background: var(--green); border-radius: 50%; font-size: .72rem; font-weight: 800; vertical-align: middle; }
.vendor-card h4 { display: inline; color: var(--green); font-size: 1.05rem; }
.vendor-card p { margin: .75rem 0 0; padding-top: .55rem; border-top: 2px dotted #ead9b7; font-size: .8rem; }
.section-note { margin: 25px 0 0; text-align: center; font-size: .76rem; }

.feature-card { padding: 30px; background: linear-gradient(135deg, #f6fff1, #fffdf7); border: 1px solid #cfdfbd; border-radius: 16px; }
.feature-card__title { text-align: center; }.feature-card__title span, .experience-card span { color: var(--green-2); font-size: .75rem; font-weight: 800; letter-spacing: .12em; }.feature-card__title h3 { margin: .2rem 0; color: var(--green); font-family: var(--font-round); font-size: 1.8rem; }.feature-card__title p { font-size: .8rem; }
.mini-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 22px; }
.mini-card-grid article { position: relative; padding: 24px 20px 18px; background: white; border: 1px solid var(--line); border-radius: 10px; }
.mini-card-grid b { position: absolute; top: -12px; left: 18px; display: grid; place-items: center; width: 33px; height: 33px; color: white; background: var(--green); border-radius: 50%; }
.mini-card-grid h4 { margin-bottom: .5rem; color: var(--green); }.mini-card-grid p { margin: 0; font-size: .8rem; }.feature-card__note { margin: 18px 0 0; text-align: center; font-size: .75rem; }
.experience-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 18px; }
.experience-card { display: grid; grid-template-columns: 180px 1fr; gap: 20px; padding: 16px; background: white; border: 1px solid var(--line); border-radius: 12px; }
.experience-card img { width: 100%; height: 180px; object-fit: contain; border-radius: 8px; }.experience-card div { align-self: center; }.experience-card h3 { margin: .25rem 0 .6rem; color: var(--green); font-family: var(--font-round); font-size: 1.25rem; }.experience-card p { margin: 0; font-size: .8rem; }

.dance-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.dance-card { position: relative; padding: 26px 20px 20px; text-align: center; background: white; border: 1px solid var(--line); border-radius: 12px; }
.dance-card__number { position: absolute; top: -14px; left: 50%; display: grid; place-items: center; width: 32px; height: 32px; color: white; background: var(--green); border-radius: 50%; transform: translateX(-50%); font-weight: 800; }
.dance-card time { display: block; color: var(--green); font-family: var(--font-round); font-size: 1.55rem; font-weight: 800; }.dance-card h3 { min-height: 60px; color: var(--green); font-family: var(--font-round); font-size: 1.3rem; }.dance-card img { width: 100%; height: 190px; object-fit: contain; background: #fffdf8; border-radius: 8px; }.dance-card p { margin: 1rem 0 0; text-align: left; font-size: .82rem; }
.dance-story { margin-top: 25px; }.dance-story > div { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 18px; align-items: center; }.dance-story figure { margin: 0; text-align: center; }.dance-story figure img { width: 100%; height: 160px; object-fit: contain; }.dance-story figcaption { color: var(--green); font-family: var(--font-round); font-weight: 800; }.dance-story > div > span { color: var(--orange); font-size: 2rem; }

.timetable-body { max-width: 980px; margin: 0 auto; }
.timeline { display: grid; gap: 12px; padding: 0; list-style: none; }
.timeline li { display: grid; grid-template-columns: 130px 110px 1fr; gap: 24px; align-items: center; min-height: 110px; padding: 14px 24px; background: white; border: 1px solid var(--line); border-radius: 12px; }
.timeline time { padding: .35rem .65rem; color: var(--green); background: #eaf5e5; border-radius: 10px; font-family: var(--font-round); font-size: 1.45rem; font-weight: 800; text-align: center; }.timeline img { width: 100%; height: 78px; object-fit: contain; }.timeline h3 { margin: 0; color: var(--ink); font-size: 1.08rem; }.timeline p { margin: .25rem 0 0; font-size: .78rem; }

.access-grid { display: grid; grid-template-columns: 1.45fr .8fr; gap: 24px; }.access-map { width: 100%; height: 420px; object-fit: cover; border: 1px solid var(--line); border-radius: 14px; }.access-info { padding: 25px; background: white; border: 1px solid var(--line); border-radius: 14px; }.access-info h3, .notice-grid h3 { color: var(--green); }.access-info h4 { margin: 1.3rem 0 .2rem; color: var(--green-2); }.access-info p { font-size: .88rem; }
.notice-grid { display: grid; grid-template-columns: .8fr 1.1fr 1fr; gap: 16px; margin-top: 22px; }.notice-grid article { padding: 20px; background: white; border: 1px solid var(--line); border-radius: 12px; }.notice-grid p, .notice-grid li { font-size: .8rem; }.notice-grid ul { padding-left: 1.2rem; }.notice-grid img { width: 100%; height: 145px; object-fit: cover; border-radius: 8px; }
.rain-notice { display: grid; grid-template-columns: 180px 1fr; gap: 24px; align-items: center; padding: 20px 28px; background: #eef8ff; border: 1px solid #a9d7ef; border-radius: 12px; }.rain-notice strong { color: #0876bf; font-family: var(--font-round); font-size: 1.7rem; }.rain-notice p { margin: 0; font-size: .85rem; }
.faq-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }.faq-grid details { padding: 16px 18px; background: white; border: 1px solid var(--line); border-radius: 10px; }.faq-grid summary { color: var(--green); font-weight: 800; cursor: pointer; }.faq-grid summary b { display: inline-grid; place-items: center; width: 26px; height: 26px; margin-right: .5rem; color: white; background: var(--green); border-radius: 50%; font-size: .7rem; }.faq-grid p { margin: 12px 0 0; padding-top: 12px; border-top: 1px dotted var(--line); font-size: .8rem; }
.name-grid { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }.name-grid div { display: grid; place-items: center; min-height: 92px; padding: 15px; background: white; border-right: 1px solid var(--line); font-size: .85rem; font-weight: 700; text-align: center; }.name-grid div:last-child { border-right: 0; }.name-grid--two { grid-template-columns: repeat(2, 1fr); max-width: 760px; margin: 0 auto; }
.thanks-card { display: grid; grid-template-columns: 230px 1fr; gap: 30px; align-items: center; max-width: 900px; margin: 34px auto 0; padding: 24px; background: linear-gradient(100deg, #fff4cc, #fffdf7); border-radius: 16px; }.thanks-card img { width: 100%; height: 180px; object-fit: contain; }.thanks-card h3 { color: var(--green); font-family: var(--font-round); }
.volunteer-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  margin-top: .35rem;
  padding: .72rem 1.25rem;
  color: white;
  font-size: .86rem;
  font-weight: 900;
  text-decoration: none;
  background: var(--green);
  border: 2px solid var(--green);
  border-radius: 999px;
  box-shadow: 0 7px 16px rgba(0,97,59,.18);
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.volunteer-cta:hover,
.volunteer-cta:focus-visible {
  color: white;
  background: var(--green-2);
  border-color: var(--green-2);
  box-shadow: 0 9px 22px rgba(0,97,59,.24);
  outline: 3px solid rgba(23,131,77,.2);
  transform: translateY(-2px);
}
.volunteer-cta span { font-size: 1rem; }
.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 46px max(24px, calc((100vw - var(--max)) / 2)); color: white; background: var(--green); }.site-footer strong, .site-footer span { display: block; }.site-footer span { margin-top: .35rem; font-size: .78rem; }.site-footer a { padding: .55rem .9rem; border: 1px solid rgba(255,255,255,.5); border-radius: 7px; font-size: .8rem; }

@media (max-width: 900px) {
  html { scroll-padding-top: 68px; }
  .site-header { min-height: 64px; padding: 10px 18px; }
  .wordmark { font-size: 1.25rem; }
  .menu-button { display: block; }
  .site-nav { position: absolute; top: 100%; left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 12px 20px 22px; background: rgba(255,253,247,.98); border-bottom: 1px solid var(--line); box-shadow: 0 15px 30px rgba(50,40,20,.1); }
  .is-menu-open .site-nav { display: flex; }.site-nav a { padding: .72rem .2rem; border-bottom: 1px solid var(--line); }.site-nav__accent { margin-top: 8px; text-align: center; }
  .is-menu-open .menu-button__line:nth-child(1) { transform: translateY(8px) rotate(45deg); }.is-menu-open .menu-button__line:nth-child(2) { opacity: 0; }.is-menu-open .menu-button__line:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .hero { min-height: 760px; }
  .hero__content { width: calc(100% - 28px); min-height: 485px; padding-top: 35px; display: flex; flex-direction: column; align-items: center; }
  .hero__copy { order: 1; }.event-facts { order: 2; align-items: center; margin-top: 22px; }.hero h1 { font-size: clamp(3rem, 13vw, 5rem); }.hero__lead { padding: 0 12px; font-size: .78rem; }.event-facts__year { margin-left: 0; }.event-facts__date { font-size: 2.8rem; }.event-facts__time { margin: .55rem 0 .15rem; font-size: 1.25rem; }.event-facts__place { font-size: 1.1rem; }
  .hero-scene { height: 285px; }.hero-scene__stage { bottom: 28px; width: 180px; }.hero-scene__stall { bottom: 38px; width: 115px; }.hero-scene__stall--left { left: 0; }.hero-scene__stall--right { right: 0; }.hero-scene__people { bottom: 24px; width: 125px; max-height: 110px; }.hero-scene__people--left { left: 12%; }.hero-scene__people--center { display: none; }.hero-scene__people--right { right: 12%; }.hero-scene__tree { display: none; }
  .content-section { width: min(100% - 20px, 680px); margin: 26px auto; border-radius: 15px; }
  .content-section__bar { top: 64px; min-height: 64px; gap: 10px; padding: 10px 14px; }.content-section__bar .round-icon { width: 36px; height: 36px; }.content-section__bar h2 { font-size: 1.05rem; }.content-section__bar h2 small { font-size: .72rem; }.content-section__body { padding: 28px 16px 70px; }
  .intro-block { grid-template-columns: 82px 1fr 82px; gap: 12px; }.intro-block > img { height: 95px; }.intro-block h3 { font-size: 1.35rem; }.intro-block p { font-size: .78rem; }
  .vendor-grid, .experience-grid, .faq-grid { grid-template-columns: 1fr; }.mini-card-grid, .dance-grid { grid-template-columns: 1fr; }.vendor-card { grid-template-columns: 110px 1fr; min-height: 125px; }.vendor-card img { height: 100px; }.experience-card { grid-template-columns: 130px 1fr; }.experience-card img { height: 140px; }
  .dance-card { display: grid; grid-template-columns: 1fr 130px; gap: 6px 18px; text-align: left; }.dance-card__number { top: 16px; left: 16px; transform: none; }.dance-card time, .dance-card h3, .dance-card p { grid-column: 1; padding-left: 36px; }.dance-card h3 { min-height: 0; margin-bottom: .2rem; }.dance-card img { grid-column: 2; grid-row: 1 / span 3; height: 140px; }.dance-card p { padding-left: 0; }
  .dance-story > div { gap: 7px; }.dance-story figure img { height: 100px; }.dance-story figcaption { font-size: .72rem; }.dance-story > div > span { font-size: 1rem; }
  .timeline li { grid-template-columns: 82px 88px 1fr; gap: 12px; padding: 12px; }.timeline time { font-size: 1.08rem; }.timeline img { height: 62px; }
  .access-grid { grid-template-columns: 1fr; }.access-map { height: auto; }.notice-grid { grid-template-columns: 1fr; }.rain-notice { grid-template-columns: 1fr; gap: 4px; text-align: center; }.name-grid { grid-template-columns: repeat(2, 1fr); }.name-grid div { min-height: 75px; border-bottom: 1px solid var(--line); }.name-grid--two { grid-template-columns: 1fr 1fr; }.thanks-card { grid-template-columns: 130px 1fr; gap: 15px; }.thanks-card img { height: 120px; }
}

@media (max-width: 560px) {
  .hero { min-height: 700px; }.hero__copy { width: 100%; }.hero__kicker { font-size: .78rem; }.hero__tagline { font-size: .98rem; letter-spacing: .08em; }.hero__lead br:first-child { display: none; }.hero-scene { height: 240px; }.hero-scene__stage { width: 150px; }.hero-scene__stall { width: 90px; }.hero-scene__people { width: 94px; }.hero__patterns::before, .hero__patterns::after { width: 140px; }
  .about { padding: 64px 24px; }.about h2 { font-size: 1.65rem; }.about p:last-child { text-align: left; font-size: .86rem; }
  .guide { padding: 56px 10px 100px; }.guide-nav a { grid-template-columns: 38px 1fr auto; gap: 10px; padding: 9px 11px; }.guide-nav .round-icon { width: 38px; height: 38px; }.guide-nav b { font-size: .79rem; }.guide-nav small { font-size: .65rem; }
  .content-section__bar h2 small { display: block; }.content-section__bar > a { font-size: 1.2rem; }
  .intro-block { grid-template-columns: 1fr; }.intro-block > img { position: absolute; width: 70px; height: 70px; opacity: .8; }.intro-block > img:first-child { left: 8px; }.intro-block > img:last-child { right: 8px; }.intro-block > div { position: relative; z-index: 2; padding: 0 35px; }.intro-block h3 { font-size: 1.2rem; }.info-chip { justify-content: center; font-size: .9rem !important; }
  .subheading { font-size: 1.18rem; letter-spacing: .08em; }.subheading::before, .subheading::after { width: 50px; }
  .feature-card { padding: 22px 12px; }.feature-card__title h3 { font-size: 1.4rem; }.mini-card-grid { gap: 18px; }.mini-card-grid article { padding: 22px 15px 14px; }
  .vendor-card { grid-template-columns: 88px 1fr; gap: 10px; padding: 10px; }.vendor-card img { height: 82px; }.vendor-card h4 { font-size: .9rem; }.vendor-card p { font-size: .7rem; }
  .experience-card { grid-template-columns: 100px 1fr; gap: 12px; }.experience-card img { height: 110px; }.experience-card h3 { font-size: 1rem; }.experience-card p { font-size: .72rem; }
  .dance-card { grid-template-columns: 1fr 90px; padding: 22px 12px 14px; }.dance-card img { height: 90px; }.dance-card time { font-size: 1.18rem; }.dance-card h3 { font-size: 1.05rem; }.dance-card p { font-size: .74rem; }.dance-story > div { grid-template-columns: 1fr; }.dance-story > div > span { transform: rotate(90deg); text-align: center; }.dance-story figure img { height: 120px; }
  .timeline li { grid-template-columns: 75px 1fr; }.timeline img { grid-column: 1; grid-row: 2; }.timeline div { grid-column: 2; grid-row: 1 / span 2; }.timeline h3 { font-size: .9rem; }.timeline p { font-size: .7rem; }
  .name-grid, .name-grid--two { grid-template-columns: 1fr; }.thanks-card { grid-template-columns: 1fr; text-align: center; }.thanks-card img { width: 150px; margin: 0 auto; }.site-footer { align-items: flex-start; flex-direction: column; }
}

/* EXPERIENCE overview: five booths leading to dedicated detail pages. */
.content-section--experience .content-section__body::after { display: none; }

.experience-overview {
  padding: 38px 42px 18px;
}

.experience-overview__heading {
  margin: 0 auto 24px;
  text-align: center;
}

.experience-overview__eyebrow {
  margin: 0 0 .35rem;
  color: #6a8c5f;
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .18em;
}

.experience-overview__heading h3 {
  margin: 0;
  color: var(--green);
  font-size: clamp(1.75rem, 3.6vw, 2.55rem);
  font-weight: 900;
  letter-spacing: .13em;
}

.experience-overview__heading h3 span {
  color: #ff8f94;
  font-size: .72em;
}

.experience-overview__heading > p:last-child {
  margin: .65rem 0 0;
  font-size: .9rem;
  font-weight: 700;
}

.experience-booth-list {
  display: grid;
  gap: 10px;
  max-width: 1040px;
  margin: 0 auto;
}

.experience-booth-card {
  display: grid;
  grid-template-columns: 46px 150px minmax(260px, 1fr) minmax(150px, 210px) 172px;
  align-items: center;
  gap: 18px;
  min-height: 142px;
  padding: 14px 18px;
  color: #143d2c;
  text-decoration: none;
  background: rgba(255,255,255,.84);
  border: 1px solid #ead7b3;
  border-radius: 14px;
  box-shadow: 0 4px 14px rgba(73,57,25,.045);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.experience-booth-card:hover,
.experience-booth-card:focus-visible {
  transform: translateY(-2px);
  border-color: #71a477;
  box-shadow: 0 9px 22px rgba(0,83,48,.11);
  outline: none;
}

.experience-booth-card__number {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: white;
  font-size: .95rem;
  font-weight: 900;
  background: var(--green);
  border-radius: 50%;
}

.experience-booth-card__photo {
  width: 100%;
  height: 108px;
  object-fit: contain;
  padding: 5px;
  background: #fffaf1;
  border: 1px solid #eadbc0;
  border-radius: 10px;
}

.experience-booth-card__copy {
  display: grid;
  gap: .45rem;
}

.experience-booth-card__copy strong {
  color: var(--green);
  font-size: 1.22rem;
  font-weight: 900;
  letter-spacing: .06em;
}

.experience-booth-card__copy small {
  color: #26372f;
  font-size: .83rem;
  font-weight: 700;
  line-height: 1.7;
}

.experience-booth-card__logo {
  width: 100%;
  max-height: 66px;
  object-fit: contain;
}

.experience-booth-card__logo--seika { max-height: 42px; }
.experience-booth-card__motif { color: #75b558; font-size: 3rem; font-weight: 900; text-align: center; }
.experience-booth-card__motif-img { width: 74px; height: 74px; margin: auto; object-fit: contain; }

.experience-booth-card__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 46px;
  padding: .55rem .8rem;
  color: var(--green);
  font-size: .84rem;
  font-weight: 900;
  white-space: nowrap;
  border: 1.5px solid #49906b;
  border-radius: 10px;
}

.experience-booth-card__button b { font-size: 1.45rem; line-height: .8; }

.experience-overview__landscape {
  position: relative;
  display: grid;
  grid-template-columns: 56px 72px 1fr 104px;
  align-items: end;
  gap: 4px;
  height: 118px;
  margin: 10px -22px -18px;
  overflow: hidden;
}

.experience-overview__landscape img { width: 100%; max-height: 100px; object-fit: contain; object-position: center bottom; }

@media (max-width: 1000px) {
  .experience-booth-card { grid-template-columns: 42px 130px 1fr 140px; }
  .experience-booth-card__logo,
  .experience-booth-card__motif,
  .experience-booth-card__motif-img { display: none; }
}

@media (max-width: 700px) {
  .experience-overview { padding: 28px 12px 12px; }
  .experience-overview__heading { margin-bottom: 18px; }
  .experience-overview__heading h3 { font-size: 1.55rem; letter-spacing: .08em; }
  .experience-overview__heading > p:last-child { font-size: .78rem; }
  .experience-booth-list { gap: 8px; }
  .experience-booth-card {
    position: relative;
    grid-template-columns: 34px 92px minmax(0, 1fr) 28px;
    gap: 9px;
    min-height: 112px;
    padding: 10px;
    border-radius: 11px;
  }
  .experience-booth-card__number { width: 32px; height: 32px; font-size: .72rem; }
  .experience-booth-card__photo { height: 88px; padding: 3px; }
  .experience-booth-card__copy { gap: .3rem; }
  .experience-booth-card__copy strong { font-size: .94rem; line-height: 1.35; letter-spacing: .03em; }
  .experience-booth-card__copy small { font-size: .68rem; line-height: 1.55; }
  .experience-booth-card__button {
    width: 28px;
    min-height: 28px;
    padding: 0;
    border: 0;
    font-size: 0;
  }
  .experience-booth-card__button b { font-size: 1.8rem; }
  .experience-overview__landscape { grid-template-columns: 38px 50px 1fr 72px; height: 86px; margin: 8px -4px -12px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }

/* Hero layout refined from the approved desktop and mobile composition. */
.wordmark {
  display: block;
  width: 172px;
  line-height: 0;
}

.wordmark img {
  width: 100%;
  height: auto;
}

.hero {
  min-height: 640px;
  background:
    radial-gradient(circle at 18% 15%, rgba(210, 239, 244, .55) 0 5px, transparent 6px),
    radial-gradient(circle at 75% 14%, rgba(198, 232, 240, .55) 0 8px, transparent 9px),
    radial-gradient(circle at 88% 28%, rgba(255, 255, 255, .88) 0 18px, rgba(202, 231, 240, .42) 19px, transparent 25px),
    linear-gradient(180deg, #fffdf8 0%, #fffdf6 53%, #f8fcf0 100%);
}

.hero::before {
  left: -175px;
  top: 165px;
  width: 440px;
  height: 300px;
  border-radius: 50%;
  background: #ffe749;
  filter: none;
  opacity: .72;
  transform: rotate(-10deg);
}

.hero::after {
  right: -140px;
  top: 230px;
  width: 430px;
  height: 265px;
  border-radius: 50%;
  background: #cfeaf2;
  filter: none;
  opacity: .74;
  transform: rotate(8deg);
}

.hero__patterns::before,
.hero__patterns::after {
  width: 245px;
  height: 120px;
  opacity: .45;
  background-size: 24px 12px;
}

.hero__patterns::before { right: 6%; top: 18px; }
.hero__patterns::after { left: 14%; top: -54px; }

.hero__content {
  width: min(1240px, calc(100% - 56px));
  min-height: 305px;
  padding-top: 35px;
  grid-template-columns: 220px minmax(0, 1fr) 220px;
}

.hero__copy {
  width: min(690px, 100%);
  margin: 0 auto;
}

.hero__kicker {
  margin-bottom: .25rem;
  font-size: .88rem;
  letter-spacing: .3em;
}

.hero h1 {
  display: flex;
  justify-content: center;
  margin: 0 auto .35rem;
  line-height: 0;
}

.hero h1 img {
  width: min(590px, 90%);
  height: auto;
}

.hero__tagline {
  margin-bottom: .75rem;
  font-size: clamp(1.05rem, 1.8vw, 1.45rem);
}

.hero__lead {
  max-width: 720px;
  font-size: .82rem;
  line-height: 1.8;
}

.event-facts {
  margin-top: 48px;
  padding-left: 8px;
}

.event-facts__date { font-size: 3.15rem; }
.event-facts__time { margin-top: .7rem; font-size: 1.35rem; }

.hero-scene {
  height: 360px;
}

.hero-scene::before { display: none; }

.hero-scene__mound {
  position: absolute;
  left: 50%;
  width: 118%;
  max-width: none;
  object-fit: fill;
  transform: translateX(-50%);
}

.hero-scene__mound--back {
  z-index: 0;
  bottom: 76px;
  height: 260px;
  opacity: .82;
  filter: hue-rotate(18deg) saturate(.82) brightness(1.06);
}

.hero-scene__mound--front {
  z-index: 1;
  bottom: 8px;
  height: 245px;
  opacity: .96;
  filter: hue-rotate(8deg) saturate(.86) brightness(1.03);
}

.hero-scene__hills {
  z-index: 2;
  left: -2%;
  bottom: -46px;
  width: 104%;
  height: 155px;
  object-fit: fill;
}

.hero-scene__stage {
  z-index: 8;
  bottom: 44px;
  width: 215px;
}

.hero-scene__stall {
  z-index: 5;
  bottom: 52px;
  width: 125px;
  height: 118px;
  object-fit: contain;
}

.hero-scene__stall--left { left: 7%; }
.hero-scene__stall--left-center { left: 30%; bottom: 69px; width: 105px; }
.hero-scene__stall--right-center { right: 28%; bottom: 67px; width: 105px; }
.hero-scene__stall--right { right: 6%; }

.hero-scene__people {
  z-index: 9;
  bottom: 35px;
  width: 120px;
  max-height: 128px;
}

.hero-scene__people--far-left { left: 1.5%; width: 82px; }
.hero-scene__people--left { left: 17%; width: 112px; }
.hero-scene__people--left-center { left: 38%; width: 78px; }
.hero-scene__people--center { left: 50%; width: 80px; transform: translateX(-50%); }
.hero-scene__people--right-center { right: 37%; width: 78px; }
.hero-scene__people--right { right: 16%; width: 122px; }
.hero-scene__people--far-right { right: 1.5%; width: 82px; }

.hero-scene__tree {
  z-index: 4;
  bottom: 65px;
  width: 72px;
  max-height: 135px;
}

.hero-scene__tree--one { left: 2%; }
.hero-scene__tree--two { left: 65%; }
.hero-scene__tree--three { right: 2%; }

@media (max-width: 900px) {
  .wordmark { width: 150px; }

  .hero {
    min-height: 710px;
    background:
      radial-gradient(circle at 16% 11%, rgba(202, 231, 240, .48) 0 7px, transparent 8px),
      radial-gradient(circle at 84% 20%, rgba(255, 255, 255, .85) 0 18px, rgba(202, 231, 240, .38) 19px, transparent 25px),
      linear-gradient(180deg, #fffdf8 0%, #fffdf6 58%, #f8fcf0 100%);
  }

  .hero::before { left: -210px; top: 225px; width: 390px; height: 245px; }
  .hero::after { right: -190px; top: 330px; width: 370px; height: 225px; }

  .hero__content {
    width: calc(100% - 28px);
    min-height: 475px;
    padding-top: 27px;
  }

  .hero__copy { width: 100%; }
  .hero h1 img { width: min(520px, 94%); }
  .hero__lead { max-width: 540px; padding: 0 20px; font-size: .76rem; }
  .event-facts { margin-top: 18px; padding-left: 0; }

  .hero-scene { height: 255px; }
  .hero-scene__mound--back { bottom: 48px; height: 190px; }
  .hero-scene__mound--front { bottom: 2px; height: 165px; }
  .hero-scene__hills { bottom: -24px; height: 105px; }
  .hero-scene__stage { bottom: 27px; width: 155px; }
  .hero-scene__stall { bottom: 35px; width: 86px; height: 80px; }
  .hero-scene__stall--left { left: 0; }
  .hero-scene__stall--left-center { left: 25%; bottom: 43px; width: 70px; }
  .hero-scene__stall--right-center { right: 24%; bottom: 43px; width: 70px; }
  .hero-scene__stall--right { right: 0; }
  .hero-scene__people { display: block; bottom: 22px; width: 72px; max-height: 76px; }
  .hero-scene__people--far-left { left: 1%; width: 50px; }
  .hero-scene__people--left { left: 14%; width: 72px; }
  .hero-scene__people--left-center { left: 36%; width: 48px; }
  .hero-scene__people--center { left: 50%; width: 50px; }
  .hero-scene__people--right-center { right: 35%; width: 48px; }
  .hero-scene__people--right { right: 13%; width: 74px; }
  .hero-scene__people--far-right { right: 1%; width: 50px; }
}

@media (max-width: 560px) {
  .wordmark { width: 136px; }
  .hero { min-height: 680px; }
  .hero__patterns::before { right: -42px; top: 85px; }
  .hero__patterns::after { left: -58px; top: 155px; }
  .hero__content { min-height: 485px; padding-top: 24px; }
  .hero__kicker { font-size: .72rem; }
  .hero h1 { margin-bottom: .55rem; }
  .hero h1 img { width: min(355px, 96%); }
  .hero__tagline { margin-bottom: .75rem; font-size: 1rem; }
  .hero__lead { max-width: 355px; padding: 0 8px; font-size: .72rem; line-height: 1.75; }
  .event-facts__date { font-size: 2.75rem; }
  .event-facts__time { font-size: 1.23rem; }
  .hero-scene { height: 205px; }
  .hero-scene__mound--back { bottom: 35px; height: 145px; }
  .hero-scene__mound--front { height: 125px; }
  .hero-scene__stage { width: 125px; bottom: 24px; }
  .hero-scene__stall { width: 64px; height: 60px; bottom: 28px; }
  .hero-scene__stall--left-center, .hero-scene__stall--right-center { display: none; }
  .hero-scene__people { bottom: 18px; }
  .hero-scene__people--far-left, .hero-scene__people--far-right { display: none; }
  .hero-scene__people--left { left: 8%; width: 58px; }
  .hero-scene__people--left-center { left: 31%; width: 39px; }
  .hero-scene__people--center { width: 42px; }
  .hero-scene__people--right-center { right: 30%; width: 39px; }
  .hero-scene__people--right { right: 7%; width: 60px; }
}

/* Composite hero artwork — keep these overrides last in the cascade. */
.hero {
  min-height: 680px;
  background: #fffdf6;
}

.hero::before,
.hero::after,
.hero__patterns {
  display: none;
}

.hero__content {
  min-height: 0;
  padding-top: 34px;
}

.hero-scene {
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.hero-scene__art {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

@media (max-width: 900px) {
  .hero { min-height: 700px; }
  .hero__content { min-height: 0; padding-top: 28px; }
}

@media (max-width: 560px) {
  .hero { min-height: 770px; }
  .hero__content { min-height: 0; padding-top: 22px; }
  .hero-scene { height: 100%; }
  .hero-scene__art {
    position: absolute;
    inset: auto 0 0;
    height: 600px;
    object-position: 50% bottom;
  }
}

/* Hero-integrated navigation and clearer event information. */
html { scroll-padding-top: 16px; }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 20;
  min-height: 74px;
  background: transparent;
  border-bottom: 0;
  backdrop-filter: none;
}

.hero { min-height: 780px; }
.hero__content { padding-top: 88px; }
.hero__lead { margin-bottom: 2.4rem; }

.event-facts {
  margin-top: 58px;
  text-shadow: 0 1px 0 rgba(255,255,255,.9);
}

.event-facts__year {
  font-size: 1rem;
  font-weight: 700;
}

.event-facts__date {
  font-size: 4.8rem;
  font-weight: 600;
}

.event-facts__date small {
  width: 38px;
  height: 38px;
  font-size: 1rem;
  text-shadow: none;
}

.event-facts__time {
  margin-top: 1rem;
  padding: 0 .4rem;
  font-size: 1.95rem;
  line-height: 1.35;
}

.event-facts__place { font-size: 1.45rem; }
.event-facts__rain { font-size: .86rem; font-weight: 700; }

.hero-scene__art {
  position: absolute;
  inset: auto 0 0;
  height: 680px;
}

.content-section__bar { top: 0; }

@media (max-width: 900px) {
  html { scroll-padding-top: 12px; }
  .site-header { min-height: 64px; }
  .site-nav { z-index: 30; }
  .hero { min-height: 764px; }
  .hero__content { padding-top: 84px; }
  .hero__lead { margin-bottom: 1.8rem; }
  .event-facts { margin-top: 20px; }
  .event-facts__year { font-size: .92rem; }
  .event-facts__date { font-size: 3.9rem; }
  .event-facts__time { font-size: 1.65rem; }
  .event-facts__place { font-size: 1.25rem; }
  .content-section__bar { top: 0; }
}

@media (max-width: 560px) {
  .hero { min-height: 840px; }
  .hero__content { padding-top: 84px; }
  .hero__lead { margin-bottom: 1.9rem; }
  .event-facts { margin-top: 18px; }
  .event-facts__date { font-size: 3.85rem; }
  .event-facts__time { font-size: 1.65rem; }
  .event-facts__place { font-size: 1.25rem; }
  .hero-scene__art { height: 600px; }
}

/* FOOD section rebuilt from the approved layout reference. */
.round-icon img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.content-section--food .content-section__body {
  padding: 36px 36px 24px;
  font-weight: 500;
}

.content-section--food .content-section__body::after { display: none; }

.content-section--food .intro-block--food {
  grid-template-columns: 130px minmax(0, 1fr) 130px;
  gap: 24px;
  max-width: 1000px;
  margin-bottom: 18px;
}

.content-section--food .intro-block--food > img {
  height: 132px;
}

.content-section--food .intro-block--food h3 {
  margin-bottom: .7rem;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  font-weight: 700;
}

.content-section--food .intro-block--food p {
  font-size: .94rem;
  font-weight: 700;
  line-height: 1.9;
}

.content-section--food .info-chip {
  gap: .6rem;
  margin-top: 1.35rem !important;
  padding: .7rem 1.1rem;
  font-size: 1rem !important;
  font-weight: 700;
}

.content-section--food .info-chip b { font-weight: 900; }
.content-section--food .info-chip strong { color: var(--green); font-size: 1.06rem; font-weight: 900; }
.content-section--food .info-chip small { margin-left: .25rem; font-size: .78rem; font-weight: 700; }

.time-icon {
  position: relative;
  display: inline-block;
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  background: var(--orange);
  border-radius: 50%;
}

.time-icon::before,
.time-icon::after {
  content: "";
  position: absolute;
  left: 11px;
  top: 5px;
  width: 2px;
  height: 8px;
  background: white;
  border-radius: 2px;
  transform-origin: 1px 7px;
}

.time-icon::after { transform: rotate(125deg); }

.food-subheading {
  gap: .7rem;
  margin: 24px 0 18px;
  font-size: 1.55rem;
  font-weight: 700;
}

.food-subheading img {
  width: 28px;
  height: 38px;
  object-fit: contain;
}

.food-subheading::before,
.food-subheading::after {
  flex: 1 1 160px;
  width: auto;
  max-width: 220px;
}

.content-section--food .vendor-grid {
  gap: 14px;
}

.content-section--food .vendor-card {
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 18px;
  min-height: 162px;
  padding: 14px 16px 14px 14px;
}

.content-section--food .vendor-card > img {
  align-self: center;
  width: 100%;
  height: 132px;
  object-fit: contain;
  object-position: center;
}

.content-section--food .vendor-card > div { align-self: center; }

.vendor-card__heading {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: 0 0 .45rem;
  border-bottom: 2px dotted #dfcda8;
}

.content-section--food .vendor-card__heading span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  margin: 0;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  text-align: center;
}

.content-section--food .vendor-card h4 {
  display: block;
  margin: 0;
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.45;
}

.content-section--food .vendor-card p {
  margin: .68rem 0 0;
  padding: 0;
  border: 0;
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.75;
}

.vendor-scene {
  display: grid;
  grid-template-columns: 80px minmax(180px, 250px) 72px;
  justify-content: center;
  align-items: end;
  gap: 2px;
  min-height: 162px;
  padding: 6px 14px 0;
}

.vendor-scene img {
  width: 100%;
  max-height: 148px;
  object-fit: contain;
  object-position: center bottom;
}

.vendor-scene img:nth-child(2) { max-height: 142px; }

.content-section--food .section-note {
  margin: 24px 0 8px;
  font-size: .78rem;
  font-weight: 700;
}

.food-footer-landscape {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2%;
  min-height: 130px;
  margin: 12px 0 0;
  padding: 12px 18px 28px;
  overflow: visible;
}

.food-footer-landscape img {
  width: auto;
  height: 72px;
  flex: 0 1 auto;
  object-fit: contain;
  object-position: center bottom;
}

.food-footer-landscape img:nth-child(2) { height: 66px; }
.food-footer-landscape img:nth-child(3) { height: 32px; }
.food-footer-landscape img:nth-child(4) { height: 64px; }
.food-footer-landscape img:nth-child(5) { height: 78px; }
.food-footer-landscape img:nth-child(6) { height: 68px; }
.food-footer-landscape img:nth-child(7) { height: 82px; }

@media (max-width: 900px) {
  .content-section--food .content-section__body { padding: 28px 18px 18px; }
  .content-section--food .intro-block--food { grid-template-columns: 92px 1fr 92px; gap: 12px; }
  .content-section--food .intro-block--food > img { height: 105px; }
  .content-section--food .vendor-card { grid-template-columns: 126px 1fr; min-height: 144px; }
  .content-section--food .vendor-card > img { height: 112px; }
  .vendor-scene { grid-template-columns: 68px minmax(170px, 235px) 62px; min-height: 144px; }
}

@media (max-width: 560px) {
  .content-section--food .content-section__body { padding: 24px 10px 16px; }
  .content-section--food .content-section__bar h2 small { display: inline; margin-left: .2rem; }
  .content-section--food .intro-block--food { display: grid; grid-template-columns: 1fr; margin-bottom: 12px; }
  .content-section--food .intro-block--food > img { width: 54px; height: 68px; }
  .content-section--food .intro-block--food > div { padding: 0 58px; }
  .content-section--food .intro-block--food h3 { font-size: 1.3rem; }
  .content-section--food .intro-block--food p { font-size: .78rem; line-height: 1.8; }
  .content-section--food .info-chip { gap: .4rem; margin-right: -48px; margin-left: -48px; padding: .65rem .6rem; font-size: .84rem !important; }
  .content-section--food .info-chip strong { font-size: .9rem; }
  .content-section--food .info-chip small { width: 100%; margin-left: 0; }
  .food-subheading { gap: .35rem; margin: 20px 0 14px; font-size: 1.2rem; }
  .food-subheading img { width: 22px; height: 30px; }
  .food-subheading::before, .food-subheading::after { max-width: 48px; }
  .content-section--food .vendor-grid { gap: 10px; }
  .content-section--food .vendor-card { grid-template-columns: 104px 1fr; gap: 10px; min-height: 126px; padding: 10px; }
  .content-section--food .vendor-card > img { position: static; width: 100%; height: 100px; opacity: 1; }
  .content-section--food .vendor-card__heading { gap: .45rem; padding-bottom: .35rem; }
  .content-section--food .vendor-card__heading span { width: 36px; height: 36px; flex-basis: 36px; font-size: .88rem; }
  .content-section--food .vendor-card h4 { font-size: .88rem; }
  .content-section--food .vendor-card p { margin-top: .5rem; font-size: .72rem; font-weight: 700; line-height: 1.65; }
  .vendor-scene { grid-template-columns: 58px minmax(150px, 205px) 52px; min-height: 124px; }
  .vendor-scene img { position: static; width: 100%; height: auto; opacity: 1; }
  .food-footer-landscape { min-height: 108px; margin: 8px 0 0; padding: 10px 8px 22px; }
  .food-footer-landscape img { position: static; width: auto; height: 50px; opacity: 1; }
  .food-footer-landscape img:nth-child(2) { height: 46px; }
  .food-footer-landscape img:nth-child(3) { height: 23px; }
  .food-footer-landscape img:nth-child(4) { height: 43px; }
  .food-footer-landscape img:nth-child(5) { height: 52px; }
  .food-footer-landscape img:nth-child(6) { height: 46px; }
  .food-footer-landscape img:nth-child(7) { height: 58px; }
}

/* Prominent sponsor acknowledgement directly below the hero. */
.hero-sponsors {
  position: relative;
  padding: 52px 24px 60px;
  overflow: hidden;
  text-align: center;
  background:
    radial-gradient(circle at 12% 28%, rgba(255,229,70,.13), transparent 18%),
    radial-gradient(circle at 88% 66%, rgba(83,187,218,.11), transparent 18%),
    #fffefa;
  border-top: 1px solid rgba(0,97,59,.08);
  border-bottom: 1px solid var(--line);
}

.hero-sponsors__heading {
  display: grid;
  grid-template-columns: minmax(60px, 220px) auto minmax(60px, 220px);
  align-items: center;
  justify-content: center;
  gap: 22px;
  max-width: 720px;
  margin: 0 auto;
}

.hero-sponsors__heading p {
  margin: 0 0 .12rem;
  color: #8a6c24;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .24em;
}

.hero-sponsors__heading h2 {
  margin: 0;
  color: var(--green);
  font-size: clamp(1.55rem, 3vw, 2rem);
  font-weight: 900;
  letter-spacing: .18em;
}

.hero-sponsors__line {
  height: 2px;
  background: linear-gradient(90deg, transparent, #d7b95f);
}

.hero-sponsors__line:last-child { transform: scaleX(-1); }

.hero-sponsors__message {
  margin: .65rem auto 1.6rem;
  color: #455d51;
  font-size: .82rem;
  font-weight: 700;
}

.hero-sponsors__logos {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(240px, 430px));
  justify-content: center;
  gap: 24px;
  max-width: 900px;
  margin: 0 auto;
}

.hero-sponsor-card {
  display: grid;
  grid-template-rows: 132px auto;
  place-items: center;
  min-height: 188px;
  margin: 0;
  padding: 22px 30px 14px;
  background: white;
  border: 1px solid #e8d8b9;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(73,57,25,.08);
}

.hero-sponsor-card img {
  width: 100%;
  height: 124px;
  object-fit: contain;
}

.hero-sponsor-card:first-child img { max-width: 225px; }
.hero-sponsor-card:nth-child(2) img { max-width: 290px; }

.hero-sponsor-card p {
  margin: .45rem 0 0;
  color: #637168;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .08em;
}

.hero-sponsors__trees {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  pointer-events: none;
}

.hero-sponsors__trees img { width: 74px; height: 88px; object-fit: contain; object-position: center bottom; opacity: .8; }
.hero-sponsors__trees img:nth-child(2) { width: 92px; height: 105px; }

@media (max-width: 700px) {
  .hero-sponsors { padding: 38px 14px 50px; }
  .hero-sponsors__heading { grid-template-columns: 42px auto 42px; gap: 12px; }
  .hero-sponsors__heading p { font-size: .58rem; }
  .hero-sponsors__heading h2 { font-size: 1.45rem; }
  .hero-sponsors__message { max-width: 300px; margin-bottom: 1.15rem; font-size: .7rem; line-height: 1.7; }
  .hero-sponsors__logos { grid-template-columns: 1fr 1fr; gap: 10px; }
  .hero-sponsor-card { grid-template-rows: 92px auto; min-height: 132px; padding: 14px 10px 10px; border-radius: 12px; }
  .hero-sponsor-card img { height: 86px; }
  .hero-sponsor-card:first-child img { max-width: 140px; }
  .hero-sponsor-card:nth-child(2) img { max-width: 160px; }
  .hero-sponsor-card p { font-size: .62rem; }
  .hero-sponsors__trees img { width: 46px; height: 58px; }
  .hero-sponsors__trees img:nth-child(2) { width: 58px; height: 70px; }
}

/* Final readability and sponsor/experience placement refinements. */
body,
body p,
body li,
body dt,
body dd,
body summary,
body small,
body time,
body figcaption {
  font-weight: 700;
}

body strong,
body b { font-weight: 900; }

body .hero__lead,
body .event-facts__date,
body .event-facts__rain,
body .section-note,
body .feature-card__note,
body .experience-booth-card__copy small,
body .site-footer span { font-weight: 700; }

.experience-booth-card {
  grid-template-columns: 46px 190px minmax(280px, 1fr) 172px;
}

.experience-booth-card__media {
  display: grid;
  place-items: center;
  width: 100%;
  height: 108px;
  padding: 12px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #eadbc0;
  border-radius: 10px;
}

.experience-booth-card__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.experience-booth-card__media--icon {
  color: #73af56;
  font-size: 3.2rem;
  font-weight: 900;
}
.experience-booth-card__media--pending {
  align-content: center;
  gap: 3px;
  color: var(--green);
  text-align: center;
  background:
    radial-gradient(circle at 18% 25%, rgba(246,195,63,.28) 0 4px, transparent 5px),
    radial-gradient(circle at 84% 72%, rgba(88,173,40,.2) 0 5px, transparent 6px),
    #fffdf8;
  border: 1px dashed #dec99e;
}
.experience-booth-card__media--pending b { font-size: .72rem; line-height: 1.35; letter-spacing: .1em; }
.experience-booth-card__media--pending small { color: #65776c; font-size: .59rem; font-weight: 800; line-height: 1.4; }

.supporter-special-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(240px, 390px));
  justify-content: center;
  gap: 18px;
  max-width: 820px;
  margin: 0 auto;
}

.supporter-special-grid article {
  display: grid;
  grid-template-rows: 130px auto;
  place-items: center;
  min-height: 184px;
  padding: 20px 26px 14px;
  background: white;
  border: 1px solid #e2c987;
  border-radius: 13px;
  box-shadow: 0 8px 22px rgba(73,57,25,.07);
}

.supporter-special-grid img {
  width: 100%;
  height: 124px;
  object-fit: contain;
}

.supporter-special-grid article:first-child img { max-width: 280px; }
.supporter-special-grid article:nth-child(2) img { max-width: 210px; }

.supporter-special-grid p {
  margin: .45rem 0 0;
  color: #53665c;
  font-size: .74rem;
  letter-spacing: .08em;
}

@media (max-width: 1000px) {
  .experience-booth-card { grid-template-columns: 42px 160px 1fr 140px; }
}

@media (max-width: 700px) {
  .experience-booth-card { grid-template-columns: 34px 108px minmax(0, 1fr) 28px; }
  .experience-booth-card__media { height: 88px; padding: 7px; }
  .experience-booth-card__media--icon { font-size: 2.35rem; }
  .experience-booth-card__media--pending b { font-size: .59rem; letter-spacing: .04em; }
  .experience-booth-card__media--pending small { font-size: .5rem; }
  .supporter-special-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .supporter-special-grid article { grid-template-rows: 92px auto; min-height: 132px; padding: 12px 8px 9px; }
  .supporter-special-grid img { height: 86px; }
  .supporter-special-grid article:first-child img { max-width: 160px; }
  .supporter-special-grid article:nth-child(2) img { max-width: 130px; }
  .supporter-special-grid p { font-size: .6rem; }
}

/* Sponsor hierarchy: Rakuhoku Hankyu Square first, Tenkaippin second. */
.sponsor-profile-list {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 16px;
  width: min(900px, 100%);
  margin: 0 auto;
}

.sponsor-profile-card {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  align-items: center;
  gap: 30px;
  min-height: 208px;
  padding: 24px 32px;
  text-align: left;
  background: rgba(255,255,255,.96);
  border: 1px solid #e5d8bd;
  border-radius: 16px;
  box-shadow: 0 9px 24px rgba(73,57,25,.07);
}

.sponsor-profile-card--primary {
  grid-template-columns: 270px minmax(0, 1fr);
  min-height: 236px;
  border: 2px solid #c8ab58;
  box-shadow: 0 12px 30px rgba(125,93,24,.12);
}

.sponsor-profile-card__logo {
  display: grid;
  place-items: center;
  min-height: 150px;
  padding: 16px;
  background: #fff;
  border-right: 1px solid #eadfc9;
}

.sponsor-profile-card__logo img {
  width: 100%;
  max-height: 138px;
  object-fit: contain;
}

.sponsor-profile-card--primary .sponsor-profile-card__logo img { max-height: 150px; }

.sponsor-profile-card__content > span {
  display: inline-block;
  margin-bottom: .2rem;
  color: #9a7b25;
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .2em;
}

.sponsor-profile-card__content h3 {
  margin: 0 0 .5rem;
  color: var(--green);
  font-size: 1.35rem;
  font-weight: 900;
  letter-spacing: .07em;
}

.sponsor-profile-card--primary .sponsor-profile-card__content h3 { font-size: 1.55rem; }

.sponsor-profile-card__content p {
  margin: 0 0 .65rem;
  color: #2d4137;
  font-size: .8rem;
  line-height: 1.75;
}

.sponsor-profile-card__content address {
  margin: 0 0 .8rem;
  color: #53665c;
  font-size: .76rem;
  font-style: normal;
  font-weight: 700;
}

.sponsor-profile-card__content > a,
.sponsor-profile-card__links a {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 38px;
  padding: .45rem .8rem;
  color: white;
  font-size: .72rem;
  font-weight: 900;
  text-decoration: none;
  background: var(--green);
  border-radius: 7px;
}

.sponsor-profile-card__content > a:hover,
.sponsor-profile-card__content > a:focus-visible,
.sponsor-profile-card__links a:hover,
.sponsor-profile-card__links a:focus-visible {
  background: var(--green-2);
  outline: 3px solid rgba(23,131,77,.2);
}

.sponsor-profile-card__links { display: flex; flex-wrap: wrap; gap: 8px; }
.sponsor-profile-list--supporters { max-width: 940px; }
.sponsor-profile-list--supporters .sponsor-profile-card { background: #fffefa; }

@media (max-width: 760px) {
  .sponsor-profile-list { gap: 12px; }
  .sponsor-profile-card,
  .sponsor-profile-card--primary {
    grid-template-columns: 1fr;
    gap: 10px;
    min-height: 0;
    padding: 18px 16px;
    text-align: center;
  }
  .sponsor-profile-card--primary { padding-top: 22px; }
  .sponsor-profile-card__logo {
    min-height: 102px;
    padding: 8px 14px 14px;
    border-right: 0;
    border-bottom: 1px solid #eadfc9;
  }
  .sponsor-profile-card__logo img,
  .sponsor-profile-card--primary .sponsor-profile-card__logo img { max-width: 220px; max-height: 100px; }
  .sponsor-profile-card__content h3,
  .sponsor-profile-card--primary .sponsor-profile-card__content h3 { font-size: 1.15rem; }
  .sponsor-profile-card__content p { font-size: .72rem; }
  .sponsor-profile-card__content address { font-size: .68rem; line-height: 1.65; }
  .sponsor-profile-card__links { justify-content: center; }
}

/* Keep decorative artwork at its natural proportions instead of stretching it. */
.content-section--experience .content-section__body::after { display: none; }

#dance .content-section__body::after {
  background-image:
    url("assets/ichijojifes/decorations/festival-stage-and-lanterns.png"),
    url("assets/ichijojifes/people/family-in-yukata.png"),
    url("assets/ichijojifes/decorations/bush-light-wide.png"),
    url("assets/ichijojifes/decorations/tree-round-tall.png");
  background-position: 5% bottom, 24% bottom, 61% bottom, 92% bottom;
  background-size: auto 82px, auto 72px, auto 28px, auto 76px;
}

#timetable .content-section__body::after {
  background-image:
    url("assets/ichijojifes/stalls/food-truck.png"),
    url("assets/ichijojifes/decorations/tree-conifer.png"),
    url("assets/ichijojifes/decorations/bush-light-with-flowers.png"),
    url("assets/ichijojifes/decorations/festival-stage-and-lanterns.png");
  background-position: 5% bottom, 31% bottom, 68% bottom, 92% bottom;
  background-size: auto 72px, auto 64px, auto 27px, auto 76px;
}

#access .content-section__body::after {
  background-image:
    url("assets/ichijojifes/people/family-casual.png"),
    url("assets/ichijojifes/decorations/tree-round-wide.png"),
    url("assets/ichijojifes/decorations/bush-light-small.png"),
    url("assets/ichijojifes/decorations/tree-conifer.png");
  background-position: 5% bottom, 31% bottom, 67% bottom, 92% bottom;
  background-size: auto 75px, auto 70px, auto 25px, auto 72px;
}

#information .content-section__body::after {
  background-image:
    url("assets/ichijojifes/food/strawberry-shaved-ice.png"),
    url("assets/ichijojifes/decorations/bush-light-with-flowers.png"),
    url("assets/ichijojifes/food/beer-mug.png"),
    url("assets/ichijojifes/decorations/tree-round-bright.png");
  background-position: 5% bottom, 31% bottom, 69% bottom, 92% bottom;
  background-size: auto 68px, auto 27px, auto 62px, auto 76px;
}

#supporters .content-section__body::after {
  background-image:
    url("assets/ichijojifes/people/festival-staff-announcer.png"),
    url("assets/ichijojifes/decorations/tree-round-full.png"),
    url("assets/ichijojifes/decorations/bush-light-wide.png"),
    url("assets/ichijojifes/decorations/tree-conifer.png");
  background-position: 5% bottom, 29% bottom, 67% bottom, 92% bottom;
  background-size: auto 76px, auto 72px, auto 28px, auto 72px;
}

/* Japanese line-breaking tuned for readability at every viewport width. */
:where(h1, h2, h3, h4, .hero__tagline, .subheading, summary, figcaption) {
  text-wrap: balance;
  word-break: auto-phrase;
  line-break: strict;
}

:where(p, li, small, address, .event-facts, .name-grid div) {
  text-wrap: pretty;
  word-break: auto-phrase;
  line-break: strict;
  overflow-wrap: break-word;
}

/* Ultra-wide monitors: preserve the hero artwork's 1680:949 composition. */
@media (min-width: 1500px) {
  .hero {
    width: min(100%, 1920px);
    min-height: clamp(848px, 56.49vw, 1085px);
    margin-inline: auto;
  }

  .hero-scene__art {
    height: 100%;
    object-position: center top;
  }
}

@media (max-width: 700px) {
  .guide::after {
    background-position: 34px bottom, 22% bottom, 52% bottom, 76% bottom, calc(100% - 42px) bottom;
    background-size: auto 72px, auto 60px, auto 24px, auto 66px, auto 72px;
  }

  .content-section__body::after { height: 70px; }
}

@media (max-width: 560px) {
  .volunteer-cta { width: 100%; }
}

/* Fixed navigation and safe anchor positions. */
html { scroll-padding-top: 92px; }
section[id], #volunteer { scroll-margin-top: 92px; }
.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 80;
  min-height: 74px;
  background: rgba(255, 253, 247, .92);
  border-bottom: 1px solid rgba(218, 202, 169, .5);
  box-shadow: 0 5px 20px rgba(62, 48, 24, .06);
  backdrop-filter: blur(14px);
  transition: background .2s ease, box-shadow .2s ease;
}
.site-header.is-scrolled,
.site-header.is-menu-open {
  background: rgba(255, 253, 247, .98);
  box-shadow: 0 7px 24px rgba(40, 34, 20, .12);
}
.content-section__bar {
  position: relative;
  top: auto;
  z-index: 18;
}

/* FOOD: catches are the primary message; shop names are supporting information. */
.vendor-card {
  grid-template-columns: 154px minmax(0, 1fr);
  align-items: stretch;
  min-height: 206px;
  overflow: hidden;
}
.vendor-card > img {
  width: 100%;
  height: 100%;
  min-height: 204px;
  object-fit: contain;
  object-position: center;
  padding: 14px;
  background: #fffaf2;
}
.vendor-card__content {
  min-width: 0;
  padding: 18px 18px 16px 0;
}
.vendor-card__placeholder {
  display: grid;
  place-content: center;
  gap: 5px;
  min-height: 204px;
  padding: 14px;
  color: var(--green);
  text-align: center;
  background:
    radial-gradient(circle at 20% 22%, rgba(246,195,63,.26) 0 4px, transparent 5px),
    radial-gradient(circle at 82% 72%, rgba(88,173,40,.2) 0 5px, transparent 6px),
    #fffdf8;
  border-right: 1px dashed #dec99e;
}
.vendor-card__placeholder span {
  display: block;
  width: auto;
  height: auto;
  margin: 0;
  color: var(--green);
  font-size: .78rem;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: .12em;
  background: transparent;
  border-radius: 0;
}
.vendor-card__placeholder small { font-size: .64rem; font-weight: 800; line-height: 1.5; }
.vendor-card__content > h4 {
  display: block;
  margin: 0;
  color: var(--green);
  font-size: clamp(.98rem, 1.15vw, 1.12rem);
  font-weight: 900;
  line-height: 1.55;
  letter-spacing: .025em;
}
.content-section--food .vendor-card .vendor-card__shop {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 9px 0 0;
  padding: 6px 0 9px;
  color: #53665b;
  font-size: .72rem;
  font-weight: 900;
  line-height: 1.45;
  border-bottom: 1px dotted #d5b984;
}
.content-section--food .vendor-card .vendor-card__shop img {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  object-fit: contain;
  padding: 0;
  background: transparent;
  border-radius: 0;
}
.content-section--food .vendor-card .vendor-card__shop span {
  display: inline;
  width: auto;
  height: auto;
  margin: 0;
  color: inherit;
  background: transparent;
  border-radius: 0;
  font-size: inherit;
}
.content-section--food .vendor-card .vendor-card__description {
  margin: 9px 0 0;
  padding-top: 0;
  color: #272b28;
  font-size: .77rem;
  font-weight: 800;
  line-height: 1.8;
  border-top: 0;
}

/* Draw chevrons in CSS so font metrics cannot stretch them vertically. */
.guide-nav i {
  position: relative;
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  font-size: 0;
  line-height: 0;
}
.guide-nav i::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 43%;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--green);
  border-bottom: 2px solid var(--green);
  transform: translate(-50%, -50%) rotate(45deg);
}

/* Reserve a real footer area for section decorations, so trees never sit behind content. */
#dance .content-section__body,
#timetable .content-section__body,
#access .content-section__body,
#information .content-section__body,
#supporters .content-section__body {
  padding-bottom: 126px;
}
.content-section__body::after {
  bottom: 12px;
  z-index: 0;
  pointer-events: none;
}
.content-section__body > * { position: relative; z-index: 1; }
.notice-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 860px;
  margin-inline: auto;
}
.notice-grid--single {
  grid-template-columns: minmax(0, 720px);
  justify-content: center;
}

/* Natural-size landscape pieces instead of stretched strips. */
.experience-overview__landscape {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  height: 118px;
  padding: 8px 16px 12px;
  overflow: visible;
}
.experience-overview__landscape img {
  width: auto;
  height: auto;
  max-width: 23%;
  max-height: 94px;
  object-fit: contain;
  object-position: center bottom;
}
.experience-booth-card__media img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 102px;
  display: block;
}

@media (max-width: 1100px) and (min-width: 901px) {
  .site-header { padding-inline: 24px; }
  .wordmark { width: 152px; }
  .site-nav { gap: .72rem; font-size: .7rem; }
}

@media (max-width: 900px) {
  html { scroll-padding-top: 80px; }
  section[id], #volunteer { scroll-margin-top: 80px; }
  .site-header { min-height: 64px; }
  .content-section__bar { top: auto; }
  .site-nav { background: rgba(255, 253, 247, .99); }
  #dance .content-section__body,
  #timetable .content-section__body,
  #access .content-section__body,
  #information .content-section__body,
  #supporters .content-section__body { padding-bottom: 104px; }
}

@media (max-width: 700px) {
  .experience-booth-card__media img { max-height: 72px; }
  .vendor-card {
    grid-template-columns: 96px minmax(0, 1fr);
    min-height: 190px;
  }
  .vendor-card > img {
    min-height: 188px;
    padding: 9px;
  }
  .vendor-card__placeholder { min-height: 188px; padding: 8px; }
  .vendor-card__placeholder span { font-size: .66rem; letter-spacing: .06em; }
  .vendor-card__placeholder small { font-size: .56rem; }
  .vendor-card__content { padding: 14px 12px 13px 0; }
  .vendor-card__content > h4 { font-size: .84rem; line-height: 1.55; }
  .content-section--food .vendor-card .vendor-card__shop { margin-top: 7px; padding-bottom: 7px; font-size: .65rem; }
  .content-section--food .vendor-card .vendor-card__shop img { width: 17px; height: 17px; flex-basis: 17px; }
  .content-section--food .vendor-card .vendor-card__description {
    margin: 8px 0 0;
    padding-top: 0;
    font-size: .68rem;
    line-height: 1.72;
  }
  .notice-grid { grid-template-columns: 1fr; }
  .experience-overview__landscape {
    height: 96px;
    gap: 8px;
    padding: 8px 5px 10px;
  }
  .experience-overview__landscape img { max-width: 24%; max-height: 68px; }
  .content-section__body::after { bottom: 10px; }
}

/* Section footers stay clean: remove decorative rows and their reserved space. */
.guide { padding-bottom: 76px; }
.guide::after,
.content-section__body::after,
.hero-sponsors__trees,
.food-footer-landscape,
.experience-overview__landscape { display: none !important; }
.content-section__body,
#dance .content-section__body,
#timetable .content-section__body,
#access .content-section__body,
#information .content-section__body,
#supporters .content-section__body { padding-bottom: 42px; }

@media (max-width: 560px) {
  html { font-size: 18px; }
  .guide { padding-bottom: 56px; }
  .content-section__body,
  #dance .content-section__body,
  #timetable .content-section__body,
  #access .content-section__body,
  #information .content-section__body,
  #supporters .content-section__body { padding-bottom: 28px; }

  /* Mobile DANCE cards: give the number, time, title and photo fixed grid areas. */
  .dance-card {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 100px;
    grid-template-rows: auto auto auto;
    gap: 10px 10px;
    padding: 18px 14px 16px;
    text-align: left;
  }
  .dance-card__number {
    position: static;
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    width: 38px;
    height: 38px;
    transform: none;
  }
  .dance-card time {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    padding: 0;
    font-size: 1.25rem;
  }
  .dance-card h3 {
    grid-column: 1 / 3;
    grid-row: 2;
    min-height: 0;
    margin: 0;
    padding: 0;
    font-size: 1.05rem;
  }
  .dance-card img {
    grid-column: 3;
    grid-row: 1 / 3;
    width: 100%;
    height: 100px;
  }
  .dance-card p {
    grid-column: 1 / -1;
    grid-row: 3;
    margin: 4px 0 0;
    padding: 0;
    font-size: .74rem;
  }

  /* Mobile typography: raise the small supporting copy to a comfortable reading size. */
  .hero__lead { font-size: .84rem; line-height: 1.85; }
  .hero-sponsors__message { font-size: .76rem; }
  .about p:last-child { font-size: .92rem; line-height: 1.9; }
  .guide-nav b { font-size: .88rem; }
  .guide-nav small { font-size: .72rem; line-height: 1.55; }
  .intro-block p,
  .content-section--food .intro-block--food p { font-size: .84rem; }
  .vendor-card__content > h4 { font-size: .92rem; }
  .content-section--food .vendor-card .vendor-card__shop { font-size: .72rem; }
  .content-section--food .vendor-card .vendor-card__description { font-size: .76rem; }
  .experience-overview__heading > p:last-child { font-size: .84rem; }
  .experience-booth-card__copy strong { font-size: 1rem; }
  .experience-booth-card__copy small { font-size: .76rem; line-height: 1.65; }
  .timeline h3 { font-size: 1rem; }
  .timeline p { font-size: .76rem; line-height: 1.65; }
  .sponsor-profile-card__content p { font-size: .78rem; }
  .sponsor-profile-card__content address { font-size: .74rem; }
  .sponsor-profile-card__content > a,
  .sponsor-profile-card__links a { font-size: .76rem; }
  .site-footer span,
  .site-footer a { font-size: .82rem; }
}

/* FOOD photos sit directly on the white card without a tinted backing box. */
.content-section--food .vendor-card > img {
  padding: 0;
  background: transparent;
  border-radius: 0;
}
