/* StraganUI 0.20.3 — shared product card */
.so-product-card{position:relative;display:flex;width:100%;min-width:0;height:100%;flex-direction:column;overflow:hidden;border:1px solid var(--so-border);border-radius:12px;background:#fff;box-shadow:0 1px 0 rgba(20,50,30,.02);font-family:var(--so-font-body);transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.so-product-card:hover{border-color:#cbd8ce;box-shadow:0 7px 22px rgba(24,58,35,.055);transform:translateY(-1px)}
.so-product-card__media{position:relative;display:grid;place-items:center;flex:0 0 auto;height:205px;padding:10px;background:#fbfcfb;text-decoration:none!important}.so-product-card__image{display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;margin:auto!important;object-fit:contain!important;object-position:center!important}.so-product-card__badge{position:absolute;left:9px;top:9px;padding:4px 7px;border-radius:999px;background:var(--so-green);color:#fff;font-size:9px;font-weight:650}
.so-product-card__body{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;padding:10px 11px 11px}.so-product-card__meta{min-height:1.3em;margin:0 0 5px;overflow:hidden;color:#89938c;font-size:10.5px;font-weight:500;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.so-product-card__title{min-height:2.55em;margin:0!important;font:600 12.8px/1.28 var(--so-font-body)!important;letter-spacing:0!important;text-transform:none!important}.so-product-card__title a{display:-webkit-box;overflow:hidden;color:var(--so-text)!important;text-decoration:none!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.so-product-card__commercial{display:grid;gap:5px;margin-top:auto;padding-top:9px}.so-product-card__price{color:var(--so-text);font-size:16px;font-weight:700;line-height:1.15}.so-product-card__price del{color:#9aa29d;font-size:11px;font-weight:400}.so-product-card__price ins{text-decoration:none}.so-product-card__stock{display:flex;min-height:15px;align-items:center;gap:6px;color:var(--so-green);font-size:10.5px;font-weight:600;line-height:1.25}.so-product-card__stock>span{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:currentColor}.so-product-card__stock.is-out{color:var(--so-color-danger)}.so-product-card__actions{margin-top:9px}.so-product-card__button,.so-product-card .button{display:flex!important;width:100%!important;min-height:37px!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0 11px!important;border:1px solid var(--so-green)!important;border-radius:9px!important;background:var(--so-green)!important;color:#fff!important;font:600 11.5px/1.2 var(--so-font-body)!important;text-align:center!important;text-decoration:none!important;white-space:normal!important;box-shadow:none!important}.so-product-card__button:hover,.so-product-card .button:hover{border-color:var(--so-green-dark)!important;background:var(--so-green-dark)!important}.so-product-card__button--outline{background:#fff!important;color:var(--so-green-dark)!important}.so-product-card.is-unavailable{opacity:.94}
.so-product-card--compact{height:304px}.so-product-card--compact .so-product-card__media{height:146px;padding:8px}.so-product-card--compact .so-product-card__body{padding:9px 9px 10px}.so-product-card--compact .so-product-card__meta{font-size:9.4px}.so-product-card--compact .so-product-card__title{font-size:11.7px!important}.so-product-card--compact .so-product-card__price{font-size:14.5px}.so-product-card--compact .so-product-card__stock{font-size:9.5px}.so-product-card--compact .so-product-card__button{min-height:32px!important;font-size:10px!important}
.so-product-card--catalog{min-height:0}.so-product-card--catalog .so-product-card__media{height:210px}.so-product-card--catalog .so-product-card__body{min-height:154px}
body.straganui-shop-page .so-catalog-main[data-so-columns="2"] .so-product-card--catalog .so-product-card__media{height:235px}body.straganui-shop-page .so-catalog-main[data-so-columns="3"] .so-product-card--catalog .so-product-card__media{height:225px}body.straganui-shop-page .so-catalog-main[data-so-columns="4"] .so-product-card--catalog .so-product-card__media{height:215px}body.straganui-shop-page .so-catalog-main[data-so-columns="5"] .so-product-card--catalog .so-product-card__media{height:205px}
.so-empty-state{display:grid!important;min-height:170px;place-items:center;padding:28px!important;border:1px dashed #cbd8ce;border-radius:12px;background:#f6f9f6;text-align:center}.so-empty-state strong{font-size:18px}.so-empty-state span{color:var(--so-muted)}
@media(max-width:880px){.so-product-card--catalog{min-height:0}.so-product-card__media,body.straganui-shop-page .so-catalog-main[data-so-columns] .so-product-card--catalog .so-product-card__media{height:190px}.so-product-card--compact{height:auto}}
@media(max-width:600px){.so-product-card__media{height:42vw!important;max-height:190px;min-height:145px}.so-product-card__body{padding:9px}.so-product-card__title{font-size:12px!important}.so-product-card__price{font-size:15px}.so-product-card__button,.so-product-card .button{min-height:36px!important;font-size:11px!important}}

/* =========================================================
   v0.21.0 — shared commerce flow and accessibility polish
   ========================================================= */
.so-commerce-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%;margin:0 0 18px;padding:8px;border:1px solid var(--so-color-border);border-radius:13px;background:#fff;box-shadow:0 7px 24px rgba(22,55,35,.035)}
.so-commerce-progress__step{position:relative;display:flex;min-width:0;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:0 12px;border-radius:9px;color:var(--so-color-muted);font-size:11px;font-weight:700;text-align:center}
.so-commerce-progress__step:not(:last-child):after{content:"";position:absolute;right:-1px;top:50%;width:1px;height:22px;background:var(--so-color-border);transform:translateY(-50%)}
.so-commerce-progress__step i{display:grid;width:24px;height:24px;flex:0 0 24px;place-items:center;border:1px solid #d8e1da;border-radius:50%;background:#f6f8f6;color:#6f7b73;font-size:9px;font-style:normal;font-weight:850}
.so-commerce-progress__step b{min-width:0;color:inherit;font-size:10.5px;line-height:1.2}
.so-commerce-progress__step.is-active{background:var(--so-color-surface-soft);color:var(--so-color-primary-dark)}
.so-commerce-progress__step.is-active i{border-color:var(--so-color-primary);background:var(--so-color-primary);color:#fff}
.so-commerce-progress__step.is-done{color:#45634f}.so-commerce-progress__step.is-done i{border-color:#b9cfbf;background:#eaf3ec;color:#245437}
.so-commerce-progress__step.is-done i:before{content:"✓"}.so-commerce-progress__step.is-done i{font-size:0}.so-commerce-progress__step.is-done i:before{font-size:10px}
.straganui-active :where(a,button,input,select,textarea):focus-visible{outline:2px solid rgba(39,91,57,.48)!important;outline-offset:2px!important}
@media(max-width:620px){.so-commerce-progress{padding:6px}.so-commerce-progress__step{min-height:40px;gap:5px;padding:0 6px}.so-commerce-progress__step i{width:21px;height:21px;flex-basis:21px}.so-commerce-progress__step b{font-size:9px}.so-commerce-progress__step:not(:last-child):after{height:18px}}
@media(prefers-reduced-motion:reduce){.straganui-active *, .straganui-active *:before,.straganui-active *:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}


/* v0.21.5 — safe native WooCommerce fallback.
   If a shortcode/theme loop appears on another StraganUI page before the
   compact renderer takes ownership, keep it compact instead of inheriting
   Storefront's oversized card/title/button rules. */
body.straganui-active .woocommerce ul.products li.product:not(.so-native-product-card),
body.straganui-active .woocommerce .products > .product:not(.so-native-product-card){
    box-sizing:border-box!important;
    float:none!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:10px!important;
    overflow:hidden!important;
    border:1px solid #dfe6e1!important;
    border-radius:12px!important;
    background:#fff!important;
    box-shadow:0 3px 14px rgba(26,47,32,.045)!important;
    text-align:left!important;
}
body.straganui-active .woocommerce ul.products li.product:not(.so-native-product-card) a.woocommerce-loop-product__link{
    display:flex!important;min-width:0!important;flex-direction:column!important;text-decoration:none!important;
}
body.straganui-active .woocommerce ul.products li.product:not(.so-native-product-card) img{
    display:block!important;width:100%!important;height:176px!important;max-height:176px!important;margin:0 0 8px!important;padding:4px!important;object-fit:contain!important;background:#fff!important;
}
body.straganui-active .woocommerce ul.products li.product:not(.so-native-product-card) .woocommerce-loop-product__title{
    display:-webkit-box!important;min-height:2.7em!important;max-height:2.7em!important;margin:0 0 7px!important;padding:0!important;overflow:hidden!important;color:#202722!important;font:650 12.4px/1.34 var(--so-font-body)!important;letter-spacing:0!important;text-align:left!important;text-transform:none!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;line-clamp:2!important;
}
body.straganui-active .woocommerce ul.products li.product:not(.so-native-product-card) .price{
    display:block!important;margin:0 0 8px!important;color:#1d251f!important;font:750 16px/1.1 var(--so-font-body)!important;text-align:left!important;
}
body.straganui-active .woocommerce ul.products li.product:not(.so-native-product-card) .button{
    display:flex!important;width:100%!important;min-height:34px!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0 10px!important;border:1px solid var(--so-green-dark)!important;border-radius:5px!important;background:var(--so-green-dark)!important;color:#fff!important;font:650 10.4px/1 var(--so-font-body)!important;text-decoration:none!important;text-transform:none!important;box-shadow:none!important;
}

/* v0.21.15 — shared product-card unavailable state (homepage, catalogue, related products). */
.so-product-card.is-unavailable .so-product-card__stock.is-out{color:#b3483f!important}
.so-product-card.is-unavailable .so-product-card__stock.is-out>span{background:#b3483f!important;border-color:#b3483f!important}
.so-product-card .so-product-card__button--unavailable,
.so-product-card .so-product-card__button--unavailable:hover,
.so-product-card .so-product-card__button--unavailable:focus{
    display:flex!important;
    width:100%!important;
    min-height:36px!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    margin:0!important;
    padding:0 10px!important;
    border:1px solid #d96b63!important;
    border-radius:8px!important;
    background:#fff7f6!important;
    color:#a9362e!important;
    font:700 10.8px/1.15 var(--so-font-body)!important;
    text-align:center!important;
    text-decoration:none!important;
    box-shadow:none!important;
    cursor:not-allowed!important;
    opacity:1!important;
    pointer-events:none!important;
}
.so-product-card .so-product-card__button--unavailable::before{
    content:""!important;
    display:block!important;
    width:13px!important;
    height:13px!important;
    flex:0 0 13px!important;
    border:1.7px solid currentColor!important;
    border-radius:50%!important;
    background:linear-gradient(135deg,transparent 43%,currentColor 44%,currentColor 56%,transparent 57%)!important;
}
.so-product-card.is-unavailable .so-product-card__cart-link{display:none!important}


/* =========================================================
   v0.21.17 — cart feedback / finite purchase limits
   ========================================================= */
.so-cart-toast{
    position:fixed;right:20px;bottom:20px;z-index:999999;
    display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;
    width:min(360px,calc(100vw - 28px));align-items:center;
    padding:12px 14px;border:1px solid #b9cfbf;border-radius:13px;
    background:rgba(255,255,255,.98);color:#1c2a20;
    box-shadow:0 16px 44px rgba(19,50,30,.18);
    opacity:0;pointer-events:none;transform:translateY(10px) scale(.985);
    transition:opacity .18s ease,transform .18s ease;
    font-family:var(--so-font-body);
}
.so-cart-toast.is-visible{opacity:1;transform:translateY(0) scale(1)}
.so-cart-toast__icon{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:#e9f4eb;color:#235b37;font-size:16px;font-weight:900}
.so-cart-toast strong{display:block;margin:0;color:#172019;font-size:12.5px;line-height:1.25}
.so-cart-toast small{display:block;margin:2px 0 0;color:#68746c;font-size:10.5px;line-height:1.35}
.so-cart-toast.is-limit{border-color:#d6c49d;background:#fffdf7}.so-cart-toast.is-limit .so-cart-toast__icon{background:#f5ecd7;color:#7b5c1d}
.so-cart-toast.is-error{border-color:#e0b3af;background:#fff9f8}.so-cart-toast.is-error .so-cart-toast__icon{background:#f8e8e6;color:#a23c34}
@media(max-width:600px){.so-cart-toast{right:14px;bottom:14px;width:calc(100vw - 28px)}}

/* The actual card owns the rounded visual border; WooCommerce's outer li never does. */
.so-product-card.is-in-cart{border-color:#9fbea6!important;box-shadow:0 7px 22px rgba(32,87,50,.09)!important}
.so-product-card.is-at-limit{border-color:#7ca287!important;box-shadow:0 0 0 2px rgba(45,106,65,.08),0 8px 24px rgba(32,87,50,.10)!important}
.so-product-card .so-product-card__button--limit,
.so-product-card .so-product-card__button--limit:hover,
.so-product-card .so-product-card__button--limit:focus{
    border-color:#a7c3ad!important;background:#eef6f0!important;color:#245437!important;
    cursor:not-allowed!important;pointer-events:none!important;opacity:1!important;box-shadow:none!important;
}

/* =========================================================
   v0.25.0 — one WooCommerce notice language across commerce
   ========================================================= */
body.straganui-active .woocommerce-notices-wrapper{width:100%;margin:0 0 12px!important;padding:0!important}
body.straganui-active :is(.woocommerce-message,.woocommerce-info,.woocommerce-error){
    position:relative!important;display:block!important;width:100%!important;margin:0 0 12px!important;padding:12px 14px 12px 42px!important;
    border:1px solid #d8e4db!important;border-radius:10px!important;background:#f7faf8!important;color:#3e5145!important;
    font:600 12px/1.45 var(--so-font-body)!important;list-style:none!important;box-shadow:none!important
}
body.straganui-active :is(.woocommerce-message,.woocommerce-info,.woocommerce-error):before{
    content:"i"!important;position:absolute!important;left:13px!important;top:11px!important;display:grid!important;width:20px!important;height:20px!important;
    place-items:center!important;border-radius:50%!important;background:#e5efe8!important;color:#315f3e!important;font:800 11px/1 var(--so-font-body)!important
}
body.straganui-active .woocommerce-message{border-color:#cce0d1!important;background:#f4faf5!important;color:#2d653d!important}
body.straganui-active .woocommerce-message:before{content:"✓"!important;background:#dfeee3!important;color:#2d6e40!important}
body.straganui-active .woocommerce-error{border-color:#e7c9c4!important;background:#fff7f5!important;color:#8d4038!important}
body.straganui-active .woocommerce-error:before{content:"!"!important;background:#f3dfdc!important;color:#9b4138!important}
body.straganui-active :is(.woocommerce-message,.woocommerce-info,.woocommerce-error) a{color:inherit!important;font-weight:800!important;text-underline-offset:2px}
@media(max-width:430px){body.straganui-active :is(.woocommerce-message,.woocommerce-info,.woocommerce-error){padding:11px 12px 11px 38px!important;font-size:11.25px!important}body.straganui-active :is(.woocommerce-message,.woocommerce-info,.woocommerce-error):before{left:11px;top:10px}}

/* v0.25.0 — WooCommerce Blocks notices use the same visual language. */
body.straganui-active .wc-block-components-notice-banner{
    width:100%!important;margin:0 0 12px!important;padding:12px 14px!important;border:1px solid #d8e4db!important;border-radius:10px!important;
    background:#f7faf8!important;color:#3e5145!important;box-shadow:none!important;font:600 12px/1.45 var(--so-font-body)!important
}
body.straganui-active .wc-block-components-notice-banner.is-success{border-color:#cce0d1!important;background:#f4faf5!important;color:#2d653d!important}
body.straganui-active .wc-block-components-notice-banner.is-error{border-color:#e7c9c4!important;background:#fff7f5!important;color:#8d4038!important}
body.straganui-active .wc-block-components-notice-banner>svg{width:20px!important;height:20px!important;margin-right:8px!important}
body.straganui-active .wc-block-components-notice-banner__content{padding:0!important}
body.straganui-active .wc-block-components-notice-banner a{color:inherit!important;font-weight:800!important}


/* v0.25.6 — fit product media inside its frame without cropping.
   Intrinsic aspect ratio is preserved: wide/tall images become slightly smaller
   rather than being cut by a fixed square media frame. */
.so-product-card__media{overflow:hidden!important}
.so-product-card__media > img.so-product-card__image,
.so-product-card__media > picture > img.so-product-card__image,
img.so-product-card__image{
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    max-width:100%!important;
    max-height:100%!important;
    margin:auto!important;
    object-fit:contain!important;
    object-position:center!important;
    transform:none!important
}


/* =========================================================
   v0.26.4 — PRODUCT MEDIA: NEVER CROP
   Product photos always use fit-inside geometry. This is intentionally a final
   safety layer after theme/WooCommerce rules, so neither fixed width/height,
   transform, object-fit:cover nor picture wrappers can crop a StraganUI card.
   ========================================================= */
.straganui-active .so-product-card__media{
    display:grid!important;
    place-items:center!important;
    box-sizing:border-box!important;
}
.straganui-active .so-product-card__media>picture{
    display:grid!important;
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    min-height:0!important;
    place-items:center!important;
    margin:0!important;
    padding:0!important;
}
.straganui-active .so-product-card__media img.so-product-card__image,
.straganui-active .so-product-card__media>picture>img.so-product-card__image,
.straganui-active img.so-product-card__image{
    position:static!important;
    inset:auto!important;
    display:block!important;
    box-sizing:border-box!important;
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    max-width:100%!important;
    max-height:100%!important;
    aspect-ratio:auto!important;
    margin:auto!important;
    padding:0!important;
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
    clip:auto!important;
    clip-path:none!important;
}
/* Native Woo fallback cards must follow the same no-crop rule even before the
   shared-card renderer takes ownership. The box keeps a stable height while the
   image itself scales down inside it. */
body.straganui-active .woocommerce ul.products li.product:not(.so-native-product-card) a.woocommerce-loop-product__link,
body.straganui-active .woocommerce .products>.product:not(.so-native-product-card) a.woocommerce-loop-product__link{
    min-width:0!important;
}
body.straganui-active .woocommerce ul.products li.product:not(.so-native-product-card) a.woocommerce-loop-product__link>img,
body.straganui-active .woocommerce .products>.product:not(.so-native-product-card) a.woocommerce-loop-product__link>img{
    box-sizing:border-box!important;
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
    clip-path:none!important;
}

/* v0.31.4 — shared control readability/touch baseline. */
.so-btn{min-height:44px;font-size:14px}
.so-product-card__meta{font-size:11px}.so-product-card__title{font-size:13.5px!important}.so-product-card__stock{font-size:11.5px}.so-product-card__button,.so-product-card .button{min-height:42px!important;font-size:12.5px!important}
@media(max-width:600px){.so-product-card__title{font-size:13px!important}.so-product-card__stock{font-size:11.5px}.so-product-card__button,.so-product-card .button{min-height:44px!important;font-size:12.5px!important}}
