/* Shared concert hub and venue hierarchy; uses the site's established tokens. */
.concert-hub,.concert-venue{padding-top:clamp(24px,4vw,56px);padding-bottom:var(--space-xl)}
.concert-hub-head h1{font:400 clamp(2.4rem,5vw,4.6rem)/1.04 var(--font-display);max-width:22ch;color:var(--fg-strong);margin:0}
.concert-intro{font:400 clamp(1.15rem,1.2vw,1.4rem)/1.5 var(--font-body);max-width:64ch;margin:16px 0 0;color:var(--fg-soft)}
.concert-venue-nav{display:flex;flex-wrap:wrap;gap:8px 28px;margin:24px 0 30px;padding:12px 0;border-top:1px solid var(--border-hair);border-bottom:1px solid var(--border-hair)}
.concert-venue-nav a{display:inline-flex;align-items:center;min-height:44px;font-size:1.15rem;color:var(--fg-soft);text-decoration:none}
.concert-venue-nav a[aria-current=page]{color:var(--accent);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px}
.concert-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,44px);margin-top:32px}
.concert-choice{min-width:0;padding-bottom:24px;border-bottom:1px solid var(--border-fine)}
.concert-choice-link{display:block;color:inherit;text-decoration:none}
.concert-choice img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.concert-choice h2{font:400 clamp(1.75rem,3.4vw,3rem)/1.08 var(--font-display);color:var(--fg-strong);margin:20px 0 10px;overflow-wrap:break-word}
.concert-choice p{max-width:44ch;font-size:1.15rem;line-height:1.45;color:var(--fg-soft)}
.concert-choice-action,.concert-text-action{display:inline-block;color:var(--accent);font-size:1.15rem;text-decoration:underline;text-underline-offset:5px;padding:12px 0;line-height:1.4}
.concert-choice-link:hover h2,.concert-venue-nav a:hover{color:var(--accent)}
.concert-choice-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:7px}
.concert-venue-status{margin-top:0;color:var(--fg-muted)!important;font-style:italic;font-size:1rem!important}
.concert-agenda{margin-top:clamp(40px,6vw,80px);scroll-margin-top:110px}
.concert-agenda h2,.concert-hub-contact h2,.concert-venue-section h2{font:400 clamp(1.85rem,3vw,2.7rem)/1.12 var(--font-display);color:var(--fg-strong);margin:0 0 10px}
.concert-timezone{color:var(--fg-muted);margin-bottom:24px}
.concert-agenda ol{list-style:none;margin:0;padding:0}
.concert-agenda li{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,2fr) auto;gap:24px;align-items:center;padding:24px 0;border-top:1px solid var(--border-fine)}
.concert-agenda time{font-size:1.15rem;color:var(--fg-strong);line-height:1.35}
.concert-agenda time span{display:block;color:var(--fg-muted);margin-top:5px}
.concert-agenda-venue{font-size:1.05rem;color:var(--fg-muted);margin:0 0 6px}
.concert-agenda h3{font:400 clamp(1.5rem,2.2vw,2rem)/1.15 var(--font-display);margin:0}
.concert-agenda h3 a{color:var(--fg-strong);text-decoration:none}
.concert-agenda-action{color:var(--accent);padding:10px 0;line-height:1.4;font-size:1.1rem}
.concert-hub-contact{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:36px 0;margin-top:36px;border-top:1px solid var(--border-fine)}
.concert-hub-contact a{color:var(--accent);font-size:1.15rem;min-height:44px;display:inline-flex;align-items:center}
.concert-series{font:400 1.25rem/1.4 var(--font-display);color:var(--accent);text-decoration:none}
.concert-venue-head h1{font:400 clamp(3rem,6vw,5rem)/1.05 var(--font-display);color:var(--fg-strong);margin:24px 0 8px}
.concert-place{font-size:1.1rem;color:var(--fg-muted)}
.concert-venue-hero{margin:28px 0 0}
.concert-venue-hero img{display:block;width:100%;height:auto;aspect-ratio:21/8;max-height:300px;object-fit:cover;object-position:center 42%}
.concert-local-nav{display:flex;flex-wrap:wrap;gap:4px 24px;padding:16px 0;border-bottom:1px solid var(--border-fine)}
.concert-local-nav a{display:inline-flex;align-items:center;min-height:44px;font-size:1.1rem;color:var(--fg-soft);text-decoration:none}
.concert-local-nav a:hover{color:var(--accent)}
.concert-venue-section{padding:clamp(36px,5vw,64px) 0;border-bottom:1px solid var(--border-hair);scroll-margin-top:100px}
.concert-venue-section p{max-width:62ch;font-size:1.15rem;line-height:1.5}
.concert-location{display:flex;justify-content:space-between;align-items:center;gap:32px}
.concert-location address{font-style:normal;font-size:1.15rem;line-height:1.6;max-width:46ch;margin-top:20px}
.concert-castle-link{color:var(--accent);font-size:1.15rem;min-height:44px;display:inline-flex;align-items:center}
.concert-venue .section-head__num{display:none}
.concert-venue .section-head{display:block}
.concert-venue .section-head__tagline{text-align:left;margin-top:12px}
@media(max-width:699px){.concert-venue-nav{gap:4px 22px;margin:20px 0}.concert-choices{gap:20px;margin-top:24px}.concert-choice img{aspect-ratio:4/3}.concert-choice h2{margin-top:16px}.concert-choice p{font-size:1.05rem}.concert-choice-action{font-size:1.05rem}.concert-agenda li{grid-template-columns:1fr;gap:12px;padding:24px 0}.concert-agenda time span{display:inline;margin-left:12px}.concert-agenda-action{width:fit-content}.concert-hub-contact,.concert-location{display:block}.concert-hub-contact a,.concert-castle-link{margin-top:16px}.concert-venue-hero img{aspect-ratio:4/3}.concert-local-nav{gap:0 20px}.concert-venue-head h1{margin-top:28px}}
@media(max-width:359px){.concert-choices{grid-template-columns:1fr}}
