/* Scoped to the official marketing site and equipment storefront. */
.cm-site .product-section .product-card { display:flex; flex-direction:column; min-width:0; }
.cm-site .product-section .product-copy { display:flex; flex-direction:column; align-items:stretch; gap:14px; flex:1; min-width:0; padding:24px; }
.cm-site .product-section .product-copy h3 { margin:0; font-size:21px; line-height:1.35; overflow-wrap:anywhere; }
.cm-site .product-section .product-copy p { margin:0; }
.cm-site .product-section .product-copy .cm-product-summary { font-size:14px; font-weight:400; letter-spacing:0; color:#53675b; line-height:1.65; white-space:normal; }
.cm-site .product-section .product-detail-link { margin:0; padding:12px 16px; border:1px solid #bed1c2; border-radius:10px; min-height:48px; background:#eff7f0; font-size:15px; }
.cm-site .product-section .product-copy>p:not(.cm-product-summary) { margin-top:auto; }
.cm-product-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin:0 0 52px; }
.cm-product-option { display:flex; flex-direction:column; min-width:0; overflow:hidden; background:#fff; color:#172b22; border:1px solid #d4e1d7; border-radius:18px; text-decoration:none; box-shadow:0 6px 24px #102a3b06; }
.cm-product-option:hover { border-color:#2c7b43; box-shadow:0 8px 24px #102a3b12; }
.cm-product-option>img { width:100%; height:250px; object-fit:contain; background:#edf3ef; }
.cm-option-copy { display:flex; flex:1; flex-direction:column; gap:14px; padding:22px; }
.cm-option-copy>strong { font-size:20px; line-height:1.35; }
.cm-option-description { color:#53675b; font-size:14px; line-height:1.6; }
.cm-option-price { font-size:26px; font-weight:750; color:#246b3d; margin-top:auto; }
.cm-option-price small { display:inline-block; color:#53675b; font-size:12px; font-weight:400; }
.cm-option-cta { display:flex; align-items:center; justify-content:space-between; min-height:48px; padding:10px 16px; border-radius:10px; background:#eef6ef; border:1px solid #bfd3c4; font-size:15px; font-weight:650; }
.cm-site .cm-product-detail { scroll-margin-top:100px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; overflow:visible; }
.cm-site .cm-product-detail:target { outline:2px solid #2c7b43; outline-offset:4px; }
.cm-site .cm-product-detail .product-info { min-width:0; padding:32px; }
.cm-site .cm-product-detail .product-gallery { position:sticky; top:100px; min-height:0; max-height:none; height:auto; aspect-ratio:auto; border-radius:18px; overflow:hidden; align-self:start; }
.cm-site .cm-product-detail .gallery-stage { position:relative; inset:auto; min-height:0; height:auto; aspect-ratio:1/1; }
.cm-site .cm-product-detail .gallery-image { height:100%; width:100%; object-fit:contain; pointer-events:none; }
.cm-site .cm-product-detail .gallery-controls { top:40%; bottom:auto; }
.cm-site .cm-product-detail .gallery-dots { position:static; display:flex; justify-content:center; gap:10px; padding:14px; transform:none; background:#f5f8f6; flex-wrap:wrap; }
.cm-site .cm-product-detail .gallery-dot { width:62px; height:62px; padding:3px; border:1px solid #bbcdbf; border-radius:9px; background:white; }
.cm-site .cm-product-detail .gallery-dot::before { display:none; }
.cm-site .cm-product-detail .gallery-dot img { width:100%; height:100%; border-radius:6px; object-fit:contain; }
.cm-site .cm-product-detail .gallery-dot.is-active { border:3px solid #246b3d; }
.cm-photo-expand { display:flex; justify-content:center; gap:12px; width:100%; min-height:48px; padding:12px; background:white; color:#246b3d; border:0; border-top:1px solid #d4e1d7; font-family:inherit; font-size:14px; font-weight:600; cursor:pointer; }
.cm-back-products { display:inline-flex; align-items:center; min-height:44px; color:#246b3d; font-size:13px; text-decoration:underline; text-underline-offset:3px; }
.cm-site .cm-product-detail .product-description { white-space:pre-line; }
.cm-site .cm-product-detail .spec-row { overflow-wrap:anywhere; }
.cm-product-contact { display:flex; gap:12px; align-items:center; justify-content:space-between; width:100%; min-height:52px; padding:14px 16px; margin-top:18px; border:1px solid #9ebaab; border-radius:12px; background:#eff7f0; color:#215d36; font-size:14px; font-weight:650; line-height:1.5; text-decoration:none; }
.cm-copy-product { min-height:44px; margin-top:8px; padding:10px 0; border:0; background:transparent; color:#246b3d; font-size:13px; text-decoration:underline; cursor:pointer; }
.cm-copy-status { display:block; font-size:12px; color:#53675b; overflow-wrap:anywhere; }
.cm-product-video { padding:20px; margin:20px 0; border:1px solid #d4e1d7; border-radius:12px; background:#f5f8f6; }
.cm-product-video h4 { margin:0 0 14px; font-size:17px; }
.cm-product-video p { margin-top:10px; font-size:12px; line-height:1.5; color:#53675b; }
.cm-video-play { min-height:48px; padding:12px 16px; border:0; border-radius:9px; background:#246b3d; color:white; font-size:14px; cursor:pointer; }
.cm-product-video iframe { display:block; width:100%; aspect-ratio:16/9; border:0; border-radius:8px; }
.cm-photo-dialog { position:fixed; inset:0; width:min(1120px,96vw); max-width:96vw; max-height:94dvh; margin:auto; padding:16px; border:1px solid #c9d7ce; border-radius:16px; background:#fff; color:#172b22; box-shadow:0 24px 80px #0005; }
.cm-photo-dialog::backdrop { background:#081810d9; }
.cm-photo-toolbar,.cm-photo-navigation { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.cm-photo-toolbar h2 { font-size:17px; margin:0; }
.cm-photo-dialog button { min-height:44px; padding:10px 15px; border:1px solid #b4c9bb; border-radius:8px; background:#eff7f0; color:#215d36; cursor:pointer; }
.cm-photo-dialog button:disabled { opacity:.5; cursor:default; }
.cm-photo-full { display:block; width:100%; height:min(70dvh,820px); object-fit:contain; margin:12px auto; }
.cm-photo-navigation span { font-size:13px; }
.cm-site :where(.cm-product-option,.cm-product-contact,.cm-copy-product,.cm-photo-expand,.cm-video-play,.cm-photo-dialog button,.gallery-dot):focus-visible { outline:3px solid #246b3d; outline-offset:3px; }
@media(max-width:900px) {
  .cm-product-options { gap:14px; }
  .cm-option-copy { padding:16px; }
  .cm-product-option>img { height:190px; }
  .cm-option-copy>strong { font-size:18px; }
  .cm-site .cm-product-detail { grid-template-columns:1fr; }
  .cm-site .cm-product-detail .product-gallery { position:relative; top:auto; width:100%; }
  .cm-site .cm-product-detail .gallery-stage { max-height:560px; }
}
@media(max-width:640px) {
  .cm-product-options { grid-template-columns:1fr; gap:18px; margin-bottom:32px; }
  .cm-product-option>img { height:260px; }
  .cm-option-copy { padding:20px; }
  .cm-option-copy>strong { font-size:21px; }
  .cm-site .cm-product-detail .product-info { padding:22px; }
  .cm-site .cm-product-detail .product-info h3 { font-size:26px; }
  .cm-site .cm-product-detail .spec-row { flex-direction:column; gap:5px; }
  .cm-site .cm-product-detail { scroll-margin-top:88px; }
  .cm-photo-dialog { padding:12px; }
  .cm-photo-toolbar h2 { font-size:14px; }
  .cm-photo-dialog button { padding:10px; }
}
