/* CMS page and repeatable news/event sections. No shared framework overrides. */
.ws-events, .ws-home .ws-event-promo { --wse-ink:#252e26; --wse-paper:#f4f1e9; --wse-red:#b7242c; color:var(--wse-ink); font-family:"Source Sans 3",sans-serif; font-size:1.125rem; line-height:1.6; }
.ws-events *, .ws-events *::before, .ws-events *::after, .ws-home .ws-event-promo * { box-sizing:border-box; }
.ws-events .ws-events__shell { width:min(1320px,calc(100% - 64px)); margin-inline:auto; }
.ws-events h1, .ws-events h2, .ws-events h3, .ws-events h4, .ws-home .ws-event-promo h3 { color:var(--wse-ink); font-family:"Barlow Condensed",sans-serif; font-weight:600; line-height:1.05; letter-spacing:-.015em; text-transform:none !important; }
.ws-events h1 { font-size:clamp(2.6rem,5vw,4.5rem); margin:0; }
.ws-events h2 { font-size:clamp(2.75rem,5.2vw,4.8rem); margin:0 0 1.6rem; max-width:14ch; }
.ws-events p, .ws-events li, .ws-home .ws-event-promo p { color:inherit; font:inherit; letter-spacing:normal; margin:0 0 1.1rem; }
.ws-events a { color:#9b1f27; font:inherit; text-underline-offset:.2em; overflow-wrap:anywhere; }
.ws-events a:focus-visible, .ws-home .ws-event-promo a:focus-visible { outline:3px solid #c82a31; outline-offset:5px; }
.ws-events .ws-events__kicker, .ws-home .ws-event-promo .ws-event-promo__kicker { color:#a7232a; font-size:.8rem; font-weight:700; line-height:1.4; letter-spacing:.12em; text-transform:uppercase; margin:0 0 1rem; }
.ws-events--intro { padding:26px 0 45px; background:radial-gradient(ellipse at 95% 0,#465641 0,transparent 65%),#253126; }
.ws-events--intro h1 { color:#fff; }
.ws-events--intro .ws-events__kicker { color:#dbdfd2; }
.ws-events .ws-events__crumbs { display:flex; flex-wrap:wrap; gap:.55rem; margin-bottom:2.25rem; font-size:.9rem; line-height:1.5; }
.ws-events .ws-events__crumbs a, .ws-events .ws-events__crumbs span { color:#e2e7dc; }
.ws-events .ws-events__crumbs [aria-current] { color:#c6cdbc; }
.ws-events .ws-events__intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:end; }
.ws-events .ws-events__intro-copy { color:#ecede5; font-size:1.2rem; max-width:45ch; }
.ws-events .ws-events__intro-copy > :last-child { margin-bottom:0; }
.ws-events--feature { background:linear-gradient(115deg,#f6f3ec 0%,#ebe8dc 100%); padding:64px 0; scroll-margin-top:120px; }
.ws-events--feature + .ws-events--feature { background:#fff; }
.ws-events .ws-events__feature-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,6vw,6rem); align-items:center; }
.ws-events .ws-events__feature-grid--text { grid-template-columns:minmax(0,800px); }
.ws-events .ws-events__feature-copy { min-width:0; }
.ws-events .ws-events__prose { max-width:52ch; overflow-wrap:anywhere; }
.ws-events .ws-events__prose h2, .ws-events .ws-events__prose h3, .ws-events .ws-events__prose h4 { font-family:"Source Sans 3",sans-serif; font-size:1.3rem; font-weight:700; line-height:1.4; letter-spacing:normal; max-width:none; margin:1.5rem 0 .9rem; }
.ws-events .ws-events__prose > :first-child { margin-top:0; }
.ws-events .ws-events__prose ul, .ws-events .ws-events__prose ol { padding:0 0 0 1.2rem; margin:1rem 0 1.5rem; list-style-position:outside; }
.ws-events .ws-events__prose ul { list-style-type:square; }
.ws-events .ws-events__prose ol { list-style-type:decimal; }
.ws-events .ws-events__prose li { display:list-item; list-style:inherit; padding-left:.25rem; margin-bottom:.5rem; }
.ws-events .ws-events__prose li::marker { color:var(--wse-red); }
.ws-events .ws-events__prose table { width:100%; font-size:1rem; border-collapse:collapse; }
.ws-events .ws-events__prose th, .ws-events .ws-events__prose td { padding:.55rem; border-bottom:1px solid #c7cbbf; text-align:left; }
.ws-events .ws-events__poster { width:100%; max-width:480px; margin:0; justify-self:end; }
.ws-events .ws-events__poster img { display:block; width:100%; height:auto; }
.ws-events .ws-events__button, .ws-home .ws-event-promo .ws-event-promo__button { display:inline-flex; justify-content:space-between; align-items:center; gap:2rem; padding:1rem 1.35rem; min-height:48px; margin-top:.75rem; background:var(--wse-red); color:#fff; font-size:1rem; font-weight:600; line-height:1.4; letter-spacing:normal; text-decoration:none; text-transform:none; border:0; }
.ws-events .ws-events__button:hover, .ws-home .ws-event-promo .ws-event-promo__button:hover { color:#fff; background:#8c1b22; }
.ws-events--empty { padding:55px 0; background:var(--wse-paper); }
.ws-events--empty h2 { font-size:2.5rem; }
.ws-home .ws-event-promo { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); align-items:center; gap:clamp(1.5rem,4vw,4rem); padding:32px; margin:0 0 32px; background:linear-gradient(125deg,#ece8dc,#fffdf8); }
.ws-home .ws-event-promo--text { grid-template-columns:1fr; }
.ws-home .ws-event-promo .ws-event-promo__poster { width:100%; max-width:260px; justify-self:center; margin:0; }
.ws-home .ws-event-promo .ws-event-promo__poster img { display:block; width:100%; height:auto; }
.ws-home .ws-event-promo h3 { font-size:clamp(2rem,3.4vw,3.3rem); margin:0 0 1.1rem; }
.ws-home .ws-event-promo .ws-event-promo__body { max-width:60ch; }
.ws-home .ws-event-promo .ws-event-promo__body h2, .ws-home .ws-event-promo .ws-event-promo__body h3, .ws-home .ws-event-promo .ws-event-promo__body h4 { color:var(--wse-ink); font-family:"Source Sans 3",sans-serif; font-size:1.1rem; line-height:1.5; letter-spacing:normal; font-weight:700; text-transform:none !important; margin:0 0 .65rem; }
.ws-home .ws-event-promo .ws-event-promo__body p { font-size:1.05rem; }
.ws-home .ws-event-promo .ws-event-promo__body a { color:#9b1f27; }
@media (max-width:767px) {
    .ws-events { font-size:1.05rem; }
    .ws-events .ws-events__shell { width:calc(100% - 36px); }
    .ws-events--intro { padding:20px 0 32px; }
    .ws-events .ws-events__crumbs { font-size:.85rem; margin-bottom:1.5rem; }
    .ws-events .ws-events__intro-grid { grid-template-columns:1fr; gap:1.3rem; }
    .ws-events .ws-events__intro-copy { font-size:1.1rem; }
    .ws-events--feature { padding:36px 0; scroll-margin-top:92px; }
    .ws-events .ws-events__feature-grid { grid-template-columns:1fr; gap:2rem; }
    .ws-events h2 { font-size:2.7rem; max-width:17ch; margin-bottom:1.25rem; }
    .ws-events .ws-events__poster { justify-self:center; }
    .ws-events .ws-events__button { width:100%; gap:1rem; }
    .ws-home .ws-event-promo { grid-template-columns:1fr; padding:24px; gap:24px; }
    .ws-home .ws-event-promo .ws-event-promo__poster { max-width:220px; }
    .ws-home .ws-event-promo .ws-event-promo__button { width:100%; gap:1rem; }
}
