/* Zhili Events 1.0.0. All selectors are scoped to this component. */
#zhili-events {
  --ze-accent: #922343;
  --ze-ink: #38272e;
  --ze-paper: #ffffff;
  --ze-muted: #746970;
  --ze-card-width: 680px;
  --ze-card-height: 232px;
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1010;
  width: 58px;
  height: 58px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--ze-ink);
  background: var(--ze-accent);
  font: 400 15px/1.5 Arial, "Noto Sans", "Microsoft YaHei", sans-serif;
  text-align: start;
  box-shadow: 0 12px 42px rgba(71, 20, 39, .18), 0 2px 8px rgba(71, 20, 39, .1);
  isolation: isolate;
  transition: width .5s cubic-bezier(.2,.75,.2,1), height .5s cubic-bezier(.2,.75,.2,1), border-radius .5s, background-color .35s;
  -webkit-text-size-adjust: 100%;
}
#zhili-events, #zhili-events * { box-sizing: border-box; }
#zhili-events [hidden] { display: none !important; }
#zhili-events .ze-safe-area { position: absolute; width: 0; height: 0; padding: 0 0 env(safe-area-inset-bottom, 0px); pointer-events: none; visibility: hidden; }
#zhili-events button, #zhili-events a { font: inherit; -webkit-tap-highlight-color: transparent; }
#zhili-events button { cursor: pointer; }
#zhili-events a { text-decoration: none; }
#zhili-events a:focus-visible, #zhili-events button:focus-visible { outline: 3px solid #922343; outline-offset: 3px; }
#zhili-events[data-state="opening"], #zhili-events[data-state="open"] {
  width: var(--ze-card-width);
  height: var(--ze-card-height);
  border-radius: 18px;
  background: var(--ze-paper);
}
#zhili-events .ze-clip {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
}
#zhili-events .ze-panel {
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  grid-template-columns: 176px minmax(0, 1fr);
  width: var(--ze-card-width);
  min-height: 218px;
  max-height: var(--ze-max-height, calc(100dvh - 40px));
  margin: 0;
  padding: 0;
  border: 1px solid rgba(105, 34, 59, .14);
  border-radius: 18px;
  overflow: auto;
  overscroll-behavior: contain;
  background: var(--ze-paper);
  opacity: 0;
  visibility: hidden;
  transition: opacity .14s, visibility 0s .14s;
}
#zhili-events[data-state="open"] .ze-panel {
  opacity: 1;
  visibility: visible;
  transition: opacity .18s;
}
#zhili-events .ze-visual {
  position: relative;
  min-height: 218px;
  margin: 0;
  overflow: hidden;
  background: #5f1d36;
}
#zhili-events .ze-visual img { display: block; width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
#zhili-events .ze-photo-caption { position: absolute; left: 10px; right: 10px; bottom: 11px; z-index: 1; margin: 0; padding: 7px 8px; border-radius: 5px; background: rgba(48,25,35,.76); color: #fff; font-size: 10px; line-height: 1.45; letter-spacing: .1px; }
#zhili-events .ze-art {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 23px 21px;
  background: radial-gradient(circle at 85% 100%, rgba(226,151,175,.25), transparent 60%);
  color: #fff;
}
#zhili-events .ze-brand { color: #fff; font-size: 21px; font-weight: 800; line-height: 1; letter-spacing: 2.4px; }
#zhili-events .ze-art svg { display: block; width: 112px; height: 84px; color: #e8b1c2; }
#zhili-events .ze-art-note { color: #eed4de; font-size: 10px; line-height: 1.5; letter-spacing: 2px; }
#zhili-events .ze-copy { padding: 23px 26px 23px; min-width: 0; }
#zhili-events .ze-eyebrow { margin: 0 38px 9px 0; color: #946073; font-size: 10px; line-height: 1.5; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; }
#zhili-events .ze-title { margin: 0 18px 8px 0; padding: 0; color: #38272e; font-size: 23px; line-height: 1.22; font-weight: 700; letter-spacing: -.45px; overflow-wrap: anywhere; }
#zhili-events .ze-meta { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; color: #922343; font-size: 12px; font-weight: 700; }
#zhili-events .ze-meta svg { flex: 0 0 15px; width: 15px; height: 15px; }
#zhili-events .ze-description { margin: 0; color: var(--ze-muted); font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
#zhili-events .ze-subjects { margin: 8px 0 0; color: #754456; font-size: 11px; line-height: 1.55; }
#zhili-events .ze-action-note { margin: 10px 0 0; color: #81737a; font-size: 11px; line-height: 1.5; }
#zhili-events .ze-details-button { appearance: none; cursor: pointer; }
#zhili-events .ze-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 17px; }
#zhili-events .ze-link { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 42px; max-width: 100%; margin: 0; padding: 10px 14px; border: 1px solid #e4d7dd; border-radius: 8px; color: #74324b; background: #fff; font-size: 12px; font-weight: 700; line-height: 1.4; text-align: center; }
#zhili-events .ze-link:hover { background: #fbf0f4; color: #6e1b38; }
#zhili-events .ze-link--primary { border-color: var(--ze-accent); background: var(--ze-accent); color: #fff; }
#zhili-events .ze-link--primary:hover { border-color: #7d1838; background: #7d1838; color: #fff; }
#zhili-events .ze-link svg { width: 14px; height: 14px; flex: 0 0 14px; }
#zhili-events .ze-close { position: absolute; top: 7px; right: 7px; display: grid; place-items: center; width: 38px; height: 38px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #896b78; }
#zhili-events .ze-close:hover { background: #faedf2; }
#zhili-events .ze-close svg { width: 16px; height: 16px; }
#zhili-events .ze-trigger { position: absolute; inset: 0; display: grid; place-items: center; width: 58px; height: 58px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--ze-accent); color: #fff; transition: opacity .16s; }
#zhili-events .ze-trigger:hover { background: #7d1838; }
#zhili-events .ze-trigger svg { width: 27px; height: 27px; }
#zhili-events .ze-bubble { position: absolute; right: 72px; top: 8px; display: inline-flex; align-items: center; justify-content: center; min-height: 42px; margin: 0; padding: 9px 14px; border: 1px solid #e9dce2; border-radius: 9px; box-shadow: 0 4px 20px rgba(71,20,39,.08); background: #fff; color: #74324b; font-size: 13px; font-weight: 600; white-space: nowrap; }
#zhili-events .ze-bubble::after { content: ""; position: absolute; right: -5px; top: 15px; width: 8px; height: 8px; border-top: 1px solid #e9dce2; border-right: 1px solid #e9dce2; background: #fff; transform: rotate(45deg); }
#zhili-events[data-state="opening"] .ze-trigger, #zhili-events[data-state="open"] .ze-trigger,
#zhili-events[data-state="opening"] .ze-bubble, #zhili-events[data-state="open"] .ze-bubble { opacity: 0; visibility: hidden; pointer-events: none; }
#zhili-events[data-state="closing"] .ze-trigger, #zhili-events[data-state="closing"] .ze-bubble { opacity: 0; visibility: hidden; pointer-events: none; }
#zhili-events[data-suspended="true"] { display: none !important; }
#zhili-events[dir="rtl"] .ze-panel { grid-template-columns: minmax(0, 1fr) 176px; }
#zhili-events[dir="rtl"] .ze-visual { grid-column: 2; grid-row: 1; }
#zhili-events[dir="rtl"] .ze-copy { grid-column: 1; grid-row: 1; }
#zhili-events[dir="rtl"] .ze-title, #zhili-events[dir="rtl"] .ze-eyebrow { margin-left: 22px; margin-right: 0; }
#zhili-events[dir="rtl"] .ze-close { right: auto; left: 7px; }
#zhili-events[dir="rtl"] .ze-link svg { transform: scaleX(-1); }
@media (max-width: 600px) {
  #zhili-events { right: 16px; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); }
  #zhili-events .ze-panel, #zhili-events[dir="rtl"] .ze-panel { display: block; min-height: 0; border-radius: 16px; }
  #zhili-events[data-state="opening"], #zhili-events[data-state="open"] { border-radius: 16px; }
  #zhili-events .ze-visual { display: none; }
  #zhili-events .ze-copy { padding: 24px 22px 22px; }
  #zhili-events .ze-eyebrow { font-size: 10px; letter-spacing: 1.1px; margin-bottom: 9px; }
  #zhili-events .ze-title { font-size: 22px; margin-bottom: 9px; }
  #zhili-events .ze-description { font-size: 13px; }
  #zhili-events .ze-link { min-height: 44px; padding: 10px 13px; }
  #zhili-events .ze-actions { gap: 8px; margin-top: 17px; }
  #zhili-events .ze-close { width: 44px; height: 44px; top: 2px; right: 2px; }
  #zhili-events[dir="rtl"] .ze-close { left: 2px; right: auto; }
}
@media (prefers-reduced-motion: reduce) {
  #zhili-events, #zhili-events .ze-panel, #zhili-events .ze-trigger { transition: none !important; }
}

