.fest-special-section{background:#fff6fb;border-top:1px solid var(--line)}
.fest-overview{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;padding:18px 22px;background:var(--white);border:1px solid var(--line);border-radius:16px;margin-bottom:20px}
.fest-overview p{margin:0;color:var(--muted);font-size:13px}
.fest-overview strong{color:var(--ink)}
.fest-venue-badge{display:inline-block;background:#fce0ee;color:#ac2866;border-radius:30px;padding:5px 12px;font-size:12px;font-weight:800}
.fest-source-link{margin-left:auto;color:var(--pink-deep);font-size:13px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.fest-category{margin-top:30px}
.fest-category-heading{display:flex;align-items:center;gap:10px;margin:0 0 13px;font-size:19px;letter-spacing:-.5px}
.fest-category-heading small{font-size:11px;color:var(--muted);font-weight:500;letter-spacing:0}
.fest-special-section .extra-collab-card{height:100%}
.fest-special-section .extra-collab-card h4{font-size:17px;line-height:1.5;letter-spacing:-.5px;margin:0 0 4px;overflow-wrap:anywhere}
.fest-special-section .extra-description{margin:12px 0 0}
.fest-special-section .extra-points{margin-bottom:0}
.fest-special-section .extra-card-links{margin-top:18px}
.fest-location-block{margin-top:17px;border-top:1px solid var(--line);padding-top:15px}
.fest-location-block h5{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:0;font-size:12px;line-height:1.7}
.fest-location-block .extra-place{margin:8px 0 5px;font-size:11px}
.fest-location-block .extra-description{margin-top:8px}
.fest-location-badge{display:inline-block;border-radius:6px;background:#fce0ee;color:#ac2866;padding:3px 7px;font-size:10px;white-space:nowrap}
.fest-location-badge.is-mall{background:#e7f0ff;color:#315b94}
.fest-price{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:12px 0 0}
.fest-price strong{font-size:22px;color:var(--pink-deep);font-variant-numeric:tabular-nums}
.fest-price span{font-size:12px;color:var(--muted)}
.fest-lineup-table{border-collapse:collapse;width:100%;font-size:11px;margin:15px 0 10px;line-height:1.65}
.fest-lineup-table caption{text-align:left;font-weight:800;color:var(--muted);margin-bottom:7px}
.fest-lineup-table th,.fest-lineup-table td{border-bottom:1px solid var(--line);padding:8px 5px;text-align:left}
.fest-lineup-table thead{background:#fcecf4}
.fest-lineup-table tbody th{font-weight:700}
.fest-lineup-table th:first-child{width:46%}
.fest-lineup-table td:nth-child(2){white-space:nowrap}
.fest-inline-poster summary{padding:12px 14px;font-size:12px}
.fest-inline-poster .fest-poster-content{padding:0 14px 14px}
.fest-inline-poster img{max-height:260px;width:100%;object-fit:contain}
.fest-additional-source{color:var(--pink-deep);text-decoration:underline;text-underline-offset:3px}
.fest-wide-card{grid-column:1/-1}
.fest-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.fest-two-column>div{min-width:0}
.fest-location-block h5.fest-subheading{margin-top:20px}
.fest-source-note{font-size:11px;color:var(--muted);line-height:1.8;margin:14px 0 0}
.fest-detail{margin-top:16px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.fest-detail>summary{cursor:pointer;font-size:13px;font-weight:800;padding:14px 16px;background:var(--white)}
.fest-detail-body{padding:0 18px 18px;font-size:12px}
.fest-detail-body .extra-points{font-size:12px}
.fest-steps{padding-left:22px;margin:0;line-height:1.9;color:var(--muted)}
.fest-steps li+li{margin-top:7px}
.fest-cd-visual{align-self:center;padding-top:12px}
.fest-payment-list{display:grid;grid-template-columns:95px minmax(0,1fr);margin:0 0 18px;line-height:1.8}
.fest-payment-list dt,.fest-payment-list dd{margin:0;padding:10px 0;border-bottom:1px solid var(--line)}
.fest-payment-list dt{font-weight:800;padding-right:10px}
.fest-payment-list dd{color:var(--muted)}
@media(max-width:650px){.fest-two-column{grid-template-columns:1fr;gap:0}.fest-cd-visual{margin-top:10px}.fest-payment-list{grid-template-columns:78px minmax(0,1fr);font-size:11px}.fest-detail>summary{font-size:12px;padding:13px}.fest-detail-body{padding:0 13px 15px}}
.fest-time-table{border-collapse:collapse;width:100%;margin-top:15px;font-size:13px;text-align:left}
.fest-time-table caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.fest-time-table th,.fest-time-table td{padding:9px 0;border-bottom:1px solid var(--line)}
.fest-time-table th{font-weight:700;padding-right:12px}
.fest-time-table td{font-variant-numeric:tabular-nums;white-space:nowrap}
.fest-ticket-note{padding:12px 14px;margin:14px 0 0;background:#fff0d9;color:#704418;border-radius:11px;font-size:13px}
.fest-ticket-note strong{display:block;font-size:15px}
.fest-ticket-note span{display:block;margin-top:4px;font-size:12px}
.fest-notice{padding:17px 20px;border:1px solid var(--line);border-radius:14px;color:var(--muted);font-size:12px;margin-top:24px}
.fest-notice p{margin:0}.fest-notice p+p{margin-top:6px}
.fest-poster{margin-top:18px;border:1px solid var(--line);border-radius:14px;background:var(--white);overflow:hidden}
.fest-poster summary{cursor:pointer;font-size:13px;font-weight:800;padding:15px 20px}
.fest-poster-content{padding:0 20px 20px}
.fest-poster-button{display:block;max-width:800px;width:100%;padding:0;border:0;border-radius:10px;overflow:hidden;background:transparent;cursor:zoom-in}
.fest-poster-button img{display:block;width:100%;height:auto}
.fest-poster-content p{font-size:12px;color:var(--muted);margin:10px 0 0}
html[data-theme="dark"] .fest-special-section{background:#251e2d}
html[data-theme="dark"] .fest-venue-badge{background:#513049;color:#ffb3d3}
html[data-theme="dark"] .fest-ticket-note{background:#483621;color:#ffe0a8}
html[data-theme="dark"] .fest-location-badge{background:#513049;color:#ffb3d3}
html[data-theme="dark"] .fest-location-badge.is-mall{background:#2c405e;color:#bdd7ff}
html[data-theme="dark"] .fest-lineup-table thead{background:#493044}
@media(min-width:751px){.desktop-nav{gap:16px}.desktop-nav a{white-space:nowrap}}
@media(max-width:1050px) and (min-width:751px){.nav-wrap{gap:12px}.desktop-nav{gap:11px;font-size:12px}.header-actions .nav-cta{display:none}}
@media(max-width:750px){.mobile-nav{justify-content:flex-start;overflow-x:auto;gap:22px;padding:0 15px;scrollbar-width:thin}.mobile-nav a{flex-shrink:0}.fest-overview{padding:16px;gap:10px}.fest-source-link{margin-left:0}.fest-category-heading{font-size:17px;flex-wrap:wrap}.fest-time-table{font-size:12px}.fest-category{margin-top:25px}.fest-special-section .extra-collab-card h4{font-size:16px}}
