.print-intro{max-width:44rem;margin-bottom:var(--space-xl)}.print-intro .lede{font-size:1.125rem;color:var(--color-charcoal-soft);margin-bottom:var(--space-md)}.mode-toggle-wrap{max-width:56rem;margin:0 auto var(--space-lg);display:flex;justify-content:center;align-items:center;gap:var(--space-md);flex-wrap:wrap}.mode-toggle{display:flex;width:fit-content;gap:2px;background:var(--color-border);border-radius:var(--radius-lg);padding:3px}.mode-btn{padding:.35rem var(--space-md);border:none;border-radius:calc(var(--radius-lg) - 3px);background:transparent;color:var(--color-charcoal-soft);font-family:var(--font-sans);font-size:.875rem;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.mode-btn:hover{color:var(--color-charcoal)}.mode-btn[aria-pressed=true]{background:var(--color-teal);color:#fff;font-weight:600}.flyer-switch{font-size:.875rem;color:var(--color-teal-deep);text-decoration:none}.flyer-switch:hover{text-decoration:underline}.month-poster{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2xl) var(--space-xl);max-width:56rem;margin:0 auto;box-shadow:0 2px 12px #1118270f}.month-poster .poster-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-lg);border-bottom:2px solid var(--color-charcoal);padding-bottom:var(--space-sm);margin-bottom:var(--space-md)}.month-poster .poster-eyebrow{font-family:"Young Serif",var(--font-serif);font-size:1rem;font-weight:400;color:var(--color-teal-deep);margin:0;white-space:nowrap}.month-poster .poster-title{font-family:var(--font-serif);font-size:clamp(2rem,1.5rem + 2vw,2.75rem);font-weight:600;letter-spacing:-.02em;margin:0;line-height:1.05}.month-poster .poster-loading{grid-column:1 / -1;color:var(--color-charcoal-soft);text-align:center;padding:var(--space-xl) 0;font-style:italic}.poster-grid-wrap{display:flex;flex-direction:column}.poster-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto repeat(6,1fr);gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.poster-grid-dow{background:var(--color-cream-deep);font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:.35rem 0;color:var(--color-charcoal)}.poster-cell{background:#fff;padding:.3rem .35rem;display:flex;flex-direction:column;gap:3px;overflow:hidden;min-width:0;min-height:7rem}.poster-cell.pad{background:var(--color-cream-deep)}.poster-cell-date{font-family:var(--font-sans);font-size:.8125rem;font-weight:700;color:var(--color-charcoal);line-height:1;margin-bottom:.15rem}.poster-cell-event{font-family:var(--font-sans);padding:0 .3rem;border-left:2px solid var(--color-border);color:var(--color-charcoal);overflow:hidden}.poster-cell-event-title{font-size:.6875rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.poster-cell-event-time{color:var(--color-charcoal-soft);margin-right:.2em}.poster-cell-event-loc{font-size:.625rem;line-height:1.2;color:var(--color-charcoal-soft);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;margin-top:1px}.poster-cell-more{font-family:var(--font-sans);font-size:.6875rem;font-style:italic;color:var(--color-charcoal-soft);padding-left:.3rem;margin-top:auto}.month-poster .poster-foot{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.month-poster .poster-qr{width:80px;height:80px;flex-shrink:0}.month-poster .poster-foot-text{line-height:1.2}.month-poster .poster-foot-line{font-family:var(--font-serif);font-style:italic;font-size:1rem;color:var(--color-charcoal);margin:0 0 .25rem}.month-poster .poster-foot-url{font-family:var(--font-sans);font-size:1.125rem;font-weight:600;color:var(--color-teal-deep);letter-spacing:.01em;margin:0}.poster-foot-disclaimer{font-family:var(--font-serif);font-style:italic;font-size:.75rem;color:var(--color-charcoal-soft);max-width:14rem;text-align:right;margin:0;line-height:1.3}@media print{@page{size:Letter portrait;margin:.45in}#main:before{content:none!important}html,body{height:100%;margin:0;padding:0}#main{padding:0!important;margin:0!important;max-width:none!important;height:100%}.print-intro,.mode-toggle-wrap,.flyer-switch{display:none!important}.month-poster{border:none;box-shadow:none;padding:0;max-width:none;margin:0;break-inside:avoid;height:100%;display:flex;flex-direction:column}.month-poster .poster-head{margin-bottom:.3rem;padding-bottom:.3rem;flex-shrink:0}.month-poster .poster-title{font-size:1.65rem}.poster-grid-wrap{flex:1;min-height:0;display:flex}.poster-grid{flex:1;border-radius:0;gap:.5pt}.poster-grid-dow{font-size:.625rem;padding:.12rem 0}.poster-cell{padding:.15rem .2rem;min-height:0;gap:2px}.poster-cell-date{font-size:.6875rem}.poster-cell-event{padding:0 .2rem}.poster-cell-event-title{font-size:.5625rem;line-height:1.15}.poster-cell-event-loc{font-size:.5rem;line-height:1.15}.poster-cell-more{font-size:.5625rem}.month-poster .poster-foot{margin-top:.3rem;padding-top:.25rem;flex-shrink:0}.month-poster .poster-qr{width:64px;height:64px}.month-poster .poster-foot-line{font-size:.875rem}.month-poster .poster-foot-url{font-size:1rem}.poster-foot-disclaimer{font-size:.6875rem}.poster-cell-event,.poster-grid,.poster-grid-dow,.poster-cell.pad,.poster-qr,.poster-eyebrow,.poster-foot-url{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
