/* GLO 1.3.0: desktop shared scissor renderer + mobile DOM-bound live canvas, poster-first readiness and adaptive performance. */
.product-scene{width:100%;min-width:0;position:relative;color:inherit}
.product-scene__stage{position:relative;z-index:31;width:100%;aspect-ratio:700/510;isolation:isolate;background:transparent}

.glo-shared-optical-canvas{display:block;pointer-events:none;background:transparent}
.glo-shared-optical-canvas--desktop{position:fixed;inset:0;z-index:30;width:100%;height:100%}
.glo-shared-optical-canvas--mobile{position:absolute;inset:0;z-index:2;width:100%;height:100%;max-width:none}
.product-scene.is-ready .glo-shared-optical-canvas--mobile{z-index:4}

.product-scene__shared-overlay{position:absolute;z-index:5;inset:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .22s ease;font:12px/1.6 Cairo,Arial,sans-serif;color:#deebe9}
.product-scene.is-ready .product-scene__shared-overlay{opacity:1}
.product-scene__shared-overlay>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.product-scene__shared-overlay line{stroke:#8ba8a4;stroke-width:.7;opacity:.6}.product-scene__shared-overlay circle{fill:#d0e3da}
.product-scene__shared-overlay .diagram{position:absolute;inset-inline:16px;top:10px;text-align:center;font-size:10px;color:#8fa8a5}
.product-scene__shared-overlay .callout{position:absolute;left:76%;width:23%;transform:translateY(-50%);font-size:clamp(12px,2.1vw,14px);line-height:1.75;color:#e2ebe8;white-space:nowrap;letter-spacing:0}
.product-scene__shared-overlay .callout small{display:block;font:9px/1.4 Arial,sans-serif;letter-spacing:.13em;color:#91b7af}.product-scene__shared-overlay .callout:lang(ar){font-family:Cairo,Arial,sans-serif;direction:rtl;text-align:right;padding-right:5px}.product-scene__shared-overlay .callout:lang(en){font-family:Manrope,Arial,sans-serif;direction:ltr;text-align:left}.product-scene__shared-overlay .callout[data-tone="gold"] small{color:#c6b482}.product-scene__shared-overlay .callout[data-tone="blue"] small{color:#8dbad0}
@media(max-width:400px){.product-scene__shared-overlay .diagram{font-size:9px}.product-scene__shared-overlay .callout{font-size:12px}}
.product-scene__interaction{position:absolute;inset:0;z-index:12;pointer-events:none;background:transparent;outline:0;-webkit-tap-highlight-color:transparent;touch-action:none;cursor:grab}
.product-scene.is-ready .product-scene__interaction{pointer-events:auto}
.product-scene__interaction.is-dragging{cursor:grabbing}
.product-scene__interaction:focus-visible{outline:1px solid rgba(243,192,24,.55);outline-offset:3px}
.product-scene .product-scene__poster{position:absolute;z-index:3;inset:0;width:100%;height:100%;object-fit:contain;max-width:none;filter:none;transition:opacity .3s}
.product-scene__frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;opacity:0;transition:opacity .3s}
.product-scene.is-ready .product-scene__frame{opacity:1}
.product-scene.is-ready .product-scene__poster{opacity:0;pointer-events:none}
.product-scene.is-handoff .product-scene__poster{transition:none!important;opacity:1!important;pointer-events:none}
.product-scene__caption{max-width:42em;margin:8px auto 0;padding:0 12px;text-align:center;font-size:12px;line-height:1.9;letter-spacing:0;color:inherit;opacity:.8}
.products-page--3d .product-row-visual,.product-hero-visual:has(.product-scene){background:transparent;border:0!important;border-radius:0;box-shadow:none;padding:0;overflow:visible;min-width:0;aspect-ratio:auto}
.products-page--3d .product-row-visual .product-scene{display:block}
.product-hero-visual:has(.product-scene) .product-hero-mark{display:none}
.glo-scene-react-shell{width:100%;min-width:0}
/* Focus is indicated by the viewer's keyboard instruction, without framing the artwork. */
.product-scene__frame:focus,.product-scene__frame:focus-visible,.go-solution-3d-frame:focus,.go-solution-3d-frame:focus-visible{outline:0!important;box-shadow:none!important;border:0!important;border-radius:0}
.product-scene--go-solution .product-scene__stage{aspect-ratio:1}
.product-scene__stage.go-solution-3d-active{min-height:300px}
.home-app .contact-pack.package-studio{display:block;margin-top:28px;padding:0;background:none!important;border:0!important;border-radius:0;box-shadow:none;color:#dbe6e4;text-align:center}
.home-app .contact-pack.package-studio .product-scene__stage{aspect-ratio:1.85;max-height:285px}
.home-app .contact-pack.package-studio>span{display:block;margin:16px auto 0;color:#dbe6e4;font-size:13px;line-height:1.9}
.home-app .contact-pack.package-studio .text-link{width:max-content;max-width:100%;margin:10px auto 0;color:#dbe6e4}
.home-app .contact-pack.package-studio .product-scene__caption{color:#c3d2d0;opacity:1;font-size:11px}
@media(max-width:1023px){
 .home-app #go-lenses.chapter{height:auto!important;min-height:0!important;overflow:visible}
 .home-app #go-lenses .contacts-stage{position:relative;top:auto;display:flex;flex-direction:column;height:auto!important;min-height:0!important;gap:0;padding-block:100px 75px;overflow:visible}
 .home-app #go-lenses .contacts-copy{display:contents}
 .home-app #go-lenses .contacts-copy>.chapter-copy{order:1;width:100%;margin:0 0 26px}
 .home-app #go-lenses .iris-scene{order:2;flex-shrink:0;position:relative;align-self:center;width:100%;max-width:600px;height:auto!important;aspect-ratio:4/3;max-height:none;margin:0 0 24px;padding:0;overflow:hidden;border-radius:6px}
 .home-app #go-lenses .iris-scene>svg{width:100%;height:100%!important;aspect-ratio:auto;object-fit:cover;display:block;border-radius:0}
 .home-app #go-lenses .iris-scene .image-annotation{position:absolute;bottom:10px;inset-inline-start:14px;color:#fff;text-shadow:0 1px 8px #000;font-size:11px}
 .home-app #go-lenses .colour-picker{order:3;width:100%;justify-content:center;margin:0;gap:20px}
 .home-app #go-lenses .colour-picker button{width:44px;height:44px}
 .home-app #go-lenses .selected-colour{order:4;width:100%;margin:12px 0 0;text-align:center}
 .home-app #go-lenses .contacts-copy>.small-note{order:5;width:100%;max-width:48em;margin:14px auto 0;text-align:center;line-height:1.9}
 .home-app #go-lenses .contact-pack{order:6;width:100%;max-width:620px;margin:28px auto 0}
 .home-app .contact-pack.package-studio .product-scene__stage{aspect-ratio:1.8;max-height:300px}
}
@media(max-width:767px){
 .products-page--3d .product-row-visual{width:100%}
 .product-scene__stage{aspect-ratio:1.3}
 .product-scene--go-packages .product-scene__stage{aspect-ratio:1.35}
 .product-scene__caption{font-size:11px;padding:0 4px}
 .product-scene__stage.go-solution-3d-active{min-height:250px}
 .home-app #go-lenses .contacts-stage{padding-inline:22px;padding-block-start:95px}
 .home-app #go-lenses .iris-scene{max-width:440px}
 .home-app .contact-pack.package-studio .product-scene__stage{aspect-ratio:1.35;max-height:290px}
}
@media(max-width:359px){.home-app #go-lenses .contacts-stage{padding-inline:16px}.home-app #go-lenses .colour-picker{gap:12px}.product-scene__caption{font-size:10px}}
@media(prefers-reduced-motion:reduce){.product-scene__poster,.product-scene__frame,.product-scene__shared-overlay{transition:none}}

/* Medical guidance belongs to GO Lenses, not the end of the whole catalogue. */
.products-page--3d .products-medical-note{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:18px;width:min(980px,calc(100% - 72px));margin:-12px auto 78px;padding:22px 24px;background:linear-gradient(135deg,rgba(20,29,35,.88) 0%,rgba(12,20,26,.76) 100%);color:#edf2f2;border:1px solid rgba(255,255,255,.09);border-radius:20px;box-shadow:0 22px 60px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.035);overflow:hidden;isolation:isolate}
.products-page--3d .products-medical-note::before{content:"";position:absolute;inset-inline-start:24px;top:0;width:44px;height:2px;border-radius:0 0 2px 2px;background:linear-gradient(90deg,#f3c018,rgba(243,192,24,.25));opacity:.95}
.products-page--3d .products-medical-note::after{content:"";position:absolute;width:170px;height:170px;inset-inline-end:-74px;top:-100px;border-radius:50%;background:radial-gradient(circle,rgba(91,135,151,.12) 0%,rgba(91,135,151,0) 70%);pointer-events:none;z-index:-1}
.products-medical-note__mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(105,145,158,.1);color:#9fb7bf;border:1px solid rgba(159,183,191,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.015)}
.products-medical-note__mark svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.products-medical-note__copy strong{display:block;margin:0 0 4px;color:#e6c651;font-size:12px;font-weight:700;line-height:1.6;letter-spacing:0}
.products-medical-note__copy p{max-width:62em;margin:0;color:rgba(230,237,238,.72);font-size:14px;line-height:1.95}
@media(max-width:767px){.products-page--3d .products-medical-note{grid-template-columns:40px minmax(0,1fr);gap:13px;width:calc(100% - 32px);margin:-2px auto 52px;padding:18px 17px;border-radius:17px}.products-page--3d .products-medical-note::before{inset-inline-start:18px;width:36px}.products-medical-note__mark{width:38px;height:38px}.products-medical-note__mark svg{width:21px;height:21px}.products-medical-note__copy strong{font-size:11px}.products-medical-note__copy p{font-size:13.5px;line-height:1.85}}

/* GLO 1.2.2 — delayed readiness feedback: never block the poster, hint only after true readiness. */
.product-scene__loading,.product-scene__hint{display:none}
@media(max-width:767px) and (pointer:coarse){
 .product-scene__stage{touch-action:pan-y;overscroll-behavior:auto}
 .product-scene__interaction{touch-action:pan-y;cursor:default}
 .product-scene__loading{position:absolute;z-index:14;inset-inline:50%;bottom:14px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;white-space:nowrap;padding:8px 11px;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:rgba(5,13,17,.46);color:rgba(238,246,244,.75);font-size:10px;line-height:1;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s}
 .product-scene__loading i{width:6px;height:6px;border-radius:50%;background:#f3c018;box-shadow:0 0 0 0 rgba(243,192,24,.34);animation:gloViewerPulse 1.25s ease-out infinite}
 .product-scene.is-loading.is-slow:not(.is-ready) .product-scene__loading{opacity:1;visibility:visible}
 .product-scene.is-ready .product-scene__loading,.product-scene.has-error .product-scene__loading{opacity:0;visibility:hidden}
 .product-scene__hint{position:absolute;z-index:14;left:50%;bottom:14px;transform:translate(-50%,4px);display:flex;align-items:center;gap:7px;white-space:nowrap;padding:8px 11px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(5,13,17,.48);color:rgba(239,247,244,.84);font-size:10px;line-height:1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,transform .25s ease,visibility .25s}
 .product-scene__hint svg{width:25px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
 .product-scene.is-ready.is-hinting:not(.has-interacted) .product-scene__hint{opacity:.92;visibility:visible;transform:translate(-50%,0)}
 .product-scene.has-interacted .product-scene__hint{opacity:0;visibility:hidden}
}
@keyframes gloViewerPulse{70%,to{box-shadow:0 0 0 7px rgba(243,192,24,0)}}
@media(prefers-reduced-motion:reduce){.product-scene__loading i{animation:none}.product-scene__hint{transition:none}}