/* Event information and meeting context are only mounted by the CN meeting flow. */
.zm-dialog, .zm-summary, .zm-preferences, .zm-submit-note, .zm-unavailable {
  font-family: Arial, "Microsoft YaHei", sans-serif;
  color: #38272e;
  text-align: left;
  box-sizing: border-box;
}
.zm-dialog *, .zm-summary *, .zm-preferences * { box-sizing: border-box; }
.zm-dialog:not([open]), .zm-photo-viewer:not([open]), .zc-dialog:not([open]) { display: none !important; }
.zm-dialog { width: min(760px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 1px solid #eadce3; border-radius: 20px; background: #fff; box-shadow: 0 25px 100px #35132144; overflow: hidden; }
.zm-dialog::backdrop { background: rgba(38, 21, 29, .48); }
.zm-dialog-shell { display: flex; flex-direction: column; max-height: calc(100dvh - 34px); }
.zm-dialog-header { position: relative; flex: 0 0 auto; padding: 27px 32px 19px; border-bottom: 1px solid #eee4e9; background: #fffafb; }
.zm-eyebrow { margin: 0 36px 9px 0; font-size: 10px; font-weight: 700; line-height: 1.6; letter-spacing: 1.4px; color: #922343; }
.zm-dialog-title { margin: 0 32px 10px 0; padding: 0; font: 700 29px/1.18 Arial,sans-serif; color: #38272e; overflow-wrap: anywhere; }
.zm-dialog-intro { margin: 0; max-width: 620px; color: #75656e; font-size: 13px; line-height: 1.65; }
.zm-official-name { margin: -2px 25px 10px 0; color: #815d70; font-size: 12px; line-height: 1.6; }
.zm-dialog-close { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #775363; font: 27px/1 Arial,sans-serif; cursor: pointer; }
.zm-dialog-close:hover { background: #f5e7ee; }
.zm-dialog-content { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 22px 32px 24px; }
.zm-facts { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 14px; margin: 0 0 22px; padding: 17px 18px; border: 1px solid #eadce3; border-radius: 10px; background: #fffcfd; }
.zm-facts dt { margin: 0 0 5px; font-size: 10px; line-height: 1.4; color: #8a6c7b; text-transform: uppercase; letter-spacing: .8px; }
.zm-facts dd { margin: 0; color: #573344; font-size: 13px; line-height: 1.5; font-weight: 700; overflow-wrap: anywhere; }
.zm-section-title { margin: 20px 0 12px; padding: 0; color: #3f2b34; font: 700 16px/1.4 Arial,sans-serif; }
.zm-attendance-note { margin: 12px 0 18px; padding: 12px 15px; border-left: 3px solid #922343; background: #fff6fa; color: #784a60; font-size: 12px; line-height: 1.65; }
.zm-about, .zm-gallery-note { margin: 0 0 10px; color: #7d6b75; font-size: 12px; line-height: 1.75; }
.zm-official-link { display: inline-block; margin-bottom: 7px; color: #922343; font-size: 11px; line-height: 1.6; text-decoration: underline; }
.zm-photo-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px 12px; margin: 13px 0 24px; }
.zm-photo-gallery figure { min-width: 0; margin: 0; }
.zm-photo-gallery a { display: block; overflow: hidden; border-radius: 8px; background: #eee6ea; }
.zm-photo-gallery img { display: block; width: 100%; height: 145px; object-fit: cover; transition: transform .2s; }
.zm-photo-gallery a:hover img { transform: scale(1.035); }
.zm-photo-gallery figcaption { margin-top: 7px; color: #8d7581; font-size: 10px; line-height: 1.55; }
.zm-photo-viewer { position: fixed; width: min(1100px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 46px 20px 16px; border: 1px solid #6a4356; border-radius: 14px; background: #2c1e26; color: #fff; overflow: auto; box-sizing: border-box; }
.zm-photo-viewer::backdrop { background: rgba(17,9,13,.82); }
.zm-photo-viewer img { display: block; width: 100%; max-height: calc(100dvh - 144px); object-fit: contain; }
.zm-photo-viewer p { margin: 12px 0 0; color: #f0dce6; font: 12px/1.6 Arial,sans-serif; }
.zm-photo-close { position: absolute; top: 4px; right: 7px; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; background: transparent; color: #fff; font: 28px/1 Arial,sans-serif; cursor: pointer; }
.zm-topics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.zm-topics > div { padding: 15px; border-radius: 9px; background: #f7f3f5; }
.zm-topics h4 { margin: 0 0 7px; padding: 0; font: 700 12px/1.45 Arial,sans-serif; color: #66384c; }
.zm-topics p { margin: 0; font-size: 12px; line-height: 1.65; color: #7c6b74; }
.zm-steps { margin: 0; padding: 0 0 0 20px; color: #6d5b65; font-size: 13px; line-height: 1.7; }
.zm-steps li { padding-left: 3px; margin: 5px 0; }
.zm-dialog-footer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px 12px; flex: 0 0 auto; padding: 18px 32px 20px; border-top: 1px solid #e9dde3; background: #fff; }
.zm-primary, .zm-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 11px 18px; border: 1px solid #922343; border-radius: 8px; background: #922343; color: #fff; font: 700 13px/1.5 Arial,sans-serif; text-decoration: none; cursor: pointer; }
.zm-primary:hover { color: #fff; background: #7d1838; }
.zm-secondary { border-color: #e2d6dd; background: #fff; color: #744359; }
.zm-secondary:hover { background: #fcf4f7; }
.zm-confirmation-note { grid-column: 1 / -1; margin: 0; font-size: 11px; line-height: 1.6; color: #85747e; }
.zm-event-page-link { grid-column: 1 / -1; justify-self: start; color: #922343; font: 700 11px/1.5 Arial,sans-serif; text-decoration: underline; }
.zm-dialog button:focus-visible, .zm-dialog a:focus-visible, .zm-preferences input:focus-visible, .zm-preferences select:focus-visible { outline: 3px solid #be7b94; outline-offset: 2px; }
.zm-summary { padding: 21px 23px; margin: 0 0 24px; border: 1px solid #e7d4dd; border-left: 4px solid #922343; border-radius: 10px; background: #fff9fc; scroll-margin-top: calc(90px + var(--cn-preview-top, 0px)); }
.zm-summary h2 { margin: 0 0 10px; padding: 0; color: #38272e; font: 700 24px/1.25 Arial,sans-serif; }
.zm-summary h2:focus { outline: 0; }
.zhili-meeting-contact .contact-grid { grid-template-columns: minmax(0,1.5fr) minmax(220px,.9fr); gap: 40px; align-items: start; }
.zhili-meeting-contact .contact-form-section { grid-column: 1; grid-row: 1; min-width: 0; }
.zhili-meeting-contact .contact-info-cards { grid-column: 2; grid-row: 1; min-width: 0; padding-right: 76px; }
.zm-summary p { margin: 8px 0 0; color: #78636f; font-size: 13px; line-height: 1.7; }
.zm-summary .zm-eyebrow { margin-top: 0; color: #922343; font-size: 10px; }
.zm-summary .zm-request-event { color: #73364f; font-size: 13px; font-weight: 700; }
.zm-summary .zm-product-context { padding-top: 8px; border-top: 1px solid #ecdde4; }
.zm-preferences { min-width: 0; margin: 0 0 24px; padding: 18px; border: 1px solid #e2d6dd; border-radius: 9px; background: #fff; }
.zm-preferences legend { display: block; width: auto; margin: 0; padding: 0 7px; border: 0; color: #5f3449; font: 700 13px/1.5 Arial,sans-serif; }
.zm-preference-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.zm-preference-grid > div:last-child { grid-column: 1 / -1; }
.zm-preferences label { display: block; margin: 0 0 7px; color: #69545f; font: 700 12px/1.5 Arial,sans-serif; }
.zm-preferences input, .zm-preferences select { display: block; width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 9px 10px; border: 1px solid #dbcbd3; border-radius: 6px; background: #fff; color: #513443; font: 400 16px/1.5 Arial,sans-serif; }
.zm-company-field input { width: 100%; min-width: 0; min-height: 44px; padding: 10px 14px; border: 1px solid #dbcbd3; border-radius: 6px; background: #fff; color: #513443; font: 400 16px/1.5 Arial,sans-serif; }
.zm-company-field label { display: block; margin-bottom: 8px; color: #69545f; font: 700 13px/1.5 Arial,sans-serif; }
.zm-field-help, .zm-submit-note { margin: 12px 0 0; color: #8b7480; font-size: 11px; line-height: 1.65; }
.zm-validation-feedback { margin: 12px 0 0; color: #922343; font: 700 12px/1.6 Arial,sans-serif; }
.zm-included-context { margin-top: 13px; border-top: 1px solid #eee3e9; padding-top: 12px; }
.zm-included-context summary { color: #85546c; font: 400 11px/1.6 Arial,sans-serif; cursor: pointer; }
.zm-included-context pre { margin: 10px 0 0; padding: 12px; border: 0; border-radius: 6px; background: #f9f5f7; color: #7e6873; font: 11px/1.65 Arial,sans-serif; white-space: pre-wrap; overflow-wrap: anywhere; }
.zm-unavailable { padding: 16px; margin: 0 0 20px; border: 1px solid #e7d4dd; border-radius: 8px; background: #fff9fc; color: #76536a; font-size: 13px; line-height: 1.6; }
@media (max-width: 600px) {
  #zhili-events[data-meeting-flow="true"] .ze-actions { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
  #zhili-events[data-meeting-flow="true"] .ze-link { padding: 11px 10px; font-size: 12px; }
  #zhili-events .ze-action-note { font-size: 10px; }
  .zm-dialog-header { padding: 23px 22px 17px; }
  .zm-dialog-title { font-size: 25px; }
  .zm-dialog-intro { font-size: 12px; }
  .zm-dialog-content { padding: 18px 22px 22px; }
  .zm-facts { grid-template-columns: 1fr 1fr; padding: 14px; gap: 13px; }
  .zm-facts > div:last-child { grid-column: 1 / -1; }
  .zm-topics { grid-template-columns: 1fr; gap: 9px; }
  .zm-photo-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 10px; }
  .zm-photo-gallery img { height: 126px; }
  .zm-topics > div { padding: 12px 14px; }
  .zm-dialog-footer { padding: 16px 22px 18px; grid-template-columns: 1fr; gap: 9px; }
  .zm-summary { padding: 18px; }
  .zm-summary h2 { font-size: 22px; }
  .zm-preferences { padding: 14px; }
}
@media (max-width: 1000px) {
  .zhili-meeting-contact .contact-grid { grid-template-columns: minmax(0,1fr); }
  .zhili-meeting-contact .contact-info-cards { grid-column: 1; grid-row: 2; padding-right: 0; }
  .zhili-meeting-contact .contact-form-section { grid-column: 1; grid-row: 1; }
}
@media (max-width: 360px) {
  #zhili-events[data-meeting-flow="true"] .ze-actions { grid-template-columns: 1fr; }
  .zm-preference-grid { grid-template-columns: 1fr; }
}

/* Several exhibitions share one entry point and one reading timer. */
#zhili-events .ze-more-events { grid-column: 1 / -1; padding: 12px 20px 15px; border-bottom: 1px solid #eee3e8; background: #fcf8fa; }
#zhili-events .ze-more-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-right: 28px; }
#zhili-events .ze-more-head h3 { margin: 0; padding: 0; color: #785266; font: 700 11px/1.5 Arial,sans-serif; }
#zhili-events .ze-view-all { flex: 0 0 auto; min-height: 30px; padding: 3px 0 3px 5px; border: 0; background: transparent; color: #922343; font: 700 11px/1.5 Arial,sans-serif; }
#zhili-events .ze-event-rows { margin-top: 8px; }
#zhili-events .ze-event-row { position: relative; min-width: 0; padding: 10px 12px; border: 1px solid #eadce3; border-radius: 8px; background: #fff; text-align: left; }
#zhili-events .ze-event-row:hover { border-color: #bb8a9d; background: #fff8fb; }
#zhili-events .ze-row-label { display: block; padding-right: 31px; color: #603648; font: 700 11px/1.5 Arial,sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#zhili-events .ze-row-meta { display: block; margin-top: 3px; color: #8d7580; font: 10px/1.5 Arial,sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#zhili-events .ze-row-demo { position: absolute; right: 8px; top: 11px; padding: 0 4px; border-radius: 3px; color: #9b6b23; background: #fff4d9; font: 700 8px/1.7 Arial,sans-serif; text-transform: uppercase; }
#zhili-events .ze-demo-badge { margin: 0 0 7px; color: #987029; font: 700 10px/1.6 Arial,sans-serif; }
#zhili-events[data-compact="true"] .ze-panel { display: block; }
#zhili-events[data-compact="true"] .ze-visual { display: none; }
#zhili-events[data-compact="true"] .ze-copy { padding: 23px 20px 20px; }
.zm-demo-notice { padding: 11px 13px; margin: 0 0 16px; border: 1px solid #ead6a9; border-radius: 7px; background: #fff8e8; color: #956a28; font: 11px/1.65 Arial,sans-serif; }
.zc-dialog { width: min(1060px,calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 1px solid #e6d8df; border-radius: 18px; overflow: auto; overscroll-behavior: contain; background: #fff; box-shadow: 0 24px 100px #39142555; }
.zc-dialog::backdrop { background: rgba(38,21,29,.5); }
.zc-root { box-sizing: border-box; color: #38272e; background: #fff; font: 13px/1.6 Arial,"Microsoft YaHei",sans-serif; text-align: left; }
.zc-root *, .zc-root *::before, .zc-root *::after { box-sizing: border-box; }
.zc-root [hidden] { display: none !important; }
.zc-root button, .zc-root input, .zc-root select, .zc-root a { font-family: inherit; }
.zc-root button { cursor: pointer; }
.zc-root button:disabled { opacity: .4; cursor: default; }
.zc-root button:focus-visible, .zc-root a:focus-visible, .zc-root input:focus-visible, .zc-root select:focus-visible { outline: 3px solid #bd7c96; outline-offset: 2px; }
.zc-heading { position: relative; padding: 30px 32px 25px; border-bottom: 1px solid #ecdee5; background: #fffafb; }
.zc-dialog .zc-heading { position: sticky; top: 0; z-index: 2; }
.zc-heading-top { display: flex; justify-content: space-between; }
.zc-eyebrow { margin: 0 40px 9px 0; color: #922343; font: 700 10px/1.6 Arial,sans-serif; letter-spacing: 1.4px; }
.zc-title { margin: 0 32px 10px 0; padding: 0; color: #38272e; font: 700 30px/1.18 Arial,sans-serif; letter-spacing: -.45px; }
.zc-title:focus { outline: 0; }
.zc-intro { max-width: 690px; margin: 0; color: #846f7b; font: 13px/1.65 Arial,sans-serif; }
.zc-demo-note { margin: 10px 0 0; color: #a17836; font: 11px/1.5 Arial,sans-serif; }
.zc-controls { padding: 22px 32px 0; }
.zc-status-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.zc-tab { min-height: 40px; padding: 9px 14px; border: 1px solid #e5d7de; border-radius: 7px; background: #fff; color: #82586c; font: 700 12px/1.5 Arial,sans-serif; }
.zc-tab[aria-pressed="true"] { border-color: #922343; background: #922343; color: #fff; }
.zc-filters { display: grid; grid-template-columns: minmax(180px,2fr) minmax(130px,1fr) minmax(100px,.7fr); gap: 14px; margin-top: 19px; }
.zc-filter-group { min-width: 0; }
.zc-filter-group label { display: block; margin-bottom: 6px; color: #856976; font: 700 11px/1.5 Arial,sans-serif; }
.zc-root .zc-filter-group input, .zc-root .zc-filter-group select { box-sizing: border-box; display: block; width: 100%; min-width: 0; min-height: 42px; margin: 0; padding: 9px 11px; border: 1px solid #deccd5; border-radius: 7px; background: #fff; color: #664354; font: 14px/1.5 Arial,sans-serif; }
.zc-result-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 17px 32px 12px; }
.zc-result-count { margin: 0; color: #967b88; font: 11px/1.6 Arial,sans-serif; }
.zc-reset { min-height: 32px; padding: 4px 0; border: 0; background: transparent; color: #922343; font: 700 11px/1.6 Arial,sans-serif; text-decoration: underline; }
.zc-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 0 32px 23px; scroll-margin-top: 210px; }
.zc-event { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 22px; border: 1px solid #e9dce3; border-radius: 12px; background: #fff; box-shadow: 0 3px 15px #59263a05; }
.zc-event-mast { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 17px; }
.zc-phase { display: inline-block; padding: 4px 8px; border-radius: 4px; background: #f7ebf0; color: #922343; font: 700 9px/1.5 Arial,sans-serif; letter-spacing: .6px; }
.zc-phase--ongoing { background: #f9e9d6; color: #9d6220; }
.zc-phase--archive { background: #f0edf0; color: #8a7881; }
.zc-demo-label { padding: 2px 6px; border: 1px solid #edddb7; border-radius: 4px; background: #fff9e9; color: #a17835; font: 700 9px/1.5 Arial,sans-serif; }
.zc-featured { color: #a47c8e; font: 700 9px/1.5 Arial,sans-serif; letter-spacing: .7px; }
.zc-event-place { margin: 0 0 6px; color: #a47d8e; font: 11px/1.6 Arial,sans-serif; }
.zc-event-title { margin: 0 0 12px; padding: 0; color: #512b3c; font: 700 20px/1.25 Arial,sans-serif; overflow-wrap: anywhere; }
.zc-event-date { margin: 0; color: #73384f; font: 700 12px/1.65 Arial,sans-serif; }
.zc-event-dates { margin: 2px 0 0; color: #a08491; font: 11px/1.6 Arial,sans-serif; }
.zc-event-description { flex: 1; margin: 12px 0 18px; color: #8a7480; font: 12px/1.75 Arial,sans-serif; }
.zc-event-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.zc-event-actions .zm-primary, .zc-event-actions .zm-secondary { min-height: 40px; padding: 9px 12px; font-size: 11px; }
.zc-event-demo-note { margin: 12px 0 0; color: #b08d54; font: 10px/1.5 Arial,sans-serif; }
.zc-pagination { display: flex; justify-content: center; align-items: center; gap: 18px; padding: 0 32px 24px; }
.zc-page-button { min-height: 40px; padding: 9px 12px; border: 1px solid #e1cdd6; border-radius: 7px; background: #fff; color: #874b65; font: 700 12px/1.5 Arial,sans-serif; }
.zc-page-label { color: #987a89; font: 11px/1.6 Arial,sans-serif; }
.zc-footer { padding: 18px 32px 24px; border-top: 1px solid #eddee5; background: #fffafb; }
.zc-footer p { margin: 0; color: #927683; font: 11px/1.65 Arial,sans-serif; }
.zc-full-page { display: inline-block; margin-top: 10px; color: #922343; font: 700 12px/1.6 Arial,sans-serif; }
.zc-empty { grid-column: 1 / -1; padding: 38px 20px; text-align: center; border: 1px dashed #dcc5d1; border-radius: 10px; background: #fffbfd; }
.zc-empty h3 { margin: 0 0 9px; color: #795366; font: 700 17px/1.4 Arial,sans-serif; }
.zc-empty p { margin: 0; color: #a08693; font: 12px/1.7 Arial,sans-serif; }
.zc-unavailable { margin: 20px 32px 0; padding: 14px; border: 1px solid #e7d4dd; border-radius: 8px; color: #76536a; background: #fff9fc; font: 12px/1.65 Arial,sans-serif; }
@media (max-width: 600px) {
  #zhili-events[data-multi-event="true"] .ze-panel { max-height: min(var(--ze-max-height),560px,calc(100dvh - 148px - var(--cn-preview-top,0px))); }
  #zhili-events[data-multi-event="true"] .ze-copy { padding: 20px 18px 17px; }
  #zhili-events[data-multi-event="true"] .ze-title { font-size: 20px; }
  #zhili-events[data-multi-event="true"] .ze-subjects { display: none; }
  #zhili-events[data-multi-event="true"] .ze-description { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; }
  #zhili-events[data-multi-event="true"] .ze-actions { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 7px; margin-top: 13px; }
  #zhili-events[data-multi-event="true"] .ze-link { padding: 9px 6px; min-height: 42px; font-size: 11px; }
  #zhili-events .ze-more-events { padding: 10px 14px 13px; }
  #zhili-events .ze-more-head h3 { font-size: 10px; }
  #zhili-events .ze-event-rows { grid-template-columns: 1fr; gap: 6px; margin-top: 5px; }
  #zhili-events .ze-event-row { padding: 8px 10px; }
  #zhili-events .ze-row-demo { top: 8px; }
  .zc-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); border-radius: 14px; }
  .zc-heading { padding: 23px 19px 19px; }
  .zc-title { font-size: 24px; }
  .zc-intro { font-size: 12px; }
  .zc-demo-note { font-size: 10px; }
  .zc-controls { padding: 17px 19px 0; }
  .zc-tab { flex: 1 1 calc(50% - 8px); padding: 9px 7px; font-size: 11px; }
  .zc-filters { grid-template-columns: 1fr 1fr; gap: 12px 10px; margin-top: 16px; }
  .zc-filter-group:first-child { grid-column: 1 / -1; }
  .zc-root .zc-filter-group input, .zc-root .zc-filter-group select { font-size: 16px; }
  .zc-result-bar { padding: 15px 19px 12px; }
  .zc-grid { grid-template-columns: 1fr; padding: 0 19px 18px; gap: 12px; }
  .zc-event { padding: 19px; }
  .zc-event-title { font-size: 19px; }
  .zc-event-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .zc-event-actions > :only-child { grid-column: 1 / -1; }
  .zc-event-actions .zm-primary, .zc-event-actions .zm-secondary { padding: 9px 6px; font-size: 11px; }
  .zc-pagination { padding: 0 19px 20px; gap: 10px; }
  .zc-footer { padding: 17px 19px 20px; }
}

/* Small supporting text keeps enough contrast against the white/pale panels. */
#zhili-events .ze-row-meta, #zhili-events .ze-action-note { color: #735c67; }
.zc-result-count, .zc-event-dates, .zc-event-place, .zc-page-label, .zc-footer p,
.zc-event-description, .zc-intro, .zm-confirmation-note, .zm-field-help, .zm-submit-note,
.zm-gallery-note, .zm-photo-gallery figcaption { color: #735c67; }
.zc-demo-note, .zc-event-demo-note, .zc-demo-label, #zhili-events .ze-row-demo, #zhili-events .ze-demo-badge { color: #7b571d; }
.zc-featured, .zc-phase--archive { color: #6f5361; }
@media (max-height: 600px) {
  #zhili-events .ze-panel { min-height: 0; }
  #zhili-events .ze-visual { min-height: 0; }
  .zm-dialog { overflow: auto; }
  .zm-dialog-shell { display: block; max-height: none; }
  .zm-dialog-content { overflow: visible; }
  .zc-dialog .zc-heading { position: relative; }
}

/* One event choice is carried through the card, details and shared contact form. */
.zm-event-switcher { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 14px 0 0; }
.zm-event-switcher[hidden] { display: none !important; }
.zm-event-choice, #zhili-events .zm-event-choice { min-width: 0; min-height: 52px; margin: 0; padding: 10px 12px; border: 1px solid #dcc7d2; border-radius: 8px; background: #fff; color: #61364b; cursor: pointer; text-align: left; font: 13px/1.45 Arial,"Microsoft YaHei",sans-serif; }
.zm-event-choice:hover { border-color: #a64b6b; background: #fff7fb; }
.zm-event-choice[aria-pressed="true"], #zhili-events .zm-event-choice[aria-pressed="true"] { border-color: #922343; background: #922343; color: #fff; }
.zm-choice-title { display: block; font-size: 12px; line-height: 1.4; font-weight: 700; }
.zm-choice-meta { display: block; margin-top: 4px; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.zm-event-choice:focus-visible { outline: 3px solid #be7b94; outline-offset: 2px; }
#zhili-events .ze-event-rows .zm-event-switcher { margin: 0; }
#zhili-events .ze-copy { position: relative; }
.zm-summary .zm-switch-label { font-size: 11px; color: #6f3c54; }
.zc-event-photo { position: relative; margin: -22px -22px 18px; border-radius: 11px 11px 0 0; overflow: hidden; background: #eee2e8; }
.zc-event-photo img { display: block; width: 100%; height: 160px; object-fit: cover; }
.zc-event-photo figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 7px 11px; background: rgba(38,21,29,.76); color: #fff; font-size: 10px; line-height: 1.5; }
.zc-filter-details { margin-top: 12px; }
.zc-filter-details summary { width: fit-content; padding: 4px 0; color: #922343; cursor: pointer; font: 700 12px/1.5 Arial,sans-serif; }
.zc-filter-details .zc-filters { margin-top: 12px; }
.zc-dialog .zc-heading { padding: 20px 28px 18px; }
.zc-dialog .zc-eyebrow { margin-bottom: 6px; }
.zc-dialog .zc-title { margin-bottom: 6px; font-size: 26px; }
.zc-dialog .zc-intro { max-width: none; font-size: 12px; line-height: 1.5; }
.zc-dialog .zc-controls { padding: 16px 28px 0; }
.zc-dialog .zc-result-bar { padding-top: 12px; }
.zc-dialog .zc-event-photo img { height: 125px; }
@media (max-width:600px) {
  .zm-event-choice, #zhili-events .zm-event-choice { padding: 9px; min-height: 56px; }
  .zm-choice-title { font-size: 11px; }
  .zm-dialog { overflow: auto; }
  .zm-dialog-shell { display: block; max-height: none; }
  .zm-dialog-content { overflow: visible; }
  .zc-event-photo { margin: -19px -19px 15px; }
  .zc-dialog .zc-heading { position: relative; }
}
