/* =========================================
   ルームプラン Aタイプ 詳細ページ
========================================= */

.section__content--roomplan-detail fadeInUp {
  padding: min(10.6667vw, 40px) 0 min(16vw, 60px);
  border-bottom: 4px solid var(--accent-color);
}

.roomplan-detail__heading {
  display: flex;
  justify-content: center;
  align-items: baseline;
  font-family: var(--main-font);
  font-weight: 400;
  line-height: 1.6;
  color: var(--text-color);
}

/* 区切り線（左端・中央・右端の3本）。Figma実測の線高に合わせて疑似要素で描画 */
.roomplan-detail__heading-type,
.roomplan-detail__heading-ldk {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: min(1.3333vw, 5px);
  padding: 0 min(4.2667vw, 16px);
  font-size: min(10.6667vw, 2.5rem);
}

.roomplan-detail__heading-type::before,
.roomplan-detail__heading-ldk::before,
.roomplan-detail__heading-ldk::after {
  position: absolute;
  top: 50%;
  height: min(9.8667vw, 37px);
  border-left: 1px solid var(--text-color);
  content: "";
  transform: translateY(-50%);
}

.roomplan-detail__heading-type::before,
.roomplan-detail__heading-ldk::before {
  left: 0;
}

.roomplan-detail__heading-ldk::after {
  right: 0;
}

.roomplan-detail__heading em {
  font-size: min(5.3333vw, 1.25rem);
  font-weight: 300;
}

.roomplan-detail__heading-ldk em {
  font-size: min(8vw, 1.875rem);
}

.roomplan-detail__total {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  margin-bottom: min(2.6667vw, 10px);
  white-space: nowrap;
  color: var(--text-color);
}

.roomplan-detail__total-figures {
  display: inline-flex;
  align-items: baseline;
}

.roomplan-detail__total-label {
  align-self: center;
  margin-top: min(1.3333vw, 5px);
  margin-right: min(2.6667vw, 10px);
  font-size: min(4.2667vw, 1rem);
  font-weight: 300;
}

.roomplan-detail__total-num {
  font-size: min(8.5333vw, 2rem);
  font-weight: 400;
}

.roomplan-detail__total-num-sub {
  font-size: min(6.4vw, 1.5rem);
}

.roomplan-detail__total-tsubo {
  font-size: min(4.8vw, 1.125rem);
  font-weight: 300;
}

.roomplan-detail__spec {
  max-width: min(89.3333vw, 335px);
  margin: 0 auto min(2.6667vw, 10px);
  padding-top: min(2.6667vw, 10px);
  padding-bottom: min(2.6667vw, 10px);
  border-top: 1px solid var(--text-color);
  border-bottom: 1px solid var(--text-color);
  text-align: center;
}

.roomplan-detail__spec-item {
  font-size: min(4.2667vw, 1rem);
  font-weight: 300;
  line-height: 1.6;
  color: var(--text-color);
}

.roomplan-detail__note,
.roomplan-detail__caution {
  font-size: min(3.2vw, 0.75rem);
  font-weight: 300;
  line-height: 1.6;
  color: var(--text-color);
}

.roomplan-detail__note {
  width: fit-content;
  margin: 0 auto min(5.3333vw, 20px);
  padding: 0 min(5.3333vw, 20px);
}

/* ※ マーカー分のぶら下げインデント（折り返し行の頭を本文位置に揃える） */
.roomplan-detail__caution-item {
  padding-left: 1em;
  text-indent: -1em;
}

.roomplan-detail__floor {
  width: min(77.0667vw, 289px);
  margin: 0 auto;
}

.roomplan-detail__floor-list {
  width: min(77.0667vw, 289px);
}

.roomplan-detail__caution {
  margin-top: min(13.3333vw, 50px);
  padding: 0 min(5.3333vw, 20px);
}

.roomplan-detail__back {
  margin: min(10.6667vw, 40px) auto 0;
  border: 1px solid var(--gray-color);
  background: #fff;
  color: var(--gray-color);
}

