/*
 * EventHive Layout Base Styles
 *
 * Shared, theme-safe foundation styles for EventHive frontend output.
 * Keep all selectors scoped to EventHive wrappers.
 */

.eventhive,
.eventhive-template,
.eventhive-shortcode,
.eventhive *,
.eventhive *::before,
.eventhive *::after,
.eventhive-template *,
.eventhive-template *::before,
.eventhive-template *::after,
.eventhive-shortcode *,
.eventhive-shortcode *::before,
.eventhive-shortcode *::after {
    box-sizing: border-box;
}

.eventhive,
.eventhive-template,
.eventhive-container,
.eventhive-shortcode {
    --eh-container-width: var(--eventhive-container-width, 1140px);
}

.eventhive,
.eventhive-template,
.eventhive-shortcode {
    --eh-content-font-family: var(--eh-font-family, inherit);
    --eh-font-family-content: var(--eh-content-font-family, inherit);
    --eh-font-family-ui: var(--eh-font-family-content, var(--eh-content-font-family, inherit));
    --eh-font-family-heading: var(--eh-font-family, var(--wp--preset--font-family--heading, var(--wp--preset--font-family--headings, var(--eh-font-family-content))));
    --eh-base-font-size: 16px;
    --eh-layout-unit: 16px;
    --eh-text-base: clamp(var(--eh-base-font-size), calc((var(--eh-base-font-size) * 0.95) + 0.24vw), calc(var(--eh-base-font-size) * 1.13));
    --eh-text-xs: clamp(calc(var(--eh-base-font-size) * 0.79), calc((var(--eh-base-font-size) * 0.79) + 0.02vw), calc(var(--eh-base-font-size) * 0.89));
    --eh-text-s: clamp(calc(var(--eh-base-font-size) * 0.89), calc((var(--eh-base-font-size) * 0.87) + 0.09vw), calc(var(--eh-base-font-size) * 0.94));
    --eh-text-m: var(--eh-text-base);
    --eh-text-l: clamp(calc(var(--eh-base-font-size) * 1.13), calc((var(--eh-base-font-size) * 1.04) + 0.44vw), calc(var(--eh-base-font-size) * 1.35));
    --eh-text-xl: clamp(calc(var(--eh-base-font-size) * 1.27), calc((var(--eh-base-font-size) * 1.13) + 0.69vw), calc(var(--eh-base-font-size) * 1.62));
    --eh-text-xxl: clamp(calc(var(--eh-base-font-size) * 1.42), calc((var(--eh-base-font-size) * 1.22) + 1.01vw), calc(var(--eh-base-font-size) * 1.94));
    --eh-heading-h6: clamp(calc(var(--eh-base-font-size) * 0.99), calc((var(--eh-base-font-size) * 0.97) + 0.09vw), calc(var(--eh-base-font-size) * 1.04));
    --eh-heading-h5: clamp(calc(var(--eh-base-font-size) * 1.11), calc((var(--eh-base-font-size) * 1.06) + 0.23vw), calc(var(--eh-base-font-size) * 1.25));
    --eh-heading-h4: clamp(calc(var(--eh-base-font-size) * 1.25), calc((var(--eh-base-font-size) * 1.17) + 0.42vw), calc(var(--eh-base-font-size) * 1.5));
    --eh-heading-h3: clamp(calc(var(--eh-base-font-size) * 1.41), calc((var(--eh-base-font-size) * 1.28) + 0.66vw), calc(var(--eh-base-font-size) * 1.8));
    --eh-heading-h2: clamp(calc(var(--eh-base-font-size) * 1.58), calc((var(--eh-base-font-size) * 1.39) + 0.96vw), calc(var(--eh-base-font-size) * 2.16));
    --eh-heading-h1: clamp(calc(var(--eh-base-font-size) * 1.78), calc((var(--eh-base-font-size) * 1.51) + 1.35vw), calc(var(--eh-base-font-size) * 2.59));
    --eh-heading-hero: clamp(calc(var(--eh-base-font-size) * 2.85), calc((var(--eh-base-font-size) * 2.58) + 1.35vw), calc(var(--eh-base-font-size) * 3.66));
    --eh-text-content: var(--eh-text-base);
    --eh-text-component: var(--eh-text-s);
    --eh-text-control: var(--eh-text-s);
    --eh-text-badge: var(--eh-text-xs);
    --eh-text-button: var(--eh-text-s);
    --eh-text-meta: var(--eh-text-base);
    --eh-text-pagination: var(--eh-text-m);
    --eh-heading-page: var(--eh-heading-h1);
    --eh-heading-section: var(--eh-heading-h4);
    --eh-heading-card: var(--eh-heading-h5);
    --eh-weight-normal: 400;
    --eh-weight-medium: 500;
    --eh-weight-semibold: 600;
    --eh-weight-bold: 700;
    --eh-heading-weight: var(--eh-weight-bold);
    --eh-component-title-weight: var(--eh-weight-semibold);
    --eh-badge-font-family: var(--eh-font-family-ui);
    --eh-badge-font-size: var(--eh-text-badge);
    --eh-badge-font-weight: var(--eh-weight-normal);
    --eh-badge-line-height: var(--eh-leading-tight);
    --eh-badge-letter-spacing: normal;
    --eh-badge-text-transform: uppercase;
    --eh-button-font-family: var(--eh-font-family-ui);
    --eh-button-font-size: var(--eh-text-button);
    --eh-button-font-weight: var(--eh-weight-normal);
    --eh-button-line-height: var(--eh-leading-control);
    --eh-result-summary-font-family: var(--eh-font-family-ui);
    --eh-text-link-color: var(--eh-color-link, currentColor);
    --eh-text-link-hover-color: var(--eh-color-link-hover, var(--eh-text-link-color));
    --eh-leading-body: 1.6;
    --eh-leading-heading: 1.2;
    --eh-leading-tight: var(--eh-leading-heading);
    --eh-leading-control: var(--eh-leading-heading);
    --eh-gap-xs: clamp(calc(var(--eh-layout-unit) * 0.4), 0.3vw, calc(var(--eh-layout-unit) * 0.6));
    --eh-gap-s: clamp(calc(var(--eh-layout-unit) * 0.6), 0.5vw, calc(var(--eh-layout-unit) * 0.9));
    --eh-gap-m: clamp(var(--eh-layout-unit), 1vw, calc(var(--eh-layout-unit) * 1.4));
    --eh-gap-l: clamp(calc(var(--eh-layout-unit) * 1.4), 1.5vw, calc(var(--eh-layout-unit) * 2));
    --eh-gap-xl: clamp(calc(var(--eh-layout-unit) * 2), 2.5vw, calc(var(--eh-layout-unit) * 3));
    --eh-radius-s: clamp(calc(var(--eh-layout-unit) * 0.3), 0.3vw, calc(var(--eh-layout-unit) * 0.4));
    --eh-radius-m: clamp(calc(var(--eh-layout-unit) * 0.5), 0.5vw, calc(var(--eh-layout-unit) * 0.65));
    --eh-radius-round: 999px;
    --eh-container-padding: var(--eh-gap-m);
    font-family: var(--eh-content-font-family, inherit);
    font-size: var(--eh-text-base);
    line-height: var(--eh-leading-body);
}

