/*
 * ChouChou Website 1.0 — Phase 2-A conversion optimization.
 * Presentation and public-form behavior only; existing visual tokens remain in use.
 */

/* Keep the full mobile hero composition visible without changing desktop geometry. */
.hero-slide-picture {
  display: contents;
}

@media (max-width: 768px) {
  html body.home-polish-v1 section.hero.premium-hero.luxury-hero.hero-princess-image.hero-ver6,
  html body.home-polish-v1 .hero.hero-ver6 {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 900 / 439 !important;
    margin: 64px 0 28px !important;
  }

  html body.home-polish-v1 .hero.hero-ver6 .hero-slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list.premium-card-cast .public-cast-photo > .public-cast-badges.cast-badge-layer {
    top: 7px !important;
    left: 7px !important;
    width: 24px !important;
    max-width: 24px !important;
    gap: 3px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list.premium-card-cast .public-cast-photo > .public-cast-badges.cast-badge-layer :is(
    .premium-cast-badge,
    .premium-cast-badge-img,
    img.premium-cast-badge-img-new,
    img.premium-cast-badge-img-recommended
  ) {
    flex: 0 0 24px !important;
    width: 24px !important;
    min-width: 24px !important;
    max-width: 24px !important;
    height: 24px !important;
    min-height: 24px !important;
    max-height: 24px !important;
  }
}

@media (max-width: 768px) and (orientation: landscape) {
  html body.home-polish-v1 section.hero.premium-hero.luxury-hero.hero-princess-image.hero-ver6,
  html body.home-polish-v1 .hero.hero-ver6 {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-top: 48px !important;
  }

  html body.home-polish-v1 .hero-polish-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Show the persistent actions only after the in-hero actions leave view. */
body.home-polish-v1 .v72-fixed-cta.is-conversion-ready {
  grid-template-columns: 1.35fr 1fr 1fr;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(100% + 32px));
  transition: opacity 220ms ease, transform 320ms cubic-bezier(.22, 1, .36, 1), visibility 0s linear 320ms;
}

body.home-polish-v1 .v72-fixed-cta.is-conversion-ready.is-conversion-visible {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  transition-delay: 0s;
}

/* LINE stays first and visually strongest without introducing a new palette. */
.phase2a-line-header-cta,
body.cast-detail-page .cast-fixed-reservation .cast-fixed-line {
  border-color: transparent !important;
  background: linear-gradient(135deg, #71364f, #9f536f) !important;
  color: #fff !important;
  box-shadow: 0 9px 24px rgba(113, 54, 79, .2) !important;
}

body.cast-detail-page .cast-fixed-reservation {
  grid-template-columns: 1.35fr 1fr 1fr;
}

.cast-line-guide {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  width: min(1080px, calc(100% - 32px));
  margin: 0 auto 30px;
  padding: 18px 22px;
  border: 1px solid rgba(198, 154, 72, .48);
  border-radius: 20px;
  background: rgba(255, 248, 252, .78);
  box-shadow: 0 14px 34px rgba(111, 47, 77, .1);
}

.cast-line-guide div {
  display: grid;
  gap: 4px;
}

.cast-line-guide strong {
  color: #71364f;
  font-size: 15px;
}

.cast-line-guide span {
  color: #876778;
  font-size: 12px;
}

.cast-line-guide .button-premium {
  flex: 0 0 auto;
  margin: 0;
  border-color: transparent !important;
  background: linear-gradient(135deg, #71364f, #9f536f) !important;
  color: #fff !important;
}

/* Reservation form semantics, feedback, and error states. */
.reservation-required-note,
.reservation-submit-note,
.reservation-field-hint,
.reservation-field-error {
  margin: 0;
}

.reservation-required-note {
  color: #876778;
  font-size: 12px;
  text-align: right;
}

.reservation-required-note span,
.reservation-field label > span[aria-hidden="true"] {
  color: #b33f66;
}

.reservation-form-status:empty,
.reservation-field-error:empty {
  display: none;
}

.reservation-form-status {
  padding: 13px 15px;
  border: 1px solid rgba(113, 54, 79, .2);
  border-radius: 12px;
  font-size: 13px;
  line-height: 1.7;
}

.reservation-form-status.is-success {
  border-color: rgba(62, 128, 89, .34);
  background: rgba(232, 248, 237, .9);
  color: #2e7147;
}

.reservation-form-status.is-error {
  border-color: rgba(179, 63, 102, .34);
  background: rgba(255, 240, 246, .9);
  color: #9b3155;
}

.reservation-field {
  display: grid;
  gap: 7px;
}

.reservation-field label,
.reservation-cast-fieldset legend,
.reservation-cast-fieldset label {
  color: #71364f;
  font-size: 13px;
  font-weight: 700;
}

.reservation-optional {
  margin-left: 6px;
  color: #96788a;
  font-size: 10px;
  font-weight: 500;
}

.reservation-field-hint {
  color: #876778;
  font-size: 11px;
}

.reservation-field-error {
  color: #a83259;
  font-size: 12px;
  font-weight: 700;
}

.reservation-form :is(input, select, textarea)[aria-invalid="true"] {
  border-color: #b33f66;
  box-shadow: 0 0 0 3px rgba(179, 63, 102, .12);
}

.reservation-cast-fieldset {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 16px;
  border: 1px solid rgba(198, 154, 72, .34);
  border-radius: 14px;
}

.reservation-cast-fieldset legend {
  padding: 0 6px;
}

.reservation-cast-fieldset #castArea {
  display: grid;
  gap: 8px;
}

.reservation-submit-note {
  color: #876778;
  font-size: 11px;
  line-height: 1.7;
  text-align: center;
}

.reserve-submit:disabled {
  cursor: wait;
  opacity: .68;
}

@media (max-width: 768px) {
  body.home-polish-v1 .v72-fixed-cta.is-conversion-ready,
  body.cast-detail-page .cast-fixed-reservation {
    grid-template-columns: 1.3fr 1fr 1fr;
  }

  .cast-line-guide {
    align-items: stretch;
    flex-direction: column;
    gap: 14px;
    width: calc(100% - 24px);
    padding: 16px;
  }

  .cast-line-guide .button-premium {
    width: 100%;
    min-height: 48px;
    margin: 0;
  }
}

@media (max-width: 420px) {
  html body.premium-design-system .header .nav {
    display: none !important;
  }

  html body.premium-design-system .header-inner {
    box-sizing: border-box;
    grid-template-columns: minmax(0, 1fr) auto !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-inline: 10px !important;
  }

  html body.premium-design-system .header-cta {
    min-width: 0 !important;
    max-width: 154px !important;
    padding-inline: 12px !important;
    white-space: nowrap;
  }

  body.home-polish-v1 .v72-fixed-cta.is-conversion-ready,
  body.cast-detail-page .cast-fixed-reservation {
    box-sizing: border-box;
    grid-template-columns: 1.2fr 1fr .9fr;
    width: 100% !important;
    max-width: 100% !important;
    padding-inline: 6px !important;
  }

  body.home-polish-v1 .v72-fixed-cta .button-premium,
  body.cast-detail-page .cast-fixed-reservation .button-premium {
    width: 100% !important;
    min-width: 0 !important;
    padding-inline: 2px !important;
    overflow: hidden;
    font-size: 9px !important;
    letter-spacing: 0 !important;
    white-space: nowrap;
  }

  html body.home-polish-v1 .princess-home #cast-list .all-cast-grid > .cast-card.public-cast-card {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.home-polish-v1 .princess-home #cast-list .public-cast-photo {
    flex: none !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    border-radius: var(--polish-radius) !important;
  }

  html body.home-polish-v1 #weekly-ranking .v72-ranking-actions {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  html body.home-polish-v1 #weekly-ranking .v72-ranking-actions .button-premium {
    width: 100% !important;
    min-width: 0 !important;
    padding-inline: 4px !important;
    font-size: 9px !important;
    letter-spacing: 0 !important;
  }

  html body.premium-design-system.interior-page:not(.cast-detail-page) .interior-cast-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 22px !important;
  }

  html body.premium-design-system.interior-page:not(.cast-detail-page) .interior-cast-grid > .public-cast-card {
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  html body.premium-design-system.interior-page:not(.cast-detail-page) .interior-cast-grid :is(.public-profile-link, .v6-cast-actions) {
    max-width: 100% !important;
    transform: none !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .v6-cast-actions {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    grid-template-columns: 31px minmax(0, 141px) !important;
  }
}

/* Cast detail final CTA clarity and balanced mobile button width. */
@media (max-width: 767px) {
  html body.cast-detail-page.premium-design-system .header-inner {
    grid-template-columns: minmax(0, 1fr) auto !important;
    row-gap: 8px !important;
  }

  html body.cast-detail-page.premium-design-system .header .header-cta {
    box-sizing: border-box !important;
    grid-column: 1 / -1 !important;
    justify-self: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 14px 0 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: .02em !important;
    text-align: center !important;
    white-space: nowrap !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 transparent !important;
    filter: none !important;
    transform: none !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: geometricPrecision;
  }

  body.cast-detail-page .cast-fixed-reservation {
    grid-template-columns: 1.5fr 1fr .9fr !important;
  }

  html body.cast-detail-page.premium-design-system .cast-fixed-reservation .button-premium.cast-fixed-line {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    padding: 0 8px !important;
    border-radius: 28px !important;
    overflow: visible !important;
    font-size: clamp(10px, 2.8vw, 14px) !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
    filter: none !important;
    transform: none !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: geometricPrecision;
  }

  body.cast-detail-page .cast-fixed-line .v6-line-content {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content !important;
    max-width: 100% !important;
    gap: 8px !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 transparent !important;
    filter: none !important;
    transform: none !important;
  }

  body.cast-detail-page .cast-fixed-line .v6-line-icon {
    flex: 0 0 20px !important;
    width: 20px !important;
    height: 20px !important;
  }

  body.cast-detail-page .cast-fixed-line .v6-line-label {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    font-size: inherit !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
    text-shadow: none !important;
    -webkit-text-stroke: 0 transparent !important;
    filter: none !important;
    transform: none !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: geometricPrecision;
  }
}

/* The approved hero artwork already contains reservation actions. Keep the
   observer target in flow for fixed-CTA timing without rendering a duplicate. */
body.home-polish-v1 .hero-polish-actions {
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Version 1.0 RC — keep every cast action row on the card baseline. */
html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-list {
  grid-auto-rows: minmax(252px, auto) !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-item.card-premium {
  align-items: stretch !important;
  min-height: 252px !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-media {
  align-content: stretch !important;
  grid-template-rows: minmax(158px, 1fr) auto !important;
  height: 100% !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-media > .v6-cast-actions.is-compact {
  align-self: end !important;
  margin-top: auto !important;
}

html body.home-polish-v1 #weekly-ranking .v72-ranking-card {
  height: 100% !important;
}

html body.home-polish-v1 #weekly-ranking .v72-ranking-card .v6-ranking-glass {
  flex: 1 1 auto !important;
}

html body.home-polish-v1 #weekly-ranking .v72-ranking-actions {
  margin-top: auto !important;
  padding-top: 10px;
}

html body.premium-design-system:not(.cast-detail-page) #cast-list .all-cast-grid {
  align-items: stretch !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast-list .public-cast-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast-list .public-cast-info {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast-list .public-profile-link {
  flex: 0 0 auto;
  margin-top: auto !important;
  transform: none !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast-list .v6-cast-actions {
  flex: 0 0 auto;
  transform: none !important;
}

html body.premium-design-system.interior-page:not(.cast-detail-page) .interior-cast-grid > .public-cast-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

html body.premium-design-system.interior-page:not(.cast-detail-page) .interior-cast-grid .public-cast-info {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
}

html body.premium-design-system.interior-page:not(.cast-detail-page) .interior-cast-grid .public-cast-card .public-profile-link {
  flex: 0 0 auto;
  margin-top: auto !important;
  transform: none !important;
}

html body.premium-design-system.interior-page:not(.cast-detail-page) .interior-cast-grid .public-cast-card .v6-cast-actions {
  flex: 0 0 auto;
  transform: none !important;
}

@media (min-width: 769px) {
  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-list {
    grid-auto-rows: minmax(306px, auto) !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-item.card-premium {
    min-height: 306px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-profile {
    min-height: 262px !important;
  }
}

@media (max-width: 768px) {
  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-media {
    grid-template-rows: minmax(160px, 1fr) auto !important;
  }
}

/* Version 1.0 final balance — Cast List cards only. */
html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .all-cast-grid {
  grid-auto-rows: minmax(630px, auto) !important;
}

html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .all-cast-grid > .cast-card.public-cast-card {
  height: 630px !important;
  min-height: 630px !important;
  max-height: none !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast-list .all-cast-grid,
  .interior-cast-grid
) .public-profile-link {
  box-sizing: border-box !important;
  align-self: center !important;
  width: min(220px, 100%) !important;
  min-width: 0 !important;
  max-width: 220px !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast-list .all-cast-grid,
  .interior-cast-grid
) .v6-cast-actions:not(.is-compact) {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: 28px 48px 48px !important;
  align-items: center !important;
  justify-items: stretch !important;
  width: min(220px, 100%) !important;
  max-width: 220px !important;
  min-height: 148px !important;
  margin: 10px auto 0 !important;
  column-gap: 0 !important;
  row-gap: 12px !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast-list .all-cast-grid,
  .interior-cast-grid
) .v6-cast-actions:not(.is-compact) .v6-favorite-button {
  grid-row: 1 !important;
  grid-column: 1 !important;
  justify-self: center !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast-list .all-cast-grid,
  .interior-cast-grid
) .v6-cast-actions:not(.is-compact) :is(
  .v6-line-cast-button,
  .v71-web-cast-button
) {
  box-sizing: border-box !important;
  grid-column: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  padding-inline: 6px !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast-list .all-cast-grid,
  .interior-cast-grid
) .v6-cast-actions:not(.is-compact) .v6-line-cast-button {
  grid-row: 2 !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast-list .all-cast-grid,
  .interior-cast-grid
) .v6-cast-actions:not(.is-compact) .v71-web-cast-button {
  grid-row: 3 !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast-list .all-cast-grid,
  .interior-cast-grid
) .v6-line-content {
  flex: 1 1 auto !important;
  flex-flow: row wrap !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: 2px !important;
  white-space: normal !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast-list .all-cast-grid,
  .interior-cast-grid
) .v6-line-label {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}

/* Version 1.0 final balance — Popular Ranking cards only. */
html body.premium-design-system.home-polish-v1:not(.cast-detail-page) #weekly-ranking .v72-ranking-actions {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: repeat(2, 48px) !important;
  align-items: stretch !important;
  width: 100% !important;
  column-gap: 0 !important;
  row-gap: 12px !important;
}

html body.premium-design-system.home-polish-v1:not(.cast-detail-page) #weekly-ranking .v72-ranking-actions .button-premium {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

/* Version 1.0 final Hero typography cleanup — preserve layout geometry. */
body.home-polish-v1 .hero-polish-catch,
body.home-polish-v1 .hero-polish-description {
  visibility: hidden !important;
}

@media (prefers-reduced-motion: reduce) {
  body.home-polish-v1 .v72-fixed-cta.is-conversion-ready {
    transition: none;
  }
}

/* Version 1.4.1 mobile-only card polish. */
@media (max-width: 768px) {
  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast.v9-today-card .v9-cast-photo > .public-cast-badges.cast-badge-layer {
    top: 7px !important;
    left: 7px !important;
    width: 32px !important;
    max-width: 32px !important;
    gap: 3px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast.v9-today-card .v9-cast-photo > .public-cast-badges.cast-badge-layer :is(
    .premium-cast-badge,
    .premium-cast-badge-img,
    img.premium-cast-badge-img-new,
    img.premium-cast-badge-img-recommended
  ) {
    box-sizing: border-box !important;
    flex: 0 0 22px !important;
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    filter: none !important;
    object-fit: contain !important;
    transform: none !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .all-cast-grid {
    grid-auto-rows: auto !important;
    gap: 18px !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .all-cast-grid > .cast-card.public-cast-card {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .cast-card.public-cast-card > .public-cast-photo {
    flex: 0 0 auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 4 / 3 !important;
    margin: 0 !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .public-cast-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
    transform: none !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .cast-card.public-cast-card > .cast-info.public-cast-info,
  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .cast-card.public-cast-card:has(.public-cast-badges) > .cast-info.public-cast-info {
    box-sizing: border-box !important;
    display: flex !important;
    flex: 0 0 auto !important;
    flex-direction: column !important;
    gap: 8px !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 15px 14px 18px !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .public-cast-info h3,
  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .public-cast-profile-line {
    width: 100% !important;
    margin: 0 !important;
    text-align: left !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .public-cast-info h3::after {
    margin-left: 0 !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list :is(
    .public-cast-hobby,
    .public-cast-schedule-row
  ) {
    justify-content: flex-start !important;
    width: 100% !important;
    margin: 0 !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .public-cast-today-label {
    flex: 0 0 auto !important;
    margin: 0 !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .public-profile-link {
    margin-top: 8px !important;
  }
}

@media (max-width: 420px) {
  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .all-cast-grid > .cast-card.public-cast-card {
    width: 94% !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
}

/* Screenshot-directed mobile badge and photo balance. */
@media (max-width: 420px) {
  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast.v9-today-card .v9-cast-photo > .public-cast-badges.cast-badge-layer {
    width: 36px !important;
    max-width: 36px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast.v9-today-card .v9-cast-photo > .public-cast-badges.cast-badge-layer :is(
    .premium-cast-badge,
    .premium-cast-badge-img,
    img.premium-cast-badge-img-new,
    img.premium-cast-badge-img-recommended
  ) {
    flex-basis: 25px !important;
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    height: 25px !important;
    min-height: 25px !important;
    max-height: 25px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list.premium-card-cast .public-cast-photo > .public-cast-badges.cast-badge-layer {
    top: 8px !important;
    left: 8px !important;
    width: 32px !important;
    max-width: 32px !important;
    gap: 3px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list.premium-card-cast .public-cast-photo > .public-cast-badges.cast-badge-layer :is(
    .premium-cast-badge,
    .premium-cast-badge-img,
    img.premium-cast-badge-img-new,
    img.premium-cast-badge-img-recommended
  ) {
    box-sizing: border-box !important;
    flex: 0 0 32px !important;
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    filter: none !important;
    object-fit: contain !important;
    transform: none !important;
  }

  html body.premium-design-system.home-polish-v1:not(.cast-detail-page) .princess-home #cast-list .cast-card.public-cast-card > .public-cast-photo {
    aspect-ratio: 5 / 4 !important;
  }

  /* Final mobile top balance: center the approved artwork and reduce dead space. */
  html body.home-polish-v1 section.hero.premium-hero.luxury-hero.hero-princess-image.hero-ver6,
  html body.home-polish-v1 .hero.hero-ver6 {
    height: clamp(320px, 86vw, 360px) !important;
    min-height: 320px !important;
    max-height: 360px !important;
    aspect-ratio: auto !important;
    margin-bottom: 18px !important;
  }

  html body.home-polish-v1 .hero.hero-ver6 .hero-slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    filter: brightness(1.08) contrast(1.04) saturate(1.02) !important;
  }

  /* Return the visible CTA to normal text rasterization after its entrance. */
  body.home-polish-v1 .v72-fixed-cta.is-conversion-ready.is-conversion-visible {
    transform: none;
  }

  body.home-polish-v1 .v72-fixed-cta .button-premium {
    filter: none !important;
    transform: none !important;
    will-change: auto !important;
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
  }
}
