.festival-detail { padding-bottom:clamp(3rem,7vw,7rem); }
.festival-detail a { text-decoration:none; }
.festival-detail :is(h1,h2,h3) { font-family:var(--display); font-weight:400; }
.festival-detail :is(p,dd,li) { line-height:1.6; }
.festival-detail :is(.festival-kicker,dt,.festival-section-nav a) { font-family:var(--display-accent); font-weight:100; font-synthesis:none; font-size:1rem; line-height:1.4; letter-spacing:.025em; }
.festival-breadcrumbs { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem .75rem; padding-block:1rem; color:var(--muted); font-size:.95rem; }
.festival-breadcrumbs a { display:inline-flex; align-items:center; min-height:44px; }
.festival-kicker { margin-bottom:1rem; }
.festival-hero { padding-block:clamp(1.5rem,4vw,4rem); }
.festival-hero-with-photo { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,4vw,4rem); align-items:center; }
.festival-hero-copy { min-width:0; }
.festival-hero h1 { max-width:17ch; font-size:clamp(2.8rem,5.25vw,5.8rem); letter-spacing:-.035em; line-height:1.04; text-wrap:balance; }
.festival-korean { margin-block:1rem; color:var(--muted); font-size:1.05rem; }
.festival-lead { max-width:46rem; margin-top:1.3rem; font-size:clamp(1.12rem,1.6vw,1.35rem); }
.festival-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.7rem 1.5rem; margin-top:1.8rem; }
.festival-detail .button { white-space:normal; text-align:center; max-width:100%; gap:0; }
.festival-text-link { display:inline-flex; align-items:center; min-height:44px; padding-block:.35rem; font-weight:600; transform-origin:left center; }
.festival-photo { min-width:0; }
.festival-photo-image { aspect-ratio:4/5; width:100%; height:auto; object-fit:cover; }
.festival-photo figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.25rem 1rem; padding-top:.65rem; color:var(--muted); font-size:.82rem; line-height:1.5; text-wrap:pretty; }
.festival-photo figcaption a { display:inline-flex; align-items:center; min-height:44px; }
.festival-facts { display:grid; grid-template-columns:1.25fr 1fr 1fr 1fr; margin:1rem 0 0; border-top:1px solid var(--pine); border-bottom:1px solid var(--line); }
.festival-facts > div { min-width:0; padding:1.5rem 1.25rem 1.5rem 0; }
.festival-facts > div + div { padding-left:1.5rem; border-left:1px solid var(--line); }
.festival-facts dt { margin-bottom:.75rem; }
.festival-facts dd { margin:0; }
.festival-facts dd strong { display:block; font-size:1.1rem; }
.festival-facts dd span { display:block; margin-top:.3rem; color:var(--muted); font-size:.92rem; }
.festival-facts .festival-text-link { padding-top:0; }
.festival-section-nav { display:flex; flex-wrap:wrap; gap:.2rem 1.8rem; padding-block:1rem; border-bottom:1px solid var(--line); }
.festival-section-nav a { display:inline-flex; align-items:center; min-height:44px; transform-origin:left center; }
.festival-section { padding-block:clamp(2.8rem,5vw,5rem); }
.festival-section + .festival-section { border-top:1px solid var(--line); }
.festival-section-heading { max-width:47rem; margin-bottom:2rem; }
.festival-section-heading h2,.festival-commerce h2 { font-size:clamp(2rem,3.5vw,3.6rem); letter-spacing:-.025em; line-height:1.15; }
.festival-section-heading > p:last-child:not(.festival-kicker) { margin-top:1rem; }
.festival-experience-grid,.festival-more-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.5rem,4vw,4rem); }
.festival-experience,.festival-more-card { min-width:0; padding-top:1.25rem; border-top:2px solid #829773; }
.festival-detail h3 { margin-bottom:.65rem; font-size:clamp(1.45rem,2vw,1.85rem); line-height:1.25; }
.festival-experience > p,.festival-more-card > p { max-width:40rem; }
.festival-experience > a,.festival-more-card > a { margin-top:.75rem; }
.festival-travel-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(1.5rem,4vw,4rem); align-items:start; }
.festival-travel-copy h3:not(:first-child) { margin-top:1.65rem; }
.festival-travel-copy > a { margin-top:1rem; }
.festival-venue { min-width:0; padding:clamp(1.5rem,3vw,2.5rem); background:var(--paper-light); border-top:3px solid #829773; }
.festival-venue-korean { margin-top:.9rem; color:var(--muted); }
.festival-venue .button { margin-top:1.5rem; }
.festival-commerce { display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(1.5rem,4vw,4rem); padding:clamp(1.5rem,4vw,3.5rem); background:var(--pine-deep); color:var(--paper-light); }
.festival-commerce > div { min-width:0; }
.festival-commerce .button { margin-top:1.5rem; border-color:var(--citron); background:var(--citron); color:var(--pine-deep); }
.festival-commerce .button:is(:hover,:focus-visible) { border-color:var(--paper-light); background:var(--paper-light); color:var(--pine-deep); }
.festival-sources { padding-block:1.5rem 2.5rem; border-top:1px solid var(--line); }
.festival-sources h2 { font-size:1.5rem; }
.festival-sources ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:2rem; list-style:none; padding:0; margin:1rem 0 0; }
.festival-sources li { min-width:0; }
.festival-sources .festival-text-link { font-size:.95rem; }
.festival-partner { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; padding-top:2.5rem; border-top:1px solid var(--line); }
.festival-partner > div { min-width:0; max-width:48rem; }
.festival-partner h2 { margin-bottom:.75rem; font-size:1.7rem; line-height:1.25; }
.festival-partner .button { flex-shrink:0; }
.festival-detail a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.cheorwon-feature .festival-photo-image { aspect-ratio:2/3; }
.cheorwon-feature .festival-hero-with-photo { align-items:start; }
.cheorwon-bus-options { display:grid; gap:1.5rem; }
.cheorwon-bus-options h3 span { display:block; margin-top:.4rem; color:var(--muted); font-size:1rem; }
.cheorwon-bus-options dt { margin-bottom:.35rem; }
.cheorwon-bus-options dd { margin:0; }
.cheorwon-bus-options dd + dt { margin-top:1rem; }
.cheorwon-travel-note { margin-top:1.25rem; }
.cheorwon-source-links { display:flex; flex-wrap:wrap; gap:.35rem 1.5rem; margin-top:.75rem; }
.cheorwon-shuttle { max-width:49rem; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.cheorwon-shuttle > a { margin-top:.5rem; }
.cheorwon-commerce { display:block; }
.cheorwon-product-grid,.cheorwon-shopping-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.5rem,4vw,4rem); }
.cheorwon-product { display:flex; flex-direction:column; align-items:flex-start; min-width:0; border-top:1px solid currentColor; padding-top:1.4rem; }
.cheorwon-product .button { margin-top:auto; }
.cheorwon-product > p:last-of-type { margin-bottom:1.5rem; }
.cheorwon-product-korean { margin-bottom:.65rem; font-size:.95rem; }
.cheorwon-product-note { margin-top:1.5rem; font-size:.95rem; }
.cheorwon-shopping-options { margin-top:2rem; padding-top:2rem; border-top:1px solid currentColor; }
.cheorwon-shopping-options > section { min-width:0; }
.cheorwon-shopping-options .festival-text-link { margin-top:.5rem; text-decoration:underline; text-underline-offset:.2em; }
@media (hover:hover) and (pointer:fine) {
  .festival-detail :is(.festival-text-link,.festival-breadcrumbs a,.festival-section-nav a,.festival-photo figcaption a):hover { color:#8f4828; }
  .cheorwon-commerce .festival-text-link:hover { color:var(--citron); }
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .festival-detail :is(.festival-text-link,.festival-breadcrumbs a,.festival-section-nav a,.festival-photo figcaption a) { transition:color .18s ease,transform .18s ease; }
  .festival-detail :is(.festival-text-link,.festival-breadcrumbs a,.festival-section-nav a,.festival-photo figcaption a):hover { transform:scale(1.025); }
}
@media (max-width:1000px) {
  .festival-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .festival-facts > div:nth-child(3) { padding-left:0; border-left:0; }
  .festival-facts > div:nth-child(n+3) { border-top:1px solid var(--line); }
}
@media (max-width:800px) {
  .festival-hero-with-photo { grid-template-columns:1fr; }
  .festival-hero h1 { max-width:20ch; }
  .festival-photo-image { aspect-ratio:4/3; }
  .festival-travel-grid,.festival-commerce { grid-template-columns:1fr; }
  .festival-partner { flex-direction:column; align-items:flex-start; }
  .cheorwon-feature .festival-photo { max-width:36rem; margin-inline:auto; }
  .cheorwon-product-grid,.cheorwon-shopping-options { grid-template-columns:1fr; }
}
@media (max-width:580px) {
  .festival-experience-grid,.festival-more-grid,.festival-sources ul { grid-template-columns:1fr; }
  .festival-facts > div { padding-right:.8rem; }
  .festival-facts > div + div { padding-left:1rem; }
  .festival-facts > div:nth-child(3) { padding-left:0; }
  .festival-facts dd strong { font-size:1rem; }
  .festival-section-nav { gap:.2rem 1.1rem; }
  .festival-section-nav a { font-size:.92rem; }
  .festival-actions { align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce) {
  .festival-detail a { transition:none; transform:none; }
}
