/* 物件切替: 選択物件に応じて表裏コンテンツを出し分ける土台 */
[data-prop] { }
body[data-property="saihocho"] [data-prop="nishikimachi"] { display: none !important; }
body[data-property="nishikimachi"] [data-prop="saihocho"] { display: none !important; }

/* FV common copy: building visual removed per client request, so shrink the FV height to fit the copy only. */
.c-main-visual__wrapper {
  min-height: 30rem;
}

.c-main-visual__inner {
  margin-left: auto;
  margin-right: auto;
}

.c-main-visual__eye-catch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  /* min-height: 7.25rem; */
  max-width: none;
  padding: 0.875rem 2rem;
  border: 4px solid #ffde6a;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 0.625rem 1.5rem rgba(12, 81, 12, 0.14);
  color: #0c510c;
  text-align: center;
  margin-bottom: 20px;
}

.c-main-visual__eye-catch-text {
  display: grid;
  gap: 0.25rem;
  line-height: 1.2;
}

.c-main-visual__eye-catch-text .is-date {
  color: #327d64;
  font-family: "Poppins", "Roboto", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.c-main-visual__eye-catch-text .is-label {
  color: #0c510c;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.c-main-visual__title {
  max-width: 36rem;
  line-height: 1.22;
}

.c-main-visual__title-sub {
  display: block;
  font-size: 1.375rem;
  font-weight: 700;
}

.c-main-visual__title-main {
  display: block;
  margin-top: 0.25rem;
  font-size: 2.875rem;
}

.c-main-visual__info-text {
  margin: 0;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.05em;
}

.c-main-visual__bubble {
  min-width: 7.5rem;
  text-align: center;
}

/* MOVIEセクションは緑背景のためキャプションは白 */
.c-movie-caption {
  margin-top: 0.75rem;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.6;
}

.c-image-caption {
  margin: 0;
}

.c-image-caption img {
  display: block;
  width: 100%;
}

.c-image-caption figcaption,
.c-slider-gallery--static figcaption {
  margin-top: 0.5rem;
  color: #0c510c;
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.5;
}

.c-gallery--static .c-gallery__wrapper {
  display: block;
}

.c-gallery__main--static {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  width: 100%;
}

.c-gallery__static-item {
  position: relative;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 0.625rem 1.5rem rgba(12, 81, 12, 0.08);
}

.c-gallery__static-item .c-gallery__main-image,
.c-gallery__placeholder {
  aspect-ratio: 16 / 10;
}

.c-gallery__static-item .c-gallery__main-image {
  position: relative;
  overflow: hidden;
}

/* 縦横比の異なる支給写真(4:3等)が枠を押し広げて行の高さが崩れないよう、絶対配置でcoverする */
.c-gallery__static-item .c-gallery__main-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-gallery__placeholder,
.c-access-map__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 13rem;
  padding: 1.5rem;
  background: repeating-linear-gradient(135deg, #fff7d6 0, #fff7d6 12px, #f7e7a6 12px, #f7e7a6 24px);
  color: #0c510c;
  text-align: center;
  font-weight: 700;
  line-height: 1.7;
}

.c-slider-gallery--static .c-slider-gallery__inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  max-width: 75rem;
  margin: 0 auto;
}

.c-slider-gallery--static .c-slider-gallery__item {
  width: auto;
  margin: 0;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 0.625rem 1.5rem rgba(12, 81, 12, 0.08);
}

.c-slider-gallery--static .c-slider-gallery__item img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.c-slider-gallery--static .c-slider-gallery__item:last-child img {
  object-fit: contain;
  background: #fff;
}

.c-slider-gallery--static figcaption {
  padding: 0 0.875rem 0.875rem;
}

.c-price__table--html {
  align-items: stretch;
  gap: 1.25rem;
}

.c-price__item--monthly {
  flex: 1 1 38rem;
}

.c-price__item--initial {
  flex: 0 1 28.375rem;
}

.c-price-html {
  width: 100%;
  min-width: 41.5625rem;
  border-collapse: collapse;
  table-layout: fixed;
  background: #fff;
  color: #0c510c;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.c-price-html--initial {
  min-width: 28.375rem;
}

