:root {
  --adev-v4-bg: #0B0B0D;
  --adev-v4-surface: #131318;
  --adev-v4-surface-2: #19191F;
  --adev-v4-surface-3: #202027;
  --adev-v4-line: #2A2A33;
  --adev-v4-ink: #F2F2F4;
  --adev-v4-muted: #A8A8B3;
  --adev-v4-brand: #8F5CFF;
  --adev-v4-candidate: #3E7BFA;
  --adev-v4-wait: #D99A2B;
  --adev-v4-rise: #E77473;
  --adev-v4-sale: #35C978;
  --adev-v4-focus: #AFC8FF;
  --adev-v4-radius: 16px;
  --adev-v4-shadow: 0 12px 34px rgba(0,0,0,.26);
}

body.adev-public-upcoming-page {
  background: var(--adev-v4-bg);
  color: var(--adev-v4-ink);
}

.adev-public-upcoming-page *,
.adev-public-upcoming-page *::before,
.adev-public-upcoming-page *::after {
  box-sizing: border-box;
}

.adev-public-upcoming-page a,
.adev-public-upcoming-page button,
.adev-public-upcoming-page input,
.adev-public-upcoming-page select {
  outline-offset: 3px;
}

.adev-public-upcoming-page a:focus-visible,
.adev-public-upcoming-page button:focus-visible,
.adev-public-upcoming-page input:focus-visible,
.adev-public-upcoming-page select:focus-visible {
  outline: 3px solid var(--adev-v4-focus);
}

.adev-public-upcoming-banner-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 20px 20px 0;
  box-sizing: border-box;
}

.adev-public-upcoming-banner-wrap .adev-fanza-program-banner {
  margin: 0;
  padding: 12px;
  border: 1px solid var(--adev-v4-line);
  border-radius: 12px;
  background: var(--adev-v4-surface);
  color: var(--adev-v4-ink);
}

.adev-public-upcoming-banner-wrap .adev-fanza-program-banner__disclosure {
  margin: 0 0 8px;
  color: var(--adev-v4-muted);
  font-size: 12px;
}

.adev-public-upcoming {
  max-width: 1240px;
  margin: 0 auto;
  padding: 30px 20px 96px;
  color: var(--adev-v4-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.55;
}

.adev-public-upcoming__skip {
  position: absolute;
  left: -9999px;
}

.adev-public-upcoming__skip:focus {
  left: 12px;
  top: 12px;
  z-index: 999;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--adev-v4-surface-3);
  color: var(--adev-v4-ink);
}

.adev-public-upcoming__header {
  margin: 0 0 24px;
  padding: 22px 0 8px;
}

.adev-public-upcoming__eyebrow {
  margin-bottom: 6px;
  color: #BDA7FF;
  font-size: 13px;
  font-weight: 800;
}

.adev-public-upcoming__header h1 {
  margin: 0;
  color: var(--adev-v4-ink);
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.2;
  letter-spacing: -.04em;
}

.adev-public-upcoming__lead {
  max-width: 780px;
  margin: 12px 0 0;
  color: var(--adev-v4-muted);
  font-size: 15px;
}

.adev-public-upcoming__disclosure {
  max-width: 880px;
  margin: 12px 0 0;
  color: var(--adev-v4-muted);
  font-size: 12px;
}

.adev-public-upcoming__disclosure strong {
  color: var(--adev-v4-ink);
}

.adev-public-upcoming__filters {
  margin: 0 0 18px;
  padding: 18px;
  border: 1px solid var(--adev-v4-line);
  border-radius: var(--adev-v4-radius);
  background: var(--adev-v4-surface);
  box-shadow: var(--adev-v4-shadow);
}

.adev-public-upcoming__filter-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}

.adev-public-upcoming__filter-head h2 {
  margin: 0;
  color: var(--adev-v4-ink);
  font-size: 21px;
  letter-spacing: -.03em;
}

.adev-public-upcoming__filter-head p {
  margin: 4px 0 0;
  color: var(--adev-v4-muted);
  font-size: 12px;
}

.adev-public-upcoming__filter-status {
  white-space: nowrap;
}

.adev-public-upcoming__search {
  margin-bottom: 12px;
}

.adev-public-upcoming__search input,
.adev-public-upcoming__filter-grid select,
.adev-public-upcoming__reset {
  width: 100%;
  min-height: 44px;
  border: 1px solid #3A3A47;
  border-radius: 11px;
  background: var(--adev-v4-surface-2);
  color: var(--adev-v4-ink);
  font: inherit;
}

.adev-public-upcoming__search input {
  min-height: 52px;
  padding: 0 15px;
  font-size: 15px;
}

.adev-public-upcoming__search input::placeholder {
  color: #858592;
}

