.bowlo-events,
.bowlo-event-single {
    --bowlo-border: #d8dee4;
    --bowlo-text: #1f2933;
    --bowlo-muted: #667085;
    --bowlo-surface: #ffffff;
    --bowlo-accent: #176b5b;
    color: var(--bowlo-text);
}

.bowlo-events__filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(160px, 240px) auto;
    gap: 10px;
    margin: 0 0 18px;
}

.bowlo-events__filters input,
.bowlo-events__filters select,
.bowlo-registration input,
.bowlo-registration select,
.bowlo-registration textarea {
    width: 100%;
    border: 1px solid var(--bowlo-border);
    border-radius: 6px;
    padding: 10px 12px;
    font: inherit;
}

.bowlo-events__filters button,
.bowlo-registration button {
    border: 0;
    border-radius: 6px;
    background: var(--bowlo-accent);
    color: #fff;
    padding: 10px 16px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.bowlo-event-cards {
    display: grid;
    gap: 14px;
}

.bowlo-event-cards--grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.bowlo-event-card {
    overflow: hidden;
    border: 1px solid var(--bowlo-border);
    border-radius: 8px;
    background: var(--bowlo-surface);
}

.bowlo-event-cards--list .bowlo-event-card {
    border-left: 4px solid var(--bowlo-accent);
}

.bowlo-event-card__image,
.bowlo-event-single__image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.bowlo-event-card__body {
    padding: 16px;
}

.bowlo-event-card h3 {
    margin: 4px 0 8px;
    font-size: 1.2rem;
    line-height: 1.25;
}

.bowlo-event-card__meta,
.bowlo-event-summary time {
    margin: 0;
    color: var(--bowlo-muted);
    font-size: 0.92rem;
}

.bowlo-event-card__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    color: var(--bowlo-muted);
    font-size: 0.92rem;
}

.bowlo-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: #eef7f4;
    color: #125245;
    padding: 3px 9px;
    font-size: 0.85rem;
    font-weight: 700;
}

.bowlo-event-summary {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bowlo-event-summary li {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) minmax(120px, auto);
    gap: 12px;
    align-items: baseline;
    padding: 10px 0;
    border-bottom: 1px solid var(--bowlo-border);
}

.bowlo-month,
.bowlo-week {
    display: grid;
    gap: 8px;
}

.bowlo-month {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.bowlo-month__day,
.bowlo-week__day {
    min-height: 96px;
    border: 1px solid var(--bowlo-border);
    border-radius: 6px;
    padding: 8px;
    background: var(--bowlo-surface);
}

.bowlo-month__day.is-muted {
    color: var(--bowlo-muted);
    background: #f8fafb;
}

.bowlo-month__day a,
.bowlo-mini-event {
    display: block;
    margin-top: 6px;
    border-radius: 5px;
    background: #eef7f4;
    color: #125245;
    padding: 5px 7px;
    text-decoration: none;
    font-size: 0.86rem;
}

.bowlo-week {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.bowlo-week__day h3 {
    margin: 0 0 8px;
    font-size: 1rem;
}

.bowlo-event-single {
    display: grid;
    gap: 22px;
}

.bowlo-event-single__header h1 {
    margin: 4px 0 10px;
}

.bowlo-event-details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin: 0;
}

.bowlo-event-details div {
    border: 1px solid var(--bowlo-border);
    border-radius: 6px;
    padding: 12px;
}

.bowlo-event-details dt {
    color: var(--bowlo-muted);
    font-size: 0.85rem;
}

.bowlo-event-details dd {
    margin: 3px 0 0;
    font-weight: 700;
}

.bowlo-registration {
    border: 1px solid var(--bowlo-border);
    border-radius: 8px;
    padding: 18px;
    background: #fbfcfd;
}

.bowlo-registration h2 {
    margin-top: 0;
}

.bowlo-registration__form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.bowlo-registration__form label span {
    display: block;
    margin-bottom: 5px;
    font-weight: 700;
}

.bowlo-registration__wide,
.bowlo-registration button {
    grid-column: 1 / -1;
}

.bowlo-hp {
    position: absolute;
    left: -9999px;
}

.bowlo-notice {
    margin-bottom: 14px;
    border-radius: 6px;
    padding: 10px 12px;
}

.bowlo-notice--success {
    background: #ecfdf3;
    color: #05603a;
}

.bowlo-notice--error {
    background: #fef3f2;
    color: #b42318;
}

@media (max-width: 760px) {
    .bowlo-events__filters,
    .bowlo-event-summary li,
    .bowlo-registration__form,
    .bowlo-week {
        grid-template-columns: 1fr;
    }

    .bowlo-month {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
