.pc-calendar{max-width:1200px;margin:24px auto 48px;color:#272331;font:16px/1.5 Arial,sans-serif;text-align:left;--pcc-purple:#4e008e}
.pc-calendar *{box-sizing:border-box}.pc-calendar button,.pc-calendar input,.pc-calendar select{font:inherit;letter-spacing:normal;text-transform:none}
.pc-calendar button,.pc-calendar select,.pc-calendar input[type=search],.pc-calendar input[type=date]{min-height:44px;border:1px solid #b7aebf;border-radius:6px;padding:8px 12px;background:#fff;color:#272331;max-width:100%}
.pc-calendar button{cursor:pointer}.pc-calendar button:hover{background:#f0eaf6}.pc-calendar :is(button,input,select,a):focus-visible{outline:3px solid #8c63ae;outline-offset:2px}
.pcc-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;background:#f7f5fa;border:1px solid #e0d9e6;padding:16px;border-radius:10px}
.pcc-toolbar label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:bold}.pcc-toolbar label:first-child{flex:1;min-width:190px}.pcc-toolbar input,.pcc-toolbar select{width:100%}
.pcc-filters{margin:16px 0}.pcc-filters summary{cursor:pointer;font-weight:bold}.pcc-filters fieldset{display:flex;flex-wrap:wrap;gap:16px;border:1px solid #ded7e5;border-radius:8px;padding:16px}.pcc-filters legend{font-size:13px;padding:0 6px}.pcc-filters label{display:flex;align-items:center;gap:8px;min-height:44px}.pcc-filters input{width:20px;height:20px;accent-color:var(--pcc-purple)}
.pcc-navigation{display:flex;align-items:center;gap:10px;margin:20px 0 12px}.pc-calendar .pcc-period{font-size:24px;line-height:1.3;margin:0;flex:1;text-align:center;color:var(--pcc-purple)}
.pc-calendar .pcc-summary,.pc-calendar .pcc-status{font-size:14px;line-height:1.5;margin:8px 0;color:#61596b}
.pcc-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #ded7e5;border-left:1px solid #ded7e5}
.pcc-weekday{padding:10px 4px;background:#4e008e;color:white;text-align:center;font-size:13px;font-weight:bold}
.pcc-daycell,.pcc-blank{min-height:125px;border-right:1px solid #ded7e5;border-bottom:1px solid #ded7e5;padding:6px;min-width:0}.pcc-blank{background:#f7f5fa}.pcc-current{background:#faf5ff}
.pc-calendar .pcc-day-number{border:0;padding:4px 8px;font-weight:bold}.pcc-current .pcc-day-number{background:#4e008e;color:white}
.pcc-event{border:1px solid #e1dbe7;border-radius:8px;background:#fff;overflow:hidden;min-width:0}.pcc-event-body{padding:16px}.pc-calendar .pcc-title{font-size:18px;color:#4e008e;font-weight:bold;text-decoration:none;overflow-wrap:anywhere;display:block}.pc-calendar .pcc-title:hover{text-decoration:underline}
.pc-calendar .pcc-event p{font-size:14px;line-height:1.4;margin:6px 0 0}.pcc-tags{color:#6c5a7c}.pcc-list,.pcc-day{display:grid;gap:12px}.pcc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pcc-event img{width:100%;height:180px;object-fit:cover}
.pcc-compact{margin:6px 0;border-left:3px solid #4e008e;border-radius:4px}.pcc-compact .pcc-event-body{padding:6px}.pc-calendar .pcc-compact .pcc-title{font-size:12px}.pc-calendar .pcc-compact p{font-size:11px}
@media(max-width:700px){.pcc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pc-calendar .pcc-period{font-size:19px}.pcc-toolbar label{flex:1;min-width:130px}.pcc-toolbar label:first-child{flex-basis:100%}.pcc-navigation{flex-wrap:wrap}.pcc-navigation h2{order:-1;flex-basis:100%!important}.pcc-navigation .pcc-next{margin-left:auto}.pcc-daycell{padding:2px;min-height:90px}.pcc-compact .pcc-event-body{padding:3px}.pc-calendar .pcc-compact .pcc-title{font-size:10px}.pc-calendar .pcc-compact .pcc-time{display:none}.pcc-weekday{font-size:11px}}
@media(max-width:430px){.pcc-grid{grid-template-columns:1fr}}
@media print{
body:has(.pc-calendar) *:not(.pc-calendar):not(.pc-calendar *):not(:has(.pc-calendar)){display:none!important}
body:has(.pc-calendar),body:has(.pc-calendar) :has(.pc-calendar){margin:0!important;padding:0!important;width:100%!important;max-width:none!important;min-height:0!important;background:white!important}
.pc-calendar{margin:0;color:black;font-size:10pt}.pc-calendar .pcc-toolbar,.pc-calendar .pcc-filters,.pc-calendar .pcc-navigation button,.pc-calendar .pcc-retry{display:none!important}.pc-calendar .pcc-period{font-size:18pt}.pcc-event{break-inside:avoid}.pcc-event img{display:none}.pcc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pcc-weekday{background:#eee;color:black}.pcc-daycell{min-height:80px}.pc-calendar a{color:black}.pc-calendar .pcc-event p{font-size:9pt}
}
.pc-calendar .pcc-title{font-style:normal}
@media print{.pc-calendar .pcc-compact .pcc-time{display:block}.pcc-navigation h2{order:0;flex-basis:auto!important}}

/* Calendar presentation, scoped against the theme's global form and card rules. */
.pc-calendar{padding:28px;border:1px solid #e7e1ed;border-radius:20px;background:#fff;box-shadow:0 12px 40px #29133e08}
.pc-calendar [hidden]{display:none!important}
.pc-calendar button{font-weight:600;transition:background .15s,color .15s}
.pc-calendar .pcc-toolbar{padding:20px;background:#f8f6fb;border:0;border-radius:12px;gap:16px}
.pc-calendar .pcc-toolbar label{color:#63586d;font-size:12px;letter-spacing:.02em;gap:8px}
.pc-calendar input[type=search],.pc-calendar input[type=date]{margin:0;background:white;border-color:#dcd4e5;border-radius:8px;font-size:15px;box-shadow:none;width:100%}
.pc-calendar input[type=search].pcc-search{padding-left:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23746980' stroke-width='1.8'%3E%3Ccircle cx='8' cy='8' r='5.5'/%3E%3Cpath d='m12 12 5 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:12px center}
.pc-calendar .pcc-print{border-color:#ded5e8;color:var(--pcc-purple);padding-inline:22px}
.pc-calendar .pcc-filters{margin:18px 0}
.pc-calendar .pcc-filters summary{font-size:14px;color:var(--pcc-purple);padding:8px 0;min-height:44px}
.pc-calendar .pcc-filters fieldset{margin:12px 0;background:#fcfbfd;border-color:#ece6f1;gap:8px}
.pc-calendar .pcc-filters label{padding:6px 12px;border:1px solid #e2dbe9;border-radius:8px;font-size:14px;background:#fff}
.pc-calendar .pcc-filters label:has(input:checked){background:#f1e8fa;border-color:#8e60b3;color:var(--pcc-purple)}
.pc-calendar .pcc-view-switch{display:flex;width:fit-content;gap:4px;padding:5px;border-radius:10px;background:#f2eef6;margin:0 0 24px}
.pc-calendar .pcc-view-switch button{border:0;background:transparent;color:#6d6178;border-radius:7px;padding:8px 22px;min-height:44px}
.pc-calendar .pcc-view-switch button[aria-pressed=true]{background:#4e008e;color:#fff;box-shadow:0 2px 5px #4e008e20}
.pc-calendar .pcc-navigation{border-top:1px solid #eee9f2;padding-top:24px;margin-top:0}
.pc-calendar .pcc-period{font-size:28px;font-weight:700;letter-spacing:-.025em}
.pc-calendar .pcc-navigation button{border-color:#e4dce9;border-radius:9px}
.pc-calendar .pcc-summary{font-size:12px;margin:16px 0 4px}
.pc-calendar .pcc-status{margin:0 0 20px;font-size:14px;color:#32213e;font-weight:600}
.pc-calendar .pcc-month{border-color:#e8e1ed;border-radius:12px;overflow:hidden}
.pc-calendar .pcc-weekday{background:#f3eef8;color:#604575;padding:14px 4px;font-size:12px}
.pc-calendar .pcc-daycell,.pc-calendar .pcc-blank{border-color:#e8e1ed;min-height:140px;padding:8px}
.pc-calendar .pcc-day-number{min-height:34px;min-width:34px;padding:4px;border-radius:50%;font-size:13px;background:transparent}
.pc-calendar .pcc-current .pcc-day-number{background:#4e008e;color:white}
.pc-calendar .pcc-current{background:#fbf8ff}
.pc-calendar .pcc-event{border-color:#e7e0ed;border-radius:12px;position:relative}
.pc-calendar .pcc-event-body{padding:22px}
.pc-calendar .pcc-title{font-size:19px;line-height:1.4;font-style:normal;color:#382044}
.pc-calendar .pcc-time{font-weight:700;color:#4e008e}
.pc-calendar .pcc-event-date,.pc-calendar .pcc-location{color:#72677c}
.pc-calendar .pcc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.pc-calendar .pcc-tag{background:#f3edf8;border-radius:5px;color:#68477f;padding:4px 8px;font-size:11px;font-weight:600}
.pc-calendar .pcc-date-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f2eaf8;color:#4e008e;border-radius:10px;width:66px;min-width:66px;height:76px;line-height:1.2}
.pc-calendar .pcc-date-badge span{text-transform:uppercase;font-size:11px;letter-spacing:.09em;font-weight:700}
.pc-calendar .pcc-date-badge strong{font-size:30px;margin-top:4px}
.pc-calendar :is(.pcc-list,.pcc-day)>.pcc-event{display:flex;align-items:flex-start;padding:22px;gap:22px}
.pc-calendar :is(.pcc-list,.pcc-day) .pcc-event-body{padding:0;flex:1;min-width:0}
.pc-calendar .pcc-grid .pcc-date-badge{margin:20px 0 0 22px}
.pc-calendar .pcc-grid .pcc-event-body{padding-top:16px}
.pc-calendar .pcc-compact{border-radius:5px;border:0;border-left:3px solid #9561bb;background:#f1e9f8;margin:6px 0}
.pc-calendar .pcc-compact .pcc-event-body{padding:7px}
.pc-calendar .pcc-compact .pcc-title{font-size:12px;line-height:1.4;color:#4a2f60}
.pc-calendar .pcc-compact .pcc-time{font-size:10px;font-weight:400}
@media(max-width:700px){
.pc-calendar{padding:16px;border-radius:14px;margin:16px auto 32px}
.pc-calendar .pcc-toolbar{padding:14px;gap:12px}
.pc-calendar .pcc-view-switch{width:100%;margin-bottom:20px}
.pc-calendar .pcc-view-switch button{flex:1;padding:8px 4px;font-size:14px}
.pc-calendar .pcc-period{font-size:24px;text-align:left;margin-bottom:10px}
.pc-calendar .pcc-navigation{padding-top:20px}
.pc-calendar .pcc-daycell,.pc-calendar .pcc-blank{padding:2px;min-height:100px}
.pc-calendar .pcc-day-number{min-width:28px;min-height:44px;font-size:12px}
.pc-calendar .pcc-compact .pcc-event-body{padding:4px 2px}
.pc-calendar .pcc-compact .pcc-title{font-size:10px}
.pc-calendar :is(.pcc-list,.pcc-day)>.pcc-event{padding:16px;gap:14px}
.pc-calendar .pcc-date-badge{width:52px;min-width:52px;height:66px}
.pc-calendar .pcc-date-badge strong{font-size:26px}
.pc-calendar .pcc-title{font-size:17px}
.pc-calendar .pcc-event p{font-size:13px}
}
@media print{
.pc-calendar{padding:0;border:0;border-radius:0;box-shadow:none}
.pc-calendar .pcc-view-switch{display:none}
.pc-calendar .pcc-navigation{border:0}
.pc-calendar .pcc-date-badge{background:#eee;color:#000}
.pc-calendar .pcc-daycell{min-height:80px}
.pc-calendar .pcc-title{color:#000}
}

/* Paine brand: explicit weights prevent the theme's light body styles leaking in. */
@media screen {
.pc-calendar{--pcc-gold:#cda177;font-family:var(--font-family-base,Montserrat,Arial,sans-serif);font-size:17px;border:0;border-radius:12px}
.pc-calendar :is(p,span,label,legend,a,button,input,select){font-family:inherit}
.pc-calendar .pcc-toolbar{background:var(--pcc-purple);border-bottom:0;border-radius:8px}
.pc-calendar .pcc-toolbar label{color:#fff;font-size:16px;font-weight:700}
.pc-calendar :is(button,input[type=search],input[type=date]){min-height:50px;font-size:17px;font-weight:600;border-width:2px}
.pc-calendar input::placeholder{color:#51465a;opacity:1}
.pc-calendar .pcc-print{background:#350062;color:#fff;border-color:#fff;font-weight:800}
.pc-calendar .pcc-print:hover{background:#fff;color:var(--pcc-purple)}
.pc-calendar .pcc-filters summary{font-size:18px;font-weight:750}
.pc-calendar .pcc-filters legend{font-size:15px;font-weight:600;color:#42344e}
.pc-calendar .pcc-filters label{font-size:16px;font-weight:600;border-width:2px}
.pc-calendar .pcc-view-switch{background:#f2eef6;border:0;padding:4px;border-radius:8px}
.pc-calendar .pcc-view-switch button{font-size:17px;font-weight:750;color:var(--pcc-purple)}
.pc-calendar .pcc-view-switch button[aria-pressed=true]{background:var(--pcc-purple);color:#fff;box-shadow:none}
.pc-calendar .pcc-navigation{border-top:1px solid #e2e2e2}
.pc-calendar .pcc-period{font-size:36px;font-weight:800}
.pc-calendar .pcc-navigation button{border-color:#dedede;color:var(--pcc-purple);font-weight:750}
.pc-calendar .pcc-summary{font-size:16px;font-weight:600;color:#51445b}
.pc-calendar .pcc-status{font-size:17px;font-weight:700;color:#302039}
.pc-calendar .pcc-month{border:1px solid #dedede}
.pc-calendar .pcc-weekday{background:var(--pcc-purple);color:white;font-size:16px;font-weight:750;border-bottom:0}
.pc-calendar .pcc-daycell,.pc-calendar .pcc-blank{border-color:#dedede}
.pc-calendar .pcc-day-number{font-size:17px;font-weight:750}
.pc-calendar .pcc-event{border:1px solid #dedede;border-radius:8px}
.pc-calendar .pcc-title{font-size:22px;font-weight:750;color:var(--pcc-purple)}
.pc-calendar .pcc-event p{font-size:17px;font-weight:500;line-height:1.5;margin:8px 0 0;padding:0}
.pc-calendar .pcc-event .pcc-time{font-weight:750}
.pc-calendar .pcc-event-date,.pc-calendar .pcc-location{color:#493c53}
.pc-calendar .pcc-tag{font-size:14px;font-weight:700;background:#eee4f5;color:#4e008e;padding:6px 10px}
.pc-calendar .pcc-date-badge{background:var(--pcc-purple);color:white;border-bottom:0;width:74px;min-width:74px;height:86px;border-radius:6px}
.pc-calendar .pcc-date-badge span{font-size:14px;font-weight:750}
.pc-calendar .pcc-date-badge strong{font-size:34px;font-weight:800}
.pc-calendar .pcc-compact{border:0;background:#e9ddf2}
.pc-calendar .pcc-compact .pcc-title{font-size:14px;font-weight:750}
.pc-calendar .pcc-compact .pcc-time{font-size:12px;font-weight:600}
}
@media screen and (max-width:700px){
.pc-calendar .pcc-period{font-size:28px}
.pc-calendar .pcc-view-switch button{font-size:16px}
.pc-calendar .pcc-title{font-size:20px}
.pc-calendar .pcc-date-badge{width:58px;min-width:58px;height:76px}
.pc-calendar .pcc-date-badge strong{font-size:30px}
.pc-calendar .pcc-weekday{font-size:12px}
.pc-calendar .pcc-day-number{font-size:15px}
.pc-calendar .pcc-compact .pcc-title{font-size:12px}
.pc-calendar .pcc-compact .pcc-event-body{padding:5px 3px}
}

/* Always-visible group choices and equal-sized calendar date buttons. */
.pc-calendar .pcc-filters fieldset{padding:18px;background:#f7f5f9;border:0;gap:10px}
.pc-calendar .pcc-filters legend{font-size:19px;font-weight:750;color:var(--pcc-purple);padding:0}
.pc-calendar .pcc-filter-help{flex-basis:100%;font-size:15px;font-weight:500;line-height:1.5;margin:0 0 8px;padding:0;color:#493c53}
.pc-calendar .pcc-filters label{border:1px solid #d6cddd;cursor:pointer}
.pc-calendar .pcc-filters label:has(input:checked){background:#4e008e;color:#fff}
.pc-calendar .pcc-filters input{flex:none;margin:0;accent-color:#4e008e}
.pc-calendar button.pcc-day-number{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;max-width:none;padding:0;line-height:1;border-radius:50%;flex:none}
@media(max-width:700px){
.pc-calendar button.pcc-day-number{width:32px;height:32px;min-width:32px;min-height:32px}
}

/* Keep the explanation above the wrapping group choices and reset action. */
.pc-calendar .pcc-filters fieldset{display:block}
.pc-calendar .pcc-filter-options{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:100%;margin-top:12px}
.pc-calendar .pcc-filter-options label{margin:0}

.pc-calendar a.pcc-details{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;margin-top:18px;padding:10px 18px;border:0;border-radius:6px;background:var(--pcc-purple);color:#fff;font:700 16px/1.4 var(--font-family-base,Arial,sans-serif);font-style:normal;text-decoration:none;text-align:center}
.pc-calendar a.pcc-details:hover{background:#350062;color:#fff;text-decoration:underline}
@media print{.pc-calendar a.pcc-details{display:none}}

/* Stretch grid cards and reserve the bottom of each card for its action. */
.pc-calendar .pcc-grid > .pcc-event{display:flex;flex-direction:column;height:100%}
.pc-calendar .pcc-grid .pcc-event-body{display:flex;flex-direction:column;flex:1}
.pc-calendar .pcc-grid .pcc-event-body > .pcc-tags{margin-bottom:18px}
.pc-calendar .pcc-grid a.pcc-details{margin-top:auto;align-self:flex-start}
.pc-calendar .pcc-grid .pcc-event > img,.pc-calendar .pcc-grid .pcc-date-badge{flex-shrink:0}

.pc-calendar .pcc-subscribe{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:10px 18px;background:#350062;color:#fff;border:1px solid #a783c5;border-radius:8px;font-weight:750;line-height:1.4}
.pc-calendar .pcc-subscribe-icon{display:block;flex:none;width:22px;height:22px}
.pc-calendar .pcc-subscribe:hover{background:#fff;color:#4e008e;border-color:#fff}
@media(max-width:700px){.pc-calendar .pcc-subscribe{flex-basis:100%}}

/* Past occurrences remain available in Month view with muted styling. */
.pc-calendar .pcc-month .pcc-event.pcc-past{background:#f2f2f2;border-color:#d5d5d5}
.pc-calendar .pcc-month .pcc-past .pcc-title,
.pc-calendar .pcc-month .pcc-past .pcc-time{color:#68616d;font-weight:500}
