/* Calendar v2: Fable 5.2's approved week-ribbon mockup with Ron's 11-09 notes, on the shared site shell. Neutral between Spotlight Ballroom and Midtown Stomp. */
body.cw{--paper:#fbf5ea;--card:#fffdf8;--cream:#f4ead8;--ink:#2b2526;--muted:#4a4243;--faint:#a79c9d;--line:#e2d2b3;--soft:#eee3cf;--edge:#cdb68e;--sb:#7f1623;--mts:#a00826;--gold:#e7bd65;--gold-deep:#a8741a;--deep:#500b19;--char:#404041;--night:#1d1214;--rib:66px;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.5}
body.cw #main{max-width:none;padding:0}
.cw-wrap{max-width:1304px;margin:auto;padding:0 16px;container:calendar / inline-size}
.cw-wrap a{color:inherit;-webkit-tap-highlight-color:transparent}
.cw-wrap button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cw-wrap h1,.cw-wrap h2,.cw-wrap h3,.cw-wrap p{margin:0}
.cw-wrap [hidden]{display:none!important}
.cw-wrap .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.cw-wrap :focus{outline:none}
.cw-wrap :focus-visible{outline:3px solid var(--gold-deep);outline-offset:2px;border-radius:4px}
/* Intro and Up next */
.cw-intro{padding:10px 0;display:grid;gap:8px}
.cw-intro h1{font:500 30px/1.05 var(--serif,'Playfair Display',Georgia,serif);letter-spacing:-.015em;color:var(--ink)}
.cw-intro>div>p{display:none;color:var(--muted);margin-top:6px}
.cw-up-next{display:grid;gap:6px;border-left:3px solid var(--gold);padding:1px 0 1px 12px;min-width:0}
.cw-next-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center;column-gap:10px;min-height:44px;text-decoration:none;line-height:1.3}
.cw-next-label{font-size:10.5px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--deep);display:flex;align-items:center;gap:6px;font-size:max(13px,10.5px)}
.cw-next-in{font-size:11.5px;color:var(--muted);font-weight:500;text-align:right;white-space:nowrap}
.cw-next-text{grid-column:1/-1;font-size:14.5px;min-width:0}
.cw-next-text strong{font-weight:700}
.cw-next-when{color:var(--muted)}
.cw-live-dot{width:7px;height:7px;border-radius:50%;background:var(--gold-deep)}
@media (prefers-reduced-motion:no-preference){.cw-live-dot{animation:cw-pulse 2.4s ease-out infinite}}
@keyframes cw-pulse{0%{box-shadow:0 0 0 0 #e7bd65cc}70%,100%{box-shadow:0 0 0 7px #e7bd6500}}
@media (hover:hover){.cw-next-line:hover strong{text-decoration:underline;text-underline-offset:3px}}
/* Filters: every choice visible on every screen */
.cw-controls{display:grid;gap:6px;padding:9px 0 3px;border-top:1px solid var(--line)}
.cw-filter-group{display:flex;align-items:center;gap:8px;min-width:0}
.cw-control-label{flex:none;font-size:10.5px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--muted);font-size:max(13px,10.5px)}
.cw-show-group .cw-control-label{display:none}
.cw-segments{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0}
/* Selection stays filled; hover stays outlined, including under the pointer. */
.cw-segments .bx.bx[aria-pressed]{background-image:none;background-color:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px currentColor;transition:transform .2s,box-shadow .2s}
.cw-segments .bx.bx[aria-pressed="true"]{background-color:var(--char);color:var(--card)}
.cw-segments .bx.bx[aria-pressed="true"]::before{content:"";width:8px;height:5px;border:solid currentColor;border-width:0 0 2px 2px;transform:rotate(-45deg);margin-right:8px;flex:none}
.cw-segments .bx.bx:focus-visible{outline:3px solid var(--deep);outline-offset:3px}
@media (hover:hover){.cw-segments .bx.bx:hover{box-shadow:inset 0 0 0 2.5px currentColor;transform:translateY(-2px)}}
@media (max-width:699px){.cw-filter-group .cw-control-label{display:none}.cw-segments .bx.bx.sm{padding:9px 10px;font-size:14px}}
/* Week pager in words */
.cw-pager{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:44px}
.cw-pager a,.cw-pager .cw-disabled,.cw-week-label{background:none;border:0;min-height:44px;display:inline-flex;align-items:center;padding:0 4px;font-size:14px;font-weight:600;color:var(--deep);white-space:nowrap}
.cw-pager :is(.cw-step,.cw-today){padding:9px 13px;border-radius:999px;text-decoration:none}
.cw-pager .cw-step.cw-disabled{color:var(--faint);text-decoration:none}
.cw-prev{order:1}.cw-week-label{order:2}.cw-next{order:3}.cw-pager .cw-today{order:4}
.cw-wd,.cw-long{display:none}
.cw-week-label{gap:7px;color:var(--ink);text-align:left;padding:0 8px}
.cw-week-label b{display:block;font-size:14.5px;line-height:1.15;font-weight:700}
.cw-week-label small{display:block;font-size:12.5px;line-height:1.2;color:var(--muted);font-weight:500}
.cw-week-label::after{content:"";flex:none;width:6px;height:6px;border:solid var(--deep);border-width:0 2px 2px 0;transform:rotate(45deg);margin:-4px 2px 0}

.cw-pager .cw-today.cw-here{display:none}
/* The week ribbon: seven days, always in view */
.cw-ribbon-wrap{position:sticky;top:var(--shell-h,0px);z-index:20;margin:0 -16px;padding:6px 12px 7px;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);transition:box-shadow .2s}
.cw-ribbon-wrap.cw-stuck{box-shadow:0 14px 22px -20px #500b1999}
.cw-ribbon{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cw-tile{display:grid;justify-items:center;align-content:start;gap:1px;min-width:0;text-align:center;line-height:1.1}
.cw-tile{position:relative;min-height:52px;padding:4px 0 3px;border:1px solid transparent;border-radius:9px;text-decoration:none;transition:background .18s,color .18s,border-color .18s}
.cw-dow{font-size:10px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--muted);font-size:max(13px,10px)}
.cw-num{font-size:17px;font-weight:700;line-height:1.1}
.cw-what{font-size:13px;font-weight:600;letter-spacing:-.01em;color:var(--muted);white-space:normal;max-width:100%;line-height:1.3;overflow-wrap:normal}
.cw-what-dance{background:var(--gold);color:var(--deep);border-radius:9px;padding:0 2px;font-weight:700}
.cw-x,.cw-sum{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
a.cw-tile{background:var(--card);border-color:var(--line)}
.cw-tile.cw-is-today .cw-num{box-shadow:0 2px 0 var(--gold-deep)}
span.cw-tile .cw-num,span.cw-tile .cw-dow,span.cw-tile .cw-what{color:var(--faint)}
.cw-tile.cw-here{background:var(--ink);border-color:var(--ink)}
.cw-tile.cw-here .cw-dow,.cw-tile.cw-here .cw-num{color:#fff}
.cw-tile.cw-here .cw-what:not(.cw-what-dance){color:#e9dfd0}
/* Seven days stay on one compact phone row; the full labels remain available to readers. */
.cw-compact{display:none}
/* "Social" (a Ballroom dance day, Ron 11-11) fits inside the 320 px tile. */
@media (max-width:359px){.cw-what-dance .cw-compact{letter-spacing:-.03em}}
@media (max-width:699px){.cw-ribbon{gap:3px}.cw-what{white-space:nowrap}.cw-what-dance{padding:0 1px}.cw-compact{display:inline}.cw-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}
@media (hover:hover){a.cw-tile:not(.cw-here):hover{border-color:var(--ink)}}
/* Layout */
.cw-layout{display:block;padding-bottom:28px}
.cw-month-rail{display:none}
.cw-list{min-width:0;scroll-margin-top:calc(var(--shell-h,0px) + var(--rib) + 8px)}
.cw-start-note{margin:12px 0 0;padding:9px 12px;border-left:3px solid var(--gold);background:var(--cream);font-size:14px;border-radius:0 6px 6px 0}
/* Day heading: the date, then what kind of dancing and the drop-in price, said once */
.cw-day{scroll-margin-top:calc(var(--shell-h,0px) + var(--rib) + 4px)}
.cw-day>h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:16px 0 7px;border-bottom:2px solid var(--ink);font:500 21px/1.2 var(--serif,'Playfair Display',Georgia,serif);letter-spacing:-.005em;color:var(--ink)}
.cw-today-pill{font:700 10.5px/1 var(--sans,'DM Sans',system-ui,sans-serif);letter-spacing:0;text-transform:none;background:var(--ink);color:#fff;border-radius:4px;padding:4px 7px;position:relative;top:-3px;font-size:max(13px,10.5px)}
.cw-day-tag{display:inline-flex;align-items:baseline;gap:5px;font:600 12.5px/1.3 var(--sans,'DM Sans',system-ui,sans-serif);letter-spacing:0;color:var(--muted)}
.cw-mark{display:inline-block;flex:none;width:7px;height:7px;background:var(--mts);border-radius:50%;position:relative;top:-1px}
.cw-mark.spotlight{background:var(--sb);border-radius:0;transform:rotate(45deg) scale(.86)}
@media (prefers-reduced-motion:no-preference){.cw-day.cw-flash>h2{animation:cw-flash 1.4s ease-out}}
@keyframes cw-flash{0%{box-shadow:inset 0 -40px 0 0 #e7bd6599}100%{box-shadow:inset 0 0 0 0 #e7bd6500}}
.cw-cancelled{font-size:13px;line-height:1.45;color:#625c56;padding:8px 0 6px}
.cw-empty-day{color:var(--muted);padding:14px 0}
/* Compact row: time, what, any price that differs, one action */
.cw-row{display:grid;grid-template-columns:60px minmax(0,1fr) auto;grid-template-areas:"time main btn" "time price btn";align-items:center;column-gap:8px;padding:9px 0;border-top:1px solid var(--soft);min-height:56px}
.cw-day>h2+.cw-row,.cw-cancelled+.cw-row{border-top:0}
.cw-row>time{grid-area:time;align-self:start;padding-top:2px;line-height:1.3}
.cw-t{display:block;font-size:14px;font-weight:700;white-space:nowrap}
.cw-row>time small{display:block;font-size:11.5px;font-weight:500;color:var(--muted)}
.cw-row.cw-same{border-top:0;background:linear-gradient(var(--soft),var(--soft)) 68px 0/calc(100% - 68px) 1px no-repeat}
.cw-row.cw-same .cw-t{visibility:hidden;height:0}
.cw-row.cw-wordtime .cw-t{font-size:12px;white-space:normal;line-height:1.25;color:var(--muted)}
.cw-row-main{grid-area:main;min-width:0}
.cw-row>.cw-row-price{grid-area:price;font-size:12.5px;line-height:1.4;color:var(--muted);margin-top:1px}
.cw-row-action{grid-area:btn;justify-self:end}
.cw-row.cw-noaction{grid-template-columns:60px minmax(0,1fr)}
.cw-row h3{font:700 15.5px/1.28 var(--sans,'DM Sans',system-ui,sans-serif);color:var(--ink)}
.cw-row h3 a{text-decoration:none}
@media (hover:hover){.cw-row h3 a:hover{text-decoration:underline;text-underline-offset:3px}}
.cw-badge{display:inline-block;font:700 10px/1 var(--sans,'DM Sans',system-ui,sans-serif);letter-spacing:0;text-transform:none;background:#f3dfae;color:var(--deep);border-radius:4px;padding:3px 6px;white-space:nowrap;font-size:max(13px,10px)}
.cw-row{position:relative}
/* Keep readable badges in the title flow so they never overlap the time or next row. */
.cw-row h3 .cw-badge{position:static;font-size:13px;letter-spacing:0;padding:3px 4px}
.cw-sub{font-size:12.5px;line-height:1.4;color:var(--muted);margin-top:1px}
.cw-status{font-size:12.5px;color:var(--muted);font-weight:600}
/* Buttons: public/buttons.css (tickets gold, Book a gold tear ticket, Details Secondary); .cw-buy is only the script hook */
/* A dance night: the evening as one programme, one ticket */
.cw-night{display:block;position:relative;margin:8px 0 10px;padding:19px 12px 12px;background:linear-gradient(180deg,#f9efd9,#f4ead8);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.cw-day>h2+.cw-night{margin-top:10px}
.cw-bulbs{position:absolute;left:0;right:0;top:0;height:9px;background:var(--deep)}
.cw-bulbs::before,.cw-bulbs::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 7px 4.5px,#fff3cf 0 1.3px,var(--gold) 1.5px 2.4px,transparent 2.8px) 0 0/28px 9px repeat-x}
.cw-bulbs::after{background-position:14px 0;opacity:.35}
@media (prefers-reduced-motion:no-preference){.cw-bulbs::before{animation:cw-bulb-a 2.8s ease-in-out infinite}.cw-bulbs::after{animation:cw-bulb-b 2.8s ease-in-out infinite}}
@keyframes cw-bulb-a{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes cw-bulb-b{0%,100%{opacity:.3}50%{opacity:1}}
.cw-music{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--deep);border:1px solid #c9a85c;border-radius:99px;padding:2px 8px;margin-bottom:2px;font-size:max(13px,10.5px)}
.cw-night h3{font:500 22px/1.18 var(--serif,'Playfair Display',Georgia,serif);margin:3px 0 8px;letter-spacing:-.005em;color:var(--ink)}
.cw-night h3 a{text-decoration:none}
@media (hover:hover){.cw-night h3 a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}}
.cw-prog{list-style:none;margin:0;padding:0;border-top:1px solid #e0cda5}
.cw-prog li{display:grid;grid-template-columns:60px minmax(0,1fr) auto;column-gap:8px;align-items:center;min-height:44px;padding:5px 0;border-bottom:1px solid #e0cda5}
.cw-prog time{font-size:14px;font-weight:700;white-space:nowrap}
.cw-pt{font-size:15px;font-weight:700;line-height:1.3}
.cw-pt .cw-badge{margin-left:6px;vertical-align:1.5px}
.cw-pn{display:block;font-size:12.5px;font-weight:400;color:var(--muted);line-height:1.35}
.cw-night-buy{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px}
.cw-night-buy .cw-row-price{font-size:12.5px;line-height:1.4;color:var(--muted);min-width:0}
.cw-price{display:block;font:700 23px/1 var(--sans,'DM Sans',system-ui,sans-serif);color:var(--ink);margin-bottom:3px}
.cw-night-buy small{display:block;font-size:12.5px}
.cw-member-ticket{color:var(--deep)!important;font-weight:600;text-underline-offset:2px}
.cw-night-buy .cw-buy{flex:none}
/* End of the week */
.cw-week-end{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:22px 0 0}
.cw-week-end .cw-buy{flex:1}
.cw-back{flex:none}
.cw-zone{font-size:12.5px;color:var(--muted);margin-top:16px}
.cw-zone a,.cw-empty a:not(.cw-buy),.cw-week-end p a{color:var(--deep)!important}
.cw-empty{padding:24px 0 8px;color:var(--muted)}
.cw-empty p{margin-bottom:14px}
.cw-private-line{margin-top:18px;font-size:14.5px}
.cw-private-line a{color:var(--deep)!important;font-weight:600;text-underline-offset:3px}
@media (prefers-reduced-motion:no-preference){.cw-list.cw-slide-next{animation:cw-slide-n .28s ease-out}.cw-list.cw-slide-prev{animation:cw-slide-p .28s ease-out}}
@keyframes cw-slide-n{from{opacity:0;transform:translateX(18px)}}
@keyframes cw-slide-p{from{opacity:0;transform:translateX(-18px)}}
/* Mini month: rail on desktop, sheet on phones */
.cw-mini-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.cw-mini-head strong{font:500 18px/1.2 var(--serif,'Playfair Display',Georgia,serif)}
.cw-mini-head a,.cw-mini-head>span{display:grid;place-items:center;width:44px;height:44px;font-size:22px;line-height:1;color:var(--deep);border-radius:8px;text-decoration:none}
.cw-mini-head>span{color:#cfc4c5}
.cw-mini table{width:100%;border-collapse:collapse;text-align:center}
.cw-mini th{font-size:10.5px;font-weight:700;color:var(--muted);padding:2px 0 5px}
.cw-mini td{padding:0;border:0}
.cw-mini td>a,.cw-mini td>span{position:relative;display:grid;place-items:center;height:32px;font-size:13.5px;font-weight:600;line-height:1;padding:0 0 5px;text-decoration:none}
.cw-mini td>span{color:#b9aeaf;font-weight:400}
.cw-mini td.cw-inweek{background:#f3e3bf}
.cw-mini td.cw-ws{border-radius:8px 0 0 8px}.cw-mini td.cw-we{border-radius:0 8px 8px 0}
.cw-mini a[aria-current="date"]{box-shadow:inset 0 0 0 2px var(--ink);border-radius:8px}
.cw-marks{position:absolute;bottom:3px;left:0;right:0;display:flex;justify-content:center;gap:3px}
.cw-marks .cw-mark{width:6px;height:6px;top:0}
.cw-mini td>span .cw-mark{opacity:.4}
@media (hover:hover){.cw-mini td:not(.cw-inweek) a:hover{background:var(--cream);border-radius:8px}.cw-mini td.cw-inweek a:hover{background:#ecd6a3}}
.cw-mini-key{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:12.5px;color:var(--muted)}
.cw-mini-key span{display:inline-flex;align-items:center;gap:6px}
#cw-month-sheet{width:min(100%,440px);max-width:100%;max-height:92dvh;inset:auto 0 0;margin:0 auto;padding:10px 16px max(18px,env(safe-area-inset-bottom));background:var(--paper);color:var(--ink);border:0;border-radius:18px 18px 0 0;overscroll-behavior:contain}
#cw-month-sheet::backdrop{background:#1d121499}
@media (prefers-reduced-motion:no-preference){#cw-month-sheet[open]{animation:cw-sheet .26s cubic-bezier(.2,.8,.2,1)}}
@keyframes cw-sheet{from{transform:translateY(40px);opacity:0}}
.cw-sheet-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.cw-sheet-heading h2{font:500 22px/1.2 var(--serif,'Playfair Display',Georgia,serif);margin:0}
.cw-sheet-heading button{width:44px;height:44px;background:none;border:0;font-size:26px;line-height:1}
#cw-month-sheet .cw-mini{padding:0;border:0;background:none}
#cw-month-sheet .cw-mini td>a,#cw-month-sheet .cw-mini td>span{height:46px;min-width:44px;font-size:16px}
#cw-month-sheet .cw-marks{bottom:6px}
#cw-month-sheet .cw-mini-head strong{font-size:20px}
#cw-month-sheet .cw-mini-head a,#cw-month-sheet .cw-mini-head>span{width:44px;height:44px}
#cw-month-sheet .cw-mini .cw-mini-key{display:none}
.cw-sheet-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}
.cw-sheet-foot .cw-mini-key{margin:0}
.cw-sheet-foot .cw-today{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1.5px solid var(--edge);border-radius:10px;font-weight:700;font-size:14px;text-decoration:none}
@media (min-width:700px){#cw-month-sheet{inset:0;margin:auto;border-radius:16px;height:fit-content;padding:14px 20px 20px}}
/* House lights up: first visit in a session, under one second, never hides the listing (calendar-week.js only adds the class when it runs early). */
@media (prefers-reduced-motion:no-preference){
  html.cw-lights body.cw::before{content:"";position:fixed;inset:0;z-index:200;background:var(--night);pointer-events:none;animation:cw-house .7s ease-out forwards}
  html.cw-lights .cw-tile{animation:cw-lamp .5s ease-out both}
  html.cw-lights .cw-tile:nth-child(1){animation-delay:.1s}html.cw-lights .cw-tile:nth-child(2){animation-delay:.16s}html.cw-lights .cw-tile:nth-child(3){animation-delay:.22s}html.cw-lights .cw-tile:nth-child(4){animation-delay:.28s}html.cw-lights .cw-tile:nth-child(5){animation-delay:.34s}html.cw-lights .cw-tile:nth-child(6){animation-delay:.4s}html.cw-lights .cw-tile:nth-child(7){animation-delay:.46s}
  html.cw-lights .cw-next-line{animation:cw-rise .45s ease-out both}
  html.cw-lights .cw-next-line:nth-child(2){animation-delay:.08s}html.cw-lights .cw-next-line:nth-child(3){animation-delay:.16s}
}
@keyframes cw-house{0%{opacity:.35}100%{opacity:0}}
@keyframes cw-lamp{0%{opacity:.6;transform:translateY(3px)}55%{opacity:1;box-shadow:0 0 0 3px #e7bd6599,0 0 18px 2px #e7bd65aa}100%{box-shadow:0 0 0 0 #e7bd6500;transform:none}}
@keyframes cw-rise{from{opacity:.6;transform:translateY(4px)}}
/* Narrow phones */
@media (max-width:374px){
  .cw-row{grid-template-columns:58px minmax(0,1fr) auto}
  .cw-pager a,.cw-week-label{font-size:13px}
}
/* Tablet and up */
@media (min-width:700px){
  body.cw{--rib:82px}
  .cw-wrap{padding:0 32px}
  .cw-intro{padding:22px 0 18px;gap:14px}
  .cw-intro h1{font-size:48px}
  .cw-intro>div>p{display:block}
  .cw-up-next{padding-left:14px;gap:7px}
  .cw-next-line{grid-template-columns:168px minmax(0,1fr) auto;align-items:baseline}
  .cw-next-text{grid-column:auto;font-size:15px}
  .cw-next-in{order:3}
  .cw-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;padding:14px 0}
  .cw-control-label,.cw-show-group .cw-control-label{display:block}
  .cw-pager{min-height:52px;border-top:1px solid var(--line)}
  .cw-pager{justify-content:flex-end;gap:2px}
  .cw-prev,.cw-next,.cw-pager .cw-today{order:0}
  .cw-week-label{order:-1;margin-right:auto}
  .cw-week-label{padding:0;gap:0;cursor:default}
  .cw-week-label b{display:inline;font:500 23px/1.2 var(--serif,'Playfair Display',Georgia,serif)}
  .cw-week-label b::after{content:":"}
  .cw-week-label small{display:inline;font-size:15.5px;color:var(--ink);font-weight:600;margin-left:9px}
  
  .cw-short{display:none}.cw-long,.cw-wd{display:inline}

  .cw-pager a,.cw-pager .cw-disabled{font-size:14.5px;padding:0 8px}
  .cw-pager .cw-today,.cw-pager .cw-today.cw-here{display:inline-flex;margin-left:10px}
  .cw-ribbon-wrap{margin:0;padding:8px 0;border-top:0}
  .cw-ribbon{gap:8px}
  .cw-tile{min-height:64px;padding:8px 10px 6px}
  .cw-tile{justify-items:start;text-align:left;grid-template-columns:auto 1fr;column-gap:6px;align-items:baseline}
  .cw-dow{font-size:11px;font-size:max(13px,11px)}
  .cw-num{font-size:19px}
  .cw-what{grid-column:1/-1;font-size:13px;margin-top:4px}
  .cw-what-dance{padding:1px 8px}
  .cw-day>h2{font-size:25px;padding-top:22px}
  .cw-day-tag{font-size:13.5px}
  .cw-row{grid-template-columns:80px minmax(0,1fr) auto;column-gap:16px}
  .cw-row.cw-noaction{grid-template-columns:80px minmax(0,1fr)}
  .cw-row.cw-same{background-position:96px 0;background-size:calc(100% - 96px) 1px}
  .cw-t{font-size:15px}
  .cw-row h3{font-size:16.5px}
  .cw-row h3 .cw-badge,.cw-row.cw-same h3 .cw-badge{position:static;vertical-align:1.5px;margin-left:8px;font-size:13px;letter-spacing:0;padding:3px 6px}
  .cw-row>.cw-row-price{font-size:13.5px}
  .cw-night{padding:24px 18px 14px}
  .cw-night h3{font-size:26px}
  .cw-prog li{grid-template-columns:80px minmax(0,1fr) auto;column-gap:16px}
  .cw-week-end .cw-buy{flex:none;margin-left:auto}
}
/* Desktop */
@media (min-width:1000px){
  body.cw{--rib:98px}
  .cw-intro{grid-template-columns:auto minmax(0,640px);justify-content:space-between;align-items:center;gap:32px;padding:26px 0 22px}
  .cw-intro h1{font-size:64px}
  .cw-tile{min-height:80px;padding:9px 12px 8px}
  .cw-num{font-size:21px}
  .cw-what{font-size:13px;margin-top:3px}
  .cw-x{position:static;width:auto;height:auto;overflow:visible;clip-path:none}
  .cw-sum{position:static;width:auto;height:auto;clip-path:none;display:block;grid-column:1/-1;font-size:12px;line-height:1.3;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-weight:500;margin-top:3px}
  .cw-tile.cw-here .cw-sum{color:#e9dfd0}
  .cw-layout{display:grid;grid-template-columns:248px minmax(0,1fr);gap:44px;padding-top:6px}
  .cw-month-rail{display:block}
  .cw-month-rail>*{position:relative}
  .cw-mini{position:sticky;top:calc(var(--shell-h,0px) + var(--rib) + 18px);margin-top:22px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px 12px}
  .cw-mini.cw-pulse{animation:cw-lamp .7s ease-out}
  .cw-week-label::after{display:none}
  .cw-row{grid-template-columns:84px minmax(0,1fr) minmax(0,300px) max-content;grid-template-areas:"time main price btn";min-height:56px;padding:6px 0}
  .cw-row.cw-noaction{grid-template-columns:84px minmax(0,1fr) minmax(0,300px)}
  .cw-row>time,.cw-row-main,.cw-row>.cw-row-price{align-self:center;padding:0}
  .cw-row>.cw-row-price{margin:0;font-size:14px}
  .cw-row-action{justify-self:end}
  .cw-row.cw-same{background-position:100px 0;background-size:calc(100% - 100px) 1px}
  .cw-night{display:grid;grid-template-columns:minmax(0,1fr) 270px;column-gap:28px;padding:26px 22px 16px}
  .cw-night-head,.cw-prog{grid-column:1}
  .cw-prog{align-self:start}
  .cw-prog li{grid-template-columns:70px minmax(0,1fr) auto}
  .cw-pt{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px}
  .cw-pt .cw-badge{margin-left:-4px}
  .cw-pn{display:inline}
  .cw-night-buy{grid-column:2;grid-row:1/span 2;flex-direction:column;align-items:stretch;justify-content:center;gap:10px;padding:0 0 0 26px;border-left:1px dashed var(--edge)}
  .cw-price{font-size:30px;margin:0 0 6px}
}
@media (min-width:1000px) and (max-width:1180px){
  .cw-row{grid-template-columns:84px minmax(0,1fr) minmax(0,220px) max-content}
  .cw-layout{gap:32px;grid-template-columns:236px minmax(0,1fr)}
}
/* Reflow enlarged text without hiding it */
@container calendar (max-width:14rem){
  .cw-filter-group .cw-segments{flex-wrap:wrap}
  .cw-filter-group{flex-wrap:wrap}
  .cw-row{grid-template-columns:minmax(0,1fr);grid-template-areas:"time" "main" "price" "btn"}
  .cw-row-action{justify-self:start}
  .cw-row-main,.cw-row>.cw-row-price,.cw-pt{overflow-wrap:anywhere}
  .cw-prog li{grid-template-columns:minmax(0,1fr)}
  .cw-night-buy{flex-wrap:wrap}
  .cw-buy{white-space:normal}
  .cw-tile{height:auto;min-height:52px}
  .cw-ribbon{grid-template-columns:repeat(4,minmax(0,1fr))}
  .cw-ribbon-wrap{position:static}
  .cw-what{white-space:normal}
  .cw-pager{flex-wrap:wrap}
  .cw-week-label,.cw-pager a{white-space:normal}
}
/* Keep the shared open navigation above the sticky ribbon. */
body.cw .site-header{z-index:30}
/* Focus ring for keyboard focus only: after a tap or click (calendar-week.js sets .cw-pointer) no ring stays; any key brings it back (Ron 11-09). */
html.cw-pointer body.cw :focus-visible{outline:none}
html.cw-pointer body.cw :focus-visible:not(.cw-mini a){box-shadow:none}
.cw-wrap .cw-buy:hover,.cw-wrap .cw-tile:hover,.cw-wrap .cw-segments a:hover,.cw-wrap .cw-today:hover,.cw-wrap .cw-mini a:hover,.cw-wrap .cw-next-line:hover,.cw-wrap .cw-night h3 a:not(:hover){text-decoration:none}
/* A row with no price line gives the title the price column too */
.cw-row:not(:has(>.cw-row-price))>.cw-row-main{grid-row:1/span 2}
@media (min-width:1000px){.cw-row:not(:has(>.cw-row-price))>.cw-row-main{grid-row:auto;grid-column:2/4}.cw-row.cw-noaction:not(:has(>.cw-row-price))>.cw-row-main{grid-column:2/4}}
.cw-week-end .cw-buy{white-space:normal;min-width:0}
@media (min-width:700px) and (max-width:999px){.cw-week-label::after{margin:-4px 4px 0 10px}}
/* The week strip shows a band name whole on two lines instead of trailing off (sweep 11-10, group 3.5). */@media (min-width:801px){body.cw .cw-sum{white-space:normal;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}
