/* Tori Addams — horizontal portfolio carousel. A grid remains the fallback when JavaScript is unavailable. */
.carousel-shell{position:relative;min-width:0;width:100%}
.gallery-grid.horizontal-gallery,
.portfolio-layout.horizontal-gallery{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:0!important;
  grid-template-columns:none!important;
  grid-template-rows:none!important;
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  -ms-overflow-style:none;
  position:relative;
  margin:0;
  padding:0!important;
}
.gallery-grid.horizontal-gallery::-webkit-scrollbar,
.portfolio-layout.horizontal-gallery::-webkit-scrollbar{display:none}
.gallery-grid.horizontal-gallery > .shot,
.portfolio-layout.horizontal-gallery > figure,
.portfolio-layout.horizontal-gallery > figure:first-child{
  flex:0 0 100%!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  grid-column:auto!important;
  grid-row:auto!important;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  margin:0!important;
  height:clamp(350px,52vw,640px)!important;
  min-height:0!important;
  aspect-ratio:auto!important;
}
.gallery-grid.horizontal-gallery .shot img,
.portfolio-layout.horizontal-gallery .portfolio-example img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  -webkit-user-drag:none;
  user-select:none;
}
.gallery-grid.horizontal-gallery > .shot{background:#101014!important}
.portfolio-layout.horizontal-gallery .portfolio-example{display:flex;flex-direction:column}
.portfolio-layout.horizontal-gallery .portfolio-example img{min-height:0;flex:1}
.portfolio-layout.horizontal-gallery .portfolio-placeholder{display:flex;flex-direction:column}
.portfolio-layout.horizontal-gallery .portfolio-placeholder .art-placeholder{min-height:0}
.carousel-nav{
  position:absolute;inset:0 0 48px;
  display:flex;justify-content:space-between;align-items:center;
  padding:0 clamp(9px,2vw,20px);pointer-events:none;
}
.carousel-arrow{
  pointer-events:auto;
  display:grid;place-items:center;
  width:clamp(42px,4vw,54px);height:clamp(42px,4vw,54px);
  border:1px solid #c9aa77;border-radius:50%;
  background:rgba(15,16,20,.86);color:#fffaf2;
  font-size:30px;line-height:1;cursor:pointer;
  box-shadow:0 2px 12px rgba(0,0,0,.16);
}
.carousel-arrow:hover:not(:disabled){background:#087e91;color:white}
.carousel-arrow:focus-visible{outline:3px solid #50c5d9;outline-offset:3px}
.carousel-arrow:disabled{opacity:.25;cursor:default}
.carousel-footer{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;min-height:48px;font-size:12px;
  letter-spacing:.03em;padding:9px 2px 0;
}
.gallery-section .carousel-footer{color:#e8e4df}
.portfolio-section .carousel-footer{color:#4c4643}
.carousel-count{font-weight:700;font-variant-numeric:tabular-nums}
.carousel-hint{opacity:.76}
.horizontal-gallery:focus-visible{outline:3px solid #50c5d9;outline-offset:3px}
@media(max-width:760px){
  .gallery-grid.horizontal-gallery > .shot,
  .portfolio-layout.horizontal-gallery > figure,
  .portfolio-layout.horizontal-gallery > figure:first-child{
    height:clamp(315px,109vw,510px)!important;
  }
  .carousel-arrow{width:43px;height:43px;font-size:27px}
  .carousel-nav{padding:0 8px}
  .carousel-footer{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  .gallery-grid.horizontal-gallery,
  .portfolio-layout.horizontal-gallery{scroll-behavior:auto}
}


/* Art Modelling: full-width horizontal gallery, intact artworks and captions. */
.studio-grid.gallery-grid.horizontal-gallery > .studio-photo.shot{
 display:flex!important;flex-direction:column!important;
 background:#eee8df!important;
}
.studio-grid.gallery-grid.horizontal-gallery .studio-photo img{
 display:block!important;flex:1 1 auto!important;min-height:0!important;
 width:100%!important;height:calc(100% - 66px)!important;
 aspect-ratio:auto!important;object-fit:contain!important;object-position:center!important;
}
.studio-grid.gallery-grid.horizontal-gallery .studio-photo figcaption{
 display:flex;flex:0 0 66px;min-height:66px;max-height:66px;
 box-sizing:border-box;align-items:center;
 padding:12px clamp(14px,3vw,26px);
 background:#fffaf2;overflow:hidden;
}
.studio-grid.gallery-grid.horizontal-gallery .studio-photo .studio-number{
 flex:none;
}
