/**
 * Event site: show cards and the event / venue / artist pages.
 * Colors, fonts and card basics come from the theme's frontpage.css
 * (.mia-front variables, .card, .cg, .cbody, .cat, .ctitle), so these pages
 * match the blog and the home page in light and dark.
 */

/* ---------- Show cards ---------- */

.mia-front .ev-card .cbody { gap:.35rem; }
.mia-front .ev-status.is-live { color:var(--acc-ink); font-weight:700; }
.mia-front .ev-artists { margin:0; font-family:var(--serif); font-style:italic; font-size:.92rem; color:var(--soft); line-height:1.35; }
.mia-front .ev-when { margin:0; font-family:var(--mono); font-size:.78rem; color:var(--soft); }
.mia-front .ev-where { margin:0; display:flex; flex-direction:column; font-size:.9rem; line-height:1.3; }
.mia-front .ev-venue { color:var(--ink); font-weight:600; }
.mia-front .ev-loc { color:var(--mut); }
/* When to show up: the line people actually need. */
.mia-front .ev-time { margin:0; font-family:var(--mono); font-size:.78rem; font-weight:700; color:var(--acc-ink); }
.mia-front .ev-time--onview, .mia-front .ev-time--later { font-weight:400; color:var(--soft); }
.ev-onnow { text-transform:uppercase; letter-spacing:.06em; color:var(--acc-ink); font-weight:700; }

/* Flyers are shown whole, over a blurred copy that fills the frame. */
.mia-front .cg-flyer { position:relative; overflow:hidden; background:var(--cg2); }
.mia-front .cg-flyer::before { content:""; position:absolute; inset:-24px; background-image:var(--flyer);
  background-size:cover; background-position:center; filter:blur(18px); opacity:.5; }
.mia-front .cg-flyer img { position:relative; width:100%; height:100%; object-fit:contain; display:block; }

/* Poster face for shows with no picture: date set big, city, city color. */
/* .cg.cg-poster: frontpage.css's .cg background loads later at equal weight. */
.mia-front .cg.cg-poster { display:flex; flex-direction:column; justify-content:space-between;
  padding:.9rem 1rem .85rem; color:#f3ece4; background:var(--pst-bg);
  background-image:linear-gradient(160deg, rgba(255,255,255,.07), rgba(0,0,0,.18)); }
