.events-page { padding-bottom: clamp(3rem, 6vw, 5rem); }
.events-page > .breadcrumbs { padding-block: 1.25rem; }
.events-hero { display: grid; grid-template-columns: 1.08fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; padding-block: 1.2rem 2.7rem; }
.events-hero .kicker { margin-bottom: 1rem; }
.events-hero h1 { margin: 0 0 1.3rem; font-size: clamp(2.5rem, 4.8vw, 4.25rem); line-height: 1.2; letter-spacing: normal; font-weight: 730; text-wrap: balance; }
.events-lead { max-width: 39rem; color: var(--muted); font-size: 1.125rem; line-height: 1.65; }
.events-updated { margin: 1.4rem 0 0; color: var(--muted); font-size: .8125rem; }
.events-hero-photo { min-width: 0; margin: 0; }
.events-hero-photo picture { display: block; overflow: hidden; border-radius: 18px; }
.events-hero-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1.25; object-fit: cover; }
.events-hero-photo .image-credit { margin-bottom: 0; }
.event-months { padding-block: 1.5rem 3rem; border-top: 1px solid var(--line); }
.event-months > h2, .event-experiences > h2 { margin: 0 0 1.25rem; font-size: clamp(1.45rem, 2.4vw, 2rem); line-height: 1.25; letter-spacing: normal; }
.event-months > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.event-month-card { position: relative; display: flex; flex-direction: column; min-width: 0; border: 1px solid #e2dcd3; border-radius: 10px; color: var(--ink); background: #fffcf7; box-shadow: 0 3px 0 -1px #f4efe7, 0 4px 0 #e2dcd3, 0 9px 18px -12px #34251d40; text-decoration: none; transition: transform .18s, box-shadow .18s; }
.event-month-card::before, .event-month-card::after { content: ""; position: absolute; z-index: 1; top: -.4rem; width: .45rem; height: 1.05rem; border: 1px solid #d6d0c8; border-radius: 4px; background: linear-gradient(90deg, #bfb7ad, #fffaf2 45%, #d6cec3); box-shadow: 0 2px 2px #63190b40; }
.event-month-card::before { left: 18%; }
.event-month-card::after { right: 18%; }
.event-month-card:hover { color: var(--ink); transform: translateY(-3px); box-shadow: 0 3px 0 -1px #f4efe7, 0 4px 0 #e2dcd3, 0 13px 24px -12px #34251d50; }
.event-month-card .event-month-header { display: flex; align-items: center; justify-content: center; min-height: 4.75rem; margin: -1px -1px 0; padding: 1.25rem 1rem; border-radius: 10px 10px 0 0; color: #fff; background: var(--accent-dark); font-size: clamp(1.125rem, 1.8vw, 1.45rem); font-weight: 700; line-height: 1.35; text-align: center; text-wrap: balance; }
.event-month-label { display: block; }
.event-month-body { display: flex; flex: 1; flex-direction: column; gap: 1.25rem; padding: 1.4rem 1.5rem 1.2rem; }
.event-month-card p { margin: 0; font-size: 1rem; line-height: 1.75; }
.event-month-body > span { display: grid; place-items: center; align-self: flex-end; width: 2rem; height: 2rem; margin-top: auto; border: 1px solid #e5d5cb; border-radius: 50%; color: var(--accent-dark); font-size: 1.2rem; line-height: 1; }
.event-experiences { padding-bottom: 3.5rem; }
.event-experiences > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.event-feature { min-width: 0; }
.event-feature-photo { display: block; overflow: hidden; margin-bottom: 1rem; border-radius: 12px; }
.event-feature-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1.4; object-fit: cover; transition: transform .3s; }
.event-feature-photo:hover img { transform: scale(1.03); }
.event-feature h3 { margin: 0 0 .5rem; font-size: 1.125rem; line-height: 1.4; }
.event-feature h3 a { color: var(--ink); text-decoration: none; }
.event-feature h3 a:hover { color: var(--accent-dark); text-decoration: underline; }
.event-feature p { margin: 0; color: var(--muted); font-size: .9375rem; line-height: 1.6; }
.events-main.article-body { max-width: none; width: 100%; font-size: 1rem; }
.event-group { padding-block: 2.4rem; border-top: 1px solid var(--line); }
.event-group > header { margin-bottom: 1.5rem; }
.events-main .event-group > header h2 { margin: 0 0 .65rem; font-size: clamp(1.6rem, 2.5vw, 2.1rem); line-height: 1.25; letter-spacing: normal; }
.event-group > header p { max-width: 49rem; margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.event-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; align-items: start; }
.event-card { min-width: 0; padding: clamp(1.25rem, 2.2vw, 1.7rem); border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.event-card-cancelled { background: #fcf7f2; }
.event-card-heading { margin-bottom: 1.15rem; }
.article-body .event-card h3 { margin: 0 0 .4rem; font-size: 1.2rem; line-height: 1.35; letter-spacing: normal; }
.event-status { display: inline-flex; margin-bottom: .8rem; padding: .3rem .65rem; border-radius: 999px; color: #5d533d; background: #f3eee3; font-size: .75rem; font-weight: 650; line-height: 1.4; }
.event-status-cancelled { color: #912813; background: #ffe8df; }
.event-status-postponed { color: #704a11; background: #fff0cb; }
.article-body .event-dates { display: flex; align-items: flex-start; gap: .55rem; margin: 0 0 .8rem; font-size: .875rem; font-weight: 650; line-height: 1.65; }
.event-dates svg { flex: 0 0 20px; margin-top: 2px; color: var(--accent-dark); }
.event-time { display: block; font-weight: 500; }
.article-body .event-price { margin: 0 0 .8rem; font-size: .875rem; font-weight: 650; line-height: 1.65; }
.event-price > span:first-child { color: var(--muted); font-weight: 500; }
.article-body .event-why { margin: 0 0 1rem; font-size: .9375rem; line-height: 1.7; }
.event-links { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; }
.event-links a { display: inline-flex; align-items: baseline; gap: .4rem; min-height: 36px; max-width: 100%; padding-block: .3rem; color: var(--accent-dark); font-size: .875rem; font-weight: 650; line-height: 1.5; text-underline-offset: .18em; }
.event-links a span { flex: 0 0 auto; }
.article-events { margin-block: 2.5rem; }
.article-events-heading { padding-bottom: 1.2rem; }
.article-body .article-events-heading h2 { margin-bottom: .6rem; }
.article-events-heading > a { display: inline-flex; align-items: baseline; gap: .4rem; color: var(--accent-dark); font-size: .9375rem; font-weight: 650; }
.article-events .event-grid { grid-template-columns: 1fr; }
.events-page a, .event-card { overflow-wrap: anywhere; }
@media (max-width: 820px) {
 .events-hero { grid-template-columns: 1fr; gap: 1.5rem; padding-block: .75rem 2rem; }
 .events-hero h1 { max-width: 40rem; }
 .events-hero-photo img { max-height: 26rem; aspect-ratio: 1.9; }
 .event-experiences > div { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
 .event-month-body { padding: 1.1rem; }
}
@media (max-width: 560px) {
 .events-page > .breadcrumbs { padding-block: .8rem; }
 .events-hero h1 { font-size: 2.35rem; }
 .events-lead { font-size: 1rem; }
 .events-updated { margin-top: 1rem; }
 .events-hero-photo img { aspect-ratio: 1.5; }
 .event-months { padding-bottom: 2rem; }
 .event-months > div { grid-template-columns: 1fr; gap: 1.25rem; }
 .event-month-card .event-month-header { min-height: 4.25rem; font-size: 1.3rem; }
 .event-month-body { gap: .75rem; padding: 1.15rem 1.25rem; }
 .event-experiences { padding-bottom: 2rem; }
 .event-feature h3 { font-size: 1rem; }
 .event-feature p { font-size: .875rem; }
 .event-group { padding-block: 1.8rem; }
 .event-grid { grid-template-columns: 1fr; gap: 1rem; }
 .event-links a { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
 .event-month-card, .event-feature-photo img { transition: none; }
}
@media print {
 .events-hero { display: block; }
 .events-hero-photo, .event-months, .event-experiences, .event-links, .article-events-heading > a { display: none; }
 .events-hero h1 { font-size: 24pt; }
 .event-grid { display: block; }
 .event-card { margin-bottom: 10pt; padding: 10pt; break-inside: avoid; }
 .event-group { padding-block: 12pt; }
}
