/* ReBORN 2.6.9: one hierarchy for major bilingual section headings.
 * Page H1s, Japanese-only guide steps, cards, forms and range figures retain
 * their own typography. The short TOP deliberately has no section dividers.
 */
.home {
  --rb-heading-en-size: clamp(26px, 2.5vw, 32px);
  --rb-heading-en-tracking: .06em;
  --rb-heading-ja-size: clamp(14px, 1.4vw, 17px);
  --rb-heading-start: clamp(82px, 6.5vw, 96px);
  --rb-heading-body-gap: 34px;
  --rb-heading-section-end: 64px;
  --rb-heading-blue: var(--rb-metal-blue, #73b6ed);
}

/* The new TOP/customer headings now keep both languages inside the H2. */
.home .rb260-heading h2 {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  line-height: 1.2;
  text-align: inherit;
}

.home .rb260-heading h2::before,
.home .rb260-heading h2::after {
  content: none;
}

.home :is(
  .rb260-heading__en,
  .reborn-section-title__en,
  .reborn-chain-maintenance__title,
  .rb-excluded__title,
  .reborn-before-reservation__heading,
  .reborn-cancel-policy__heading,
  .reborn-payment__title,
  .reborn-access__title,
  .reborn-related-service__title,
  .reborn-contact__title
) {
  display: block;
  margin: 0;
  color: #fff;
  font-size: var(--rb-heading-en-size);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: var(--rb-heading-en-tracking);
  text-align: center;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  white-space: normal;
  text-wrap: balance;
}

.home :is(
  .rb260-heading__ja,
  .reborn-section-title__jp,
  .reborn-chain-maintenance__subtitle,
  .rb-excluded__subtitle,
  .reborn-before-reservation__subheading,
  .reborn-cancel-policy__subheading,
  .reborn-payment__subtitle,
  .reborn-access__subtitle,
  .reborn-related-service__subtitle,
  .reborn-contact__subtitle
) {
  display: block;
  margin: 12px 0 0;
  color: var(--rb-heading-blue);
  font-size: var(--rb-heading-ja-size);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: .08em;
  text-align: center;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

/* Only decorative lines beneath major headings are removed. Table rows,
 * FAQ question rules and borders inside cards continue to separate content.
 */
.home :is(
  .reborn-chain-maintenance__header-line,
  .rb-excluded__heading-line,
  .reborn-before-reservation__heading-line,
  .reborn-cancel-policy__heading-line,
  .reborn-payment__line,
  .reborn-access__header-line,
  .reborn-related-service__header-line,
  .reborn-contact__header-line,
  .reborn-access__divider
) {
  display: none;
}

.home .reborn-chain-maintenance__title::before,
.home .reborn-chain-maintenance__title::after {
  content: none;
}

/* Each full major block owns one divider. Legacy bilingual title blocks
 * own theirs; standalone and customer sections own theirs on the outer shell.
 * The 152px blue accent doubles the preceding 76px width, retaining 2px height.
 */
.home:not(.reborn-top-page) :is(
  .reborn-section-title,
  .reborn-chain-maintenance,
  .rb-excluded,
  .reborn-before-reservation,
  .reborn-cancel-policy,
  .reborn-payment,
  .reborn-access,
  .reborn-related-service,
  .reborn-contact:where(:not(.reborn-contact--embedded)),
  .rb260-customer-section,
  .rb260-customer-price
) {
  position: relative;
  border-top: 1px solid rgba(255, 255, 255, .08);
  padding-top: var(--rb-heading-start);
  background-image: radial-gradient(circle at 50% 0, rgba(115, 182, 237, .085), transparent 260px);
  background-color: #050505;
}

.home:not(.reborn-top-page) :is(
  .reborn-section-title,
  .reborn-chain-maintenance,
  .rb-excluded,
  .reborn-before-reservation,
  .reborn-cancel-policy,
  .reborn-payment,
  .reborn-access,
  .reborn-related-service,
  .reborn-contact:where(:not(.reborn-contact--embedded)),
  .rb260-customer-section,
  .rb260-customer-price
)::before {
  position: absolute;
  top: -1px;
  left: 50%;
  width: 152px;
  max-width: calc(100% - 32px);
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--rb-heading-blue), transparent);
  content: "";
  transform: translateX(-50%);
  pointer-events: none;
}

.home:not(.reborn-top-page) .reborn-section-title {
  padding-bottom: var(--rb-heading-body-gap);
}