.mia-front .cg.cg-poster.tone-0 { --pst-bg:#8c2433; }
.mia-front .cg.cg-poster.tone-1 { --pst-bg:#23415e; }
.mia-front .cg.cg-poster.tone-2 { --pst-bg:#47542d; }
.mia-front .cg.cg-poster.tone-3 { --pst-bg:#5a2a52; }
.mia-front .cg.cg-poster.tone-4 { --pst-bg:#7a4220; }
.mia-front .cg.cg-poster.tone-5 { --pst-bg:#1f5450; }
.mia-front .pst-label { font-family:var(--mono); font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; opacity:.8; }
.mia-front .pst-date { display:flex; align-items:baseline; gap:.35rem; line-height:.82; }
.mia-front .pst-month { font-family:var(--mono); font-size:1.05rem; letter-spacing:.12em; text-transform:uppercase; }
.mia-front .pst-day { font-family:var(--disp); font-weight:700; font-size:clamp(3.2rem, 7vw, 4.6rem); letter-spacing:-.03em; }
.mia-front .pst-city { font-family:var(--disp); font-style:italic; font-size:1.05rem; opacity:.9;
  border-top:1px solid rgba(243,236,228,.35); padding-top:.45rem; }
.mia-front .ev-hero .pst-day { font-size:clamp(5rem, 12vw, 9rem); }
.mia-front .ev-hero .pst-month { font-size:1.6rem; }
.mia-front .ev-hero .pst-city { font-size:1.4rem; }
.mia-front .card:hover .cg-poster { filter:brightness(1.08); }

/* ---------- Pages ---------- */

/* The page h1 is .ev-title; hide the theme's duplicate title block (same
   approach as longread.css for posts). */
body.page-node-type-event .block-page-title-block,
body.page-node-type-venue .block-page-title-block,
body.page-node-type-person .block-page-title-block,
body.page-node-type-organization .block-page-title-block { display:none; }

.ev-page { max-width:68rem; }
.ev-page a { color:var(--acc-ink); text-underline-offset:.18em; text-decoration-thickness:1px; }
.ev-page a:hover { color:var(--ink); }
.ev-page .card, .ev-page .card:hover { color:inherit; }

.ev-head { margin:0 0 2rem; padding-bottom:1.4rem; border-bottom:1px solid var(--hair); }
.ev-kicker { margin:0 0 .6rem; font-family:var(--mono); font-size:.68rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--mut); }
.ev-kicker .ev-status { color:var(--mut); }
.ev-kicker .ev-status.is-live { color:var(--acc-ink); }
.ev-title { margin:0; font-family:var(--disp); font-weight:700; color:var(--ink);
  font-size:clamp(2rem, 4.6vw, 3.3rem); line-height:1.04; letter-spacing:-.015em; text-wrap:balance; max-width:22ch; }
.ev-people { margin:.7rem 0 0; font-family:var(--serif); font-style:italic; font-size:1.2rem; color:var(--soft); line-height:1.4; }
.ev-parent { margin:.5rem 0 0; font-family:var(--mono); font-size:.75rem; color:var(--mut); }

.ev-layout { display:grid; grid-template-columns:minmax(0,1fr) 19rem; gap:2.4rem; align-items:start; }
.ev-page--person .ev-layout:not(:has(.ev-facts)) { grid-template-columns:minmax(0,1fr); }

.ev-body { font-family:var(--serif); font-size:1.12rem; line-height:1.7; color:var(--ink); max-width:38rem; }
.ev-body p { margin:0 0 1em; }
.ev-body:empty { display:none; }

.ev-figure { margin:0 0 1.8rem; }
.ev-flyer { border:1px solid var(--hair); border-radius:4px; max-height:36rem; aspect-ratio:4/3; }
.ev-credit { margin-top:.45rem; font-family:var(--mono); font-size:.66rem; letter-spacing:.06em; color:var(--mut); }
.ev-credit a { color:var(--mut); }

/* When / where card. Sticks while the story scrolls on wide screens. */
.ev-facts { position:sticky; top:1.2rem; background:var(--panel); border:1px solid var(--hair);
  border-top:3px solid var(--acc); border-radius:4px; padding:1.1rem 1.2rem .4rem; }
.ev-fact { margin-bottom:1rem; padding-bottom:1rem; border-bottom:1px solid var(--hair); }
.ev-fact:last-child { border-bottom:0; padding-bottom:0; }
.ev-fact-h { margin:0 0 .35rem; font-family:var(--mono); font-size:.62rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--mut); font-weight:400; }
.ev-fact-big { margin:0; font-family:var(--disp); font-weight:700; font-size:1.3rem; line-height:1.2; color:var(--ink); }
.ev-fact-line, .ev-fact-venue, .ev-fact-addr { margin:0 0 .2rem; font-size:.95rem; line-height:1.4; color:var(--soft); }
.ev-fact-venue { font-weight:600; color:var(--ink); font-size:1.02rem; }
.ev-fact-time { margin:0 0 .25rem; font-family:var(--disp); font-weight:700; font-size:1.12rem; color:var(--ink); }
.ev-fact-time.is-past { font-weight:400; font-size:.95rem; color:var(--mut); text-decoration:line-through; }
.ev-tba { font-style:italic; }
.ev-fact-sub { font-family:var(--mono); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--mut); margin-right:.3rem; }
a.ev-flyer { display:block; cursor:pointer; }
a.ev-flyer:hover img { opacity:.92; }
.ev-fact-actions { margin:.45rem 0 0; display:flex; flex-wrap:wrap; gap:.4rem 1rem;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; }

/* Sections below the story. */
.ev-section { margin-top:2.6rem; }
.ev-h { font-family:var(--mono); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--mut); margin:0 0 .9rem; padding-bottom:.5rem; border-bottom:1px solid var(--hair); font-weight:400; }
.ev-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; }
.ev-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ev-grid > * { display:flex; }
.ev-empty { font-family:var(--disp); font-style:italic; color:var(--soft); margin:0; }

.ev-links { list-style:none; margin:1.4rem 0 0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem 1.4rem;
  font-family:var(--mono); font-size:.75rem; letter-spacing:.04em; }

/* Tour stops: a timeline with the current stop picked out. */
.ev-stops { list-style:none; margin:0; padding:0; counter-reset:stop; }
.ev-stops li { display:grid; grid-template-columns:8.5rem minmax(0,1fr) auto; gap:.2rem 1rem; align-items:baseline;
  padding:.7rem 0 .7rem 1.6rem; border-bottom:1px solid var(--hair); position:relative; }
.ev-stops li::before { content:""; position:absolute; left:.3rem; top:1.05rem; width:.55rem; height:.55rem;
  border-radius:50%; border:2px solid var(--mut); }
.ev-stops li.is-now::before, .ev-stops li.is-soon::before { border-color:var(--acc); background:var(--acc); }
.ev-stops li.is-past { opacity:.55; }
.ev-stop-when { font-family:var(--mono); font-size:.75rem; color:var(--soft); }
.ev-stop-title { font-family:var(--disp); font-weight:700; font-size:1.1rem; }
.ev-stop-venue { grid-column:2; font-size:.88rem; color:var(--mut); }
.ev-stop-status { grid-column:3; grid-row:1; font-family:var(--mono); font-size:.62rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--acc-ink); }

