.cal-intro{display:grid;grid-template-columns:1.6fr .9fr;gap:var(--space-8);align-items:start;margin-bottom:var(--space-8)}.cal-intro-copy h2{font-size:var(--fs-xl);margin-bottom:var(--space-4)}.cal-intro-copy p{color:var(--rs-steel);font-size:var(--fs-sm);line-height:1.7;margin-bottom:var(--space-3)}.cal-intro-copy strong{color:var(--text);font-family:var(--font-display)}.cal-legend[role=list]{display:flex;flex-direction:column;gap:var(--space-4);margin:0;padding:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;list-style:none}.cal-legend li{margin:0}.cal-legend li{display:flex;align-items:center;gap:var(--space-3);font-size:var(--fs-sm);color:var(--text)}.cal-dot{width:.85rem;height:.85rem;border-radius:3px;flex:0 0 auto}.cal-dot--open{background:var(--rs-red)}.cal-dot--reserved{background:repeating-linear-gradient(45deg,#e6e8ea,#e6e8ea 3px,#d3d7db 3px 6px)}.cal-dot--past{background:#eef0f2;border:1px solid var(--line)}.cal-layout{display:grid;grid-template-columns:1.55fr .95fr;gap:var(--space-8);align-items:start}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.cal-month{font-size:var(--fs-lg);font-family:var(--font-display);text-align:center;margin:0}.cal-nav{width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--text);font-size:1.4rem;line-height:1;cursor:pointer;transition:border-color .15s var(--ease),color .15s var(--ease)}.cal-nav:hover:not(:disabled){border-color:var(--rs-red);color:var(--rs-red)}.cal-nav:disabled{opacity:.35;cursor:not-allowed}.cal-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-2)}.cal-dow span{text-align:center;font-family:var(--font-display);font-weight:600;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2)}.cal-cell{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:.25rem;min-height:4.4rem;padding:.5rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;font-family:inherit;text-align:left;min-width:0;overflow:hidden;cursor:pointer;transition:border-color .12s var(--ease),box-shadow .12s var(--ease),transform .12s var(--ease)}.cal-cell--blank{border:0;background:transparent;cursor:default;min-height:0}.cal-cell-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.25rem}.cal-num{font-family:var(--font-display);font-weight:700;font-size:.95rem;color:var(--text)}.cal-ev{font-size:.85rem;line-height:1;flex:0 0 auto}.cal-ev-legend{font-size:.95rem;line-height:1;width:.95rem;text-align:center;flex:0 0 auto}.cal-cell--closed{background:#f1eef4;cursor:pointer}.cal-cell--closed .cal-num{color:var(--text-muted)}.cal-cell--closed .cal-tag{background:#e2dcec;color:#6b6478}.cal-cell--closed:hover{border-color:#b9add0}.cal-dot--closed{background:#d9d2e6}.cal-tag{font-size:.62rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.1rem .4rem;border-radius:999px}.cal-cell--open{border-color:#d6282866}.cal-cell--open .cal-tag{background:var(--rs-red);color:#fff}.cal-cell--open:hover{border-color:var(--rs-red);box-shadow:var(--shadow);transform:translateY(-1px)}.cal-cell--reserved{background:repeating-linear-gradient(45deg,#fafbfb,#fafbfb 5px,#f1f3f4 5px 10px)}.cal-cell--reserved .cal-num{color:var(--text-muted)}.cal-cell--reserved .cal-tag{background:#e6e8ea;color:#6b7178}.cal-cell--reserved:hover{border-color:var(--text-muted)}.cal-cell--past{background:#f4f5f6;cursor:default;opacity:.6}.cal-cell--past .cal-num{color:#b3b8bd}.cal-cell.is-selected{border-color:var(--rs-red);box-shadow:0 0 0 2px #d6282859}.cal-noscript{grid-column:1 / -1;padding:var(--space-5);color:var(--text-muted);font-size:var(--fs-sm)}.cal-noscript a{color:var(--rs-red);font-weight:700}.cal-detail{position:sticky;top:calc(var(--header-h) + var(--space-4));padding:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--rs-ink);color:#fff;box-shadow:var(--shadow)}.cal-detail-eyebrow{font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rs-red);margin:0 0 var(--space-2)}.cal-detail-title{font-size:var(--fs-lg);margin:0 0 var(--space-3);color:#fff}.cal-detail-body{font-size:var(--fs-sm);line-height:1.7;color:#ffffffc7;margin:0 0 var(--space-4)}.cal-detail-programs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-5);padding:0;list-style:none}.cal-detail-programs a{display:inline-block;padding:.3rem .7rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:.78rem;font-family:var(--font-display);font-weight:600;color:#ffffffe6;transition:border-color .15s var(--ease),color .15s var(--ease)}.cal-detail-programs a:hover{border-color:var(--rs-red);color:#fff}.cal-detail-cta{display:inline-flex;width:100%;justify-content:center;margin-bottom:var(--space-4)}.cal-detail-phone{font-size:var(--fs-sm);color:#ffffffb3;margin:0}.cal-detail-phone a{color:#fff;font-family:var(--font-display);font-weight:700}.cal-programs{margin-top:var(--space-12)}.cal-programs h2{font-size:var(--fs-xl)}.cal-programs-sub{color:var(--rs-steel);font-size:var(--fs-sm);margin-bottom:var(--space-5)}.cal-program-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);list-style:none;padding:0}.cal-program-grid a{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;transition:border-color .15s var(--ease),box-shadow .15s var(--ease),transform .15s var(--ease)}.cal-program-grid a:hover{border-color:var(--rs-red);box-shadow:var(--shadow);transform:translateY(-2px)}.cal-program-name{font-family:var(--font-display);font-weight:700;color:var(--text)}.cal-program-go{font-size:var(--fs-sm);color:var(--rs-red);font-weight:600}@media(max-width:900px){.cal-intro,.cal-layout{grid-template-columns:1fr}.cal-detail{position:static}.cal-cell{min-height:3.6rem}}@media(max-width:560px){.cal-grid,.cal-dow{gap:4px}.cal-cell{min-height:3rem;padding:.3rem}.cal-num{font-size:.82rem}.cal-tag{display:none}.cal-ev{font-size:.72rem}.cal-dow span{font-size:.6rem;letter-spacing:.02em}.cal-cell--open{background:#d628280f;border-color:#d6282873}.cal-cell--reserved{background-color:#f3f4f5}.cal-toolbar{margin-bottom:var(--space-3)}}
