/* JE Product Cards. All card styles are scoped; no fonts or remote assets loaded. */
.je-card,
.je-wishlist {
    --je-image-bg: #eeece9;
    --je-info-bg: #f5e9df;
    --je-title-color: #25170f;
    --je-price-color: #df4300;
    --je-old-price-color: #929292;
    --je-star-color: #ff8a00;
    --je-star-empty: #bdc2bd;
    --je-badge-bg: #ff4f20;
    --je-button-bg: #fff;
    --je-button-color: #202020;
    --je-heart-color: #df4300;
    --je-image-ratio: 4 / 4.6;
    --je-image-fit: contain;
    --je-title-size: 22px;
    --je-price-size: 16px;
    --je-star-size: 18px;
    --je-star-gap: 3px;
    --je-meta-gap: 8px;
    --je-meta-direction: column;
    --je-action-size: 40px;
    --je-info-padding: 18px 20px 20px;
    --je-info-separator: 12px;
    --je-card-radius: 6px;
}
.je-card,
.je-card * { box-sizing: border-box; }
.je-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    /* Do not inherit a fixed/percentage height through Elementor's wrappers.
       A minimum keeps equal-height grids; content can still grow on small screens. */
    height: auto;
    min-height: 100%;
    margin: 0;
    padding: 0;
    gap: 0;
    background: transparent;
    border: 0;
    border-radius: var(--je-card-radius);
    border: var(--je-card-border-width, 0px) solid var(--je-card-border-color, #eee);
    box-shadow: var(--je-card-shadow, none);
    overflow: hidden;
    font-family: var(--je-font, inherit);
}
.je-card__media {
    position: relative;
    display: block;
    isolation: isolate;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    height: auto;
    aspect-ratio: var(--je-image-ratio, 4 / 4.6);
    background: var(--je-image-bg);
    border-radius: var(--je-card-radius) var(--je-card-radius) 0 0;
    overflow: hidden;
}
/* Keep the image frame in normal flow. Only the image inside it is absolute.
   This supplies measurable height before the image/lazy-loader has finished. */
