:root{--calendar-blue:#151d48;--calendar-deep:#0e1538;--calendar-gold:#c2912e;--calendar-ivory:#f8f6f0;--calendar-border:#dfe2ea;--calendar-muted:#626879}
.calendar-hero{padding:52px 24px;background:linear-gradient(90deg,#0e1538f4,#151d48da),url("/plan-your-visit/assets/gallery/congregational-worship.jpg") center 42%/cover;color:#fff;text-align:center}
.calendar-hero h1{margin:0 0 10px;font-size:clamp(2.6rem,5vw,4.2rem)}
.calendar-hero>p:last-child{margin:0;color:#ffffffdd}
.calendar-section{padding:52px 20px 76px;background:var(--calendar-ivory)}
.calendar-shell{width:min(100%,1240px);margin:auto}
.calendar-toolbar{display:grid;padding:20px;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;border:1px solid var(--calendar-border);border-radius:13px 13px 0 0;background:#fff}
.calendar-toolbar h2{margin:0;color:var(--calendar-deep);font-size:clamp(1.6rem,3vw,2.35rem);text-align:center}
.calendar-toolbar label{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--calendar-blue);font-size:.78rem;font-weight:800;text-transform:uppercase}
.calendar-toolbar select{min-height:42px;padding:7px 10px;border:1px solid #bfc4d1;border-radius:6px;background:#fff}
.month-controls{display:flex;gap:7px}
.month-controls button{min-width:42px;min-height:42px;padding:0 12px;border:1px solid var(--calendar-blue);border-radius:6px;background:#fff;color:var(--calendar-blue);font-weight:800;cursor:pointer}
.month-controls button:first-child,.month-controls button:last-child{font-size:1.6rem}
.calendar-status{min-height:26px;padding:5px 12px;color:var(--calendar-muted);font-size:.82rem;text-align:center}
.month-calendar{overflow:hidden;border:1px solid var(--calendar-border);border-radius:0 0 13px 13px;background:#fff;box-shadow:0 16px 42px #0e15380c}
.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.weekday-row{background:var(--calendar-deep);color:#fff}
.weekday-row span{padding:11px;text-align:center;font-size:.72rem;font-weight:800;text-transform:uppercase}
.day-cell{position:relative;min-height:138px;padding:9px;border-right:1px solid var(--calendar-border);border-bottom:1px solid var(--calendar-border);background:#fff}
.day-cell:nth-child(7n){border-right:0}
.day-cell.other-month{background:#f5f5f7;color:#969baa}
.day-cell.today{box-shadow:inset 0 0 0 2px var(--calendar-gold)}
.day-number{display:grid;width:27px;height:27px;margin-bottom:5px;place-items:center;border-radius:50%;font-size:.78rem;font-weight:800}
.today .day-number{background:var(--calendar-gold);color:var(--calendar-deep)}
.calendar-event{display:block;width:100%;margin:3px 0;padding:5px 7px;overflow:hidden;border:0;border-left:3px solid var(--calendar-gold);border-radius:4px;background:#edf0ff;color:var(--calendar-blue);font-size:.68rem;font-weight:700;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.calendar-event.special-event{background:#fff2d4}
.calendar-event.worship{background:#e4edf9}
.calendar-event.canceled{border-left-color:#a40000;background:#fbe5e5;color:#7f1010;text-decoration:line-through}
.agenda-item.canceled{border-color:#d9aaaa;background:#fff6f6}
.agenda-item.canceled h3,.agenda-item.canceled .agenda-date{color:#8b1717}
.cancellation-note{margin:20px 0;padding:16px 18px;border-left:4px solid #a40000;border-radius:5px;background:#fff0f0;color:#681010}
.cancellation-note strong{display:block;font-size:1.05rem}
.cancellation-note p{margin:6px 0 0;white-space:pre-line}
.more-events{padding:3px;color:var(--calendar-muted);font-size:.68rem;font-weight:700}
.event-tooltip{position:fixed;z-index:100;width:min(280px,calc(100vw - 24px));padding:12px 14px;border:1px solid #ffffff2b;border-radius:8px;background:var(--calendar-deep);color:#fff;box-shadow:0 10px 30px #0004;font-size:.78rem;line-height:1.45;pointer-events:none}
.event-tooltip strong{display:block;color:#e1bd62}
.agenda{margin-top:38px}
.agenda-heading{text-align:center}
.agenda-heading h2{margin:0 0 22px;font-size:2.4rem}
.agenda-list{display:grid}
.agenda-item{display:grid;margin-bottom:10px;padding:17px 20px;grid-template-columns:90px 1fr auto;align-items:center;gap:18px;border:1px solid var(--calendar-border);border-radius:10px;background:#fff;cursor:pointer}
.agenda-date{color:var(--calendar-gold);font-size:.72rem;font-weight:800;text-transform:uppercase}
.agenda-item h3{margin:0;color:var(--calendar-blue);font-family:Inter,Arial,sans-serif;font-size:1rem}
.agenda-item p{margin:4px 0 0;color:var(--calendar-muted);font-size:.84rem}
.agenda-item>span:last-child{color:var(--calendar-blue);font-weight:800}
.empty-agenda{padding:30px;border:1px solid var(--calendar-border);border-radius:10px;background:#fff;color:var(--calendar-muted);text-align:center}
#event-dialog{width:min(100% - 28px,650px);max-height:88vh;padding:0;border:0;border-radius:14px;box-shadow:0 24px 75px #0007}
#event-dialog::backdrop{background:#0e1538b8}
.dialog-close{position:sticky;z-index:2;top:0;height:0;text-align:right}
.dialog-close button{width:46px;height:46px;margin:10px;border:0;border-radius:50%;background:var(--calendar-deep);color:#fff;font-size:1.8rem;cursor:pointer}
.event-modal-content{padding:38px}
.event-modal-content h2{margin:0 50px 10px 0;color:var(--calendar-deep);font-size:clamp(2rem,5vw,3rem)}
.event-modal-date{color:var(--calendar-gold);font-weight:800}
.event-modal-content img{display:block;width:100%;max-height:340px;margin:22px 0;object-fit:contain;border-radius:8px;background:#f3f3f3}
.event-modal-description{color:var(--calendar-muted);white-space:pre-line}
.event-facts{display:grid;margin:22px 0;gap:9px}
.event-facts div{padding:11px 13px;border-left:3px solid var(--calendar-gold);background:var(--calendar-ivory)}
.event-facts span{display:block;color:var(--calendar-muted);font-size:.64rem;font-weight:800;text-transform:uppercase}
.event-modal-actions{display:flex;flex-wrap:wrap;gap:10px}
.event-modal-actions a{display:inline-flex;min-height:46px;padding:0 18px;align-items:center;border:2px solid var(--calendar-blue);border-radius:6px;background:var(--calendar-blue);color:#fff;font-weight:800;text-decoration:none}
.event-modal-actions a.secondary{background:#fff;color:var(--calendar-blue)}
.calendar-admin-link{margin-left:10px;color:#ffffff88;font-size:.7rem}

@media(max-width:800px){.calendar-toolbar{grid-template-columns:1fr 1fr}
.calendar-toolbar h2{grid-column:1/-1;grid-row:1}
.calendar-toolbar label{justify-content:flex-end}
.day-cell{min-height:110px;padding:6px}
.calendar-event{padding:4px;font-size:.62rem}
}

@media(max-width:600px){.calendar-section{padding:34px 10px 55px}
.calendar-toolbar{padding:14px;grid-template-columns:1fr}
.calendar-toolbar h2,.calendar-toolbar label{grid-column:auto;grid-row:auto}
.calendar-toolbar label{justify-content:stretch}
.calendar-toolbar select{flex:1}
.month-controls{justify-content:center}
.weekday-row span{padding:9px 2px;font-size:.6rem}
.day-cell{min-height:82px;padding:3px}
.day-number{width:22px;height:22px;margin-bottom:2px;font-size:.65rem}
.calendar-event{height:8px;padding:0;border-left:0;border-radius:4px;color:transparent}
.more-events{display:none}
.agenda-item{grid-template-columns:65px 1fr;padding:14px}
.agenda-item>span:last-child{display:none}
.event-modal-content{padding:30px 20px}
.event-modal-actions{flex-direction:column}
.event-modal-actions a{width:100%;justify-content:center}
.calendar-admin-link{display:block;margin:10px 0 0}
}
