/* Confirmed programme schedules: scoped to the homepage and Announcements. */
#services .programme-intro { max-width: 740px; margin-bottom: 42px; }
#services .programme-intro > p:not(.eyebrow) { max-width: 590px; }
#services .programme-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 32px; align-items: start; }
#services .programme-weekday { display: grid; gap: 20px; min-width: 0; }
#services .programme-column-title { color: var(--forest); font: 700 12px/1.6 var(--body); letter-spacing: .08em; text-transform: uppercase; }
#services .programme-card { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 7px 20px; padding: 26px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
#services .programme-card .programme-icon { grid-column: 1; grid-row: 1 / 4; }
#services .programme-card > :not(.programme-icon) { grid-column: 2; }
#services .programme-day { color: var(--forest); font-size: 11px; font-weight: 700; line-height: 1.6; letter-spacing: .045em; text-transform: uppercase; }
#services .programme-card h4 { color: var(--deep-navy); font: 500 clamp(24px, 2.1vw, 29px)/1.3 var(--display); letter-spacing: -.02em; overflow-wrap: anywhere; }
#services .programme-time { color: var(--deep-navy); font-size: 13px; font-weight: 600; line-height: 1.7; font-variant-numeric: tabular-nums; }
#services .programme-card > .programme-description { grid-column: 1 / -1; margin-top: 9px; color: var(--muted); font-size: 13px; line-height: 1.8; }
#services .programme-card--monthly { border-top: 3px solid var(--forest); }
#services .programme-icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; color: var(--forest); background: #edf5f0; border-radius: 6px; }
#services .programme-icon .icon { width: 23px; height: 23px; flex-basis: 23px; }
#services .programme-sunday { min-width: 0; padding: 32px; color: var(--white); border-radius: 6px; background: var(--deep-navy); }
#services .programme-sunday-heading { padding-bottom: 26px; }
#services .programme-sunday-heading .eyebrow { color: #b8d9c7; }
#services .programme-sunday-heading h3 { margin: 13px 0 12px; color: var(--white); font: 500 clamp(30px, 2.8vw, 38px)/1.25 var(--display); letter-spacing: -.025em; }
#services .programme-sunday-heading .subtle { max-width: 38ch; color: #d7e3e8; font-size: 13px; line-height: 1.8; }
#services .programme-sunday-list { margin: 0; padding: 0; list-style: none; }
#services .programme-sunday-item { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 8px 16px; align-items: start; padding: 23px 0; border-top: 1px solid rgba(255, 255, 255, .18); }
#services .programme-sunday-item:last-child { padding-bottom: 0; }
#services .programme-sunday-item .programme-icon { grid-column: 1; grid-row: 1 / 3; width: 42px; height: 42px; color: #cfebdc; background: rgba(255, 255, 255, .08); }
#services .programme-details { min-width: 0; }
#services .programme-details h4 { color: var(--white); font: 500 24px/1.35 var(--display); letter-spacing: -.015em; overflow-wrap: anywhere; }
#services .programme-sunday-item .programme-time { grid-column: 2; color: #d7e9df; }
#services .programme-details .programme-description { margin-top: 7px; color: #d7e3e8; font-size: 12px; line-height: 1.75; }

.announcements-page .programme-announcement { margin-bottom: 48px; padding: clamp(22px, 3vw, 36px); border: 1px solid var(--line); border-top: 3px solid var(--forest); border-radius: 6px; background: #f5f8f6; }
.announcements-page .programme-announcement-heading { display: flex; justify-content: space-between; align-items: center; gap: 28px; margin-bottom: 28px; }
.announcements-page .programme-announcement-heading h2 { margin: 14px 0 12px; color: var(--deep-navy); font: 500 clamp(30px, 3vw, 40px)/1.25 var(--display); letter-spacing: -.025em; }
.announcements-page .programme-announcement-heading p:not(.eyebrow) { max-width: 48ch; color: var(--muted); font-size: 13px; }
.announcements-page .programme-announcement-heading .text-link { flex-shrink: 0; }
.announcements-page .programme-announcement-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.announcements-page .programme-announcement-group { min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 4px; background: var(--white); }
.announcements-page .programme-announcement-day { display: flex; align-items: flex-start; gap: 10px; padding-bottom: 16px; color: var(--forest); font: 700 12px/1.7 var(--body); }
.announcements-page .programme-announcement-day .icon { width: 20px; height: 20px; flex-basis: 20px; }
.announcements-page .programme-announcement-list { margin: 0; padding: 0; list-style: none; }
.announcements-page .programme-announcement-list li { padding: 14px 0; border-top: 1px solid var(--line); }
.announcements-page .programme-announcement-list li:last-child { padding-bottom: 0; }
.announcements-page .programme-announcement-list strong { display: block; color: var(--deep-navy); font-size: 15px; font-weight: 600; line-height: 1.65; overflow-wrap: anywhere; }
.announcements-page .programme-time { display: block; margin-top: 4px; color: var(--forest); font-size: 12px; font-weight: 600; line-height: 1.75; font-variant-numeric: tabular-nums; }
.announcements-page .programme-description { margin-top: 10px; color: var(--muted); font-size: 12px; line-height: 1.85; }

@media (max-width: 1023px) {
  #services .programme-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  #services .programme-weekday { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #services .programme-column-title, #services .programme-card--monthly { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .announcements-page .programme-announcement-heading { flex-direction: column; align-items: flex-start; gap: 16px; }
  .announcements-page .programme-announcement-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .announcements-page .programme-announcement-group { padding: 20px; }
}
@media (max-width: 600px) {
  #services .programme-intro { margin-bottom: 32px; }
  #services .programme-weekday { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  #services .programme-card { grid-template-columns: 42px minmax(0, 1fr); gap: 7px 16px; padding: 22px; }
  #services .programme-card .programme-icon { width: 42px; height: 42px; }
  #services .programme-sunday { padding: 24px; }
  #services .programme-details h4 { font-size: 23px; }
}
@media (max-width: 374px) {
  #services .programme-card, #services .programme-sunday { padding: 20px; }
  #services .programme-card { grid-template-columns: 38px minmax(0, 1fr); gap: 7px 12px; }
  #services .programme-card .programme-icon { width: 38px; height: 38px; }
  #services .programme-card h4 { font-size: 23px; }
  .announcements-page .programme-announcement-group { padding: 16px; }
}