.c-price-html th,
.c-price-html td {
  border: 1px solid #f2f2f1;
  padding: 0.5rem 0.5rem;
  text-align: center;
  vertical-align: middle;
  letter-spacing: 0;
}

.c-price-html th {
  background: #d9e6de;
}

.c-price-html__side {
  background: #327d64 !important;
  color: #fff;
  font-size: 1.0625rem;
}

.c-price-html__group,
.c-price-html__label {
  font-size: 0.875rem;
}

.c-price-html td {
  font-size: 0.875rem;
}

.c-price-html strong {
  font-size: 1.3em;
  line-height: 1;
}

.c-price-html__col-side {
  width: 6.1875rem;
}

.c-price-html__col-group {
  width: 4.25rem;
}

.c-price-html__col-label {
  width: 7.125rem;
}

.c-price-html__col-value {
  width: 10.875rem;
}

.c-price-html--initial .c-price-html__col-side {
  width: 4.625rem;
}

.c-price-html--initial .c-price-html__col-group {
  width: 3.875rem;
}

.c-price-html--initial .c-price-html__col-label {
  width: 7.125rem;
}

.c-price-html--initial .c-price-html__col-value {
  width: 10.875rem;
}

.c-price[data-prop="nishikimachi"] .c-price-html {
  border-collapse: collapse;
  background: #f2f2f1;
  color: #0c510c;
}

.c-price[data-prop="nishikimachi"] .c-price-html th,
.c-price[data-prop="nishikimachi"] .c-price-html td {
  border: 1px solid #f2f2f1;
  padding: 0.25rem 0.375rem;
  white-space: nowrap;
}

.c-price[data-prop="nishikimachi"] .c-price-html th {
  background: #d9e6de;
}

.c-price[data-prop="nishikimachi"] .c-price-html__blank--side {
  background: #f2f2f1 !important;
}

.c-price[data-prop="nishikimachi"] .c-price-html__side {
  background: #327d64 !important;
  color: #fff;
  font-size: 0.8125rem;
}

.c-price[data-prop="nishikimachi"] .c-price-html__group,
.c-price[data-prop="nishikimachi"] .c-price-html__label,
.c-price[data-prop="nishikimachi"] .c-price-html td {
  font-size: 0.8125rem;
}

.c-price[data-prop="nishikimachi"] .c-price-html strong {
  font-size: 1.25em;
}

[data-prop="nishikimachi"] .c-price__item--monthly .c-price-html tr:last-child td {
  font-size: 0.8125rem;
}

[data-prop="nishikimachi"] .c-price__item--monthly .c-price-html tr:last-child strong {
  font-size: 1em;
}

[data-prop="nishikimachi"] .c-price-html__col-side {
  width: 7.5rem;
}

[data-prop="nishikimachi"] .c-price-html__col-group {
  width: 4.25rem;
}

[data-prop="nishikimachi"] .c-price-html__col-label {
  width: 6.625rem;
}

[data-prop="nishikimachi"] .c-price-html__col-value {
  width: 11.25rem;
}

[data-prop="nishikimachi"] .c-price-html--initial .c-price-html__col-side {
  width: 7.5rem;
}

[data-prop="nishikimachi"] .c-price-html--initial .c-price-html__col-group {
  width: 5.875rem;
}

[data-prop="nishikimachi"] .c-price-html--initial .c-price-html__col-label {
  width: 5rem;
}

[data-prop="nishikimachi"] .c-price-html--initial .c-price-html__col-value {
  width: 9.4375rem;
}

.c-price__notes {
  margin-top: 1rem;
  color: #0c510c;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.7;
}

.c-price__notes p {
  margin: 0;
}

.c-price__notes p + p {
  margin-top: 0.25rem;
}

.c-property-tabs {
  position: relative;
  z-index: 2;
  margin-top: -0.25rem;
  padding: 3rem 0 0;
  background-color: #f2f2f1;
}

