.gw-single [component="banner.js"], .gw-single [component="breadcrumbs_products.js"] { display: none; }
.single-product { max-width: 1280px; margin: 0 auto; padding: 28px; color: #123447; }
.sp-path { display: flex; flex-wrap: wrap; gap: 12px; font-size: 14px; margin-bottom: 28px; color: #59666e; }
.sp-path a { color: #123447; }
.sp-return-nav { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 16px; margin-bottom: 20px; border-bottom: 1px solid #d4d9dd; }
.sp-return-nav a { display: inline-flex; align-items: center; min-height: 44px; color: #123447; font-weight: 600; font-size: 14px; }
.sp-return-nav a:hover { text-decoration: underline; }
.sp-return-nav > div, .sp-return-actions { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.sp-return-actions { justify-content: flex-end; gap: 12px; }
@media(max-width:639px) {
 .sp-return-nav { align-items: flex-start; flex-direction: column; gap: 0; }
 .sp-return-actions { justify-content: flex-start; width: 100%; }
 .sp-return-actions a { width: 100%; }
}
.sp-overview { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: start; }
.sp-gallery { background: white; border: 1px solid #e0e7ed; border-radius: 6px; overflow: hidden; }
.sp-gallery img { width: 100%; height: auto; aspect-ratio: 1.25; object-fit: contain; }
.sp-gallery p { border-top: 1px solid #e0e7ed; margin: 0; padding: 18px 24px; font-size: 14px; color: #59666e; }
.sp-type { color: #123447; font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.sp-summary h1 { font-size: clamp(30px,3.3vw,44px); line-height: 1.13; font-weight: 700; letter-spacing: -.02em; }
.sp-lead { margin: 20px 0 24px; color: #59666e; line-height: 1.75; }
.sp-highlights { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding-block: 20px; border-block: 1px solid #d4d9dd; }
.sp-highlights dt { color: #59666e; font-size: 13px; margin-bottom: 6px; }
.sp-highlights dd { margin: 0; font-weight: 700; font-size: 22px; }
.sp-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.sp-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; background: #123447; color: white; border: 1px solid #123447; border-radius: 4px; font-weight: 600; text-align: center; }
.sp-outline { background: white; color: #123447; }
.sp-button:hover { background: #234b60; color: white; }
.sp-note { margin-top: 14px; font-size: 13px; line-height: 1.65; color: #59666e; }
.sp-section-nav { display: flex; flex-wrap: wrap; gap: 24px; border-bottom: 1px solid #d4d9dd; margin-top: 44px; }
.sp-section-nav a { padding-block: 18px; min-height: 44px; color: #123447; font-weight: 600; }
.sp-detail-layout { display: grid; grid-template-columns: minmax(0,2fr) minmax(260px,1fr); gap: 40px; align-items: start; padding-top: 32px; }
.sp-section { margin-bottom: 36px; scroll-margin-top: 105px; }
.single-product h2 { font-size: 26px; font-weight: 700; line-height: 1.3; margin-bottom: 16px; }
.sp-section > p, .sp-enquiry p, .sp-more p { color: #59666e; line-height: 1.8; margin-block: 12px; }
.sp-specs { margin-top: 22px; background: white; border: 1px solid #e0e7ed; border-radius: 4px; overflow: hidden; }
.sp-specs > div { display: grid; grid-template-columns: 40% 60%; border-bottom: 1px solid #e0e7ed; }
.sp-specs > div:last-child { border: 0; }
.sp-specs dt, .sp-specs dd { padding: 14px 18px; line-height: 1.5; margin: 0; overflow-wrap: anywhere; }
.sp-specs dt { background: #eef0f2; font-weight: 600; }
.sp-enquiry { background: #eef0f2; padding: 28px; border-top: 3px solid #123447; scroll-margin-top: 105px; }
.sp-enquiry ul { list-style: disc; padding-left: 20px; line-height: 2; color: #59666e; margin: 16px 0 24px; }
.sp-enquiry .sp-button { width: 100%; }
.sp-email { display: block; padding-block: 16px 0; color: #123447; overflow-wrap: anywhere; }
.sp-more { display: flex; justify-content: space-between; align-items: center; gap: 24px; border-top: 1px solid #d4d9dd; padding-block: 32px; }
.sp-more h2 { font-size: 22px; }
@media(max-width:900px) { .sp-overview, .sp-detail-layout { grid-template-columns: 1fr; gap: 28px; } .sp-gallery img { aspect-ratio: 1.8; } }
@media(max-width:639px) { .single-product { padding: 20px 16px; } .sp-actions { flex-direction: column; } .sp-section-nav { gap: 10px 20px; font-size: 14px; } .sp-specs dt, .sp-specs dd { padding: 12px; font-size: 14px; } .sp-more { flex-direction: column; align-items: flex-start; } .sp-enquiry { padding: 24px; } }

.gw-single .gw-product-intro { margin-top: 80px; padding-top: 28px; }
/* Shared detail content must fit the new single-product grid. */
.sp-overview > div, .sp-detail-layout > div { min-width: 0; }
.sp-highlights dd { overflow-wrap: anywhere; font-size: clamp(16px, 1.6vw, 22px); }
.sp-extra-images { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 12px; }
.sp-extra-images img { width: 100%; height: auto; aspect-ratio: 1.5; object-fit: contain; background: white; border: 1px solid #d4d9dd; border-radius: 4px; }
.sp-summary-copy { margin-block: 20px; color: #59666e; line-height: 1.8; overflow-wrap: anywhere; }
.single-product #configuration { max-width: 100%; overflow-x: auto; }
.single-product #configuration img { max-width: 100%; height: auto; }
.single-product #configuration table { width: 100%; border-collapse: collapse; }
.single-product #configuration td, .single-product #configuration th { padding: 10px 12px; border: 1px solid #d4d9dd; }
.sp-gallery img[hidden], .sp-extra-images img[hidden] { display: none; }
.sp-image-unavailable { display: grid; place-items: center; min-height: 90px; padding: 20px; background: #eef0f2; color: #59666e; font-size: 14px; text-align: center; }
.sp-gallery .sp-image-unavailable { min-height: 300px; }
/* Full-width technical content, with a compact enquiry section below. */
.sp-detail-layout { display: block; }
.sp-detail-layout > div { width: 100%; }
.sp-bottom-enquiry { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 28px 32px; margin: 12px 0 32px; background: #eef0f2; border-top: 3px solid #123447; scroll-margin-top: 105px; }
.sp-bottom-enquiry h2 { font-size: 24px; margin-bottom: 8px; }
.sp-bottom-enquiry p { color: #59666e; line-height: 1.7; }
.sp-bottom-enquiry .sp-actions { margin-top: 0; flex-shrink: 0; }
@media(max-width:767px) {
 .sp-bottom-enquiry { flex-direction: column; align-items: stretch; padding: 24px 20px; gap: 20px; }
 .sp-bottom-enquiry .sp-actions { flex-wrap: wrap; }
}
