/* =========================================
   プレミアムプラン ページ
========================================= */

/* ==========
共通：見出し（ゴシック＋明朝の混植）
========== */

.premiumplan-heading {
  font-weight: 500;
  line-height: 1.8;
  text-align: center;
  color: var(--text-color);
}

.premiumplan-heading__gothic {
  font-family: var(--gothic);
  font-weight: 400;
}

.premiumplan-heading__mincho {
  font-family: var(--mincho);
  font-weight: 500;
}

.premiumplan-heading__serif {
  font-family: var(--main-font);
  font-weight: 400;
}

/* ==========
ページタイトル
========== */

.section__content--premiumplan-title {
  padding: min(6.4vw, 24px) 0 min(5.3333vw, 20px);
  border-bottom: 4px solid var(--accent-color);
}

.premiumplan-title__en {
  width: min(47.7333vw, 179px);
  margin: 0 auto 4px;
}

.premiumplan-title__ja {
  display: block;
  font-size: min(3.2vw, 0.75rem);
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
  color: var(--text-color);
}

@media (min-width: 768px) {
  .section__content--premiumplan-title {
    padding: min(2.6354vw, 36px) 0 min(1.6837vw, 23px);
    border-top: 4px solid var(--accent-color);
  }

  .premiumplan-title__en {
    width: clamp(7.5rem, -2.3729rem + 20.5686vw, 15.1875rem);
    margin-bottom: min(0.7326vw, 10px);
  }

  .premiumplan-title__ja {
    font-size: clamp(0.5625rem, 0.8785vw, 0.75rem);
  }
}

/* ==========
私邸という名の、選ばれた3邸。（紺背景ヒーロー）
========== */

.section__content--premiumplan-hero {
  padding: min(10.6667vw, 40px) 0;
  background-color: var(--navy-color);
}

.premiumplan-hero__title {
  margin-bottom: min(5.3333vw, 20px);
  font-size: min(4.2667vw, 1rem);
  letter-spacing: 0.3em;
  color: #fff;
}

.premiumplan-hero__text {
  margin-bottom: min(13.3333vw, 50px);
  font-size: min(3.2vw, 0.75rem);
  font-weight: 400;
  line-height: 1.7;
  text-align: center;
  color: #fff;
}

.premiumplan-hero__floorplans {
  display: flex;
  flex-direction: column;
  gap: min(9.3333vw, 35px);
  max-width: 500px;
  margin: 0 auto;
}

.premiumplan-hero__floorplan--top {
  margin-left: min(5.3333vw, 20px);
}

.premiumplan-hero__floorplan {
  text-align: center;
}

.premiumplan-hero__floorplan-img {
  width: 100%;
}

@media (min-width: 768px) {
  .section__content--premiumplan-hero {
    margin-bottom: min(4.3924vw, 60px);
    padding: min(5.8565vw, 80px) 0 min(4.3924vw, 60px);
  }

  .section__content--premiumplan-hero .section-space {
    width: min(74.6706vw, 1020px);
    max-width: calc(100% - 40px);
  }

  .premiumplan-hero__title {
    margin-bottom: min(2.929vw, 40px);
    font-size: clamp(1.125rem, 1.757vw, 1.5rem);
    letter-spacing: 0.4em;
  }

  .premiumplan-hero__text {
    margin-bottom: min(4.3924vw, 60px);
    font-size: clamp(0.75rem, 1.1713vw, 1rem);
    line-height: 1.8;
    letter-spacing: 0.1em;
  }

  .premiumplan-hero__floorplans {
    flex-direction: row;
    justify-content: center;
    gap: min(6.9546vw, 95px);
    max-width: 100%;
  }

  .premiumplan-hero__floorplan {
    flex: 0 1 auto;
    min-width: 0;
    max-width: none;
  }

  .premiumplan-hero__floorplan--6th {
    width: min(32.2108vw, 440px);
  }

  .premiumplan-hero__floorplan--top {
    width: min(35.2123vw, 481px);
    margin: 0;
  }
}

/* ==========
VIEW（最上階眺望動画）
========== */

.section__content--premiumplan-view {
  margin-bottom: min(16vw, 60px);
  padding: min(13.3333vw, 50px) 0;
  box-shadow: 0 5px 5px rgba(0, 0, 0, 0.3);
  background-color: var(--beige-color);
}

