/* トップ：右下追従バナー（banner2.png）— main-style の後に読み込み */

.p-top-banner-follow {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 997;
  width: min(180px, 21.6vw);
  padding-right: max(8px, env(safe-area-inset-right, 0px));
  padding-bottom: max(12px, env(safe-area-inset-bottom, 0px));
  pointer-events: none;
}

.p-top-banner-follow__link {
  display: block;
  overflow: hidden;
  border-radius: 10px 0 0 0;
  pointer-events: auto;
  transition: opacity 0.3s ease;
}

.p-top-banner-follow__image {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: min(45vh, 320px);
  object-fit: contain;
  object-position: right bottom;
  border-radius: 10px 0 0 0;
}

@media (hover: hover) and (pointer: fine) {
  .p-top-banner-follow__link:hover,
  .p-top-banner-follow__link:focus {
    opacity: 0.85;
  }
}

.p-top-banner-follow__link:focus-visible {
  opacity: 0.85;
}

/* スマホ・タブレット縦（768px未満） */
@media (width < 768px) {
  .p-top-banner-follow {
    width: min(180px, 46vw);
    min-width: 168px;
    padding-right: max(6px, env(safe-area-inset-right, 0px));
    padding-bottom: max(8px, env(safe-area-inset-bottom, 0px));
  }

  .p-top-banner-follow__image {
    max-height: none;
    width: 100%;
    height: auto;
  }
}
