.concert-page{--concert-accent:var(--accent,#007f78);--concert-soft:var(--accent-soft,#e8f7f3)}
.concert-page .page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.concert-page .page-heading>a{font-size:14px;color:var(--muted);font-weight:600}
.concert-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.concert-regions{display:flex;gap:7px;flex-wrap:wrap}.concert-regions>a{display:flex;align-items:center;gap:8px;padding:11px 16px;min-height:44px;border:1px solid var(--line);border-radius:8px;font-weight:700;font-size:16px}.concert-regions>a.active{color:#fff;background:var(--concert-accent);border-color:var(--concert-accent)}.concert-regions>a>span{font-size:12px;opacity:.8}
#concert-search{display:flex;align-items:center;max-width:360px;width:100%;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}#concert-query{width:100%;min-width:0;padding:12px;border:0;background:#fff;font-size:15px}#concert-search>button{padding:12px 17px;white-space:nowrap;background:var(--ink);color:#fff;font-weight:700;min-height:44px}#concert-search:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.concert-kinds{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.concert-kinds>a{font-size:14px;border-radius:20px;padding:8px 16px;background:var(--paper);min-height:38px}.concert-kinds>a.active{color:var(--concert-accent);background:var(--concert-soft);font-weight:700;box-shadow:inset 0 0 0 1px var(--concert-accent)}
.concert-result-heading{display:flex;gap:10px;align-items:baseline;margin:28px 0 15px}.concert-result-heading h2{font-size:21px;margin:0}.concert-result-heading>span{color:var(--muted);font-size:14px}.concert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 18px}
.concert-card{min-width:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;display:flex;flex-direction:column}.concert-picture{position:relative;display:block;aspect-ratio:16/10;background:#15232a;overflow:hidden}.concert-picture img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}.concert-picture:hover img{transform:scale(1.035)}.concert-monogram{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:linear-gradient(135deg,#111b23,#165b5a);color:white;font-size:28px;font-weight:800}.concert-place-chip{position:absolute;top:10px;left:10px;padding:4px 8px;font-size:12px;border-radius:4px;color:white;background:#101a23d9;font-weight:700}
.concert-body{padding:17px;display:flex;flex-direction:column;flex:1;min-width:0}.concert-kicker{display:flex;justify-content:space-between;gap:8px;font-size:13px;line-height:1.4}.concert-kicker>a{font-weight:700;color:var(--accent);overflow-wrap:anywhere}.concert-kicker>span{color:var(--muted);white-space:nowrap}.concert-body h3{font-size:19px;line-height:1.4;margin:9px 0 13px;overflow-wrap:anywhere}.concert-body h3>a:hover{text-decoration:underline;text-underline-offset:4px}.concert-body>time{font-size:14px;font-weight:700}.concert-location,.concert-time{font-size:14px;color:var(--muted);line-height:1.55;margin:5px 0 0;overflow-wrap:anywhere}.concert-ticket{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:13px;margin-top:15px;font-size:14px;font-weight:700;color:var(--accent)}.concert-ticket:hover{color:var(--ink)}
.concert-home-label{display:flex;justify-content:space-between;align-items:center;margin:18px 0 12px}.concert-home-label h3{font-size:16px;margin:0}.concert-home-label>a{color:var(--muted);font-size:13px}.concert-home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.concert-card--compact{display:grid;grid-template-columns:112px minmax(0,1fr)}.concert-card--compact .concert-picture{aspect-ratio:auto;min-height:185px;height:100%}.concert-card--compact .concert-picture img{object-fit:cover}.concert-card--compact .concert-body{padding:13px}.concert-card--compact .concert-body h3{font-size:16px;margin:7px 0}.concert-card--compact .concert-kicker{flex-direction:column;gap:3px}.concert-card--compact .concert-body>time,.concert-card--compact .concert-location{font-size:12px}.concert-card--compact .concert-ticket{font-size:13px;margin-top:auto;padding-top:9px}.concert-card--compact .concert-location{margin-bottom:10px}.concert-card--compact .concert-monogram{font-size:20px;writing-mode:vertical-rl;letter-spacing:4px}
.concert-overseas-list{border-top:1px solid var(--line)}.concert-overseas-list>a{display:grid;grid-template-columns:42px 90px minmax(0,1fr) auto 12px;gap:10px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.concert-overseas-list time,.concert-overseas-list small{font-size:12px;color:var(--muted)}.concert-overseas-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.concert-overseas-list b{color:var(--accent);font-size:16px}
.concert-empty{padding:65px 20px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:16px}.concert-feed-notice{font-size:14px;color:var(--muted);margin:22px 0}.concert-feed-notice button{text-decoration:underline;text-underline-offset:3px;color:var(--accent);padding:8px}.concert-pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:25px}.concert-pagination>a{padding:10px 18px;border:1px solid var(--line);border-radius:6px}
@media(max-width:900px){.concert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.concert-toolbar{align-items:stretch;flex-direction:column;gap:15px}#concert-search{max-width:none}.concert-home-grid{grid-template-columns:1fr}.concert-card--compact{grid-template-columns:130px minmax(0,1fr)}}
@media(max-width:540px){.concert-grid{gap:14px 10px}.concert-body{padding:12px}.concert-body h3{font-size:16px}.concert-kicker{flex-direction:column;gap:3px}.concert-body>time,.concert-location,.concert-time{font-size:12px}.concert-ticket{font-size:13px;padding-top:10px;margin-top:12px}.concert-place-chip{top:7px;left:7px;font-size:11px}.concert-regions>a{font-size:14px;padding:10px 12px}.concert-page .page-heading{align-items:baseline}.concert-page .page-heading h1{font-size:25px}.concert-page .page-heading>a{font-size:12px;white-space:nowrap}.concert-overseas-list>a{grid-template-columns:40px 65px minmax(0,1fr) 12px;font-size:12px;gap:8px}.concert-overseas-list small{grid-column:2/4;grid-row:2}.concert-overseas-list b{grid-column:4;grid-row:1/3}}
@media(prefers-reduced-motion:reduce){.concert-picture img{transition:none}.concert-picture:hover img{transform:none}}
/* All cards in a row share one footer baseline without truncating concert details. */
.concert-grid,.concert-home-grid{align-items:stretch}
.concert-card{height:100%;border-color:#e0e7f0;box-shadow:0 3px 12px #10243d05}
.concert-card:not(.concert-card--compact)>.concert-picture{flex:none;width:100%}
.concert-body{min-width:0;align-self:stretch}
.concert-body>.concert-location:last-of-type,.concert-body>.concert-time:last-of-type{margin-bottom:13px}
.concert-body>.concert-ticket{margin-top:auto;min-height:44px;padding-top:12px;gap:8px;line-height:1.5;flex-shrink:0}
.concert-ticket>span{flex:none}.concert-card--compact .concert-ticket{margin-top:auto;min-height:40px;padding-top:9px}
.concert-monogram{background:linear-gradient(135deg,#111c2c,#25456b)}
.concert-picture img.concert-poster,.concert-card--compact .concert-picture img.concert-poster{object-fit:contain;background:#101721}.concert-picture:hover img.concert-poster{transform:none}
.concert-home{padding:23px;border:1px solid #e0e7f0;border-radius:14px;background:#fbfcfe}
.concert-home>.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.concert-home>.section-heading h2{font-size:21px;line-height:1.4;letter-spacing:-.5px}.concert-home>.section-heading>a{color:#617087;font-size:13px;white-space:nowrap}
.concert-overseas-list>a>*{min-width:0}.concert-overseas-list strong{overflow-wrap:anywhere}
@media(max-width:620px){.concert-home{padding:18px 13px;border-radius:12px}.concert-home>.section-heading h2{font-size:19px}.concert-home>.section-heading>a{font-size:12px}.concert-card--compact{grid-template-columns:108px minmax(0,1fr)}.concert-card--compact .concert-body{padding:12px}.concert-body>.concert-ticket{margin-top:auto;min-height:44px;padding-top:10px}.concert-home-label{margin-top:16px}}
@media(max-width:380px){.concert-grid{grid-template-columns:minmax(0,1fr)}.concert-card--compact{grid-template-columns:92px minmax(0,1fr)}}