.premiumplan-view__label-row {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(5.3333vw, 20px);
  margin-bottom: min(5.3333vw, 20px);
}

.premiumplan-view__label-row::before,
.premiumplan-view__label-row::after {
  width: 100%;
  height: 1px;
  background-color: var(--text-color);
  content: "";
}

.premiumplan-view__label {
  width: min(23.4667vw, 88px);
}

.premiumplan-view__lead {
  margin-bottom: min(8vw, 30px);
  font-size: min(4.2667vw, 1rem);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.3em;
  color: var(--text-color);
}

.premiumplan-view__movie {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  /* height: min(50.6667vw, 190px);
  max-width: 500px; */
  margin: 0 auto;
  background-color: var(--placeholder-color);
  aspect-ratio: 16 / 9;
}
.premiumplan-view__movie video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.premiumplan-view__movie-note {
  font-size: min(3.2vw, 0.75rem);
  color: var(--placeholder-text-color);
}

@media (min-width: 768px) {
  .section__content--premiumplan-view {
    padding: min(4.3924vw, 60px) 0 min(4.3924vw, 60px);
    margin-bottom: min(4.3924vw, 60px);
  }

  .premiumplan-view__label-row {
    gap: min(1.4641vw, 20px);
    margin-bottom: min(2.1962vw, 30px);
  }

  .premiumplan-view__label-row::before,
  .premiumplan-view__label-row::after {
    max-width: min(3.4407vw, 47px);
  }

  .premiumplan-view__label {
    width: clamp(7.5625rem, 6.6796rem + 1.8395vw, 8.25rem);
  }

  .premiumplan-view__lead {
    margin-bottom: min(3.6603vw, 50px);
    font-size: clamp(1.125rem, 1.757vw, 1.5rem);
    letter-spacing: 0.4em;
  }

  .premiumplan-view__movie {
    width: min(47.2914vw, 646px);
    height: min(28.5652vw, 390px);
  }

  .premiumplan-view__movie-note {
    font-size: clamp(0.6563rem, 1.0249vw, 0.875rem);
  }
}

/* ==========
タイプ共通セクション
========== */

.section__content--premiumplan-type {
  position: relative;
  margin-bottom: min(16vw, 60px);
  padding: min(13.3333vw, 50px) 0;
  box-shadow: 0 5px 5px rgba(0, 0, 0, 0.3);
  background-color: var(--beige-color);
  scroll-margin-top: var(--header-height);
}

.premiumplan-type__head {
  margin-bottom: min(10.6667vw, 40px);
  text-align: center;
}

.premiumplan-type__lead {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(3.2vw, 12px);
  margin-bottom: min(5.3333vw, 20px);
  font-family: var(--gothic);
  font-size: min(4.2667vw, 1rem);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.3em;
  color: var(--text-color);
  text-wrap: balance;
}

.premiumplan-type__lead::before,
.premiumplan-type__lead::after {
  flex: 1 1 min(10.6667vw, 40px);
  width: 100%;
  height: 1px;
  background-color: var(--text-color);
  content: "";
}

.premiumplan-type__lead-text {
  margin-right: -0.3em;
  text-align: center;
}

.premiumplan-type--f .premiumplan-type__lead-text {
  flex-shrink: 0;
}

.premiumplan-type__heading {
  width: min(53.3333vw, 200px);
  margin: 0 auto;
}

.premiumplan-type__lead-row {
  display: flex;
  flex-direction: column;
}

.premiumplan-type__photos {
  position: relative;
  width: 100vw;
  margin: 0 calc(50% - 50vw) min(8vw, 30px);
}

.premiumplan-type__photos.c-gold-frame::before {
  padding: var(--gold-frame-width) 0;
}

.premiumplan-type__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.premiumplan-type__photos .premiumplan-type__photo {
  aspect-ratio: 375 / 270;
}

.premiumplan-type__caption {
  position: absolute;
  bottom: min(2.6667vw, 10px);
  left: min(2.6667vw, 10px);
  z-index: 2;
  font-size: min(2.6667vw, 0.625rem);
  font-weight: 400;
  color: var(--text-color);
}

