section[id]:not([class*="hero"]) { padding: 0; }
.events-hero { background: var(--parchment); text-align: center; padding: 124px 40px 80px; position: relative; overflow: hidden; }
.events-hero .ev-wm { position: absolute; right: 2%; top: 50%; translate: 0 -50%; font-family: var(--font-display-zh); font-size: 420px; color: rgba(26,18,8,0.04); pointer-events: none; line-height: 1; user-select: none; }
.ev-eyebrow { font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.18em; color: var(--gold); display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 28px; }
.ev-eyebrow::before, .ev-eyebrow::after { content: ''; flex-shrink: 0; width: 48px; height: 0.5px; background: var(--gold); }
.ev-title-zh { font-family: var(--font-display-zh); font-size: 80px; color: var(--ink); letter-spacing: 0.14em; line-height: 1; }
.ev-title-en { font-family: var(--font-display-en); font-size: 11px; letter-spacing: 0.24em; color: var(--stone); margin-top: 14px; }
.ev-hero-rule { width: 1px; height: 40px; background: var(--gold); margin: 28px auto 24px; }
.ev-hero-copy { font-family: var(--font-body-en); font-size: 18px; font-style: italic; color: var(--charcoal); line-height: 1.6; }
.ev-hero-copy-en { font-family: var(--font-body-en); font-size: 15px; font-style: italic; color: var(--stone); margin-top: 6px; }
.events-featured { background: var(--sanctuary); }
.ev-feat-inner { max-width: var(--max-width); margin: 0 auto; display: flex; align-items: stretch; }
.ev-feat-pillar { background: var(--gold); padding: 40px 22px; min-width: 92px; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; }
.ev-feat-month { font-family: var(--font-display-en); font-size: 9px; letter-spacing: 0.16em; color: var(--sanctuary); }
.ev-feat-year { font-family: var(--font-display-en); font-size: 28px; color: var(--sanctuary); line-height: 1; }
.ev-feat-pillar-rule { width: 24px; height: 0.5px; background: rgba(18,16,8,0.35); }
.ev-feat-duration, .ev-feat-venue { font-family: var(--font-body-en); font-size: 11px; font-style: italic; color: var(--charcoal); line-height: 1.4; }
.ev-feat-body { flex: 1; padding: 48px 56px; position: relative; overflow: hidden; }
.ev-feat-body .ev-feat-wm { position: absolute; right: -16px; top: 50%; translate: 0 -50%; font-family: var(--font-display-zh); font-size: 240px; color: rgba(200,169,110,0.06); pointer-events: none; line-height: 1; user-select: none; }
.ev-feat-tag { font-family: var(--font-display-en); font-size: 8px; letter-spacing: 0.22em; color: var(--gold); margin-bottom: 18px; }
.ev-feat-zh { font-family: var(--font-display-zh); font-size: 44px; color: var(--moonstone); letter-spacing: 0.06em; line-height: 1.2; }
.ev-feat-en-title { font-family: var(--font-display-en); font-size: 11px; letter-spacing: 0.18em; color: var(--stone); margin-top: 8px; }
.ev-feat-desc { font-family: var(--font-body-en); font-size: 15px; font-style: italic; color: rgba(200,188,168,0.8); margin-top: 20px; line-height: 1.75; max-width: 560px; }
.ev-feat-highlights { list-style: none; margin-top: 20px; display: flex; flex-direction: column; gap: 7px; }
.ev-feat-highlights li { font-family: var(--font-body-en); font-size: 14px; color: rgba(200,188,168,0.75); padding-left: 16px; position: relative; line-height: 1.5; }
.ev-feat-highlights li::before { content: '—'; position: absolute; left: 0; color: var(--gold); font-size: 10px; top: 3px; }
.ev-feat-actions { display: flex; gap: 14px; margin-top: 32px; flex-wrap: wrap; }
.ev-btn-fill { font-family: var(--font-ui-zh); font-size: 14px; letter-spacing: 0.08em; background: var(--gold); color: var(--sanctuary); border: none; padding: 16px 36px; cursor: pointer; transition: background 0.25s ease; text-decoration: none; display: inline-block; }
.ev-btn-fill:hover { background: var(--gold-deep); }
.ev-btn-outline-gold { font-family: var(--font-ui-zh); font-size: 14px; letter-spacing: 0.08em; background: transparent; color: var(--gold); border: 0.5px solid var(--gold); padding: 16px 36px; cursor: pointer; transition: color 0.25s, border-color 0.25s; text-decoration: none; display: inline-block; }
.ev-btn-outline-gold:hover { color: var(--gold-deep); border-color: var(--gold-deep); }
.events-featured--alt { background: var(--parchment); border-top: 0.5px solid rgba(200,169,110,0.3); }
.events-featured--alt .ev-feat-inner { flex-direction: row-reverse; }
.events-featured--alt .ev-feat-pillar { background: var(--ink); }
.events-featured--alt .ev-feat-month, .events-featured--alt .ev-feat-year { color: var(--gold); }
.events-featured--alt .ev-feat-pillar-rule { background: rgba(200,169,110,0.25); }
.events-featured--alt .ev-feat-duration, .events-featured--alt .ev-feat-venue { color: var(--stone); }
.events-featured--alt .ev-feat-wm { color: rgba(26,18,8,0.04); }
.events-featured--alt .ev-feat-zh { color: var(--ink); }
.events-featured--alt .ev-feat-en-title { color: var(--stone); }
.events-featured--alt .ev-feat-desc { color: var(--charcoal); }
.events-featured--alt .ev-feat-desc em { color: var(--ink); }
.events-featured--alt .ev-feat-highlights li { color: var(--charcoal); }
.events-featured--alt .ev-feat-highlights li::before { color: var(--gold-deep); }
.events-featured--alt .ev-btn-fill { background: var(--ink); color: var(--gold); }
.events-featured--alt .ev-btn-fill:hover { background: var(--charcoal); }
.events-featured--alt .ev-btn-outline-gold { color: var(--ink); border-color: var(--ink); }
.events-featured--alt .ev-btn-outline-gold:hover { color: var(--charcoal); border-color: var(--charcoal); }
.events-quickfind { background: var(--parchment); padding: 40px 40px; border-top: 0.5px solid var(--stone); border-bottom: 0.5px solid var(--stone); }
.qf-inner { max-width: var(--max-width); margin: 0 auto; }
.qf-label { font-family: var(--font-display-zh); font-size: 18px; letter-spacing: 0.06em; color: var(--ink); margin-bottom: 24px; }
.qf-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.qf-card { background: transparent; border: 1px solid var(--ink); padding: 22px 24px; cursor: pointer; transition: background 0.25s ease, border-color 0.25s ease; display: block; text-decoration: none; }
.qf-card:hover { background: var(--ink); }
.qf-card:hover .qf-prog-zh { color: var(--moonstone); }
.qf-card:hover .qf-prog-date { color: var(--gold); }
.qf-card:hover .qf-card-rule { background: rgba(200,169,110,0.2); }
.qf-card:hover .qf-prog-cta { color: var(--gold); }
.qf-prog-zh { font-family: var(--font-display-zh); font-size: 18px; color: var(--ink); margin-bottom: 8px; line-height: 1.3; transition: color 0.25s ease; }
.qf-prog-date { font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.06em; color: var(--gold-deep); transition: color 0.25s ease; }
.qf-card-rule { width: 100%; height: 0.5px; background: rgba(26,18,8,0.15); margin: 14px 0; transition: background 0.25s ease; }
.qf-prog-cta { font-family: var(--font-display-en); font-size: 9px; letter-spacing: 0.1em; color: var(--charcoal); transition: color 0.25s ease; }
.events-controls { background: var(--vellum); border-bottom: 0.5px solid var(--stone); padding: 14px 40px; position: sticky; top: var(--header-h); z-index: 100; overflow: hidden; }
.ev-controls-inner { max-width: var(--max-width); margin: 0 auto; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; min-width: 0; }
.ev-filter-tabs { display: flex; flex-shrink: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; padding-right: 1px; }
.ev-filter-tabs::-webkit-scrollbar { display: none; }
.ev-ftab { font-family: var(--font-display-en); font-size: 11px; letter-spacing: 0.09em; padding: 10px 20px; border: 0.5px solid var(--stone); background: transparent; color: var(--charcoal); cursor: pointer; margin-right: -0.5px; transition: background 0.18s, color 0.18s, border-color 0.18s; white-space: nowrap; }
.ev-ftab.is-active { background: var(--ink); color: var(--gold); border-color: var(--ink); position: relative; z-index: 1; }
.ev-ftab:hover:not(.is-active) { color: var(--ink); background: rgba(26,18,8,0.07); border-color: var(--charcoal); }
.ev-loc-wrap { flex-shrink: 0; }
.ev-loc-select { font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.08em; color: var(--charcoal); background: var(--parchment); border: 0.5px solid var(--stone); padding: 9px 32px 9px 14px; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23C8BCA8' stroke-width='1' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; transition: border-color 0.2s, color 0.2s; white-space: nowrap; }
.ev-loc-select:focus, .ev-loc-select:hover { border-color: var(--gold); color: var(--ink); }
.ev-search-wrap { flex: 0 1 260px; min-width: 140px; position: relative; }
.ev-search-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--stone); line-height: 0; }
.ev-search-icon svg { width: 15px; height: 15px; stroke: currentColor; }
.ev-search-inp { width: 100%; font-family: var(--font-body-en); font-size: 15px; font-style: italic; color: var(--ink); background: var(--parchment); border: 0.5px solid var(--stone); padding: 8px 14px 8px 38px; outline: none; transition: border-color 0.2s; }
.ev-search-inp::placeholder { color: var(--stone); }
.ev-search-inp:focus { border-color: var(--gold); }
.events-main { background: var(--parchment); }
.events-cols { max-width: var(--max-width); margin: 0 auto; display: grid; grid-template-columns: 360px 1fr; min-height: 640px; }
.ev-cal-col { border-right: 0.5px solid var(--stone); padding: 36px 28px; }
.cal-month-nav { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 22px; }
.cal-month-zh { font-family: var(--font-display-zh); font-size: 20px; color: var(--ink); line-height: 1.2; }
.cal-month-en { font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.12em; color: var(--gold); margin-top: 4px; }
.cal-nav-arrows { display: flex; gap: 2px; }
.cal-arr-btn { font-family: var(--font-display-en); font-size: 20px; color: var(--gold); background: none; border: none; cursor: pointer; padding: 4px 8px; line-height: 1; transition: color 0.2s; }
.cal-arr-btn:hover { color: var(--gold-deep); }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.cal-day-hdr { font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.05em; color: var(--stone); text-align: center; padding: 4px 0 10px; }
.cal-cell { display: flex; flex-direction: column; align-items: center; padding: 3px 0; min-height: 36px; }
.cal-cell.has-event { cursor: pointer; }
.cal-num { font-family: var(--font-display-en); font-size: 13px; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; color: var(--ink); transition: background 0.15s, color 0.15s; }
.cal-cell.is-today .cal-num { background: var(--ink); color: var(--gold); }
.cal-cell.is-selected .cal-num { background: var(--gold); color: var(--sanctuary); }
.cal-cell.other-month .cal-num { color: rgba(200,188,168,0.38); }
.cal-cell.has-event:hover .cal-num { background: var(--vellum); }
.cal-cell.has-event.is-selected:hover .cal-num, .cal-cell.has-event.is-today:hover .cal-num { background: var(--gold); }
.cal-dots { display: flex; gap: 2px; margin-top: 3px; }
.cal-dot { width: 4px; height: 4px; flex-shrink: 0; }
.cal-dot-ws { background: var(--ink); }
.cal-dot-sp { background: var(--gold); }
.cal-dot-ret { background: var(--stone); }
.cal-legend { margin-top: 18px; padding-top: 14px; border-top: 0.5px solid rgba(200,188,168,0.4); display: flex; gap: 14px; flex-wrap: wrap; }
.cal-leg-item { display: flex; align-items: center; gap: 6px; font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.05em; color: var(--stone); }
.cal-leg-dot { width: 8px; height: 8px; flex-shrink: 0; }
.ev-day-panel { border-top: 0.5px solid var(--stone); margin-top: 22px; padding-top: 20px; display: none; }
.ev-day-panel.is-open { display: block; }
.ev-day-label { font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.12em; color: var(--gold); margin-bottom: 14px; }
.ev-day-event { padding: 12px 0; border-bottom: 0.5px solid rgba(200,188,168,0.3); }
.ev-day-event:last-child { border-bottom: none; }
.ev-day-time { font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.08em; color: var(--gold); }
.ev-day-zh { font-family: var(--font-display-zh); font-size: 17px; color: var(--ink); margin-top: 5px; }
.ev-day-venue { font-family: var(--font-body-en); font-size: 13px; font-style: italic; color: var(--stone); margin-top: 3px; }
.ev-day-reg { display: inline-block; font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.1em; color: var(--gold); border: 0.5px solid var(--gold); padding: 6px 14px; margin-top: 10px; text-decoration: none; transition: background 0.2s, color 0.2s; }
.ev-day-reg:hover { background: var(--gold); color: var(--sanctuary); }
.ev-day-enquire { font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.07em; color: var(--stone); margin-top: 10px; }
.ev-feed-col { padding: 36px 48px 48px; }
.ev-feed-hdr { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.ev-feed-hdr::after { content: ''; flex: 1; height: 0.5px; background: var(--stone); }
.ev-feed-month { font-family: var(--font-display-en); font-size: 13px; letter-spacing: 0.16em; color: var(--gold); white-space: nowrap; }
.ev-feed-count { font-family: var(--font-body-en); font-size: 14px; font-style: italic; color: var(--stone); margin-bottom: 24px; }
.ev-item { display: flex; gap: 16px; padding: 20px 0; border-bottom: 0.5px solid rgba(200,188,168,0.4); align-items: flex-start; }
.ev-item:first-child { padding-top: 0; }
.ev-item-date { text-align: center; min-width: 42px; flex-shrink: 0; }
.ev-item-day-num { font-family: var(--font-display-en); font-size: 30px; color: var(--ink); line-height: 1; }
.ev-item-day-wd { font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.07em; color: var(--gold); margin-top: 3px; }
.ev-type-bar { width: 2px; align-self: stretch; min-height: 64px; flex-shrink: 0; }
.ev-type-bar.ws { background: var(--ink); }
.ev-type-bar.sp { background: var(--gold); }
.ev-type-bar.ret { background: var(--stone); }
.ev-item-body { flex: 1; }
.ev-item-title-row { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ev-item-zh { font-family: var(--font-display-zh); font-size: 20px; color: var(--ink); }
.ev-item-badge { font-family: var(--font-display-en); font-size: 9px; letter-spacing: 0.09em; color: var(--gold); border: 0.5px solid rgba(200,169,110,0.38); padding: 3px 9px; }
.ev-item-en { font-family: var(--font-body-en); font-size: 15px; font-style: italic; color: var(--stone); margin-top: 4px; }
.ev-item-meta { font-family: var(--font-body-en); font-size: 15px; color: var(--charcoal); margin-top: 6px; }
.ev-item-reg { display: inline-block; font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.1em; color: var(--gold); border: 0.5px solid var(--gold); padding: 7px 18px; margin-top: 14px; text-decoration: none; transition: background 0.2s, color 0.2s; }
.ev-item-reg:hover { background: var(--gold); color: var(--sanctuary); }
.ev-item-enquire { font-family: var(--font-display-en); font-size: 10px; letter-spacing: 0.08em; color: var(--stone); margin-top: 14px; }
.ev-no-results { font-family: var(--font-body-en); font-size: 15px; font-style: italic; color: var(--stone); padding: 40px 0; display: none; }
@media (max-width: 1100px) {
  .qf-grid { grid-template-columns: repeat(2, 1fr); }
  .ev-feed-col { padding: 36px 32px 48px; }
}
@media (max-width: 900px) {
  .events-cols { grid-template-columns: 1fr; }
  .ev-cal-col { border-right: none; border-bottom: 0.5px solid var(--stone); padding: 28px 24px; }
  .ev-feat-body { padding: 36px 32px; }
  .ev-feat-zh { font-size: 34px; }
  .ev-title-zh { font-size: 64px; }
  .ev-feed-col { padding: 28px 24px 40px; }
}
@media (max-width: 600px) {
  .events-hero { padding: 100px 24px 56px; }
  .ev-title-zh { font-size: 52px; }
  .ev-feat-inner { flex-direction: column; }
  .events-featured--alt .ev-feat-inner { flex-direction: column-reverse; }
  .ev-feat-pillar { flex-direction: row; padding: 16px 24px; min-width: auto; gap: 16px; justify-content: flex-start; }
  .ev-feat-pillar-rule { width: 0.5px; height: 32px; }
  .ev-feat-body { padding: 24px; }
  .ev-feat-zh { font-size: 28px; }
  .ev-feat-body .ev-feat-wm { display: none; }
  .events-quickfind { padding: 22px 24px; }
  .qf-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .events-controls { padding: 10px 16px; }
  .ev-controls-inner { flex-direction: column; align-items: stretch; gap: 8px; }
  .ev-filter-tabs { width: 100%; }
  .ev-ftab { flex: 1; text-align: center; padding: 10px 6px; font-size: 9px; }
  .ev-loc-wrap { width: 100%; }
  .ev-loc-select { width: 100%; }
  .ev-search-wrap { min-width: unset; width: 100%; }
  .ev-cal-col { padding: 24px; }
  .ev-feed-col { padding: 24px 24px 40px; }
}