/* =========================================================
   Portobello CMG — Dark theme (unified jade buttons)
   Tidy, deduplicated, and grouped
   ========================================================= */

/* ---------- Variables ---------- */
:root {
  /* Colors */
  --jade: #00a86b;
  --jade-hover: #008f5a;
  --jade-active: #166534;
  --bg: #121212;
  --bg-2: #1e1e1e;
  --card: #121212;
  --text: #e0e0e0;
  --muted: #aaa;
  --accent: #fff;
  --border: rgba(255,255,255,.35);
  --border-weak:#2a2a2a;

  /* Effects */
  --ring: 0 0 0 3px rgba(0,168,107,.25);
  --shadow: 0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.12);

  /* Radii */
  --btn-radius: 8px;
  --radius: 16px;

  /* Layout */
  --container-max: 960px;
  --container-pad: 16px;

  /* Admin alerts */
  --ok-bg:#153d2e;   --ok-fg:#b9e1d3;
  --err-bg:#3a1a1a;  --err-fg:#ffb3b3;
  --danger:#5a1b1b;
}

/* ---------- Base ---------- */
* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  font-family: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  display: flex; flex-direction: column;
  min-height: 100vh;
  text-align: center;
  background: var(--bg); color: var(--text);
}
main { flex: 1; padding: 1rem; }
footer { background: var(--bg-2); text-align: center; padding: 1rem; color: #aaa; }
iframe { flex: 1; width: 100%; border: 0; }
h1 { font-size: 2em; margin-bottom: 20px; color: #fff; }
p  { max-width: 600px; margin: 0 auto 20px; line-height: 1.6; color: #ccc; }
ul { list-style: none; padding: 0; }
li { margin: 10px 0; }
nav { display: flex; gap: 1rem; align-items: center; }
header { padding: 16px; }
code { background: #0b0b0b; padding: 2px 6px; border-radius: 6px; }
.warn { color: #ffc107; }

/* ---------- Containers & Cards ---------- */
.container { max-width: var(--container-max); width: 100%; margin: 0 auto; padding: 0 var(--container-pad); }
.event-list { margin: 0 auto; padding: 0 20px; max-width: 1000px; }

.card {
  background: var(--bg-2);
  border-radius: 12px;
  padding: 8px; /* tighter, per your note */
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}

.event-card,
.events-index article.card,
.events-index .event-card,
.events-index .events li,
.event-detail article.card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  overflow: hidden;
}
.event-card { padding: 15px; margin-bottom: 20px; border-radius: 8px; }

/* ---------- Forms ---------- */
.form-container,
.form-grid,
.form-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem;
  max-width: 700px;
  margin: 1rem auto;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
}
.form-container h2 { color: #fff; }
label { display: block; margin-top: 15px; color: #ccc; }

input[type="text"], input[type="email"], input[type="password"],
input[type="date"], input[type="time"], input[type="number"],
select, textarea {
  width: 100%;
  font: inherit;
  padding: 8px;
  margin-top: 5px;
  background: #2a2a2a; color: #eee;
  border: 1px solid #555; border-radius: 5px;
  box-sizing: border-box; color-scheme: dark;
}
input[type="date"]:focus, input[type="time"]:focus, input[type="number"]:focus,
input[type="text"]:focus, input[type="email"]:focus, input[type="password"]:focus,
select:focus, textarea:focus { outline: none; border-color: var(--jade); box-shadow: var(--ring); }
textarea { min-height: 200px; resize: vertical; }

/* Native number/date/time affordances */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type="number"] { -moz-appearance: textfield; }
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator { filter: invert(85%); opacity: .85; }

/* Accessible hidden file inputs */
.visually-hidden-file,
.sr-file {
  position: absolute !important; left: -9999px !important;
  width: 1px !important; height: 1px !important;
  overflow: hidden !important; opacity: 0 !important; pointer-events: none !important;
}

/* Fieldset block styling */
.fieldset {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: .75rem;
  margin: 1rem auto;
  max-width: 700px;
}

/* ---------- Buttons (unified jade) ---------- */
a, .button, .button-link, .btn, .events-page .btn,
button, input[type="submit"],
.file-green::file-selector-button, .file-green::-webkit-file-upload-button {
  display: inline-block; padding: 10px 20px;
  background: var(--jade); color: #fff; text-decoration: none;
  border: 0; border-radius: var(--btn-radius);
  font-size: 1em; font-weight: 600; cursor: pointer;
  transition: background-color .2s ease, box-shadow .2s ease, transform .02s ease-in;
}
.btn { padding: .35rem .6rem; }           /* compact variant */
.btn.narrow, button.narrow, .narrow.btn--green { width: 20ch; }

.button:hover, .button-link:hover, .btn:hover, .events-page .btn:hover,
button:hover, input[type="submit"]:hover,
.file-green:hover::file-selector-button, .file-green:hover::-webkit-file-upload-button { background: var(--jade-hover); }
.button:active, .button-link:active, .btn:active, .events-page .btn:active,
button:active, input[type="submit"]:active,
.file-green:active::file-selector-button, .file-green:active::-webkit-file-upload-button {
  background: var(--jade-active); transform: translateY(1px);
}
.button:focus-visible, .button-link:focus-visible, .btn:focus-visible,
.events-page .btn:focus-visible, button:focus-visible, input[type="submit"]:focus-visible,
.file-green:focus-visible::file-selector-button, .file-green:focus-visible::-webkit-file-upload-button {
  outline: none; box-shadow: var(--ring);
}

/* Actions row (centres Save/Cancel) */
.actions-row { display: flex; gap: .5rem; align-items: center; justify-content: center; margin-top: 1rem; }

/* ---------- Generic grid/thumb/gallery helpers ---------- */
.grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px; padding: 16px;
}
.thumb {
  width: 100%; height: auto; display: block;
  border: 0; border-radius: 8px; background: transparent !important;
}
.card > a { display: block; background: transparent !important; padding: 0 !important; border-radius: 8px; }
.name { margin-top: 8px; font-size: 14px; word-break: break-all; }
.row { display: flex; gap: 8px; align-items: center; justify-content: flex-start; margin-top: 8px; }
.btn:disabled { opacity: .6; cursor: not-allowed; }
.small { font-size: 12px; opacity: .85; }

/* ---------- Events (public) ---------- */
.events-page { color: var(--text); }
.events-page .wrap { max-width: 980px; margin: 40px auto; padding: 0 16px; }

/* Section header */
.events-page .section-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.events-page .section-head h2 { margin: 0; font-size: 22px; color: #fff; font-weight: 700; }
.events-page .section-head a  { color: var(--accent); font-weight: 600; text-decoration: none; }

/* Event card layout */
.events-page .card {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
  align-items: start; background: var(--card); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 20px;
}
.events-page .card + .card { margin-top: 14px; background: #000; }
.events-page .card-side { display: grid; gap: 12px; align-content: start; grid-column: 2; }

/* Media */
.events-page .card-media {
  height: 240px; display: flex; align-items: center; justify-content: center;
  background: #111; overflow: hidden;
}
.events-page .card-media > a { display: block; width: 100%; height: 100%; background: transparent !important; padding: 0 !important; margin: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.events-page .card-media img,
.events-page .img-thumb {
  width: 100%; height: 100%; object-fit: cover; object-position: bottom; display: block;
  border: 0; outline: none; border-radius: 8px;
}

/* Text/meta */
.events-page .meta-top { color: #0b6e4f; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; font-size: 16px; }
.events-page .title { font-size: 26px; line-height: 1.2; margin: 6px 0 10px; font-weight: 800; }
.events-page .title a { color: inherit; text-decoration: none; }
.events-page .location { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; text-align: center; }
.events-page .location svg { width: 1.1em; height: 1.1em; flex: 0 0 auto; }
.events-page .desc {
  color: #2b3a44; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; margin: 8px 0 14px;
}
.events-page .muted { color: var(--muted); }
.events-page .rsvp-box { display: flex; justify-content: center; }

/* Detail page */
.events-page .img-hero {
  max-width: 720px; width: 100%; height: auto; display: block;
  border-radius: 12px; border: 0; outline: none; object-fit: cover;
}
.events-page .desc-full { color: #ddd; margin: 12px 0 16px; line-height: 1.6; text-align: justify; }

/* Location block + images */
.events-page .loc-block {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px; background: var(--card);
  margin-top: 16px; box-shadow: var(--shadow);
}
.events-page .loc-block h3 { margin: 0 0 8px; font-size: 1.1rem; color: #fff; }
.events-page .loc-line { display: flex; align-items: center; gap: .5rem; color: #bcd; margin-bottom: 10px; }
.events-page .loc-line svg { width: 1.1em; height: 1.1em; }

/* Uniform location thumbnails */
.loc-images {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
}
.loc-images .loc-thumb {
  width: 100%;
  aspect-ratio: 4 / 3; /* change to 1/1 for perfect squares */
  object-fit: cover;
  display: block;
  border-radius: 10px;
  background: #f2f2f2;
  cursor: zoom-in;
}

/* ---------- Social bar ---------- */
.social-bar {
  display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .75rem;
  border-radius: 9999px; background: var(--bg-2); box-shadow: 0 2px 10px rgba(0,0,0,.25); flex-wrap: wrap;
}
.social-bar .social-label { font-size: .9rem; color: #b9e1d3; margin-right: .25rem; white-space: nowrap; }
.social-btn {
  width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%;
  background: #111; border: 1px solid #2a2a2a; cursor: pointer; text-decoration: none;
}
.social-btn:hover, .social-btn:focus-visible { outline: none; border-color: #36c2a6; box-shadow: 0 0 0 3px rgba(54,194,166,.25); }
.social-btn svg { width: 20px; height: 20px; fill: #e0e0e0; }
.share .social-btn svg { fill: #cfeee6; }
@media (max-width: 520px) { .social-bar { width: 100%; justify-content: center; } }

/* ---------- Dropdown ---------- */
.dropdown { position: relative; display: inline-block; }
.dropbtn { background: #2a2a2a; color: #fff; padding: 8px 12px; border: 0; border-radius: 6px; cursor: pointer; }
.dropdown-content {
  display: none; position: absolute; background: #333; min-width: 180px; border-radius: 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,.3); z-index: 1000;
}
.dropdown-content a {
  color: #fff; padding: 10px 14px; text-decoration: none; display: block; background: transparent;
}
.dropdown-content a:hover { background: #444; }
.dropdown:hover .dropdown-content { display: block; }

/* ---------- Modal & Lightbox ---------- */
.modal-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,.5);
  display: none; align-items: center; justify-content: center; z-index: 9999;
}
.modal {
  background: #fff; max-width: 900px; width: 90%; max-height: 80vh; overflow: auto;
  border-radius: .5rem; padding: 1rem; color: #111;
}
.modal header { display: flex; justify-content: space-between; align-items: center; }

.preview-rect {
  width: min(400px, 100%); aspect-ratio: 2/1; height: auto; margin: .5rem auto;
  border: 1px solid #ddd; background: #0d0d0d; display: flex; align-items: center; justify-content: center;
  overflow: hidden; border-radius: .35rem;
}
.preview-rect img { width: 100%; height: 100%; object-fit: contain; }

/* Lightbox */
.lb-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.85); display: none; align-items: center; justify-content: center; z-index: 9999; }
.lb-overlay.is-open { display: flex; }
.lb-content { position: relative; max-width: 92vw; max-height: 92vh; }
.lb-img { max-width: 92vw; max-height: 92vh; display: block; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.5); }
.lb-close {
  position: absolute; top: -12px; right: -12px; border: none; background: #fff; color: #000;
  width: 36px; height: 36px; border-radius: 50%; font-size: 22px; line-height: 36px;
  text-align: center; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.lb-close:focus { outline: 2px solid #888; }

/* ---------- Library search & chips ---------- */
.group li { display: flex; align-items: center; gap: .5rem; }
.rating-block { margin-left: auto; display: inline-flex; align-items: center; gap: .35rem; }
.rating-meta { white-space: nowrap; }

.controls button {
  padding: .35rem .6rem; border: 1px solid #2a2a2a; border-radius: 8px;
  background: #192024; color: #e6eef2; cursor: pointer;
}
.controls button:hover { background: #1f2830; }

.search { flex: 1 1 220px; width: 100%; margin-bottom: 1rem; }
.search-label { display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; color: #9aa3a9; margin-bottom: .35rem; user-select: none; }
.search-icon, .chip-icon { width: 1em; height: 1em; }
.search input { width: 100%; padding: .5rem .6rem; border: 1px solid #2a2a2a; border-radius: 8px; background: #111; color: #eee; }

/* Match search box text size to regular text */
.search input {
  font-family: inherit;
  font-size: 1rem;      /* same as body text */
  line-height: 1.4;
}

/* Make placeholder match too */
.search input::placeholder {
  font-size: 1rem;
  line-height: 1.4;
}

.chip-filter { margin-bottom: 1rem; }
.chip-label { display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; color: #9aa3a9; margin-bottom: .5rem; }
#chips { display: flex; flex-wrap: wrap; gap: .5rem; width: 100%; }
.chip-actions { margin-top: .5rem; }
.empty-note  { margin: .5rem 0 1rem; padding: .6rem .8rem; border: 1px solid #2a2a2a; border-radius: 8px; background: #0f1418; color: #cfd8df; }

/* ---------- Ratings (gnats) ---------- */
.stars .gnat {
  display: inline-block; width: 24px; height: 24px; margin-right: 4px; cursor: pointer;
  background: url('/gnats/gnat-dull.png') no-repeat center / contain;
}
.stars .gnat.on { background-image: url('/gnats/gnat-bright.png'); }
.stars .gnat.readonly { cursor: default; }
@media (max-width: 480px) { .stars .gnat { width: 20px; height: 20px; margin-right: 3px; } }

/* ---------- Embeds & A11y ---------- */
.filegator-embed { display: block; width: 100%; height: 75vh; border: 0; }
.accessibility-note [role="img"] { margin-right: .5rem; font-size: 1.2em; line-height: 1; }

/* ---------- Tables (events) ---------- */
main .events { margin: 2rem auto; max-width: 95%; }
table.events { width: 100%; border-collapse: collapse; margin: 1.5rem 0; text-align: left; }
table.events th, table.events td { padding: 0.5rem 0.75rem; border: 1px solid rgba(255,255,255,0.15); }
table.events th { background: #1e1e1e; color: #e0e0e0; }
table.events tr:nth-child(even) { background: rgba(255,255,255,0.02); }

/* ---------- Admin: login audit badges ---------- */
.admin-login-audit .badge {
  display: inline-block; padding: .2rem .5rem; border-radius: 9999px;
  font-size: .8rem; line-height: 1; border: 1px solid rgba(255,255,255,.12);
}
.admin-login-audit .badge.success,
.admin-login-audit .badge.status-success,
.admin-login-audit .badge[data-status="success"] { background: #0f5132; color: #d1fae5; }
.admin-login-audit .badge.fail,
.admin-login-audit .badge.status-fail,
.admin-login-audit .badge[data-status="fail"] { background: #842029; color: #f8d7da; }
.admin-login-audit .badge.pending,
.admin-login-audit .badge.status-pending,
.admin-login-audit .badge[data-status="pending"] { background: #664d03; color: #fff3cd; }
.admin-login-audit td.note { color: #cfd8df; }
.admin-login-audit tr[data-status="success"] td.note { color: #0f5132; }
.admin-login-audit tr[data-status="fail"]    td.note { color: #842029; }
.admin-login-audit tr[data-status="success"] { border-left: 3px solid #0f5132; }
.admin-login-audit tr[data-status="fail"]    { border-left: 3px solid #842029; }
.admin-login-audit .muted { color: #9aa3a9; }

/* ---------- Admin tables & layout ---------- */
.container--admin{max-width:1100px;margin:2rem auto;padding:0 1rem;}
.table-wrap{overflow:auto;}
.alert{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;}
.alert--ok{background:var(--ok-bg);color:var(--ok-fg);}
.alert--error{background:var(--err-bg);color:var(--err-fg);}
.list-compact{margin:0;padding-left:1rem;}
.form-inline{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem;}
.input-grow{flex:1;min-width:220px;}
.table{width:100%;border-collapse:collapse;}
.table th{ text-align:left;padding:.5rem;border-bottom:1px solid var(--border-weak);}
.table td{ padding:.5rem; }
.nowrap{white-space:nowrap;}
.inline{display:inline;}
.button--danger{background:var(--danger);}

/* ---------- Admin Comms (scoped from inline) ---------- */
.wrap.admin-comm { max-width: 960px; margin: 24px auto; padding: 0 16px; }
.admin-comm h1 { font-size: 22px; margin: 12px 0 16px; }
.admin-comm .card { background: #151515; border: 1px solid #2a2a2a; border-radius: 16px; padding: 16px; }
.admin-comm .row { display: flex; gap: 12px; flex-wrap: wrap; }
.admin-comm .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.admin-comm label { display: block; font-weight: 600; margin: 8px 0 6px; }
.admin-comm select,
.admin-comm input[type="text"],
.admin-comm textarea { width: 100%; padding: 10px; border-radius: 10px; border: 1px solid #333; }
.admin-comm textarea { min-height: 160px; }
.admin-comm .btn { padding: 10px 14px; border-radius: 10px; font-weight: 700; cursor: pointer; }
.admin-comm .btn:focus { outline: none; box-shadow: var(--ring); }
.admin-comm .btn.secondary { border: 1px solid #333; }
.admin-comm .note { margin: 12px 0; padding: 10px; border-radius: 10px; background: #0f1a14; border: 1px solid #214f3a; }
.admin-comm .errors { background: #2a1111; border: 1px solid #5c2323; padding: 10px; border-radius: 10px; }
.admin-comm table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.admin-comm th, .admin-comm td { padding: 8px; border-bottom: 1px solid #2a2a2a; text-align: left; }
.admin-comm .right { text-align: right; }
.admin-comm .muted { color: #aaa; }

/* ---------- Utilities ---------- */
.mt-1_25{margin-top:1.25rem;}
ul.results { text-align: left; justify-items: start; align-items: start; }
ul.results .card { text-align: left !important; }

/* ---------- Calendar ---------- */
.year-wrap { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
.cal { border:1px solid #ddd; border-radius:12px; overflow:hidden; background:#222; box-shadow:0 2px 6px rgba(0,0,0,.05); }
.cal h3 { margin:0; padding:10px 12px; background:#000; border-bottom:1px solid #eee; font:600 14px/1.2 system-ui,-apple-system,Segoe UI,Roboto,sans-serif; }
.cal table { width:100%; border-collapse:collapse; table-layout:fixed; font:13px/1.3 system-ui,-apple-system,Segoe UI,Roboto,sans-serif; }
.cal th,.cal td { text-align:center; padding:8px 0; }
.cal thead th { font-weight:600; color:#555; background:#fcfcfc; border-bottom:1px solid #f0f0f0; }
.cal td { height:36px; position:relative; vertical-align:middle; border-bottom:1px solid #f6f6f6; }
.cal tr:last-child td { border-bottom:none; }
.cal .muted { color:#bbb; }
.cal .today { outline:2px solid #0ea5e9; border-radius:8px; }
.cal a { color:inherit; text-decoration:none; }

/* Event day styling: thin green border, smaller “button” feel */
.cal .has-event .daynum {
  border:1px solid #16a34a; border-radius:3px;
  padding:0 4px; min-width:20px; height:20px; line-height:20px; font-size:12px;
}
.cal .has-event a { display:inline-block; text-decoration:none; color:inherit; }

/* Hide calendar dots but keep legend dot */
.cal .dot { display:none; }

/* Legend */
.legend {
  margin:12px 0 20px; font:13px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:#555; display:flex; gap:20px; align-items:center;
}
.legend .chip { display:flex; align-items:center; gap:6px; }
.legend .dot { width:14px; height:14px; background:#16a34a; border-radius:50%; flex-shrink:0; }
.legend .daynum {
  width:14px; height:14px; line-height:14px; border:1px solid #0ea5e9; border-radius:3px;
  display:inline-block; text-align:center; flex-shrink:0;
}

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
  .events-page .card { grid-template-columns: 1fr; }
  .events-page .card-side { grid-column: 1; }
  .events-page .card-media { height: 380px; }
  .events-page .title { font-size: 22px; }
}
@media (max-width: 520px) {
  .social-bar { width: 100%; justify-content: center; }
}

.cmg-top-rated { padding: .5rem .75rem; background: var(--panel, #111); border-radius: .75rem; }
.cmg-top-rated__heading { margin: 0 0 .5rem; font-size: 1rem; color: var(--jade, #16a085); }
.cmg-top-rated__list { list-style: decimal inside; margin: 0; padding: 0; }
.cmg-top-rated__item { display: grid; grid-template-columns: 1fr auto; gap: .25rem .5rem; padding: .25rem 0; align-items: baseline; }
.cmg-top-rated__link, .cmg-top-rated__label { text-decoration: none; color: var(--text, #eee); }
.cmg-top-rated__link:hover { text-decoration: underline; }
.cmg-top-rated__meta { font-variant-numeric: tabular-nums; white-space: nowrap; opacity: .85; }
.cmg-top-rated__score, .cmg-top-rated__votes { margin-left: .25rem; }

/* Layout */
.cmg-layout {
  display: grid;
  grid-template-columns: 1fr 320px; /* main | sidebar */
  gap: 1rem;
  align-items: start;
}

/* Sidebar */
.cmg-sidebar {
  position: sticky;
  top: 1rem;
  padding: .75rem;
  background: var(--panel, #111);
  border-radius: .75rem;
  border: 1px solid color-mix(in oklab, var(--jade, #16a085), #000 70%);
}

/* Optional extra side blocks */
.cmg-sideblock { margin-top: 1rem; }
.cmg-sideblock__heading { margin: 0 0 .5rem; color: var(--jade, #16a085); font-size: .95rem; }
.cmg-sideblock__list { margin: 0; padding: 0; list-style: none; }
.cmg-sideblock__list li { margin: .25rem 0; }
.cmg-sideblock__list a { text-decoration: none; color: var(--text, #eee); }
.cmg-sideblock__list a:hover { text-decoration: underline; }

/* Make it stack on small screens */
@media (max-width: 900px) {
  .cmg-layout { grid-template-columns: 1fr; }
  .cmg-sidebar { position: static; }
}

.events-intro{
  width: 100%;
  text-align: justify;
  line-height: 1.55;
  font-size: 1.05rem;
  opacity: .9;
}

/* --- Section divider above Upcoming / Previous --- */
.section--divider{
  margin-top: 2.2rem;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(200,0,0,,.24);
}

.section--divider{
  margin-top: 1.2rem;      /* slightly smaller */
  padding-top: 1.2rem;
  border-top: 1px solid rgba(2500,0,0,.24);
}

/* --- Previous events: "What we played" --- */
.what-played{
  margin-top: .75rem;
  padding: .65rem .75rem;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 12px;
  background: rgba(255,255,255,.04);
}

.what-played__title{
  font-weight: 700;
  letter-spacing: .2px;
  font-size: .95rem;
  margin-bottom: .35rem;
  opacity: .95;
}

.what-played__list{
  font-size: .95rem;
  line-height: 1.35;
  opacity: .9;
  white-space: normal; /* allow wraps */
}

/* Make each work feel like a clean line item */
.what-played__list br{
  line-height: 1.6;
}