/* Vossen gallery composition. Existing specifications and related-card styles are retained. */
.v-ref-gallery { position:relative; height:clamp(520px,calc(100vh - 80px),900px); overflow:hidden; background:#0d0d0d; color:#fff; }
.v-ref-photo { position:absolute; inset:0 auto 0 0; width:74%; touch-action:pan-y; }
.v-ref-photo img { width:100%; height:100%; display:block; object-fit:cover; }
.v-ref-panel { position:absolute; top:0; right:0; bottom:0; width:26%; padding:70px 36px 120px; background:#0d0d0d; }
.v-ref-caption { margin-bottom:20px; font-size:11px; line-height:1.9; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#888; overflow-wrap:anywhere; }
.v-ref-panel h1 { color:#fff; margin:0 0 28px; font-size:26px; font-weight:700; line-height:1.15; text-transform:uppercase; overflow-wrap:anywhere; }
.v-ref-expand { display:inline-flex; justify-content:center; align-items:center; gap:12px; min-height:46px; padding:12px 16px; border:1px solid #ccc; background:transparent; color:#fff; font:inherit; font-size:10px; font-weight:700; line-height:1.5; letter-spacing:.07em; text-transform:uppercase; cursor:pointer; }
.v-ref-expand span { font-size:19px; line-height:1; }
.v-ref-specs { display:flex; align-items:center; gap:10px; min-height:44px; margin-top:15px; color:#fff; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.v-ref-specs span { color:var(--accent); font-size:24px; }
.v-ref-filmstrip { position:absolute; left:44%; right:26px; bottom:48px; display:flex; align-items:center; gap:12px; z-index:2; }
.v-ref-thumbs { display:flex; gap:10px; flex:1; min-width:0; overflow-x:auto; scrollbar-width:none; }
.v-ref-thumbs::-webkit-scrollbar { display:none; }
.v-ref-thumb { flex:0 0 108px; aspect-ratio:1.5; padding:0; border:1px solid #ffffff40; background:#222; opacity:.8; cursor:pointer; overflow:hidden; }
.v-ref-thumb img { width:100%; height:100%; display:block; object-fit:cover; }
.v-ref-thumb[aria-pressed=true] { border:2px solid #fff; opacity:1; }
.v-ref-arrow { flex:none; display:flex; align-items:center; justify-content:center; width:36px; height:44px; padding:0; background:transparent; border:0; color:#fff; font-size:26px; cursor:pointer; }
.v-ref-collapse { position:absolute; right:22px; top:22px; width:40px; height:40px; border:0; border-radius:50%; padding:0; font-size:25px; line-height:1; background:#fff; color:#111; cursor:pointer; z-index:3; }
.v-ref-gallery [hidden] { display:none!important; }
.v-ref-gallery button:focus-visible, .v-ref-gallery a:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.v-ref-gallery.is-expanded { position:fixed; inset:0; width:100%; height:100vh; height:100dvh; z-index:1000000; margin:0; }
.v-ref-gallery.is-expanded .v-ref-photo { width:100%; }
.v-ref-gallery.is-expanded .v-ref-photo img { object-fit:contain; }
.v-ref-gallery.is-expanded .v-ref-panel { display:none; }
.v-ref-gallery.is-expanded .v-ref-filmstrip { left:28px; right:28px; bottom:max(30px,env(safe-area-inset-bottom)); }
.v-ref-gallery.is-expanded .v-ref-arrow { background:#fff; color:#111; border-radius:50%; width:42px; height:42px; }
.v-ref-gallery.is-expanded .v-ref-thumbs { background:#1115; }
.v-ref-gallery.no-photos .v-ref-panel { width:100%; }
#v-album-params { scroll-margin-top:100px; }
.v-awheel.has-project-finish { grid-template-columns:minmax(100px,.7fr) minmax(180px,1fr) minmax(170px,1fr) minmax(180px,1.1fr); gap:26px; }
.v-awheel.no-img.has-project-finish { grid-template-columns:minmax(100px,.7fr) minmax(170px,1fr) minmax(180px,1.1fr); }
.v-project-finish h3 { margin:0 0 24px; font-size:25px; font-weight:400; line-height:1.3; letter-spacing:.04em; text-transform:none; }
.v-project-finish-in { display:flex; align-items:center; gap:20px; }
.v-project-finish-image { display:block; width:88px; flex:0 0 88px; }
.v-project-finish-image img { display:block; width:100%; height:auto; object-fit:contain; }
.v-project-finish strong { display:block; font-size:16px; font-weight:700; line-height:1.5; }
.v-project-finish em { display:block; font-size:14px; line-height:1.6; margin-top:4px; }
@media(max-width:1180px) { .v-ref-panel { padding:45px 26px 120px; } .v-ref-panel h1 { font-size:25px; } .v-awheel.has-project-finish { grid-template-columns:130px minmax(170px,1fr) minmax(170px,1fr); } .v-awheel.has-project-finish .v-project-finish { grid-column:2 / -1; } .v-awheel.no-img.has-project-finish .v-project-finish { grid-column:3; } }
@media(max-width:700px) {
	.v-ref-gallery { display:flex; flex-direction:column; height:auto; overflow:visible; }
	.v-ref-photo { position:relative; inset:auto; order:1; width:100%; height:auto; aspect-ratio:1.4; }
	.v-ref-filmstrip { position:relative; inset:auto; order:2; padding:8px 18px 20px; gap:8px; background:#0d0d0d; }
	.v-ref-thumb { flex-basis:100px; }
	.v-ref-arrow { width:26px; }
	.v-ref-panel { position:relative; inset:auto; width:100%; order:3; padding:10px 24px 40px; }
	.v-ref-caption { max-width:300px; }
	.v-ref-panel h1 { font-size:25px; }
	.v-ref-gallery.is-expanded { display:block; overflow:hidden; }
	.v-ref-gallery.is-expanded .v-ref-photo { position:absolute; inset:0; height:100%; width:100%; aspect-ratio:auto; }
	.v-ref-gallery.is-expanded .v-ref-filmstrip { position:absolute; left:12px; right:12px; bottom:max(18px,env(safe-area-inset-bottom)); padding:0; background:transparent; }
	.v-ref-gallery.is-expanded .v-ref-arrow { width:36px; height:36px; }
	.v-ref-gallery.is-expanded .v-ref-thumb { flex-basis:85px; }
	.v-awheel.has-project-finish, .v-awheel.no-img.has-project-finish { grid-template-columns:minmax(0,1fr); }
	.v-awheel.has-project-finish .v-project-finish, .v-awheel.no-img.has-project-finish .v-project-finish { grid-column:auto; }
	.v-project-finish { padding-top:24px; border-top:1px solid var(--line); }
}