.premiumplan-type__caption--right {
  right: min(2.6667vw, 10px);
  left: auto;
}

.premiumplan-type__caption--white {
  color: #fff;
}

.premiumplan-type__spec {
  margin-bottom: min(10.6667vw, 40px);
}

.premiumplan-type__spec-row {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(4.8vw, 18px);
  margin-bottom: min(5.3333vw, 20px);
}

.premiumplan-type__spec-title {
  font-size: min(4.8vw, 1.125rem);
  font-weight: 500;
  text-align: center;
  color: var(--text-color);
}

.section__content--premiumplan-type.premiumplan-type--f
  .premiumplan-type__spec-title,
.section__content--premiumplan-type.premiumplan-type--g
  .premiumplan-type__spec-title {
  letter-spacing: 0.3em;
}

.premiumplan-type__spec-row picture {
  display: block;
}

.premiumplan-type__spec-num {
  width: auto;
  height: min(13.0667vw, 49px);
}

.section__content--premiumplan-type.premiumplan-type--g
  .premiumplan-type__spec-num {
  height: min(11.7333vw, 44px);
}

.premiumplan-type__spec-text {
  font-size: min(3.2vw, 0.75rem);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
  text-align: left;
  color: var(--text-color);
}

.premiumplan-type__spec-annotation {
  font-size: min(2.6667vw, 0.625rem);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: var(--text-color);
}

.premiumplan-type__spec-text:has(+ .premiumplan-type__spec-annotation) {
  margin-bottom: min(1.3333vw, 5px);
}

.premiumplan-type__note {
  margin-bottom: min(10.6667vw, 40px);
}

.premiumplan-type__note-title {
  margin-bottom: min(5.3333vw, 20px);
  padding-bottom: min(2.6667vw, 10px);
  border-bottom: 1px solid var(--text-color);
  font-size: min(4.2667vw, 1rem);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--text-color);
}

.premiumplan-type__note-text {
  font-size: min(3.2vw, 0.75rem);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: var(--text-color);
}

.premiumplan-type__trio,
.premiumplan-type__suite,
.premiumplan-type__suite-body {
  display: flex;
  flex-direction: column;
}

/* SPは 写真→解説→写真→解説 の縦積み。HTMLは
   写真1・解説1・解説2・写真2 の順（PCの折返し2段組みで
   写真と対応する解説を隣り合わせるため）なので、orderで並べ替える */
.premiumplan-type__trio > .premiumplan-type__trio-photo:first-child {
  order: 1;
}

.premiumplan-type__trio
  > .premiumplan-type__note:not(.premiumplan-type__note--right) {
  order: 2;
}

.premiumplan-type__trio > .premiumplan-type__trio-photo:last-child {
  order: 3;
}

.premiumplan-type__trio > .premiumplan-type__note--right {
  order: 4;
}

.premiumplan-type__trio-photo,
.premiumplan-type__suite-photo {
  position: relative;
  margin-bottom: min(5.3333vw, 20px);
}

.premiumplan-type__trio-photo .premiumplan-type__photo {
  aspect-ratio: 335 / 290;
}

.premiumplan-type--e1 .premiumplan-type__trio-photo .premiumplan-type__photo {
  aspect-ratio: 335 / 351;
}

.premiumplan-type__suite-photo .premiumplan-type__photo {
  aspect-ratio: 335 / 386;
}

.premiumplan-type__features {
  display: flex;
  flex-direction: column;
  gap: min(10.6667vw, 40px);
  margin-bottom: min(10.6667vw, 40px);
}

.premiumplan-type__feature-title {
  margin-bottom: min(2.6667vw, 10px);
  font-size: min(4.2667vw, 1rem);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--text-color);
}

.premiumplan-type__feature-photo {
  position: relative;
  margin-bottom: min(5.3333vw, 20px);
}

.premiumplan-type__feature-photo .premiumplan-type__photo {
  aspect-ratio: 335 / 290;
}

.premiumplan-type__feature-text {
  font-size: min(3.2vw, 0.75rem);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: var(--text-color);
}

.premiumplan-type__badges {
  display: flex;
  flex-direction: column;
  gap: min(5.3333vw, 20px);
  margin-bottom: min(10.6667vw, 40px);
}