.c-property-tabs__items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.c-property-tabs__card {
  appearance: none;
  display: grid;
  grid-template-columns: minmax(11.25rem, 44%) minmax(0, 1fr);
  width: 100%;
  min-height: 13.75rem;
  padding: 0;
  overflow: hidden;
  border: 2px solid rgba(12, 81, 12, 0.16);
  border-radius: 8px;
  background: #fff;
  color: #0c510c;
  text-align: left;
  box-shadow: 0 0.75rem 1.875rem rgba(12, 81, 12, 0.08);
  cursor: pointer;
  opacity: 0.78;
  position: relative;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.c-property-tabs__card.is-active {
  border-color: #327d64;
  box-shadow: 0 1.125rem 2.5rem rgba(12, 81, 12, 0.18);
  opacity: 1;
}

.c-property-tabs__card.is-active::after {
  position: absolute;
  inset: 0;
  border: 4px solid rgba(255, 222, 106, 0.9);
  border-radius: 6px;
  pointer-events: none;
  content: "";
}

.c-property-tabs__card:focus-visible {
  outline: 3px solid #ffde6a;
  outline-offset: 4px;
}

.c-property-tabs__thumbnail {
  display: block;
  min-height: 100%;
  background-color: #e6e6e6;
}

.c-property-tabs__thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
}

.c-property-tabs__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.75rem;
  padding: 1.5rem;
}

.c-property-tabs__labels {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

.c-property-tabs__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.75rem;
  padding: 0.25rem 0.75rem;
  border-radius: 100px;
  background-color: #0c510c;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.3;
}

.c-property-tabs__label.is-new {
  background-color: #ffde6a;
  color: #0c510c;
}

.c-property-tabs__name {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.35;
}

.c-property-tabs__catch {
  display: block;
  color: #333;
  font-size: 0.9375rem;
  line-height: 1.6;
}

@media (hover: hover) {
  .c-property-tabs__card:hover {
    transform: translateY(-0.25rem);
    opacity: 1;
    box-shadow: 0 1.125rem 2.5rem rgba(12, 81, 12, 0.16);
  }
}

@media screen and (max-width: 46.8125em) {
  .c-main-visual__wrapper {
    min-height: 20rem;
  }

  .c-main-visual__eye-catch {
    width: 8.75rem;
    min-height: 4.625rem;
    padding: 0.5rem 0.625rem;
    border-width: 3px;
    box-shadow: 0 0.375rem 1rem rgba(12, 81, 12, 0.12);
  }

  .c-main-visual__eye-catch-text {
    gap: 0.125rem;
  }

  .c-main-visual__eye-catch-text .is-date {
    font-size: 0.875rem;
    letter-spacing: 0.02em;
  }

  .c-main-visual__eye-catch-text .is-label {
    font-size: 0.75rem;
    letter-spacing: 0.04em;
  }

  .c-main-visual__title {
    line-height: 1.35;
  }

  .c-main-visual__title-sub {
    font-size: 0.8125rem;
  }

  .c-main-visual__title-main {
    font-size: 1.25rem;
  }

  .c-main-visual__info-text {
    font-size: 0.8125rem;
    line-height: 1.45;
  }

  .c-main-visual__bubble {
    min-width: 4.75rem;
  }

  .c-gallery__main--static,
  .c-slider-gallery--static .c-slider-gallery__inner {
    grid-template-columns: 1fr;
  }

  .c-gallery__placeholder,
  .c-access-map__placeholder {
    min-height: 10rem;
  }

  .c-price-html th,
  .c-price-html td {
    border: 1px solid #f2f2f1;
    padding: 0.375rem 0.5rem;
  }

  .c-price[data-prop="nishikimachi"] .c-price-html th,
  .c-price[data-prop="nishikimachi"] .c-price-html td {
    border: 1px solid #f2f2f1;
  }

  .c-price-html__side {
    width: 6.75rem;
    font-size: 0.875rem;
  }

  .c-price-html__group,
  .c-price-html__label,
  .c-price-html td {
    font-size: 0.75rem;
  }

  .c-price-html strong {
    font-size: 1.15em;
  }

  .c-property-tabs {
    padding-top: 1.5rem;
  }

  .c-property-tabs__items {
    grid-template-columns: 1fr;
    gap: 0.875rem;
  }

  .c-property-tabs__card {
    grid-template-columns: 8.25rem minmax(0, 1fr);
    min-height: 8.25rem;
    border-radius: 6px;
  }

  .c-property-tabs__card.is-active::after {
    border-width: 3px;
    border-radius: 4px;
  }

  .c-property-tabs__body {
    gap: 0.5rem;
    padding: 1rem;
  }

  .c-property-tabs__label {
    min-height: 1.5rem;
    padding: 0.1875rem 0.5rem;
    font-size: 0.6875rem;
  }

  .c-property-tabs__name {
    font-size: 1.125rem;
  }

  .c-property-tabs__catch {
    font-size: 0.8125rem;
    line-height: 1.45;
  }
}

