.public-calendar-page [hidden] { display:none!important; }
.public-calendar-page { min-width:280px;background:
  radial-gradient(circle at 10% 0%,color-mix(in srgb,var(--brand-soft) 72%,transparent),transparent 34rem),var(--bg); }
.public-calendar-header { position:sticky;z-index:40;top:0;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;padding:9px clamp(20px,5vw,76px);border-bottom:1px solid color-mix(in srgb,var(--line) 76%,transparent);background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(22px); }
.public-calendar-header>a { display:flex;align-items:center; }
.public-calendar-header img { width:clamp(150px,17vw,210px);height:auto;padding:5px 8px;border-radius:11px;background:#fff; }
.public-calendar-header nav { display:flex;align-items:center;gap:10px; }
.public-header-link { min-height:42px;padding:8px 14px;border:0;border-radius:11px;background:transparent;color:var(--brand-dark);font-weight:800;cursor:pointer; }
.public-header-link:hover { background:var(--brand-soft); }
.public-calendar-main { width:min(1640px,calc(100% - clamp(28px,6vw,100px)));margin:0 auto;padding:clamp(24px,4vw,56px) 0 72px; }
.public-calendar-hero { position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:24px;padding:clamp(28px,4vw,52px);overflow:hidden;border-radius:28px;background:linear-gradient(125deg,#123e39,#176b64 64%,#247e75);color:#fff;box-shadow:var(--shadow); }
.public-calendar-hero::after { content:"";position:absolute;right:-70px;bottom:-190px;width:390px;height:390px;border:66px solid rgba(255,255,255,.07);border-radius:50%; }
.public-calendar-hero>div,.public-calendar-hero>.button { position:relative;z-index:1; }
.public-calendar-hero h1 { margin-bottom:8px;font-size:clamp(3rem,7vw,6.8rem); }
.public-calendar-hero p:not(.eyebrow) { max-width:620px;margin:0;color:rgba(255,255,255,.78);font-size:clamp(1rem,1.6vw,1.2rem); }
.public-calendar-hero .eyebrow { color:#ffd277; }
.button.light { border-color:rgba(255,255,255,.25);background:#fff;color:#124a44;box-shadow:0 12px 30px rgba(0,0,0,.15); }
.public-calendar-main { container:agenda / inline-size; }
.public-agenda-search { margin-bottom:18px;padding:20px 24px; }
.public-agenda-search form>label:first-child { display:block;margin-bottom:8px;font-size:.95rem;font-weight:800; }
.public-search-controls { display:flex;gap:8px; }
.public-search-controls input { flex:1;min-width:0; }
.public-agenda-search .public-search-past { display:flex;align-items:center;gap:9px;min-height:44px;width:fit-content;margin:8px 0 0;font-size:.85rem; }
.public-search-past input { width:18px;height:18px;min-height:0;margin:0; }
.public-agenda-search small { color:var(--muted);font-size:.8rem; }
.public-search-cards { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px; }
.public-search-result { display:grid;gap:6px;min-width:0;padding:16px;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:13px;background:var(--surface);color:var(--text);text-align:left;overflow-wrap:anywhere;cursor:pointer; }
.public-search-result:hover { background:var(--brand-soft); }
.public-search-result strong { font-size:1rem; }
.public-search-result small { font-size:.85rem; }
.public-search-pages { display:flex;flex-wrap:wrap;gap:8px;margin-top:14px; }
.public-agenda-jumps { display:none;flex-wrap:wrap;gap:8px;margin:0 0 16px; }
.public-agenda-jumps a { display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--brand-dark);font-weight:800;font-size:.85rem; }
.public-agenda-jumps a:hover { background:var(--brand-soft); }
.public-calendar-main :is(a,button,summary):focus-visible { outline:3px solid var(--brand);outline-offset:3px; }
.public-calendar-layout { display:grid;grid-template-areas:"month upcoming";grid-template-columns:minmax(0,3fr) minmax(300px,1fr);gap:20px;align-items:start; }
.public-month-panel { grid-area:month;scroll-margin-top:100px; }
.public-month-panel { min-width:0;padding:clamp(16px,2vw,26px); }
.public-month-toolbar { display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:15px; }
.public-month-toolbar h2 { margin:0;text-transform:lowercase; }
.public-category-legend { display:flex;flex-wrap:wrap;gap:7px 14px;margin:0 0 14px;color:var(--muted);font-size:.72rem;font-weight:750; }
.public-category-legend .category-filter { display:flex;align-items:center;gap:6px;min-height:34px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font:inherit;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease; }
.public-category-legend .category-filter:hover { border-color:color-mix(in srgb,var(--brand) 50%,var(--line));color:var(--text); }
.public-category-legend .category-filter.is-active { border-color:color-mix(in srgb,var(--brand) 55%,var(--line));background:var(--brand-soft);color:var(--brand-dark);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 9%,transparent); }
.public-category-legend i { width:9px;height:9px;border-radius:50%;background:#ad7622; }
.public-category-legend .category-1 i { background:#7a4fc3; }.public-category-legend .category-2 i { background:#16836e; }
.public-category-legend .category-3 i { background:#3579bd; }.public-category-legend .category-5 i { background:#c14f6f; }
.public-calendar-status { margin:14px 0 0;color:var(--muted);text-align:center; }
.public-upcoming-panel { grid-area:upcoming;min-width:0;padding:24px;scroll-margin-top:100px; }
.public-upcoming-panel h2 { margin-bottom:8px; }
.public-upcoming-intro { margin:0 0 18px;color:var(--muted);font-size:.85rem; }
.public-upcoming-list { display:grid;gap:9px; }
.public-upcoming-more { grid-column:1/-1;min-width:0; }
.public-upcoming-more summary { min-height:44px;padding:12px 4px;color:var(--brand-dark);font-size:.85rem;font-weight:800;cursor:pointer; }
.public-category-legend .category-filter { min-height:44px; }
.public-upcoming-item { display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center;width:100%;padding:10px;border:1px solid var(--line);border-left:4px solid #ad7622;border-radius:13px;background:color-mix(in srgb,var(--surface-2) 38%,var(--surface));color:var(--text);text-align:left;cursor:pointer; }
.public-upcoming-item:hover { border-color:var(--brand);background:var(--brand-soft); }
.public-upcoming-item.category-1 { border-left-color:#7a4fc3; }.public-upcoming-item.category-2 { border-left-color:#16836e; }
.public-upcoming-item.category-3 { border-left-color:#3579bd; }.public-upcoming-item.category-5 { border-left-color:#c14f6f; }
.public-upcoming-item time { display:grid;place-items:center;align-self:stretch;border-radius:9px;background:var(--surface);font-variant-numeric:tabular-nums; }
.public-upcoming-item time strong { font-size:1.25rem;line-height:1; }.public-upcoming-item time small { font-size:.65rem;text-transform:lowercase; }
.public-upcoming-item>span { min-width:0; }.public-upcoming-item>span strong,.public-upcoming-item>span small { display:block;overflow-wrap:anywhere; }
.public-upcoming-item>span strong { font-size:.95rem;line-height:1.4; }
.public-upcoming-item>span small { margin-top:4px;font-size:.8rem;color:var(--muted);line-height:1.45; }
.public-subscribe-card { margin-top:20px;padding:clamp(24px,3vw,38px);background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--brand-soft) 46%,var(--surface))); }
.public-subscribe-intro { display:flex;align-items:flex-start;justify-content:space-between;gap:24px; }
.public-subscribe-intro>div { max-width:920px; }
.public-subscribe-intro h2 { margin:5px 0 8px; }
.public-subscribe-intro p:last-child { max-width:760px;margin:0;color:var(--muted); }
.public-subscribe-mark { display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:15px;background:var(--brand);color:#fff;font-size:1.35rem;font-weight:900;box-shadow:0 10px 24px color-mix(in srgb,var(--brand) 25%,transparent); }
.public-subscribe-controls { display:grid;gap:14px;min-width:0;margin-top:24px;padding:clamp(16px,2vw,22px);border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--surface) 82%,transparent); }
.public-feed-choices { display:grid;grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);align-items:start;gap:16px; }
.public-subscribe-controls label { display:grid;gap:7px;font-size:.78rem;font-weight:800; }
.public-subscribe-controls label small { color:var(--muted);font-size:.7rem;font-weight:500;line-height:1.45; }
.public-feed-divider { display:grid;place-items:center;width:32px;height:32px;margin-top:38px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);font-size:.64rem;font-weight:850;text-transform:uppercase; }
.public-feed-preview { min-height:58px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface-2) 55%,var(--surface)); }
.public-feed-preview>strong { display:block;margin-bottom:3px;font-size:.83rem; }
.public-feed-preview p { margin:0;color:var(--muted);font-size:.73rem;line-height:1.5; }
.public-feed-preview ul { display:grid;gap:6px;margin:10px 0 0;padding:0;list-style:none; }
.public-feed-preview li { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding-top:7px;border-top:1px solid var(--line); }
.public-feed-preview li span,.public-feed-preview li strong,.public-feed-preview li small { display:block;min-width:0; }
.public-feed-preview li strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem; }
.public-feed-preview li small,.public-feed-preview li time { color:var(--muted);font-size:.66rem; }
.public-feed-preview li time { white-space:nowrap;font-variant-numeric:tabular-nums; }
.public-subscribe-result { display:grid;grid-template-columns:minmax(0,1.8fr) minmax(350px,auto);align-items:stretch;gap:12px; }
.public-subscribe-card .copy-field { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;min-width:0;gap:10px; }
.public-subscribe-card .copy-field input { min-width:0;height:100%; }
.public-subscribe-card .copy-field .button,.public-subscribe-actions .button { min-height:52px;white-space:nowrap; }
.public-subscribe-actions { display:grid;grid-template-columns:auto auto;align-items:stretch;gap:8px; }
.public-subscribe-controls .save-status { min-height:22px;margin:0;color:var(--success); }
.public-calendar-footer { display:flex;justify-content:space-between;gap:20px;padding:26px clamp(20px,5vw,76px);border-top:1px solid var(--line);color:var(--muted);font-size:.82rem; }
.public-calendar-footer a { color:var(--brand);font-weight:800; }
.public-event-dialog .modal-card,.public-calendar-help .modal-card { border-radius:23px; }
.public-event-facts { display:grid;gap:10px;margin:0 0 22px; }
.public-event-facts>div { display:grid;grid-template-columns:84px minmax(0,1fr);gap:14px;padding:13px 15px;border-radius:12px;background:var(--surface-2); }
.public-event-facts dt { color:var(--muted);font-size:.78rem;font-weight:800; }.public-event-facts dd { margin:0;font-weight:700; }
.public-event-description { margin:0;white-space:pre-wrap;overflow-wrap:anywhere; }
.calendar-help-tabs { display:flex;flex-wrap:wrap;gap:7px;margin:20px 0; }
.public-calendar-help ol { margin:12px 0 22px;padding-left:23px; }.public-calendar-help li+li { margin-top:9px; }
.public-calendar-help h4 { margin:18px 0 7px;font-size:.84rem; }
.public-calendar-help section>p { margin:0 0 18px;color:var(--muted);line-height:1.55; }
.public-help-note { margin:22px 0 0;padding:13px 15px;border-radius:12px;background:var(--brand-soft);color:var(--brand-dark);font-size:.82rem; }