.adev-public-upcoming__filter-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 9px;
  align-items: end;
}

.adev-public-upcoming__filter-grid label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: var(--adev-v4-muted);
  font-size: 12px;
  font-weight: 700;
}

.adev-public-upcoming__filter-grid select {
  padding: 0 9px;
}

.adev-public-upcoming__reset {
  padding: 0 12px;
  cursor: pointer;
  font-weight: 800;
}

.adev-public-upcoming__reset:hover {
  border-color: #514566;
  background: #18151F;
}

.adev-public-upcoming__scope {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin: 0 0 30px;
}

.adev-public-upcoming__scope > div {
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--adev-v4-line);
  border-radius: 12px;
  background: var(--adev-v4-surface);
}

.adev-public-upcoming__scope span,
.adev-public-upcoming__scope strong {
  display: block;
}

.adev-public-upcoming__scope span {
  color: var(--adev-v4-muted);
  font-size: 11px;
}

.adev-public-upcoming__scope strong {
  margin-top: 3px;
  overflow-wrap: anywhere;
  color: var(--adev-v4-ink);
  font-size: 14px;
}

.adev-public-upcoming__results {
  margin-top: 6px;
}

.adev-public-upcoming__results-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 14px;
}

.adev-public-upcoming__results-head h2 {
  margin: 0;
  color: var(--adev-v4-ink);
  font-size: 25px;
  letter-spacing: -.04em;
}

.adev-public-upcoming__results-head p {
  margin: 5px 0 0;
  color: var(--adev-v4-muted);
  font-size: 12px;
}

.adev-public-upcoming__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.adev-public-upcoming__card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--adev-v4-line);
  border-radius: var(--adev-v4-radius);
  background: var(--adev-v4-surface);
  box-shadow: var(--adev-v4-shadow);
}

.adev-public-upcoming__card[hidden] {
  display: none;
}

.adev-public-upcoming__thumb {
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 3;
  border-bottom: 1px solid var(--adev-v4-line);
  background:
    radial-gradient(circle at 70% 20%, rgba(143,92,255,.20), transparent 34%),
    linear-gradient(145deg, #242431, #15151C 60%, #20202A);
  color: #777786;
  font-size: 12px;
}

.adev-public-upcoming__card-body {
  display: flex;
  flex-direction: column;
  gap: 9px;
  min-height: 250px;
  padding: 13px;
}

.adev-public-upcoming__badges {
  min-height: 1px;
}

.adev-public-upcoming__format {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid #5E6682;
  border-radius: 999px;
  color: #B6C6F6;
  font-size: 11px;
  font-weight: 850;
}

.adev-public-upcoming__card h3 {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--adev-v4-ink);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.adev-public-upcoming__meta,
.adev-public-upcoming__date,
.adev-public-upcoming__freshness {
  margin: 0;
  color: var(--adev-v4-muted);
  font-size: 12px;
}

.adev-public-upcoming__meta {
  min-height: 18px;
}

.adev-public-upcoming__price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  margin: 2px 0 0;
}

.adev-public-upcoming__price span {
  color: var(--adev-v4-muted);
  font-size: 11px;
}

.adev-public-upcoming__price strong {
  color: var(--adev-v4-ink);
  font-size: 19px;
  font-weight: 850;
}

.adev-public-upcoming__price--unknown strong {
  color: var(--adev-v4-muted);
  font-size: 12px;
}

.adev-public-upcoming__detail-button {
  width: 100%;
  min-height: 44px;
  margin-top: auto;
  padding: 0 12px;
  border: 1px solid #4A4A57;
  border-radius: 10px;
  background: var(--adev-v4-surface-3);
  color: var(--adev-v4-ink);
  cursor: pointer;
  font-weight: 800;
}

.adev-public-upcoming__detail-button:hover {
  border-color: #615A71;
  background: #262631;
}

.adev-public-upcoming__detail {
  padding-top: 4px;
  border-top: 1px solid var(--adev-v4-line);
}

.adev-public-upcoming__detail[hidden] {
  display: none;
}

.adev-public-upcoming__detail dl {
  display: grid;
  grid-template-columns: minmax(72px, 92px) 1fr;
  gap: 6px 9px;
  margin: 8px 0 0;
  font-size: 12px;
}

.adev-public-upcoming__detail dt {
  color: var(--adev-v4-muted);
  font-weight: 700;
}

.adev-public-upcoming__detail dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--adev-v4-ink);
}

.adev-public-upcoming__empty {
  margin: 18px 0 0;
  padding: 18px;
  border: 1px solid var(--adev-v4-line);
  border-radius: 12px;
  background: var(--adev-v4-surface);
  color: var(--adev-v4-muted);
}

