/*
 * Canonical product card component.
 * This file is the single visual source for product cards in catalog, home,
 * badge archives, brand/favourites and related-product collections.
 */
.product-card.product-card--canonical{
    position:relative;
    min-width:0;
    height:100%;
    overflow:hidden;
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
    scroll-snap-align:start;
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.product-card.product-card--canonical:hover{
    border-color:#c8d7e4;
    box-shadow:0 12px 32px rgba(9,46,77,.09);
}
.product-card.product-card--canonical .product-card__visual{
    position:relative;
    height:220px;
    padding:18px;
    display:grid;
    place-items:center;
    overflow:hidden;
    background:linear-gradient(180deg,#fff 0%,#f8fafb 100%);
}
.product-card.product-card--canonical .product-card__visual img{
    display:block;
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    transition:transform .22s ease;
}
.product-card.product-card--canonical:hover .product-card__visual img{transform:scale(1.035)}
.product-card.product-card--canonical .product-card__body{
    position:relative;
    z-index:1;
    min-width:0;
    min-height:250px;
    padding:16px;
    display:flex;
    flex-direction:column;
    background:#fff;
    border-top:1px solid #edf1f5;
}
.product-card.product-card--canonical .product-card__title{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    min-width:0;
    min-height:66px;
    max-height:calc(1.3em * 3);
    overflow:hidden;
    color:var(--ink);
    font-size:17px;
    font-weight:800;
    line-height:1.3;
}
.product-card.product-card--canonical .product-card__title:hover{color:var(--primary)}
.product-card.product-card--canonical .product-card__sku{
    min-width:0;
    margin-top:8px;
    color:#596879;
    font-size:14px;
    line-height:1.35;
    overflow-wrap:anywhere;
}
.product-card.product-card--canonical .product-card__stock{
    min-width:0;
    margin-top:8px;
    font-size:14px;
    font-weight:750;
    line-height:1.3;
}
.product-card.product-card--canonical .product-card__bottom{
    width:100%;
    min-width:0;
    margin-top:auto;
    padding-top:16px;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    align-items:stretch;
}
.product-card.product-card--canonical .product-card__price{
    width:100%;
    min-width:0;
    min-height:43px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-end;
    gap:4px;
}
.product-card.product-card--canonical .product-card__price strong{
    display:block;
    width:100%;
    min-width:0;
    color:var(--ink);
    font-size:20px;
    font-weight:800;
    line-height:1.18;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
}
.product-card.product-card--canonical .product-card__price s{
    display:block;
    max-width:100%;
    color:#8492a3;
    font-size:14px;
    line-height:1.25;
    white-space:nowrap;
}
.product-card.product-card--canonical .product-card__actions{
    width:100%;
    min-width:0;
    display:block;
}
.product-card.product-card--canonical .product-card__primary-action,
.product-card.product-card--canonical .product-card__secondary-action,
.product-card.product-card--canonical .product-card__cart-add,
.product-card.product-card--canonical .product-card__request-button,
.product-card.product-card--canonical .product-card__cart-link{
    min-height:46px;
    border-radius:8px;
    font-size:16px;
    font-weight:800;
    line-height:1.15;
    text-align:center;
}
.product-card.product-card--canonical .product-card__primary-action,
.product-card.product-card--canonical .product-card__cart-add,
.product-card.product-card--canonical .product-card__request-button{
    width:100%;
    padding:9px 13px;
    border:1px solid var(--primary);
    background:var(--primary);
    color:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.product-card.product-card--canonical .product-card__primary-action:hover,
.product-card.product-card--canonical .product-card__cart-add:hover,
.product-card.product-card--canonical .product-card__request-button:hover,
.product-card.product-card--canonical .product-card__cart-link:hover{
    background:var(--primary-hover);
    border-color:var(--primary-hover);
    color:#fff;
}
.product-card.product-card--canonical .product-card__secondary-action{
    width:100%;
    padding:9px 13px;
    border:1px solid #cbd5df;
    background:#fff;
    color:var(--secondary);
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.product-card.product-card--canonical .product-card__secondary-action:hover{
    border-color:var(--secondary);
    background:var(--secondary-soft);
}
.product-card.product-card--canonical .product-card__cart-control{width:100%;min-width:0}
.product-card.product-card--canonical .product-card__cart-add[hidden],
.product-card.product-card--canonical .product-card__cart-active[hidden]{display:none!important}
.product-card.product-card--canonical .product-card__cart-control.is-busy{opacity:.62;pointer-events:none}
.product-card.product-card--canonical .product-card__cart-active{
    width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:minmax(88px,.9fr) minmax(126px,1.1fr);
    gap:7px;
    align-items:stretch;
}
.product-card.product-card--canonical .product-card__cart-link{
    min-width:0;
    padding:0 10px;
    border:1px solid var(--primary);
    background:var(--primary);
    color:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
}
.product-card.product-card--canonical .product-card__qty{
    min-width:0;
    min-height:46px;
    overflow:hidden;
    display:grid;
    grid-template-columns:36px minmax(42px,1fr) 36px;
    border:1px solid #d6dee8;
    border-radius:8px;
    background:#fff;
}
.product-card.product-card--canonical .product-card__qty button,
.product-card.product-card--canonical .product-card__qty input{
    min-width:0;
    height:44px;
    border:0;
    background:#fff;
    color:var(--ink);
    text-align:center;
}
.product-card.product-card--canonical .product-card__qty button{
    padding:0;
    color:var(--secondary);
    font-size:19px;
    font-weight:800;
}
.product-card.product-card--canonical .product-card__qty button:hover{background:#f2f5f8}
.product-card.product-card--canonical .product-card__qty input{
    width:100%;
    padding:0 2px;
    border-right:1px solid #e3e8ee;
    border-left:1px solid #e3e8ee;
    font-size:14px;
    font-weight:800;
    -moz-appearance:textfield;
}
.product-card.product-card--canonical .product-card__qty input::-webkit-outer-spin-button,
.product-card.product-card--canonical .product-card__qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.product-card.product-card--canonical .product-card__tools{
    position:absolute;
    z-index:6;
    top:10px;
    right:10px;
    display:flex;
    gap:6px;
}
.product-card.product-card--canonical .product-card__tools .icon-btn{
    width:34px;
    height:34px;
    min-height:34px;
    padding:0;
    background:rgba(255,255,255,.96);
    box-shadow:0 4px 14px rgba(6,42,75,.08);
}

/* Catalog list view keeps the same component, only changes its outer layout. */
body[data-page="catalog"] #catalogProducts.is-list .product-card.product-card--canonical .product-card__bottom{
    gap:14px;
}
body[data-page="catalog"] #catalogProducts.is-list .product-card.product-card--canonical .product-card__price strong{
    font-size:22px;
}

@media(max-width:1023px){
    .product-card.product-card--canonical .product-card__body{min-height:238px}
    .product-card.product-card--canonical .product-card__price strong{font-size:19px}
}
@media(max-width:767px){
    .product-card.product-card--canonical .product-card__visual{height:150px;padding:10px}
    .product-card.product-card--canonical .product-card__body{min-height:228px;padding:11px}
    .product-card.product-card--canonical .product-card__title{min-height:58px;font-size:15px;line-height:1.28}
    .product-card.product-card--canonical .product-card__sku{font-size:13px}
    .product-card.product-card--canonical .product-card__stock{font-size:14px}
    .product-card.product-card--canonical .product-card__bottom{gap:9px;padding-top:12px}
    .product-card.product-card--canonical .product-card__price{min-height:38px}
    .product-card.product-card--canonical .product-card__price strong{font-size:17px}
    .product-card.product-card--canonical .product-card__price s{font-size:13px}
    .product-card.product-card--canonical .product-card__primary-action,
    .product-card.product-card--canonical .product-card__secondary-action,
    .product-card.product-card--canonical .product-card__cart-add,
    .product-card.product-card--canonical .product-card__request-button,
    .product-card.product-card--canonical .product-card__cart-link{min-height:40px;font-size:14px;border-radius:7px}
    .product-card.product-card--canonical .product-card__cart-active{grid-template-columns:1fr}
    .product-card.product-card--canonical .product-card__qty{min-height:40px;grid-template-columns:34px minmax(40px,1fr) 34px;border-radius:7px}
    .product-card.product-card--canonical .product-card__qty button,
    .product-card.product-card--canonical .product-card__qty input{height:38px}
    .product-card.product-card--canonical .product-card__tools{top:5px;right:5px;gap:4px}
    .product-card.product-card--canonical .product-card__tools .icon-btn{width:30px;height:30px;min-height:30px}
}
.product-card.product-card--canonical .product-card__cart-link{background:transparent;border-color:var(--primary);color:var(--primary)}.product-card.product-card--canonical .product-card__cart-link:hover,.product-card.product-card--canonical .product-card__cart-link:focus-visible{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.product-card.product-card--canonical .product-card__cart-link{border-radius:8px 0 0 8px;border-right:0}.product-card.product-card--canonical .product-card__qty{border-radius:0 8px 8px 0}.product-card.product-card--canonical .product-card__cart-active{gap:0}.product-card.product-card--canonical .product-card__qty{border-color:var(--primary)}.product-card.product-card--canonical .product-card__qty input{border-left-color:var(--primary);border-right-color:var(--primary)}