.je-card__image-link {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: var(--je-image-ratio, 4 / 4.6);
    line-height: 0;
}
.je-card .je-card__image {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    object-fit: var(--je-image-fit);
    object-position: var(--je-image-position, center);
    transition: transform .25s ease;
}
@media (hover: hover) {
    .je-card__image-link:hover .je-card__image { transform: scale(var(--je-image-zoom, 1.025)); }
}
.je-card__badge {
    position: absolute;
    z-index: 2;
    top: var(--je-badge-top, 12px);
    left: var(--je-badge-left, 12px);
    max-width: calc(100% - var(--je-action-size) - var(--je-actions-right, 12px) - var(--je-badge-left, 12px) - 12px);
    padding: var(--je-badge-pad-y, 5px) var(--je-badge-pad-x, 9px);
    border-radius: var(--je-badge-radius, 2px);
    background: var(--je-badge-bg);
    color: var(--je-badge-color, #fff);
    font-size: var(--je-badge-size, 11px);
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: .35px;
    overflow-wrap: anywhere;
    pointer-events: none;
}
.je-card__actions {
    position: absolute;
    z-index: 3;
    top: var(--je-actions-top, 12px);
    right: var(--je-actions-right, 12px);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--je-actions-gap, 10px);
}
.je-card .je-card__action {
    appearance: none;
    display: inline-flex;
    position: relative;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: var(--je-action-size);
    height: var(--je-action-size);
    min-width: var(--je-action-size);
    min-height: var(--je-action-size);
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: var(--je-action-radius, 50px);
    background: var(--je-button-bg);
    color: var(--je-button-color);
    box-shadow: none;
    text-decoration: none;
    cursor: pointer;
    line-height: 1;
    transition: color .18s ease, transform .18s ease, opacity .18s ease;
}
.je-card .je-card__action:hover { background: var(--je-button-hover-bg, #fff); color: var(--je-button-hover-color, var(--je-heart-color)); transform: translateY(-1px); }
.je-card .je-card__wish.is-saved { color: var(--je-heart-color); background: var(--je-saved-bg, #fff); }
.je-wish-icon--saved { display: none; }
.je-card__wish.is-saved .je-wish-icon--saved { display: inline-flex; }
.je-card__wish.is-saved .je-wish-icon--idle { display: none; }
.je-icon-slot { display: inline-flex; align-items: center; justify-content: center; line-height: 0; flex-shrink: 0; }
.je-card .je-card__action:disabled { opacity: .5; cursor: wait; }
.je-card .je-icon { width: var(--je-icon-size, 18px); height: var(--je-icon-size, 18px); max-width: none; fill: none; stroke: currentColor; stroke-width: var(--je-icon-stroke, 1.8); stroke-linecap: round; stroke-linejoin: round; }
.je-card .je-card__cart::after { content: none; }
.je-card .je-card__cart.loading .je-icon { opacity: 0; }
.je-card .je-card__cart.loading::after {
    content: "";
    position: absolute;
    inset: calc(50% - 8px);
    width: 16px;
    height: 16px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: je-pc-spin .7s linear infinite;
}
.je-card .je-card__cart.added { color: var(--je-heart-color); }
.je-card__actions > .added_to_cart { display: none !important; }
.je-card a:focus-visible,
.je-card button:focus-visible,
.je-wishlist button:focus-visible { outline: 2px solid var(--je-price-color); outline-offset: 3px; }
.je-card__image-link:focus-visible { outline-offset: -4px !important; }
.je-card .je-card__info {
    display: flex;
    flex-direction: column;
    flex: 1;
    width: 100%;
    min-width: 0;
    gap: var(--je-info-gap, 10px);
    margin: 0;
    padding: var(--je-info-padding);
    border: 0;
    border-top: var(--je-info-separator) solid var(--je-separator-color, #fff);
    border-radius: 0;
    background: var(--je-info-bg);
}
.je-card .je-card__title {
    margin: 0;
    padding: 0;
    font-family: inherit;
    font-size: var(--je-title-size);
    line-height: 1.25;
    font-weight: var(--je-title-weight, 700);
    letter-spacing: 0;
    color: var(--je-title-color);
    overflow-wrap: anywhere;
}
.je-card .je-card__title a,
.je-card .je-card__title a:visited { color: inherit; text-decoration: none; }
.je-card .je-card__meta {
    display: flex;
    flex-direction: var(--je-meta-direction, column);
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    gap: var(--je-meta-gap, 8px);
    padding: 0;
    margin: 0;
}
.je-card .je-card__price,
.je-card .je-card__price .price {
    margin: 0;
    padding: 0;
    color: var(--je-price-color);
    font-size: var(--je-price-size);
    line-height: 1.4;
    font-weight: var(--je-price-weight, 500);
    background: none;
}
.je-card .je-card__price { flex: 0 1 auto; min-width: 0; overflow-wrap: anywhere; }
.je-card .je-card__price .je-price--sale { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.je-card .je-card__price del { order: 2; color: var(--je-old-price-color); font-size: var(--je-old-price-size, var(--je-price-size)); opacity: 1; text-decoration: line-through; }
.je-card .je-card__price ins { order: 0; color: var(--je-price-color); background: transparent; text-decoration: none; font-weight: var(--je-price-weight, 500); }
.je-card .je-card__price .woocommerce-price-suffix { order: 3; flex-basis: 100%; font-size: .8em; }
.je-card .screen-reader-text {
    border: 0 !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    width: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    white-space: nowrap !important;
}
.je-card .je-card__rating { display: inline-flex; flex: 0 0 auto; margin: 0; padding: 0; line-height: 1; text-decoration: none; }
.je-stars { display: inline-flex; gap: var(--je-star-gap, 3px); }
.je-card .je-star { display: block; position: relative; width: var(--je-star-size); height: var(--je-star-size); color: var(--je-star-empty); }
.je-card .je-star .je-icon { display: block; width: var(--je-star-size); height: var(--je-star-size); min-width: var(--je-star-size); fill: currentColor; stroke: none; }
.je-card .je-star__fill { position: absolute; top: 0; left: 0; height: 100%; overflow: hidden; color: var(--je-star-color); }
/* Elementor wrappers for the optional modular container layout. */
.je-card.je-card--elementor { --container-widget-width: 100%; --widgets-spacing: 0px; }
.je-card--elementor > .elementor-widget,
.je-card--elementor .je-card__info > .elementor-widget { width: 100%; margin-bottom: 0; }
.je-card--elementor .elementor-widget-container,
.je-card--elementor .elementor-shortcode { min-width: 0; }
.je-card--elementor .je-card__meta > .elementor-widget { width: auto; max-width: 100%; margin: 0; }
.je-card--elementor .je-card__meta > .je-price-widget { flex: 0 1 auto; min-width: 0; }
.je-card--elementor .je-card__meta > .je-rating-widget { flex: 0 0 auto; }
/* 1.2.1: only JE media/full-card shortcode widgets get these classes.
   Width belongs to the Loop Grid's column, not to the image's min-content width.
   Do not override display/visibility: Elementor's intentional hide settings win. */
.elementor-element.je-pc-media-widget,
.elementor-element.je-pc-card-widget {
    --container-widget-width: 100%;
    --container-widget-height: auto;
    --flex-shrink: 0;
    --flex-basis: auto;
    width: 100% !important;
    max-width: 100%;
    min-width: 0;
    height: auto !important;
    flex: 0 0 auto !important;
}
.elementor-element.je-pc-media-widget > .elementor-widget-container,
.elementor-element.je-pc-card-widget > .elementor-widget-container,
.elementor-element.je-pc-media-widget > .elementor-shortcode,
.elementor-element.je-pc-card-widget > .elementor-shortcode,
.elementor-element.je-pc-media-widget > .elementor-widget-container > .elementor-shortcode,
.elementor-element.je-pc-card-widget > .elementor-widget-container > .elementor-shortcode {
    width: 100%;
    min-width: 0;
    height: auto !important;
}
.je-card.je-card--elementor { height: auto; min-height: 100%; }

/* Favorites page and notifications. */
.je-wishlist__grid { display: grid; grid-template-columns: repeat(var(--je-wl-grid-columns, 3), minmax(0, 1fr)); gap: var(--je-wl-grid-gap, 24px); }
.je-wishlist__status { margin: 0 0 18px; }
.je-wishlist__more { display: block; margin: 24px auto 0; cursor: pointer; }
.je-wishlist [hidden] { display: none !important; }
.je-pc-help { padding: 10px; border: 1px dashed #999; font-size: 13px; }
.je-pc-toast {
    position: fixed;
    z-index: 999999;
    right: 20px;
    bottom: 20px;
    max-width: min(360px, calc(100vw - 40px));
    padding: 14px 18px;
    border-radius: 6px;
    color: #fff;
    background: #222;
    font: 15px/1.45 system-ui, sans-serif;
    box-shadow: 0 6px 24px #0002;
    visibility: hidden;
    opacity: 0;
    transition: opacity .15s ease;
}
.je-pc-toast.is-visible { visibility: visible; opacity: 1; }
.je-pc-toast a { display: inline-block; margin-left: 10px; color: #fff; text-decoration: underline; }
@keyframes je-pc-spin { to { transform: rotate(360deg); } }
@media (max-width: 1024px) {
    .je-wishlist__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    /* Mobile card variables are emitted from the saved settings. */
}
@media (max-width: 540px) {
    .je-wishlist__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .je-card .je-card__image,
    .je-card .je-card__action,
    .je-pc-toast { transition: none; }
    .je-card .je-card__image-link:hover .je-card__image { transform: none; }
}

/* Configurable badges and icons. */
.je-card__badge--sale { background: var(--je-sale-bg, var(--je-badge-bg)); }
.je-card__badge--new { background: var(--je-new-bg, var(--je-badge-bg)); }
.je-card__badge--hot { background: var(--je-hot-bg, var(--je-badge-bg)); }
.je-card .je-card__title a:hover { color: var(--je-title-hover, var(--je-title-color)); }
.je-card .je-icon--solid,
.je-wishlist .je-icon--solid { fill: currentColor; }
.je-card .je-icon--custom,
.je-wishlist .je-icon--custom { object-fit: contain; border: 0; border-radius: 0; background: transparent; padding: 0; margin: 0; box-shadow: none; }

/* Wishlist table. Kept independent from the catalogue card design. */
.je-wishlist,
.je-wishlist * { box-sizing: border-box; }
.je-wishlist { width: 100%; min-width: 0; max-width: var(--je-wl-max-width, 1320px); margin: 0 auto; font-family: var(--je-wl-font, inherit); color: var(--je-wl-text-color, #313c49); }
.je-wishlist .je-wishlist__table-wrap { max-width: 100%; overflow-x: auto; border-radius: var(--je-wl-radius, 2px); box-shadow: var(--je-wl-shadow, 0 4px 24px #0001); background: var(--je-wl-row-bg, #fff); }
.je-wishlist .je-wishlist__table { width: 100%; min-width: var(--je-wl-min-width, 760px); table-layout: fixed; border: 0; border-spacing: 0; border-collapse: collapse; margin: 0; padding: 0; background: none; font-family: inherit; }
.je-wishlist__col--image { width: var(--je-wl-col-image, 18%); }
.je-wishlist__col--name { width: var(--je-wl-col-name, 31%); }
.je-wishlist__col--price { width: var(--je-wl-col-price, 15%); }
.je-wishlist__col--stock { width: var(--je-wl-col-stock, 18%); }
.je-wishlist__col--actions { width: var(--je-wl-col-actions, 18%); }
.je-wishlist .je-wishlist__table th,
.je-wishlist .je-wishlist__table td { vertical-align: middle; text-align: center; border: 0; border-bottom: var(--je-wl-border-width, 1px) solid var(--je-wl-border-color, #f1f1f1); line-height: 1.6; overflow-wrap: anywhere; }
.je-wishlist .je-wishlist__table th { color: var(--je-wl-header-color, #3f3f3f); background: var(--je-wl-header-bg, #fff); font-size: var(--je-wl-header-size, 16px); font-weight: var(--je-wl-header-weight, 700); padding: var(--je-wl-header-pad-y, 32px) var(--je-wl-cell-pad-x, 22px); }
.je-wishlist .je-wishlist__table td { padding: var(--je-wl-row-pad-y, 32px) var(--je-wl-cell-pad-x, 22px); background: transparent; color: var(--je-wl-text-color, #313c49); }
.je-wishlist .je-wishlist__table .je-wishlist__cell--name { text-align: left; }
.je-wishlist .je-wishlist__row { height: var(--je-wl-row-height, 170px); border: 0; background: var(--je-wl-row-bg, #fff); }
.je-wishlist .je-wishlist__row:nth-child(even) { background: var(--je-wl-alt-bg, #fcfcfc); }
.je-wishlist .je-wishlist__row:last-child td { border-bottom: 0; }
@media (hover: hover) { .je-wishlist .je-wishlist__row:hover { background: var(--je-wl-hover-bg, #faf7f4); } }
.je-wishlist .je-wishlist__cell--image > a { display: inline-block; max-width: 100%; line-height: 0; }
.je-wishlist .je-wishlist__image { display: block; width: var(--je-wl-image-width, 104px); height: var(--je-wl-image-height, 104px); max-width: 100%; padding: 0; margin: auto; border: 0; border-radius: var(--je-wl-image-radius, 0px); object-fit: var(--je-wl-image-fit, contain); box-shadow: none; }
.je-wishlist .je-wishlist__name { display: inline; color: var(--je-wl-text-color, #313c49); font-size: var(--je-wl-name-size, 16px); font-weight: var(--je-wl-name-weight, 400); line-height: 1.55; text-decoration: none; }
.je-wishlist .je-wishlist__name:hover { color: var(--je-wl-name-hover, #bf6429); }
.je-wishlist .je-wishlist__details { margin-top: 3px; color: var(--je-wl-meta-color, #313c49); font-size: var(--je-wl-meta-size, 16px); font-weight: 400; line-height: 1.8; }
.je-wishlist .je-wishlist__details:empty { display: none; }
.je-wishlist .je-wishlist__stock { color: var(--je-wl-stock-color, #313c49); font-size: var(--je-wl-stock-size, 16px); }
.je-wishlist .je-wishlist__stock--outofstock { color: var(--je-wl-out-color, #a53b36); }
.je-wishlist .je-wishlist__stock--onbackorder { color: var(--je-wl-backorder-color, #a56a20); }
.je-wishlist__table .je-card__price,
.je-wishlist__table .je-card__price .price { margin: 0; padding: 0; color: var(--je-wl-price-color, #313c49); font-size: var(--je-wl-price-size, 16px); font-weight: 400; line-height: 1.5; background: none; }
.je-wishlist__table .je-card__price .je-price--sale { display: inline-flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 3px 8px; }
.je-wishlist__table .je-card__price del { order: 2; opacity: 1; color: var(--je-wl-old-price-color, #929292); font-size: .9em; text-decoration: line-through; }
.je-wishlist__table .je-card__price ins { order: 0; background: none; text-decoration: none; color: inherit; }
.je-wishlist__table .woocommerce-price-suffix { order: 3; flex-basis: 100%; font-size: .8em; }
.je-wishlist .je-wishlist__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--je-wl-actions-gap, 10px); }
.je-wishlist .je-wishlist__action { appearance: none; display: inline-flex; position: relative; align-items: center; justify-content: center; width: var(--je-wl-button-size, 40px); height: var(--je-wl-button-size, 40px); min-width: var(--je-wl-button-size, 40px); padding: 0; margin: 0; border: 0; border-radius: var(--je-wl-button-radius, 4px); line-height: 1; text-decoration: none; box-shadow: none; cursor: pointer; transition: background-color .15s ease, color .15s ease; }
.je-wishlist .je-wishlist__cart { background: var(--je-wl-cart-bg, #bf6429); color: var(--je-wl-cart-color, #fff); }
.je-wishlist .je-wishlist__cart:hover { background: var(--je-wl-cart-hover-bg, #a64e1b); color: var(--je-wl-cart-hover-color, #fff); }
.je-wishlist .je-wishlist__remove { background: var(--je-wl-remove-bg, #404040); color: var(--je-wl-remove-color, #fff); }
.je-wishlist .je-wishlist__remove:hover { background: var(--je-wl-remove-hover-bg, #a53b36); color: var(--je-wl-remove-hover-color, #fff); }
.je-wishlist .je-wishlist__action:disabled { opacity: .38; cursor: not-allowed; }
.je-wishlist .je-wishlist__action .je-icon { display: block; width: var(--je-wl-icon-size, 21px); height: var(--je-wl-icon-size, 21px); max-width: none; fill: none; stroke: currentColor; stroke-width: var(--je-wl-icon-stroke, 1.6); stroke-linecap: round; stroke-linejoin: round; }
.je-wishlist .je-wishlist__action .je-icon--solid { fill: currentColor; }
.je-wishlist .je-wishlist__actions > .added_to_cart { display: none !important; }
.je-wishlist .je-wishlist__cart::after { content: none; }
.je-wishlist .je-wishlist__cart.loading .je-icon { opacity: 0; }
.je-wishlist .je-wishlist__cart.loading::after { content: ''; position: absolute; left: calc(50% - 8px); top: calc(50% - 8px); width: 16px; height: 16px; border: 2px solid currentColor; border-top-color: transparent; border-radius: 50%; animation: je-pc-spin .7s linear infinite; }
.je-wishlist .je-wishlist__status { margin: 16px 0 0; font-size: 14px; }
.je-wishlist .je-wishlist__more { display: block; margin: 24px auto 0; padding: 10px 20px; border: 0; border-radius: var(--je-wl-button-radius, 4px); font: inherit; color: var(--je-wl-cart-color, #fff); background: var(--je-wl-cart-bg, #bf6429); cursor: pointer; }
.je-wishlist .je-wishlist__more:disabled { opacity: .6; cursor: wait; }
.je-wishlist .je-wishlist__more:hover { color: var(--je-wl-cart-hover-color, #fff); background: var(--je-wl-cart-hover-bg, #a64e1b); }
.je-sr-only,
.je-wishlist__table .screen-reader-text,
.je-wishlist--quiet .je-wishlist__status.is-count { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important; }
.je-wishlist a:focus-visible,
.je-wishlist button:focus-visible,
.je-wishlist__table-wrap:focus-visible { outline: 2px solid var(--je-wl-cart-bg, #bf6429); outline-offset: 3px; }
@media (max-width: 767px) {
    .je-wishlist--stack .je-wishlist__table { display: block; min-width: 0; }
    .je-wishlist--stack .je-wishlist__table-wrap { overflow: hidden; }
    .je-wishlist--stack .je-wishlist__table colgroup { display: none; }
    .je-wishlist--stack .je-wishlist__table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); }
    .je-wishlist--stack .je-wishlist__table tbody { display: block; width: 100%; }
    .je-wishlist--stack .je-wishlist__row { display: grid; grid-template-columns: var(--je-wl-mobile-image, 76px) minmax(0,1fr); gap: 8px 16px; height: auto; padding: var(--je-wl-mobile-padding, 16px); border-bottom: var(--je-wl-border-width, 1px) solid var(--je-wl-border-color, #f1f1f1); }
    .je-wishlist--stack .je-wishlist__row:last-child { border-bottom: 0; }
    .je-wishlist--stack .je-wishlist__table td { display: block; min-width: 0; padding: 0; border: 0; text-align: left; }
    .je-wishlist--stack .je-wishlist__table .je-wishlist__cell--image { grid-column: 1; grid-row: 1 / span 4; }
    .je-wishlist--stack .je-wishlist__table .je-wishlist__cell--name,
    .je-wishlist--stack .je-wishlist__table .je-wishlist__cell--price,
    .je-wishlist--stack .je-wishlist__table .je-wishlist__cell--stock,
    .je-wishlist--stack .je-wishlist__table .je-wishlist__cell--actions { grid-column: 2; }
    .je-wishlist--stack .je-wishlist__image { width: var(--je-wl-mobile-image, 76px); height: auto; aspect-ratio: var(--je-wl-image-ratio, 1 / 1); }
    .je-wishlist--stack .je-wishlist__cell--price::before,
    .je-wishlist--stack .je-wishlist__cell--stock::before { content: attr(data-label) ': '; font-size: 12px; font-weight: 600; color: var(--je-wl-header-color, #3f3f3f); display: block; }
    .je-wishlist--stack .je-wishlist__actions { justify-content: flex-start; }
    .je-wishlist--stack .je-card__price .je-price--sale { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) { .je-wishlist .je-wishlist__action { transition: none; } }

/* Validated custom SVGs: the inner drawing uses currentColor; keep fill=none intact. */
.je-card .je-icon--uploaded,
.je-wishlist .je-icon--uploaded { display: inline-flex; align-items: center; justify-content: center; line-height: 0; color: inherit; }
.je-card .je-icon--uploaded > svg,
.je-wishlist .je-icon--uploaded > svg { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; color: inherit; overflow: hidden; }

/* 1.3.0 — responsive card layout, explicit alignment and exact icon centering. */
.je-card {
    /* Horizontal margins reduce the occupied width instead of overflowing the Loop column. */
    width: calc(100% - var(--je-card-margin-left, 0px) - var(--je-card-margin-right, 0px));
    max-width: 100%;
    margin: var(--je-card-margin, 0px);
}
.je-card .je-card__title {
    text-align: var(--je-title-align, left);
}
.je-card .je-card__title a,
.je-card .je-card__title a:visited {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit;
    transform: none;
}
.je-card .je-card__title a:hover,
.je-card .je-card__title a:focus-visible {
    color: var(--je-title-hover, var(--je-title-color));
    font-size: var(--je-title-hover-size, var(--je-title-size)) !important;
    font-weight: var(--je-title-hover-weight, var(--je-title-weight, 700)) !important;
    line-height: 1.25 !important;
    transform: none;
}

/* 1.3.1: title, price and rating are always separate vertical rows.
   The setting --je-meta-direction controls only whether price or rating comes first. */
.je-card .je-card__meta,
.je-card .je-card__meta--regular,
.je-card .je-card__meta--sale,
.je-card.je-card--regular .je-card__meta,
.je-card.je-card--sale .je-card__meta,
.je-card--elementor .je-card__meta,
.je-card--elementor .je-card__meta:has(.je-price--sale),
.je-card--elementor .je-card__meta:not(:has(.je-price--sale)) {
    flex-direction: var(--je-meta-direction, column);
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: var(--je-meta-gap, 8px);
}
.je-card .je-card__price,
.je-card .je-card__rating {
    width: 100%;
    flex: 0 0 auto;
}
.je-card .je-card__price {
    display: flex;
    align-items: baseline;
    justify-content: var(--je-price-align, flex-start);
    text-align: left;
}
.je-card .je-card__price .price,
.je-card .je-card__price .je-price--sale {
    justify-content: inherit;
}
.je-card .je-card__rating {
    display: flex;
    align-items: center;
    justify-content: var(--je-rating-align-regular, flex-end);
}
.je-card .je-card__meta--regular .je-card__rating,
.je-card.je-card--regular .je-card__rating,
.je-card--elementor .je-card__meta:not(:has(.je-price--sale)) .je-card__rating {
    justify-content: var(--je-rating-align-regular, flex-end);
}
.je-card .je-card__meta--sale .je-card__rating,
.je-card.je-card--sale .je-card__rating,
.je-card--elementor .je-card__meta:has(.je-price--sale) .je-card__rating {
    justify-content: var(--je-rating-align-sale, flex-start);
}
/* Elementor modular layout: each Shortcode widget becomes a full-width row too. */
.je-card--elementor .je-card__meta > .elementor-widget,
.je-card--elementor .je-card__meta > .je-price-widget,
.je-card--elementor .je-card__meta > .je-rating-widget {
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
    margin: 0;
}

/* Empty and filled rating artwork can now be different custom icons. */
.je-card .je-star {
    overflow: hidden;
}
.je-card .je-star__empty,
.je-card .je-star__fill {
    position: absolute;
    inset: 0 auto auto 0;
    display: block;
    width: var(--je-star-size);
    height: var(--je-star-size);
    line-height: 0;
}
.je-card .je-star__empty { color: var(--je-star-empty); }
.je-card .je-star__fill {
    top: 0;
    left: 0;
    overflow: hidden;
    color: var(--je-star-color);
}
.je-card .je-star .je-icon-slot {
    display: grid;
    place-items: center;
    width: var(--je-star-size);
    height: var(--je-star-size);
    min-width: var(--je-star-size);
    min-height: var(--je-star-size);
    margin: 0;
    padding: 0;
    line-height: 0;
}
.je-card .je-star .je-icon,
.je-card .je-star .je-icon--uploaded,
.je-card .je-star .je-icon--uploaded > svg,
.je-card .je-star .je-icon--custom {
    display: block;
    width: var(--je-star-size);
    height: var(--je-star-size);
    min-width: var(--je-star-size);
    min-height: var(--je-star-size);
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    color: inherit;
}

/* Center the icon viewport exactly inside every action button; remove baseline influence. */
.je-card .je-card__action > .je-icon-slot,
.je-wishlist .je-wishlist__action > .je-icon-slot {
    position: absolute;
    top: 50%;
    left: 50%;
    display: grid;
    place-items: center;
    width: var(--je-icon-size, 18px);
    height: var(--je-icon-size, 18px);
    margin: 0;
    padding: 0;
    line-height: 0;
    transform: translate(-50%, -50%);
}
.je-wishlist .je-wishlist__action > .je-icon-slot {
    width: var(--je-wl-icon-size, 21px);
    height: var(--je-wl-icon-size, 21px);
}
.je-card .je-card__wish > .je-wish-icon--idle,
.je-card .je-card__wish > .je-wish-icon--saved {
    position: absolute;
    inset: 0;
    margin: 0;
    padding: 0;
    line-height: 0;
    place-items: center;
}
.je-card .je-card__wish > .je-wish-icon--idle { display: grid; }
.je-card .je-card__wish > .je-wish-icon--saved { display: none; }
.je-card .je-card__wish.is-saved > .je-wish-icon--idle { display: none; }
.je-card .je-card__wish.is-saved > .je-wish-icon--saved { display: grid; }
.je-card .je-card__wish > .je-wish-icon--idle > .je-icon-slot,
.je-card .je-card__wish > .je-wish-icon--saved > .je-icon-slot {
    display: grid;
    place-items: center;
    width: var(--je-icon-size, 18px);
    height: var(--je-icon-size, 18px);
    margin: 0;
    padding: 0;
    line-height: 0;
}
.je-card .je-card__action .je-icon,
.je-card .je-card__action .je-icon--uploaded,
.je-card .je-card__action .je-icon--uploaded > svg,
.je-wishlist .je-wishlist__action .je-icon,
.je-wishlist .je-wishlist__action .je-icon--uploaded,
.je-wishlist .je-wishlist__action .je-icon--uploaded > svg {
    position: static;
    display: block;
    margin: 0;
    padding: 0;
    vertical-align: middle;
    transform: none;
}

/* 1.3.1: uploaded SVG viewport is fitted to its actual vector geometry by JS.
   The inner SVG must always use the entire icon slot after its viewBox is normalized. */
.je-card .je-icon--uploaded > svg,
.je-wishlist .je-icon--uploaded > svg,
.je-admin .je-icon--uploaded > svg {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible;
}
