/* Shared product-card typography. Loaded after the existing card styles.
   Applies only to catalog cards and native Design collections, not product-page
   content, header, checkout or editorial headings. Keep price hierarchy intact. */
body #content .ocs-summary dt{font-size:14px;line-height:1.4;color:#465c6c;font-weight:500}
body #content .ocs-summary dd{font-size:14px;line-height:1.5}
body #content .ocs-summary .ocs-key dd{font-size:19px;line-height:1.45}
body #content .ocs-summary .ocs-benefits li{font-size:15px;line-height:1.55;color:#344557}
body #content .ocs-summary .ocs-benefits li:before{top:13px}
body #content :is(.product-grid,.product-list) .item:has(>.details_wrap) .name{font-size:18px;line-height:1.4}
body #content :is(.product-grid,.product-list) .item:has(>.details_wrap) :is(.descr,.description){font-size:15px;line-height:1.55}
body #content :is(.product-grid,.product-list) .item:has(>.details_wrap) .plain_links .compare{font-size:14px}
/* Ratings remain attached to the price area; allow natural wrapping. */
body .oir-card-count,body .olight-engraving-showcase .oir-card-count{font-size:14px;font-weight:500;line-height:1.5;color:#465e66;gap:5px 8px}
body .oir-card-count .oir-stars,body .oir-card-count .oir-stars>span{font-size:18px;line-height:20px;height:20px}
body .oir-card-count .oir-stars{color:#718087}
body .oir-card-count .oir-stars>.oir-stars-fill{height:20px;color:#996511}
body .oir-card-count .oir-count-separator{color:#718087}
/* Homepage Design modules: preserve their larger titles, raise small details. */
body #content :is(.ol-collection,.ol-new-arrivals) :is(.ol-collection-features,.ol-new-arrivals-features) li{font-size:14px;line-height:1.5;color:#465e66}
body #content :is(.ol-collection-stock,.ol-new-arrivals-stock,.ol-front-stock){font-size:13px;line-height:1.5}
body #content :is(.ol-collection-discover,.ol-new-arrivals-discover,.ol-home-offers-product-link){font-size:14px;line-height:1.5}
body #content :is(.ol-collection-price,.ol-new-arrivals-price,.ol-home-offers-prices) del{font-size:14px;color:#596b73}
body #content .ol-home-offers-product-name{font-size:18px;line-height:1.4;font-weight:650}
body #content .ol-front-home h3{font-size:19px;line-height:1.4}
body #content .ol-front-home ul{font-size:15px;line-height:1.55}
body #content .ol-front-pick p:not(.ol-front-pick-label){font-size:15px;line-height:1.55}
body #content .ol-front-pick-label{font-size:13px;line-height:1.4}
/* Hunting cards, both the landing page and homepage flagship. */
body #content .ol-hunt .oh-card h3{font-size:20px;line-height:1.4}
body #content .ol-hunt .oh-card .oh-features{font-size:15px;line-height:1.55}
body #content .ol-hunt .oh-flagship-included{font-size:14px;line-height:1.55;color:#465d50}
body #content .ol-hunt .oh-flagship-benefits strong{font-size:14px;line-height:1.4}
body #content .ol-hunt .oh-flagship-benefits span{font-size:14px;line-height:1.5}
@media(max-width:480px){body #content .ocs-summary .ocs-key dd{font-size:18px}}
body #content .olight-engraving-card-name{font-size:18px;line-height:1.4}
body #content .olight-engraving-card strong{font-size:20px;line-height:1.4}
body #content .olight-engraving-card-link{font-size:14px;line-height:1.5}
/* A review row inside a vertical flex card must size to its content, not to
   100% of the card height. Horizontal price wrappers retain their own 100% basis. */
body .oir-card-count{flex-basis:auto;align-content:flex-start}
body #content .ol-home-offers-product-name{overflow-wrap:anywhere}
@media(max-width:420px){
 body #content .ol-home-offers-products{grid-template-columns:1fr}
 body #content .ol-home-offers .ol-home-offers-product{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;align-items:start}
 body #content .ol-home-offers-product-image{margin-bottom:0}
}

/* Primary cart action in native category and module product cards. */
body #content :is(.product-grid,.product-list) .item:has(>.details_wrap) .btn-holder.bottom>.btn-primary{font-size:16px}
