:root{--fb-magenta:#980065;--fb-magenta-dark:#6b0048;--fb-charcoal:#494f5c;--fb-bg:#fff;--fb-muted:#f5f5f5;--fb-shadow:0 1px 2px #494f5c14, 0 8px 24px #494f5c1f}body{color:var(--fb-charcoal);background-color:var(--fb-muted);margin:0;font-family:Open Sans,system-ui,sans-serif}.cal-page{flex-direction:column;min-height:100vh;display:flex}.cal-hero{background-image:linear-gradient(135deg, var(--fb-magenta-dark) 0%, var(--fb-magenta) 100%);color:var(--fb-bg);text-align:center;padding:2.5rem 1.5rem 3rem}.cal-hero-inner{max-width:760px;margin:0 auto;animation:.6s ease-out both cal-fade-up}.cal-back{text-decoration:none;display:inline-block}.cal-logo{filter:brightness(0)invert()drop-shadow(0 4px 12px #0000004d);width:130px;height:auto;margin-bottom:1.25rem}.cal-hero h1{text-transform:uppercase;letter-spacing:.04em;text-shadow:0 2px 12px #00000040;margin:0 0 .75rem;font-family:Oswald,Open Sans,system-ui,sans-serif;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:600}.cal-hero p{color:#fffffff2;max-width:560px;margin:0 auto;font-size:1.0625rem;line-height:1.6}.cal-main{flex:1;width:100%;max-width:1040px;margin:-1.5rem auto 0;padding:2rem 1.5rem 3.5rem}.cal-status{text-align:center;color:var(--fb-charcoal);opacity:.7;padding:3rem 0}.cal-sample-note{text-align:center;color:var(--fb-charcoal);opacity:.6;margin:0 0 1.25rem;font-size:.8125rem}.card{background-color:var(--fb-bg);box-shadow:var(--fb-shadow);border-radius:14px;padding:1.75rem}h2{text-transform:uppercase;letter-spacing:.04em;color:var(--fb-magenta);margin:0;font-family:Oswald,Open Sans,system-ui,sans-serif;font-size:1.375rem;font-weight:500}.block-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}.block-card{background-color:var(--fb-bg);box-shadow:var(--fb-shadow);border-radius:14px;transition:transform .15s,box-shadow .15s;animation:.55s ease-out both cal-fade-up;display:flex;position:relative;overflow:hidden}.block-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px #494f5c33}.block-accent{background-color:var(--accent);flex:0 0 6px;width:6px}.block-body{flex:1;min-width:0;padding:1.25rem 1.375rem 1.375rem}.block-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.block-day{letter-spacing:.1em;text-transform:uppercase;color:#fff;background-color:var(--accent);border-radius:999px;padding:.25rem .6rem;font-family:Oswald,Open Sans,system-ui,sans-serif;font-size:.6875rem;font-weight:600;display:inline-block}.block-title{letter-spacing:.02em;text-transform:uppercase;color:var(--fb-charcoal);margin:0 0 .25rem;font-family:Oswald,Open Sans,system-ui,sans-serif;font-size:1.25rem;font-weight:600}.block-where{color:var(--fb-charcoal);opacity:.7;margin:0 0 1rem;font-size:.875rem}.block-list-label{text-transform:uppercase;letter-spacing:.1em;color:var(--fb-charcoal);opacity:.5;margin:0 0 .25rem;font-family:Oswald,Open Sans,system-ui,sans-serif;font-size:.6875rem;font-weight:600}.block-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.block-row{border-top:1px solid #eee;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 0;display:flex}.block-row:first-child{border-top:none}.block-row-range{color:var(--fb-charcoal);font-family:Oswald,Open Sans,system-ui,sans-serif;font-size:1rem;font-weight:600}.block-row-count{color:#fff;background-color:var(--accent);white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600}.cal-calendar-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.legend{flex-wrap:wrap;gap:.875rem;margin:0;padding:0;list-style:none;display:flex}.legend-item{color:var(--fb-charcoal);align-items:center;gap:.4rem;font-size:.8125rem;display:inline-flex}.legend-dot{border-radius:50%;width:11px;height:11px}.months{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.75rem;display:grid}.month-title{letter-spacing:.04em;text-transform:uppercase;color:var(--fb-magenta);margin:0 0 .75rem;font-family:Oswald,Open Sans,system-ui,sans-serif;font-size:1rem;font-weight:600}.weekday-row,.day-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.weekday{text-align:center;text-transform:uppercase;letter-spacing:.04em;color:var(--fb-charcoal);opacity:.5;padding-bottom:.35rem;font-size:.6875rem;font-weight:600}.day{aspect-ratio:1;color:var(--fb-charcoal);background-color:var(--fb-muted);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;font-size:.8125rem;display:flex;position:relative}.day-empty{background-color:#0000}.day-num{line-height:1}.day-active{background-color:#fff;font-weight:600;box-shadow:inset 0 0 0 1.5px #9800652e}.day-today .day-num{color:var(--fb-magenta);font-weight:700}.day-today{box-shadow:inset 0 0 0 2px var(--fb-magenta)}.day-holiday{color:#8a4f72;background-color:#f3e7ef;background-image:repeating-linear-gradient(45deg,#98006538 0 3px,#0000 3px 8px);box-shadow:inset 0 0 0 1px #9800652e}.day-holiday .day-num{color:#6b0048;font-weight:600}.day-dots{gap:2px;height:6px;margin-top:3px;display:flex}.day-dot{border-radius:50%;width:6px;height:6px}.cal-breaks{border-top:1px solid #eee;margin-top:1.5rem;padding-top:1.25rem}.cal-breaks-label{letter-spacing:.08em;text-transform:uppercase;color:var(--fb-charcoal);opacity:.6;margin-bottom:.6rem;font-family:Oswald,Open Sans,system-ui,sans-serif;font-size:.75rem;font-weight:600;display:block}.cal-breaks ul{flex-wrap:wrap;gap:.5rem 1.5rem;margin:0;padding:0;list-style:none;display:flex}.cal-breaks li{flex-direction:column;line-height:1.3;display:flex}.cal-break-name{color:var(--fb-charcoal);font-size:.875rem;font-weight:600}.cal-break-dates{color:var(--fb-charcoal);opacity:.65;font-size:.8125rem}.cal-footer{text-align:center;margin-top:2.25rem}.cal-cta{letter-spacing:.04em;text-transform:uppercase;color:#fff;background-color:var(--fb-magenta);border-radius:10px;padding:.875rem 1.75rem;font-family:Oswald,Open Sans,system-ui,sans-serif;font-size:.9375rem;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-block;box-shadow:0 6px 16px #9800654d}.cal-cta:hover{transform:translateY(-2px);box-shadow:0 10px 24px #98006566}.cal-empty{text-align:center;max-width:480px;margin:2rem auto}.cal-empty p{margin:.75rem 0 1.5rem;line-height:1.6}@keyframes cal-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.cal-hero-inner,.block-card{animation:none}}@media (width<=600px){.cal-main{padding:1.5rem 1rem 3rem}.card{padding:1.25rem}.months{gap:1.25rem}.block-stats{gap:1rem}.stat-range{padding-left:1rem}}