.eventhive.eventhive :where(button, input, select, textarea),
.eventhive-template.eventhive-template :where(button, input, select, textarea),
.eventhive-shortcode.eventhive-shortcode :where(button, input, select, textarea) {
    font-family: var(--eh-font-family-ui, var(--eh-content-font-family, inherit));
}

.eventhive.eventhive-has-custom-base-size,
.eventhive-template.eventhive-has-custom-base-size,
.eventhive-shortcode.eventhive-has-custom-base-size {
    font-size: var(--eh-text-base);
}

.eventhive-template {
    flex: 0 0 auto;
    width: calc(100vw - (var(--eh-container-padding) + var(--eh-container-padding)));
    max-width: none;
    margin-inline: calc(50% - 50vw + var(--eh-container-padding));
}

.eventhive-template.entry-content {
    width: calc(100vw - (var(--eh-container-padding) + var(--eh-container-padding)));
    max-width: none;
    margin-inline: calc(50% - 50vw + var(--eh-container-padding));
    padding-inline: 0;
    font-size: var(--eh-text-base);
    line-height: var(--eh-leading-body);
    text-align: start;
}

.eventhive.eventhive-template.entry-content {
    width: calc(100vw - (var(--eh-container-padding) + var(--eh-container-padding)));
    max-width: none;
    margin-inline: calc(50% - 50vw + var(--eh-container-padding));
    padding-inline: 0;
}

.eventhive .eventhive-theme-content.entry-content,
.eventhive-template .eventhive-theme-content.entry-content,
.eventhive-shortcode .eventhive-theme-content.entry-content {
    font-size: var(--eh-text-base);
    line-height: var(--eh-leading-body);
}

.eventhive .eventhive-theme-content.entry-content .eventhive-theme-content__inner :where(p, li),
.eventhive-template .eventhive-theme-content.entry-content .eventhive-theme-content__inner :where(p, li),
.eventhive-shortcode .eventhive-theme-content.entry-content .eventhive-theme-content__inner :where(p, li) {
    font-size: inherit;
    line-height: inherit;
}

