/* MUSIC FM — Concerts / mature ceramic edition */
:root{
  --concert-navy:#041327;
  --concert-navy-2:#071d37;
  --concert-blue:#147cff;
  --concert-sky:#59c7ff;
  --concert-turquoise:#25c8c3;
  --concert-red:#e94355;
  --concert-ink:#102541;
  --concert-muted:#6f7f94;
  --concert-line:#e2e8ef;
  --concert-page:#f5f7fa;
  --concert-ceramic:linear-gradient(180deg,#fff 0%,#fff 70%,#fbfcfe 100%);
  --concert-shadow:inset 0 1px 0 rgba(255,255,255,.98),0 1px 2px rgba(4,19,39,.03),0 14px 34px rgba(4,19,39,.055);
  --concert-shadow-soft:inset 0 1px 0 rgba(255,255,255,.98),0 8px 24px rgba(4,19,39,.038);
}
.concerts-page{min-height:78vh;background:linear-gradient(180deg,#f8fafc 0,#f4f7fa 42%,#f7f9fb 100%);color:var(--concert-ink)}
.concerts-eyebrow{display:block;color:#2780d7;font:900 10px/1 var(--mf-font,"IBM Plex Sans Hebrew",sans-serif);letter-spacing:.18em;text-transform:uppercase}

/* Clean masthead */
.concerts-masthead{background:#fff;border-bottom:1px solid #e7edf3}
.concerts-masthead__inner{min-height:214px;display:flex;align-items:center;justify-content:space-between;gap:40px;padding-block:42px}
.concerts-masthead__copy{max-width:720px}
.concerts-masthead__copy h1{margin:11px 0 7px;color:#102541;font-size:clamp(42px,5vw,66px);line-height:.98;font-weight:800;letter-spacing:-.055em}
.concerts-masthead__copy p{max-width:670px;margin:0;color:#6b7a8f;font-size:15px;line-height:1.8}
.concerts-masthead__meta{min-width:220px;display:flex;align-items:center;gap:11px;padding:17px 0 17px 24px;border-left:1px solid #e5ebf1}
.concerts-masthead__meta>i{width:8px;height:8px;border-radius:50%;background:var(--concert-turquoise);box-shadow:0 0 0 5px rgba(37,200,195,.08)}
.concerts-masthead__meta strong,.concerts-masthead__meta span{display:block}.concerts-masthead__meta strong{color:#1a3552;font-size:12px}.concerts-masthead__meta span{margin-top:4px;color:#8b98a8;font-size:10px}

.concerts-content{padding:38px 0 78px}

/* Featured concert */
.concert-featured{display:grid;grid-template-columns:minmax(420px,.92fr) minmax(0,1.08fr);background:var(--concert-ceramic);border:1px solid rgba(215,224,233,.92);box-shadow:var(--concert-shadow);margin-bottom:24px;overflow:hidden}
.concert-featured__media{position:relative;min-height:350px;background:#0d3159;overflow:hidden;text-decoration:none}
.concert-featured__media img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.97) contrast(1.02);transition:transform .35s ease}
.concert-featured__media:hover img{transform:scale(1.012)}
.concert-featured__tag{position:absolute;right:18px;top:18px;padding:7px 10px;background:#fff;color:#14304e;font-size:10px;font-weight:900;box-shadow:0 6px 16px rgba(4,19,39,.12)}
.concert-featured__body{display:flex;flex-direction:column;justify-content:center;padding:38px 42px}
.concert-featured__topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.concert-featured__topline>a{color:#1b73c4;text-decoration:none;font-size:12px;font-weight:900}
.concert-featured h2{margin:0;color:#112945;font-size:clamp(28px,2.8vw,40px);line-height:1.12;font-weight:800;letter-spacing:-.04em}.concert-featured h2 a{color:inherit;text-decoration:none}
.concert-featured__facts{display:grid;grid-template-columns:1fr .72fr 1.25fr;margin-top:28px;border-top:1px solid #e6ebf0;border-bottom:1px solid #e6ebf0}
.concert-featured__facts>div{min-height:82px;padding:16px 17px;border-left:1px solid #e8edf2}.concert-featured__facts>div:last-child{border-left:0}.concert-featured__facts small,.concert-featured__facts strong,.concert-featured__facts span{display:block}.concert-featured__facts small{color:#909cab;font-size:9px;font-weight:900}.concert-featured__facts strong{margin-top:5px;color:#17314d;font-size:13px}.concert-featured__facts span{margin-top:3px;color:#7b8999;font-size:10px}
.concert-featured__actions{display:flex;align-items:center;gap:10px;margin-top:24px}

/* Status */
.concert-status{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 9px;border-radius:2px;font-size:9.5px;font-weight:900;white-space:nowrap}
.concert-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}
.concert-status--available{color:#15745f;background:#eef8f4}.concert-status--soldout{color:#b4374c;background:#fff1f3}.concert-status--unknown{color:#6d7d90;background:#eef2f5}

/* Buttons */
.concerts-ticket,.concert-details-btn,.concert-details-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:0;border-radius:2px;font-weight:900;transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
.concerts-ticket{min-height:43px;padding:0 17px;background:#0d67c7;color:#fff!important;font-size:12px}.concerts-ticket:hover{background:#0959ad;box-shadow:0 8px 18px rgba(13,103,199,.14);transform:translateY(-1px)}
.concert-details-btn{min-height:43px;padding:0 17px;background:#102b49;color:#fff!important;font-size:12px}.concert-details-btn:hover{background:#0b2038}.concert-details-btn .mf-icon{width:13px;height:13px;transform:scaleX(-1)}
.concerts-ticket--compact{min-height:36px;padding:0 12px;font-size:10.5px}
.concert-details-link{min-height:36px;padding:0 10px;background:#eef3f7;color:#31506d!important;font-size:10.5px}.concert-details-link:hover{background:#e5edf4}

/* Summary */
.concerts-summary{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid #e2e8ee;box-shadow:var(--concert-shadow-soft);margin-bottom:46px}.concerts-summary>div{min-height:84px;display:flex;flex-direction:column;justify-content:center;padding:14px 22px;border-left:1px solid #edf1f4}.concerts-summary>div:last-child{border-left:0}.concerts-summary b{color:#132e4b;font-size:23px;line-height:1;font-weight:900}.concerts-summary span{margin-top:7px;color:#8290a2;font-size:10px;font-weight:800}

/* Heading + filters */
.concerts-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:20px}.concerts-section-head h2{margin:8px 0 4px;color:#102541;font-size:31px;letter-spacing:-.035em}.concerts-section-head p{margin:0;color:#738197;font-size:13px}.concerts-section-head__count{font-size:27px;line-height:1;color:#14304e;font-weight:900;text-align:left}.concerts-section-head__count small{display:block;margin-top:5px;color:#929daa;font-size:9px}
.concerts-filters{display:grid;grid-template-columns:1.1fr 1fr 1fr auto;background:var(--concert-ceramic);border:1px solid #e0e7ee;box-shadow:var(--concert-shadow-soft);margin-bottom:34px}.concerts-filters label{min-height:72px;padding:12px 16px;border-left:1px solid #e9edf2}.concerts-filters label>span{display:block;color:#8391a3;font-size:9px;font-weight:900;margin-bottom:5px}.concerts-filters select{width:100%;height:32px;border:0;background:transparent;outline:0;color:#17314d;font-size:13px;font-weight:800}.concerts-filter-actions{min-width:132px;display:flex;align-items:center;justify-content:center;gap:7px;padding:12px}.concerts-filter-actions button,.concerts-filter-actions a{height:38px;padding:0 14px;border:0;border-radius:2px;text-decoration:none;display:grid;place-items:center;font:800 11px var(--mf-font);cursor:pointer}.concerts-filter-actions button{background:#102b49;color:#fff}.concerts-filter-actions a{background:#edf2f6;color:#607187}

/* Calendar list */
.concerts-months{display:grid;gap:34px}.concerts-month__head{display:flex;align-items:center;justify-content:space-between;padding:0 2px 12px;border-bottom:1px solid #dbe3ea}.concerts-month__head h3{margin:0;color:#132d4a;font-size:20px;font-weight:900}.concerts-month__head span{color:#8d99a8;font-size:10px;font-weight:800}.concerts-list{background:var(--concert-ceramic);border:1px solid #e0e7ee;border-top:0;box-shadow:var(--concert-shadow)}
.concert-row{display:grid;grid-template-columns:78px 210px minmax(0,1fr) 140px 150px;gap:18px;align-items:center;min-height:108px;padding:15px 19px;border-bottom:1px solid #e9eef3;transition:background .18s ease}.concert-row:last-child{border-bottom:0}.concert-row:hover{background:#fbfdff}
.concert-row__date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:72px;border-left:1px solid #e5ebf0;text-decoration:none}.concert-row__date strong{color:#102b49;font-size:28px;line-height:1;font-weight:900}.concert-row__date span{margin-top:4px;color:#506985;font-size:10px;font-weight:900}.concert-row__date small{margin-top:4px;color:#98a4b2;font-size:9px}
.concert-row__artist{display:grid;grid-template-columns:50px minmax(0,1fr);gap:10px;align-items:center;text-decoration:none}.concert-row__artist img{width:50px;height:50px;object-fit:cover;border-radius:50%;background:#eaf0f5}.concert-row__artist b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#17304d;font-size:13px}.concert-row__artist small{display:block;margin-top:3px;color:#909cab;font-size:9px}
.concert-row__info h4{margin:0;font-size:16px;line-height:1.45;font-weight:800}.concert-row__info h4 a{color:#132b47;text-decoration:none}.concert-row__info h4 a:hover{color:#0e69c4}.concert-row__info p{display:flex;flex-wrap:wrap;margin:7px 0 0;color:#728095;font-size:11px}.concert-row__info p>*+*:before{content:"·";margin:0 7px;color:#b1bac4}.concert-row__info p strong{color:#315675}
.concert-row__availability{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.concert-row__availability small{color:#939fac;font-size:9px;line-height:1.4}.concert-row__actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}

/* Empty */
.concerts-empty{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--concert-ceramic);border:1px solid #e0e7ee;box-shadow:var(--concert-shadow);padding:42px 24px}.concerts-empty__mark{width:58px;height:58px;display:grid;place-items:center;margin-bottom:16px;background:#edf5fd;color:#176fca;border-radius:50%}.concerts-empty h2{margin:9px 0 6px;color:#14304e;font-size:27px}.concerts-empty p{max-width:600px;margin:0;color:#758397;line-height:1.75;font-size:13px}.concerts-empty .concerts-ticket{margin-top:20px}

/* Detail page */
.concert-detail-masthead{background:#fff;border-bottom:1px solid #e5ebf1;padding:29px 0 44px}.concert-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:24px;color:#93a0af;font-size:10px}.concert-breadcrumb a{color:#65778c;text-decoration:none;font-weight:800}.concert-breadcrumb a:hover{color:#0d67c7}.concert-detail-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:56px;align-items:center}
.concert-detail-kicker{display:flex;align-items:center;gap:13px;margin-bottom:14px}.concert-detail-copy h1{margin:0;max-width:760px;color:#102541;font-size:clamp(40px,5vw,67px);line-height:1.02;letter-spacing:-.055em;font-weight:800}
.concert-detail-artist{display:inline-grid;grid-template-columns:42px auto;gap:10px;align-items:center;margin-top:23px;text-decoration:none}.concert-detail-artist img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#edf2f6}.concert-detail-artist small,.concert-detail-artist strong{display:block}.concert-detail-artist small{color:#929dab;font-size:8.5px;font-weight:900}.concert-detail-artist strong{margin-top:2px;color:#15304e;font-size:13px}
.concert-detail-facts{display:grid;grid-template-columns:1fr .72fr 1.22fr;margin-top:31px;border-top:1px solid #e5ebf0;border-bottom:1px solid #e5ebf0}.concert-detail-facts>div{min-height:88px;padding:17px 16px;border-left:1px solid #e8edf2}.concert-detail-facts>div:last-child{border-left:0}.concert-detail-facts small,.concert-detail-facts strong,.concert-detail-facts span{display:block}.concert-detail-facts small{color:#929eac;font-size:9px;font-weight:900}.concert-detail-facts strong{margin-top:5px;color:#17314e;font-size:13px}.concert-detail-facts span{margin-top:3px;color:#78879a;font-size:10px}
.concert-detail-visual{position:relative;margin:0;height:420px;overflow:hidden;background:#0d3159;box-shadow:0 20px 50px rgba(4,19,39,.13)}.concert-detail-visual img{width:100%;height:100%;display:block;object-fit:cover}.concert-detail-visual:after{content:"";position:absolute;inset:auto 0 0;height:34%;background:linear-gradient(180deg,transparent,rgba(4,19,39,.58));pointer-events:none}.concert-detail-visual figcaption{position:absolute;z-index:2;right:20px;bottom:17px;color:#fff;font-size:10px;font-weight:800}
.concert-detail-content{padding:38px 0 56px}.concert-detail-content__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:24px;align-items:start}
.concert-ticket-panel,.concert-info-panel{background:var(--concert-ceramic);border:1px solid #e0e7ee;box-shadow:var(--concert-shadow);padding:30px 32px}.concert-ticket-panel__status{display:flex;gap:15px;align-items:flex-start}.concert-ticket-panel__dot{flex:0 0 10px;width:10px;height:10px;margin-top:8px;border-radius:50%;background:#7d8997}.concert-ticket-panel--available .concert-ticket-panel__dot{background:#1b9477;box-shadow:0 0 0 6px rgba(27,148,119,.08)}.concert-ticket-panel--soldout .concert-ticket-panel__dot{background:#cf4258;box-shadow:0 0 0 6px rgba(207,66,88,.08)}.concert-ticket-panel__status small{color:#8e9aa8;font-size:9px;font-weight:900}.concert-ticket-panel__status h2{margin:4px 0 2px;color:#14304e;font-size:27px}.concert-ticket-panel__status p{margin:0;color:#758397;font-size:12.5px;line-height:1.7}
.concert-ticket-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:26px;padding:17px 18px;background:#0d67c7;color:#fff!important;text-decoration:none;box-shadow:0 12px 28px rgba(13,103,199,.14)}.concert-ticket-cta small,.concert-ticket-cta strong{display:block}.concert-ticket-cta small{color:#bfe2ff;font-size:9px;font-weight:800}.concert-ticket-cta strong{margin-top:3px;font-size:14px}.concert-ticket-cta .mf-icon{width:17px;height:17px;transform:scaleX(-1)}.concert-ticket-cta:hover{background:#095aad}.concert-ticket-note{margin:10px 0 0;color:#8b97a5;font-size:9.5px;line-height:1.6}
.concert-ticket-soldout{margin-top:25px;padding:18px;background:#fff2f4;border:1px solid #f4d9de}.concert-ticket-soldout strong,.concert-ticket-soldout span{display:block}.concert-ticket-soldout strong{color:#a93649;font-size:13px}.concert-ticket-soldout span{margin-top:4px;color:#8a6670;font-size:10.5px}.concert-ticket-soldout--neutral{background:#f3f6f8;border-color:#e3e8ed}.concert-ticket-soldout--neutral strong{color:#40576e}.concert-ticket-soldout--neutral span{color:#768596}
.concert-info-panel h2{margin:8px 0 20px;color:#14304e;font-size:24px}.concert-info-panel dl{margin:0}.concert-info-panel dl>div{display:grid;grid-template-columns:92px 1fr;gap:15px;padding:12px 0;border-top:1px solid #ebeff3}.concert-info-panel dl>div:first-child{border-top:0}.concert-info-panel dt{color:#929dac;font-size:10px;font-weight:800}.concert-info-panel dd{margin:0;color:#29445f;font-size:11.5px;font-weight:800}.concert-info-panel dd a{color:#0d67c7;text-decoration:none}.concert-source-note{margin:19px 0 0;padding-top:16px;border-top:1px solid #e8edf2;color:#8794a4;font-size:9.5px;line-height:1.7}
.concert-related{padding:0 0 76px}.concert-related__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.concert-related__head h2{margin:8px 0 0;color:#14304e;font-size:25px}.concert-related__head>a{color:#0d67c7;text-decoration:none;font-size:11px;font-weight:900}.concert-related__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.concert-related-card{display:grid;grid-template-columns:68px minmax(0,1fr);gap:15px;align-items:center;min-height:112px;padding:17px 18px;background:#fff;border:1px solid #e1e7ed;box-shadow:var(--concert-shadow-soft);text-decoration:none}.concert-related-card__date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:72px;border-left:1px solid #e6ebf0}.concert-related-card__date b{color:#15304d;font-size:25px}.concert-related-card__date span{color:#718095;font-size:10px;font-weight:900}.concert-related-card h3{margin:8px 0 4px;color:#17314e;font-size:14px}.concert-related-card p{margin:0;color:#7b8999;font-size:10px}.concert-related-card:hover{background:#fbfdff}
.concert-not-found{padding:90px 0 120px}.concert-not-found .mf-container{max-width:720px;text-align:center;background:#fff;border:1px solid #e1e7ed;box-shadow:var(--concert-shadow);padding:54px 34px}.concert-not-found h1{margin:10px 0 7px;color:#15304d;font-size:38px}.concert-not-found p{margin:0 0 22px;color:#748297}

@media(max-width:1100px){
  .concert-featured{grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr)}.concert-featured__body{padding:32px 30px}.concert-row{grid-template-columns:72px 180px minmax(0,1fr) 130px 138px;gap:13px}.concert-detail-grid{grid-template-columns:minmax(0,1fr) 390px;gap:34px}.concert-detail-content__grid{grid-template-columns:1fr 360px}
}
@media(max-width:900px){
  .concerts-masthead__inner{min-height:180px;padding-block:34px}.concert-featured{grid-template-columns:1fr}.concert-featured__media{min-height:300px}.concerts-summary{grid-template-columns:repeat(2,1fr)}.concerts-summary>div:nth-child(2){border-left:0}.concerts-summary>div:nth-child(-n+2){border-bottom:1px solid #edf1f4}.concerts-filters{grid-template-columns:1fr 1fr}.concerts-filters label:nth-child(2){border-left:0}.concerts-filter-actions{grid-column:1/-1;border-top:1px solid #e8edf2}.concert-row{grid-template-columns:68px 175px minmax(0,1fr) 122px;gap:13px}.concert-row__availability{display:none}.concert-detail-grid{grid-template-columns:1fr}.concert-detail-visual{height:390px}.concert-detail-content__grid{grid-template-columns:1fr}.concert-related__grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .concerts-page .mf-container{width:calc(100% - 24px)}.concerts-masthead__inner{min-height:0;display:block;padding-block:28px}.concerts-masthead__copy h1{font-size:38px}.concerts-masthead__copy p{font-size:13.5px}.concerts-masthead__meta{min-width:0;margin-top:21px;padding:14px 0 0;border-left:0;border-top:1px solid #e8edf2}.concerts-content{padding:24px 0 58px}.concert-featured{margin-bottom:16px}.concert-featured__media{min-height:230px}.concert-featured__body{padding:23px 20px}.concert-featured h2{font-size:28px}.concert-featured__facts{grid-template-columns:1fr 1fr;margin-top:21px}.concert-featured__facts>div{min-height:72px;padding:13px}.concert-featured__facts>div:nth-child(2){border-left:0}.concert-featured__facts>div:nth-child(3){grid-column:1/-1;border-left:0;border-top:1px solid #e8edf2}.concert-featured__actions{align-items:stretch;flex-direction:column}.concert-featured__actions a{width:100%}.concerts-summary{margin-bottom:34px}.concerts-summary>div{min-height:74px;padding:13px 15px}.concerts-summary b{font-size:20px}.concerts-section-head{align-items:flex-start}.concerts-section-head h2{font-size:27px}.concerts-section-head__count{display:none}.concerts-filters{grid-template-columns:1fr;margin-bottom:27px}.concerts-filters label{border-left:0!important;border-bottom:1px solid #e8edf2;min-height:62px}.concerts-filter-actions{grid-column:auto;border-top:0}.concerts-months{gap:27px}.concert-row{grid-template-columns:56px minmax(0,1fr);gap:10px 12px;padding:14px 12px}.concert-row__date{grid-row:1/4;min-height:96px}.concert-row__artist{grid-template-columns:40px 1fr}.concert-row__artist img{width:40px;height:40px}.concert-row__info{grid-column:2}.concert-row__info h4{font-size:14px}.concert-row__actions{grid-column:2;justify-content:flex-start}.concert-row__actions>a{flex:1}.concert-detail-masthead{padding:20px 0 28px}.concert-breadcrumb{margin-bottom:18px}.concert-detail-copy h1{font-size:36px}.concert-detail-facts{grid-template-columns:1fr 1fr;margin-top:24px}.concert-detail-facts>div{min-height:74px;padding:13px}.concert-detail-facts>div:nth-child(2){border-left:0}.concert-detail-facts>div:nth-child(3){grid-column:1/-1;border-left:0;border-top:1px solid #e8edf2}.concert-detail-visual{height:285px}.concert-detail-content{padding:24px 0 40px}.concert-ticket-panel,.concert-info-panel{padding:23px 19px}.concert-ticket-panel__status h2{font-size:23px}.concert-ticket-cta{padding:15px}.concert-info-panel dl>div{grid-template-columns:75px 1fr}.concert-related{padding-bottom:58px}.concert-related__head h2{font-size:21px}
}
@media(max-width:420px){.concerts-masthead__copy h1{font-size:34px}.concert-featured__media{min-height:205px}.concert-featured h2{font-size:25px}.concerts-summary span{font-size:9px}.concert-detail-copy h1{font-size:32px}.concert-detail-visual{height:245px}.concert-related-card{grid-template-columns:59px 1fr;padding:14px 13px}}
@media(prefers-reduced-motion:reduce){.concert-featured__media img,.concerts-ticket,.concert-details-btn,.concert-details-link{transition:none!important}.concert-featured__media:hover img,.concerts-ticket:hover{transform:none!important}}