/* Past shows: compact archive list. */
.ev-past { list-style:none; margin:0; padding:0; columns:2 22rem; column-gap:2rem; }
.ev-past li { break-inside:avoid; padding:.5rem 0; border-bottom:1px solid var(--hair);
  display:grid; grid-template-columns:9rem minmax(0,1fr); gap:.1rem .9rem; align-items:baseline; }
.ev-past-when { font-family:var(--mono); font-size:.7rem; color:var(--mut); }
.ev-past-title { font-family:var(--disp); font-weight:700; }
.ev-past-venue { grid-column:2; font-size:.85rem; color:var(--mut); }

@media (max-width:860px) {
  .ev-layout { grid-template-columns:minmax(0,1fr); gap:1.6rem; }
  .ev-facts { position:static; order:-1; }
  .ev-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:540px) {
  .ev-grid, .ev-grid--2 { grid-template-columns:minmax(0,1fr); }
  .ev-stops li { grid-template-columns:minmax(0,1fr); }
  .ev-stop-venue, .ev-stop-status { grid-column:1; grid-row:auto; }
  .ev-past li { grid-template-columns:minmax(0,1fr); }
  .ev-past-venue { grid-column:1; }
}

/* ---------- Suggest a show form ---------- */

.mia-suggest { max-width:40rem; }
.mia-suggest-intro { font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif; font-style:italic;
  font-size:1.15rem; line-height:1.5; margin:0 0 1.8rem; opacity:.85; }
.mia-suggest .form-actions .button--primary,
.mia-suggest .form-actions .btn-primary { background:#d8324f; border-color:#d8324f; }
[data-bs-theme="dark"] .mia-suggest .form-actions .btn-primary { background:#f0576f; border-color:#f0576f; color:#111417; }

/* ---------- Search results ---------- */

/* .mia-front.sr: each result borrows the .mia-front palette, not its page padding. */
.mia-front.sr { display:flex; gap:1rem; align-items:flex-start; max-width:46rem; padding:1rem 0;
  border-bottom:1px solid var(--hair); margin:0; padding-left:0; padding-right:0; }
.sr-thumb { flex:0 0 6.5rem; }
.sr-thumb img { width:6.5rem; height:5rem; object-fit:cover; border-radius:3px; display:block; border:1px solid var(--hair); }
.sr-body { min-width:0; }
.sr-kind { margin:0 0 .25rem; font-family:var(--mono); font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--mut); }
.sr-kind .is-live { color:var(--acc-ink); }
.sr-title { margin:0; font-family:var(--disp); font-weight:700; font-size:1.25rem; line-height:1.2; }
.sr-title a { color:var(--ink); text-decoration:none; }
.sr-title a:hover { color:var(--acc-ink); text-decoration:underline; }
.sr-people { margin:.2rem 0 0; font-family:var(--serif); font-style:italic; color:var(--soft); }
.sr-line { margin:.25rem 0 0; font-family:var(--mono); font-size:.78rem; color:var(--soft); }
.sr-sub { margin:.2rem 0 0; font-size:.92rem; color:var(--mut); line-height:1.45; }

/* ---------- Events / Artists / Venues / Organizations ---------- */

body.path-events .block-page-title-block, body.path-artists .block-page-title-block,
body.path-venues .block-page-title-block, body.path-organizations .block-page-title-block { display:none; }

.mia-listing { max-width:68rem; }
.ls-head { margin:0 0 1.8rem; }
.ls-title { margin:0; font-family:var(--disp); font-weight:700; color:var(--ink); font-size:clamp(2.2rem, 5vw, 3.4rem); letter-spacing:-.015em; line-height:1.05; }
.ls-intro { margin:.6rem 0 0; font-family:var(--disp); font-style:italic; font-size:1.15rem; color:var(--soft); }

.ls-featured { margin-bottom:2.4rem; }
.ls-featured-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; }
.ls-featured-grid > * { display:flex; }

/* Finder: search box with live count, then chip rows. */
.ls-finder { position:sticky; top:0; z-index:4; background:var(--paper); padding:.9rem 0 .7rem; margin-bottom:.4rem;
  border-bottom:1px solid var(--hair); }
