
.cbwp-calendar-shell,
.cbwp-upcoming-shell,
.cbwp-single-event{
  --cbwp-surface: #ffffff;
  --cbwp-surface-soft: #f8f9fa;
  --cbwp-surface-muted: #f1f3f5;
  --cbwp-text: #25303a;
  --cbwp-text-soft: #67727e;
  --cbwp-border: rgba(58, 67, 79, 0.14);
  --cbwp-border-strong: rgba(58, 67, 79, 0.2);
  --cbwp-shadow-sm: 0 12px 28px rgba(28, 34, 42, 0.05);
  --cbwp-shadow-md: 0 28px 80px rgba(22, 28, 35, 0.14);
  --cbwp-radius-lg: 24px;
  --cbwp-radius-md: 16px;
  --cbwp-radius-sm: 12px;
  --cbwp-container-bg: var(--cbwp-container-bg, #f3f4f6);
  --cbwp-filter-bg: var(--cbwp-filter-bg, #f8f9fa);
  --cbwp-filter-border: var(--cbwp-filter-border, #d7dbe0);
  --cbwp-filter-label: var(--cbwp-filter-label, #5b6470);
  --cbwp-filter-input-bg: var(--cbwp-filter-input-bg, #ffffff);
  --cbwp-filter-input-text: var(--cbwp-filter-input-text, #26313b);
  --cbwp-filter-input-border: var(--cbwp-filter-input-border, #d7dbe0);
  --cbwp-filter-checkbox-text: var(--cbwp-filter-checkbox-text, #26313b);
  --cbwp-reset-bg: var(--cbwp-reset-bg, #ffffff);
  --cbwp-reset-text: var(--cbwp-reset-text, #26313b);
  --cbwp-reset-border: var(--cbwp-reset-border, #d7dbe0);
  --cbwp-header-bg: var(--cbwp-header-bg, #e8ebef);
  --cbwp-header-text: var(--cbwp-header-text, #4f5965);
  --cbwp-title-text: var(--cbwp-title-text, #25303a);
  --cbwp-nav-bg: var(--cbwp-nav-bg, #32404d);
  --cbwp-nav-text: var(--cbwp-nav-text, #ffffff);
  --cbwp-view-bg: var(--cbwp-view-bg, #eef1f4);
  --cbwp-view-text: var(--cbwp-view-text, #56616d);
  --cbwp-view-active-bg: var(--cbwp-view-active-bg, #6a7480);
  --cbwp-view-active-text: var(--cbwp-view-active-text, #ffffff);
  --cbwp-day-bg: var(--cbwp-day-bg, #ffffff);
  --cbwp-day-muted-bg: var(--cbwp-day-muted-bg, #f5f6f7);
  --cbwp-day-text: var(--cbwp-day-text, #2c3440);
  --cbwp-empty-text: var(--cbwp-empty-text, #98a0ab);
  --cbwp-event-bg: var(--cbwp-event-bg, #ffffff);
  --cbwp-event-text: var(--cbwp-event-text, #25303a);
  --cbwp-event-border: var(--cbwp-event-border, #d9dde2);
  --cbwp-event-hover-bg: var(--cbwp-event-hover-bg, #f6f8fa);
  --cbwp-event-hover-text: var(--cbwp-event-hover-text, #25303a);
  --cbwp-event-hover-border: var(--cbwp-event-hover-border, #cfd5dc);
  --cbwp-button-bg: var(--cbwp-button-bg, #32404d);
  --cbwp-button-text: var(--cbwp-button-text, #ffffff);
  --cbwp-modal-bg: var(--cbwp-modal-bg, #ffffff);
  color: var(--cbwp-text);
}

.cbwp-calendar-shell,
.cbwp-upcoming-shell{
  display:grid;
  gap:20px;
}

.cbwp-filter-bar{
  display:grid;
  grid-template-columns:minmax(220px, 1.3fr) repeat(4, minmax(150px, 1fr));
  gap:14px;
  padding:16px;
  background:var(--cbwp-filter-bg) !important;
  border:1px solid var(--cbwp-filter-border) !important;
  border-radius:var(--cbwp-radius-lg);
  box-shadow:none;
}

.cbwp-filter{display:flex;flex-direction:column;justify-content:flex-end;gap:7px;min-width:0}
.cbwp-filter label{
  display:block;
  margin:0;
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:800;
  color:var(--cbwp-filter-label) !important;
}
.cbwp-filter-input,
.cbwp-filter-select{
  width:100%;
  min-height:48px;
  border-radius:14px;
  padding:0 15px;
  background:var(--cbwp-filter-input-bg) !important;
  border:1px solid var(--cbwp-filter-input-border) !important;
  color:var(--cbwp-filter-input-text) !important;
  box-shadow:none !important;
}
.cbwp-filter-input::placeholder{color:var(--cbwp-filter-input-text);opacity:.52}
.cbwp-filter--checkbox{align-items:flex-start;justify-content:center;padding-bottom:10px}
.cbwp-filter--checkbox label{display:flex;align-items:center;gap:10px;font-size:14px;letter-spacing:0;text-transform:none;color:var(--cbwp-filter-checkbox-text) !important}
.cbwp-filter--actions{align-items:flex-start;justify-content:center;padding-bottom:2px}
.cbwp-reset-filters{
  min-height:48px;
  padding:0 18px;
  border-radius:14px;
  border:1px solid var(--cbwp-reset-border) !important;
  background:var(--cbwp-reset-bg) !important;
  color:var(--cbwp-reset-text) !important;
  font-weight:700;
  box-shadow:none !important;
}
.cbwp-reset-filters:hover{filter:brightness(.98)}

.cbwp-calendar-app{
  background:var(--cbwp-container-bg);
  border:1px solid var(--cbwp-filter-border);
  border-radius:26px;
  padding:18px;
  box-shadow:none;
  overflow:hidden;
}
.cbwp-calendar-toolbar{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:18px;
  padding:4px 4px 20px;
}
.cbwp-toolbar__nav,.cbwp-toolbar__views{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cbwp-toolbar__title{
  margin:0;
  text-align:center;
  font-size:clamp(1.8rem, 2.8vw, 2.6rem);
  line-height:1.05;
  font-weight:800;
  color:var(--cbwp-title-text);
}
.cbwp-toolbar-btn,
.cbwp-modal__button,
.cbwp-card-action,
.cbwp-single-event__footer a.cbwp-modal__button{
  appearance:none;
  -webkit-appearance:none;
  border:none !important;
  border-radius:999px;
  min-height:42px;
  padding:0 16px;
  font-weight:700;
  box-shadow:none !important;
  text-decoration:none;
}
.cbwp-toolbar-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  background:var(--cbwp-view-bg) !important;
  color:var(--cbwp-view-text) !important;
}
.cbwp-toolbar-btn:hover,
.cbwp-toolbar-btn:focus{filter:brightness(.98);outline:none}
.cbwp-toolbar__views a.cbwp-toolbar-btn{text-decoration:none}
.cbwp-toolbar-btn--icon,
.cbwp-toolbar-btn--today{
  background:var(--cbwp-nav-bg) !important;
  color:var(--cbwp-nav-text) !important;
}
.cbwp-toolbar-btn--icon{width:42px;padding:0;font-size:1.35rem;line-height:1}
.cbwp-toolbar-btn.is-active{background:var(--cbwp-view-active-bg) !important;color:var(--cbwp-view-active-text) !important}

.cbwp-board{display:grid;gap:0}
.cbwp-board__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:10px;gap:6px}
.cbwp-board__weekday{
  padding:12px 10px;
  background:var(--cbwp-header-bg);
  color:var(--cbwp-header-text);
  text-align:center;
  font-size:.86rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  border-radius:16px;
}
.cbwp-board__weekday--rich{display:grid;gap:4px}
.cbwp-board__weekday--rich strong{font-size:1.05rem;color:inherit}
.cbwp-board__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.cbwp-board__grid--week{align-items:start}
.cbwp-board__day{
  min-height:168px;
  background:var(--cbwp-day-bg);
  border:1px solid var(--cbwp-filter-border);
  border-radius:20px;
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:12px;
  box-shadow:none;
}
.cbwp-board__day--muted{background:var(--cbwp-day-muted-bg)}
.cbwp-board__daynum{font-size:1rem;font-weight:800;color:var(--cbwp-day-text);line-height:1}
.cbwp-board__day--muted .cbwp-board__daynum{opacity:.42}
.cbwp-board__stack{display:flex;flex-direction:column;align-items:stretch;gap:10px;align-content:start}
.cbwp-board__empty{min-height:10px;margin-top:auto;color:transparent;font-size:0;line-height:0}
.cbwp-board__more{font-size:12px;font-weight:700;color:var(--cbwp-filter-label);padding-top:2px}

.cbwp-calendar-card{
  width:100%;
  display:flex !important;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border:1px solid var(--cbwp-event-border) !important;
  background-color:var(--cbwp-card-bg, var(--cbwp-event-bg)) !important;
  color:var(--cbwp-card-text, var(--cbwp-event-text)) !important;
  border-radius:14px;
  padding:13px 14px !important;
  text-align:left;
  box-shadow:none !important;
  transition:transform .16s ease, background-color .16s ease, border-color .16s ease, color .16s ease;
}
.cbwp-calendar-card:hover,
.cbwp-calendar-card:focus{
  background-color:var(--cbwp-card-hover-bg, var(--cbwp-event-hover-bg)) !important;
  border-color:var(--cbwp-event-hover-border) !important;
  color:var(--cbwp-card-hover-text, var(--cbwp-event-hover-text)) !important;
  transform:translateY(-1px);
  outline:none;
}
.cbwp-calendar-card--image,
.cbwp-calendar-card--image:hover,
.cbwp-calendar-card--image:focus{
  background-color:var(--cbwp-card-bg, var(--cbwp-event-bg)) !important;
}

.cbwp-calendar-card--image{
  background-image:var(--cbwp-card-bg-image, none) !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
  background-position:var(--cbwp-card-bg-position, center center) !important;
}
.cbwp-calendar-card *{color:inherit !important}
.cbwp-calendar-card__badges{display:block;width:100%}
.cbwp-calendar-card__badges .cbwp-badges{gap:5px;margin:0}
.cbwp-calendar-card__badges .cbwp-badge{font-size:10px;padding:4px 8px;border-radius:999px;background:var(--cbwp-card-pill-bg, var(--cbwp-text-soft));border-color:var(--cbwp-card-pill-bg, var(--cbwp-text-soft));color:var(--cbwp-card-pill-text, #ffffff);box-shadow:none}
.cbwp-calendar-card:hover .cbwp-calendar-card__badges .cbwp-badge,
.cbwp-calendar-card:focus .cbwp-calendar-card__badges .cbwp-badge{background:var(--cbwp-card-pill-bg, var(--cbwp-text-soft));border-color:var(--cbwp-card-pill-bg, var(--cbwp-text-soft));color:var(--cbwp-card-pill-text, #ffffff) !important}
.cbwp-calendar-card__title{
  font-size:16px;
  font-weight:800;
  line-height:1.32;
  letter-spacing:-0.01em;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
  color:inherit !important;
  position:relative;
}
.cbwp-calendar-card::before,
.cbwp-calendar-card::after{display:none !important;}
.cbwp-calendar-card__media,
.cbwp-calendar-card__overlay-layer{display:none !important;}
.cbwp-calendar-card > *{position:relative;z-index:1;}
.cbwp-calendar-card__location{
  font-size:13px;
  color:var(--cbwp-card-location-text, var(--cbwp-text-soft)) !important;
  line-height:1.35;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}


.cbwp-badges{display:flex;flex-wrap:wrap;gap:6px}
.cbwp-badges--card{justify-content:flex-start;margin-bottom:10px}
.cbwp-badge{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  font-weight:700;
  border:1px solid transparent;
}
.cbwp-badge--featured{background:#eff2f5;color:#56616d;border-color:#d8dde3}
.cbwp-badge--public{background:#eef3f0;color:#476257;border-color:#d6e1db}
.cbwp-badge--members{background:#f3f1ea;color:#746651;border-color:#e2dbce}
.cbwp-badge--private{background:#f2f3f4;color:#5b6470;border-color:#dde1e5}
.cbwp-badge--details{background:#f4f6f7;color:#5b6470;border-color:#dde2e6}

.cbwp-listview,.cbwp-dayview{display:grid;gap:16px;padding:8px 4px 0}
.cbwp-list-group{display:grid;gap:14px}
.cbwp-list-group__title{margin:0;font-size:1.28rem;color:var(--cbwp-title-text)}
.cbwp-list-group__items{display:grid;gap:14px}
.cbwp-upcoming,.cbwp-listview__items{display:grid;gap:16px}
.cbwp-upcoming-card,
.cbwp-list-card{
  background:var(--cbwp-surface);
  border:1px solid var(--cbwp-filter-border);
  border-radius:24px;
  padding:20px;
  box-shadow:none;
}

.cbwp-meta,.cbwp-location,.cbwp-summary{margin:0;color:var(--cbwp-text-soft)}
.cbwp-upcoming-card h3,.cbwp-list-card h3{margin:2px 0 0;font-size:1.45rem;line-height:1.1;color:var(--cbwp-title-text)}
.cbwp-card-action,.cbwp-modal__button{display:inline-flex;align-items:center;justify-content:center;background:var(--cbwp-button-bg) !important;color:var(--cbwp-button-text) !important}
.cbwp-card-action:hover,.cbwp-modal__button:hover{filter:brightness(.95)}

.cbwp-modal{
  position:fixed;
  inset:0;
  z-index:999999;
}
.cbwp-modal[hidden]{display:none !important}
.cbwp-modal__overlay{
  position:absolute;
  inset:0;
  background:rgba(30,36,42,.38);
  backdrop-filter:blur(3px);
}
.cbwp-modal__dialog{
  position:relative;
  margin:auto;
  width:min(960px, calc(100vw - 32px));
  min-height:auto;
  background:var(--cbwp-modal-bg);
  border-radius:28px;
  box-shadow:var(--cbwp-shadow-md);
  border:1px solid var(--cbwp-event-display-border, rgba(38,48,58,.08));
  display:grid;
  grid-template-columns:minmax(0, 340px) minmax(0, 1fr);
  overflow:hidden;
  top:50%;
  transform:translateY(-50%);
}
.cbwp-modal__dialog--no-media{grid-template-columns:1fr;width:min(920px, calc(100vw - 32px))}
.cbwp-modal__media{min-height:100%;background:linear-gradient(180deg,#eff2f5,#e7ebef);display:flex;align-items:stretch}
.cbwp-modal__media img{width:100%;height:100%;object-fit:cover;display:block}
.cbwp-modal__content{padding:30px 30px 28px;display:grid;gap:16px;align-content:start}
.cbwp-modal__close{
  position:absolute;
  top:18px;
  right:18px;
  width:44px;
  height:44px;
  border:none !important;
  border-radius:999px;
  background:rgba(38,48,58,.08);
  color:#25303a;
  font-size:1.7rem;
  line-height:1;
  cursor:pointer;
}
.cbwp-modal__title{margin:0;font-size:clamp(2rem,3vw,3.15rem);line-height:1.02;color:var(--cbwp-event-display-title, var(--cbwp-title-text));letter-spacing:-.03em}
.cbwp-modal__datetime,
.cbwp-modal__location{margin:0;font-weight:700;color:#45554b}
.cbwp-modal__summary{margin:0;color:#4f5d56;line-height:1.65;font-size:1.03rem}
.cbwp-modal__summary p{margin:0 0 .9em}
.cbwp-modal__summary p:last-child{margin-bottom:0}
.cbwp-modal__summary a,
.cbwp-modal__detail a,
.cbwp-single-event__summary a,
.cbwp-single-event__notes a{color:var(--cbwp-title-text);text-decoration:underline;text-underline-offset:2px}
.cbwp-modal__meta{display:grid;gap:9px;padding-top:6px}
.cbwp-modal__meta p{margin:0;color:#45554b;line-height:1.55}
.cbwp-modal__detail{display:grid;gap:6px;color:#45554b;line-height:1.55}
.cbwp-modal__detail > div p{margin:0 0 .8em}
.cbwp-modal__detail > div p:last-child{margin-bottom:0}
.cbwp-modal__notice{margin:0;padding:14px 16px;border-radius:16px;background:#f6f4ee;color:#596457;border:1px solid #e6e0d3}
.cbwp-modal__actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:8px}
.cbwp-modal__link{font-weight:700;color:var(--cbwp-event-display-link, var(--cbwp-title-text));text-decoration:none}
.cbwp-modal__link:hover{text-decoration:underline}

.cbwp-single-event-wrap{padding:40px 20px;background:#f5f6f7}
.cbwp-single-event{
  max-width:980px;
  margin:0 auto;
  background:var(--cbwp-surface);
  border:1px solid var(--cbwp-event-display-border, var(--cbwp-filter-border));
  border-radius:28px;
  box-shadow:var(--cbwp-shadow-sm);
  overflow:hidden;
}
.cbwp-single-event__article{padding:0}
.cbwp-single-event__hero img{display:block;width:100%;height:auto;max-height:420px;object-fit:cover}
.cbwp-single-event__header,
.cbwp-single-event__summary,
.cbwp-single-event__content,
.cbwp-single-event__section,
.cbwp-single-event__footer{padding-left:32px;padding-right:32px}
.cbwp-single-event__header{padding-top:32px;display:grid;gap:14px}
.cbwp-single-event__title{margin:0;font-size:clamp(2rem,4vw,3.3rem);line-height:1.02;color:var(--cbwp-event-display-title, var(--cbwp-title-text));letter-spacing:-.03em}
.cbwp-single-event__meta{margin:0;color:#4f5d56;font-weight:700}
.cbwp-single-event__summary{padding-top:8px;font-size:1.05rem;line-height:1.68;color:#4f5d56}
.cbwp-single-event__content{padding-top:22px;padding-bottom:10px;color:#374038;line-height:1.75}
.cbwp-single-event__section{padding-top:18px}
.cbwp-single-event__section h2{margin:0 0 8px;color:var(--cbwp-title-text)}
.cbwp-single-event__footer{padding-top:24px;padding-bottom:34px;display:grid;gap:16px}
.cbwp-single-event__actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.cbwp-single-event__actions .cbwp-modal__link,.cbwp-single-event__footer .cbwp-modal__link,.cbwp-single-event__footer .cbwp-resource-link{color:var(--cbwp-event-display-link, var(--cbwp-title-text));}
.cbwp-single-event__terms{display:flex;flex-wrap:wrap;gap:8px}

[data-cbwp-global-booking-off="1"] [data-cbwp-role="booking"]{display:none !important}

@media (max-width: 1100px){
  .cbwp-filter-bar{grid-template-columns:1fr 1fr}
  .cbwp-calendar-toolbar{grid-template-columns:1fr;justify-items:start}
  .cbwp-toolbar__title{text-align:left}
}
@media (max-width: 900px){
  .cbwp-modal__dialog{grid-template-columns:1fr;width:min(760px, calc(100vw - 24px))}
  .cbwp-modal__media{min-height:220px}
}
@media (max-width: 782px){
  .cbwp-filter-bar{grid-template-columns:1fr}
  .cbwp-calendar-app{padding:14px}
  .cbwp-board__weekdays{display:none}
  .cbwp-board__grid{grid-template-columns:1fr}
  .cbwp-board__day{min-height:auto;padding:14px}
  .cbwp-board__day--muted{display:none}
  .cbwp-modal__content{padding:24px 20px 22px}
  .cbwp-modal__title{font-size:2rem}
  .cbwp-single-event__header,
  .cbwp-single-event__summary,
  .cbwp-single-event__content,
  .cbwp-single-event__section,
  .cbwp-single-event__footer{padding-left:20px;padding-right:20px}
}

@media (max-width: 782px){
  .cbwp-calendar-card{padding:12px !important;gap:7px;}
  .cbwp-calendar-card__title{font-size:15px;-webkit-line-clamp:3;}
  .cbwp-calendar-card__location{font-size:12px;-webkit-line-clamp:1;}
}

.cbwp-modal__media[hidden]{display:none !important}
.cbwp-modal__media img:not([src]),
.cbwp-modal__media img[src=""],
.cbwp-modal__media:empty{display:none !important}


.cbwp-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}
.cbwp-section-heading h2{margin:0;color:var(--cbwp-title-text);font-size:1.6rem}
.cbwp-section-heading p{margin:0;color:var(--cbwp-text-soft)}
.cbwp-collection,.cbwp-spotlights-shell{display:grid;gap:18px}
.cbwp-spotlight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.cbwp-spotlight-card{background:var(--cbwp-surface);border:1px solid var(--cbwp-filter-border);border-radius:24px;padding:20px;display:grid;gap:14px}
.cbwp-spotlight-card h3,.cbwp-spotlight-item h4{margin:0;color:var(--cbwp-title-text)}
.cbwp-spotlight-list{display:grid;gap:14px}
.cbwp-spotlight-item{display:grid;gap:8px;padding-top:2px}
.cbwp-resource-list,.cbwp-modal__resources-list{display:flex;flex-wrap:wrap;gap:10px}
.cbwp-resource-link{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border:1px solid var(--cbwp-filter-border);border-radius:999px;background:#fff;color:var(--cbwp-title-text);text-decoration:none}
.cbwp-modal__resources{display:grid;gap:10px}
.cbwp-modal__resources h4{margin:0;color:var(--cbwp-title-text)}
.cbwp-modal__notes{color:var(--cbwp-text-soft)}
.cbwp-modal__notes p{margin:0 0 .8em}
.cbwp-modal__notes p:last-child{margin-bottom:0}
.cbwp-email-gate{position:fixed;inset:0;z-index:1000000}
.cbwp-email-gate[hidden]{display:none !important}
.cbwp-email-gate__overlay{position:absolute;inset:0;background:rgba(30,36,42,.42);backdrop-filter:blur(2px)}
.cbwp-email-gate__dialog{position:relative;margin:auto;top:50%;transform:translateY(-50%);width:min(520px,calc(100vw - 32px));background:#fff;border:1px solid rgba(38,48,58,.08);border-radius:24px;box-shadow:var(--cbwp-shadow-md);padding:28px;display:grid;gap:14px}
.cbwp-email-gate__title{margin:0;color:var(--cbwp-title-text)}
.cbwp-email-gate__intro{margin:0;color:var(--cbwp-text-soft)}
.cbwp-email-gate__form{display:grid;gap:12px}
.cbwp-email-gate__form label{font-weight:700;color:var(--cbwp-title-text)}
.cbwp-email-gate__form input{min-height:48px;border:1px solid var(--cbwp-filter-input-border);border-radius:14px;padding:0 14px}
.cbwp-email-gate__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cbwp-email-gate__close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:28px;line-height:1;cursor:pointer;color:var(--cbwp-text-soft)}
.cbwp-email-gate__error{margin:0;color:#b32d2e;font-weight:600}
