:root{
  --ebfw-bg: var(--as-bg, #fcf9ff);
  --ebfw-surface: var(--as-surface, #ffffff);
  --ebfw-surface-soft: var(--as-surface-soft, #f4effb);
  --ebfw-primary: var(--as-primary, #b49ad8);
  --ebfw-primary-dark: var(--as-primary-dark, #8c73b7);
  --ebfw-text: var(--as-text, #31303a);
  --ebfw-text-soft: var(--as-text-soft, #666272);
  --ebfw-border: var(--as-border, #e8dff4);
  --ebfw-radius: var(--as-radius, 24px);
  --ebfw-shadow: var(--as-shadow, 0 12px 40px rgba(124, 96, 162, 0.08));
}

.ebfw-wrap{color:var(--ebfw-text)}
.ebfw-wrap p{color:var(--ebfw-text-soft)}
.ebfw-intro-card,.ebfw-empty,.ebfw-summary-card,.ebfw-product-context,.ebfw-bookings,
.ebfw-filters,.ebfw-card,.ebfw-single__content,.ebfw-single__sidebar-card,.ebfw-debug{
  background:var(--ebfw-surface);
  border:1px solid var(--ebfw-border);
  border-radius:var(--ebfw-radius);
  box-shadow:var(--ebfw-shadow);
}

.ebfw-filters{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:12px;
  padding:18px;
  margin:0 0 1.5rem;
}
.ebfw-filters input,.ebfw-filters select{
  width:100%;
  min-height:50px;
  border:1px solid var(--ebfw-border);
  background:#fff;
  color:var(--ebfw-text);
  border-radius:18px;
  padding:0 .95rem;
  font:inherit;
}
.ebfw-filters input::placeholder{color:var(--ebfw-text-soft)}
.ebfw-actions{display:flex;gap:.75rem;align-items:center;justify-content:flex-start;grid-column:span 2}
.ebfw-btn,
.ebfw-button,
.ebfw-filters button,
.ebfw-card__book a,
.ebfw-summary-card .button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  min-height:50px;
  padding:.95rem 1.25rem;
  border:none;
  border-radius:999px;
  background:var(--ebfw-primary);
  color:#fff;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease;
}
.ebfw-btn:hover,.ebfw-button:hover,.ebfw-filters button:hover,.ebfw-card__book a:hover,.ebfw-summary-card .button:hover{
  background:var(--ebfw-primary-dark);
  transform:translateY(-1px);
  color:#fff;
  text-decoration:none;
}
.ebfw-btn--secondary{
  background:#fff;
  color:var(--ebfw-primary-dark);
  border:1px solid var(--ebfw-border);
}
.ebfw-btn--secondary:hover{background:var(--ebfw-surface-soft);color:var(--ebfw-primary-dark)}

.ebfw-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.2rem;
}
.ebfw-card{overflow:hidden;height:100%;display:flex;flex-direction:column}
.ebfw-card__media{display:block;aspect-ratio:16/10;background:var(--ebfw-surface-soft)}
.ebfw-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.ebfw-card__body{padding:1.5rem;display:flex;flex-direction:column;gap:1rem;flex:1}
.ebfw-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem}
.ebfw-card__body h2,.ebfw-card__body h3{margin:0;line-height:1.12;letter-spacing:-.02em;font-size:1.35rem}
.ebfw-card__body h2 a,.ebfw-card__body h3 a{color:var(--ebfw-text);text-decoration:none}
.ebfw-card__body h2 a:hover,.ebfw-card__body h3 a:hover{color:var(--ebfw-primary-dark)}
.ebfw-pills,.ebfw-meta{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
.ebfw-pill,.ebfw-badge{
  display:inline-flex;
  align-items:center;
  padding:.48rem .82rem;
  border-radius:999px;
  background:var(--ebfw-surface-soft);
  color:var(--ebfw-primary-dark);
  font-weight:700;
  font-size:.85rem;
  line-height:1;
}
.ebfw-pill--accent{background:rgba(180,154,216,.16); color:var(--ebfw-primary-dark)}
.ebfw-pill--success{background:#e3f5ea; color:#286744}
.ebfw-excerpt{margin:0;color:var(--ebfw-text-soft)}
.ebfw-info-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
}
.ebfw-info-card,
.ebfw-detail-card{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  padding:.9rem 1rem;
  border-radius:18px;
  background:linear-gradient(180deg,#fff 0%, var(--ebfw-surface-soft) 100%);
  border:1px solid var(--ebfw-border);
}
.ebfw-info-card--wide{grid-column:1/-1}
.ebfw-info-card__label,
.ebfw-detail-card__label{
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ebfw-text-soft);
  font-weight:700;
}
.ebfw-info-card strong,
.ebfw-detail-card strong{font-size:.98rem;line-height:1.35;color:var(--ebfw-text)}
.ebfw-card__footer{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;padding-top:.15rem}
.ebfw-price{display:inline-flex;align-items:center;padding:.55rem .9rem;border-radius:999px;background:#fff3d9;color:var(--ebfw-text);font-weight:800;white-space:nowrap}
.ebfw-price--free{background:#dff0ea}
.ebfw-card__actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}

.ebfw-empty,.ebfw-disabled,.ebfw-bookings{padding:1.5rem}
.ebfw-empty p,.ebfw-disabled p{margin:0}

.ebfw-single{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem}
.ebfw-single__content,.ebfw-single__sidebar-card{padding:1.6rem}
.ebfw-single__image{margin:-1.6rem -1.6rem 1.25rem}
.ebfw-single__image img{width:100%;border-radius:24px 24px 0 0}
.ebfw-single__summary{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem}
.ebfw-single__summary h3{margin:0}
.ebfw-detail-stack{display:grid;gap:.8rem;margin-bottom:1.2rem}

.ebfw-bookings table{width:100%;border-collapse:collapse}
.ebfw-bookings th,.ebfw-bookings td{padding:.9rem .75rem;border-bottom:1px solid var(--ebfw-border);text-align:left}
.ebfw-bookings th{color:var(--ebfw-text);font-size:.92rem}

@media (max-width:1100px){
  .ebfw-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ebfw-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ebfw-actions{grid-column:1/-1}
}
@media (max-width:820px){
  .ebfw-single{grid-template-columns:1fr}
}
@media (max-width:680px){
  .ebfw-card-grid{grid-template-columns:1fr}
  .ebfw-filters{grid-template-columns:1fr}
  .ebfw-info-grid{grid-template-columns:1fr}
  .ebfw-card__top,.ebfw-single__summary{flex-direction:column;align-items:flex-start}
}


.ebfw-event-page{display:grid;gap:1.5rem}
.ebfw-event-hero{display:grid;grid-template-columns:minmax(0,1.3fr) 360px;gap:1.5rem;align-items:start}
.ebfw-event-hero__content,.ebfw-booking-panel,.ebfw-side-panel{
  background:var(--ebfw-surface);
  border:1px solid var(--ebfw-border);
  border-radius:calc(var(--ebfw-radius) + 4px);
  box-shadow:var(--ebfw-shadow);
}
.ebfw-event-hero__content{padding:1.8rem}
.ebfw-event-hero__pills{margin-bottom:1rem}
.ebfw-event-hero__title{margin:0 0 .85rem;line-height:1.02;letter-spacing:-.03em;font-size:clamp(2rem,4vw,3.35rem)}
.ebfw-event-hero__excerpt{font-size:1.05rem;max-width:60ch;margin:0}
.ebfw-event-hero__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:1.4rem}
.ebfw-fact-card{padding:1rem 1.05rem;border:1px solid var(--ebfw-border);border-radius:22px;background:linear-gradient(180deg,#fff 0%, var(--ebfw-surface-soft) 100%);display:flex;flex-direction:column;gap:.35rem}
.ebfw-fact-card--primary,.ebfw-fact-card--price{background:linear-gradient(180deg, rgba(180,154,216,.14) 0%, #fff 100%)}
.ebfw-fact-card__label{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ebfw-text-soft)}
.ebfw-fact-card strong{font-size:1.04rem;line-height:1.3;color:var(--ebfw-text)}
.ebfw-fact-card small{color:var(--ebfw-text-soft)}
.ebfw-booking-panel{padding:1.4rem;position:sticky;top:1.5rem;display:grid;gap:1rem}
.ebfw-booking-panel__pricewrap{display:flex;flex-direction:column;gap:.7rem}
.ebfw-booking-panel__price{font-size:1.1rem;width:max-content}
.ebfw-booking-panel__availability{display:inline-flex;align-items:center;width:max-content;padding:.5rem .8rem;border-radius:999px;font-weight:700;font-size:.88rem;background:var(--ebfw-surface-soft);color:var(--ebfw-primary-dark)}
.ebfw-booking-panel__availability.is-open{background:#e3f5ea;color:#286744}
.ebfw-booking-panel__availability.is-closed{background:#f7e7e7;color:#8b3c3c}
.ebfw-booking-panel__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.ebfw-booking-mini{padding:.9rem 1rem;border-radius:18px;background:var(--ebfw-surface-soft);border:1px solid var(--ebfw-border);display:flex;flex-direction:column;gap:.3rem}
.ebfw-booking-mini span{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ebfw-text-soft)}
.ebfw-booking-mini strong{font-size:.98rem;color:var(--ebfw-text)}
.ebfw-booking-mini--wide{grid-column:1/-1}
.ebfw-button--full{width:100%}
.ebfw-booking-note{margin:0;font-size:.92rem;line-height:1.5}
.ebfw-event-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem;align-items:start}
.ebfw-event-main__image{margin-bottom:1.25rem}
.ebfw-event-main__image img{border-radius:22px}
.ebfw-event-section{display:grid;gap:1rem}
.ebfw-event-section__head{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;margin-bottom:.25rem}
.ebfw-event-section__head--tight{margin-bottom:1rem}
.ebfw-event-section__head h2,.ebfw-event-section__head h3{margin:0;line-height:1.1;letter-spacing:-.02em}
.ebfw-event-sidebar{display:grid;gap:1rem}
.ebfw-side-panel{padding:1.35rem}

@media (max-width:1100px){
  .ebfw-event-hero{grid-template-columns:1fr}
  .ebfw-booking-panel{position:static}
  .ebfw-event-layout{grid-template-columns:1fr}
}
@media (max-width:680px){
  .ebfw-event-hero__facts,.ebfw-booking-panel__meta{grid-template-columns:1fr}
}
