/* All coordinates follow the supplied 1920 × 950 video canvas. */
.oem { color-scheme: dark; font-family: Arial, Helvetica, sans-serif; background: #080e05; color: #f5f7ed; }
.oem, .oem * { box-sizing: border-box; }

.oem button { font: inherit; cursor: pointer; }
.oem button:disabled { cursor: wait; }
.oem button:focus-visible { outline: 2px solid #e4ff73; outline-offset: 5px; }
.oem [hidden] { display: none !important; }
.oem { --accent: #b8df00; width: 100%; background: #000000;margin-top:30px;}
.oem-stage { position: relative; width: 100%; aspect-ratio: 1920 / 950; overflow: hidden; isolation: isolate; }
.oem-poster, .oem-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.oem-video { opacity: 0; pointer-events: none; }
.oem-video.is-active { opacity: 1; }
.oem-hotspots { position: absolute; inset: 0; z-index: 2; }
.oem-hotspot { position: absolute; left: var(--x); top: var(--y); display: flex; align-items: center; justify-content: center; width: 27px; height: 27px; padding: 8px; transform: translate(-50%, -50%); background: none; border: 0; color: white; white-space: nowrap; text-align: left; }
.oem-hotspot::before { content: ''; flex: 0 0 11px; width: 11px; height: 11px; border-radius: 50%; background: #d4ff00; box-shadow: 0 0 0 5px #a9d80050, 0 0 18px #d4ff0070; transition: box-shadow .2s; }
.oem-hotspot:hover::before, .oem-hotspot:focus-visible::before { box-shadow: 0 0 0 8px #a9d80060, 0 0 22px #d4ff00; }
.oem-hotspot span { position: absolute; left: 100%; top: 50%; transform: translateY(-50%); display: block; width: max-content; padding: 5px 12px; border-radius: 18px; background: #9cbd00; font-size: 14px; line-height: 1.15; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s, background .2s; }
.oem-hotspot:hover, .oem-hotspot:focus-visible { z-index: 3; }
.oem-hotspot:hover span, .oem-hotspot:focus-visible span { opacity: 1; visibility: visible; pointer-events: auto; background: #779400; }
.oem-hotspot.is-left span { left: auto; right: 100%; }
.oem-hotspot.is-above span { left: 50%; top: auto; bottom: 100%; transform: translateX(-50%); }
.oem-summary { position: absolute; z-index: 3; top: 11.5%; right: 5%; width: 33%; animation: oem-reveal .4s ease both; }
.oem-summary h2 { 
  font-size: 30px; line-height: 1.13; font-weight: 400; margin: 0 0 14px;text-wrap: balance;
    background: radial-gradient(circle at 100% 0%, var(--main-color-light), #ffffff 80%);
  color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
 }
.oem-summary p { font-size: 15px; line-height: 1.45; margin: 0 0 20px; color: #d4d9c8; }
.oem-summary.is-left { right: auto; left: 4%; width: 37%; }
.oem-summary.is-center { right: auto; left: 50%; transform: translateX(-50%); text-align: center; width: 40%; }
.oem-explore { color: var(--accent); border: 0; background: none; padding: 4px 0; font-size: 16px; display: inline-flex;align-items: center;}
.oem-explore span { margin-left: 8px; display: inline-flex; transition: transform .2s; width:12px;height:12px;position: relative;top:0px;}
.oem-explore span img{width:100%;object-fit: contain;}
.oem-explore:hover span { transform: translateX(3px); }
.oem-toolbar { position: absolute; z-index: 4; top: 40px; left:50%;width:1600px;transform: translateX(-50%); display: flex; align-items: center; gap: 12px;   }
.oem-control { border: 1px solid #b8df0040; border-radius: 24px; padding: 10px 17px; background: #10190be6; color: #e6ecd8; font-size: 13px; line-height: 1.2; }
.oem-control:hover { border-color: var(--accent); color: var(--accent); }
.oem-control:disabled { opacity: .45; }
.oem-motion { margin-left: auto; display: none;}
.oem-status { position: absolute; z-index: 5; left: 50%; bottom: 80px; transform: translateX(-50%); padding: 10px 18px; border-radius: 20px; background: #0b140bed; font-size: 13px; text-align: center; }
.oem-retry { position: absolute; z-index: 6; top: 50%; left: 50%; transform: translate(-50%,-50%); }
.oem-hint { margin: 0; padding: 8px 20px 18px; color: #969e89; text-align: center; font-size: 12px; }
.oem-mobile-products { display: none; }
.oem-preload {display: none; margin: 0 auto; width: min(480px, calc(100% - 32px)); padding: 10px 0 18px; }
.oem-preload-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 8px; font-size: 12px; color: #b9c5a6; }
.oem-preload-retry { color: var(--accent); background: none; border: 0; padding: 3px 0; font-size: 12px; }
.oem-preload-progress { display: block; width: 100%; height: 4px; border: 0; border-radius: 4px; overflow: hidden; accent-color: var(--accent); background: #28351b; }
.oem-preload-progress::-webkit-progress-bar { background: #28351b; }
.oem-preload-progress::-webkit-progress-value { background: var(--accent); }
.oem-preload-progress::-moz-progress-bar { background: var(--accent); }
.oem-dialog { width: min(760px, calc(100% - 32px)); max-height: 85dvh; padding: 42px; border: 1px solid #aecb5150; background: #121b0e; color: #d5dccd; border-radius: 12px; margin:auto;}
.oem-dialog::backdrop { background: #000b; backdrop-filter: blur(7px); }
.oem-close { position: sticky; float: right; top: 0; font-size: 25px; padding: 3px 11px; margin: -20px -20px 0 10px; }
.oem-eyebrow { font-size: 11px; letter-spacing: 2px; color: var(--accent); margin: 0 0 16px; }
.oem-dialog h2 { font-size: 28px; line-height: 1.2; font-weight: 400; margin: 0 0 28px; color: #f2f7e8; }
.oem-dialog h3 { font-size: 17px; font-weight: 500; margin: 24px 0 9px; color: #abcd03; }
.oem-dialog-content p { font-size: 15px; line-height: 1.7; margin: 0; }
@keyframes oem-reveal { from { opacity: 0; } to { opacity: 1; } }
@keyframes oem-point-highlight {
  0%, 100% { transform: scale(1.5); box-shadow: 0 0 0 6px #d4ff0060, 0 0 22px #d4ff00; }
  50% { transform: scale(1.9); box-shadow: 0 0 0 11px #d4ff0025, 0 0 30px #d4ff00; }
}



@media (min-width: 1600px) { 
    .oem-hotspot span { font-size: 17px; } .oem-summary h2 { font-size: 38px; } .oem-summary p { font-size: 18px; } 
    
}
@media (max-width: 1700px) { 
    .oem-toolbar{width:90%;}
}

@media (max-width: 1100px) and (min-width: 761px) { .oem-hotspot { gap: 6px; } .oem-hotspot span { font-size: 11px; padding: 4px 7px; } .oem-summary h2 { font-size: 23px; } .oem-summary p { font-size: 13px; margin-bottom: 12px; } }

@media (max-width: 768px) {
    .oem-toolbar{width:90%;}
  .oem-stage { aspect-ratio: auto; overflow: visible; padding-top: 49.4792%; }
  .oem-poster, .oem-video, .oem-hotspots { top: 0; bottom: auto; height: auto; aspect-ratio: 1920 / 950; }
  .oem-hotspot { padding: 10px; transform: translate(-50%,-50%) !important; }
  .oem-hotspot span { display: none; }
  .oem-hotspot::before { width: 8px; height: 8px; flex-basis: 8px; }
  .oem-hotspot.is-selected { z-index: 1; }
  .oem-hotspot.is-selected::before { background: #f0ffad; transform: scale(1.5); box-shadow: 0 0 0 6px #d4ff0060, 0 0 22px #d4ff00; animation: oem-point-highlight .7s ease-in-out; }
  .oem-summary, .oem-summary.is-left, .oem-summary.is-center { position: relative; inset: auto; transform: none; width: auto; text-align: left; padding: 22px 22px 8px; }
  .oem-summary h2 { font-size: 24px; } .oem-summary p { font-size: 14px; }
  .oem-toolbar { position: relative; top:0px; padding: 18px 0px; gap: 8px; flex-wrap: wrap; transform: translateX(0);
    left: 0;
    /* width: 90%; */
    margin-left: auto;
    margin-right: auto;}
  .oem-control { padding: 9px 12px; font-size: 12px; }
  .oem-status { top: 16px; bottom: auto; width: max-content; max-width: 90%; }
  .oem-retry { top: 65px; }
  .oem-mobile-products { display: none; flex-wrap: wrap; gap: 8px; padding: 0 16px 16px; }
  .oem-mobile-products button { border: 1px solid #a7c73450; border-radius: 5px; background: #15200d; color: #cddf9e; padding: 10px 13px; font-size: 13px; }
  .oem-mobile-products button.is-selected { border-color: var(--accent); background: var(--accent); color: #15200d; }
  .oem-dialog { padding: 30px 24px; margin:auto;}
}
@media (prefers-reduced-motion: reduce) { .oem *, .oem *::before { animation: none !important; transition: none !important; } }

/* Full CMS product titles can be longer than the former mobile abbreviations. */
.oem-mobile-products button { max-width: 100%; white-space: normal; overflow-wrap: anywhere; text-align: left; }
