.observance-intro{max-width:850px}.observance-jumps{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 36px}.observance-jumps a{border:1px solid var(--line,#c8c7bd);padding:9px 15px;font-size:.85rem;text-decoration:none}.observance-section{margin:48px 0;scroll-margin-top:110px}.observance-section>p{max-width:850px}.observance-years{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0}.observance-year{border:1px solid var(--line,#c8c7bd);background:var(--white,#fffdf8);padding:28px;min-width:0}.observance-year h3{font-size:2.2rem}.observance-year dl{margin:0}.observance-year dl>div{border-top:1px solid var(--line,#d9d6cc);padding:13px 0}.observance-year dt{font-size:.8rem;color:var(--muted,#526577)}.observance-year dd{margin:3px 0 0;font-size:1rem;font-weight:bold}.observance-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.observance-info-grid h3{font-size:1.45rem}.observance-info-grid p{font-size:.94rem}.observance-list>a{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,2fr) 20px;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line,#d9d6cc);text-decoration:none}.observance-list span{font-size:.92rem}.observance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:25px 0 45px}.observance-card{display:block;background:var(--white,#fffdf8);border:1px solid var(--line,#d9d6cc);padding:28px;text-decoration:none;min-width:0}.observance-card h3{font-size:1.9rem}.observance-card p{font-size:.94rem}.observance-card .observance-when{font-size:.76rem;color:var(--rust,#94603e);font-weight:bold;line-height:1.5}.season-feature{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center;border-top:1px solid var(--line,#c8c7bd);border-bottom:1px solid var(--line,#c8c7bd);padding:32px 0;margin:20px 0 40px}.season-feature h2{font-size:clamp(1.9rem,3vw,2.8rem);margin-bottom:14px}.season-feature p{max-width:720px;margin-bottom:10px}.season-feature .source-note{font-size:.82rem;color:var(--muted,#526577)}.season-actions{display:flex;flex-direction:column;gap:16px;align-items:flex-start;max-width:290px}.season-actions .button{white-space:normal}.observance-table-wrap{overflow-x:auto;border:1px solid var(--line,#d9d6cc);margin:24px 0}.observance-table{width:100%;border-collapse:collapse;min-width:560px}.observance-table caption{text-align:left;padding:16px;font-weight:bold}.observance-table th,.observance-table td{padding:13px 16px;border-top:1px solid var(--line,#d9d6cc);text-align:left;vertical-align:top;font-size:.9rem}.observance-notice{padding:22px;background:var(--cream,#eee7db);border-left:3px solid var(--rust,#94603e);margin:24px 0;max-width:1000px}.observance-article .article-body p{font-size:1rem}.observance-article h2{scroll-margin-top:110px}.observance-sources li{margin-bottom:14px}.observance-sources span{display:block;font-size:.85rem}.observance-article a:not(.button){text-decoration:underline}.observance-related{margin-top:35px;padding:22px;border:1px solid var(--line,#d9d6cc)}
@media(max-width:800px){.observance-info-grid{grid-template-columns:1fr}.season-feature{grid-template-columns:1fr}.season-actions{max-width:none;flex-direction:row;flex-wrap:wrap;align-items:center}.observance-list>a{grid-template-columns:minmax(0,1fr) 20px;gap:7px}.observance-list>a>span:first-of-type{grid-column:1}.observance-list>a>span:last-of-type{grid-column:2;grid-row:1/3}.observance-grid{grid-template-columns:1fr}}
@media(max-width:600px){.observance-years{grid-template-columns:1fr}.observance-year,.observance-card{padding:22px}.season-feature{margin:5px 0 25px}.observance-section{margin:36px 0}.observance-jumps a{font-size:.8rem}.observance-info-grid{gap:12px}}
@media print{.season-feature,.observance-jumps{display:none}.observance-years,.observance-info-grid,.observance-grid{display:block}.observance-year,.observance-card{break-inside:avoid;margin-bottom:20px;background:white}.observance-table-wrap{overflow:visible}.observance-table{min-width:0}.observance-article .article-aside{display:none}}

.nav-inner{flex-wrap:wrap;justify-content:flex-start;column-gap:20px;row-gap:0}
