/* Shared public banners and admin previews. Keep media optional and heights natural. */
.events-site { --yellow:#fff; --cream:#f4f4f4; --line:rgba(255,255,255,.22); --text:#f5f5f5; --muted:#b8b8b8; }
.events-shell { width:min(1120px, calc(100% - 48px)); margin:0 auto; }
.events-site .eyebrow { color:#bcbcbc; font-size:11px; letter-spacing:.14em; }
.events-site .btn { border-radius:2px; min-height:48px; text-align:center; }
.events-site .btn-primary { background:#fff; color:#080808; box-shadow:none; }
.events-site .btn-secondary { background:transparent; border:1px solid #777; color:#fff; }
.events-site :is(a,button,input,select,textarea):focus-visible, #admin-events :is(a,button,input,select,textarea):focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.events-site [hidden], #admin-events [hidden] { display:none !important; }
.events-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,440px); gap:56px; align-items:center; padding:32px 0 24px; border-bottom:1px solid #282828; }
.events-hero:has(.events-film[hidden]) { grid-template-columns:1fr; }
.events-intro { min-width:0; padding:0; }
.events-site .events-intro h1 { margin:10px 0 18px; font-size:clamp(44px,5.5vw,72px); line-height:1; }
.events-lead { max-width:610px; font-size:18px; margin:0 0 12px; }
.events-location { font-size:14px; color:#bcbcbc; margin:0; }
.events-intro-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px 24px; margin-top:28px; }
.events-jump { color:#ddd; font-size:13px; text-underline-offset:5px; }
.events-film { --film-ratio:.5625; --film-height:clamp(420px,56vh,500px); margin:0 auto; width:min(100%,calc(var(--film-height) * var(--film-ratio))); min-width:0; }
.events-film-label { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 10px; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#c9c9c9; }
.events-film-label span:last-child { letter-spacing:.04em; font-weight:500; color:#999; }
.events-film video { display:block; width:100%; height:auto; aspect-ratio:var(--film-ratio); object-fit:contain; background:#050505; border:1px solid #444; }
.events-film figcaption { font-size:12px; line-height:1.6; color:#bcbcbc; margin-top:12px; text-align:left; }
.events-section { padding:48px 0; }
.events-section-head { display:flex; gap:20px; justify-content:space-between; align-items:flex-end; margin-bottom:24px; }
.events-site :is(.events-section-head,.events-booking,.events-closing) h2 { font-size:clamp(28px,3.4vw,40px); line-height:1.05; margin:8px 0 0; }
.events-section-head > span { font-size:12px; color:#bcbcbc; }
.events-list { display:grid; gap:16px; }
.event-card { min-width:0; display:grid; grid-template-columns:96px minmax(0,1fr); gap:28px; padding:28px; border:1px solid #3a3a3a; background:#111; color:#f5f5f5; align-items:start; }
.event-card-with-media { grid-template-columns:96px minmax(0,1fr) minmax(180px,260px); }
.event-date { border-top:2px solid #fff; padding-top:10px; display:grid; gap:4px; }
.event-date strong { font:700 48px/1 var(--display); }
.event-date span { font-size:12px; color:#bcbcbc; }
.event-status { display:inline-flex; padding:4px 9px; border:1px solid #666; font:700 11px/1.5 var(--body); letter-spacing:.04em; text-transform:uppercase; }
.brand-site .event-card h3, .dashboard-body .event-card h3 { font:700 30px/1.05 var(--display); text-transform:uppercase; letter-spacing:0; margin:12px 0; overflow-wrap:anywhere; }
.event-card-copy { min-width:0; }
.event-meta { font:500 14px/1.6 var(--body); color:#d4d4d4; margin:5px 0; overflow-wrap:anywhere; }
.event-description { font:400 15px/1.6 var(--body); color:#bcbcbc; margin:14px 0 0; white-space:pre-line; overflow-wrap:anywhere; }
.event-card-media { min-width:0; width:100%; align-self:center; }
.event-card-media :is(img,video) { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; background:#050505; border-radius:0; }
.event-card-media video { object-fit:contain; }
.events-empty { border:1px solid #3a3a3a; padding:28px; background:#111; }
.brand-site .events-empty h3 { font-size:28px; line-height:1.1; margin:14px 0 10px; }
.events-empty p { color:#bcbcbc; max-width:650px; margin-bottom:0; }
.events-booking { border-block:1px solid #3a3a3a; padding:28px 0; display:grid; grid-template-columns:220px minmax(0,1fr); gap:32px; }
.events-booking p { margin:0; color:#d4d4d4; max-width:700px; }
.events-message { padding:24px; border:1px solid #666; line-height:1.6; }
.events-closing { display:flex; gap:32px; align-items:center; justify-content:space-between; padding:40px 0 56px; }
.events-closing h2 { max-width:600px; }
.events-closing p { color:#bcbcbc; font-size:14px; margin:14px 0 0; }
.events-closing .btn { flex-shrink:0; }
#past-events-more { margin-top:24px; }
.subscription-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.8fr); gap:48px; padding:56px 0; align-items:start; }
.events-site .subscription-layout h1 { font-size:clamp(44px,5.5vw,68px); line-height:1; margin:14px 0 24px; }
.subscription-benefits { list-style:none; padding:0; margin:28px 0; }
.subscription-benefits li { padding:16px 0; border-top:1px solid #3a3a3a; }
.subscription-benefits b, .subscription-benefits span { display:block; }
.subscription-benefits span { color:#bcbcbc; margin-top:6px; font-size:14px; }
.subscription-card { padding:28px; background:#111; border:1px solid #444; }
.subscription-card img { display:block; max-height:240px; margin:0 auto 24px; object-fit:contain; }
.subscription-card h2 { font-size:32px; line-height:1.1; }
.subscription-price { font:700 36px/1.1 var(--display); margin:20px 0 10px; }
.subscription-card .btn { width:100%; margin-top:18px; }
.subscription-card .btn:disabled { opacity:.65; cursor:not-allowed; }
.subscription-card p { font-size:14px; color:#d4d4d4; }
/* Focused home teaser replaces the tall subscriber promotion. */
.subscriber-events { padding:56px 0; background:#101010; color:#fff; border-block:1px solid #333; }
.subscriber-events-grid { grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.subscriber-events .eyebrow { color:#bcbcbc; }
.subscriber-events h2 { font-size:clamp(32px,4vw,48px); line-height:1.02; }
.subscriber-events-copy > p { font-size:16px; }
.subscriber-events-copy .btn { background:#fff; color:#050505; }
.subscriber-events-copy .events-teaser-location { color:#bcbcbc; font-size:14px; }
.plan-events-link { display:inline-block; color:inherit; font-size:13px; text-decoration:underline; margin:10px 0 18px; }
/* Events administration */
.events-admin-help { border:1px solid #444; padding:16px 20px; margin-bottom:20px; color:#ddd; }
.events-admin-help summary { cursor:pointer; min-height:28px; font-weight:700; }
.events-admin-help li { margin:10px 0; line-height:1.6; }
.events-admin-help p { font-size:14px; line-height:1.6; }
.events-discard-prompt { border:1px solid #aaa; background:#1a1a1a; padding:16px 20px; margin-bottom:20px; }
.events-discard-prompt[hidden] { display:none; }
.event-invitation-note { color:#ccc; font-size:13px; line-height:1.6; }
.events-film-preview video { display:block; width:100%; height:320px; max-width:640px; object-fit:contain; background:#050505; border:1px solid #444; }
#admin-events { height:auto; min-height:0; overflow:visible; }
.events-admin-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:24px; }
.events-admin-toolbar button, .events-admin-toolbar a, #admin-events button { min-height:44px; border-radius:2px; }
.events-admin-toolbar select { min-height:44px; padding:8px 12px; background:#111; color:#fff; border:1px solid #777; font:inherit; }
.event-admin-row { border:1px solid #444; padding:20px; margin-bottom:12px; background:#111; }
.event-admin-row h3 { margin:0 0 8px; font-size:26px; }
.event-admin-row p { margin:4px 0 14px; color:#bcbcbc; font-size:13px; }
.event-admin-actions { display:flex; flex-wrap:wrap; gap:8px; }
.event-admin-actions button { background:#181818; border:1px solid #666; color:#fff; padding:8px 12px; font:600 12px var(--body); cursor:pointer; }
.event-admin-actions button:disabled { opacity:.4; cursor:not-allowed; }
.events-admin-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:24px; border:1px solid #444; margin:20px 0; background:#101010; }
.events-admin-form .wide { grid-column:1/-1; }
.events-admin-form label { display:grid; gap:8px; color:#ddd; font-size:14px; }
.events-admin-form :is(input,textarea,select) { width:100%; min-width:0; padding:12px; color:#fff; background:#080808; border:1px solid #666; border-radius:2px; font:400 15px var(--body); color-scheme:dark; }
.events-admin-form textarea { min-height:100px; resize:vertical; }
.events-admin-form input[type=file] { font-size:13px; }
.events-admin-form small { color:#bcbcbc; font-size:12px; }
.events-editor-head { display:flex; gap:20px; justify-content:space-between; align-items:center; }
.events-editor-head h3 { margin:0; }
.events-upload { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:end; }
.events-upload button { background:#eee; color:#111; border:0; font:700 12px var(--body); padding:10px 16px; cursor:pointer; }
.events-admin-form .event-card { grid-template-columns:72px minmax(0,1fr); }
.events-admin-form .event-card-media { grid-column:2; max-width:280px; }
.events-admin-status { color:#eee; min-height:24px; font-size:14px; }
.events-upload-status { font-size:13px; color:#ddd; }
#event-preview { margin:4px 0; }
@media(max-width:800px) {
  .events-shell { width:calc(100% - 40px); }
  .events-hero { grid-template-columns:1fr; gap:28px; padding:24px 0 28px; }
  .events-intro { display:block; padding:0; }
  .events-film { --film-height:clamp(320px,43svh,360px); }
  .events-film-label span:last-child, .events-jump-prefix { display:none; }
  .events-jump { font-size:12px; }
  .events-intro-actions { gap:14px; margin-top:22px; }
  .events-section { padding:36px 0; }
  .events-section-head { display:block; }
  .events-section-head > span { display:block; margin-top:12px; }
  .event-card, .event-card-with-media { grid-template-columns:66px minmax(0,1fr); gap:18px; padding:20px; }
  .event-card-media { grid-column:1/-1; }
  .event-date strong { font-size:36px; }
  .brand-site .event-card h3 { font-size:26px; }
  .events-booking { grid-template-columns:1fr; gap:16px; padding:24px 0; }
  .events-closing { display:block; padding:32px 0 40px; }
  .events-closing .btn { margin-top:24px; }
  .subscription-layout { grid-template-columns:1fr; gap:24px; padding:36px 0; }
  .subscriber-events { padding:36px 0; }
  .subscriber-events-grid { grid-template-columns:1fr; gap:16px; }
  .events-admin-form { grid-template-columns:1fr; padding:16px; }
  .events-admin-form .wide { grid-column:auto; }
  .events-upload { grid-template-columns:1fr; }
}
@media(min-width:640px) and (max-width:800px) {
  .events-hero { grid-template-columns:minmax(0,1fr) minmax(180px,240px); gap:28px; }
  .events-film { --film-height:400px; }
  .events-lead { font-size:16px; }
}
@media(max-width:480px) {
  .event-card, .event-card-with-media, .events-admin-form .event-card { grid-template-columns:minmax(0,1fr); gap:14px; }
  .event-date { display:flex; align-items:baseline; gap:10px; }
  .event-date strong { font-size:32px; }
  .event-card-media, .events-admin-form .event-card-media { grid-column:1; max-width:none; }
}