/* Header / slidebar property switch (adds navigation to toggle between properties) */
.l-header__property-switch {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin: 0 1rem;
  padding: 0.25rem;
  border-radius: 999px;
  background: #f2f2f1;
  flex: none;
}

.l-header__property-switch-item {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 999px;
  padding: 0.5rem 1rem;
  background: transparent;
  color: #0c510c;
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.l-header__property-switch-item.is-active {
  background: #0c510c;
  color: #fff;
}

.l-header__property-switch-item:not(.is-active):hover {
  background: #e6e6e6;
}

.c-slidebar-menu__property-switch {
  display: flex;
  gap: 0.5rem;
  margin: 0 0 1.5rem;
  padding: 0.25rem;
  border-radius: 999px;
  background: #f2f2f1;
}

.c-slidebar-menu__property-switch-item {
  flex: 1 1 0;
  appearance: none;
  border: none;
  border-radius: 999px;
  padding: 0.75rem 0.5rem;
  background: transparent;
  color: #0c510c;
  font-size: 0.9375rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.c-slidebar-menu__property-switch-item.is-active {
  background: #0c510c;
  color: #fff;
}

@media screen and (max-width: 59.3125em) {
  .l-header__content {
    padding-right: 4.375rem;
  }

  .l-header__property-switch {
    margin: 0 0 0 auto;
    padding: 0.125rem;
  }

  .l-header__property-switch-item {
    padding: 0.375rem 0.5rem;
    font-size: 0.6875rem;
  }
}

@media screen and (max-width: 25em) {
  .l-header__name {
    display: none;
  }
}

/* Header content is a fixed-position overlay with a semi-transparent background by default.
   With the property tabs section now sitting close to the header (margin-top: -6.25rem),
   the card content underneath showed through and looked broken. Make it opaque. */
.l-header__content {
  background-color: #fff;
}

/* 錦町キャンペーン価格: 通常価格の打消し表示 */
.c-price-html td del {
  color: #8a9a8f;
  font-size: 0.82em;
  margin-right: 0.35em;
  white-space: nowrap;
}

/* takamatsuのstyle.cssはeye-catchをabsolute配置(旧FVレイアウト用)するため、共通FVでは通常フローに戻す */
.c-main-visual__eye-catch {
  position: static;
  top: auto;
  left: auto;
  margin-left: auto;
  margin-right: auto;
}

/* takamatsuはキャンペーンバナーを含みFVコンテンツが縦に長いため、wrapperの高さを元テーマの値に戻す */
.c-main-visual__wrapper {
  min-height: 46.25rem;
}
@media (max-width: 46.8125em) {
  .c-main-visual__wrapper {
    min-height: 40rem;
  }
}

/* ヘッダー: 物件切替ボタン追加で幅が不足しナビ項目が折り返すため、改行禁止+中間幅での密度調整 */
.l-header__name,
.l-header__mainmenu-link {
  white-space: nowrap;
}

.l-header__mainmenu {
  flex-wrap: nowrap;
}

@media screen and (max-width: 90em) {
  .l-header__content {
    column-gap: 1rem;
  }

  .l-header__mainmenu {
    column-gap: 1rem;
  }

  .l-header__property-switch {
    margin: 0 0.5rem;
  }
}

@media screen and (max-width: 80em) {
  .l-header__name {
    font-size: 0.875rem;
  }

  .l-header__mainmenu-link {
    font-size: 0.8125rem;
  }

  .l-header__property-switch-item {
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
  }
}

@media screen and (max-width: 75em) {
  .l-header__name {
    display: none;
  }
}

/* キャンペーンバナーはFVから物件タブセクション先頭へ移動。負マージンでFVの曲線直下まで引き上げる */
.c-property-tabs__campaign {
  position: relative;
  z-index: 3;
  max-width: 40rem;
  margin: -5.5rem auto 2.5rem;
}

.c-property-tabs__campaign a {
  display: block;
  transition: opacity 0.2s ease;
}

.c-property-tabs__campaign a:hover {
  opacity: 0.85;
}

.c-property-tabs__campaign img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 0.625rem 1.5rem rgba(12, 81, 12, 0.12);
}

/* バナー撤去後のFV: 高さを詰めつつ上下に余白が出るようにする */
.c-main-visual__wrapper {
  min-height: 36.25rem;
}

@media (max-width: 46.8125em) {
  .c-main-visual__wrapper {
    min-height: 32rem;
  }

  .c-property-tabs__campaign {
    margin-bottom: 1.5rem;
  }
}

/* FVコンテンツ位置: ヘッダー直下の余白を詰める */
.c-main-visual__content {
  top: 51%;
}

/* キャンペーンバナー: 文字を画像に焼き込まず、写真+曲線のみのベース画像にテキストを重ねる
   (期間・金額の変更をテキスト編集だけで反映できるようにするため)
   数値は元バナー画像(952x326)の実測位置・実測サイズをコンテナ幅比(cqw)に換算したもの */
.c-campaign-banner {
  container-type: inline-size;
  position: relative;
  display: block;
  aspect-ratio: 952 / 326;
  overflow: hidden;
  border-radius: 8px;
  background: #ffde6a url("../images/banner-campaign-base.png") center / cover no-repeat;
  color: #35866c;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

.c-campaign-banner > span {
  position: absolute;
  left: 3.78%;
  display: block;
  white-space: nowrap;
}

.c-campaign-banner__term {
  top: 7.9%;
  padding: 1.28cqw 2.31cqw;
  background: #fff;
  font-size: 2.02cqw;
  letter-spacing: 0.02em;
}

.c-campaign-banner__term .is-num {
  font-size: 1.3em;
}

.c-campaign-banner__main {
  top: 27.77%;
  display: flex;
  align-items: baseline;
}

.c-campaign-banner__main .is-label {
  font-size: 5.36cqw;
  letter-spacing: 0.02em;
}

.c-campaign-banner__main .is-num {
  /* 元バナーの数字は縦長書体。Poppinsで高さを合わせたうえで横方向のみ圧縮して字幅を再現する */
  display: inline-block;
  font-family: "Poppins", sans-serif;
  font-size: 10.2cqw;
  margin-left: 0.3cqw;
  margin-right: -2.52cqw;
  letter-spacing: -0.01em;
  transform: scaleX(0.919);
  transform-origin: left center;
}

.c-campaign-banner__main .is-unit {
  font-size: 5.83cqw;
}

.c-campaign-banner__sub {
  top: 53.6%;
  font-size: 6.42cqw;
  letter-spacing: 0;
}

.c-campaign-banner__target {
  top: 80.9%;
  font-size: 2.46cqw;
  letter-spacing: 0.02em;
}

/* 静的グリッド版ギャラリーのキャプション: swiper矢印用の右余白と1行制限が不要なため解除
   (「パブリックバス(大浴場)」等の長いラベルが途中で切れるのを防ぐ) */
.c-gallery__static-item .c-gallery__main-text {
  display: block;
  padding: 0.875rem 1rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  -webkit-line-clamp: unset;
}

.c-gallery__static-item {
  display: flex;
  flex-direction: column;
}

.c-gallery__static-item .c-gallery__main-text {
  margin-top: auto;
}