.roomplan-detail__back::after {
  right: auto;
  left: min(5.3333vw, 20px);
  background: url("../images/common/arrow-right.svg") center / contain no-repeat;
  transform: translateY(-50%) rotate(180deg);
  filter: invert(67%);
}

.roomplan-detail__back-text {
  font-size: min(4.2667vw, 1rem);
  font-weight: 400;
}

.roomplan-detail__plan {
  position: relative;
  margin-top: min(13.3333vw, 50px);
}

/* セレクトプラン表示時のみ見えるタイトル（SELECT PLAN セレクトプラン 3LDK→2LDK） */
.roomplan-detail__select-title {
  display: none;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0 min(1.3333vw, 5px);
  margin-bottom: min(8vw, 30px);
  padding: min(0.8vw, 3px) 0;
  border-top: 1px solid var(--text-color);
  border-bottom: 1px solid var(--text-color);
  font-family: var(--main-font);
  line-height: 1.6;
}

.roomplan-detail__select-title-en {
  width: 100%;
  margin-bottom: min(1.0667vw, 4px);
  font-size: min(5.3333vw, 1.25rem);
  font-weight: 500;
  text-align: center;
  color: var(--select-plan-color);
}

.roomplan-detail__select-title-label {
  display: contents;
}

.roomplan-detail__select-title-ja {
  width: 100%;
  margin-bottom: min(1.0667vw, 4px);
  font-size: min(2.6667vw, 0.625rem);
  font-weight: 400;
  text-align: center;
  color: var(--select-plan-color);
}

.roomplan-detail__select-title-ldk {
  font-size: min(10.6667vw, 2.5rem);
  font-weight: 400;
  color: var(--text-color);
}

.roomplan-detail__select-title-ldk em {
  margin-left: min(0.8vw, 3px);
  font-size: min(6.9333vw, 1.625rem);
  font-weight: 300;
}

.roomplan-detail__select-title-ldk--after {
  display: inline-flex;
  align-items: center;
  margin-top: min(2.6667vw, 10px);
}

.roomplan-detail__select-title-after-image {
  flex: none;
  width: min(23.2vw, 87px);
  height: min(12vw, 45px);
  object-fit: contain;
}

.roomplan-detail__select-title-arrow {
  align-self: center;
  width: min(6.6667vw, 25px);
  height: min(3.7333vw, 14px);
  margin: min(2.6667vw, 10px) min(2.6667vw, 10px) 0;
  background: url("../images/roomplan-atype/select-plan-arrow.png") center /
    contain no-repeat;
}

/* セレクトプラン表示中：タイトルとベーシックプランボタンを表示、セレクトプランボタンを隠す */
.roomplan-detail__plan.is-select-plan .roomplan-detail__select-title {
  display: flex;
}

.roomplan-detail__plan.is-select-plan .roomplan-detail__select-btn {
  display: none;
}

.roomplan-detail__plan-img {
  margin-bottom: min(10.6667vw, 40px);
}

.roomplan-detail__select-btn {
  width: min(82.4vw, 309px);
  height: min(9.8667vw, 37px);
  margin: 0 auto;
  background: var(--select-plan-color);
}

.roomplan-detail__select-btn::after {
  content: none;
}

/* ベーシックプランボタン：セレクトプラン表示中のみ出す（初期状態は非表示）。
   寸法はセレクトプランボタンと共通、色と矢印だけ差し替える */
.roomplan-detail__select-btn--basic {
  display: none;
  background: var(--navy-color);
}

.roomplan-detail__plan.is-select-plan .roomplan-detail__select-btn--basic {
  display: flex;
}

/* 戻る動作なので矢印は左向き（back ボタンと同じ表現） */
.roomplan-detail__select-btn--basic::after {
  right: auto;
  left: min(5.3333vw, 20px);
  background: url("../images/common/arrow-right.svg") center / contain no-repeat;
  content: "";
  transform: translateY(-50%) rotate(180deg);
}

.roomplan-detail__select-btn-text {
  font-family: var(--main-font);
  font-size: min(4.2667vw, 1rem);
  font-weight: 600;
  color: #fff;
}