.eventhive a.eventhive-text-link,
.eventhive-template a.eventhive-text-link,
.eventhive-shortcode a.eventhive-text-link,
.eventhive a.eventhive-text-link:visited,
.eventhive-template a.eventhive-text-link:visited,
.eventhive-shortcode a.eventhive-text-link:visited {
    border: 0;
    border-bottom: 1px dotted currentColor;
    background: transparent;
    color: var(--eh-text-link-color, currentColor);
    text-decoration: none;
    text-decoration-color: currentColor;
    text-decoration-line: none;
    box-shadow: none;
}

.eventhive a.eventhive-text-link:hover,
.eventhive a.eventhive-text-link:active,
.eventhive a.eventhive-text-link:focus-visible,
.eventhive-template a.eventhive-text-link:hover,
.eventhive-template a.eventhive-text-link:active,
.eventhive-template a.eventhive-text-link:focus-visible,
.eventhive-shortcode a.eventhive-text-link:hover,
.eventhive-shortcode a.eventhive-text-link:active,
.eventhive-shortcode a.eventhive-text-link:focus-visible {
    border-bottom-color: currentColor;
    color: var(--eh-text-link-hover-color, var(--eh-text-link-color, currentColor));
    text-decoration: none;
    text-decoration-color: currentColor;
    text-decoration-line: none;
}

.eventhive a.eventhive-text-link:focus-visible,
.eventhive-template a.eventhive-text-link:focus-visible,
.eventhive-shortcode a.eventhive-text-link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.eventhive-container,
.eventhive-template .eventhive-container,
.eventhive-template.entry-content > .eventhive-container {
    font-family: var(--eh-content-font-family, inherit);
    width: 100%;
    max-width: var(--eh-container-width);
    margin-inline: auto;
    padding-inline: 0;
    text-align: start;
}

.eventhive.eventhive-template.entry-content > .eventhive-container.eventhive-container:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.is-style-wide) {
    width: 100%;
    max-width: var(--eh-container-width);
}

div.eventhive-shortcode.eventhive-shortcode {
    width: 100%;
    max-width: var(--eh-container-width);
    margin-inline: auto;
    padding-block-end: var(--eh-gap-m);
}

div.eventhive-shortcode.eventhive-shortcode:not(.eventhive-shortcode--wide) {
    max-width: min(var(--eh-container-width), calc(100vw - (var(--eh-container-padding) + var(--eh-container-padding))));
}

div.eventhive-shortcode.eventhive-shortcode--wide > .eventhive-shortcode__inner {
    flex: 0 0 auto;
    width: calc(100vw - (var(--eh-container-padding) + var(--eh-container-padding)));
    max-width: none;
    margin-inline: calc(50% - 50vw + var(--eh-container-padding));
}

div.eventhive-shortcode.eventhive-shortcode--wide > .eventhive-shortcode__inner > .eventhive-shortcode__content {
    font-family: var(--eh-content-font-family, inherit);
    width: 100%;
    max-width: var(--eh-container-width);
    margin-inline: auto;
}

.eventhive-template.eventhive-template--single .eventhive-single-entry {
    margin: 0;
    border: 0;
    box-shadow: none;
    outline: 0;
    padding: 0;
    background: transparent;
    background-color: transparent;
}

.eventhive-template .entry-header,
.eventhive-template .eventhive-archive-title,
.eventhive-template .eventhive-single-title {
    text-align: start;
}

.eventhive :is(figure, img, picture, video, canvas),
.eventhive-template :is(figure, img, picture, video, canvas),
.eventhive-shortcode :is(figure, img, picture, video, canvas) {
    background: transparent;
    border: 0;
    box-shadow: none;
    display: block;
    max-width: 100%;
    outline: 0;
    padding: 0;
    height: auto;
}

/* Protect EventHive-owned media surfaces from late global content/media rules. */
.eventhive :is(
    .eventhive-classic-grid-card__media,
    .eventhive-classic-list-item__media,
    .eventhive-classic-single__media,
    .eventhive-classic-single__organizer-logo,
    .eventhive-modern-grid-card__media,
    .eventhive-modern-list-item__media,
    .eventhive-modern-single__media,
    .eventhive-modern-single__organizer-logo,
    .eventhive-calendar-popover__media
) {
    box-sizing: border-box;
    margin: 0;
    border: 0;
    box-shadow: none;
    outline: 0;
    background: transparent;
    padding: 0;
}

.eventhive :is(
    .eventhive-classic-grid-card__media-link,
    .eventhive-classic-list-item__media-link,
    .eventhive-modern-grid-card__media-link,
    .eventhive-modern-list-item__media-link,
    .eventhive-calendar-popover__media-link
) {
    border: 0;
    box-shadow: none;
    background: transparent;
    padding: 0;
}

.eventhive :is(
    .eventhive-classic-grid-card__media-link,
    .eventhive-classic-list-item__media-link,
    .eventhive-modern-grid-card__media-link,
    .eventhive-modern-list-item__media-link,
    .eventhive-calendar-popover__media-link
):not(:focus-visible) {
    outline: 0;
}

