/* Shared public desktop side-banner layout.
 * Loaded after styles.css so older cached banner rules cannot fix every item
 * to the same viewport position. */
.site-side-banner-region {
  position: relative;
  z-index: 18;
  pointer-events: none;
}

.site-side-banner-column {
  position: fixed;
  top: 178px;
  display: none;
  flex-direction: column;
  gap: 12px;
  width: 160px;
  pointer-events: none;
}

.site-side-banner {
  position: relative;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  display: block;
  width: 160px;
  overflow: hidden;
  border: 1px solid var(--home-card-line, #d7e1ee);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 16px 38px var(--home-card-shadow, rgba(23, 47, 84, 0.12));
  pointer-events: auto;
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

a.site-side-banner:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 44px var(--home-card-shadow, rgba(23, 47, 84, 0.16));
}

a.site-side-banner:focus-visible {
  outline: 3px solid var(--home-accent, #1b64d8);
  outline-offset: 3px;
}

.site-side-banner-column-left {
  left: calc(50vw - 768px);
}

.site-side-banner-column-right {
  right: calc(50vw - 768px);
}

.site-side-banner img {
  display: block;
  width: 100%;
  height: auto;
  max-height: calc(100vh - 214px);
  object-fit: contain;
}

.site-side-banner-column[data-banner-count="2"] .site-side-banner img {
  height: calc((100vh - 226px) / 2);
  max-height: 240px;
  object-fit: cover;
}

@media (min-width: 1600px) {
  .site-side-banner-column {
    display: flex;
  }
}
