#agency-occasions h1 { line-height: 1.5; }
.occasion-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .625rem; }
.occasion-navigation a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: .625rem; font-size: .875rem; text-align: center; line-height: 1.6; border: 1px solid var(--border); }
.occasion-group, .occasion-card { scroll-margin-block-start: 1.5rem; }
.occasion-group + .occasion-group { padding-block-start: .625rem; }
.occasion-card { border: 1px solid var(--border); }
.occasion-card summary { cursor: pointer; list-style: none; padding: 1.25rem; }
.occasion-card summary::-webkit-details-marker { display: none; }
.occasion-summary-title { display: flex; align-items: center; justify-content: space-between; gap: .75rem; line-height: 1.65; }
.occasion-chevron { flex: 0 0 20px; }
.occasion-card[open] .occasion-chevron { transform: rotate(180deg); }
.occasion-description { display: block; margin-block-start: .5rem; line-height: 1.8; }
.occasion-content { padding: 0 1.25rem 1.25rem; }
.occasion-content > p { padding-block-start: 1rem; border-block-start: 1px solid var(--border); }
.occasion-formats { display: flex; flex-wrap: wrap; gap: .5rem; margin-block: .75rem 1rem; }
.occasion-formats li { border: 1px solid var(--border); border-radius: .75rem; padding: .4rem .7rem; font-size: .875rem; line-height: 1.5; }
.occasion-cta { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: .875rem 1rem; text-align: center; font-size: .875rem; font-weight: 600; line-height: 1.6; }
.occasion-service-link { display: flex; justify-content: center; align-items: center; min-height: 44px; text-align: center; text-decoration: underline; text-underline-offset: .3rem; }
#agency-occasions :is(a, summary):focus-visible { outline: 2px solid var(--foreground); outline-offset: 4px; border-radius: 1rem; }
