/*
Theme Name: Anaheim Dreams
Theme URI: https://www.anaheimdreams.com/
Author: Anaheim Dreams
Description: Anaheim Dreams theme using the School Of Stores visual system with sticky navigation, safe-fit Home artwork, and a narrow reading-focused site corridor.
Version: 1.0.0
Text Domain: anaheim-dreams
*/

:root {
  --sos-navy: #061a35;
  --sos-navy-deep: #020b18;
  --sos-blue: #24a8ff;
  --sos-blue-bright: #6fd0ff;
  --sos-gold: #b27a10;
  --sos-gold-light: #f2d27d;
  --sos-cream: #f7f1df;
  --sos-ink: #101a27;
  --sos-page: #fbfaf6;
  /* Reading-first sitewide corridor, intentionally narrower to leave side room for future banners. */
  --sos-content: 820px;
  /* One shared outer edge for the desktop header and footer. */
  --sos-header-edge: clamp(24px, 3.25vw, 52px);
}

* { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  /* Keep the horizontal viewport geometry identical on short and long pages. */
  overflow-y: scroll;
  scrollbar-gutter: stable;
}
body {
  margin: 0;
  color: var(--sos-ink);
  background: var(--sos-page);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.65;
}

a { color: #0b69a8; }
a:hover, a:focus-visible { color: #084f7f; }
img { max-width: 100%; height: auto; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff;
  border-bottom: 1px solid rgba(178,122,16,.34);
  box-shadow: 0 5px 18px rgba(6,26,53,.10);
}
body.admin-bar .site-header { top: 32px; }

.header-inner {
  width: calc(100% - (2 * var(--sos-header-edge)));
  min-height: 108px;
  margin: 0 auto;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 18px;
}

/* Stable edge-to-edge desktop header geometry.
   The logo starts at the left outer edge and the final menu item ends at the
   matching right outer edge. The search field consumes the flexible middle. */
.site-branding {
  flex: 0 0 250px;
  width: 250px;
  height: 92px;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  overflow: hidden;
}
.site-branding a,
.custom-logo-link {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 250px;
  height: 92px;
  line-height: 0;
}
.site-logo,
.custom-logo {
  display: block;
  flex: 0 0 250px;
  width: 250px;
  height: 92px;
  max-width: 250px;
  max-height: 92px;
  object-fit: contain;
  object-position: left center;
}

.header-main {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 18px;
}

.primary-navigation {
  min-width: max-content;
  width: auto;
  display: flex;
  justify-content: flex-end;
  justify-self: end;
  margin-left: 0;
}
.primary-navigation ul,
.primary-navigation .menu {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.primary-navigation li { margin: 0; padding: 0; }
.primary-navigation a {
  position: relative;
  display: inline-block;
  padding: 14px 0;
  color: var(--sos-gold);
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-size: .95rem;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none !important;
  border: 0 !important;
  box-shadow: none;
  transition: color .18s ease, text-shadow .18s ease;
}
/* No Park Worlds-style line/underline treatment. */
.primary-navigation a::before,
.primary-navigation a::after { content: none !important; display: none !important; }
.primary-navigation a:hover,
.primary-navigation a:focus-visible {
  color: #fff;
  text-shadow:
    0 0 4px rgba(36,168,255,.98),
    0 0 10px rgba(36,168,255,.86),
    0 0 18px rgba(36,168,255,.68),
    0 0 28px rgba(36,168,255,.46);
  outline: none;
}

/*
 * Home artwork stack. The newest artwork is the primary hero; older Home
 * artwork moves below it in progressively secondary placement. Images remain
 * fully visible, preserve aspect ratio, never crop, and use the established
 * 85%-maximum hero rule rather than being enlarged merely to hit that cap.
 */
.home-art-stack {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 34px;
  padding: 18px 0 42px;
  background: #08162a;
}
.home-hero {
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.home-hero img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: var(--sos-home-hero-max-height, 85vh);
  margin: 0 auto;
  padding: 0;
  object-fit: contain;
}
.home-artwork--primary {
  width: 94%;
  max-width: 1460px;
}
.home-artwork--primary img {
  max-height: var(--sos-home-hero-max-height, 72vh);
}
.home-artwork--secondary {
  width: 86%;
  max-width: 1180px;
}
.home-artwork--secondary img {
  max-height: 64vh;
}
@supports (height: 1svh) {
  .home-hero img { max-height: var(--sos-home-hero-max-height, 85svh); }
  .home-artwork--primary img { max-height: var(--sos-home-hero-max-height, 72svh); }
  .home-artwork--secondary img { max-height: 64svh; }
}

/*
 * Home welcome video — 1.0.42
 * Desktop: preserve the exact pre-Welcome hero centering. Welcome! is removed
 * from the centering flow and independently centered in the visible gutter to
 * the left of the rendered hero image. Mobile: the same button stacks directly
 * above the hero in normal flow. The button opens the public introductory MP4
 * in the shared artwork/video lightbox.
 */
.sos-home-primary-stage {
  position: relative;
  width: 100%;
  display: block;
  padding: 0;
  box-sizing: border-box;
}
.sos-home-primary-stage .home-artwork--primary {
  width: 94%;
  max-width: 1460px;
  margin-left: auto;
  margin-right: auto;
}
.sos-home-welcome-button {
  position: absolute;
  top: 50%;
  left: var(--sos-home-welcome-center-x, 24px);
  transform: translate(-50%, -50%);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid rgba(210, 169, 76, .92);
  border-radius: 999px;
  background: #fff;
  color: #0b2341;
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-size: .92rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(0,0,0,.16);
  cursor: pointer;
}
@media (min-width: 761px) {
  .sos-home-primary-stage:not(.sos-home-welcome-positioned) .sos-home-welcome-button {
    opacity: 0;
    pointer-events: none;
  }
}

.sos-home-welcome-button:hover,
.sos-home-welcome-button:focus-visible {
  color: #0b2341;
  border-color: #d2a94c;
  box-shadow: 0 0 0 3px rgba(36,168,255,.25), 0 4px 16px rgba(0,0,0,.2);
  outline: none;
}
@media (max-width: 760px) {
  .sos-home-primary-stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 0;
  }
  .sos-home-primary-stage .home-artwork--primary {
    width: 94%;
    margin-left: auto;
    margin-right: auto;
  }
  .sos-home-welcome-button {
    position: static;
    transform: none;
    align-self: center;
  }
}

.content-shell,
.content-shell.wide {
  width: min(var(--sos-content), calc(100% - 40px));
  margin: 0 auto;
  padding: 64px 0 78px;
}

/* Studio is intentionally an image-only functional page. The hero remains one
   non-cropped image, never upscaled, capped at 85% of usable visible height. */
.sos-studio-page-shell .entry-content {
  display: flex;
  justify-content: center;
  width: 100%;
}
.sos-studio-hero {
  width: 100%;
  max-width: 100%;
  margin: 0;
  text-align: center;
}
.sos-studio-hero .pw-site-image-lightbox-item {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
  cursor: zoom-in;
}
.sos-studio-hero img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 85vh;
  margin: 0 auto;
  object-fit: contain;
}
@supports (height: 1svh) {
  .sos-studio-hero img { max-height: 85svh; }
}

.page-title, .entry-title, .blog-title {
  margin: 0;
  color: var(--sos-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 800;
  line-height: 1.08;
}
.page-title, .blog-title { margin-bottom: 32px; font-size: clamp(2.2rem, 5vw, 4rem); }
.single-post .page-title { font-size: clamp(2rem, 4vw, 3rem); }
.entry-title { margin-bottom: 24px; font-size: clamp(1.7rem, 3vw, 2.5rem); }
.entry-title a { color: inherit; text-decoration: none; }
.entry-title a:hover, .entry-title a:focus-visible { color: #0b69a8; }
.entry-meta { color: #667381; font-size: .92rem; margin: -10px 0 20px; }
.sos-post-categories { margin-top: 4px; line-height: 1.5; }
.sos-post-categories-label { font-weight: 700; color: #4b5967; }
.sos-post-categories a { color: #0b69a8; text-decoration: none; }
.sos-post-categories a:hover,
.sos-post-categories a:focus-visible { text-decoration: underline; }
.sos-category-separator,
.sos-category-path-divider { color: #8a96a1; padding: 0 .18em; }

.entry-content > *:first-child { margin-top: 0; }
.entry-content img { border-radius: 8px; }
/* Normal paragraph text uses the same shared School Of Stores content corridor
   on every public page unless a component is explicitly given an exception. */
.entry-content p { max-width: none; }

.sos-post-audio {
  margin: 0 0 34px;
}
.sos-post-audio audio {
  display: block;
  width: 100%;
  max-width: 100%;
}

.blog-grid { display: grid; gap: 30px; }
.post-card {
  padding: 30px;
  background: #fff;
  border: 1px solid rgba(6,26,53,.11);
  border-radius: 12px;
  box-shadow: 0 8px 28px rgba(6,26,53,.07);
}
.post-card .entry-title { margin-bottom: 18px; }
.read-more {
  display: inline-block;
  margin-top: 10px;
  font-weight: 750;
  text-decoration: none;
}

.pagination, .nav-links { margin-top: 36px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 10px; }
.page-numbers {
  display: inline-block;
  min-width: 40px;
  padding: 7px 12px;
  text-align: center;
  border-radius: 6px;
  text-decoration: none;
  background: #fff;
  border: 1px solid rgba(6,26,53,.14);
}
.page-numbers.current { color: #fff; background: var(--sos-navy); }

.site-footer {
  color: rgba(255,255,255,.72);
  background: var(--sos-navy-deep);
  border-top: 1px solid rgba(217,173,69,.32);
}
.footer-inner {
  width: min(var(--sos-content), calc(100% - 40px));
  margin: 0 auto;
  padding: 26px 0;
  text-align: center;
  font-size: .88rem;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 820px) {
  .header-inner {
    width: min(var(--sos-content), calc(100% - 40px));
    min-height: 0;
    padding: 18px 0 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
  }
  .site-branding { width: min(410px, 92vw); height: 80px; margin-right: 0; text-align: center; justify-content: center; }
  .site-branding a, .custom-logo-link { width: 100%; height: 80px; justify-content: center; }
  .site-logo, .custom-logo { flex: 0 1 auto; width: min(250px, 92vw); height: 80px; max-width: min(250px, 92vw); max-height: 80px; object-position: center; }
  .header-main {
    width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .sos-header-search {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    max-width: none;
  }
  .primary-navigation { width: 100%; min-width: 0; margin-left: 0; display: block; }
  .primary-navigation ul,
  .primary-navigation .menu {
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px 26px;
  }
  .primary-navigation a { padding: 8px 0; }
  .content-shell,
  .content-shell.wide { padding-top: 46px; padding-bottom: 58px; }
}

@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}


/* Stores directory and structured-family uplink — 1.0.7 */
.sos-stores-directory {
  margin-top: 10px;
}
.sos-stores-directory > h2 {
  margin: 0 0 16px;
  color: var(--sos-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  line-height: 1.15;
}
.sos-stores-directory-list {
  margin: 0;
  padding-left: 1.25rem;
}
.sos-stores-directory-list li {
  margin: 0 0 9px;
}
.sos-stores-directory-list a {
  color: var(--sos-navy);
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.sos-structured-uplink {
  margin: 0 0 32px;
}
.sos-structured-uplink a {
  color: var(--sos-gold);
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-decoration: none;
}
.sos-structured-uplink a:hover,
.sos-structured-uplink a:focus-visible {
  color: var(--sos-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* --------------------------------------------------------------
   School Of Stores structured pages — 1.0.2
-------------------------------------------------------------- */
:root {
  --pw-navy: var(--sos-navy);
  --pw-white: #ffffff;
  --pw-gold: var(--sos-gold);
  --pw-gold-light: var(--sos-gold-light);
  --pw-muted: #667381;
}

.sos-structured-page { width: 100%; }
.sos-standard-section {
  margin: 0 0 42px;
  padding: 0 0 38px;
  border-bottom: 1px solid rgba(6,26,53,.13);
}
.sos-standard-section:last-child { border-bottom: 0; }
/* Bungee 400 is provided by the site's WordPress Font Library;
   no font files are bundled with the theme. */
.sos-section-kicker {
  margin: 0 0 7px;
  color: var(--sos-gold);
  font-family: "Bungee", Arial, Helvetica, sans-serif;
  font-size: .76rem;
  font-weight: 400;
  letter-spacing: .14em;
  line-height: 1.25;
  text-transform: uppercase;
}
.sos-standard-section > h2 {
  margin: 0 0 15px;
  color: var(--sos-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  line-height: 1.15;
}
.sos-section-body > :first-child { margin-top: 0; }
.sos-section-body > :last-child { margin-bottom: 0; }
.sos-category-link a { font-weight: 750; text-decoration: none; }
.sos-category-posts { display: grid; gap: 12px; margin-top: 22px; }
.sos-category-post-card { padding: 14px 16px; background: #fff; border: 1px solid rgba(6,26,53,.1); border-radius: 8px; }
.sos-category-post-card h3 { margin: 0; font-size: 1.08rem; }
.sos-category-post-card h3 a { color: var(--sos-navy); text-decoration: none; }
.sos-category-post-date { margin: 4px 0 0; color: #667381; font-size: .86rem; }
.sos-gallery-section .pw-core-art-gallery-grid { margin-top: 0; }


/* Keep every standard Kinds Of Stores section on the exact same left edge.
   This explicitly protects the Blog Category block from nested-category or
   generated-card styles changing its corridor/alignment. */
.sos-structured-page > .sos-standard-section,
.sos-structured-page > .sos-blog-category-section,
.sos-structured-page > .sos-email-outreach-section {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}
.sos-blog-category-section > p,
.sos-blog-category-section > h2,
.sos-blog-category-section > .sos-category-posts {
  margin-left: 0;
}

/* Shared Blog-post artwork presentation. Artwork stays inside the normal
   post corridor, is centered, preserves its exact aspect ratio, and uses 85%
   of the actually usable visible height only as a MAXIMUM. It is never scaled
   up merely to reach that height. The lightbox script refines the height bound
   after measuring persistent site/browser chrome. */
.single-post {
  --pw-blog-image-max-height: 85vh;
  --pw-blog-image-max-width: 100%;
}
@supports (height: 1svh) {
  .single-post { --pw-blog-image-max-height: 85svh; }
}
.single-post .entry-content figure,
.single-post .entry-content .wp-block-image {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.single-post .entry-content img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: var(--pw-blog-image-max-height);
  margin-left: auto;
  margin-right: auto;
  object-fit: contain;
}
.single-post .entry-content .pw-blog-artwork-lightbox-item {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  cursor: zoom-in;
}
.single-post .entry-content .pw-blog-artwork-lightbox-item[aria-haspopup="dialog"] {
  cursor: zoom-in;
}
.single-post .entry-content .sos-post-artwork {
  width: 100%;
  max-width: 100%;
  margin-top: 28px;
  margin-bottom: 38px;
  text-align: center;
}


html.pw-art-lightbox-open,
body.pw-art-lightbox-open {
  overflow: hidden;
}
.pw-art-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0, 0, 0, .88);
}
.pw-art-lightbox.is-open { display: flex; }
.pw-art-lightbox-panel {
  position: relative;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) 52px;
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: center;
  width: min(96vw, 1500px);
  height: min(94vh, 1000px);
  height: min(94svh, 1000px);
  padding: 52px 8px 12px;
  color: #fff;
  background: #05070a;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 14px;
  box-shadow: 0 22px 70px rgba(0,0,0,.55);
}
.pw-art-lightbox-stage {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.pw-art-lightbox-image {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.pw-art-lightbox-image[hidden] { display: none !important; }
.pw-art-lightbox-loading {
  width: 100%;
  text-align: center;
  color: rgba(255,255,255,.82);
  font-family: "Source Sans 3", Arial, Helvetica, sans-serif;
  font-size: 1rem;
  font-weight: 400;
}
.pw-art-lightbox-loading[hidden] { display: none !important; }
.pw-art-lightbox-video {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  background: #000;
}
.pw-art-lightbox-video[hidden] { display: none !important; }
.pw-art-lightbox-close,
.pw-art-lightbox-fullscreen,
.pw-art-lightbox-prev,
.pw-art-lightbox-next {
  appearance: none;
  border: 1px solid rgba(255,255,255,.32);
  background: rgba(0,0,0,.68);
  color: #fff;
  cursor: pointer;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1;
}
.pw-art-lightbox-close:hover,
.pw-art-lightbox-close:focus-visible,
.pw-art-lightbox-fullscreen:hover,
.pw-art-lightbox-fullscreen:focus-visible,
.pw-art-lightbox-prev:hover,
.pw-art-lightbox-prev:focus-visible,
.pw-art-lightbox-next:hover,
.pw-art-lightbox-next:focus-visible {
  color: #ffd37a;
  border-color: #ffd37a;
  outline: none;
}
.pw-art-lightbox-fullscreen {
  position: absolute;
  top: 10px;
  right: 62px;
  z-index: 2;
  min-width: 128px;
  height: 38px;
  padding: 0 12px;
  border-radius: 9px;
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-size: .88rem;
  font-weight: 400;
  white-space: nowrap;
}
.pw-art-lightbox-close {
  position: absolute;
  top: 10px;
  right: 12px;
  z-index: 2;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  font-size: 31px;
  font-weight: 400;
}
.pw-art-lightbox-prev,
.pw-art-lightbox-next {
  width: 42px;
  height: 54px;
  border-radius: 9px;
  font-size: 28px;
  justify-self: center;
}
.pw-art-lightbox-prev { grid-column: 1; grid-row: 1; }
.pw-art-lightbox-next { grid-column: 3; grid-row: 1; }
.pw-art-lightbox-status {
  grid-column: 1 / -1;
  grid-row: 2;
  min-height: 1.25em;
  padding-top: 9px;
  text-align: center;
  font-size: .88rem;
  color: rgba(255,255,255,.78);
}
.pw-core-identity-art-link[aria-haspopup="dialog"],
.pw-core-featured-art-link[aria-haspopup="dialog"],
.pw-core-art-gallery-item[aria-haspopup="dialog"] {
  cursor: zoom-in;
}

.pw-art-lightbox:fullscreen,
.pw-art-lightbox:-webkit-full-screen {
  width: 100vw;
  height: 100vh;
  padding: 0;
  background: #000;
}
.pw-art-lightbox:fullscreen .pw-art-lightbox-panel,
.pw-art-lightbox:-webkit-full-screen .pw-art-lightbox-panel,
.pw-art-lightbox.is-native-fullscreen .pw-art-lightbox-panel {
  width: 100vw;
  max-width: none;
  height: 100vh;
  height: 100svh;
  max-height: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
@media (max-width: 640px) {
  .pw-art-lightbox { padding: 8px; }
  .pw-art-lightbox-panel {
    width: 100%;
    height: 96vh;
    height: 96svh;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    padding: 48px 2px 8px;
    border-radius: 10px;
  }
  .pw-art-lightbox-fullscreen {
    right: 54px;
    min-width: 0;
    max-width: calc(100% - 110px);
    padding: 0 9px;
    font-size: 12px;
  }
  .pw-art-lightbox-prev,
  .pw-art-lightbox-next {
    width: 38px;
    height: 50px;
    font-size: 25px;
  }
}

:root {
  /* Fallbacks are used only until the first gallery artwork is measurable.
     Managed galleries receive all three sizes from the computed safe maximum. */
  --pw-gallery-preview-width: 250px;
  --pw-gallery-preview-max-height: 390px;
}
html.pw-art-gallery-size-small .pw-art-gallery-managed {
  --pw-gallery-preview-width: var(--pw-gallery-small-preview-width, 175px);
  --pw-gallery-preview-max-height: var(--pw-gallery-small-preview-max-height, 285px);
  --pw-gallery-preview-height: var(--pw-gallery-small-preview-height, 285px);
}
html.pw-art-gallery-size-medium .pw-art-gallery-managed {
  --pw-gallery-preview-width: var(--pw-gallery-medium-preview-width, 250px);
  --pw-gallery-preview-max-height: var(--pw-gallery-medium-preview-max-height, 390px);
  --pw-gallery-preview-height: var(--pw-gallery-medium-preview-height, 390px);
}
html.pw-art-gallery-size-large .pw-art-gallery-managed {
  --pw-gallery-preview-width: var(--pw-gallery-large-preview-width, min(80%, 656px));
  --pw-gallery-preview-max-height: var(--pw-gallery-large-preview-max-height, 80svh);
  --pw-gallery-preview-height: var(--pw-gallery-large-preview-height, 80svh);
}

.pw-gallery-page {
  padding: 0 0 90px;
}
.pw-gallery-page__inner {
  width: min(calc(100% - 40px), 1080px);
  margin: 0 auto;
  padding: 60px 0 0;
}
.pw-gallery-page__header {
  margin: 0 0 24px;
  padding: 0;
  border: 0;
}
.pw-gallery-page__header .entry-title {
  margin: 0;
}
.pw-gallery-page .pw-art-gallery-managed {
  max-width: 820px;
  margin: 0;
  padding: 0;
}
/* Match /system/ exactly: the page itself uses the 1080px standard corridor,
   while its actual hub sections are 820px wide and left-aligned inside it. */
.pw-gallery-page .pw-gallery-page-blog-hub {
  max-width: 820px;
  margin-left: 0;
  margin-right: auto;
}
/* Civilization / Reach and Convention use the same internal heading language
   as /system/: Russo One remains reserved for the page H1, while standard
   section H2s use Roboto Condensed. */
.pw-gallery-page .pw-art-gallery-managed > h2,
.pw-gallery-page .pw-system-section-header h2 {
  color: var(--pw-navy);
  font-family: "Roboto Condensed", Arial, Helvetica, sans-serif;
  font-weight: 700;
  line-height: 1.2;
}
.pw-gallery-page .pw-art-gallery-managed > h2 {
  margin: 0 0 1rem;
}
/* Mount the shared System Blog-category component beneath each gallery.
   Core now loads the same front.css System component rules on /system/,
   /civilization/, and /convention/, keeping typography, View category,
   dividers, cards, margins, and responsive spacing synchronized. */
.pw-gallery-page-blog-hub {
  margin-top: 2.25rem;
}
/* Structured Brand / Comic Series Blog sections use the same internal 820px
   corridor as Civilization's shared Blog-category component, so View category
   stays visually attached to the Blog section rather than drifting to the far
   edge of the 1080px entity page. */
.pw-core-entity-page .pw-core-entity-blog {
  width: 100%;
  max-width: 820px;
  margin-left: 0;
  margin-right: auto;
}
.pw-art-gallery-size-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  margin: 0 0 18px;
}
.pw-art-gallery-size-control {
  min-height: 36px;
  padding: 6px 12px;
  color: var(--pw-navy);
  background: transparent;
  border: 1px solid rgba(1,25,58,.42);
  border-radius: 4px;
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-size: .92rem;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
}
.pw-art-gallery-size-control:hover,
.pw-art-gallery-size-control:focus-visible {
  color: var(--pw-white);
  background: var(--pw-navy);
  border-color: var(--pw-gold);
}
.pw-art-gallery-size-control:disabled {
  opacity: .38;
  cursor: default;
  color: var(--pw-muted);
  background: transparent;
  border-color: rgba(1,25,58,.22);
}

/* Grid-style galleries use a true left-aligned wrapping row. */
.pw-art-gallery-managed .pw-art-gallery-grid,
.pw-art-gallery-managed .pw-convention-art-gallery-grid,
.pw-art-gallery-managed .pw-civilization-art-gallery-grid,
.pw-art-gallery-managed .pw-system-art-gallery-grid,
.pw-art-gallery-managed .pw-core-art-gallery-grid {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 18px;
  width: 100%;
}
/* Each grid item receives its own width from JavaScript, derived from the
   common preview height and that artwork's natural aspect ratio. This keeps
   portrait and landscape previews exactly equal in height at every size state.
   Flex wrapping, rather than per-item shrinking, decides when a wide landscape
   card starts a new row. */
html.pw-art-gallery-size-small .pw-art-gallery-managed .pw-art-gallery-preview,
html.pw-art-gallery-size-small .pw-art-gallery-managed .pw-convention-art-gallery-item,
html.pw-art-gallery-size-small .pw-art-gallery-managed .pw-civilization-art-gallery-item,
html.pw-art-gallery-size-small .pw-art-gallery-managed .pw-system-art-gallery-item,
html.pw-art-gallery-size-small .pw-art-gallery-managed .pw-core-art-gallery-item,
html.pw-art-gallery-size-small .pw-art-gallery-managed .pw-core-brand-art-source-item {
  --pw-gallery-item-preview-width: var(--pw-gallery-item-small-width, var(--pw-gallery-preview-width));
}
html.pw-art-gallery-size-medium .pw-art-gallery-managed .pw-art-gallery-preview,
html.pw-art-gallery-size-medium .pw-art-gallery-managed .pw-convention-art-gallery-item,
html.pw-art-gallery-size-medium .pw-art-gallery-managed .pw-civilization-art-gallery-item,
html.pw-art-gallery-size-medium .pw-art-gallery-managed .pw-system-art-gallery-item,
html.pw-art-gallery-size-medium .pw-art-gallery-managed .pw-core-art-gallery-item,
html.pw-art-gallery-size-medium .pw-art-gallery-managed .pw-core-brand-art-source-item {
  --pw-gallery-item-preview-width: var(--pw-gallery-item-medium-width, var(--pw-gallery-preview-width));
}
html.pw-art-gallery-size-large .pw-art-gallery-managed .pw-art-gallery-preview,
html.pw-art-gallery-size-large .pw-art-gallery-managed .pw-convention-art-gallery-item,
html.pw-art-gallery-size-large .pw-art-gallery-managed .pw-civilization-art-gallery-item,
html.pw-art-gallery-size-large .pw-art-gallery-managed .pw-system-art-gallery-item,
html.pw-art-gallery-size-large .pw-art-gallery-managed .pw-core-art-gallery-item,
html.pw-art-gallery-size-large .pw-art-gallery-managed .pw-core-brand-art-source-item {
  --pw-gallery-item-preview-width: var(--pw-gallery-item-large-width, var(--pw-gallery-preview-width));
}
.pw-art-gallery-managed .pw-art-gallery-preview,
.pw-art-gallery-managed .pw-convention-art-gallery-item,
.pw-art-gallery-managed .pw-civilization-art-gallery-item,
.pw-art-gallery-managed .pw-system-art-gallery-item,
.pw-art-gallery-managed .pw-core-art-gallery-item {
  position: relative;
  flex: 0 0 min(100%, var(--pw-gallery-item-preview-width, var(--pw-gallery-preview-width)));
  width: min(100%, var(--pw-gallery-item-preview-width, var(--pw-gallery-preview-width)));
  min-width: 0;
  min-height: 0;
  max-height: none;
  margin: 0;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: inherit;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(16,40,74,.16);
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(3,18,38,.08);
  line-height: 0;
  text-decoration: none;
}
.pw-art-gallery-managed .pw-core-brand-art-source-item {
  flex: 0 0 min(100%, var(--pw-gallery-item-preview-width, var(--pw-gallery-preview-width)));
  width: min(100%, var(--pw-gallery-item-preview-width, var(--pw-gallery-preview-width)));
  min-width: 0;
}
button.pw-art-gallery-preview {
  appearance: none;
  font: inherit;
  cursor: pointer;
}
.pw-art-gallery-managed .pw-art-gallery-preview img,
.pw-art-gallery-managed .pw-convention-art-gallery-image,
.pw-art-gallery-managed .pw-civilization-art-gallery-image,
.pw-art-gallery-managed .pw-system-art-gallery-image,
.pw-art-gallery-managed .pw-core-art-gallery-image {
  display: block;
  width: auto;
  max-width: none;
  height: var(--pw-gallery-preview-height);
  max-height: none;
  margin: 0;
  object-fit: contain;
  background: transparent;
}
.pw-art-gallery-managed .pw-art-gallery-preview:hover,
.pw-art-gallery-managed .pw-art-gallery-preview:focus-visible,
.pw-art-gallery-managed .pw-convention-art-gallery-item:hover,
.pw-art-gallery-managed .pw-convention-art-gallery-item:focus-visible,
.pw-art-gallery-managed .pw-civilization-art-gallery-item:hover,
.pw-art-gallery-managed .pw-civilization-art-gallery-item:focus-visible,
.pw-art-gallery-managed .pw-system-art-gallery-item:hover,
.pw-art-gallery-managed .pw-system-art-gallery-item:focus-visible,
.pw-art-gallery-managed .pw-core-art-gallery-item:hover,
.pw-art-gallery-managed .pw-core-art-gallery-item:focus-visible {
  border-color: rgba(214,155,45,.8);
  box-shadow: 0 9px 24px rgba(3,18,38,.13);
}

/* Art Gallery previews are artwork-only sitewide. Descriptive text remains
   available to the lightbox through data-pw-lightbox-caption/alt metadata,
   but no caption or figcaption is rendered beneath preview artwork. */
[data-pw-art-gallery] figcaption,
.pw-core-art-gallery figcaption,
.pw-video-art-slideshow figcaption,
.pw-system-art-gallery figcaption,
.pw-convention-art-gallery figcaption,
.pw-civilization-art-gallery figcaption,
.pw-park-design-art-gallery figcaption,
.pw-art-gallery-managed figcaption,
.pw-video-art-slide-caption,
.pw-park-design-art-caption {
  display: none !important;
}

/* The Park Design gallery currently has one featured artwork rather than a
   wrapping grid. It still shares the same saved preview-size preference. */
.pw-park-design-art-gallery.pw-art-gallery-managed .pw-park-design-featured-art-link {
  width: min(100%, var(--pw-gallery-preview-width));
  margin-left: 0;
  margin-right: auto;
  padding: 8px;
}
.pw-park-design-art-gallery.pw-art-gallery-managed .pw-park-design-featured-art-image {
  width: auto;
  max-width: 100%;
  max-height: var(--pw-gallery-preview-max-height);
  margin: 0;
}
.pw-park-design-art-gallery.pw-art-gallery-managed .pw-park-design-art-caption {
  width: min(100%, var(--pw-gallery-preview-width));
  margin: 10px 0 0 !important;
}

/* Video-page Art Gallery keeps its established slideshow mechanics while its
   visible preview shares the same sitewide size preference and left edge. */
.pw-video-art-slideshow.pw-art-gallery-managed .pw-video-art-slideshow-stage {
  width: 100%;
}
.pw-video-art-slideshow.pw-art-gallery-managed .pw-video-art-slide {
  width: min(100%, var(--pw-gallery-preview-width));
  margin-left: 0;
  margin-right: auto;
}
.pw-video-art-slideshow.pw-art-gallery-managed .pw-video-art-slideshow-link {
  justify-content: flex-start;
  width: 100%;
}
.pw-video-art-slideshow.pw-art-gallery-managed .pw-video-art-slideshow-image {
  width: auto;
  max-width: 100%;
  max-height: var(--pw-gallery-preview-max-height);
  margin: 0;
}
.pw-video-art-slideshow.pw-art-gallery-managed .pw-video-art-slideshow-controls {
  justify-content: flex-start;
  width: min(100%, var(--pw-gallery-preview-width));
}

.pw-art-gallery-video-preview {
  position: relative;
}
.pw-art-gallery-video-badge {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  color: var(--pw-white);
  background: rgba(1,25,58,.9);
  border: 2px solid var(--pw-gold);
  border-radius: 5px;
  box-shadow: 0 3px 10px rgba(0,0,0,.25);
  font-family: "Source Sans 3", Arial, Helvetica, sans-serif;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}
.pw-art-gallery-video-badge__play {
  color: var(--pw-gold-light);
  font-size: 1em;
}


/* -------------------------------------------------------------------------
 * Sitewide search — 1.0.4
 * Visible in the header, following the Park Worlds search-field pattern.
 * ---------------------------------------------------------------------- */
.sos-header-search {
  width: min(490px, 100%);
  min-width: 120px;
  max-width: 490px;
  margin: 0;
  justify-self: center;
}
.sos-header-search-control {
  display: flex;
  align-items: stretch;
  width: 100%;
  background: #fff;
  border: 1px solid rgba(178,122,16,.48);
  border-radius: 7px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(6,26,53,.05);
}
.sos-header-search input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 9px 11px;
  color: var(--sos-ink);
  background: #fff;
  border: 0;
  border-radius: 0;
  font: inherit;
  font-size: .9rem;
  line-height: 1.25;
  outline: 0;
}
.sos-header-search input[type="search"]::placeholder {
  color: #667381;
  opacity: 1;
}
.sos-header-search button {
  flex: 0 0 42px;
  width: 42px;
  padding: 0;
  color: #fff;
  background: #168fe1;
  border: 0;
  border-left: 1px solid rgba(6,26,53,.2);
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
}
.sos-header-search button:hover,
.sos-header-search button:focus-visible {
  color: #fff;
  background: #0b69a8;
  outline: none;
}
.sos-header-search-control:focus-within {
  outline: 2px solid rgba(36,168,255,.42);
  outline-offset: 2px;
}

.sos-search-form {
  display: flex;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  margin: 0;
}
.sos-search-label {
  flex: 1 1 auto;
  min-width: 0;
}
.sos-search-field {
  display: block;
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 9px 12px;
  color: var(--sos-ink);
  background: #fff;
  border: 1px solid rgba(6,26,53,.3);
  border-radius: 6px;
  font: inherit;
}
.sos-search-field:focus {
  border-color: #168fe1;
  outline: 2px solid rgba(36,168,255,.24);
  outline-offset: 1px;
}
.sos-search-submit {
  flex: 0 0 auto;
  min-height: 44px;
  padding: 9px 15px;
  color: #fff;
  background: var(--sos-navy);
  border: 1px solid var(--sos-navy);
  border-radius: 6px;
  font: inherit;
  font-weight: 750;
  cursor: pointer;
}
.sos-search-submit:hover,
.sos-search-submit:focus-visible {
  background: #0b69a8;
  border-color: #0b69a8;
  outline: none;
}

.sos-search-results-header { margin-bottom: 30px; }
.sos-search-results-header .page-title { margin-bottom: 24px; }
.sos-search-results-header .sos-search-form,
.sos-search-empty .sos-search-form { max-width: 620px; }
.sos-search-summary,
.sos-search-correction,
.sos-search-corrected-note { margin: 12px 0; }
.sos-search-correction { font-weight: 700; }
.sos-search-results-list {
  display: grid;
  gap: 20px;
  margin-top: 30px;
}
.sos-search-result-card {
  padding: 24px 26px;
  background: #fff;
  border: 1px solid rgba(6,26,53,.12);
  border-radius: 10px;
  box-shadow: 0 7px 22px rgba(6,26,53,.06);
}
.sos-search-result-card .entry-title {
  margin: 3px 0 10px;
  font-size: clamp(1.45rem, 2.5vw, 2rem);
}
.sos-search-result-type {
  margin: 0;
  color: var(--sos-gold);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.sos-search-result-excerpt { margin: 0; max-width: 68ch; }
.sos-search-empty {
  margin-top: 32px;
  padding: 28px;
  background: #fff;
  border: 1px solid rgba(6,26,53,.12);
  border-radius: 10px;
}





/* -------------------------------------------------------------------------
 * Park Worlds-style footer structure — 1.0.5
 * ---------------------------------------------------------------------- */
.site-footer {
  color: #dce5ef;
  background: var(--sos-navy-deep);
  border-top: 4px solid var(--sos-gold);
}
.footer-inner {
  width: 100%;
  margin: 0;
  padding: 40px 0 28px;
  text-align: left;
  font-size: .9rem;
}
.sos-footer-top {
  width: calc(100% - (2 * var(--sos-header-edge)));
  margin: 0 auto;
  display: grid;
  /* Same left/right outer edge as the desktop header. */
  grid-template-columns: 1fr auto 1fr;
  gap: 0;
  align-items: center;
}
.sos-footer-main {
  grid-column: 1;
  justify-self: start;
  width: auto;
  min-width: 0;
  margin: 0;
}
.footer-brand {
  margin: 0 0 16px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  font-weight: 800;
}
.footer-navigation ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.footer-navigation a {
  color: var(--sos-gold-light);
  font-size: 1.05rem;
  text-decoration: none;
}
.footer-navigation a:hover,
.footer-navigation a:focus-visible { color: #fff; }
.sos-footer-dashboard {
  grid-column: 2;
  justify-self: center;
  text-align: center;
}
.sos-footer-dashboard-link {
  display: inline-block;
  padding: 9px 15px;
  color: #fff;
  border: 1px solid rgba(242,210,125,.68);
  border-radius: 999px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-decoration: none;
}
.sos-footer-dashboard-link:hover,
.sos-footer-dashboard-link:focus-visible {
  color: var(--sos-gold-light);
  border-color: var(--sos-gold-light);
}
.sos-footer-balance { grid-column: 3; }
.site-info {
  width: min(var(--sos-content), calc(100% - 40px));
  margin: 30px auto 0;
  padding-top: 18px;
  color: rgba(255,255,255,.66);
  border-top: 1px solid rgba(242,210,125,.22);
  text-align: center;
  font-size: .84rem;
}
@media (max-width: 820px) {
  .footer-inner { width: calc(100% - 40px); margin: 0 auto; }
  .sos-footer-top { width: 100%; margin: 0; grid-template-columns: 1fr; gap: 22px; }
  .sos-footer-main,
  .sos-footer-dashboard,
  .sos-footer-balance {
    grid-column: 1;
    justify-self: start;
    width: auto;
    min-width: 0;
    margin-right: 0;
  }
  .sos-footer-dashboard { text-align: left; }
  .sos-footer-balance { display: none; }
  .footer-navigation ul { display: block; }
  .footer-navigation li + li { margin-top: 7px; }
  .site-info { width: 100%; }
}


/* Catalogs hub and Signature Brand catalog-history pages — 1.0.12 */
.sos-catalogs-directory-list,
.sos-catalog-history-list {
  margin: 0;
  padding-left: 1.25rem;
}
.sos-catalogs-directory-list li,
.sos-catalog-history-list > li {
  margin: 0 0 12px;
}
.sos-catalogs-directory-list a,
.sos-catalog-history-title a {
  color: var(--sos-navy);
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.sos-catalog-history-title {
  margin: 0;
}
.sos-catalog-record-id {
  margin-left: .4em;
  color: #667381;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: .78em;
  font-weight: 600;
}
.sos-catalog-history-meta {
  margin: 4px 0 0;
  color: #667381;
  font-size: .9rem;
}


/* Contact page — private Dashboard message intake. */
.sos-contact-page .entry-content{max-width:720px}
.sos-contact-intro{margin-bottom:.35rem;font-size:1.08rem}
.sos-contact-email{margin-top:0;color:#667381}
.sos-contact-form{display:grid;gap:18px;margin-top:28px;padding:28px;background:#fff;border:1px solid rgba(6,26,53,.13);border-radius:12px;box-shadow:0 9px 26px rgba(6,26,53,.06)}
.sos-contact-field label{display:block;margin-bottom:6px;color:var(--sos-navy);font-size:.86rem;font-weight:800}
.sos-contact-field input,.sos-contact-field textarea{display:block;width:100%;padding:11px 12px;border:1px solid #b9c3cf;border-radius:7px;background:#fff;color:var(--sos-ink);font:inherit}
.sos-contact-field textarea{resize:vertical;min-height:180px}
.sos-contact-field input:focus,.sos-contact-field textarea:focus{outline:3px solid rgba(36,168,255,.22);border-color:var(--sos-blue)}
.sos-contact-submit{justify-self:start;min-height:42px;padding:9px 16px;border:1px solid var(--sos-navy);border-radius:7px;background:var(--sos-navy);color:#fff;font:inherit;font-weight:800;cursor:pointer}
.sos-contact-submit:hover,.sos-contact-submit:focus-visible{background:#0b69a8;border-color:#0b69a8;outline:none}
.sos-contact-privacy{margin:0;color:#667381;font-size:.82rem}
.sos-contact-notice{margin:20px 0;padding:12px 14px;border-left:4px solid var(--sos-blue);background:#eef8ff;color:var(--sos-navy);font-weight:700}
.sos-contact-notice--error{border-left-color:#a32727;background:#fff1f1;color:#7f1d1d}
.sos-contact-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.sos-contact-confirm[hidden]{display:none!important}
.sos-contact-confirm{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:20px}
.sos-contact-confirm__backdrop{position:absolute;inset:0;background:rgba(2,11,24,.76)}
.sos-contact-confirm__dialog{position:relative;z-index:1;width:min(560px,100%);padding:26px;border:2px solid var(--sos-gold);border-radius:12px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.sos-contact-confirm__dialog h2{margin:0 0 12px;color:var(--sos-navy);font-family:Georgia,"Times New Roman",serif;line-height:1.2}
.sos-contact-confirm__dialog p{margin:0 0 20px}
.sos-contact-confirm__actions{display:flex;flex-wrap:wrap;gap:10px}
.sos-contact-confirm__primary,.sos-contact-confirm__secondary{padding:9px 14px;border-radius:7px;font:inherit;font-weight:800;cursor:pointer}
.sos-contact-confirm__primary{color:#fff;background:var(--sos-navy);border:2px solid var(--sos-navy)}
.sos-contact-confirm__secondary{color:var(--sos-navy);background:#fff;border:2px solid var(--sos-navy)}
body.sos-contact-confirm-open{overflow:hidden}


/* --------------------------------------------------------------
   Kinds Of Stores research lightboxes + footnotes — 1.0.21
-------------------------------------------------------------- */
.sos-more-information-kicker-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 7px;
}
.sos-more-information-kicker-row .sos-section-kicker { margin: 0; }
.sos-more-information-open {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: transparent;
  color: var(--sos-gold);
  font: inherit;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
}
.sos-more-information-open:hover,
.sos-more-information-open:focus-visible {
  color: var(--sos-navy);
  outline: 2px solid rgba(18, 95, 170, .35);
  outline-offset: 2px;
}
.sos-more-information-summary > p { margin: 0; }
.sos-footnote-marker { font-size: .72em; line-height: 0; vertical-align: super; }
.sos-footnote-marker a { font-weight: 800; text-decoration: none; }
.sos-footnote-marker a:hover,
.sos-footnote-marker a:focus-visible { text-decoration: underline; }
.sos-footnotes-list {
  margin: 18px 0 0 1.3em;
  padding: 0;
}
.sos-footnotes-list li {
  margin: 0 0 14px;
  padding-left: 5px;
  scroll-margin-top: 110px;
}
.sos-footnotes-list a { overflow-wrap: anywhere; }
.sos-footnote-date { color: #667381; }
.sos-more-information-lightbox[hidden] { display: none !important; }
.sos-more-information-lightbox {
  position: fixed;
  z-index: 100000;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 42px);
}
.sos-more-information-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 16, 33, .86);
}
.sos-more-information-dialog {
  position: relative;
  z-index: 1;
  width: min(860px, 100%);
  max-height: min(85vh, 900px);
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .34);
  overflow: hidden;
}
.sos-more-information-scroll {
  max-height: min(85vh, 900px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: clamp(24px, 5vw, 52px);
}
.sos-more-information-close {
  position: absolute;
  z-index: 2;
  top: 10px;
  right: 12px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: var(--sos-navy);
  font: inherit;
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
}
.sos-more-information-close:hover,
.sos-more-information-close:focus-visible { background: #eef3f8; outline: 2px solid rgba(18, 95, 170, .4); }
.sos-more-information-dialog h2 {
  margin: 0 42px 18px 0;
  color: var(--sos-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.65rem, 4vw, 2.45rem);
  line-height: 1.15;
}
.sos-more-information-expanded-body p { margin: 0 0 1.15em; }
.sos-more-information-modal-footnotes {
  margin-top: 34px;
  padding-top: 24px;
  border-top: 1px solid rgba(6, 26, 53, .15);
}
.sos-more-information-modal-footnotes h3 {
  margin: 0;
  color: var(--sos-navy);
  font-size: 1.2rem;
}
body.sos-more-information-opened { overflow: hidden; }
@media (max-width: 640px) {
  .sos-more-information-lightbox { padding: 10px; }
  .sos-more-information-dialog,
  .sos-more-information-scroll { max-height: 90vh; }
  .sos-more-information-scroll { padding: 24px 18px 28px; }
}


/* -------------------------------------------------------------
   Stores hub + heading typography — 1.0.26
-------------------------------------------------------------- */

/* Tauri 400 is provided by the site's WordPress Font Library.
   Keep font files out of the theme package and use the installed family. */
h1, h2, h3, h4, h5, h6 {
  font-family: "Tauri", Arial, Helvetica, sans-serif !important;
  font-weight: 400 !important;
}

.sos-stores-directory {
  margin-top: 10px;
}
.sos-signature-brand-collection-list {
  margin: 0;
  padding-left: 1.2rem;
}
.sos-signature-brand-collection-list li {
  margin: 0 0 7px;
}
.sos-signature-brand-collection > .sos-store-directory-entry {
  margin-top: 24px;
}
.sos-stores-group-title {
  margin: 6px 0 34px;
  color: var(--sos-navy);
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  line-height: 1.15;
}
.sos-stores-group-title--more {
  margin-top: 12px;
}
.sos-store-directory-entry {
  margin-bottom: 30px;
  padding-bottom: 26px;
}
.sos-store-directory-entry > h2 {
  margin-bottom: 0;
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  line-height: 1.2;
}
.sos-store-directory-entry > h2 a {
  color: var(--sos-navy);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.sos-store-directory-entry > h2 a:hover,
.sos-store-directory-entry > h2 a:focus-visible {
  color: #0b69a8;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* -------------------------------------------------------------
   Page-title spacing + Stores hierarchy refinement — 1.0.29
-------------------------------------------------------------- */

/* Public page titles use a little more breathing room before the
   first content section. Individual Stores-directory links stay
   subordinate to group headings and are visibly underlined. */

/* -------------------------------------------------------------
   Russo One page-title + footer identity typography — 1.0.28
-------------------------------------------------------------- */

/* Russo One is referenced by family name so WordPress can use the
   installed Font Library face; no font files are bundled here. */
.page-title,
.blog-title {
  font-family: "Russo One", "Tauri", Arial, Helvetica, sans-serif !important;
  font-weight: 400 !important;
}
.footer-brand,
.sos-footer-dashboard-link {
  font-family: "Russo One", "Tauri", Arial, Helvetica, sans-serif;
  font-weight: 400;
}
/* -------------------------------------------------------------
   Stores group-heading spacing correction — 1.0.31
-------------------------------------------------------------- */

/* Vertical margins between a group heading and the following section can
   collapse. Put the extra breathing room on the first directory entry as
   padding so Traditional Stores and More Kinds Of Stores always show it. */
.sos-stores-group-title + .sos-store-directory-entry {
  padding-top: 14px;
}



/* -------------------------------------------------------------
   Gallery controls + structured uplink typography/spacing — 1.0.32
-------------------------------------------------------------- */

/* Tauri is already supplied by the site's WordPress Font Library. */
.pw-art-gallery-size-control {
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-weight: 400;
}

/* Match structured uplinks to the Bungee eyebrow language. */
.sos-structured-uplink a {
  font-family: "Bungee", Arial, Helvetica, sans-serif;
  font-size: .76rem;
  font-weight: 400;
  letter-spacing: .14em;
  line-height: 1.25;
}

/* Structured pages keep the normal 32px uplink-to-content gap, but the
   uplink itself sits closer to the page title. */
article:has(.sos-structured-uplink) > .page-title {
  margin-bottom: 14px;
}


/* -------------------------------------------------------------
   Main navigation + lightbox fullscreen typography — 1.0.33
-------------------------------------------------------------- */

/* Tauri is supplied through the site's WordPress Font Library.
   Main navigation remains uppercase via the existing text-transform rule. */
.primary-navigation a {
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-weight: 400;
}
.pw-art-lightbox-fullscreen {
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-weight: 400;
}


/* -------------------------------------------------------------
   Stores hub collection card + section-only dividers — 1.0.35
-------------------------------------------------------------- */

/* Brand collections are visually grouped as cards. The standard section
   border remains outside the card, so it serves as the divider between
   collections and before Traditional Stores. */
.sos-stores-directory .sos-signature-brand-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, 260px);
  gap: clamp(24px, 4vw, 42px);
  align-items: center;
  padding: clamp(22px, 3vw, 30px);
  border: 1px solid rgba(6,26,53,.14);
  border-radius: 18px;
  background: rgba(255,255,255,.55);
}
.sos-stores-directory .sos-signature-brand-card__content {
  min-width: 0;
}
.sos-stores-directory .sos-signature-brand-card__content > h2 {
  margin: 0 0 15px;
  color: var(--sos-navy);
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  line-height: 1.15;
}
.sos-stores-directory .sos-signature-brand-card__logo {
  display: flex;
  align-items: center;
  justify-content: center;
}
.sos-stores-directory .sos-signature-brand-card__logo img {
  display: block;
  width: 100%;
  max-width: 260px;
  height: auto;
  border-radius: 10px;
}

/* Individual Kind Of Store rows no longer carry standard-section divider
   lines. Spacing and link hierarchy remain unchanged. */
.sos-stores-directory .sos-store-directory-entry {
  border-bottom: 0;
}

/* The divider before Traditional Stores comes from the final Signature Brand
   Collection section. More Kinds Of Stores gets its own section divider. */
.sos-stores-directory .sos-stores-group-title--more {
  margin-top: 4px;
  padding-top: 44px;
  border-top: 1px solid rgba(6,26,53,.13);
}

@media (max-width: 720px) {
  .sos-stores-directory .sos-signature-brand-card {
    grid-template-columns: 1fr;
  }
  .sos-stores-directory .sos-signature-brand-card__logo {
    justify-content: flex-start;
  }
  .sos-stores-directory .sos-signature-brand-card__logo img {
    max-width: 320px;
  }
}


/* -------------------------------------------------------------
   Stores hub unified vertical rhythm — 1.0.36
-------------------------------------------------------------- */

/* Match the Atlas Of Paradise subheading-to-first-store spacing to the
   existing Traditional Stores / More Kinds Of Stores visual gap. Their
   34px heading margin + 14px first-entry padding produces 48px, so Atlas
   uses the same explicit 48px gap. */
.sos-stores-directory .sos-signature-brand-card__content > h2 {
  margin-bottom: 48px;
}

/* Individual Kind Of Store entries use one shared, tighter rhythm in every
   Stores-hub section. Remove the old 26px bottom padding + 30px margin
   combination and replace it with a single 18px inter-entry gap. */
.sos-stores-directory .sos-store-directory-entry {
  margin-bottom: 18px;
  padding-bottom: 0;
}


/* -------------------------------------------------------------
   Revolution Acres collection + collection-card separation — 1.0.37
-------------------------------------------------------------- */

/* Signature Brand Collections are separate white rounded cards. The small
   gap between cards is the separator; there is deliberately no divider line
   between brand collections. */
.sos-stores-directory .sos-signature-brand-collection {
  margin-bottom: 14px;
  padding-bottom: 0;
  border-bottom: 0;
}

/* The major-section divider belongs before Traditional Stores, after the last
   brand card. More Kinds Of Stores keeps its existing section divider. */
.sos-stores-directory .sos-signature-brand-collection + .sos-stores-group-title,
.sos-stores-directory .sos-signature-brand-collection--revolution-acres + .sos-stores-group-title {
  margin-top: 28px;
  padding-top: 44px;
  border-top: 1px solid rgba(6,26,53,.13);
}

/* Both collection cards use exactly the same logo geometry and vertical
   rhythm, including the shared 48px subheading-to-first-store gap and 18px
   linked-store spacing established in 1.0.36. */
.sos-stores-directory .sos-signature-brand-collection--revolution-acres .sos-signature-brand-card__logo img {
  width: 100%;
  max-width: 260px;
  height: auto;
}


/* -------------------------------------------------------------
   Flying Car Stores original-concept card — 1.0.38
-------------------------------------------------------------- */

/* Reuse the exact collection-card geometry, but the linked store name is the
   card title itself rather than a second KIND OF STORE row. */
.sos-stores-directory .sos-original-concept-feature__title {
  margin-bottom: 0;
}
.sos-stores-directory .sos-original-concept-feature__title a {
  color: var(--sos-navy);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.sos-stores-directory .sos-original-concept-feature__title a:hover,
.sos-stores-directory .sos-original-concept-feature__title a:focus-visible {
  color: #0b69a8;
}
.sos-stores-directory .sos-original-concept-feature--flying-car-stores .sos-signature-brand-card__logo img {
  width: 100%;
  max-width: 260px;
  height: auto;
}


/* -------------------------------------------------------------
   More original store concepts card — 1.0.39
-------------------------------------------------------------- */

/* The fourth featured Stores card uses the same rounded white rectangle as
   the cards above it, but it has no logo column because both concepts are
   intentionally coming soon. */
.sos-stores-directory .sos-more-original-store-concepts .sos-signature-brand-card {
  grid-template-columns: 1fr;
}
.sos-stores-directory .sos-more-original-store-concepts__title {
  margin: 0 0 16px;
  font-size: clamp(.82rem, 2.4vw, 1.8rem);
  line-height: 1.2;
  white-space: nowrap;
}
.sos-stores-directory .sos-more-original-store-concepts__status {
  margin: 0;
}

@media (max-width: 420px) {
  .sos-stores-directory .sos-more-original-store-concepts__title {
    font-size: clamp(.72rem, 3vw, .9rem);
  }
}


/* -------------------------------------------------------------
   Featured Stores anchors + original-concepts spacing — 1.0.40
-------------------------------------------------------------- */

/* Anchor links from About should land with the complete featured card below
   the sticky site header rather than underneath it. The desktop values match
   the 108px header plus breathing room, with the WordPress admin bar added
   when present. */
#atlas-of-paradise-collection,
#revolution-acres-collection,
#flying-car-stores-concept {
  scroll-margin-top: 126px;
}
body.admin-bar #atlas-of-paradise-collection,
body.admin-bar #revolution-acres-collection,
body.admin-bar #flying-car-stores-concept {
  scroll-margin-top: 158px;
}

/* The original-concepts title stays comfortably on one desktop line. The
   current 7px kicker-to-heading gap is mirrored exactly below the heading so
   MORE ORIGINAL STORE CONCEPTS and COMING SOON are symmetrical around it. */
.sos-stores-directory .sos-more-original-store-concepts__title {
  margin: 0 0 7px;
  font-size: clamp(1rem, 2vw, 1.45rem);
}
.sos-stores-directory .sos-more-original-store-concepts__status {
  margin: 0;
}

@media (max-width: 820px) {
  #atlas-of-paradise-collection,
  #revolution-acres-collection,
  #flying-car-stores-concept {
    scroll-margin-top: 240px;
  }
  body.admin-bar #atlas-of-paradise-collection,
  body.admin-bar #revolution-acres-collection,
  body.admin-bar #flying-car-stores-concept {
    scroll-margin-top: 286px;
  }
}

/* The card-heading rule used by branded collection cards is intentionally
   more specific than the generic title class, so override it explicitly for
   this coming-soon card. */
.sos-stores-directory .sos-signature-brand-card__content > h2.sos-more-original-store-concepts__title {
  margin: 0 0 7px;
  font-size: clamp(1rem, 2vw, 1.45rem);
  line-height: 1.2;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .sos-stores-directory .sos-signature-brand-card__content > h2.sos-more-original-store-concepts__title {
    font-size: clamp(.9rem, 4vw, 1.2rem);
    white-space: normal;
  }
}


/* -------------------------------------------------------------
   Dreams Take Flight post section presentation — 1.0.43
-------------------------------------------------------------- */
.single-post .entry-content .sos-post-section-divider {
  width: 100%;
  margin: 38px 0 28px;
  border: 0;
  border-top: 1px solid rgba(6, 26, 53, .16);
}
.single-post .entry-content .sos-post-ideas-heading {
  margin: 0 0 18px;
  color: var(--sos-navy);
  font-size: clamp(1.15rem, 2.35vw, 1.8rem);
  line-height: 1.2;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .single-post .entry-content .sos-post-ideas-heading {
    font-size: clamp(1.05rem, 5vw, 1.45rem);
    white-space: normal;
  }
}

/* -------------------------------------------------------------
   Links + temporary Sitemap presentation — 1.0.44
-------------------------------------------------------------- */
.sos-links-page {
  width: 100%;
}
.sos-links-section {
  margin: 0 0 42px;
  padding: 0 0 38px;
  border-bottom: 1px solid rgba(6, 26, 53, .13);
}
.sos-links-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.sos-links-section > h2 {
  margin: 0 0 7px;
  color: var(--sos-navy);
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  font-weight: 400;
  line-height: 1.15;
}
.sos-links-credit {
  margin: 0 0 18px;
}
.sos-links-list {
  margin: 0;
  padding-left: 1.25em;
}
.sos-links-list li + li {
  margin-top: 8px;
}
.sos-links-list a,
.sos-links-music-link a {
  font-weight: 700;
}
.sos-links-music-link {
  margin: 0;
}
.sos-sitemap-coming-soon {
  margin: 0;
  color: var(--sos-gold);
  font-family: "Bungee", Arial, Helvetica, sans-serif;
  font-size: clamp(2.2rem, 5vw, 4rem);
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.08;
}



/* -------------------------------------------------------------
   Waterpark Attraction Stores original-concept card — 1.0.45
-------------------------------------------------------------- */

/* This featured card belongs after the complete More Kinds Of Stores area.
   Jesse supplied a dedicated 350px-wide DEER CREEK preview for this slot. */
.sos-stores-directory .sos-original-concept-feature--waterpark-attraction-stores {
  margin-top: 38px;
  padding-top: 44px;
  border-top: 1px solid rgba(6,26,53,.13);
}
.sos-stores-directory .sos-original-concept-feature--waterpark-attraction-stores .sos-signature-brand-card {
  grid-template-columns: minmax(0, 1fr) minmax(250px, 350px);
}
.sos-stores-directory .sos-original-concept-feature--waterpark-attraction-stores .sos-signature-brand-card__logo img {
  width: 100%;
  max-width: 350px;
  height: auto;
}
@media (max-width: 720px) {
  .sos-stores-directory .sos-original-concept-feature--waterpark-attraction-stores .sos-signature-brand-card {
    grid-template-columns: 1fr;
  }
  .sos-stores-directory .sos-original-concept-feature--waterpark-attraction-stores .sos-signature-brand-card__logo img {
    max-width: min(350px, 100%);
  }
}


/* -------------------------------------------------------------
   Launchpad architecture — 1.0.46
-------------------------------------------------------------- */
.sos-launchpad-uplinks {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .65rem;
  align-items: center;
}
.sos-launchpad-page--b .sos-launchpad-about {
  margin-bottom: 20px;
  padding-bottom: 20px;
}
.sos-launchpad-expandables {
  display: grid;
  gap: 12px;
  margin: 0 0 42px;
}
.sos-launchpad-expandable {
  border: 1px solid rgba(6,26,53,.13);
  border-radius: 10px;
  background: #fff;
  overflow: clip;
}
.sos-launchpad-expandable > summary {
  cursor: pointer;
  list-style: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 12px;
  padding: 17px 18px;
}
.sos-launchpad-expandable > summary::-webkit-details-marker { display: none; }
.sos-launchpad-expandable > summary::after {
  content: "+";
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
  color: var(--sos-gold);
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-size: 1.45rem;
  line-height: 1;
}
.sos-launchpad-expandable[open] > summary::after { content: "−"; }
.sos-launchpad-expandable > summary .sos-section-kicker {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
}
.sos-launchpad-expandable-title {
  grid-column: 1;
  grid-row: 2;
  color: var(--sos-navy);
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-size: clamp(1.3rem, 2.5vw, 1.8rem);
  font-weight: 400;
  line-height: 1.15;
}
.sos-launchpad-expandable-body {
  padding: 0 18px 20px;
}
.sos-launchpad-expandable-body > :first-child { margin-top: 0; }
.sos-launchpad-expandable-body > :last-child { margin-bottom: 0; }
.sos-launchpad-gallery-details .pw-core-art-gallery-grid { margin-top: 0; }
.sos-launchpad-body-art {
  width: 100%;
  margin: 0 auto 46px;
  text-align: center;
}
.sos-launchpad-body-art a {
  display: inline-block;
  max-width: 100%;
}
.sos-launchpad-body-art img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 72vh;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
}
@supports (height: 1svh) {
  .sos-launchpad-body-art img { max-height: 72svh; }
}
.sos-launchpad-section > h2 a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.sos-launchpad-coming-soon {
  margin: 0;
  color: var(--sos-gold);
  font-family: "Bungee", Arial, Helvetica, sans-serif;
  font-size: clamp(2.2rem, 5vw, 4rem);
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.08;
}
@media (max-width: 640px) {
  .sos-launchpad-expandable > summary { padding: 15px 16px; }
  .sos-launchpad-expandable-body { padding: 0 16px 18px; }
  .sos-launchpad-body-art img { max-height: 68svh; }
}


/* -------------------------------------------------------------
   Current participation links — 1.0.47
-------------------------------------------------------------- */
.sos-current-feature-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 0 0 36px;
}
.sos-current-feature-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 62px;
  padding: 14px 18px;
  border: 1px solid rgba(6,26,53,.14);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(6,26,53,.06);
  color: var(--sos-navy);
  font-family: "Tauri", Arial, Helvetica, sans-serif;
  font-size: clamp(.95rem, 1.7vw, 1.18rem);
  font-weight: 400;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: border-color .16s ease, box-shadow .16s ease, color .16s ease;
}
.sos-current-feature-link:hover,
.sos-current-feature-link:focus-visible {
  border-color: var(--sos-blue);
  box-shadow: 0 0 0 2px rgba(36,168,255,.12), 0 8px 24px rgba(6,26,53,.08);
  color: #0b69a8;
  outline: none;
}


/* -------------------------------------------------------------
   Launchpads hub hero — 1.0.48
-------------------------------------------------------------- */
.sos-launchpads-hero {
  position: relative;
  width: 100%;
  margin: 0 auto;
}
.sos-launchpads-stack {
  display: grid;
  gap: 18px;
  width: 100%;
}
.sos-launchpads-hero > img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 85vh;
  object-fit: contain;
}
@supports (height: 1svh) {
  .sos-launchpads-hero > img { max-height: 85svh; }
}
.sos-launchpads-hero-link {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 33.333333%;
  display: block;
  text-decoration: none;
  outline-offset: -4px;
}
.sos-launchpads-hero-link--a { left: 0; }
.sos-launchpads-hero-link--b { left: 33.333333%; }
.sos-launchpads-hero-link--c { left: 66.666666%; }
.sos-launchpads-hero-link--d { left: 0; }
.sos-launchpads-hero-link--e { left: 33.333333%; }
.sos-launchpads-hero-link--f { left: 66.666666%; }
.sos-launchpads-hero-link--g { left: 0; width: 100%; }
.sos-launchpads-hero-link:focus-visible {
  outline: 3px solid #fff;
  box-shadow: inset 0 0 0 6px var(--sos-blue);
}

/* -------------------------------------------------------------
   Launchpad hub-first uplink navigation — 1.0.50
-------------------------------------------------------------- */
.sos-launchpad-uplinks {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .55rem 1rem;
}
.sos-launchpad-uplinks .sos-launchpad-hub-link,
.sos-launchpad-uplinks .sos-launchpad-letter-link {
  flex: 0 0 auto;
  white-space: nowrap;
}
.sos-launchpad-uplinks .sos-launchpad-letter-link {
  display: inline-block;
  padding: 0 2ch 2px;
  border-bottom: 1px solid currentColor;
  text-decoration: none;
}
.sos-launchpad-uplinks .sos-launchpad-letter-link:hover,
.sos-launchpad-uplinks .sos-launchpad-letter-link:focus-visible {
  text-decoration: none;
  border-bottom-color: currentColor;
}



/* -------------------------------------------------------------
   Classes / Upcoming Events feature artwork — 1.0.53
-------------------------------------------------------------- */
.sos-page-feature-art {
  margin: 28px 0 0;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}
.sos-page-feature-art-link {
  display: block;
  width: fit-content;
  max-width: calc(100% - clamp(18px, 4vw, 42px));
  margin-left: clamp(18px, 4vw, 42px);
  margin-right: auto;
  line-height: 0;
}
.sos-page-feature-art-link img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 85svh;
  object-fit: contain;
}
@supports not (height: 1svh) {
  .sos-page-feature-art-link img { max-height: 85vh; }
}
@media (max-width: 560px) {
  .sos-page-feature-art-link {
    max-width: calc(100% - 16px);
    margin-left: 16px;
  }
}

/* -------------------------------------------------------------
   Anaheim Dreams initial site — 1.0.0
-------------------------------------------------------------- */
.home-art-stack {
  padding-bottom: 18px;
}
.home-artwork--primary {
  width: 94%;
  max-width: 1460px;
}
.home-artwork--primary img {
  max-height: var(--sos-home-hero-max-height, 85vh);
}
@supports (height: 1svh) {
  .home-artwork--primary img { max-height: var(--sos-home-hero-max-height, 85svh); }
}
