body { font-family: Urbanist, Arial, sans-serif; letter-spacing: 0; }
button, input, select, textarea { font: inherit; }
.header .brand img { max-width: 100%; height: auto; }
.header a, .footer a { text-decoration: none; }
.header .collection-bar button { white-space: nowrap; }
body > .container { width: min(1440px, 90%); margin: 36px auto 64px; min-height: 45vh; }
.breadcrumb { background: transparent; padding: 0 0 20px; font-size: 14px; }
#product-category h1, #product-product h1 { font-size: 32px; line-height: 1.2; margin: 0 0 24px; }
.product-thumb { height: 100%; border-bottom: 1px solid #e5e5e5; padding-bottom: 20px; }
.product-thumb .image { aspect-ratio: 1; overflow: hidden; }
.product-thumb .image img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s ease; }
.product-thumb:hover .image img { transform: scale(1.04); }
.product-thumb .caption h4 { font-size: 19px; line-height: 1.35; }
.product-thumb .button-group { display: flex; gap: 12px; margin-top: 16px; }
.product-thumb .button-group button { border: 1px solid #e5e5e5; background: white; padding: 10px; }
.product-thumb .price-old { text-decoration: line-through; color: #666; }
.product-thumb .price-tax { display: block; font-size: 13px; }
.product-layout { margin-bottom: 28px; }
/* OpenCart uses product-grid for each card, not the homepage grid container. */
.product-layout.product-grid { display: block; }
#product-product .thumbnails { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
#product-product .thumbnails > li:first-child { width: 100%; }
#product-product .thumbnail { border: 0; }
#product-product .thumbnail img { max-height: 640px; object-fit: contain; }
.btn-primary { background: #202020; border-color: #202020; }
.cart-panel .dropdown-menu { display: block; position: static; float: none; width: 100%; border: 0; box-shadow: none; }
.cart-panel #cart > button { display: none; }
.cart-panel #cart { width: 100%; }
.cart-panel #cart .img-thumbnail { max-width: 60px; }
@media (max-width: 767px) {
  body > .container { width: calc(100% - 32px); margin-top: 24px; }
  #product-category h1, #product-product h1 { font-size: 26px; overflow-wrap: anywhere; }
  .product-thumb .caption h4 { font-size: 17px; }
  .header .collection-bar { overflow: hidden; }
}
@media (prefers-reduced-motion: reduce) { .product-thumb .image img { transition: none; } }
/* Keep the quantity-discount extension readable outside Journal. */
.cartqtyrngdisc_table { width: 100%; margin: 16px 0 24px; font-size: 14px; }
.cartqtyrngdisc_table th, .cartqtyrngdisc_table td { padding: 10px 8px; border-bottom: 1px solid #e5e5e5; text-align: left; }
.product-price-new .cartqtyrngdiscrib { float: none !important; display: block !important; font-size: 14px; font-weight: 400; margin-bottom: 8px; }
#product .cartqtyrngdisc_table th { background: #f7f7f7; color: #202020; }
@media (max-width: 767px) {
  .product-detail-layout { display: flex; flex-direction: column; padding: 0 15px; }
  .product-detail-media { display: contents; }
  .product-detail-media > .thumbnails { order: 0; }
  .product-detail-purchase { order: 1; padding: 0; margin-bottom: 28px; }
  .product-detail-media > .nav-tabs { order: 2; }
  .product-detail-media > .tab-content { order: 3; }
  #product-product .image-additional { width: calc((100% - 48px) / 4); }
}

/* Database-backed project spotlight; isolated from catalog cards. */
.project-spotlight{padding:72px 0 40px;background:#fff;overflow:hidden}
.project-spotlight .section-heading{padding-top:0;padding-bottom:28px;margin-bottom:0}
.spotlight-track{--card-width:min(44vw,480px);display:flex;gap:34px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:24px max(20px,calc((100% - var(--card-width))/2)) 36px;scroll-padding-inline:max(20px,calc((100% - var(--card-width))/2));align-items:stretch}
.spotlight-track::-webkit-scrollbar{display:none}
.spotlight-card{flex:0 0 var(--card-width);min-width:0;scroll-snap-align:center;display:block;color:inherit;border-radius:20px;overflow:hidden;background:white;box-shadow:0 12px 35px #20202010;transform:scale(.92);opacity:.55;transition:transform .4s,opacity .4s,box-shadow .4s}
.spotlight-card.is-current,.spotlight-card:focus-visible{transform:scale(1);opacity:1;box-shadow:0 16px 40px #2020201b}
.spotlight-card img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:filter .3s}
.spotlight-card:hover img{filter:brightness(1.04)}
.spotlight-caption{display:flex;align-items:center;justify-content:space-between;padding:23px 28px;gap:20px}.spotlight-caption h3{font-size:21px;margin:0 0 7px}.spotlight-caption p{margin:0;color:#666666;font-size:15px}.spotlight-caption svg{width:22px;flex-shrink:0}
.spotlight-controls{display:flex;align-items:center;justify-content:center;gap:22px}.spotlight-controls button{background:white;border:1px solid #e5e5e5;width:42px;height:42px;border-radius:50%;font-size:20px;color:#202020}.spotlight-controls button:hover{background:#f7f7f7}.spotlight-controls span{font-size:13px;min-width:50px;text-align:center}.spotlight-controls button:disabled{opacity:.35}
@media(max-width:760px){.project-spotlight{padding:44px 0 28px}.spotlight-track{--card-width:82vw;gap:12px;padding-top:12px;padding-bottom:24px}.spotlight-caption{padding:18px}.spotlight-caption h3{font-size:18px}.project-spotlight .section-heading{gap:16px;align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.spotlight-card,.spotlight-card img{transition:none}}

.spotlight-card:hover,.spotlight-card:focus{color:inherit;text-decoration:none}

.project-spotlight{scroll-margin-top:180px}.spotlight-caption{padding:18px 22px}.spotlight-caption h3{font-size:19px}