.adev-public-upcoming__footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 20px;
  align-items: start;
  margin-top: 54px;
  padding-top: 28px;
  border-top: 1px solid var(--adev-v4-line);
  color: var(--adev-v4-muted);
  font-size: 12px;
}

.adev-public-upcoming__footer strong {
  color: var(--adev-v4-ink);
  font-size: 14px;
}

.adev-public-upcoming__footer p {
  margin: 4px 0 0;
}

.adev-public-upcoming__footer nav {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.adev-public-upcoming__footer a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: #BDA7FF;
  text-decoration: none;
}

.adev-public-upcoming__sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 1080px) {
  .adev-public-upcoming__filter-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .adev-public-upcoming__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .adev-public-upcoming__scope {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .adev-public-upcoming__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .adev-public-upcoming__filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .adev-public-upcoming__footer {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .adev-public-upcoming-banner-wrap {
    padding: 14px 13px 0;
  }

  .adev-public-upcoming {
    padding: 18px 13px 80px;
  }

  .adev-public-upcoming__header {
    padding-top: 12px;
  }

  .adev-public-upcoming__filter-head {
    display: block;
  }

  .adev-public-upcoming__filter-status {
    margin-top: 8px !important;
    white-space: normal;
  }

  .adev-public-upcoming__filters {
    padding: 13px;
  }

  .adev-public-upcoming__filter-grid {
    grid-template-columns: 1fr 1fr;
  }

  .adev-public-upcoming__grid {
    grid-template-columns: 1fr 1fr;
    gap: 9px;
  }

  .adev-public-upcoming__thumb {
    aspect-ratio: 3 / 2;
    font-size: 10px;
  }

  .adev-public-upcoming__card-body {
    min-height: 244px;
    padding: 10px;
  }

  .adev-public-upcoming__card h3 {
    font-size: 13px;
  }

  .adev-public-upcoming__price strong {
    font-size: 17px;
  }

  .adev-public-upcoming__detail dl {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .adev-public-upcoming__detail dd {
    margin-bottom: 5px;
  }
}

@media (max-width: 360px) {
  .adev-public-upcoming {
    padding-left: 10px;
    padding-right: 10px;
  }

  .adev-public-upcoming__filter-grid {
    grid-template-columns: 1fr;
  }

  .adev-public-upcoming__card-body {
    min-height: 252px;
  }

  .adev-public-upcoming__price {
    display: block;
  }

  .adev-public-upcoming__price strong {
    display: block;
    margin-top: 2px;
  }

  .adev-public-upcoming__detail-button {
    padding: 0 8px;
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .adev-public-upcoming-page *,
  .adev-public-upcoming-page *::before,
  .adev-public-upcoming-page *::after {
    scroll-behavior: auto !important;
  }
}


@media (max-width: 280px) {
  .adev-public-upcoming__scope,
  .adev-public-upcoming__grid {
    grid-template-columns: 1fr;
  }

  .adev-public-upcoming__card-body {
    min-height: 0;
  }
}

/* Formal UI V4 route-scoped theme header harmonization.
 * /upcoming/ only: public assets.css is enqueued only for the active target route,
 * and every selector is additionally scoped to body.adev-public-upcoming-page.
 */
body.adev-public-upcoming-page .site-header,
body.adev-public-upcoming-page .site-header .ast-primary-header-bar,
body.adev-public-upcoming-page .site-header .main-header-bar,
body.adev-public-upcoming-page .site-header .ast-builder-grid-row-container-inner {
  background-color: var(--adev-v4-bg) !important;
  color: var(--adev-v4-ink) !important;
}

body.adev-public-upcoming-page .site-header {
  min-height: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid var(--adev-v4-line) !important;
  box-shadow: none !important;
}

body.adev-public-upcoming-page .site-header .ast-primary-header-bar,
body.adev-public-upcoming-page .site-header .main-header-bar,
body.adev-public-upcoming-page .site-header .ast-builder-grid-row {
  min-height: 72px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.adev-public-upcoming-page .site-header .ast-site-identity,
body.adev-public-upcoming-page .site-header .site-branding {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body.adev-public-upcoming-page .site-header .site-title,
body.adev-public-upcoming-page .site-header .site-title a {
  margin: 0 !important;
  color: var(--adev-v4-ink) !important;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.03em !important;
  text-decoration: none !important;
}

body.adev-public-upcoming-page .site-header .site-description {
  color: var(--adev-v4-muted) !important;
}

body.adev-public-upcoming-page .site-header a {
  color: var(--adev-v4-ink);
}

body.adev-public-upcoming-page .site-header a:hover,
body.adev-public-upcoming-page .site-header a:focus-visible {
  color: #BDA7FF;
}

@media (max-width: 640px) {
  body.adev-public-upcoming-page .site-header .ast-primary-header-bar,
  body.adev-public-upcoming-page .site-header .main-header-bar,
  body.adev-public-upcoming-page .site-header .ast-builder-grid-row {
    min-height: 64px !important;
  }

  body.adev-public-upcoming-page .site-header .ast-builder-grid-row-container-inner {
    padding-left: 13px !important;
    padding-right: 13px !important;
  }

  body.adev-public-upcoming-page .site-header .site-title,
  body.adev-public-upcoming-page .site-header .site-title a {
    font-size: 18px !important;
  }
}


/* Formal UI V4 route-scoped Astra shell cleanup.
 * /upcoming/ only:
 * - Hide the duplicate native Astra footer because V4 already renders its own footer.
 * - Pin Astra's primary header wrap to the intended V4 shell height.
 */
body.adev-public-upcoming-page footer.site-footer,
body.adev-public-upcoming-page #colophon.site-footer,
body.adev-public-upcoming-page .site-footer {
  display: none !important;
}

body.adev-public-upcoming-page .site-header,
body.adev-public-upcoming-page .ast-mobile-header-wrap,
body.adev-public-upcoming-page .site-header .ast-primary-header-bar,
body.adev-public-upcoming-page .site-header .main-header-bar,
body.adev-public-upcoming-page .site-header .ast-primary-header-bar .site-primary-header-wrap {
  min-height: 72px !important;
  height: 72px !important;
  max-height: 72px !important;
}

body.adev-public-upcoming-page .site-header .ast-primary-header-bar .site-primary-header-wrap,
body.adev-public-upcoming-page .site-header .ast-builder-grid-row-container-inner,
body.adev-public-upcoming-page .site-header .ast-builder-grid-row,
body.adev-public-upcoming-page .site-header .ast-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.adev-public-upcoming-page .site-header .ast-builder-grid-row,
body.adev-public-upcoming-page .site-header .site-primary-header-wrap {
  align-items: center !important;
}

@media (max-width: 640px) {
  body.adev-public-upcoming-page .site-header,
  body.adev-public-upcoming-page .ast-mobile-header-wrap,
  body.adev-public-upcoming-page .site-header .ast-primary-header-bar,
  body.adev-public-upcoming-page .site-header .main-header-bar,
  body.adev-public-upcoming-page .site-header .ast-primary-header-bar .site-primary-header-wrap {
    min-height: 64px !important;
    height: 64px !important;
    max-height: 64px !important;
  }

  body.adev-public-upcoming-page .site-header .ast-container,
  body.adev-public-upcoming-page .site-header .ast-builder-grid-row-container-inner {
    padding-left: 13px !important;
    padding-right: 13px !important;
  }
}

/* ADEV ACCESSIBILITY CONTRAST HOTFIX V1
 * Scope: /upcoming/ only.
 * Fix 1: focused skip-link text/background contrast.
 * Fix 2: neutral placeholder text contrast.
 * No layout, interaction, auth, affiliate, index, or data behavior change.
 */
body.adev-public-upcoming-page a.skip-link:focus,
body.adev-public-upcoming-page .adev-public-upcoming__skip:focus {
  color: #F2F2F4;
  background: #131318;
}

body.adev-public-upcoming-page .adev-public-upcoming__thumb > span {
  color: #A8A8B3;
}

/* ADEV_PUBLIC_AFFILIATE_CTA_V1 */
/* ADEV_PUBLIC_AFFILIATE_CTA_VISUAL_V2
 * CSS-only visual correction.
 * Uses explicit approved Formal UI colors so the CTA does not depend on
 * an undefined generic --brand custom property.
 */
body.adev-public-upcoming-page .adev-public-upcoming__affiliate-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  margin-top: .5rem;
  padding: .7rem .9rem;
  box-sizing: border-box;
  border: 1px solid #8F5CFF;
  border-radius: .7rem;
  background: #7440E0;
  color: #FFFFFF;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}
body.adev-public-upcoming-page .adev-public-upcoming__affiliate-cta:hover {
  filter: brightness(1.08);
  text-decoration: none;
}
body.adev-public-upcoming-page .adev-public-upcoming__affiliate-cta:focus-visible {
  outline: 3px solid #BDA7FF;
  outline-offset: 3px;
}

/* ADEV_PUBLIC_MAIN_IMAGE_CSS_V1_2
 * Official DMM product main image. No crop: object-fit is contain.
 * Existing thumb aspect-ratio remains the layout/CLS reservation.
 */
body.adev-public-upcoming-page .adev-public-upcoming__thumb {
  overflow: hidden;
}
body.adev-public-upcoming-page .adev-public-upcoming__main-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