.premiumplan-type__badge {
  padding: min(6.4vw, 24px) min(4vw, 15px);
  border: 1px solid var(--dark-brown-color);
  background-color: rgba(255, 255, 255, 0.3);
  font-size: min(4.8vw, 1.125rem);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--dark-brown-color);
}

.premiumplan-type__btn {
  margin: 0 auto;
  background: linear-gradient(
    0deg,
    var(--dark-brown-color) 0%,
    var(--dark-brown-color-deep) 100%
  );
  color: #fff;
}

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

.premiumplan-type__btn:hover {
  opacity: 0.7;
}

@media (min-width: 768px) {
  .section__content--premiumplan-type {
    margin-bottom: min(4.3924vw, 60px);
    padding: min(4.3924vw, 60px) 0;
  }

  .section__content--premiumplan-type.premiumplan-type--g {
    margin-bottom: min(7.3206vw, 100px);
  }

  .section__content--premiumplan-type .section-space {
    width: min(77.8184vw, 1063px);
    max-width: calc(100% - 40px);
  }

  .premiumplan-type__head {
    margin-bottom: min(4.3924vw, 60px);
  }

  .premiumplan-type__lead {
    margin-bottom: min(2.1962vw, 30px);
    gap: min(1.4641vw, 20px);
    font-size: clamp(1.125rem, 1.757vw, 1.5rem);
  }

  .premiumplan-type__lead::before,
  .premiumplan-type__lead::after {
    flex: 0 0 min(3.4407vw, 47px);
  }

  .premiumplan-type__heading {
    width: min(39.3851vw, 538px);
  }

  .premiumplan-type__lead-row {
    flex-direction: row;
    align-items: center;
    gap: clamp(1.5625rem, -3.8154rem + 11.204vw, 5.75rem);
    margin-bottom: min(4.3924vw, 60px);
  }

  .premiumplan-type__lead-row .premiumplan-type__photos {
    flex: 0 0 min(40.1903vw, 549px);
    margin-bottom: 0;
  }

  .premiumplan-type__lead-row .premiumplan-type__spec {
    flex: 1;
    margin-bottom: 0;
    text-align: left;
  }

  .premiumplan-type__photos {
    width: auto;
    margin: 0 0 min(4.3924vw, 60px);
  }

  .premiumplan-type__photos.c-gold-frame::before {
    padding: var(--gold-frame-width);
  }

  .premiumplan-view__movie,
  .premiumplan-type__photos {
    --gold-frame-width: min(0.366vw, 5px);
  }

  .premiumplan-type__photos .premiumplan-type__photo {
    aspect-ratio: 549 / 344;
  }

  .premiumplan-type__caption {
    right: min(1.0981vw, 15px);
    bottom: min(1.0981vw, 15px);
    font-size: clamp(0.5625rem, 0.8785vw, 0.75rem);
  }

  .premiumplan-type__caption--right {
    right: min(0.7321vw, 10px);
  }

  .premiumplan-type__spec {
    margin-bottom: min(4.3924vw, 60px);
  }

  .premiumplan-type__spec-row {
    justify-content: flex-start;
    gap: min(1.4641vw, 20px);
    margin-bottom: min(2.5622vw, 35px);
  }

  .premiumplan-type__spec-title {
    font-size: clamp(0.875rem, 1.3177vw, 1.125rem);
  }

  .premiumplan-type__spec-num {
    height: min(4.1728vw, 57px);
  }

  .section__content--premiumplan-type.premiumplan-type--f
    .premiumplan-type__spec-num {
    height: min(5.1977vw, 71px);
  }

  .section__content--premiumplan-type.premiumplan-type--g
    .premiumplan-type__spec-num {
    height: min(4.1728vw, 57px);
  }

  .premiumplan-type__spec-text {
    max-width: none;
    margin: 0;
    font-size: clamp(0.75rem, 1.1713vw, 1rem);
  }

  .premiumplan-type__spec-annotation {
    max-width: none;
    margin: 0;
    font-size: clamp(0.5625rem, 0.8785vw, 0.75rem);
  }

  .premiumplan-type__spec-text:has(+ .premiumplan-type__spec-annotation) {
    margin-bottom: 20px;
  }

  .premiumplan-type__trio {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: min(4.3924vw, 60px) min(2.9283vw, 40px);
    margin-bottom: min(4.3924vw, 60px);
  }

  .premiumplan-type__trio > .premiumplan-type__trio-photo:first-child {
    order: 1;
  }

  .premiumplan-type__trio
    > .premiumplan-type__note:not(.premiumplan-type__note--right) {
    order: 2;
  }

  .premiumplan-type__trio > .premiumplan-type__note--right {
    order: 3;
  }

  .premiumplan-type__trio > .premiumplan-type__trio-photo:last-child {
    order: 4;
  }

  .premiumplan-type__trio-photo {
    --gold-frame-width: min(0.366vw, 5px);
    flex: 0 0 auto;
    width: min(calc(45% - min(2.9283vw, 40px)), 340px);
    margin-bottom: 0;
  }

  .premiumplan-type__trio > .premiumplan-type__note {
    flex: 0 0 auto;
    width: min(calc(55% - min(2.9283vw, 40px)), 380px);
    margin-bottom: 0;
  }

  .premiumplan-type--e1 .premiumplan-type__trio-photo .premiumplan-type__photo {
    aspect-ratio: 340 / 448;
  }

  .premiumplan-type--g .premiumplan-type__trio-photo .premiumplan-type__photo {
    aspect-ratio: 373 / 386;
  }

  .premiumplan-type__suite {
    flex-direction: row;
    align-items: flex-start;
    gap: 0;
    width: min(77.8184vw, 1063px);
    margin-bottom: min(4.3924vw, 60px);
  }

  .premiumplan-type__suite-photo {
    --gold-frame-width: min(0.366vw, 5px);
    flex: 0 0 min(27.8184vw, 380px);
    margin-bottom: 0;
  }

  .premiumplan-type__suite-photo .premiumplan-type__photo {
    aspect-ratio: 380 / 500;
  }

  .premiumplan-type__suite-body {
    flex: 1;
    gap: min(2.1962vw, 30px);
  }

  .premiumplan-type__suite-body .premiumplan-type__note-title,
  .premiumplan-type__suite-body .premiumplan-type__note-text,
  .premiumplan-type__suite-body .premiumplan-type__features {
    padding-left: min(3.8799vw, 53px);
  }

  .premiumplan-type__note {
    margin-bottom: 0;
  }

  .premiumplan-type__note-title {
    margin-bottom: min(0.7321vw, 10px);
    padding-bottom: min(0.7321vw, 10px);
    font-size: clamp(0.75rem, 1.1713vw, 1rem);
    text-align: left;
  }

  .premiumplan-type__note--right .premiumplan-type__note-title {
    text-align: right;
  }

  .premiumplan-type__suite-body .premiumplan-type__note-title {
    margin-bottom: min(1.4641vw, 20px);
    font-size: clamp(0.875rem, 1.4641vw, 1.25rem);
    letter-spacing: 0.4em;
  }

  .premiumplan-type__suite-body .premiumplan-type__note-text {
    font-size: clamp(0.75rem, 1.1713vw, 1rem);
  }

  .premiumplan-type__note-text {
    font-size: clamp(0.75rem, 1.0249vw, 0.875rem);
  }

  .premiumplan-type__features {
    flex-direction: row;
    gap: min(2.1962vw, 30px);
    margin-bottom: 0;
  }

  .premiumplan-type__feature {
    flex: 1;
  }

  .premiumplan-type__feature-title {
    margin-bottom: min(0.7321vw, 10px);
    padding-bottom: 0;
    border-bottom: 0;
    font-size: clamp(0.875rem, 1.1713vw, 1rem);
  }

  .premiumplan-type__feature-photo {
    --gold-frame-width: min(0.366vw, 5px);
    margin-bottom: min(1.4641vw, 20px);
  }

  .premiumplan-type--f
    .premiumplan-type__feature-photo
    .premiumplan-type__photo {
    aspect-ratio: 300 / 269;
  }

  .premiumplan-type__feature-text {
    font-size: clamp(0.75rem, 1.0249vw, 0.875rem);
    text-align: left;
  }

  .premiumplan-type__badges {
    flex-direction: row;
    gap: min(4.3924vw, 60px);
    margin-bottom: min(4.3924vw, 60px);
  }

  .premiumplan-type__badge {
    display: flex;
    justify-content: center;
    align-items: center;
    flex: 1;
    height: min(7.7599vw, 106px);
    padding: 0 min(1.0981vw, 15px);
    border-width: 2px;
    font-size: clamp(0.875rem, 1.4641vw, 1.25rem);
    line-height: 1.6;
    text-wrap: balance;
  }

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

/* ==========
第1期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,
    var(--gold-btn-from) 0%,
    var(--gold-btn-to) 100%
  );
}

.sale__btn--red {
  background: linear-gradient(
    0deg,
    var(--red-btn-from) 0%,
    var(--red-btn-to) 100%
  );
}

.sale__btn--navy {
  background: linear-gradient(
    180deg,
    var(--navy-btn-from) 0%,
    var(--navy-btn-to) 100%
  );
}

.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);
}

.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);
}

.section__content--sale-bottom {
  /* border-top: 4px solid var(--accent-color);
  border-bottom: 4px solid var(--accent-color);
  background: var(--sale-bottom-bg); */
}

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

  .section__content--sale .section-space {
    width: min(65.8858vw, 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);
  }

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

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

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