@container agenda (max-width:1100px) {
 .public-agenda-jumps { display:flex; }
  .public-calendar-layout { grid-template-columns:1fr;grid-template-areas:"upcoming" "month"; }
  .public-upcoming-panel { position:static; }
  .public-upcoming-list { grid-template-columns:repeat(2,minmax(0,1fr));max-height:none; }
  .public-subscribe-result { grid-template-columns:1fr; }
  .public-subscribe-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .public-calendar-header { min-height:66px;padding:8px 14px; }.public-calendar-header img { width:145px; }
  .public-header-link { padding-inline:9px;font-size:.78rem; }
  .public-calendar-main { width:calc(100% - 20px);padding-top:14px; }
  .public-calendar-footer { align-items:flex-start;flex-direction:column;padding:22px 16px; }
}
@container agenda (max-width:760px) {
  .public-agenda-search { padding:16px; }
  .public-search-controls { flex-wrap:wrap; }
  .public-search-controls input { flex-basis:140px; }
  .public-search-cards { grid-template-columns:1fr; }
  .public-calendar-hero { align-items:flex-start;flex-direction:column;gap:12px;padding:18px 22px;border-radius:22px;margin-bottom:16px; }
  .public-calendar-hero h1 { font-size:2.3rem;margin-bottom:0; }
  .public-calendar-hero p:not(.eyebrow) { display:none; }
  .public-month-toolbar { align-items:flex-start;flex-direction:column; }.calendar-month-actions { width:100%;justify-content:space-between; }
  .public-category-legend { flex-wrap:nowrap;gap:6px;margin-inline:-11px;padding:2px 11px 8px;overflow-x:auto;scrollbar-width:thin; }
  .public-category-legend .category-filter { flex:0 0 auto; }
  .public-month-panel .calendar-weekdays { display:none; }
  .public-month-panel .calendar-month-grid { display:grid;grid-template-columns:1fr;gap:8px;border:0;background:transparent;overflow:visible; }
  .public-month-panel .calendar-day { display:none;min-height:0;border:1px solid var(--line);border-radius:13px;padding:11px; }
  .public-month-panel .calendar-day:not(.is-empty):not(.is-outside),.public-month-panel .calendar-day.is-today { display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px; }
  .public-month-panel .calendar-day>header { align-content:start;justify-content:center;margin:0;padding-top:2px; }
  .public-month-panel .calendar-day>header span { font-size:1.05rem; }.public-month-panel .calendar-day>header small { display:block;font-size:.64rem;text-transform:lowercase; }
  .public-month-panel .calendar-day>div { min-width:0; }
  .public-month-panel .calendar-event { padding:9px 10px; }.public-month-panel .calendar-event strong { font-size:.78rem; }.public-month-panel .calendar-event time { font-size:.66rem; }
  .public-month-panel .calendar-event strong { white-space:normal;overflow-wrap:anywhere; }
  .public-upcoming-list { grid-template-columns:1fr; }
  .public-subscribe-card { padding:23px 18px; }.public-subscribe-mark { display:none; }.public-subscribe-controls { margin-top:18px;padding:14px; }.public-feed-choices { grid-template-columns:1fr;gap:11px; }.public-feed-divider { display:flex;width:auto;height:auto;margin:0;border:0;background:transparent;gap:10px; }.public-feed-divider::before,.public-feed-divider::after { content:"";height:1px;flex:1;background:var(--line); }.public-subscribe-card .copy-field { grid-template-columns:1fr;gap:8px; }
  .public-feed-preview li { align-items:start;grid-template-columns:1fr;gap:2px; }
  .public-subscribe-actions .button { flex:1;min-width:140px; }
}
@media (max-width:430px) {
  .public-calendar-header nav .public-header-link { display:none; }
  .public-event-facts>div { grid-template-columns:1fr;gap:3px; }
}
@container agenda (max-width:430px) {
  .public-month-panel { padding:14px 11px; }.public-upcoming-panel { padding:20px 16px; }
  .public-subscribe-actions { display:grid;grid-template-columns:1fr; }.public-subscribe-actions .button { width:100%; }
}
