/*
 * static.css: small overrides that replace behaviour Squarespace used to do in JavaScript.
 * Loaded after the original compiled site/template CSS.
 */

/* Background images: Squarespace's ImageLoader sized these to "cover" with JS. */
img.static-fill {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover;
}
.Index-page-image, .Intro-image { opacity: 1 !important; }
.Index-page-image > div, .Intro-image > div { position: absolute; inset: 0; }

/* Background videos (YouTube / Vimeo), sized to cover their container. */
.static-video-host {
  position: absolute;
  inset: 0;
  overflow: hidden;
  container-type: size;
}
.static-video-host .static-video-bg {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100cqw, 177.78cqh);
  height: max(100cqh, 56.25cqw);
  transform: translate(-50%, -50%);
  border: 0;
  pointer-events: none;
  z-index: 1;
}
.static-video-host img.static-fill { z-index: 0; }

/* Summary block carousel rendered as a static grid. */
.static-summary .summary-item-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 40px 60px;
  width: auto !important;
  transform: none !important;
}
.static-summary .summary-item {
  position: static !important;
  width: auto !important;
  margin: 0 !important;
  float: none !important;
}
.static-summary .summary-thumbnail-container { margin-bottom: 1em; }

/* Gallery "list" collection (/work): render all slides stacked. */
.sqs-gallery-list .slides .slide { position: static !important; opacity: 1 !important; margin-bottom: 60px; }
.sqs-gallery-list .slides .slide img { width: 100%; height: auto; }
.sqs-gallery-list .slides-controls .arrow,
.sqs-gallery-list .gallery-nav { display: none !important; }

/* Album playlist: Squarespace switched its layout with JS ("tablet" / "phone" classes, now added by
   assets/js/site.js, which also sets "static-sized"). Rough CSS-only fallback for when JS does not run. */
@media screen and (max-width: 767px) {
  .sqs-audio-playlist:not(.static-sized) .album-info,
  .sqs-audio-playlist:not(.static-sized) .tracks { width: 100%; float: none; }
  .sqs-audio-playlist:not(.static-sized) .tracks { margin-top: 30px; }
}
.sqs-audio-playlist .track .title a.link,
.sqs-slice-album-playlist .track a.link { cursor: pointer; }

/* Cover pages: the centred layout was positioned with JS (align-center-js). */
.sqs-slide-wrapper .group-copy.static-center {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  margin: auto;
  height: fit-content;
}

/* Index pages: first section filled the viewport (minus the site border); was set inline by JS. */
.tweak-index-page-fullscreen-first-page-only .Index-page:first-child { min-height: calc(100vh - 100px); }
@media screen and (max-width: 960px) { .tweak-index-page-fullscreen-first-page-only .Index-page:first-child { min-height: calc(100vh - 96px); } }
@media screen and (max-width: 768px) { .tweak-index-page-fullscreen-first-page-only .Index-page:first-child { min-height: calc(100vh - 72px); } }
@media screen and (max-width: 640px) { .tweak-index-page-fullscreen-first-page-only .Index-page:first-child { min-height: calc(100vh - 20px); } }
/* Below 640px the template shows fixed top (56px) and bottom (16px) mobile bars; Squarespace's JS gave body
   matching margins so content clears them, and shortened the first section by the top bar's height. */
@media screen and (max-width: 639.98px) {
  body.tweak-mobile-bar-top-fixed { margin-top: 56px; margin-bottom: 16px; }
  .tweak-mobile-bar-top-fixed.tweak-index-page-fullscreen-first-page-only .Index-page:first-child { min-height: calc(100vh - 76px); }
}
/* ...and its content was pushed below the overlaid header: site.js sets --header-height to the header's
   measured height (103px when the nav fits on one line, taller when it wraps at narrower widths). */
@media screen and (min-width: 641px) {
  .Header--overlay ~ .Content-outer .Index-page--has-image:first-child .Index-page-content,
  .Header--overlay ~ .Content-outer .Intro--has-image .Intro-content { margin-top: var(--header-height, 103px); }
}
.sqs-slide-wrapper .sqs-slice-group.group-links { display: inline-block; }
.sqs-slide-wrapper #sqs-slash-page-header { display: inline-block; }

/* Parallax backgrounds: positioned by assets/js/site.js, which sets body.parallax-on only when it runs and the
   visitor has not asked for reduced motion. The template CSS already gives .Index-page / .Intro
   overflow: hidden, so each section clips its taller, moving background figure. */
.parallax-on .Index-page--has-image > .Index-page-image,
.parallax-on .Intro--has-image > .Intro-image { will-change: transform; }

/* Share menus (album and event pages). Rules from Squarespace's "social-buttons" stylesheet, which was not
   self-hosted, plus styles for the three share links that replace the X / Facebook / Tumblr widgets.
   Opened, positioned and wired up by assets/js/site.js. */
.squarespace-social-buttons { position: relative; -webkit-user-select: none; user-select: none; }
.squarespace-social-buttons.inline-style { cursor: pointer; display: inline-block; }
.squarespace-social-buttons .ss-social-list-wrapper {
  position: absolute; top: 100%; left: 0; z-index: 10000; height: 0; overflow: hidden; opacity: 0;
  transition: height .25s ease-out;
}
.squarespace-social-buttons .ss-social-button-list {
  text-align: left; background-color: rgba(254, 254, 254, .9); border: 1px solid #ccc; border-radius: 5px;
  min-width: 108px; padding: 14px; box-shadow: 0 1px 3px rgba(0, 0, 0, .05); cursor: default;
}
.squarespace-social-buttons .ss-social-button-container { min-height: 28px; margin-bottom: 10px; line-height: 0; }
.squarespace-social-buttons .ss-social-button-container:last-child { margin-bottom: 0; }
.squarespace-social-buttons .ss-social-button-container a {
  display: inline-flex; align-items: center; gap: 4px; box-sizing: border-box; height: 20px; border: 0;
  font: 700 11px/20px "Helvetica Neue", Helvetica, Arial, sans-serif; letter-spacing: 0; text-transform: none;
  text-decoration: none; white-space: nowrap; cursor: pointer;
}
.squarespace-social-buttons .share-x { padding: 0 12px; border-radius: 9999px; background: #000; color: #fff; font-size: 13px; }
.squarespace-social-buttons .share-x:hover { background: #272c30; color: #fff; }
.squarespace-social-buttons .share-x svg { width: 14px; height: 14px; }
.squarespace-social-buttons .share-facebook { padding: 0 8px 0 6px; border-radius: 3px; background: #1877f2; color: #fff; }
.squarespace-social-buttons .share-facebook:hover { background: #166fe5; color: #fff; }
.squarespace-social-buttons .share-tumblr {
  width: 81px; overflow: hidden; text-indent: -9999px; background: url(../images/share-tumblr.png) top left no-repeat transparent;
}
