.mobile-calendar-open { display:none; }
.mobile-calendar-dialog { border:0; padding:16px 20px calc(24px + env(safe-area-inset-bottom)); color:var(--we-ink,#111827); background:#fff; border-radius:20px 20px 0 0; box-shadow:0 -8px 40px #11182726; }
.mobile-calendar-dialog::backdrop { background:#11182760; }
.mobile-calendar-handle { width:38px; height:4px; margin:0 auto 14px; border-radius:4px; background:#d5d9df; }
.mobile-calendar-header,.mobile-calendar-month-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.mobile-calendar-header h2 { font:700 18px/1.4 var(--we-sans,Arial); margin:0; }
.mobile-calendar-month-nav h3 { font:700 16px/1.4 var(--we-sans,Arial); margin:0; }
.mobile-calendar-dialog button { font:600 14px/1.4 var(--we-sans,Arial); color:inherit; border:1px solid #e5e7eb; border-radius:8px; min-width:44px; min-height:44px; background:#fff; cursor:pointer; }
.mobile-calendar-dialog button:focus-visible,.mobile-calendar-events a:focus-visible { outline:2px solid #a52d25; outline-offset:2px; }
.mobile-calendar-shortcuts { display:flex; gap:8px; margin:12px 0; }
.mobile-calendar-shortcuts button { padding:7px 16px; }
.mobile-calendar-weekdays,.mobile-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; text-align:center; }
.mobile-calendar-weekdays { font-size:12px; color:#64748b; margin:10px 0 5px; }
.mobile-calendar-days button { position:relative; min-width:0; padding:5px 0 11px; border-color:transparent; }
.mobile-calendar-days button.is-today { border-color:#b9c0ca; }
.mobile-calendar-days button.has-events::after { content:""; position:absolute; bottom:5px; left:calc(50% - 2px); width:4px; height:4px; border-radius:50%; background:#a52d25; }
.mobile-calendar-days button[aria-pressed="true"] { background:#111827; color:#fff; }
.mobile-calendar-days button[aria-pressed="true"]::after { background:#fff; }
.mobile-calendar-legend,#mobile-calendar-status { font-size:12px; line-height:1.5; color:#64748b; margin:7px 0; }
#mobile-calendar-status:empty { display:none; }
.mobile-calendar-results { border-top:1px solid #e5e7eb; margin-top:12px; padding-top:12px; }
.mobile-calendar-results h3 { font:700 15px/1.5 var(--we-sans,Arial); margin:0 0 8px; }
.mobile-calendar-event { display:block; padding:12px 0; color:#111827; border-bottom:1px solid #e5e7eb; text-decoration:none; }
.mobile-calendar-event strong,.mobile-calendar-event span { display:block; }
.mobile-calendar-event span { color:#64748b; font-size:13px; margin-top:4px; }
body.we-calendar-open { overflow:hidden; }
@media (max-width:760px) {
    body { padding-bottom:calc(70px + env(safe-area-inset-bottom)); }
    .header-actions .header-cta,.header-actions .account-link { display:none; }
    .masthead { grid-template-columns:minmax(0,1fr) auto; gap:12px; min-height:0; padding-block:10px; }
    .masthead .brand-copy { display:none; }
    .masthead .header-actions { justify-content:flex-end; min-width:0; }
    .mobile-menu { z-index:1100; }
    .page-event .detail-title,.page-index .featured-title { font-size:24px; line-height:1.25; overflow-wrap:anywhere; }
    .page-index .section-header h2,.page-index .next-panel h2,.page-index .calendar-panel h2,.page-index .facebook-events-header h2,.page-index .organizer-callout h2 { font-size:21px; line-height:1.3; }
    .page-index .event-card-content h3 { font-size:19px; line-height:1.35; }
    .mobile-menu summary { min-height:44px; font-size:14px; white-space:nowrap; }
    .mobile-menu nav { width:min(260px,calc(100vw - 64px)); max-height:calc(100dvh - 150px); overflow-y:auto; right:0; left:auto; text-align:left; }
    .mobile-menu nav a { color:var(--we-ink,#111827); min-height:44px; display:flex; align-items:center; font-size:14px; }
    .mobile-calendar-open { display:flex; align-items:center; justify-content:center; gap:9px; position:fixed; z-index:1000; bottom:calc(12px + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); min-height:46px; padding:10px 24px; border:1px solid #e5e7eb; border-radius:24px; background:#fff; color:#111827; box-shadow:0 4px 20px #11182726; font:600 14px/1.4 var(--we-sans,Arial); cursor:pointer; }
    .mobile-calendar-dialog { position:fixed; inset:auto 0 0; margin:0; width:100%; max-width:100%; height:56vh; height:56dvh; max-height:calc(100dvh - 24px); overflow:auto; overscroll-behavior:contain; }
}
@media (prefers-reduced-motion:no-preference) {
    .mobile-calendar-dialog[open] { animation:we-calendar-slide .18s ease-out; }
    @keyframes we-calendar-slide { from { transform:translateY(35px); opacity:.5; } to { transform:translateY(0); opacity:1; } }
}