.ls-search { position:relative; margin-bottom:.7rem; }
.ls-q { width:100%; font-size:1.15rem; padding:.75rem 3.6rem .75rem 1rem; border:1px solid var(--hair); border-radius:6px;
  background:var(--panel); color:var(--ink); font-family:var(--serif); }
.ls-q:focus { outline:2px solid var(--acc); outline-offset:1px; border-color:transparent; }
.ls-count { position:absolute; right:1rem; top:50%; transform:translateY(-50%); font-family:var(--mono); font-size:.75rem; color:var(--mut); }
.ls-filter { display:flex; align-items:baseline; gap:.3rem .8rem; flex-wrap:wrap; margin:.35rem 0; }
.ls-filter-label { font-family:var(--mono); font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--mut); min-width:5.5rem; }
.ls-filter ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.35rem; }
.ls-chip, .ls-more select { font:inherit; font-size:.85rem; padding:.22rem .65rem; border:1px solid var(--hair); border-radius:999px;
  background:var(--panel); color:var(--ink); cursor:pointer; line-height:1.4; }
.ls-chip span { font-family:var(--mono); font-size:.65rem; color:var(--mut); }
.ls-chip:hover:not(:disabled), .ls-more select:hover { border-color:var(--acc); }
.ls-chip.is-on, .ls-more select.is-on { background:var(--acc); border-color:var(--acc); color:#fff; }
.ls-chip.is-on span { color:rgba(255,255,255,.8); }
.ls-chip:disabled { opacity:.3; cursor:default; }
.ls-filter--letters .ls-chip { min-width:1.9rem; padding:.18rem .4rem; font-family:var(--mono); font-size:.75rem; }
.ls-toggle { display:inline-flex; align-items:center; gap:.45rem; margin:.35rem 1.2rem .35rem 0; font-size:.9rem; color:var(--soft); cursor:pointer; }
.ls-toggle input { accent-color:var(--acc); width:1rem; height:1rem; }

/* The list. */
.ls-list { list-style:none; margin:0; padding:0; }
.ls-row { display:flex; gap:1rem; align-items:flex-start; padding:.9rem 0; border-bottom:1px solid var(--hair); }
.ls-row[hidden], .ls-group[hidden] { display:none; }
.ls-group { margin:1.6rem 0 0; padding:.3rem 0; font-family:var(--mono); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--acc-ink); border-bottom:1px solid var(--hair); }
.ls-date { flex:0 0 4.2rem; display:flex; flex-direction:column; align-items:center; padding:.35rem 0; border:1px solid var(--hair);
  border-radius:4px; background:var(--panel); line-height:1; }
.ls-row.is-live .ls-date { border-color:var(--acc); }
.ls-date-label { font-family:var(--mono); font-size:.5rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mut); min-height:.6rem; }
.ls-date-month { margin-top:.25rem; font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--acc-ink); }
.ls-date-day { font-family:var(--disp); font-weight:700; font-size:1.7rem; color:var(--ink); }
.ls-thumb { flex:0 0 4.2rem; height:4.2rem; border-radius:4px; overflow:hidden; border:1px solid var(--hair); background:var(--panel); }
.ls-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.ls-thumb--none { display:flex; align-items:center; justify-content:center; font-family:var(--disp); font-weight:700; font-size:1.6rem; color:var(--mut); }
.ls-thumb--end { margin-left:auto; flex-basis:5.5rem; height:4.2rem; }
.ls-body { min-width:0; flex:1; }
.ls-kicker { margin:0 0 .2rem; font-family:var(--mono); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--mut); }
.ls-row-title { margin:0; font-family:var(--disp); font-weight:700; font-size:1.2rem; line-height:1.2; }
.ls-row-title a { color:var(--ink); text-decoration:none; }
.ls-row-title a:hover { color:var(--acc-ink); text-decoration:underline; }
.ls-line { margin:.15rem 0 0; font-family:var(--serif); font-style:italic; color:var(--soft); }
.ls-time { margin:.2rem 0 0; font-family:var(--mono); font-size:.78rem; font-weight:700; color:var(--acc-ink); }
.ls-time--onview, .ls-time--later { font-weight:400; color:var(--soft); }
.ls-sub { margin:.15rem 0 0; font-size:.88rem; color:var(--mut); }
.ls-empty { font-family:var(--disp); font-style:italic; color:var(--soft); padding:1.2rem 0; }

@media (max-width:860px) {
  .ls-featured-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ls-filter-label { min-width:0; flex-basis:100%; }
}
@media (max-width:540px) {
  .ls-featured-grid { grid-template-columns:minmax(0,1fr); }
  .ls-thumb--end { display:none; }
  .ls-finder { position:static; }
}
