/* IVORA product grid: four across on desktop, three across on tablets and phones.
   Loaded last on products, wholesale and home so it overrides older grid rules.
   Photos keep their natural proportions (square frame, whole image, no crop or stretch). */
html body .grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important}

/* Square frame, whole image visible */
html body .grid .product-image-frame,html body .grid .pic{width:100%!important;height:auto!important;aspect-ratio:1 / 1!important;overflow:hidden!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}
html body .grid .product-image-frame img,html body .grid .pic img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:center!important;transform:none!important}

/* Prices never break across lines */
.grid .price,.grid .research-variant-price,.grid .selected-price,.grid .per-vial-price strong,
.grid .ivora-variant-option-price,.grid .ws-price,.grid [class*="price"] strong{white-space:nowrap!important}
.grid .research-variant-price,.grid .selected-price{overflow-wrap:normal!important;word-break:keep-all!important}

@media(max-width:1000px){
  html body .grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  /* Home Featured Research Compounds: exactly one row of three */
  #products .grid > .card:nth-child(n+4){display:none!important}
}

@media(max-width:750px){
  html body .grid{gap:8px!important}
  .grid > .card,.grid > .item{min-width:0!important;border-radius:10px!important}

  /* Compact card text so three cards fit side by side */
  .grid .cardbody,.grid .content,.grid .body{padding:8px 7px 10px!important}
  .grid .cardbody strong,.grid .content h3,.grid .body h3{font-size:13px!important;line-height:1.25!important;overflow-wrap:anywhere}
  .grid .cardbody span,.grid .content p,.grid .body p{font-size:11px!important;line-height:1.35!important}
  .grid .cardbody .research-stock,.grid .content .ivora-availability,.grid .content .tag{display:block!important;margin:3px 0 0!important;font-size:9px!important;letter-spacing:.03em!important}
  .grid .research-strength-label,.grid .choose-label{font-size:9px!important;margin:6px 0 4px!important;letter-spacing:.03em!important}

  /* Prices: one line, sized to fit the narrow card */
  .grid .research-variant-price,.grid .selected-price{font-size:clamp(13px,4.2vw,17px)!important;line-height:1.2!important;margin:6px 0!important;padding-top:4px!important}
  .grid .per-vial-price{font-size:10px!important;line-height:1.3!important;margin:2px 0 6px!important}
  .grid .per-vial-price strong{display:block!important;font-size:12px!important}
  .grid .wholesale-price{padding-top:6px!important}
  .grid .wholesale-price small{font-size:9px!important;line-height:1.3!important}

  /* Strength menus and buttons */
  .grid .ivora-variant-picker{margin:6px 0 8px!important}
  .grid .ivora-variant-picker>.ivora-variant-trigger,.grid .ivora-ws-trigger,.grid .strength-price-select{min-height:34px!important;padding:6px 7px!important;font-size:10.5px!important;line-height:1.3!important;border-radius:7px!important}
  .grid .ivora-variant-picker>.ivora-variant-trigger::after,.grid .ivora-ws-trigger:after{font-size:13px!important;margin-left:3px!important}
  .grid .ivora-variant-picker .ivora-variant-list>.ivora-variant-choice{padding:7px 6px!important;gap:2px 4px!important}
  .grid .ivora-variant-picker .ivora-variant-choice>.ivora-variant-name,
  .grid .ivora-variant-picker .ivora-variant-choice>.ivora-variant-option-price{font-size:11px!important}
  .grid .ivora-variant-picker .ivora-variant-choice>.ivora-variant-status{font-size:9px!important}
  .grid .ivora-ws-choice{padding:7px 6px!important;gap:4px!important;font-size:11px!important}
  .grid .ivora-variant-picker>.ivora-variant-list,.grid .ivora-ws-list{padding:4px!important}
  .grid button,.grid .button,.grid .add-cart,.grid .research-add-cart{font-size:11px!important;padding:8px 4px!important;min-height:0!important;letter-spacing:0!important;white-space:normal!important}
  .grid .ivora-email-stock{font-size:10px!important}
}