.eventhive :is(
    .eventhive-classic-grid-card__image,
    .eventhive-classic-list-item__image,
    .eventhive-classic-single__image,
    .eventhive-classic-single__organizer-logo-image,
    .eventhive-modern-grid-card__image,
    .eventhive-modern-list-item__image,
    .eventhive-modern-single__image,
    .eventhive-modern-single__organizer-logo-image,
    .eventhive-calendar-popover__image
) {
    box-sizing: border-box;
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0;
    border: 0;
    box-shadow: none;
    outline: 0;
    background: transparent;
    padding: 0;
    vertical-align: middle;
}

.eventhive .eventhive-google-map,
.eventhive-template .eventhive-google-map,
.eventhive-shortcode .eventhive-google-map {
    display: block;
    inline-size: 100%;
    width: 100%;
    max-inline-size: 100%;
    max-width: 100%;
    min-width: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: transparent;
}

.eventhive .eventhive-google-map__iframe,
.eventhive-template .eventhive-google-map__iframe,
.eventhive-shortcode .eventhive-google-map__iframe,
.eventhive .eventhive-google-map__canvas,
.eventhive-template .eventhive-google-map__canvas,
.eventhive-shortcode .eventhive-google-map__canvas {
    display: block;
    inline-size: 100%;
    width: 100%;
    max-inline-size: 100%;
    max-width: 100%;
    height: 100%;
    border: 0;
}

.eventhive .eventhive-google-map__open-link-wrap,
.eventhive-template .eventhive-google-map__open-link-wrap,
.eventhive-shortcode .eventhive-google-map__open-link-wrap {
    margin: var(--eh-gap-xs) 0 0;
    font-family: var(--eh-font-family-ui, var(--eh-content-font-family, inherit));
    font-size: var(--eh-text-s);
    line-height: var(--eh-leading-control);
    text-align: center;
}

.eventhive a.eventhive-google-map__open-link,
.eventhive-template a.eventhive-google-map__open-link,
.eventhive-shortcode a.eventhive-google-map__open-link {
    font-size: inherit;
    line-height: inherit;
}

.eventhive .eventhive-google-map--api .eventhive-google-map__canvas button.gm-fullscreen-control,
.eventhive-template .eventhive-google-map--api .eventhive-google-map__canvas button.gm-fullscreen-control,
.eventhive-shortcode .eventhive-google-map--api .eventhive-google-map__canvas button.gm-fullscreen-control {
    min-inline-size: 0;
    min-block-size: 0;
    min-width: 0;
    min-height: 0;
}

.eventhive .eventhive-google-map--api .eventhive-google-map__canvas button.gm-fullscreen-control :where(img, svg),
.eventhive-template .eventhive-google-map--api .eventhive-google-map__canvas button.gm-fullscreen-control :where(img, svg),
.eventhive-shortcode .eventhive-google-map--api .eventhive-google-map__canvas button.gm-fullscreen-control :where(img, svg) {
    margin: 0;
    border: 0;
    padding: 0;
}

.eventhive :where(svg),
.eventhive-template :where(svg),
.eventhive-shortcode :where(svg) {
    max-width: 100%;
    height: auto;
}

.eventhive .eventhive-icon,
.eventhive-template .eventhive-icon,
.eventhive-shortcode .eventhive-icon {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    height: 100%;
    max-width: none;
    margin: 0;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.5;
    transform: none;
    vertical-align: middle;
}

.eventhive [hidden],
.eventhive-template [hidden],
.eventhive-shortcode [hidden] {
    display: none !important;
}

.eventhive :where(h1, h2, h3, h4, h5, h6):not(:where(.page-title, .archive-title, .entry-title)),
.eventhive-template :where(h1, h2, h3, h4, h5, h6):not(:where(.page-title, .archive-title, .entry-title)),
.eventhive-shortcode :where(h1, h2, h3, h4, h5, h6):not(:where(.page-title, .archive-title, .entry-title)) {
    line-height: var(--eh-leading-heading);
}

.eventhive .eventhive__container,
.eventhive-template .eventhive__container,
.eventhive-shortcode .eventhive__container {
    max-width: var(--eh-container-width);
    margin-inline: auto;
    padding-inline: var(--eh-container-padding);
}

.eventhive .eventhive-visually-hidden,
.eventhive-template .eventhive-visually-hidden,
.eventhive-shortcode .eventhive-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.eventhive .eventhive-event-datetime,
.eventhive-template .eventhive-event-datetime,
.eventhive-shortcode .eventhive-event-datetime {
    margin: 0;
    background: transparent;
    padding: 0;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    text-transform: none;
}

