
/* ===== Tablèra x FIVE — design tokens (edit here to match tablera.ae) ===== */
:root{
  --night:#16132E;      /* page background, deep indigo */
  --dusk:#241F47;       /* panels */
  --dusk-2:#342C63;     /* raised panels */
  --sand:#F1E6D2;       /* text */
  --sand-dim:rgba(241,230,210,.70);
  --line:rgba(241,230,210,.14);
  --brass:#D4AA52;      /* actions */
  --rose:#EDB2C4;       /* headliners */
  --pool:#76D3CA;       /* daytime, guest perks */
  --violet:#9C7BC9;     /* late night */
  --serif:"Bodoni Moda","Bodoni 72",Didot,"Times New Roman",serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --sky:linear-gradient(90deg,#F5D891 0%,#F3CC92 28%,#EDB2C4 44%,#A07DC6 57%,#4C3F8B 74%,#211C45 100%);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--night);color:var(--sand);font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:6px}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0}
.brand{font:500 24px/1 var(--serif);text-decoration:none}
.nav a{font-size:15px;text-decoration:none;color:var(--sand-dim);margin-left:20px;padding-bottom:3px}
.nav a[aria-current=page]{color:var(--sand);border-bottom:1px solid var(--brass)}
h1{font:500 clamp(42px,9.5vw,88px)/.98 var(--serif);letter-spacing:-.015em;margin:26px 0 16px;max-width:11ch}
h2{font:500 clamp(28px,5vw,38px)/1.08 var(--serif);margin:0}
.lede{color:var(--sand-dim);max-width:54ch;margin:0 0 26px;font-size:17px}
.btn{appearance:none;border:0;border-radius:999px;padding:11px 18px;font:600 15px/1 var(--sans);cursor:pointer;background:var(--brass);color:#22190A;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.btn:hover{filter:brightness(1.07)}
.btn.ghost{background:transparent;color:var(--sand);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--sand-dim)}
.btn:disabled{opacity:.3;cursor:default;filter:none}
.btn.sm{padding:9px 14px;font-size:14px}
.chip{appearance:none;border:1px solid var(--line);background:transparent;color:var(--sand);border-radius:999px;padding:8px 14px;font:500 14px/1.2 var(--sans);cursor:pointer;white-space:nowrap}
.chip:hover{border-color:var(--sand-dim)}
.chip[aria-pressed=true]{background:var(--sand);color:var(--night);border-color:var(--sand)}
.link{appearance:none;background:none;border:0;padding:0;color:var(--sand);text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:3px;cursor:pointer;font:inherit}
.badge{display:inline-block;font-size:12px;line-height:1.4;border-radius:999px;padding:2px 9px;margin:8px 6px 0 0;border:1px solid var(--line);color:var(--sand-dim)}
.badge.hl{border-color:var(--rose);color:var(--rose)}
.badge.perk{border-color:var(--pool);color:var(--pool)}
.badge.tbc{border-style:dashed}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}
.seg button{appearance:none;border:0;background:none;border-radius:999px;padding:7px 13px;font:500 14px/1.2 var(--sans);color:var(--sand-dim);cursor:pointer;white-space:nowrap}
.seg button[aria-pressed=true]{background:var(--dusk-2);color:var(--sand)}
#toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:var(--sand);color:var(--night);padding:10px 16px;border-radius:999px;font-weight:600;font-size:14px;opacity:0;pointer-events:none;transition:.2s;z-index:50}
#toast.show{opacity:1;transform:translate(-50%,0)}
.foot{color:var(--sand-dim);font-size:13px;padding:40px 0 60px;border-top:1px solid var(--line);margin-top:48px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---------- events page ---------- */
.ask{display:flex;gap:8px;align-items:center;background:var(--dusk);border:1px solid var(--line);border-radius:999px;padding:6px 6px 6px 20px;max-width:660px}
.ask:focus-within{border-color:var(--brass)}
.ask input{flex:1;min-width:0;background:none;border:0;color:var(--sand);font:400 16px/1.3 var(--sans);outline:none;padding:8px 0}
.ask input::placeholder{color:rgba(241,230,210,.48)}
.quick{display:flex;gap:8px;margin:14px 0 0;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.quick::-webkit-scrollbar{display:none}
.next{margin:24px 0 0;color:var(--sand-dim);font-size:15px;max-width:60ch}
.concierge{margin:28px 0 0;max-width:720px;border-left:2px solid var(--rose);padding:2px 0 2px 18px}
.concierge[hidden]{display:none}
.concierge .who{font:italic 500 19px/1.2 var(--serif);color:var(--rose);margin:0 0 10px;display:flex;align-items:center;gap:10px}
.concierge p{margin:0 0 12px}
.concierge .thinking{font:400 13px var(--sans);color:var(--sand-dim)}
.parsed{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.ptag{display:inline-flex;align-items:center;gap:6px;background:var(--dusk-2);border:0;border-radius:999px;padding:5px 6px 5px 12px;font:500 13px var(--sans);color:var(--sand);cursor:pointer}
.ptag span{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:rgba(241,230,210,.12);font-size:12px}
.picks{list-style:none;margin:0 0 14px;padding:0}
.picks li{padding:10px 0;border-bottom:1px solid var(--line)}
.picks li:last-child{border-bottom:0}
.picks .link{font-weight:600;text-align:left}
.picks .sub{display:block;color:var(--sand-dim);font-size:14px}
.stops{list-style:none;margin:4px 0 16px;padding:0;counter-reset:s}
.stops li{position:relative;padding:0 0 14px 34px}
.stops li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;border:1px solid var(--rose);color:var(--rose);font:500 12px/20px var(--sans);text-align:center}
.stops li::after{content:"";position:absolute;left:11px;top:26px;bottom:2px;width:1px;background:var(--line)}
.stops li:last-child::after{display:none}
.section{margin-top:56px}
.sechead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.rail{scroll-padding-inline:20px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,232px);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 20px 14px;margin:0 -20px;scrollbar-width:thin}
.poster{scroll-snap-align:start;text-align:left;background:none;border:0;padding:0;cursor:pointer}
.poster .art{aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:linear-gradient(165deg,var(--dusk-2) 0%,#3b2a5e 45%,var(--night) 100%);position:relative}
.poster img{width:100%;height:100%;object-fit:cover;display:block}
.poster .typo{position:absolute;inset:0;padding:16px;display:flex;flex-direction:column;justify-content:flex-end}
.poster .typo b{font:500 30px/1 var(--serif);letter-spacing:-.01em}
.poster .typo i{font:italic 400 15px var(--serif);color:var(--rose);margin-bottom:6px}
.poster .when{display:block;font-size:14px;color:var(--rose);margin-top:12px}
.poster .name{display:block;font:500 20px/1.15 var(--serif);margin-top:2px}
.poster .where{display:block;font-size:14px;color:var(--sand-dim)}
.poster .soon{position:absolute;top:10px;left:10px;background:var(--brass);color:#22190A;font:600 12px var(--sans);padding:4px 10px;border-radius:999px}
.controls{position:sticky;top:0;z-index:10;background:rgba(22,19,46,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:12px 0;display:flex;gap:10px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--line)}
.controls .scroll{overflow-x:auto;max-width:100%;scrollbar-width:none}
.controls .scroll::-webkit-scrollbar{display:none}
.result{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 0;color:var(--sand-dim);font-size:15px}
.every{color:var(--sand-dim);font-size:14px;margin:16px 0 0}
.day{padding:28px 0 6px;border-top:1px solid var(--line)}
.days > .day:first-child{border-top:0}
.dayhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dayhead h3{font:500 27px/1.1 var(--serif);margin:0}
.dayhead .rel{font:500 14px var(--sans);color:var(--rose);margin-left:10px}
.ribbon{position:relative;height:8px;border-radius:4px;margin:16px 0 30px;background:var(--sky)}
.ribbon .m{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--night);border:2px solid var(--sand);padding:0;cursor:pointer}
.ribbon .m.hl{width:20px;height:20px;margin:-10px 0 0 -10px;background:var(--brass);border-color:var(--night)}
.ribbon .lbl{position:absolute;top:15px;font-size:11px;color:var(--sand-dim);transform:translateX(-50%);white-space:nowrap}
.ev{display:grid;grid-template-columns:84px 1fr auto;gap:16px;align-items:start;padding:14px 0;border-bottom:1px solid rgba(241,230,210,.07)}
.ev:last-child{border-bottom:0}
.ev .t{font:500 19px/1.15 var(--serif);padding-top:2px}
.ev .ti{display:block;font-weight:600;font-size:17px;line-height:1.3;background:none;border:0;padding:0;text-align:left;cursor:pointer}
.ev .ti:hover{text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:3px}
.ev .ti em{font:italic 400 15px var(--serif);color:var(--rose);margin-left:6px}
.ev .meta{color:var(--sand-dim);font-size:14px}
.ev.headliner .ti{font:500 22px/1.15 var(--serif)}
.more{margin:24px 0 0}
.empty{padding:40px 0;color:var(--sand-dim)}
.month{padding-top:20px}
.mhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.mhead h3{font:500 26px var(--serif);margin:0}
.wk{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;font-size:12px;color:var(--sand-dim);margin-bottom:6px;text-align:center}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cell{min-height:74px;border-radius:12px;background:rgba(241,230,210,.04);border:1px solid transparent;padding:7px;text-align:left;display:flex;flex-direction:column;gap:5px;cursor:pointer}
.cell:hover{border-color:var(--line)}
.cell .n{font:500 16px/1 var(--serif)}
.cell.today .n{color:var(--brass)}
.cell.hasHl{border-color:rgba(212,170,82,.55)}
.cell .hn{font-size:11px;line-height:1.2;color:var(--rose);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cell .dots{display:flex;gap:3px;flex-wrap:wrap;margin-top:auto}
.dot{width:6px;height:6px;border-radius:50%;display:inline-block}
.dot.s-day{background:var(--pool)}.dot.s-evening{background:var(--rose)}.dot.s-late{background:var(--violet)}
.cell:disabled{opacity:.22;cursor:default}
.cell.blank{background:none;cursor:default}
.legend{display:flex;gap:16px;font-size:13px;color:var(--sand-dim);margin-top:12px;flex-wrap:wrap}
.legend .dot{margin-right:6px}
@media (max-width:600px){
  .ev{grid-template-columns:62px 1fr;gap:12px}
  .ev .act{grid-column:2}
  .cell{min-height:52px;padding:6px}
  .cell .hn{display:none}
  .ribbon .lbl.x{display:none}
}
/* drawer */
.scrim{position:fixed;inset:0;background:rgba(8,6,22,.62);opacity:0;pointer-events:none;transition:opacity .2s;z-index:30}
.drawer{position:fixed;left:0;right:0;bottom:0;max-height:90vh;overflow:auto;background:var(--dusk);border-radius:22px 22px 0 0;transform:translateY(105%);transition:transform .3s cubic-bezier(.2,.8,.2,1);padding:18px 20px calc(28px + env(safe-area-inset-bottom));z-index:31;overscroll-behavior:contain}
body.drawer-open .scrim{opacity:1;pointer-events:auto}
body.drawer-open .drawer{transform:none}
body.drawer-open{overflow:hidden}
.drawer:focus{outline:none}
.drawer .x{float:right;appearance:none;border:1px solid var(--line);background:none;border-radius:999px;padding:7px 13px;cursor:pointer;font-size:14px}
.drawer .flyer{width:100%;max-width:320px;border-radius:14px;display:block;margin:6px 0 16px}
.drawer .series{font:italic 400 17px var(--serif);color:var(--rose);margin:4px 0 2px}
.drawer h2{font-size:clamp(32px,7vw,42px);margin:0 0 4px}
.drawer .subt{font:italic 400 18px var(--serif);color:var(--sand-dim);margin:0 0 14px}
.drawer dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:14px 0;font-size:15px}
.drawer dt{color:var(--sand-dim)}
.drawer dd{margin:0}
.drawer .note{font-size:14px;padding:10px 14px;border-radius:12px;background:rgba(118,211,202,.1);color:var(--pool);margin:12px 0}
.drawer .note.tbc{background:rgba(241,230,210,.06);color:var(--sand-dim)}
.drawer .acts{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 8px}
.drawer h4{font:500 20px var(--serif);margin:26px 0 6px}
.drawer .same{list-style:none;padding:0;margin:0}
.drawer .same li{padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.drawer .same .sub{display:block;color:var(--sand-dim);font-size:13px}
@media (min-width:900px){
  .drawer{left:auto;top:0;width:460px;max-height:none;border-radius:0;transform:translateX(105%);padding:22px 28px 40px}
}

/* The calendar has its own visual scope; shared venue styles stay independent. */
body.events-page {
  --night: #fbfaf7;
  --dusk: #f4f1e9;
  --dusk-2: #ece9df;
  --sand: #253b31;
  --sand-dim: #69726b;
  --line: #e1e3da;
  --brass: #a47e40;
  --rose: #956b42;
  --pool: #417966;
  --violet: #7d7367;
  --serif: "GFS Didot", Georgia, serif;
  --sans: Manrope, system-ui, sans-serif;
  background: var(--night);
  color: var(--sand);
}

.events-page .wrap { max-width: 1220px; padding-inline: 32px; }
.events-page .topbar { margin-bottom: 48px; border-color: var(--line); }
.events-page .hero { max-width: 940px; }
.events-page h1 { max-width: 15ch; font-size: clamp(44px, 6vw, 76px); line-height: 1.06; margin: 0 0 20px; }
.events-page h2 { font-size: clamp(30px, 3.6vw, 40px); line-height: 1.15; }
.events-page .lede { max-width: 66ch; font-size: 16px; line-height: 1.85; margin-bottom: 28px; }
.events-page .btn { min-height: 42px; border: 1px solid var(--sand); border-radius: 6px; background: var(--sand); color: #fff; padding: 12px 18px; font-size: 13px; font-weight: 600; transition: background 180ms, border-color 180ms, color 180ms; }
.events-page .btn:hover { background: #3b5546; border-color: #3b5546; filter: none; }
.events-page .btn.ghost { border-color: var(--line); background: #fff; color: var(--sand); }
.events-page .btn.ghost:hover { border-color: var(--brass); background: #f8f5ee; }
.events-page .btn.sm { min-height: 38px; padding: 10px 14px; font-size: 12px; }
.events-page .btn:disabled { opacity: .38; }
.events-page .link { color: var(--sand); text-decoration-color: var(--brass); text-underline-offset: 4px; }
.events-page .ask { max-width: 760px; padding: 7px 7px 7px 20px; border-radius: 9px; background: #fff; border: 1px solid var(--line); box-shadow: 0 4px 18px #253b3104; }
.events-page .ask:focus-within { border-color: var(--brass); box-shadow: 0 0 0 3px #a47e4010; }
.events-page .ask input { padding-block: 12px; color: var(--sand); font-size: 14px; }
.events-page .ask input::placeholder { color: #868c82; }
.events-page .quick { gap: 7px; margin-top: 14px; padding-block: 2px 6px; }
.events-page .chip { border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--sand-dim); padding: 9px 12px; font-size: 12px; line-height: 1.4; }
.events-page .chip:hover { border-color: var(--brass); color: var(--sand); }
.events-page .chip[aria-pressed=true] { background: var(--sand); color: #fff; border-color: var(--sand); }
.events-page .next { max-width: 72ch; min-height: 3.6em; margin-top: 18px; font-size: 13px; line-height: 1.8; }
.events-page .next .link { font-weight: 600; }
.events-page .section { margin-top: 56px; }
.events-page .heading-block { min-width: 0; }
.events-page .eyebrow { margin: 0 0 10px; color: var(--brass); font: 600 10px/1.5 var(--sans); letter-spacing: .15em; text-transform: uppercase; }
.events-page .section-intro { max-width: 56ch; margin: 10px 0 0; color: var(--sand-dim); font-size: 13px; line-height: 1.8; }
.events-page .sechead { align-items: center; gap: 18px; margin-bottom: 22px; }
.events-page .sechead > .meta { max-width: 48ch; font-size: 12px !important; line-height: 1.6; }

/* Scroll remains available to touch, keyboard, and the carousel controls. */
.events-page .rail-shell { position: relative; min-width: 0; }
.events-page .rail { grid-auto-columns: 260px; gap: 18px; margin: 0; padding: 3px 1px 14px; scroll-padding-inline: 1px; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; overscroll-behavior-inline: contain; }
.events-page .rail::-webkit-scrollbar { display: none; }
.events-page .poster { display: flex; flex-direction: column; width: 260px; min-width: 0; height: 100%; padding: 12px 12px 18px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--sand); text-decoration: none; transition: border-color 180ms, box-shadow 180ms; }
.events-page .poster:hover { border-color: #bca782; box-shadow: 0 7px 20px #253b3108; }
.events-page .poster .art { width: 100%; flex-shrink: 0; aspect-ratio: 4 / 5; border-radius: 6px; background: linear-gradient(145deg, #415647, #1e332b); }
.events-page .poster img { object-fit: contain; }
.events-page .poster .typo { padding: 22px; color: #fff; }
.events-page .poster .typo b { font-size: 32px; line-height: 1.1; }
.events-page .poster .typo i { color: #e4c79a; font-size: 14px; margin-bottom: 10px; }
.events-page .poster .soon { top: 12px; left: 12px; border-radius: 4px; padding: 5px 9px; background: #fff; color: var(--sand); font-size: 10px; font-weight: 700; letter-spacing: .04em; box-shadow: 0 2px 8px #0002; }
.events-page .poster .when { margin: 16px 2px 5px; color: var(--brass); font-size: 11px; font-weight: 600; line-height: 1.5; }
.events-page .poster .name { margin: 0 2px; font-size: 26px; line-height: 1.2; }
.events-page .poster .where { margin: 7px 2px 0; font-size: 12px; line-height: 1.6; }
.events-page .rail-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.events-page .rail-btn, .events-page .rail-pause { appearance: none; display: inline-flex; justify-content: center; align-items: center; min-height: 40px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--sand); cursor: pointer; transition: background 180ms, border-color 180ms; }
.events-page .rail-btn { width: 40px; padding: 0; font-size: 19px; line-height: 1; }
.events-page .rail-btn svg { width: 18px; height: 18px; }
.events-page .rail-pause { padding: 0 13px; font: 600 12px var(--sans); }
.events-page .rail-btn:hover, .events-page .rail-pause:hover { border-color: var(--brass); background: #f8f5ee; }
.events-page .rail-btn:disabled { opacity: .35; cursor: default; }
.events-page .rail-pause[aria-pressed=true] { border-color: #bca782; background: #f4eee3; }
.events-page .rail-status { margin-inline: 2px 8px; color: var(--sand-dim); font-size: 11px; line-height: 1.5; }

/* View and hotel controls stay distinct from the dates beneath them. */
.events-page .calendar-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 20px; }
.events-page .calendar-intro { max-width: 52ch; margin: 10px 0 0; color: var(--sand-dim); font-size: 14px; line-height: 1.75; }
.events-page .calendar-toolbar { position: sticky; top: 12px; z-index: 10; margin-bottom: 22px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 6px 22px #253b3105; }
.events-page .controls { position: static; display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 18px 24px; border: 0; padding: 0; background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; }
.events-page .controls.calendar-toolbar { position: sticky; top: 12px; z-index: 10; padding: 18px 20px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 6px 22px #253b3105; }
.events-page .controls-group { display: flex; flex-direction: column; gap: 8px; min-width: 0; max-width: 100%; }
.events-page .controls-label { color: var(--sand-dim); font: 600 10px/1.4 var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.events-page .hotel-controls { flex: 0 1 220px; }
.events-page .venue-controls { flex: 1 1 280px; max-width: 400px; }
.events-page .calendar-select { appearance: auto; width: 100%; min-width: 0; max-width: 100%; min-height: 42px; padding: 10px 12px; border: 1px solid #dce1d5; border-radius: 6px; background: #fff; color: var(--sand); font: 500 13px/1.5 var(--sans); text-overflow: ellipsis; cursor: pointer; }
.events-page .calendar-select:hover { border-color: #b7c0ae; }
.events-page .calendar-select:focus-visible { border-color: var(--brass); outline: 2px solid #a47e4033; outline-offset: 2px; }
.events-page .filter-reset { display: inline-flex; align-items: center; flex: 0 0 auto; align-self: flex-end; min-height: 42px; padding: 8px 0; color: var(--brass); font: 600 12px/1.5 var(--sans); white-space: nowrap; }
.events-page .filter-reset:hover { color: var(--sand); }
.events-page .calendar-filter-summary { flex: 0 0 100%; margin: 0; padding-top: 12px; border-top: 1px solid #ebede6; color: var(--sand-dim); font: 400 12px/1.7 var(--sans); }
.events-page .calendar-filter-summary:empty { display: none; }
.events-page .controls .scroll { min-width: 0; max-width: 100%; padding: 1px 0; }
.events-page .seg { padding: 4px; gap: 3px; border: 1px solid #e5e6de; border-radius: 7px; background: #f5f5f0; }
.events-page .seg button { min-height: 36px; padding: 8px 13px; border-radius: 4px; color: var(--sand-dim); font-size: 12px; font-weight: 600; line-height: 1.4; }
.events-page .seg button:hover { color: var(--sand); background: #eaece4; }
.events-page .seg button[aria-pressed=true] { color: #fff; background: var(--sand); box-shadow: 0 1px 4px #253b3114; }
.events-page #cal { scroll-margin-top: 120px; }
.events-page .result { margin: 18px 0; color: var(--sand-dim); font-size: 13px; }
.events-page .result .link { font-size: 12px; }
.events-page .every { margin: 18px 0; padding: 14px 18px; border: 1px solid var(--line); border-radius: 8px; background: #f4f2eb; color: var(--sand-dim); font-size: 12px; line-height: 1.9; }
.events-page .days { display: grid; gap: 18px; margin-top: 20px; }
.events-page .day, .events-page .days > .day:first-child { border: 1px solid var(--line); border-radius: 10px; padding: 0; background: #fff; overflow: hidden; }
.events-page .dayhead { display: flex; align-items: center; justify-content: flex-start; gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--line); background: #f5f3ed; }
.events-page .day-date { display: flex; flex: 0 0 58px; flex-direction: column; align-items: center; justify-content: center; min-height: 64px; gap: 3px; border: 1px solid #dedfd5; border-radius: 7px; background: #fff; text-align: center; }
.events-page .date-day { color: var(--sand); font: 500 29px/1 var(--serif); font-variant-numeric: tabular-nums; }
.events-page .date-month { color: var(--brass); font: 700 10px/1.3 var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.events-page .day-heading { flex: 1; min-width: 0; }
.events-page .dayhead h3 { font: 500 26px/1.2 var(--serif); margin: 0; }
.events-page .date-caption { display: block; margin-top: 5px; color: var(--sand-dim); font: 400 12px/1.5 var(--sans); }
.events-page .day-caption { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 8px; color: var(--sand-dim); font: 400 12px/1.5 var(--sans); }
.events-page .day-caption .rel { margin-left: 0; }
.events-page .day-caption .day-count { margin-inline-start: 0; }
.events-page .dayhead .rel { display: inline-block; margin-left: 8px; padding: 4px 7px; border-radius: 4px; background: #e9eee7; color: #3e624d; font: 600 10px/1.4 var(--sans); vertical-align: middle; }
.events-page .day-count { padding: 5px 9px; border: 1px solid #dedfd5; border-radius: 5px; color: var(--sand-dim); background: #fff; font: 500 11px/1.5 var(--sans); white-space: nowrap; }
.events-page .dayhead > .link { margin-inline-start: auto; color: var(--brass); font: 600 12px/1.5 var(--sans); white-space: nowrap; }
.events-page .ribbon { display: none; }
.events-page .ev { display: grid; grid-template-columns: 80px minmax(0, 1fr) auto; align-items: start; gap: 22px; margin-inline: 24px; padding: 24px 0; border-bottom: 1px solid #eceee7; }
.events-page .ev:last-child { border-bottom: 0; }
.events-page .ev .t { color: var(--sand-dim); padding-top: 4px; font: 600 12px/1.6 var(--sans); font-variant-numeric: tabular-nums; }
.events-page .ev .time-tbc { font-size: 12px; font-weight: 500; }
.events-page .ev-body { min-width: 0; }
.events-page .ev .ti { display: block; color: var(--sand); font: 600 15px/1.55 var(--sans); text-decoration: none; overflow-wrap: anywhere; }
.events-page .ev.headliner .ti { font: 500 25px/1.2 var(--serif); }
.events-page .ev .ti:hover { color: #8d6937; text-decoration: underline; text-decoration-color: #b99a67; text-underline-offset: 4px; }
.events-page .ev .ti em { color: var(--brass); font: 400 12px/1.6 var(--sans); margin-left: 8px; }
.events-page .ev .meta { margin-top: 5px; color: var(--sand-dim); font-size: 12px; line-height: 1.8; }
.events-page .ev .badge { margin: 9px 5px 0 0; padding: 3px 7px; border-radius: 4px; border: 1px solid #e4e6de; background: #f6f7f2; color: #778073; font-size: 11px; line-height: 1.5; }
.events-page .ev .badge.hl { border-color: #decba7; background: #f8f2e6; color: #96703a; }
.events-page .ev .badge.perk { border-color: #d6e1d3; background: #edf3e9; color: #4b7056; }
.events-page .ev .badge.tbc { border-style: dashed; background: #fff; }
.events-page .event-actions, .events-page .ev .act { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; padding-top: 2px; }
.events-page .more { display: flex; justify-content: center; margin-top: 28px; }
.events-page .empty { border: 1px dashed #d4d9cc; border-radius: 10px; padding: 36px 24px; background: #fff; color: var(--sand-dim); }
.events-page .empty p { margin: 0 0 18px; }
.events-page .empty .btn { max-width: 100%; margin: 4px 8px 4px 0; white-space: normal; text-align: center; line-height: 1.5; }

/* Month cells use the same clear borders and restrained headline accent. */
.events-page .month { padding: 24px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.events-page .mhead { gap: 14px; margin-bottom: 25px; }
.events-page .mhead h3 { text-align: center; color: var(--sand); font: 500 30px/1.2 var(--serif); }
.events-page .wk { gap: 8px; margin-bottom: 10px; color: var(--sand-dim); font-size: 10px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.events-page .grid { gap: 8px; }
.events-page .cell { min-width: 0; min-height: 106px; padding: 11px; gap: 8px; border: 1px solid #e8eae2; border-radius: 7px; background: #fafbf7; color: var(--sand); transition: border-color 160ms, background 160ms; }
.events-page .cell:hover:not(:disabled) { border-color: var(--brass); background: #f5f0e5; }
.events-page .cell .n { font: 600 13px/1 var(--sans); font-variant-numeric: tabular-nums; }
.events-page .cell.today { background: #eef2e9; border-color: #89a085; }
.events-page .cell.today .n { color: #3e684c; }
.events-page .cell.hasHl { border-color: #c2a06a; background: #fcf8ef; }
.events-page .cell .hn { color: #927044; font: 600 10px/1.5 var(--sans); -webkit-line-clamp: 2; overflow-wrap: anywhere; }
.events-page .cell .event-count { color: #78816f; font: 500 10px/1.3 var(--sans); font-variant-numeric: tabular-nums; }
.events-page .cell .count-word { color: #949b8e; font-weight: 400; }
.events-page .cell .dots { gap: 4px; }
.events-page .dot { width: 5px; height: 5px; }
.events-page .dot.s-day { background: #829b78; }
.events-page .dot.s-evening { background: #b4905b; }
.events-page .dot.s-late { background: #344f43; }
.events-page .cell:disabled { opacity: .45; background: #f7f8f4; }
.events-page .cell.blank { border-color: transparent; background: transparent; }
.events-page .legend { gap: 12px 22px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 11px; line-height: 1.7; }

.events-page .concierge { max-width: 860px; margin-top: 26px; padding: 24px; border: 1px solid var(--line); border-left: 3px solid var(--brass); border-radius: 8px; background: #fff; }
.events-page .concierge .who { color: var(--sand); font: 500 24px/1.25 var(--serif); }
.events-page .concierge p { color: var(--sand-dim); font-size: 13px; line-height: 1.8; }
.events-page .ptag { border: 1px solid #e1e4d9; border-radius: 5px; background: #f3f5ed; color: var(--sand); font-size: 11px; }
.events-page .ptag span { background: #e1e6da; color: var(--sand); }
.events-page .picks li { padding: 12px 0; border-color: #e8eae2; }
.events-page .picks .link { font-size: 14px; }
.events-page .picks .sub { margin-top: 4px; font-size: 12px; line-height: 1.8; }
.events-page .stops li::before { border-color: var(--brass); color: var(--brass); }
.events-page .foot { padding-block: 26px 44px; margin-top: 48px; color: #838a80; font-size: 11px; line-height: 1.9; }
.events-page :focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; }

@media (max-width: 900px) {
  .events-page .wrap { padding-inline: 24px; }
  .events-page .ev { grid-template-columns: 66px minmax(0, 1fr); gap: 12px 18px; }
  .events-page .event-actions, .events-page .ev .act { grid-column: 2; justify-content: flex-start; padding-top: 0; }
  .events-page .dayhead { flex-wrap: wrap; }
  .events-page .day-count { margin-inline-start: auto; }
}

@media (min-width: 641px) and (max-width: 900px) {
  .events-page .controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .events-page .controls-group { max-width: none; }
  .events-page .filter-reset { justify-self: end; }
  .events-page .calendar-filter-summary { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .events-page .wrap { padding-inline: 18px; }
  .events-page .topbar { margin-bottom: 36px; }
  .events-page .hero h1 { font-size: clamp(42px, 11vw, 58px); }
  .events-page .lede { font-size: 14px; line-height: 1.85; }
  .events-page .ask { padding-left: 14px; }
  .events-page .ask input { font-size: 14px; padding-block: 10px; }
  .events-page .ask .btn { min-height: 42px; padding-inline: 15px; }
  .events-page .section { margin-top: 44px; }
  .events-page .sechead { align-items: flex-start; gap: 12px; margin-bottom: 18px; }
  .events-page .sechead > .meta { flex-basis: 100%; }
  .events-page .rail-controls { width: 100%; justify-content: flex-start; }
  .events-page .rail-status { margin-inline-start: auto; order: 5; }
  .events-page .rail { grid-auto-columns: 250px; gap: 12px; }
  .events-page .poster { width: 250px; padding: 10px 10px 16px; }
  .events-page .poster .name { font-size: 24px; }
  .events-page .calendar-heading { display: block; }
  .events-page .calendar-intro { font-size: 13px; }
  .events-page .calendar-toolbar { top: 8px; padding: 14px; border-radius: 8px; }
  .events-page .controls.calendar-toolbar { top: 8px; padding: 14px; border-radius: 8px; }
  .events-page .controls { display: grid; grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .events-page .controls-group { width: 100%; }
  .events-page .venue-controls { max-width: none; }
  .events-page .calendar-select { min-height: 44px; font-size: 14px; }
  .events-page .filter-reset { justify-self: start; min-height: 34px; padding-block: 4px; }
  .events-page .calendar-filter-summary { font-size: 12px; }
  .events-page .seg { width: max-content; max-width: none; }
  .events-page .seg button { min-height: 34px; padding-inline: 11px; font-size: 11px; }
  .events-page #cal { scroll-margin-top: 170px; }
  .events-page .every { font-size: 11px; padding: 12px 14px; }
  .events-page .days { gap: 14px; }
  .events-page .dayhead { padding: 16px; gap: 12px; }
  .events-page .day-date { flex-basis: 48px; min-height: 56px; }
  .events-page .date-day { font-size: 25px; }
  .events-page .date-month { font-size: 9px; }
  .events-page .dayhead h3 { font-size: 23px; }
  .events-page .date-caption { font-size: 11px; }
  .events-page .day-count { font-size: 11px; padding: 4px 6px; }
  .events-page .dayhead > .link { flex-basis: 100%; text-align: right; font-size: 11px; }
  .events-page .ev { grid-template-columns: 54px minmax(0, 1fr); gap: 10px 12px; margin-inline: 16px; padding-block: 20px; }
  .events-page .ev .t { font-size: 12px; padding-top: 3px; }
  .events-page .ev .ti { font-size: 14px; }
  .events-page .ev.headliner .ti { font-size: 23px; }
  .events-page .ev .ti em { display: block; margin: 5px 0 0; font-size: 11px; }
  .events-page .ev .meta { font-size: 12px; }
  .events-page .ev .badge { font-size: 11px; margin-top: 7px; }
  .events-page .event-actions, .events-page .ev .act { gap: 6px; }
  .events-page .event-actions .btn, .events-page .ev .act .btn { min-height: 36px; padding: 9px 11px; font-size: 12px; }
  .events-page .month { padding: 14px 10px; }
  .events-page .mhead { gap: 8px; margin-bottom: 20px; }
  .events-page .mhead h3 { font-size: 23px; }
  .events-page .mhead .btn { padding-inline: 9px; min-height: 34px; font-size: 10px; }
  .events-page .wk, .events-page .grid { gap: 4px; }
  .events-page .wk { font-size: 9px; letter-spacing: 0; }
  .events-page .cell { min-height: 72px; padding: 8px 5px; gap: 7px; border-radius: 5px; }
  .events-page .cell .n { font-size: 11px; }
  .events-page .cell .hn { display: none; }
  .events-page .cell .event-count { font-size: 10px; }
  .events-page .cell .count-word { display: none; }
  .events-page .cell .dots { gap: 3px; }
  .events-page .legend { gap: 8px 14px; font-size: 10px; }
  .events-page .concierge { padding: 20px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .events-page .rail { scroll-behavior: auto; }
  .events-page .poster, .events-page .btn, .events-page .cell { transition: none; }
}

/* Real event artwork or a clearly identified photograph accompanies every listing. */
.events-page .poster-media { position: relative; }
.events-page .poster .art { display: block; overflow: hidden; background: #edf0e8; }
.events-page .poster .art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.events-page .poster .art.is-poster img { object-fit: contain; }
.events-page .poster-media-caption { display: block; margin-top: 8px; color: #71806f; font: 400 11px/1.6 var(--sans); }
.events-page .poster .when { margin-top: 12px; }
.events-page .poster-summary { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 10px 2px 0; color: var(--sand-dim); font: 400 12px/1.7 var(--sans); }
.events-page .ev { grid-template-columns: 116px minmax(0, 1fr) auto; gap: 20px; padding-block: 20px; }
.events-page .ev-media { min-width: 0; margin: 0; }
.events-page .ev-thumb { display: block; width: 116px; aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid #e7e9df; border-radius: 5px; background: #f0f2eb; }
.events-page .ev-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.events-page .ev-thumb.is-poster img { object-fit: contain; }
.events-page .ev-media figcaption { margin-top: 6px; color: #7b8576; font: 400 11px/1.5 var(--sans); overflow-wrap: anywhere; }
.events-page .ev-when { margin-bottom: 5px; }
.events-page .ev .t { display: inline; padding: 0; color: var(--brass); font: 500 12px/1.6 var(--sans); }
.events-page .ev .meta a { color: inherit; text-decoration: none; }
.events-page .ev .meta a:hover { color: var(--sand); text-decoration: underline; text-underline-offset: 3px; }
.events-page .ev-summary { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 7px 0 0; color: var(--sand-dim); font: 400 12px/1.75 var(--sans); }
.events-page .ev-badges:empty { display: none; }
.events-page .ev .act { padding-top: 0; }

/* Native disclosure retains a complete, crawlable directory without doubling the calendar. */
.events-page .event-directory { border-top: 1px solid var(--line); padding-top: 36px; }
.events-page .event-directory-disclosure { margin-top: 24px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.events-page .event-directory-disclosure > summary { display: flex; align-items: center; gap: 12px; min-height: 62px; padding: 18px 22px; list-style: none; cursor: pointer; color: var(--sand); font: 600 13px/1.7 var(--sans); }
.events-page .event-directory-disclosure > summary::-webkit-details-marker { display: none; }
.events-page .event-directory-total { min-width: 27px; padding: 2px 7px; border-radius: 20px; background: #edf1e8; color: #536b50; font-size: 11px; text-align: center; }
.events-page .event-directory-total:empty { display: none; }
.events-page .disclosure-icon { margin-inline-start: auto; color: var(--brass); font-size: 24px; font-weight: 400; line-height: 1; }
.events-page .event-directory-disclosure[open] > summary { border-bottom: 1px solid var(--line); }
.events-page .event-directory-disclosure[open] .disclosure-icon { transform: rotate(45deg); }
.events-page .event-directory-note { margin: 18px 22px 0; color: var(--sand-dim); font: 400 12px/1.8 var(--sans); }
.events-page .event-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding: 24px 22px; }
.events-page .event-directory-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid #e4e7dd; border-radius: 7px; background: #fff; }
.events-page .event-directory-media { margin: 0; }
.events-page .event-directory-media > a { display: block; aspect-ratio: 1.6; background: #edf0e8; overflow: hidden; }
.events-page .event-directory-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.events-page .event-directory-media.is-poster img { object-fit: contain; }
.events-page .event-directory-media figcaption { margin: 9px 16px 0; color: #7c8575; font: 400 11px/1.6 var(--sans); }
.events-page .event-directory-body { display: flex; flex-direction: column; flex: 1; padding: 15px 16px 20px; }
.events-page .event-directory-type { margin: 0 0 8px; color: var(--brass); font: 600 10px/1.5 var(--sans); text-transform: uppercase; letter-spacing: .07em; }
.events-page .event-directory-card h3 { margin: 0 0 10px; font: 400 25px/1.25 var(--serif); }
.events-page .event-directory-card h3 a { color: var(--sand); text-decoration: none; }
.events-page .event-directory-card h3 a:hover { color: var(--brass); }
.events-page .event-directory-summary { margin: 0 0 12px; color: var(--sand-dim); font: 400 12px/1.8 var(--sans); }
.events-page .event-directory-location, .events-page .event-directory-schedule { margin: 0 0 6px; color: #64745f; font: 500 11px/1.7 var(--sans); }
.events-page .event-directory-link { margin-top: auto; padding-top: 15px; color: var(--sand); font: 600 12px/1.6 var(--sans); text-underline-offset: 4px; }

@media (max-width: 900px) {
  .events-page .ev { grid-template-columns: 104px minmax(0, 1fr); gap: 12px 18px; }
  .events-page .ev-thumb { width: 104px; }
  .events-page .ev-media { grid-row: 1 / span 2; }
  .events-page .ev .act { grid-column: 2; }
  .events-page .event-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 640px) {
  .events-page .ev { grid-template-columns: 76px minmax(0, 1fr); gap: 10px 12px; padding-block: 18px; }
  .events-page .ev-thumb { width: 76px; aspect-ratio: 1; }
  .events-page .ev-media figcaption { font-size: 11px; line-height: 1.5; }
  .events-page .ev .ti { font-size: 14px; }
  .events-page .ev.headliner .ti { font-size: 22px; }
  .events-page .ev-summary { font-size: 12px; line-height: 1.7; }
  .events-page .event-directory-disclosure > summary { min-height: 58px; padding: 16px; font-size: 12px; }
  .events-page .event-directory-note { margin-inline: 16px; }
  .events-page .event-directory-grid { grid-template-columns: minmax(0, 1fr); padding: 20px 16px; gap: 20px; }
  .events-page .event-directory-card h3 { font-size: 25px; }
  .events-page .event-directory-location, .events-page .event-directory-schedule { font-size: 12px; }
}
.ev-ticket, .poster-ticket, .event-directory-ticket { display: block; margin: 8px 0 0; font-size: 13px; font-weight: 600; color: #173e31; overflow-wrap: anywhere; }
