/* Photograph and diptych view windows preserve the original source pixels. */
.image-frame{display:block;position:relative;overflow:hidden;width:100%;aspect-ratio:var(--view-ar);container-type:size}
.image-frame>img{position:absolute;left:50%;top:50%;width:max(calc(100cqw * var(--crop-w)),calc(100cqh * var(--crop-h)))!important;height:auto!important;max-width:none;object-fit:fill!important;transform:translate(var(--crop-x),var(--crop-y))!important}
.product-image>.image-frame{height:100%;aspect-ratio:auto;transition:transform .55s ease}
.product-image:hover>.image-frame,.product-image:focus-visible>.image-frame{transform:scale(1.07)}
.product-image[data-preview-src]:hover>.image-frame:not(.hover-preview),.product-image[data-preview-src]:focus-visible>.image-frame:not(.hover-preview){transform:none}
.product-large>.image-frame{height:460px;aspect-ratio:auto}
.thumb>.image-frame{height:100%;aspect-ratio:auto}
.material-card>.image-frame{height:260px;aspect-ratio:auto}
.material-card:hover>.image-frame{transform:scale(1.035);transition:transform .6s}
.app-visual>.image-frame{height:330px;aspect-ratio:auto}
.product-card{transition:transform .3s ease}
.product-image .hover-preview{position:absolute;inset:0;opacity:0;transition:opacity .18s ease,transform .6s ease;pointer-events:none}
.product-image.preview-active.preview-ready .hover-preview{opacity:1;transform:scale(1.045)}
.product-image .preview-label{position:absolute;left:12px;bottom:12px;color:#fff;background:#172635dc;padding:4px 9px;font-size:.75rem;opacity:0;transition:opacity .3s;pointer-events:none}
.product-image.preview-active.preview-ready .preview-label{opacity:1}
.product-image[data-preview-src].preview-active:not(.preview-ready) .preview-label{opacity:1}
.quick-preview{position:absolute;right:10px;top:calc((100cqw / 1.35) - 43px);background:#fff;border:1px solid #dbe1e8;padding:6px 10px;min-height:32px;color:#172635;font-size:.78rem;box-shadow:0 2px 10px #17263512;z-index:2}
.product-card{container-type:inline-size}
.quick-preview:hover{background:#779ecb;color:#fff;border-color:#779ecb}
.preview-gallery{width:100%}
.preview-gallery .image-frame{height:auto;width:min(100%,calc(46vh * var(--view-ar)));aspect-ratio:var(--view-ar);margin:auto}
.preview-gallery .preview-caption{font-size:.85rem;margin:12px 0 16px;color:#56616c}
.preview-selectors{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px}
.preview-selectors button{border:1px solid #c7cfdb;background:#fff;padding:8px 14px;min-height:44px;font-size:.85rem}
.preview-selectors button[aria-pressed=true]{background:#779ecb;color:#fff;border-color:#779ecb}
.dialog-crop{width:min(100%,calc(72vh * var(--view-ar)));margin:auto;aspect-ratio:var(--view-ar)}
.app-banner{background:#172635;color:#fff;margin:30px 0;padding:32px 0}
.app-banner-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:7%;align-items:center}
.app-banner-preview{position:relative;margin:-60px 0;box-shadow:0 12px 35px #0a162244;border:7px solid #fff;background:#fff;transform:rotate(-2deg);overflow:hidden}
.app-banner-preview>img,.app-banner-preview>.image-frame{width:100%;height:310px;object-fit:cover;aspect-ratio:auto}
.app-banner-preview>span:not(.image-frame){position:absolute;bottom:14px;left:14px;background:#fff;color:#172635;padding:7px 12px;font-size:.82rem;font-weight:600}
.app-banner .eyebrow{color:#132b46;margin-bottom:10px}
.app-banner h2{font-size:clamp(2rem,3vw,3rem);margin-bottom:13px}
.app-banner p{color:#c8d2dd;margin-bottom:23px;max-width:520px}
.app-banner .app-download{background:transparent;border-color:#9baab9;color:#fff}
.app-banner .app-download:hover{background:#ffffff15}
@media(max-width:960px){.product-large>.image-frame{height:380px}.material-card>.image-frame{height:200px}.app-banner-grid{gap:5%}.app-banner-preview>img,.app-banner-preview>.image-frame{height:300px}.app-banner{padding:28px 0}.app-banner .actions{gap:10px}.app-banner .btn{font-size:.82rem;padding:10px 16px}}
@media(max-width:680px){.product-large>.image-frame{height:320px}.material-card>.image-frame{height:160px}.app-visual>.image-frame{height:260px}.app-banner{margin:0;padding:38px 0}.app-banner-grid{grid-template-columns:1fr;gap:30px}.app-banner-preview{margin:0;transform:none;border-width:5px}.app-banner-preview>img,.app-banner-preview>.image-frame{height:230px}.app-banner h2{font-size:2.3rem}.app-banner p{font-size:1rem}.quick-preview{right:8px;padding:4px 8px;font-size:.75rem;top:calc((100cqw / 1.35) - 40px)}.product-image .preview-label{font-size:.7rem;left:8px;bottom:8px}.preview-gallery .image-frame{height:auto;width:100%;max-width:calc(40vh * var(--view-ar))}.preview-selectors button{padding:8px 11px}.dialog-crop{width:100%}}
@media(prefers-reduced-motion:reduce){.product-image:hover>.image-frame,.product-image:focus-visible>.image-frame,.product-image.preview-active.preview-ready .hover-preview{transform:none}.product-card,.image-frame,.hover-preview{transition:none!important}}

.gallery-grid .image-frame{height:280px;aspect-ratio:auto}.feature-grid .image-frame{height:360px;aspect-ratio:auto}@media(max-width:680px){.gallery-grid .image-frame{height:200px}.feature-grid .image-frame{height:280px}}

@media(hover:hover){.product-image:not([data-preview-src]):hover>.image-frame{transform:scale(1.75)}}.product-image:not([data-preview-src]):focus-visible>.image-frame{transform:scale(1.75)}@media(prefers-reduced-motion:reduce){.product-image:not([data-preview-src]):hover>.image-frame,.product-image:not([data-preview-src]):focus-visible>.image-frame{transform:none}}