.eventhive .eventhive-event-datetime--inline,
.eventhive-template .eventhive-event-datetime--inline,
.eventhive-shortcode .eventhive-event-datetime--inline {
    display: inline;
}

.eventhive .eventhive-event-datetime--stacked,
.eventhive-template .eventhive-event-datetime--stacked,
.eventhive-shortcode .eventhive-event-datetime--stacked {
    display: grid;
}

.eventhive .eventhive-event-datetime__part,
.eventhive-template .eventhive-event-datetime__part,
.eventhive-shortcode .eventhive-event-datetime__part {
    margin: 0;
    min-width: 0;
    background: transparent;
    padding: 0;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    text-transform: inherit;
}

.eventhive .eventhive-event-datetime :where(time),
.eventhive-template .eventhive-event-datetime :where(time),
.eventhive-shortcode .eventhive-event-datetime :where(time) {
    margin: 0;
    background: transparent;
    padding: 0;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    text-transform: inherit;
}

.eventhive .eventhive-event-datetime--stacked .eventhive-event-datetime__part,
.eventhive-template .eventhive-event-datetime--stacked .eventhive-event-datetime__part,
.eventhive-shortcode .eventhive-event-datetime--stacked .eventhive-event-datetime__part {
    display: block;
}

/* Protect shared calendar primitives from broad theme/plugin element defaults. */
.eventhive .eventhive-calendar__popover {
    display: block;
    gap: normal;
    align-items: normal;
    margin: 0;
    padding: 0;
    text-align: start;
    text-transform: none;
}

.eventhive .eventhive-calendar .eventhive-calendar__popover-layer {
    position: relative;
    z-index: var(--eh-calendar-popover-layer-z-index, 20);
}

.eventhive .eventhive-calendar__frame,
.eventhive .eventhive-calendar__weekdays,
.eventhive .eventhive-calendar__week-days,
.eventhive .eventhive-calendar__week-spans,
.eventhive .eventhive-calendar__events,
.eventhive .eventhive-calendar-popover,
.eventhive .eventhive-calendar-popover__body,
.eventhive .eventhive-calendar-popover__day-header,
.eventhive .eventhive-calendar-popover__day-list,
.eventhive .eventhive-calendar-popover__day-event-content,
.eventhive .eventhive-calendar-popover__day-event-title-row {
    min-inline-size: 0;
    max-inline-size: 100%;
    align-content: stretch;
    align-items: stretch;
    justify-items: stretch;
}

.eventhive .eventhive-calendar__frame,
.eventhive .eventhive-calendar__weekdays,
.eventhive .eventhive-calendar__week-days,
.eventhive .eventhive-calendar__week-spans {
    gap: 0;
}

.eventhive .eventhive-calendar__event-link {
    --eh-calendar-event-marker-track-inline-size: max(
        var(--eh-calendar-event-marker-inline-size, 0px),
        var(--eh-calendar-event-marker-min-track-inline-size, 0px)
    );
}

.eventhive .eventhive-calendar :is(
    a.eventhive-calendar__day-link,
    a.eventhive-calendar__event-link,
    a.eventhive-calendar__more-link,
    a.eventhive-calendar__mobile-day-view-link,
    a.eventhive-calendar-popover__day-event-title,
    a.eventhive-calendar-popover__media-link,
    a.eventhive-calendar-popover__view-all,
    .eventhive-calendar-popover__title a
) {
    opacity: 1 !important;
    -webkit-box-shadow: none;
    box-shadow: none;
}

.eventhive .eventhive-calendar :is(
    a.eventhive-calendar__day-link,
    a.eventhive-calendar__event-link,
    a.eventhive-calendar__more-link,
    a.eventhive-calendar__mobile-day-view-link,
    a.eventhive-calendar-popover__day-event-title,
    a.eventhive-calendar-popover__media-link,
    a.eventhive-calendar-popover__view-all,
    .eventhive-calendar-popover__title a
):is(:hover, :focus, :active) {
    opacity: 1 !important;
    -webkit-box-shadow: none;
    box-shadow: none;
}

.eventhive .eventhive-calendar a.eventhive-calendar__event-link,
.eventhive .eventhive-calendar a.eventhive-calendar__event-link:visited {
    background: var(--eh-calendar-event-link-background, transparent) !important;
    background-color: var(--eh-calendar-event-link-background, transparent) !important;
}

.eventhive .eventhive-calendar a.eventhive-calendar__event-link:is(:hover, :focus, :active),
.eventhive .eventhive-calendar a.eventhive-calendar__event-link:visited:is(:hover, :focus, :active) {
    background: var(--eh-calendar-event-link-hover-background, var(--eh-calendar-event-link-background, transparent)) !important;
    background-color: var(--eh-calendar-event-link-hover-background, var(--eh-calendar-event-link-background, transparent)) !important;
}