.home:not(.reborn-top-page) :is(
  .reborn-chain-maintenance,
  .rb-excluded,
  .reborn-before-reservation,
  .reborn-cancel-policy,
  .reborn-payment,
  .reborn-access,
  .reborn-related-service,
  .reborn-contact:where(:not(.reborn-contact--embedded)),
  .rb260-customer-section,
  .rb260-customer-price
) {
  padding-bottom: var(--rb-heading-section-end);
}

.home:not(.reborn-top-page) :is(
  .rb-excluded__inner,
  .reborn-before-reservation__inner,
  .reborn-cancel-policy__inner
) {
  padding-block: 0;
}

.home:not(.reborn-top-page) :is(
  .rb260-heading,
  .reborn-chain-maintenance__header,
  .rb-excluded__header,
  .reborn-payment__header,
  .reborn-access__header,
  .reborn-related-service__header,
  .reborn-contact__header
) {
  margin: 0 0 var(--rb-heading-body-gap);
  text-align: center;
}

.home:not(.reborn-top-page) :is(
  .reborn-before-reservation__subheading,
  .reborn-cancel-policy__subheading
) {
  margin-bottom: var(--rb-heading-body-gap);
}

/* This mobile header has a narrower width than its section. */
.home:not(.reborn-top-page) .reborn-chain-maintenance__header {
  margin-inline: auto;
}

/* The access lead has its own card gap after the redundant ornament is gone. */
.home .reborn-access__lead {
  margin-bottom: var(--rb-heading-body-gap);
}

/* Customer sections can contain the existing CANCEL POLICY / FAQ sections.
 * Give the text before them one end-gap, without another parent bottom gap.
 */
.home.reborn-customers-page :is(#reservation-help, #aftercare) {
  padding-bottom: 0;
}

.home.reborn-customers-page :is(#reservation-help, #aftercare) > .rb260-inner {
  margin-bottom: var(--rb-heading-section-end);
}

.home.reborn-customers-page .rb260-customer-price {
  margin-top: 0;
}

/* Embedded forms already sit beneath CONTACT; they are not new sections. */
.home .reborn-contact--embedded {
  border-top: 0;
  background: none;
}

.home .reborn-contact--embedded::before {
  content: none;
}

/* Dedicated ACCESS / CONTACT H1s replace their internal headings. Keep that
 * established suppression and avoid showing a divider for an absent heading.
 */
.home.reborn-page-access .reborn-access,
.home.reborn-page-contact .reborn-contact {
  border-top: 0;
  padding-top: 36px;
  background-image: none;
}

.home.reborn-page-access .reborn-access::before,
.home.reborn-page-contact .reborn-contact::before {
  content: none;
}

/* TOP exception: large blue English, smaller white Japanese, left aligned.
 * Existing card edges and item rows remain; only major-section rules go away.
 */
.home.reborn-top-page .rb260-heading {
  text-align: left;
}

.home.reborn-top-page .rb260-heading__en {
  color: var(--rb-heading-blue);
  text-align: left;
}

.home.reborn-top-page .rb260-heading__ja {
  color: #fff;
  background: none;
  -webkit-text-fill-color: currentColor;
  text-align: left;
}

.home.reborn-top-page .rb260-price {
  border-top: 0;
}

@supports (background-clip: text) or (-webkit-background-clip: text) {
  .home.reborn-top-page .rb260-heading__en,
  .home:not(.reborn-top-page) :is(
    .rb260-heading__ja,
    .reborn-section-title__jp,
    .reborn-chain-maintenance__subtitle,
    .rb-excluded__subtitle,
    .reborn-before-reservation__subheading,
    .reborn-cancel-policy__subheading,
    .reborn-payment__subtitle,
    .reborn-access__subtitle,
    .reborn-related-service__subtitle,
    .reborn-contact__subtitle
  ) {
    background-image: var(--rb-metal-blue-text);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

@media (max-width: 640px) {
  .home {
    --rb-heading-en-size: 24px;
    --rb-heading-ja-size: 14px;
    --rb-heading-start: 64px;
    --rb-heading-body-gap: 29px;
    --rb-heading-section-end: 48px;
  }
}

@media (forced-colors: active) {
  .home.reborn-top-page .rb260-heading__en,
  .home:not(.reborn-top-page) :is(
    .rb260-heading__en,
    .rb260-heading__ja,
    .reborn-section-title__jp,
    .reborn-chain-maintenance__subtitle,
    .rb-excluded__subtitle,
    .reborn-before-reservation__subheading,
    .reborn-cancel-policy__subheading,
    .reborn-payment__subtitle,
    .reborn-access__subtitle,
    .reborn-related-service__subtitle,
    .reborn-contact__subtitle
  ) {
    background-image: none;
    -webkit-text-fill-color: currentColor;
  }
}