/* .annotation__text {
  font-family: var(--main-font);
  font-size: min(3.2vw, 0.75rem);
  line-height: 1.6;
  text-align: left;
  color: var(--text-color);
} */

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

  .section__content--annotation .section-space {
    width: min(73.2064vw, 1000px);
    max-width: calc(100% - 40px);
  }

  .annotation__text {
    font-size: clamp(0.6563rem, 1.0249vw, 0.875rem);
    line-height: 1.8;
    letter-spacing: 0.01em;
  }
}

/* 1200px以上はFigma通りの3カラム（写真｜解説2本を縦積み｜写真）。
   これ未満は上の768px指定による2段組みで、中央解説の窮屈化を回避する */
/* stylelint-disable-next-line media-feature-name-value-allowed-list -- 3カラムが成立する最小幅が1200pxのため、意図的に追加BPを使う */
@media (min-width: 1200px) {
  .premiumplan-type__trio {
    display: grid;
    align-items: start;
    grid-template-columns: min(24.8902vw, 340px) 1fr min(24.8902vw, 340px);
    gap: min(2.1962vw, 30px) 0;
  }

  .premiumplan-type--e1 .premiumplan-type__trio-photo .premiumplan-type__photo {
    aspect-ratio: 340 / 448;
  }

  .premiumplan-type--g .premiumplan-type__trio-photo .premiumplan-type__photo {
    aspect-ratio: 373 / 386;
  }

  /* 768px指定で写真・解説にwidthとflexを持たせているため、
     3カラムではgridのカラム幅に従うようwidthを解除する */
  .premiumplan-type__trio-photo {
    grid-row: 1 / span 2;
    width: auto;
  }

  .premiumplan-type__trio > .premiumplan-type__trio-photo:first-child {
    grid-column: 1;
  }

  .premiumplan-type__trio > .premiumplan-type__trio-photo:last-child {
    grid-column: 3;
  }

  .premiumplan-type__trio > .premiumplan-type__note {
    --note-inset: min(2.9283vw, 40px);
    grid-column: 2;
    grid-row: 1;
    width: min(23.2796vw, 318px);
    margin-bottom: 0;
    padding-top: min(2.1962vw, 30px);
    justify-self: start;
  }

  .premiumplan-type__trio > .premiumplan-type__note--right {
    --note-inset: min(1.4641vw, 20px);
    grid-row: 2;
    width: min(22.694vw, 310px);
    padding-top: 0;
    justify-self: end;
  }

  .premiumplan-type__trio .premiumplan-type__note-title,
  .premiumplan-type__trio .premiumplan-type__note-text {
    padding-left: var(--note-inset);
  }

  .premiumplan-type__trio
    .premiumplan-type__note--right
    .premiumplan-type__note-title,
  .premiumplan-type__trio
    .premiumplan-type__note--right
    .premiumplan-type__note-text {
    padding-right: var(--note-inset);
    padding-left: 0;
  }
}