.eventhive .eventhive-calendar :is(
    button.eventhive-calendar__day-button,
    button.eventhive-calendar__more-button
) {
    border-color: var(--eh-calendar-button-border-color, transparent);
    background: var(--eh-calendar-button-background, transparent) !important;
    background-color: var(--eh-calendar-button-background, transparent) !important;
    color: var(--eh-calendar-button-color, inherit) !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    opacity: 1;
    transition: var(--eh-calendar-control-transition, color 0.16s ease, background-color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease);
}

.eventhive .eventhive-calendar :is(
    button.eventhive-calendar__day-button,
    button.eventhive-calendar__more-button
):is(:hover, :focus, :active) {
    border-color: var(--eh-calendar-button-hover-border-color, var(--eh-calendar-button-border-color, transparent));
    background: var(--eh-calendar-button-hover-background, var(--eh-calendar-button-background, transparent)) !important;
    background-color: var(--eh-calendar-button-hover-background, var(--eh-calendar-button-background, transparent)) !important;
    color: var(--eh-calendar-button-hover-color, var(--eh-calendar-button-color, inherit)) !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    opacity: 1;
}

.eventhive .eventhive-calendar :is(
    a.eventhive-calendar__day-link,
    a.eventhive-calendar__event-link,
    a.eventhive-calendar__more-link,
    a.eventhive-calendar__mobile-day-view-link,
    a.eventhive-calendar-popover__day-event-title,
    a.eventhive-calendar-popover__media-link,
    a.eventhive-calendar-popover__view-all,
    button.eventhive-calendar__day-button,
    button.eventhive-calendar__more-button,
    .eventhive-calendar-popover__title a
):focus-visible {
    outline: var(--eh-calendar-focus-outline, 2px solid currentColor) !important;
    outline-offset: var(--eh-calendar-focus-outline-offset, 2px);
}

.eventhive .eventhive-calendar-popover {
    display: grid;
    margin: 0;
    text-align: start;
    text-transform: none;
}

.eventhive .eventhive-calendar-popover :where(h1, h2, h3, h4, h5, h6, p, ol, ul, li, figure) {
    max-inline-size: none;
}

.eventhive .eventhive-calendar-popover__media,
.eventhive .eventhive-calendar-popover__media-link,
.eventhive .eventhive-calendar-popover__image {
    border-radius: var(--eh-calendar-popover-media-radius, 0);
}

.eventhive .eventhive-calendar-popover__image {
    border: 0;
}

.eventhive .eventhive-result-summary,
.eventhive-template .eventhive-result-summary,
.eventhive-shortcode .eventhive-result-summary {
    margin-block-end: var(--eh-gap-m);
    text-align: start;
}

.eventhive .eventhive-result-summary__text,
.eventhive-template .eventhive-result-summary__text,
.eventhive-shortcode .eventhive-result-summary__text {
    margin: 0;
    font-family: var(--eh-result-summary-font-family, var(--eh-font-family-ui, var(--eh-content-font-family, inherit)));
    font-size: var(--eh-result-summary-font-size, var(--eh-text-component));
    line-height: var(--eh-result-summary-line-height, var(--eh-leading-control));
    color: inherit;
    text-align: start;
    text-transform: none;
}

.eventhive .eventhive-result-summary__text.eventhive-theme-content--summary.entry-content.entry-content,
.eventhive-template .eventhive-result-summary__text.eventhive-theme-content--summary.entry-content.entry-content,
.eventhive-shortcode .eventhive-result-summary__text.eventhive-theme-content--summary.entry-content.entry-content {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    color: inherit;
    font-family: var(--eh-result-summary-font-family, var(--eh-font-family-ui, var(--eh-content-font-family, inherit)));
    font-size: var(--eh-result-summary-font-size, var(--eh-text-component));
    font-weight: inherit;
    letter-spacing: inherit;
    line-height: var(--eh-result-summary-line-height, var(--eh-leading-control));
    text-align: start;
    text-transform: none;
}

.eventhive .eventhive-badge,
.eventhive-template .eventhive-badge,
.eventhive-shortcode .eventhive-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--eh-badge-gap, var(--eh-gap-xs));
    box-sizing: border-box;
    width: auto;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    border: var(--eh-badge-border-width, 1px) solid var(--eh-badge-border-color, currentColor);
    border-radius: var(--eh-badge-radius, 0);
    background: var(--eh-badge-background, transparent);
    padding-block: var(--eh-badge-padding-block, 0);
    padding-inline: var(--eh-badge-padding-inline, var(--eh-gap-s));
    color: var(--eh-badge-color, inherit);
    font-family: var(--eh-badge-font-family, inherit);
    font-size: var(--eh-badge-font-size, var(--eh-text-xs));
    font-weight: var(--eh-badge-font-weight, 400);
    line-height: var(--eh-badge-line-height, var(--eh-leading-heading));
    letter-spacing: var(--eh-badge-letter-spacing, normal);
    text-align: center;
    text-decoration: none;
    text-transform: var(--eh-badge-text-transform, uppercase);
    box-shadow: none;
}

