*{box-sizing:border-box}body{margin:0;background:#f3f7fb;font-family:Arial,Helvetica,sans-serif;color:#173551}.cal-top{background:#103b63;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px max(22px,calc((100vw - 1180px)/2));flex-wrap:wrap}.cal-top .brand{display:flex;align-items:center;gap:11px;color:white;font-size:20px;font-weight:700;text-decoration:none}.cal-top nav{display:flex;gap:18px}.cal-top nav a{color:white;text-decoration:none;font-weight:600}.cal-shell{max-width:1180px;margin:32px auto;padding:0 20px}.cal-heading{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:15px;margin-bottom:20px}.eyebrow{color:#477398;font-size:12px;letter-spacing:.1em;font-weight:700}.cal-heading h1{font-size:31px;margin:8px 0}.cal-heading p{margin:4px 0;color:#53738e}.cal-controls{display:flex;align-items:center;gap:14px}.cal-controls a{background:#175a8b;color:white;border-radius:7px;padding:9px 12px;text-decoration:none}.cal-scroll{overflow-x:auto;border-radius:12px;border:1px solid #d4e1ec;background:#fff}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));min-width:875px}.cal-weekday{background:#e2edf5;padding:12px;font-weight:bold;text-align:center}.cal-day{min-height:128px;padding:8px;border-right:1px solid #e0e8ee;border-bottom:1px solid #e0e8ee}.cal-day.outside{background:#f5f8fa;color:#8097a9}.cal-date{display:block;font-weight:bold;margin-bottom:8px}.cal-event{position:relative;margin:5px 0;background:#d7e8f7;border-radius:6px}.cal-event summary{list-style:none;cursor:pointer;padding:6px 8px;color:#124a73;font-size:13px;font-weight:600;overflow-wrap:anywhere}.cal-event summary::-webkit-details-marker{display:none}.cal-event-detail{background:white;border:1px solid #b9cfdf;box-shadow:0 6px 20px #0002;border-radius:6px;padding:10px;font-size:12px;line-height:1.45;overflow-wrap:anywhere}.cal-event-detail p{margin:5px 0}.cal-foot{font-size:13px;color:#668098}.cal-bottom{text-align:center;background:#103b63;color:white;margin-top:40px;padding:18px}@media(max-width:720px){.cal-heading h1{font-size:25px}.cal-top{padding:12px 20px}}
/* Step 7Z92b: public calendar navigation and motto branding */
.cal-top .cal-nav-title{color:#fff;font-weight:700;font-size:15px}
.cal-bottom{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}
.cal-bottom img{display:block;width:32px;height:32px;object-fit:contain;flex:none}

.cal-event-image{display:block;max-width:100%;max-height:270px;width:auto;height:auto;border-radius:7px}.cal-join{margin-top:16px;padding:13px 16px;background:#e2edf5;border-radius:8px;font-size:14px}.cal-join a{color:#175a8b;font-weight:bold}

/* Step 7Z92h: readable event details instead of a day-cell-width column.
   The content stays in the calendar's native disclosure widget. */
.cal-event[open] { z-index: 20; }
.cal-day:has(.cal-event[open]) { position: relative; z-index: 20; }
.cal-event-detail {
  position: relative;
  z-index: 21;
  width: min(370px, calc(100vw - 48px));
  max-width: none;
  padding: 14px 16px;
  font-size: 13px;
  line-height: 1.5;
  border-radius: 8px;
  overflow-wrap: break-word;
}
.cal-event-detail img { max-width: 100%; height: auto; }
/* Events toward the right edge open to the left, preventing horizontal clipping. */
.cal-day:nth-child(7n+6) .cal-event-detail,
.cal-day:nth-child(7n+7) .cal-event-detail { margin-left: max(-235px, calc(-1 * (370px - 100%))); }
@media (max-width: 720px) {
  .cal-event-detail { width: min(340px, calc(100vw - 48px)); padding: 12px; }
  .cal-day:nth-child(7n+6) .cal-event-detail,
  .cal-day:nth-child(7n+7) .cal-event-detail { margin-left: 0; }
}
