.occ-wrap{--occ-navy:#152e46;--occ-red:#c82333;--occ-line:#e3e7ec;--occ-light:#f5f7fa;max-width:1200px;margin:0 auto;font:inherit;color:#182634}.occ-wrap *{box-sizing:border-box}.occ-hero{background:var(--occ-navy);color:white;padding:34px;border-radius:12px;margin-bottom:24px}.occ-hero h2{color:white;font-size:clamp(28px,4vw,42px);line-height:1.15;margin:8px 0}.occ-hero p{color:#e7eef6;margin:6px 0 24px}.occ-eyebrow{font-size:12px;font-weight:800;letter-spacing:1.3px}.occ-submit-cta,.occ-submission button,.occ-filters button{background:var(--occ-red);color:#fff!important;border:0;border-radius:6px;padding:12px 18px;font-weight:700;text-decoration:none;display:inline-block;cursor:pointer}.occ-submit-cta:hover,.occ-submission button:hover,.occ-filters button:hover{background:#a61d2c}.occ-filters{display:grid;grid-template-columns:2fr repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end;background:var(--occ-light);border:1px solid var(--occ-line);border-radius:10px;padding:18px;margin-bottom:30px}.occ-filters label,.occ-submission label{display:block;font-size:13px;font-weight:700}.occ-filters input,.occ-filters select,.occ-submission input,.occ-submission textarea{width:100%;margin-top:6px;border:1px solid #cbd2db;border-radius:6px;padding:11px;background:white;color:#1e293b;font:inherit;min-width:0}.occ-filters button{height:44px}.occ-section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:14px}.occ-section-heading h3,.occ-submission-section h3{margin:0;font-size:24px}.occ-views{display:flex;gap:4px}.occ-view{background:#fff;border:1px solid var(--occ-line);padding:9px 14px;border-radius:6px;cursor:pointer}.occ-view.active{background:var(--occ-navy);color:white}.occ-list{border:1px solid var(--occ-line);border-radius:10px;overflow:hidden}.occ-event{padding:20px;display:flex;gap:18px;align-items:center;border-bottom:1px solid var(--occ-line)}.occ-event:last-child{border-bottom:0}.occ-date{flex:none;width:64px;text-align:center;border-radius:8px;padding:8px;background:#eef2f6}.occ-date span{display:block;color:#52677d;font-size:12px;font-weight:700}.occ-date strong{display:block;font-size:30px;line-height:1.2;color:var(--occ-navy)}.occ-detail{flex:1;min-width:0}.occ-detail h4{font-size:19px;line-height:1.3;margin:0 0 5px}.occ-detail h4 a{color:var(--occ-navy);text-decoration:none}.occ-detail p{margin:3px 0;color:#566371;font-size:14px}.occ-detail .occ-excerpt{margin-top:8px}.occ-details-link{white-space:nowrap;color:var(--occ-red);font-weight:700;text-decoration:none}.occ-empty{padding:28px;color:#556374}.occ-pagination{display:flex;gap:8px;margin:18px 0}.occ-pagination a{padding:7px 12px;border:1px solid var(--occ-line);border-radius:5px;text-decoration:none}.occ-pagination .current{background:var(--occ-navy);color:#fff}.occ-submission-section{border-top:1px solid var(--occ-line);margin-top:42px;padding-top:28px;scroll-margin-top:100px}.occ-submission{display:grid;gap:14px;max-width:820px}.occ-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.occ-submission textarea{resize:vertical}.occ-submission button{justify-self:start}.occ-privacy{font-size:13px;color:#64748b;margin:0}.occ-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.occ-message{background:#e7f5ea;border:1px solid #72bb8b;padding:13px;border-radius:6px;margin:10px 0}.occ-error{background:#ffefef;border:1px solid #db8585;padding:13px;border-radius:6px;margin:10px 0}.occ-single-info{padding:20px;background:#f4f7fa;border-left:4px solid #c82333;margin-bottom:24px}.occ-single-info p{margin:0 0 8px}.occ-month-view{border:1px solid var(--occ-line);border-radius:10px;padding:18px}.occ-month-view[hidden]{display:none}.occ-month-nav{display:flex;justify-content:center;align-items:center;gap:28px;margin-bottom:16px}.occ-month-nav button{border:1px solid var(--occ-line);background:#fff;border-radius:5px;font-size:24px;padding:2px 12px;cursor:pointer}.occ-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.occ-cal-header{text-align:center;font-size:12px;font-weight:700;padding:6px}.occ-cal-day{border:1px solid var(--occ-line);min-height:75px;padding:6px;font-size:13px;overflow:hidden}.occ-cal-day a{display:block;color:#b11e2b;text-decoration:none;font-size:11px;line-height:1.2;margin-top:3px;overflow-wrap:anywhere}.occ-cal-day.outside{background:#f7f8fa;color:#9ca3af}.occ-cal-day.today{border:2px solid var(--occ-red)}.occ-cal-help{font-size:12px;color:#64748b;margin:12px 0 0}@media(max-width:950px){.occ-filters{grid-template-columns:1fr 1fr}.occ-filters label:first-child{grid-column:span 2}}@media(max-width:600px){.occ-hero{padding:22px}.occ-filters,.occ-form-row{grid-template-columns:1fr}.occ-filters label:first-child{grid-column:auto}.occ-event{align-items:flex-start;padding:15px;gap:11px}.occ-date{width:52px}.occ-date strong{font-size:25px}.occ-detail h4{font-size:16px}.occ-details-link{display:none}.occ-cal-day{min-height:56px;padding:2px;font-size:11px}.occ-cal-day a{font-size:9px}.occ-section-heading h3{font-size:20px}}
/* 1.2: keyboard-accessible day selection and full month events */
.occ-wrap button.occ-cal-day{display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:100%;background:#fff;color:#182634;border:1px solid var(--occ-line);font:inherit;cursor:pointer;border-radius:4px;min-width:0}
.occ-wrap button.occ-cal-day:hover{background:#eef4fa;border-color:#7894ac}
.occ-wrap button.occ-cal-day:focus-visible{outline:3px solid #2463a3;outline-offset:1px}
.occ-wrap button.occ-cal-day.selected{background:#e8f0fa;border:2px solid #152e46}
.occ-wrap .occ-count{font-size:11px;font-weight:700;color:#b11e2b;overflow-wrap:anywhere;margin-top:5px}
.occ-day-results{border-top:1px solid var(--occ-line);margin-top:16px;padding-top:16px;scroll-margin-top:100px}
.occ-day-title{font-size:18px;display:block;margin-bottom:10px}
.occ-day-result{padding:10px 0;border-bottom:1px solid var(--occ-line)}
.occ-day-result a{font-weight:700;color:var(--occ-navy);display:block}
.occ-day-result small{color:#556374;display:block;margin-top:3px}
@media(max-width:600px){.occ-wrap .occ-count{font-size:9px}.occ-wrap button.occ-cal-day{min-height:52px}}