.eventhive a.eventhive-badge,
.eventhive-template a.eventhive-badge,
.eventhive-shortcode a.eventhive-badge,
.eventhive a.eventhive-badge:visited,
.eventhive-template a.eventhive-badge:visited,
.eventhive-shortcode a.eventhive-badge:visited {
    color: var(--eh-badge-color, inherit);
    text-decoration: none;
}

.eventhive a.eventhive-badge:hover,
.eventhive a.eventhive-badge:active,
.eventhive a.eventhive-badge:focus-visible,
.eventhive-template a.eventhive-badge:hover,
.eventhive-template a.eventhive-badge:active,
.eventhive-template a.eventhive-badge:focus-visible,
.eventhive-shortcode a.eventhive-badge:hover,
.eventhive-shortcode a.eventhive-badge:active,
.eventhive-shortcode a.eventhive-badge:focus-visible {
    color: var(--eh-badge-hover-color, var(--eh-badge-color, inherit));
    text-decoration: none;
}

.eventhive .eventhive-badge__text,
.eventhive-template .eventhive-badge__text,
.eventhive-shortcode .eventhive-badge__text {
    display: inline;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    line-height: inherit;
}

.eventhive .eventhive-button,
.eventhive-template .eventhive-button,
.eventhive-shortcode .eventhive-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--eh-button-gap, var(--eh-gap-xs));
    min-height: var(--eh-button-min-height, calc(var(--eh-layout-unit) * 2.5));
    border: var(--eh-button-border-width, 1px) solid var(--eh-button-border-color, currentColor);
    border-radius: var(--eh-button-radius, 0);
    background: var(--eh-button-background, transparent);
    padding-block: var(--eh-button-padding-block, 0);
    padding-inline: var(--eh-button-padding-inline, var(--eh-gap-s));
    color: var(--eh-button-color, inherit);
    font-family: var(--eh-button-font-family, var(--eh-content-font-family, inherit));
    font-size: var(--eh-button-font-size, var(--eh-text-s));
    font-weight: var(--eh-button-font-weight, 400);
    line-height: var(--eh-button-line-height, var(--eh-leading-heading));
    text-align: center;
    text-decoration: none;
    text-decoration-color: currentColor;
    text-decoration-line: none;
    text-transform: none;
    cursor: pointer;
    appearance: none;
    box-shadow: none;
}

.eventhive .eventhive-button:visited,
.eventhive-template .eventhive-button:visited,
.eventhive-shortcode .eventhive-button:visited {
    color: var(--eh-button-color, inherit);
}

.eventhive .eventhive-button:hover,
.eventhive .eventhive-button:active,
.eventhive .eventhive-button:focus-visible,
.eventhive-template .eventhive-button:hover,
.eventhive-template .eventhive-button:active,
.eventhive-template .eventhive-button:focus-visible,
.eventhive-shortcode .eventhive-button:hover,
.eventhive-shortcode .eventhive-button:active,
.eventhive-shortcode .eventhive-button:focus-visible {
    border-color: var(--eh-button-hover-border-color, var(--eh-button-border-color, currentColor));
    background: var(--eh-button-hover-background, var(--eh-button-background, transparent));
    color: var(--eh-button-hover-color, var(--eh-button-color, inherit));
    text-decoration: none;
    text-decoration-color: currentColor;
    text-decoration-line: none;
}

.eventhive .eventhive-button:focus-visible,
.eventhive-template .eventhive-button:focus-visible,
.eventhive-shortcode .eventhive-button:focus-visible {
    outline: 2px solid var(--eh-button-focus-color, currentColor);
    outline-offset: 2px;
}

.eventhive .eventhive-button:disabled,
.eventhive .eventhive-button[aria-disabled="true"],
.eventhive .eventhive-button.is-disabled,
.eventhive-template .eventhive-button:disabled,
.eventhive-template .eventhive-button[aria-disabled="true"],
.eventhive-template .eventhive-button.is-disabled,
.eventhive-shortcode .eventhive-button:disabled,
.eventhive-shortcode .eventhive-button[aria-disabled="true"],
.eventhive-shortcode .eventhive-button.is-disabled {
    cursor: not-allowed;
    opacity: 0.6;
}

.eventhive a.eventhive-button[aria-disabled="true"],
.eventhive a.eventhive-button.is-disabled,
.eventhive-template a.eventhive-button[aria-disabled="true"],
.eventhive-template a.eventhive-button.is-disabled,
.eventhive-shortcode a.eventhive-button[aria-disabled="true"],
.eventhive-shortcode a.eventhive-button.is-disabled {
    pointer-events: none;
}

