.cal-chip--holiday{--chip-bg: #fbe9e9;--chip-fg: #b53a3a}.cal-chip--promo{--chip-bg: #e3f1e6;--chip-fg: #2f7a44}.cal-chip--weekly{--chip-bg: #e3ecf5;--chip-fg: #2a5da3}.cal-dot--holiday{background:#b53a3a}.cal-dot--promo{background:#2f7a44}.cal-dot--weekly{background:#2a5da3}.cal-card{border:1px solid var(--color-hairline);border-radius:var(--radius-md, .5rem);overflow:hidden;background:var(--color-bone)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;background:var(--color-blu-ink, var(--color-blu-deep));color:#fff}.cal-weekdays li{text-align:center;padding:.85rem .5rem;font-size:.7rem;font-weight:700;letter-spacing:.14em;border-right:1px solid color-mix(in oklch,white 15%,transparent)}.cal-weekdays li:last-child{border-right:0}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none}.cal-day{position:relative;min-height:5.5rem;padding:.5rem .5rem .65rem;background:var(--color-bone);border-right:1px solid var(--color-hairline);border-bottom:1px solid var(--color-hairline);display:flex;flex-direction:column;gap:.4rem}@media(min-width:640px){.cal-day{min-height:7.5rem;padding:.6rem .65rem .8rem}}.cal-day:nth-child(7n){border-right:0}.cal-day:nth-last-child(-n+7){border-bottom:0}.cal-day.is-outside{background:color-mix(in oklch,var(--color-cream) 60%,transparent)}.cal-day.has-events{background:color-mix(in oklch,#fff5d8 80%,var(--color-bone));box-shadow:inset 0 -3px 0 0 var(--color-brass)}.cal-day.is-today{background:color-mix(in oklch,var(--color-blu-deep) 8%,var(--color-bone))}.cal-day.is-today.has-events{background:color-mix(in oklch,var(--color-blu-deep) 6%,#fff5d8);box-shadow:inset 0 -3px 0 0 var(--color-brass)}.cal-day__number{display:flex}.cal-day__num-inner{display:inline-flex;align-items:center;justify-content:center;height:1.65rem;min-width:1.65rem;padding:0 .3rem;font-size:.85rem;font-weight:600;color:var(--color-blu-deep)}.cal-day.is-outside .cal-day__num-inner{color:color-mix(in oklch,var(--color-mute) 70%,transparent);font-weight:500}.cal-day.is-today .cal-day__num-inner{background:var(--color-blu-deep);color:#fff;border-radius:999px}.cal-day__events{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.2rem}.cal-chip{display:flex;align-items:center;gap:.35rem;padding:.2rem .35rem;border-radius:4px;background:var(--chip-bg);text-decoration:none;transition:filter .2s}.cal-chip:hover{filter:brightness(.96)}.cal-chip__code{font-size:.58rem;font-weight:800;letter-spacing:.04em;color:var(--chip-fg);flex-shrink:0;text-transform:uppercase}.cal-chip__title{font-size:.68rem;line-height:1.15;color:var(--color-blu-deep);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:640px){.cal-chip__title{font-size:.72rem}}.cal-day__more{padding:0 .35rem;font-size:.6rem;font-weight:600;color:var(--color-mute)}.cal-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 1.5rem;margin-top:1.25rem;font-size:.78rem;color:var(--color-charcoal)}.cal-legend>span{display:inline-flex;align-items:center;gap:.45rem}.cal-dot{display:inline-block;width:.55rem;height:.55rem;border-radius:999px}.cal-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2rem}.cal-nav__pill{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border:1px solid var(--color-hairline);border-radius:999px;background:var(--color-bone);font-size:.85rem;font-weight:500;color:var(--color-blu-deep);text-decoration:none;transition:border-color .2s,color .2s}.cal-nav__pill:hover{border-color:var(--color-brass);color:var(--color-brass)}.cal-nav__title{flex:1;display:flex;flex-direction:column;align-items:center}.cal-nav__today{margin-top:.25rem;font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-brass);text-decoration:none}.cal-nav__today:hover{color:var(--color-blu-deep)}.cal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.cal-empty{text-align:center;font-size:.9rem;color:var(--color-mute)}.cal-row--holiday{--row-accent: #b53a3a;--row-bg: #fbe9e9;--row-fg: #b53a3a}.cal-row--promo{--row-accent: #2f7a44;--row-bg: #e3f1e6;--row-fg: #2f7a44}.cal-row--weekly{--row-accent: #b07a2a;--row-bg: #f5e9d6;--row-fg: #8a5d1f}.cal-row{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.25rem;padding:1rem 1.25rem 1rem 1.5rem;background:var(--color-bone);border:1px solid var(--color-hairline);border-radius:var(--radius-sm, .375rem);overflow:hidden}.cal-row:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--row-accent)}.cal-row__date{display:flex;flex-direction:column;align-items:center;min-width:3.5rem;line-height:1}.cal-row__day{font-family:var(--font-display);font-size:2rem;font-weight:500;color:var(--color-blu-deep)}.cal-row__mon{margin-top:.15rem;font-size:.7rem;font-weight:700;letter-spacing:.16em;color:var(--color-brass)}.cal-row__through{margin-top:.3rem;font-size:.65rem;font-weight:500;color:var(--color-mute);text-align:center}.cal-row__every{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-brass)}.cal-row__days{margin-top:.25rem;font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--color-blu-deep);text-align:center;line-height:1.2}.cal-row__body{min-width:0;display:flex;flex-direction:column;gap:.35rem}.cal-row__title{font-size:1.05rem;font-weight:600;color:var(--color-blu-deep);text-decoration:none}.cal-row__title:hover{color:var(--color-brass)}.cal-row__desc{margin:0;font-size:.88rem;line-height:1.5;color:var(--color-text-secondary)}.cal-row__ics{margin-top:.25rem;align-self:flex-start;display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:600;letter-spacing:.04em;color:var(--color-mute);text-decoration:none}.cal-row__ics:hover{color:var(--color-brass)}.cal-row__badge{flex-shrink:0;align-self:flex-start;padding:.3rem .85rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.02em;background:var(--row-bg);color:var(--row-fg)}@media(max-width:640px){.cal-row{grid-template-columns:auto 1fr;grid-template-areas:"date body" "badge badge";row-gap:.75rem}.cal-row__date{grid-area:date}.cal-row__body{grid-area:body}.cal-row__badge{grid-area:badge;justify-self:flex-start}}
