/* OMQ 3D — complete product photos, centered gallery, restrained studio detail. */

/* Product photos always fit inside their frame, including portrait images. */
.v10-path>img{height:clamp(240px,24vw,320px);object-fit:contain;object-position:center;padding:12px;background:radial-gradient(ellipse at 50% 80%,#282516 0,#111113 65%);border-top:1px solid #ffffff0d}
.v10-service-card>img{height:clamp(260px,26vw,340px);object-fit:contain;object-position:center;padding:14px;background:radial-gradient(ellipse at 50% 80%,#242318,#101012 70%);border-bottom:1px solid #ffffff0d}
.v10-case>figure{width:min(100%,420px);justify-self:center}
.v10-case>figure img{height:auto;max-height:315px;aspect-ratio:auto;object-fit:contain;object-position:center;background:#131315;border-color:#ffffff1a}
.work img,.hw-thumb img{object-fit:contain;object-position:center;background:radial-gradient(ellipse at 50% 70%,#23221a,#101012 75%)}

/* Explicit dialog centering: the global margin reset must not anchor it to RTL. */
.lb{position:fixed;inset:0;margin:auto;width:min(1080px,calc(100% - 40px));height:fit-content;max-width:calc(100% - 40px);max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow:auto;border-radius:20px;overscroll-behavior:contain;box-shadow:0 24px 100px #000a}
.lb::backdrop{background:#050506e8;backdrop-filter:blur(7px)}
.lb-panel{display:flex;flex-direction:column;min-width:0;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #ffffff29;box-sizing:border-box;background:#131315}
.lb-imgwrap{position:relative;display:grid;place-items:center;flex:none;width:100%;height:clamp(170px,58vh,640px);height:clamp(170px,58dvh,640px);min-width:0;overflow:hidden;background:radial-gradient(ellipse,#242424,#0c0c0e 80%)}
.lb-img{display:block;width:100%;height:100%;min-height:0;max-height:100%;object-fit:contain;background:transparent}
.lb-cap{flex:none;padding:20px 24px;gap:10px;min-width:0;border-top:1px solid #ffffff12}
.lb-title{overflow-wrap:anywhere}
.lb-count{direction:ltr;unicode-bidi:isolate;white-space:nowrap}
.lb-close,.lb-nav{background:#111114e8;box-shadow:0 3px 18px #0008;border-color:#ffffff54}
.lb-close{inset-block-start:12px;inset-inline-end:12px}
.lb-nav{inset-block-start:50%;inset-block-end:auto;transform:translateY(-50%)}
.lb-prev{inset-inline-start:12px}.lb-next{inset-inline-end:12px}
.lb-nav:active{transform:translateY(-50%) scale(.94)}

/* Generated images are atmosphere only; existing portfolio photography is retained. */
.v11-scene{position:relative;isolation:isolate}
.v11-scene-art{position:absolute!important;inset:0;z-index:-1!important;pointer-events:none;overflow:hidden;background-image:linear-gradient(90deg,#0a0a0b12 0%,#0a0a0b80 35%,#0a0a0bef 64%,#0a0a0b 100%),var(--v11-scene);background-position:left center;background-size:cover;background-repeat:no-repeat;mask-image:linear-gradient(180deg,transparent,#000 10%,#000 84%,transparent);opacity:.9}
.v11-bg-print{--v11-scene:url('/assets/img/omq-fabrication-v11.webp')}
.v11-bg-repair{--v11-scene:url('/assets/img/omq-repair-studio-v11.webp')}
html[dir="ltr"] .v11-scene-art{transform:scaleX(-1)}
.v10-service-head.v11-scene,.v10-calc-head.v11-scene{max-width:1440px;padding-inline:clamp(32px,calc((100vw - 1080px)/2),180px);padding-bottom:42px}
.v10-service-head.v11-scene .v11-scene-art,.v10-calc-head.v11-scene .v11-scene-art{inset-block-start:56px}
.v10-service-head.v11-scene h1,.v10-calc-head.v11-scene h1{max-width:760px}
.v10-service-head.v11-scene .v10-lede,.v10-calc-head.v11-scene .v10-lede{max-width:690px;color:#d0d0d5}
.v10-service-nav{background:linear-gradient(90deg,transparent,#0a0a0bcc 30%);border-top-color:#ffffff20}
html[dir="ltr"] .v10-service-nav{background:linear-gradient(270deg,transparent,#0a0a0bcc 30%)}
.v11-scene.hw-fin{background:#0d0d0f}
.v11-scene.hw-fin .v11-scene-art{opacity:.5;background-size:auto 145%;background-position:left center}
.v10-repair-banner.v11-scene{background:#131311;overflow:hidden;padding-block:42px}
.v10-repair-banner .v11-scene-art{opacity:.48;mask-image:none;background-size:cover}
.v10-repair-banner>div:last-child .btn{background:var(--signal-500);color:var(--ink)}
.v11-scene.hw-head .v11-scene-art{opacity:.32;background-size:auto 145%;background-position:left 60%}

/* Fine lighting on frames; transform is confined to hovered cards, not images. */
.v10-path,.v10-service-card,.work{transition:transform .3s var(--ease-out),border-color .3s ease,box-shadow .3s ease}
.v10-path,.v10-service-card{box-shadow:0 12px 40px #0002}
.v10-path-repair{box-shadow:inset 0 1px #f5d71326,0 12px 40px #0002}
.v10-fieldset,.v10-result{box-shadow:inset 0 1px #ffffff07}
.v10-service-nav a,.v10-filters button{transition:background .2s ease,color .2s ease,border-color .2s ease}
.btn-primary{position:relative;overflow:hidden;isolation:isolate}
.btn-primary::after{content:"";position:absolute;inset-block:-30%;inset-inline-start:-70%;width:38%;background:linear-gradient(100deg,transparent,#fff5,transparent);transform:skewX(-20deg);pointer-events:none;opacity:0}
.btn-primary:focus-visible::after{animation:v11-shine .65s ease-out}
@keyframes v11-shine{0%{inset-inline-start:-70%;opacity:0}20%{opacity:.7}100%{inset-inline-start:140%;opacity:0}}
@media(hover:hover) and (pointer:fine){
 .v10-path:hover,.v10-service-card:hover,.work:hover{transform:translateY(-4px);border-color:#a48f26;box-shadow:0 15px 36px #0005,0 0 24px #f5d7130a}
 .btn-primary:hover::after{animation:v11-shine .65s ease-out}
 .v10-service-nav a:hover{background:#302b14;color:#ffe966}
}
.v11-accent-line{position:absolute;inset-inline:0;inset-block-start:0;height:1px;background:linear-gradient(90deg,transparent,#f5d71370,transparent);pointer-events:none}

@media(max-width:900px){
 .v10-case>figure{width:min(100%,360px)}
 .v10-service-head.v11-scene,.v10-calc-head.v11-scene{padding-inline:24px}
 .v11-scene-art{opacity:.55;background-image:linear-gradient(90deg,#0a0a0b88,#0a0a0bd9 55%,#0a0a0bf2),var(--v11-scene)}
 .v10-path>img{height:280px}
 .v10-service-card>img{height:270px}
}
@media(max-width:640px){
 .v11-bg-print{--v11-scene:url('/assets/img/omq-fabrication-v11-small.webp')}
 .v11-bg-repair{--v11-scene:url('/assets/img/omq-repair-studio-v11-small.webp')}
 .v10-path>img{height:auto;aspect-ratio:4/3;max-height:330px;padding:8px}
 .v10-path-repair>img{aspect-ratio:16/9}
 .v10-service-card>img{height:auto;aspect-ratio:4/3;max-height:350px;padding:10px}
 .v10-case>figure{width:100%}.v10-case>figure img{height:120px;max-height:120px;object-fit:contain}
 .v10-service-head.v11-scene,.v10-calc-head.v11-scene{padding-inline:20px;padding-bottom:28px}
 .v11-scene-art{background-position:left top;background-size:auto 100%;opacity:.5}
 .v11-scene.hw-fin .v11-scene-art{opacity:.24;background-size:auto 115%}
 .lb{width:calc(100% - 16px);max-width:calc(100% - 16px);max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);border-radius:14px}
 .lb-panel{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);border-radius:14px}
 .lb-imgwrap{height:clamp(170px,52vh,520px);height:clamp(170px,52dvh,520px)}
 .lb-cap{padding:16px;gap:9px}.lb-title{font-size:18px}.lb-specs{gap:6px}
 .lb-close{inset-block-start:9px;inset-inline-end:9px}.lb-prev{inset-inline-start:9px}.lb-next{inset-inline-end:9px}
 .lb-foot{gap:12px}.lb-count{margin-inline:auto}
}
@media(max-height:520px) and (min-width:641px){
 .lb{width:min(900px,calc(100% - 32px))}.lb-panel{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr)}
 .lb-imgwrap{height:calc(100vh - 42px);height:calc(100dvh - 42px)}.lb-cap{align-content:center;border-top:0;border-inline-start:1px solid #ffffff12}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}.btn-primary::after{display:none}.v10-path,.v10-service-card,.work,.btn{transition:none}
 .v10-path:hover,.v10-service-card:hover,.work:hover{transform:none}
}