.eventhive .eventhive-button:disabled:hover,
.eventhive .eventhive-button[aria-disabled="true"]:hover,
.eventhive .eventhive-button.is-disabled:hover,
.eventhive-template .eventhive-button:disabled:hover,
.eventhive-template .eventhive-button[aria-disabled="true"]:hover,
.eventhive-template .eventhive-button.is-disabled:hover,
.eventhive-shortcode .eventhive-button:disabled:hover,
.eventhive-shortcode .eventhive-button[aria-disabled="true"]:hover,
.eventhive-shortcode .eventhive-button.is-disabled:hover {
    border-color: var(--eh-button-border-color, currentColor);
    background: var(--eh-button-background, transparent);
    color: var(--eh-button-color, inherit);
}

.eventhive .eventhive-button.eventhive-button--primary,
.eventhive-template .eventhive-button.eventhive-button--primary,
.eventhive-shortcode .eventhive-button.eventhive-button--primary {
    --eh-button-border-color: var(--eh-button-primary-border-color, var(--eh-button-primary-background, var(--eh-color-accent, #000000)));
    --eh-button-background: var(--eh-button-primary-background, var(--eh-color-accent, #000000));
    --eh-button-color: var(--eh-button-primary-color, var(--eh-color-accent-contrast, #ffffff));
    --eh-button-hover-border-color: var(--eh-button-primary-hover-border-color, var(--eh-button-primary-hover-background, var(--eh-button-primary-background, var(--eh-color-accent, #000000))));
    --eh-button-hover-background: var(--eh-button-primary-hover-background, var(--eh-button-primary-background, var(--eh-color-accent, #000000)));
    --eh-button-hover-color: var(--eh-button-primary-hover-color, var(--eh-button-primary-color, var(--eh-color-accent-contrast, #ffffff)));
    --eh-button-focus-color: var(--eh-button-primary-focus-color, var(--eh-button-primary-border-color, var(--eh-button-primary-background, var(--eh-color-accent, #000000))));

    justify-content: center;
    min-height: var(--eh-button-min-height, calc(var(--eh-layout-unit) * 2.5));
    border: var(--eh-button-border-width, 1px) solid var(--eh-button-border-color);
    background: var(--eh-button-background);
    padding-block: var(--eh-button-padding-block, 0);
    padding-inline: var(--eh-button-padding-inline, var(--eh-gap-s));
    color: var(--eh-button-color);
    line-height: var(--eh-button-line-height, var(--eh-leading-heading));
}

.eventhive .eventhive-button.eventhive-button--primary:visited,
.eventhive-template .eventhive-button.eventhive-button--primary:visited,
.eventhive-shortcode .eventhive-button.eventhive-button--primary:visited {
    color: var(--eh-button-color);
}

.eventhive .eventhive-button.eventhive-button--primary:hover,
.eventhive .eventhive-button.eventhive-button--primary:active,
.eventhive .eventhive-button.eventhive-button--primary:focus-visible,
.eventhive-template .eventhive-button.eventhive-button--primary:hover,
.eventhive-template .eventhive-button.eventhive-button--primary:active,
.eventhive-template .eventhive-button.eventhive-button--primary:focus-visible,
.eventhive-shortcode .eventhive-button.eventhive-button--primary:hover,
.eventhive-shortcode .eventhive-button.eventhive-button--primary:active,
.eventhive-shortcode .eventhive-button.eventhive-button--primary:focus-visible {
    border-color: var(--eh-button-hover-border-color);
    background: var(--eh-button-hover-background);
    color: var(--eh-button-hover-color);
    text-decoration: none;
}

.eventhive .eventhive-button.eventhive-button--full,
.eventhive-template .eventhive-button.eventhive-button--full,
.eventhive-shortcode .eventhive-button.eventhive-button--full {
    width: 100%;
}

.eventhive .eventhive-button__text,
.eventhive .eventhive-button__label,
.eventhive .eventhive-button__icon,
.eventhive-template .eventhive-button__text,
.eventhive-template .eventhive-button__label,
.eventhive-template .eventhive-button__icon,
.eventhive-shortcode .eventhive-button__text,
.eventhive-shortcode .eventhive-button__label,
.eventhive-shortcode .eventhive-button__icon {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

.eventhive .eventhive-button__icon,
.eventhive-template .eventhive-button__icon,
.eventhive-shortcode .eventhive-button__icon {
    flex: 0 0 auto;
    width: var(--eh-button-icon-size, 1.25em);
    height: var(--eh-button-icon-size, 1.25em);
    justify-content: center;
}

.eventhive .eventhive-button svg,
.eventhive-template .eventhive-button svg,
.eventhive-shortcode .eventhive-button svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}
