.emm-calendar,
.emm-calendar * {
    font-family: "Alegreya", Georgia, serif !important;
    box-sizing: border-box;
}
.emm-calendar {
    max-width: 64rem;
    margin: 2rem 0;
    color: #122b43;
    font-size: 1.125rem;
    line-height: 1.5;
    white-space: normal;
    text-align: left;
}
.emm-calendar [hidden] { display: none !important; }
/* WordPress may repeat an enclosing code tag around shortcode block elements.
   Keep those formatting wrappers from becoming extra grid or flex items. */
.emm-calendar code {
    display: contents !important;
    white-space: normal !important;
    font: inherit !important;
    color: inherit !important;
    background: none !important;
    padding: 0 !important;
    border: 0 !important;
}
.emm-calendar h2 {
    font-size: 2rem !important;
    line-height: 1.2 !important;
    margin: 0 0 .65rem !important;
    color: #122b43;
}
.emm-calendar .emm-calendar-intro { margin: 0 0 1.25rem; }
.emm-calendar .emm-market-filters {
    min-width: 0;
    border: 1px solid #c7d3c2;
    border-radius: .35rem;
    padding: .75rem 1rem 1rem;
    margin: 0;
    background: #f5f8f2;
}
.emm-calendar .emm-market-filters legend { padding: 0 .4rem; font-weight: 600; font-size: 1rem; }
.emm-calendar .emm-calendar-filter-options { display: flex; flex-wrap: wrap; gap: .6rem; }
.emm-calendar .emm-market-filters label {
    display: inline-flex !important;
    align-items: center;
    gap: .55rem;
    width: auto !important;
    margin: 0 !important;
    padding: .45rem .75rem;
    border: 1px solid #bcccb3;
    border-radius: .25rem;
    background: #fff;
    color: #122b43;
    line-height: 1.35;
    font-size: 1rem;
    cursor: pointer;
}
.emm-calendar .emm-market-filters label:has(input:checked) { background: #e4eedc; border-color: #87a96b; }
.emm-calendar .emm-market-filters input[type="checkbox"] {
    appearance: auto !important;
    position: static !important;
    display: inline-block !important;
    width: 1.05rem !important;
    height: 1.05rem !important;
    margin: 0 !important;
    padding: 0;
    opacity: 1;
    flex: 0 0 auto;
    accent-color: #466b35;
}
.emm-calendar .emm-calendar-count { font-size: .95rem; margin: .65rem 0 1.5rem; color: #526354; }
.emm-calendar .emm-calendar-month { margin: 0 0 1.75rem; padding: 0; }
.emm-calendar .emm-calendar-month h3 {
    font-size: 1.5rem !important;
    line-height: 1.3 !important;
    color: #122b43;
    margin: 0 0 .7rem !important;
    padding: 0 0 .45rem;
    border-bottom: 2px solid #87a96b;
}
.emm-calendar .emm-calendar-list { list-style: none !important; margin: 0 !important; padding: 0 !important; border: 1px solid #d3ddce; border-radius: .3rem; overflow: hidden; }
.emm-calendar .emm-calendar-row {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: .75rem 1rem;
    margin: 0 !important;
    border: 0;
    border-bottom: 1px solid #d3ddce;
    background: #fff;
}
.emm-calendar .emm-calendar-row:nth-child(even) { background: #f5f8f2; }
.emm-calendar .emm-calendar-row:last-child { border-bottom: 0; }
.emm-calendar .emm-calendar-row::before { content: none !important; }
.emm-calendar .emm-calendar-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: .3rem .5rem;
    background: #fff3d1;
    border: 1px solid #e7ddbd;
    border-radius: .25rem;
    font-size: .9rem;
    line-height: 1.1;
    text-align: center;
    color: #122b43;
}
.emm-calendar .emm-calendar-date strong { font-size: 1.85rem; line-height: 1.15; font-weight: 700; }
.emm-calendar .emm-calendar-copy { min-width: 0; }
.emm-calendar .emm-calendar-title { color: #122b43 !important; font-size: 1.25rem; line-height: 1.3; font-weight: 600; text-decoration: none; overflow-wrap: break-word; word-break: normal; }
.emm-calendar a.emm-calendar-title:hover { text-decoration: underline; text-underline-offset: .2em; }
.emm-calendar a.emm-calendar-title:focus-visible,
.emm-calendar input:focus-visible { outline: 2px solid #122b43; outline-offset: 4px; }
.emm-calendar .emm-calendar-copy p { margin: .2rem 0 0; font-size: 1rem; }
.emm-calendar .emm-calendar-badge { display: inline-block; width: auto; max-width: 100%; padding: .25rem .6rem; border-radius: .25rem; font-size: .9rem; line-height: 1.3; background: #e8eee4; color: #30452a; text-align: center; white-space: nowrap; }
.emm-calendar .emm-calendar-badge--featured { background: #fff3d1; color: #695319; }
.emm-calendar .emm-calendar-badge--farmers { background: #dcebd6; color: #2e5027; }
.emm-calendar .emm-calendar-badge--closed { background: #eaecea; color: #4e584f; }
.emm-calendar .emm-calendar-row--closed { color: #526354; }
.emm-calendar .emm-calendar-row--closed .emm-calendar-date { background: #eef0ed; border-color: #d3ddce; }
.emm-calendar .emm-filter-empty { padding: 1rem; border: 1px solid #c7d3c2; background: #f5f8f2; border-radius: .3rem; }
@media (max-width: 600px) {
    .emm-calendar .emm-market-filters { padding: .65rem .7rem .8rem; }
    .emm-calendar .emm-calendar-filter-options { gap: .45rem; }
    .emm-calendar .emm-market-filters label { padding: .45rem .55rem; }
    .emm-calendar .emm-calendar-row { grid-template-columns: 3.5rem minmax(0, 1fr); gap: .3rem .75rem; padding: .75rem; }
    .emm-calendar .emm-calendar-date { grid-row: span 2; }
    .emm-calendar .emm-calendar-title { font-size: 1.15rem; }
    .emm-calendar .emm-calendar-badge { grid-column: 2; justify-self: start; white-space: normal; }
}