/* ==========
第1期販売・先着順申込受付（sale）
========== */

.section__content--sale {
  padding: min(16vw, 60px) 0;
}

.sale__title {
  margin-bottom: min(5.3333vw, 20px);
  font-size: min(6.4vw, 1.5rem);
  font-weight: 300;
  line-height: 1.6;
  text-align: center;
  color: var(--text-color);
}

.sale__list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(6.4vw, 24px);
}

.sale__btn {
  font-size: min(3.7333vw, 0.875rem);
  font-weight: 400;
  color: #fff;
}

.sale__btn::after {
  background: url("../images/common/arrow-right.svg") center / contain no-repeat;
}

.sale__btn:hover {
  opacity: 0.7;
}

.sale__btn--gold {
  background: linear-gradient(0deg, #665f4b 0%, #b6ae90 100%);
}

.sale__btn--red {
  background: linear-gradient(0deg, #501026 0%, #9e3c4b 100%);
}

.sale__btn--navy {
  background: linear-gradient(180deg, #00446d 0%, #00203e 100%);
}

/* サブページ用：問合せ先電話番号（ACCESSセクションを持たないページの第1期販売欄に表示） */
.sale__contact {
  margin-top: min(9.3333vw, 35px);
  text-align: center;
}

.sale__contact-lead {
  margin-bottom: min(2.6667vw, 10px);
  font-size: min(4.2667vw, 1rem);
  font-weight: 400;
  line-height: 1.6;
  color: var(--text-color);
}

.sale__tel {
  margin-bottom: min(2.6667vw, 10px);
}

.sale__tel-link {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: min(2.1333vw, 8px);
}

.sale__tel-icon {
  width: min(10.4vw, 39px);
  height: auto;
}

.sale__tel-num {
  font-size: min(10.6667vw, 2.5rem);
  font-weight: 600;
  line-height: 1.6;
  color: var(--text-color);
}

.sale__hours {
  font-size: min(3.7333vw, 0.875rem);
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
  color: var(--text-color);
}

/* 第1期販売・先着順申込受付（フッター内・ボーダー付与） */
.section__content--sale-bottom {
  border-bottom: 4px solid var(--accent-color);
  background: #eaeaea;
}

@media (min-width: 768px) {
  .section__content--roomplan-detail fadeInUp {
    padding: min(8.7848vw, 120px) 0 min(7.3206vw, 100px);
    border-top: 4px solid var(--accent-color);
  }

  .section__content--roomplan-detail fadeInUp .section-space {
    width: min(82.5769vw, 1128px);
    max-width: calc(100% - 40px);
  }

  .roomplan-detail__body {
    display: grid;
    justify-content: center;
    align-items: start;
    grid-template-columns: min(26.7936vw, 366px) min(32.0644vw, 438px);
    grid-template-rows: auto auto 1fr;
    column-gap: min(10.2489vw, 140px);
    width: min(69.1069vw, 944px);
    margin: 0 auto;
  }

  .roomplan-detail__info {
    grid-column: 1;
    grid-row: 1;
    max-width: min(26.7936vw, 366px);
  }

  .roomplan-detail__plan {
    align-self: start;
    grid-column: 2;
    grid-row: 1 / span 3;
    max-width: min(32.0644vw, 438px);
    margin-top: 0;
  }

  .roomplan-detail__plan.is-select-plan {
    margin-top: min(2.489vw, 34px);
  }

  .roomplan-detail__back {
    grid-column: 1;
    grid-row: 3;
  }

  .roomplan-detail__heading {
    width: auto;
    margin-right: auto;
    margin-bottom: max(-10px, -0.7321vw);
    margin-left: auto;
  }

  .roomplan-detail__heading-type,
  .roomplan-detail__heading-ldk {
    gap: min(0.366vw, 5px);
    padding: 0 min(2.1962vw, 30px);
    font-size: clamp(3.0938rem, 4.8316vw, 4.125rem);
  }

  .roomplan-detail__heading-type::before,
  .roomplan-detail__heading-ldk::before,
  .roomplan-detail__heading-ldk::after {
    top: 55%;
    height: min(3.5871vw, 49px);
  }

  .roomplan-detail__heading em {
    font-size: clamp(1.4063rem, 2.1962vw, 1.875rem);
  }

  .roomplan-detail__heading-ldk em {
    font-size: clamp(1.6875rem, 2.6354vw, 2.25rem);
  }

  .roomplan-detail__select-title-ldk--after {
    margin-top: min(0.7321vw, 10px);
  }

  .roomplan-detail__select-title-after-image {
    width: clamp(6.25rem, 7.7599vw, 6.625rem);
    height: min(4.3924vw, 60px);
  }

  .roomplan-detail__total {
    margin-bottom: min(0.366vw, 5px);
  }

  .roomplan-detail__total-label {
    margin-top: min(0.7321vw, 10px);
    margin-right: min(0.8785vw, 12px);
    font-size: clamp(0.75rem, 1.1713vw, 1rem);
  }

  .roomplan-detail__total-num {
    font-size: clamp(1.5rem, 3.6603vw, 3.125rem);
  }

  .roomplan-detail__total-num-sub {
    font-size: clamp(1.5rem, 2.3426vw, 2rem);
  }

  .roomplan-detail__total-tsubo {
    font-size: clamp(0.8438rem, 1.3177vw, 1.125rem);
  }

  .roomplan-detail__spec {
    max-width: 100%;
    margin-bottom: min(0.7321vw, 10px);
    padding-top: min(1.0981vw, 15px);
    padding-bottom: min(1.0981vw, 15px);
    border-bottom: 1px solid var(--text-color);
    text-align: inherit;
  }

  .roomplan-detail__spec-item {
    font-size: clamp(0.75rem, 1.1713vw, 1rem);
  }

  .roomplan-detail__note,
  .roomplan-detail__caution {
    font-size: clamp(0.5625rem, 0.8785vw, 0.75rem);
  }

  .roomplan-detail__caution {
    grid-column: 1;
    grid-row: 2;
    margin-top: min(1.0981vw, 15px);
    padding: 0 min(1.4641vw, 20px);
  }

  .roomplan-detail__note {
    margin: 0 0 min(3.6603vw, 50px);
    padding: 0;
  }

  .roomplan-detail__floor {
    width: min(21.6691vw, 296px);
    margin: 0 auto;
  }

  .roomplan-detail__floor-list {
    width: min(21.6691vw, 296px);
  }

  .roomplan-detail__back {
    width: min(20.4978vw, 280px);
    margin: min(3.9531vw, 54px) auto 0;
  }

  .roomplan-detail__back::after {
    right: auto;
    left: min(1.4641vw, 20px);
  }

  .roomplan-detail__back-text {
    font-size: clamp(0.625rem, 1.1713vw, 1rem);
  }

  .roomplan-detail__select-title {
    position: relative;
    left: 50%;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 0;
    width: min(36.8228vw, 503px);
    height: min(5.4905vw, 75px);
    margin-bottom: min(2.1962vw, 30px);
    padding: 0 min(0.5124vw, 7px);
    transform: translateX(-50%);
  }

  .roomplan-detail__select-title-en {
    width: auto;
    margin-right: 0;
    margin-bottom: 0;
    font-size: clamp(0.875rem, 1.757vw, 1.5rem);
  }

  .roomplan-detail__select-title-ja {
    width: auto;
    margin-right: 0;
    margin-bottom: 0;
    font-size: clamp(0.4688rem, 0.7321vw, 0.625rem);
    text-align: left;
  }

  .roomplan-detail__select-title-label {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0 min(0.7321vw, 10px);
    margin-top: clamp(0.1875rem, -0.3744rem + 1.1706vw, 0.625rem);
    margin-right: min(0.8785vw, 12px);
  }

  .roomplan-detail__select-title-ldk {
    font-size: clamp(2.1563rem, 3.3675vw, 2.875rem);
  }

  .roomplan-detail__select-title-ldk em {
    margin-left: min(0.2196vw, 3px);
    font-size: clamp(1.2188rem, 1.9034vw, 1.625rem);
  }

  .roomplan-detail__select-title-arrow {
    width: min(1.8302vw, 25px);
    height: min(1.0249vw, 14px);
    margin: min(1.0981vw, 15px) min(0.8053vw, 11px) 0 min(0.366vw, 5px);
  }

  .roomplan-detail__plan-img {
    margin-bottom: min(3.6603vw, 50px);
  }

  .roomplan-detail__select-btn {
    width: min(22.6208vw, 309px);
    height: min(2.7086vw, 37px);
  }

  .roomplan-detail__select-btn:hover {
    opacity: 0.7;
  }

  .roomplan-detail__select-btn--basic::after {
    left: min(1.4641vw, 20px);
  }

  .roomplan-detail__select-btn-text {
    font-size: clamp(0.75rem, 1.3177vw, 1.125rem);
  }

  .section__content--sale {
    padding: min(7.3206vw, 100px) 0;
  }

  .section__content--sale .section-space {
    width: min(65.9vw, 900px);
    max-width: calc(100% - 40px);
  }

  .sale__title {
    margin-bottom: min(2.9283vw, 40px);
    font-size: clamp(2.1563rem, 3.3675vw, 2.875rem);
  }

  .sale__list {
    flex-direction: row;
    justify-content: center;
    gap: min(2.1972vw, 30px);
  }

  .sale__btn {
    font-size: clamp(0.75rem, 1.1713vw, 1rem);
  }

  .sale__contact {
    margin-top: min(2.9283vw, 40px);
  }

  .sale__contact-lead {
    margin-bottom: min(0.7321vw, 10px);
    font-size: clamp(1rem, 1.7607vw, 1.5rem);
  }

  .sale__tel {
    margin-bottom: min(0.7321vw, 10px);
  }

  .sale__tel-link {
    gap: min(0.5857vw, 8px);
  }

  .sale__tel-icon {
    width: min(2.8551vw, 39px);
  }

  .sale__tel-num {
    font-size: clamp(2.25rem, 3.5139vw, 3rem);
  }

  .sale__hours {
    font-size: clamp(0.75rem, 1.1713vw, 1rem);
  }

  /* 第1期販売・先着順申込受付（フッター内） */
  .section__content--sale-bottom {
    padding: min(4.3924vw, 60px) 0;
  }
}

/* ==========
注釈
========== */

.section__content--annotation {
  padding: min(32.5333vw, 122px) 0;
}

.annotation__text {
  font-size: min(4.2667vw, 1rem);
  font-weight: 300;
  color: #d000ff;
  text-align: center;
  font-family: var(--gothic);
  border-bottom: none;
}

@media (min-width: 768px) {
  .section__content--annotation {
    padding: min(7.3206vw, 100px) 0;
  }

  .annotation__text {
    font-size: clamp(0.75rem, 1.1713vw, 1rem);
  }
}

.annotation {
  padding: 50px 20px;
  margin-bottom: 20px;
  border-bottom: none;
  background-color: #fff;
}
.annotation__caption {
  line-height: 1.5;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  font-size: 14px;
  line-height: calc(20 / 14);
}
.annotation__advertising {
  margin-bottom: 2em;
}
.annotation__advertising__icon {
  padding: 0.3em 1.5em;
  border: 1px solid #000;
  text-align: center;
  margin-bottom: 10px;
  margin-top: 30px;
}

@media (min-width: 768px) {
  .annotation {
    padding: 90px 20px 90px;
  }
  .annotation__caption {
    font-size: 14px;
    line-height: 24px;
    /* max-width: 900px; */
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }
  .annotation__advertising__note {
    margin-bottom: 20px;
  }
  .annotation__advertising {
    display: flex;
    margin-right: 15px;
    align-items: center;
  }
  .annotation__advertising__note {
    margin-bottom: 20px;
  }
  .annotation__advertising__icon {
    padding: 0.3em 1.5em;
    display: inline-flex;
    white-space: nowrap;
    margin-left: -0.5em;
    margin-right: 15px;
    align-items: center;
    justify-content: center;
    margin: 0 15px 0 0;
    max-height: 50px;
  }
}
