.nfg-special-card{padding:0;overflow:hidden;background:#fff;scroll-margin-top:110px}.nfg-special-card>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:transparent}.nfg-special-body{padding:24px;background:inherit}.nfg-special-body .tag{display:block}.nfg-recurring{display:block;font-size:.8rem;font-weight:700;color:var(--blue);margin:7px 0}.nfg-compact-card{display:flex;flex-direction:column;max-height:440px}.nfg-compact-card>img{max-height:145px}.nfg-compact-card .nfg-special-body{display:flex;flex-direction:column;flex:1;padding:20px;min-height:0}.nfg-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}.nfg-compact-card .nfg-special-body>a{margin-top:auto}.nfg-special-body p{white-space:normal}.nfg-special-body h3{margin-top:12px}.banner .announcement{display:block}.banner .announcement>span{display:inline}.banner[hidden]{display:none}.nfg-special-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}@media(max-width:760px){.nfg-special-grid{grid-template-columns:1fr}}
.nfg-compact-card>img{max-height:none;flex-shrink:0}.nfg-compact-card .nfg-special-body h3{font-size:1.05rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nfg-compact-card .nfg-clamp{min-height:0;flex-shrink:1}

/* CMS announcements are independent rows, not flex columns. */
#nfg-announcements .wrap{display:block}
#nfg-announcements .announcement{display:block;width:100%;margin:8px 0 0;min-width:0;overflow-wrap:anywhere;white-space:normal}
#nfg-announcements .announcement>span,#nfg-announcements .announcement>a{display:inline;white-space:normal;min-width:0}
.nfg-photo-frame{display:block;position:relative;overflow:hidden;flex-shrink:0;background:#F0F2FA}
.nfg-photo-frame>img{display:block;width:100%;height:100%;object-fit:cover}
.nfg-special-image{width:100%}
.nfg-special-card,.nfg-special-body{background:#F0F2FA}
.nfg-special-grid{align-items:start}
.nfg-event-description{overflow-wrap:anywhere;line-height:1.55}
.nfg-event-description p{margin:0 0 .75em}
.nfg-event-description p:last-child{margin-bottom:0}
/* Keep paragraphs in normal flow: WebKit line-clamp across nested blocks can overlap on iOS. */
.nfg-event-description.nfg-description-clamped{display:block;max-height:4.65em;overflow:hidden}
.nfg-expand{display:block;border:0;background:transparent;color:var(--blue);padding:8px 0;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.nfg-expand[hidden]{display:none}
.nfg-expand:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.nfg-event-cta{margin-top:16px;overflow-wrap:anywhere}
.nfg-event-cta:empty{display:none}
.nfg-compact-card .nfg-special-image{max-height:none;flex-shrink:0}
@media(max-width:760px){.nfg-photo-frame.staff-photo{width:105px;height:105px}}

/* Equal collapsed content slots; only the selected description expands.
   Minimum sizes, rather than fixed heights, keep text zoom/wrapping safe. */
.nfg-full-card .nfg-special-body{display:flex;flex-direction:column;gap:12px}
.nfg-event-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;min-height:2.1rem}
.nfg-event-meta .tag{display:inline-block;max-width:100%;overflow-wrap:anywhere}
.nfg-event-meta .nfg-event-cta{margin:0;min-width:0;max-width:100%;margin-left:auto;text-align:right;font-weight:700}
.nfg-full-card .nfg-special-body h3{margin:0;line-height:1.4;min-height:2.8em;overflow-wrap:anywhere}
.nfg-full-card .nfg-event-description{min-height:4.65em}
.nfg-expand-slot{min-height:2.5rem}
.nfg-expand-slot .nfg-expand{margin:0;padding:4px 0;min-height:2.5rem}
.nfg-full-card .nfg-recurring{margin:0}

/* Homepage summaries share a compact structure; the large photo stays on
   Events & Parties. Never clip the inline summary or its destination link. */
#upcoming-events{align-items:start}
#upcoming-events .nfg-upcoming-card{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;min-height:300px;max-height:none;padding:24px;overflow:visible;background:#fff}
.nfg-upcoming-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:54px}
.nfg-upcoming-head .tag{align-self:flex-start;max-width:calc(100% - 108px);overflow-wrap:anywhere}
.nfg-upcoming-head .tag:only-child{max-width:100%}
.nfg-upcoming-head .nfg-upcoming-image{width:96px;height:54px;border-radius:6px}
#upcoming-events .nfg-upcoming-card h3{margin:0;line-height:1.4;min-height:2.8em;font-size:1.1rem;overflow-wrap:anywhere;display:block;overflow:visible}
#upcoming-events .nfg-upcoming-summary,#upcoming-events .nfg-upcoming-note{margin:0;line-height:1.55;min-height:4.65em;overflow:visible;overflow-wrap:anywhere;white-space:normal}
.nfg-summary-tail{white-space:nowrap;display:inline-block}
.nfg-summary-tail a{font-weight:700}
#upcoming-events .nfg-upcoming-calendar{margin-top:auto}
#upcoming-events .nfg-upcoming-card .nfg-recurring{margin:0}

/* Static birthday copy/photo alongside the CMS special-event section. */
.nfg-birthday-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:48px}
.nfg-birthday-copy{min-width:0}
.nfg-birthday-copy h2{margin-top:12px}
.nfg-birthday-photo{aspect-ratio:4/3;overflow:hidden;border-radius:20px;background:#F0F2FA}
.nfg-birthday-photo img{display:block;width:100%;height:100%;object-fit:contain;padding:24px;box-sizing:border-box}
.nfg-events-calendar{margin-bottom:32px}
@media(max-width:760px){.nfg-birthday-layout{grid-template-columns:1fr;gap:28px}.nfg-birthday-photo{grid-row:1}.nfg-birthday-photo img{padding:20px}}

#nfg-special-events > .wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
#nfg-special-events h2 {
  flex: 1 1 360px;
  margin: 0;
}
#nfg-special-events .nfg-events-calendar {
  margin: 0;
  margin-left: auto;
}
#nfg-special-events .nfg-events-calendar .button {
  background: transparent;
  border: 0;
  padding: 0;
  color: var(--blue);
  font-weight: 700;
   font-size: 1.1rem;
}
#nfg-special-events .nfg-events-calendar .button::after {
  content: " →";
}
#nfg-special-events .nfg-events-calendar .button:hover {
  background: transparent;
  text-decoration: underline;
}
#nfg-special-events .nfg-special-grid {
  flex: 0 0 100%;
  min-width: 0;
}
.nfg-hours {
  margin: 20px 0 0;
}

.nfg-hours-row {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
}

.nfg-hours-row dt {
  padding: 6px 16px 6px 0;
  font-weight: 600;
}

.nfg-hours-row dd {
  margin: 0;
  padding: 6px 0 6px 20px;
  border-left: 1px solid #b8cce1;
  font-variant-numeric: tabular-nums;
}
.feature-panel:has(.nfg-hours) {
  width: fit-content;
  max-width: 100%;
  box-sizing: border-box;
  justify-self: start;
  padding: 32px;
}
