:root{color-scheme:light;--blue:#2456ca;--ink:#18243a;--muted:#52627a;--line:#dce3ef;--canvas:#f5f7fb;--surface:#fff;--tint:#edf2fd;--focus:#83a9fc;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--canvas);font-size:15px;line-height:1.5;scrollbar-color:#aab8d0 var(--canvas);scrollbar-width:thin}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--blue);text-underline-offset:3px}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}::selection{background:#d7e4ff;color:#122d68}button,textarea,input{caret-color:var(--blue)}[hidden]{display:none!important}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.skip-link{position:fixed;left:16px;top:-70px;z-index:100;background:var(--surface);padding:12px 18px;border:1px solid var(--line);border-radius:8px}.skip-link:focus{top:12px}.site-header{max-width:1360px;margin:auto;padding:24px 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;min-height:44px}.brand img{display:block;width:90px;height:auto}.workspace-link{display:flex;align-items:center;gap:5px;min-height:44px;font-size:13px;font-weight:650;text-decoration:none}.workspace-link:hover{text-decoration:underline}main{max-width:1360px;margin:auto;padding:38px 48px 64px}.calendar-heading h1{font-size:34px;letter-spacing:-.03em;line-height:1.15;margin:0 0 9px}.calendar-heading p{color:var(--muted);margin:0;font-size:14px}.month-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:26px 0 0;margin-top:6px}.month-select{position:relative;min-width:0}.month-select-button{display:inline-flex;align-items:center;gap:12px;border:0;background:transparent;padding:6px 4px 6px 0;min-height:44px;font-size:23px;font-weight:700;letter-spacing:-.02em;text-align:left}.month-select-button svg{width:18px;height:18px;color:var(--muted)}.month-actions{display:flex;align-items:center;gap:8px}.icon-button,.quiet-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:10px;line-height:1.2}.quiet-button{padding:10px 14px;font-size:13px;font-weight:650}.icon-button:hover,.quiet-button:hover{background:var(--tint);border-color:#bdcceb}.calendar-status{font-size:13px;color:var(--muted);margin:14px 0 26px;min-height:20px;font-variant-numeric:tabular-nums}.event-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px;align-items:start}.event-entry{min-width:0}.flyer-surface{margin:0;background:var(--surface);border-radius:12px;overflow:hidden;position:relative}.flyer-surface img{display:block;width:100%;height:auto;max-height:620px;object-fit:contain;min-height:120px;background:var(--surface)}.event-caption{display:grid;grid-template-columns:1fr auto;gap:10px;padding:15px 0 0}.event-date{margin:0 0 5px;font-size:12px;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums}.event-title{font-size:19px;line-height:1.3;letter-spacing:-.02em;margin:0;overflow-wrap:anywhere}.event-ministry{color:var(--muted);font-size:13px;margin:7px 0 0;overflow-wrap:anywhere}.details-button{align-self:start;border-radius:50%;width:44px;height:44px;min-height:44px;background:var(--surface);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center}.details-button:hover{color:var(--blue);background:var(--tint);border-color:#bdcceb}.details-button svg{width:21px;height:21px}.flyer-unavailable{margin:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;min-height:240px;padding:24px;text-align:center;color:var(--muted);background:#edf1f8;border-radius:12px}.flyer-unavailable svg{width:30px;height:30px;color:#59729a}.flyer-unavailable strong{font-size:20px;line-height:1.35;letter-spacing:-.02em;color:var(--ink);overflow-wrap:anywhere}.flyer-unavailable span{font-size:13px}.flyer-unavailable .image-error-title{font-size:14px;font-weight:500;color:var(--muted)}.calendar-message{padding:58px 20px 72px;text-align:center;border-top:1px solid var(--line)}.calendar-message h2{font-size:22px;letter-spacing:-.02em;margin:0 0 8px}.calendar-message p{color:var(--muted);margin:0 auto 22px;max-width:44ch;font-size:14px}.calendar-message button{border:0;background:var(--blue);color:#fff;min-height:44px;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:650}.calendar-message button:hover{background:#1b46ac}.month-select-panel{position:fixed;inset:auto;margin:0;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:14px;width:min(300px,calc(100vw - 32px));box-shadow:0 12px 35px #0000001a;z-index:10}.year-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.year-navigation .icon-button{border-color:transparent}.year-navigation strong{font-size:17px;font-variant-numeric:tabular-nums}.month-options{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.month-option{background:transparent;border:0;border-radius:8px;padding:10px 4px;min-height:44px;font-size:13px}.month-option:hover{background:var(--tint)}.month-option[aria-pressed=true]{background:var(--blue);color:#fff;font-weight:650}dialog{padding:0;border:0;border-radius:16px;background:var(--surface);color:var(--ink);width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - 48px);box-shadow:0 18px 70px #0000003d;overflow:hidden}dialog::backdrop{background:#18243a80}.details-header{display:flex;align-items:start;gap:16px;justify-content:space-between;padding:24px 24px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.details-header h2{margin:5px 0 0;font-size:24px;line-height:1.25;letter-spacing:-.025em;overflow-wrap:anywhere}.details-header .icon-button{flex:none;border-color:transparent}.details-body{padding:22px 24px 28px;max-height:calc(100dvh - 210px);overflow-y:auto;overscroll-behavior:contain}.details-meta{color:var(--muted);font-size:14px;margin:0 0 24px}.details-meta p{margin:0 0 6px}.details-meta strong{color:var(--ink);font-weight:600}.event-description{font-size:15px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;max-width:66ch}.event-location{border-top:1px solid var(--line);margin:24px 0 0;padding-top:18px;display:flex;align-items:start;gap:10px;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.event-location svg{color:var(--muted);margin-top:1px}.event-location strong{display:block;margin-bottom:3px}body:has(dialog[open]){overflow:hidden}@media(min-width:1500px){.event-gallery{gap:42px 34px}}@media(max-width:950px){.site-header{padding:20px 28px}main{padding:32px 28px 56px}.event-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}.flyer-surface img{max-height:650px}}@media(max-width:560px){.site-header{padding:14px 20px}.brand img{width:74px}.workspace-link{font-size:12px;gap:2px}.workspace-link svg{width:17px}main{padding:28px 20px 48px}.calendar-heading h1{font-size:29px}.calendar-heading p{font-size:13px}.month-toolbar{gap:8px;align-items:start;flex-wrap:wrap;padding-top:19px}.month-select-button{font-size:21px;gap:8px}.month-actions{gap:5px}.month-actions .icon-button{min-width:40px;padding:8px}.month-actions .quiet-button{font-size:12px;padding:10px}.calendar-status{margin:10px 0 22px}.event-gallery{grid-template-columns:1fr;gap:32px}.flyer-surface img{max-height:none}.event-title{font-size:20px}.event-caption{padding-top:14px}.calendar-message{padding:40px 4px}.details-header{padding:18px 18px 15px}.details-header h2{font-size:22px}.details-body{padding:19px 20px 24px}}@media(max-width:370px){.month-toolbar{row-gap:8px}.month-actions{width:100%;justify-content:space-between}.month-select-button{font-size:22px}.site-header{padding-inline:16px}main{padding-inline:16px}}@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .16s ease,color .16s ease,border-color .16s ease}dialog[open]{animation:details-enter .22s cubic-bezier(.16,1,.3,1)}dialog[open]::backdrop{animation:backdrop-enter .18s ease}dialog.is-closing{animation:details-exit .15s ease-in forwards}dialog.is-closing::backdrop{animation:backdrop-exit .15s ease-in forwards}@keyframes details-enter{from{opacity:.3;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@keyframes details-exit{to{opacity:0;transform:translateY(8px) scale(.98)}}@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}@keyframes backdrop-exit{to{opacity:0}}}

/* A written notice stays legible over every ministry-supplied flyer. */
.cancelled-banner{position:absolute;inset:50% 0 auto;transform:translateY(-50%);z-index:1;background:#a52536;color:#fff;padding:12px 16px;text-align:center;font-size:19px;font-weight:750;letter-spacing:.06em;line-height:1.3;text-transform:uppercase;pointer-events:none}.event-cancelled-status{display:inline-block;margin:0 0 8px;padding:3px 9px;border-radius:5px;background:#fcecef;color:#9e2032;font-size:12px;font-weight:750;line-height:1.5}.details-cancelled-status{margin-bottom:18px;font-size:13px}

/* Public church updates share one page while preserving the selected event month. */
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:28px}
.calendar-heading>div:first-child{min-width:0}
.public-view-switch{display:inline-flex;align-items:stretch;flex:none;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#eaf0fb}
.public-view-switch button{min-height:46px;min-width:112px;padding:10px 20px;border:0;border-radius:8px;background:transparent;color:#3b547e;font-size:14px;font-weight:650;line-height:1.4}
.public-view-switch button:hover{background:#dce7fc;color:#173f99}
.public-view-switch button[aria-pressed=true]{background:var(--blue);color:#fff}
.public-view-switch button[aria-pressed=true]:hover{background:#1b46ac}
#public-announcements{padding-top:32px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:is(.announcements-library,.announcements-dialog) .quiet{display:inline-flex;align-items:center;justify-content:center;min-height:44px;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:14px;font-weight:650;line-height:1.4}
:is(.announcements-library,.announcements-dialog) .quiet:hover{background:var(--tint);border-color:#bdcceb;color:#1b46ac}
.announcements-search input::placeholder{color:var(--muted)}
@media(max-width:560px){.calendar-heading{align-items:stretch;flex-direction:column;gap:24px}.public-view-switch{width:100%}.public-view-switch button{min-width:0;flex:1;padding-inline:14px}#public-announcements{padding-top:26px}}

.postponed-banner{background:#694098}.event-postponed-status{background:#f0e9f8;color:#593181}.event-repeat{color:#52627a;font-size:12px;margin:6px 0 0}.event-status-note{font-size:14px;line-height:1.6;margin:10px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#3f4f69}

.public-submission-links{display:flex;flex-wrap:wrap;gap:6px 26px;margin-top:22px;padding-bottom:8px}.public-submission-links a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:600}@media(max-width:560px){.public-submission-links{gap:0 20px;margin-top:14px}.public-submission-links a{font-size:13px}}
