.ear-hide-in-loop {
    display: none !important;
}

/* Current-row ACF/SCF visibility for Elementor Containers. The render hook
   overwrites this state for every Loop row, preventing one false row from
   leaking its hidden state into later true rows. */
.elementor-element[data-winsho-repeater-visibility="hide"] {
    display: none !important;
}

.ear-custom-filter {
    display: flex;
    flex-direction: var(--ear-filter-direction, row);
    white-space: var(--ear-filter-white-space, nowrap);
    gap: var(--ear-filter-gap, 10px);
    justify-content: var(--ear-filter-justify-content, flex-start);
    align-items: var(--ear-filter-align-items, flex-start);
}

.ear-filter-direction-horizontal {
    --ear-filter-direction: row;
    --ear-filter-white-space: nowrap;
}

.ear-filter-direction-vertical {
    --ear-filter-direction: column;
    --ear-filter-white-space: normal;
}

.ear-filter-item {
    cursor: pointer;
}

/* Filter Dividers - Using pseudo-elements like Elementor */
.ear-custom-filter.ear-filter-direction-horizontal.ear-has-divider .ear-filter-item-wrapper:not(:last-child):after {
    content: "";
    position: relative;
    display: inline-block;
    vertical-align: middle;
    margin: 0 10px;
    border-left-style: var(--ear-filter-divider-style, solid);
    border-left-width: var(--ear-filter-divider-width, 1px);
    border-left-color: var(--ear-filter-divider-color, #000);
    height: var(--ear-filter-divider-height, 20px);
}

/* Make wrapper inline-block so pseudo-element shows properly */
.ear-custom-filter.ear-filter-direction-horizontal .ear-filter-item-wrapper {
    display: inline-block;
}

/* Prevent layout shift on bold hover/active states - use min-width */
.ear-filter-item {
    min-width: max-content;
}
/* ear switcher control */

.elementor-control-type-earluna_switcher .elementor-switch {
    position: relative;
    display: inline-block;
    vertical-align: top;
    height: 20px;
    border-radius: 18px;
}
.elementor-control-type-earluna_switcher .elementor-switch-input {
    display: none;
}
.elementor-control-type-earluna_switcher .elementor-switch-label {
    display: block;
    height: inherit;
    font-size: 10px;
    background: var(--e-a-bg-active-bold);
    border-radius: inherit;

}
.elementor-control-type-earluna_switcher .elementor-switch-label:before, 
.elementor-control-type-earluna_switcher .elementor-switch-label:after {
    position: absolute;
    top: 0;
    width: 50%;
    text-align: center;
    line-height: 20px;
    transition: inherit;
}
.elementor-control-type-earluna_switcher .elementor-switch-label:before {
    content: attr(data-off);
    right: 5px;
    color: var(--e-a-color-txt-muted);
}
.elementor-control-type-earluna_switcher .elementor-switch-label:after {
    content: attr(data-on);
    left: 20px;
    color: var(--e-a-color-txt-muted);
    opacity: 0;
}

.elementor-control-type-earluna_switcher .elementor-switch-input:checked ~ .elementor-switch-label:before {
    opacity: 0;
}
.elementor-control-type-earluna_switcher .elementor-switch-input:checked ~ .elementor-switch-label:after {
    opacity: 1;
}
.elementor-control-type-earluna_switcher .elementor-switch-handle {
    position: absolute;
    top: 1px;
    left: 1px;
    width: 18px;
    height: 18px;
    background: white;
    border-radius: 10px;
    transition: left 0.15s ease-out;
}
.elementor-control-type-earluna_switcher .elementor-switch-input:checked ~ .elementor-switch-handle {
    left: 1px;
}

/* Clamp loop item width to prevent horizontal overflow shifting the template */
.elementor-loop-container .e-loop-item {
    max-width: 100% !important;
}

/* <fs_premium_only> */
.ear-filter-error {
    margin-block: 0.75rem;
    padding: 0.75rem 1rem;
    border-left: 4px solid #b32d2e;
    background: #fcf0f1;
    color: #3c434a;
}

.ear-row-query {
    display: block;
    margin-block-end: clamp(1rem, 2vw, 1.75rem);
    color: inherit;
}

.ear-row-query__form {
    display: grid;
    gap: 0.75rem;
}

.ear-row-query__label {
    font-weight: 700;
    line-height: 1.2;
}

.ear-row-query__fields {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 0.75rem;
}

.ear-row-query__field,
.ear-row-query__range {
    min-width: min(100%, 10rem);
    margin: 0;
    padding: 0;
    border: 0;
}

.ear-row-query__field--search {
    flex: 1 1 16rem;
}

.ear-row-query input,
.ear-row-query select,
.ear-row-query button {
    min-height: 2.75rem;
    border-radius: 0.5rem;
    font: inherit;
}

.ear-row-query input,
.ear-row-query select {
    width: 100%;
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
}

.ear-row-query__range {
    display: grid;
    grid-template-columns: minmax(6rem, 1fr) auto minmax(6rem, 1fr);
    align-items: center;
    gap: 0.4rem;
}

.ear-row-query__range legend {
    grid-column: 1 / -1;
    margin-block-end: 0.25rem;
    font-size: 0.82em;
    font-weight: 600;
}

.ear-row-query button {
    padding-inline: 1rem;
    border: 1px solid currentColor;
    cursor: pointer;
}

.ear-row-query__apply {
    background: #1d2327;
    color: #fff;
}

.ear-row-query__reset {
    background: transparent;
    color: inherit;
}

.ear-row-query input:focus-visible,
.ear-row-query select:focus-visible,
.ear-row-query button:focus-visible {
    outline: 3px solid #2271b1;
    outline-offset: 2px;
}

.elementor-loop-container .e-loop-item {
    position: relative;
}

.elementor-loop-container[data-ear-enable-lightbox="yes"] .e-loop-item {
    cursor: pointer;
}

/* Swiper creates a lower stacking context than Elementor's full-widget Loop
   document handle. Let card/lightbox clicks pass through that transparent
   overlay while preserving the visible Edit Loop Item handle itself. */
.elementor-editor-active [class*="elementor-widget-loop"]:has(.elementor-loop-container[data-ear-enable-lightbox="yes"]) .elementor-document-handle:not(.elementor-document-save-back-handle) {
    pointer-events: none;
}

.elementor-editor-active [class*="elementor-widget-loop"]:has(.elementor-loop-container[data-ear-enable-lightbox="yes"]) .elementor-document-handle:not(.elementor-document-save-back-handle) .elementor-document-handle__inner {
    pointer-events: auto;
}

.ear-lightbox button:focus-visible {
    outline: 3px solid #2271b1;
    outline-offset: 3px;
}

.ear-lightbox[hidden] {
    display: none;
}

.ear-lightbox {
    position: fixed;
    z-index: 2147483647;
    inset: 0;
    display: grid;
    place-items: center;
    padding: clamp(0.75rem, 2vw, 2rem);
    background: var(--ear-lightbox-background, rgb(0 0 0 / 72%));
}

.ear-lightbox__dialog {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
}

.ear-lightbox__content {
    width: var(--ear-lightbox-content-width, auto);
    height: var(--ear-lightbox-content-height, auto);
    max-width: min(var(--ear-lightbox-content-max-width, 100%), 100%);
    max-height: calc(100dvh - 1.5rem);
    overflow: auto;
    padding: var(--ear-lightbox-content-padding, 0);
}

.ear-lightbox__content > .e-loop-item {
    width: 100%;
}

/* The Content Height control sizes the visible Loop item, not just its modal
   wrapper. Elementor places template backgrounds on the item's immediate root
   element, so that root must fill the clone as well. Keep this conditional so
   an unset height preserves the template's natural dimensions. */
.ear-lightbox--fixed-height .ear-lightbox__content > .e-loop-item,
.ear-lightbox--fixed-height .ear-lightbox__content > .e-loop-item > :is(.elementor-element, .e-con) {
    height: 100% !important;
    min-height: 100% !important;
}

.ear-lightbox__close,
.ear-lightbox__previous,
.ear-lightbox__next {
    appearance: none;
    position: absolute;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 2.75rem;
    min-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    margin: 0;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #fff !important;
    cursor: pointer;
    font-size: 1.5rem;
    line-height: 1;
    text-decoration: none;
}

.ear-lightbox__previous[hidden],
.ear-lightbox__next[hidden] {
    display: none;
}

.ear-lightbox__close {
    inset-block-start: 0;
    inset-inline-end: 0;
    color: var(--ear-lightbox-close-color, #fff) !important;
    font-size: var(--ear-lightbox-close-size, 1.5rem) !important;
}

.ear-lightbox__previous,
.ear-lightbox__next {
    inset-block-start: 50%;
    translate: 0 -50%;
    color: var(--ear-lightbox-navigation-color, #fff) !important;
    font-size: var(--ear-lightbox-navigation-size, 1.5rem) !important;
}

.ear-lightbox__previous {
    inset-inline-start: 0;
}

.ear-lightbox__next {
    inset-inline-end: 0;
}

.ear-lightbox-open {
    overflow: hidden;
}

/* </fs_premium_only> */
