/* One calm media stage; mixed orientations fit inside it without cutting the artwork. */
.focus-gallery{width:100%;min-width:0;max-width:1240px;margin:0 auto 48px;background:#fff;color:#302f2c}
.focus-stage{position:relative;height:clamp(360px,62svh,680px);min-width:0;background:#fff}
.focus-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;height:100%;width:100%;touch-action:pan-x pan-y pinch-zoom;overscroll-behavior-x:contain;border:0}
.focus-track::-webkit-scrollbar,.focus-thumbs::-webkit-scrollbar{display:none}
.focus-slide{flex:0 0 100%;width:100%;min-width:0;height:100%;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center;overflow:hidden}
.focus-zoom{display:flex!important;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;padding:24px!important;border:0!important;border-radius:0!important;background:transparent!important;cursor:zoom-in;position:relative;translate:none!important;filter:none!important}
.focus-zoom>img{display:block!important;width:100%!important;height:100%!important;max-height:100%!important;object-fit:contain!important;background:transparent!important;transform:none}
.focus-slide>video{width:100%;height:100%;max-height:100%;object-fit:contain;background:#f8f8f6}
.focus-gallery-bar{display:flex;align-items:center;justify-content:center;gap:25px;border-top:1px solid #deddd7;margin-top:12px;padding-top:12px}
.focus-direction{width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #d9d8d2;border-radius:50%;transition:background .2s,color .2s}
.focus-direction:hover:not(:disabled){background:#302f2c;color:#fff}.focus-direction:disabled{opacity:.28;cursor:default}
.focus-count{font-size:11px;letter-spacing:.14em;font-variant-numeric:tabular-nums;min-width:68px;text-align:center}
.focus-thumbs{display:flex;position:relative;gap:9px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;max-width:100%;padding:16px 2px 5px;overscroll-behavior-x:contain}
.focus-thumb{flex:0 0 64px;width:64px;height:64px;min-height:0!important;padding:5px!important;display:flex;align-items:center;justify-content:center;position:relative;border:1px solid #e5e4df;background:#fff!important;border-radius:0;opacity:.52;transition:opacity .2s,border-color .2s}
.focus-thumb[aria-current=true]{opacity:1;border-color:#302f2c;border-bottom-width:3px}.focus-thumb:hover{opacity:1}
.focus-thumb>img{display:block;width:100%!important;height:100%!important;object-fit:contain!important;background:transparent!important}
.focus-play{position:absolute;inset:auto 3px 1px auto!important;padding:0!important;font-size:11px;background:#fff!important}
.focus-gallery button:focus-visible,.focus-track:focus-visible{outline:2px solid #302f2c;outline-offset:3px}
.case-media.has-focus-gallery{display:block!important}.case-media.has-focus-gallery>.focus-gallery{margin-bottom:0}
#case-image-dialog.fullscreen-gallery{width:calc(100vw - 32px)!important;max-width:1400px!important;height:calc(100dvh - 32px)!important;max-height:none!important;padding:52px 24px 16px!important;overflow:hidden!important;background:#fff!important;position:fixed;inset:50% auto auto 50%;margin:0;transform:translate(-50%,-50%);box-sizing:border-box}
#case-image-dialog.fullscreen-gallery>#case-full-image,#case-image-dialog.fullscreen-gallery>#case-image-title{display:none!important}
.fullscreen-gallery>.focus-gallery{margin:0;height:100%;max-width:none}.fullscreen-gallery .focus-stage{height:calc(100dvh - 240px);min-height:100px}
.fullscreen-gallery .focus-zoom{cursor:default}.fullscreen-gallery .dialog-close{position:absolute;top:12px;right:14px;z-index:4}
@media(max-width:700px){
 .studio-collection.has-focus-gallery{padding-left:5vw;padding-right:5vw}
 .focus-gallery{margin-bottom:30px}.focus-stage{height:clamp(280px,55svh,460px)}.focus-zoom{padding:10px!important}
 .focus-gallery-bar{margin-top:6px;padding-top:10px;gap:20px}.focus-thumb{flex-basis:52px;width:52px;height:52px}.focus-thumbs{gap:7px;padding-top:12px}
 #case-image-dialog.fullscreen-gallery{width:100vw!important;height:100dvh!important;max-width:none!important;padding:54px 10px 14px!important;border:0;border-radius:0}
 .fullscreen-gallery .focus-stage{height:calc(100dvh - 220px)}
 .has-focus-gallery .studio-collection-heading{padding-bottom:22px!important}
}
@media(prefers-reduced-motion:reduce){.focus-gallery *{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:700px){
 .studio-collection.has-focus-gallery{padding-top:16px!important}
 .has-focus-gallery .studio-collection-heading{padding-top:5px!important;padding-bottom:17px!important;margin-bottom:17px!important}
 .has-focus-gallery .studio-collection-heading .eyebrow{margin-top:15px!important}
 .has-focus-gallery .studio-collection-heading h1{font-size:clamp(30px,9vw,40px)!important;line-height:1.12;margin:12px 0!important}
 .has-focus-gallery .studio-collection-heading>p:not(.eyebrow){font-size:12px!important;line-height:1.65!important}
 .focus-gallery:not(.focus-gallery-modal) .focus-stage{height:clamp(260px,42svh,360px)}
}

/* Give the artwork the screen; navigation stays compact at the edge. */
.focus-gallery:not(.focus-gallery-modal) .focus-stage{height:clamp(440px,76svh,900px)}
.focus-zoom{padding:8px!important}
.focus-expand{position:absolute;right:10px;bottom:10px;z-index:2;display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid #d9d8d2;border-radius:24px;background:rgba(255,255,255,.94);color:#302f2c;font-size:11px;cursor:pointer;box-shadow:0 2px 12px #00000009}
.focus-expand:hover{background:#302f2c;color:white}
#case-image-dialog.fullscreen-gallery{width:100vw!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;padding:50px 12px 8px!important;inset:0!important;margin:0!important;transform:none!important;border:0!important;border-radius:0!important}
.fullscreen-gallery>.focus-gallery{display:grid;grid-template-rows:minmax(0,1fr) 44px 66px;gap:6px;min-height:0}
.fullscreen-gallery .focus-stage{height:100%!important;min-height:0}
.fullscreen-gallery .focus-zoom{padding:0!important}
.fullscreen-gallery .focus-gallery-bar{margin:0;padding:0;border:0}
.fullscreen-gallery .focus-thumbs{padding:3px 2px;align-items:center}
.fullscreen-gallery .focus-thumb{width:58px;height:58px;flex-basis:58px;padding:3px!important}
@media(max-width:700px){
 .focus-gallery:not(.focus-gallery-modal) .focus-stage{height:clamp(360px,65svh,680px)}
 .focus-zoom{padding:0!important}
 #case-image-dialog.fullscreen-gallery{padding:48px 4px 6px!important;padding-top:max(48px,env(safe-area-inset-top))!important;padding-bottom:max(6px,env(safe-area-inset-bottom))!important}
 .fullscreen-gallery>.focus-gallery{grid-template-rows:minmax(0,1fr) 40px 50px;gap:4px}
 .fullscreen-gallery .focus-thumb{width:44px;height:44px;flex-basis:44px;padding:2px!important}
 .fullscreen-gallery .focus-direction{width:38px;height:38px}
 .focus-expand{bottom:8px;right:6px;padding:8px 11px}
}
@media(max-height:500px){
 #case-image-dialog.fullscreen-gallery{padding-top:8px!important;padding-right:52px!important}
 .fullscreen-gallery>.focus-gallery{grid-template-rows:minmax(0,1fr) 38px;gap:2px}
 .fullscreen-gallery .focus-thumbs{display:none}
}
/* Open image walls: all views are visible, with their original proportions. */
/* Each row fills the available width with a shared top and bottom edge. */
.project-masonry{display:grid;gap:16px;max-width:1400px;margin:0 auto 55px;width:100%}
.collage-row{display:grid;gap:16px;min-width:0}
.masonry-tile{position:relative;align-self:stretch;min-width:0;overflow:hidden;background:#fff}
.collage-row:has(>.masonry-tile:only-child){width:min(100%,720px);justify-self:center}
.masonry-image{display:flex!important;align-items:center;justify-content:center;position:absolute;inset:0;width:100%;height:100%;padding:0!important;min-height:0!important;border:0!important;border-radius:0!important;background:transparent!important;cursor:zoom-in;overflow:hidden;transition:filter .2s}
.masonry-image>img{display:block!important;position:static;width:100%!important;height:100%!important;object-fit:contain!important;max-height:none!important;transform:none}
.masonry-image:hover{filter:brightness(.97)}.masonry-image:focus-visible{outline:3px solid #d9be3f;outline-offset:-3px}
.masonry-tile>video{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;object-fit:contain;background:#f4f4f1}
.case-media.has-focus-gallery{display:block!important}.case-media>.project-masonry{margin-bottom:0}
@media(max-width:700px){.project-masonry,.collage-row{gap:10px}.project-masonry{margin-bottom:28px}.studio-collection.has-focus-gallery{padding-left:4vw!important;padding-right:4vw!important}}


/* Keep full images together without centering narrow portraits inside wide cells. */
.studio-project-photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 1.5vw, 22px);
  align-items: start;
  max-width: 880px;
  margin: 0 auto 32px;
}
.studio-project-photo { display: block; min-width: 0; cursor: zoom-in; }
.studio-project-photo > img {
  display: block;
  width: 100%;
  height: auto;
}
.studio-project-photo:last-child:nth-child(odd) {
  width: min(100%, 430px);
  justify-self: center;
  grid-column: 1 / -1;
}
.studio-project-photo:only-child { width: min(100%, 620px); }
.studio-project-videos {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  justify-content: center;
  gap: clamp(12px, 1.5vw, 22px);
  max-width: 880px;
  margin: 0 auto 32px;
}
.studio-project-videos > video {
  display: block;
  width: min(100%, 430px);
  height: auto;
  object-fit: contain;
  background: #242424;
}
.studio-project-videos > .portrait-video { width: min(100%, 310px); }
@media (max-width: 700px) {
  body[data-focus-studio=true] .studio-collection-heading {
    padding-bottom: 18px;
    margin-bottom: 20px;
  }
  .studio-project-photos { grid-template-columns: minmax(0, 1fr); }
  .studio-project-photo:last-child:nth-child(odd):not(:only-child) { width: 100%; }
}
