@charset "UTF-8";
/*===========================================================================

  style.css
  サイト固有の装飾スタイルをまとめます。
  汎用コンポーネントは components.css (.c-*) を使用してください。

  【命名ルール】
  接頭辞なし → このファイル（サイト固有）
  .c-        → components.css
  .l-        → layout.css
  .u-        → utility.css

===========================================================================*/

/*===========================================================================

　トップページ
	
===========================================================================*/

/* 共通
===========================================================================*/
.top-heading{
	text-align:center;
	font-size: clamp(var(--text-24), 5vw, var(--text-40));
	font-weight:700;
	line-height:1.6;
	margin-bottom: var(--s-10);
	}
	.top-heading span{
		display:block;
		color:var(--color-primary);
		font-size: clamp(var(--text-18), 5vw, var(--text-30));
		}
@media (min-width: 768px) {
.top-heading{
	margin-bottom: var(--s-15);
	}
}
@media (min-width: 1024px) {
}

/* メインビジュアル
===========================================================================*/
.mv {
  position: relative;
  width: 100%;
}
/* Swiper UI カスタマイズ */
.mv .swiper-pagination-bullet {
  background-color: rgba(255, 255, 255, 0.6);
  opacity: 1;
  width: 0.5rem;
  height: 0.5rem;
}
.mv .swiper-pagination-bullet-active {
  background-color: #fff;
  width: 2rem;
  border-radius: 999px;
  transition: width 0.3s ease;
}
.mv .swiper-button-prev,
.mv .swiper-button-next {
  color: rgba(255, 255, 255, 0.8);
  width: 2.5rem;
  height: 2.5rem;
}
.mv .swiper-button-prev::after,
.mv .swiper-button-next::after {
  font-size: var(--text-16);
  font-weight: bold;
}
@media (min-width: 768px) {
}
@media (min-width: 1024px) {
  .mv .swiper-button-prev,
  .mv .swiper-button-next {
    width: 3.75rem;
    height: 3.75rem;
  }
  .mv .swiper-button-prev::after,
  .mv .swiper-button-next::after {
    font-size: var(--text-20);
  }
}

/* 重要なお知らせ
===========================================================================*/
#news-important{
	background-color:#ffecec;
	}

/* 検索 / NEWS & TOPICS
===========================================================================*/
/* 検索 */
.top-search__layout {
  display: grid;
  gap: var(--s-8);
}
.top-search__img {
  position: relative;
  width: 100%;
	aspect-ratio: 768 / 674;
}
.top-search__img img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 5px;
}
.top-search__map-ttl{
	display: inline-block;
	position: absolute;
	top:0;
	left:0;
	font-size: var(--text-14);
	font-weight:700;
	background-color:rgba(0, 70, 117, 0.9);
	color:#fff;
	padding: var(--s-2) var(--s-4);
	border-radius:0 0 5px 0;
	}
.top-search__map-link {
  display: inline-block;
  position: absolute;
  padding: var(--s-2) var(--s-4);
  background: #004675;
  font-size: var(--text-16);
  line-height: 1;
  font-weight: 700;
  color: #fff;
  border: 2px solid #fff;
  border-radius: 9999px;
  transform: translate(-50%, -50%);
  transition: transform 0.25s ease;
  white-space: nowrap;
}
.top-search__map-link.top-search__map-link--sizuoka{
	font-size: var(--text-24);
	background:var(--color-primary);
	}
.top-search__map-link.top-search__map-link--sizuoka:hover {
	color:var(--color-primary-dark);
	border: 2px solid var(--color-primary-dark);
}
.top-search__map-link:hover {
	background: #fff;
	color:#003152;
	border: 2px solid #003152;
  transform: translate(-50%, -50%) scale(1.2);
  opacity: 1;
}
.top-search__map-link--aoi     {left: 33%;top: 36%;}
.top-search__map-link--shimizu {left: 67%;top: 44%;}
.top-search__map-link--suruga  {left: 44%;top: 83%;}
.top-search__map-link--sizuoka {left: 80%;top: 86%;}

.top-quick-nav {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
/* top-area-btn */
.top-area-btn {
  color: #fff;
  background: linear-gradient(to bottom,  #1172d4 50%,var(--color-primary) 50%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  transition: transform 0.25s ease, box-shadow 0.25s ease;
	font-size: var(--text-18);
  font-weight: 700;
  line-height: 1.4;
  display: block;
  text-align: center;
  border-radius: 5px;
  padding: var(--s-4) var(--s-2);
}
.top-area-btn br{
	display:none;
	}
.top-area-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
}
/* top-icon-link */
.top-icon-link {
  display: flex;
  align-items: center;
  font-size: var(--text-16);
  font-weight: 700;
  line-height: 1.4;
  padding: var(--s-2);
  border-radius: 5px;
  border: 1px solid var(--color-border);
  gap: var(--s-2);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.top-icon-link:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
  border-color: var(--color-primary);
}
.top-icon-link img {
	flex-shrink: 0;
  max-height: 40px;
  width: auto;
	transition: transform 0.25s ease;
}
.top-icon-link:hover img {
  transform: scale(1.1);
}
.top-icon-link--col {
  flex-direction: column;
  gap: var(--s-2);
}
.top-icon-link--col img {
	flex-shrink: 0;
  max-height: 50px;
  width: auto;
}
/* top-text-link */
.top-text-link {
  background-color: var(--color-bg-light);
  border-radius: 5px;
  font-size: var(--text-12);
  font-weight: 700;
  padding: var(--s-2);
  text-align: center;
  display: block;
	transition: background-color 0.25s ease, color 0.25s ease;
}
.top-text-link:hover {
  background-color: var(--color-primary);
  color: #fff;
}
@media (min-width: 768px) {
  .top-search__layout {
    grid-template-columns: 50% 45.614%;
    justify-content: space-between;
  }
	.top-search__map-ttl{
		font-size: var(--text-16);
		}
	.top-area-btn {
		font-size: var(--text-20);
	}
	.top-area-btn br{
		display:block;
	}
	.top-icon-link {
		font-size: var(--text-18);
		padding: var(--s-3);
		gap: var(--s-4);
	}
	.top-icon-link img {
		max-height: 50px;
	}
	.top-icon-link--col img {
		max-height: 60px;
	}
	.top-text-link {
		padding: var(--s-3);
		font-size: var(--text-14);
	}
}

/* NEWS & TOPICS */
.top-news{
	margin-top:var(--s-10);
	}
.top-news-heading{
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-direction:column;
	padding:0 0 var(--s-4) 0;
	border-bottom:3px solid var(--color-primary);
	margin-bottom:var(--s-8)
	}
.top-news-heading h2{
	color:var(--color-primary);
	font-size: clamp(var(--text-24), 5vw, var(--text-40));
	font-weight:700;
	}
.top-news-heading a{
	font-size:var(--text-12);
	display:inline-block;
	padding:var(--s-3) var(--s-8);
	margin-top:var(--s-2);
	}
.top-news .c-news-list{
	height: 250px;
  overflow-y: scroll;
	}
@media (min-width: 768px) {
.top-news{
	margin-top:var(--s-20);
	}
.top-news-heading{
	flex-direction:row;
	padding:0 var(--s-4) var(--s-4) var(--s-4);
	}
.top-news-heading a{
	margin-top:0;
	}
}
@media (min-width: 1024px) {
}

/* おすすめ物件
===========================================================================*/
#top-recommend{
	background-color:#ecf5ff;
	background-image:url(../images/recommend_bg.jpg);
	background-position:center center;
	background-repeat:no-repeat;
	background-size:cover;
	}

/* 会社案内
===========================================================================*/
#top-company{
	}
#top-company .c-media{
	gap: var(--s-5);
	}
#top-company .c-media__img {
	flex: 0 0 48.2456%;
	}
#top-company .c-media__body__title{
	color:var(--color-primary);
	font-size: var(--text-30);
	font-size: clamp(var(--text-18), 5vw, var(--text-30));
	font-weight:700;
	}
#top-company .c-media__body__text{
	font-size: var(--text-14);
	margin-top:var(--s-4);
	}
#top-company .c-media__body__button{
	display:inline-block;
	background-color:var(--color-primary);
	color:#fff;
	border-radius:5px;
	font-size: var(--text-14);
	font-weight:700;
	padding:var(--s-2) var(--s-5);
	margin-top:var(--s-6);
	}
#top-company .c-media__body__button:hover{
	background-color:var(--color-primary-dark);
	}

@media (min-width: 768px) {
#top-company .c-media__body__text{
	font-size: var(--text-16);
	margin-top:var(--s-6);
	}
#top-company .c-media__body__button{
	margin-top:var(--s-8);
	}
}
@media (min-width: 1024px) {
}

/* ご契約予定の方･入居者様へ
===========================================================================*/
#top-guide{
	}
.guide-card{
	display:block;
	text-align:center;
	}
.guide-card__icon{
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  text-align: center;
  aspect-ratio: 1 / 1;
  border-radius: 5px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.08);
  padding: var(--s-3);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
	}
.guide-card:hover .guide-card__icon {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.guide-card__icon img {
  max-height: 100px;
  width: auto;
  transition: transform 0.25s ease;
}
.guide-card:hover .guide-card__icon img {
  transform: scale(1.08);
}
.guide-card__text{
	font-size: var(--text-14);
	font-weight:700;
	margin-top:var(--s-5);
	}
.guide-card:hover .guide-card__text {
	color: var(--color-primary);
}
@media (min-width: 768px) {
.guide-card__icon{
	padding:var(--s-5);
	}
.guide-card__text{
	font-size: var(--text-16);
	}
}
@media (min-width: 1024px) {
}

/*===========================================================================

　ご契約予定の方･入居者様へ

===========================================================================*/

/* 総合トップ
===========================================================================*/
.c-card--room{
  border: none;
	border-radius: 0;
	}
.c-card--room .c-card__img {
  aspect-ratio: 3 / 2;
}
.c-card--room .c-card__body {
  padding: var(--s-5) var(--s-3);
}
.c-card--room .c-card__title {
	font-size: var(--text-16);
	color:var(--color-primary);
	margin-bottom: var(--s-2);
}
.c-card--room .c-card__text {
  color: var(--color-text);
}
@media (min-width: 480px) {
}
@media (min-width: 768px) {
.c-card--room .c-card__title {
	color:var(--color-primary);
	font-size: var(--text-18);
	margin-bottom: var(--s-3);
}
.c-card--room .c-card__body {
  padding: var(--s-5);
}
}
@media (min-width: 1024px) {
}

/* お部屋探し･申込書
===========================================================================*/

/* ===== お部屋探しの3ステップ ===== */
.p-step__card {
	background-color: var(--color-bg-light);
	text-align: left;
	border-radius: var(--s-2);
	padding: var(--s-3);
}
.p-step__sub-ttl {
	font-weight: 700;
}
.p-step__sub-txt {
	color: #666;
	font-size: var(--text-14);
	margin-top: var(--s-1);
}
@media (min-width: 480px) {
}
@media (min-width: 768px) {
}
@media (min-width: 1024px) {
}



/* ===== 必要書類 ===== */
.c-tabs--room{
	}
.c-tabs--room .c-tabs__nav {

}
.c-tabs--room .c-tabs__btn{
	font-size: var(--text-16);
	background-color:#FFF7EB;
	}
.c-tabs--room .c-tabs__btn:last-child {
	border-right:none;
	}
.c-tabs--room .c-tabs__btn:hover {
  color: var(--color-accent);
}
.c-tabs--room .c-tabs__btn.is-active{
	color:#fff;
	background-color:var(--color-accent);
  border-bottom: 2px solid var(--color-accent-dark);
	}
.c-tabs--room .c-tabs__content{
	}
.c-tabs--room .c-tabs__panel {
  }
.c-tabs--room .c-tabs__ttl{
	border-radius:var(--s-1);
	background-color:#EBF5FF;
	padding: var(--s-2) var(--s-4);
	margin-top:var(--s-4);
	margin-bottom:var(--s-3);
	font-weight:700;
	}
.c-tabs--room .c-list-disc{
	font-size: var(--text-14);
	}
@media (min-width: 480px) {
}
@media (min-width: 768px) {
.c-tabs--room .c-tabs__btn{
	border-right:1px solid var(--color-border);
	border-radius:var(--s-2) var(--s-2) 0 0;
	}
}
@media (min-width: 1024px) {
}

/* 学生物件について
===========================================================================*/
@media (min-width: 480px) {
}
@media (min-width: 768px) {
}
@media (min-width: 1024px) {
}

/* 賃貸保証契約
===========================================================================*/
@media (min-width: 480px) {
}
@media (min-width: 768px) {
}
@media (min-width: 1024px) {
}

/* 居室消毒
===========================================================================*/
.p-comparison {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--s-4);
	margin-top:var(--s-8);
}
.p-comparison__box {
	padding: var(--s-4);
	border-radius: var(--s-2);
	border: 1px solid var(--color-border);
}
.p-comparison__box.--standard { background: #eee; }
.p-comparison__box.--special { border: 2px solid var(--color-primary); background: var(--color-primary-light); }
.p-comparison__label {
	display: inline-block;
	padding: 2px var(--s-2);
	border-radius: var(--s-1);
	font-size: var(--text-14);
	font-weight: bold;
	margin-bottom: var(--s-2);
}
.p-comparison__title{
	font-weight: bold;
	margin-bottom: var(--s-1);
	}
.p-comparison__text{
	font-size: var(--text-14);
	}
.p-comparison__box.--standard .p-comparison__label { background: #999; color: #fff; }
.p-comparison__box.--special .p-comparison__label { background: var(--color-primary); color: #fff; }
@media (min-width: 480px) {
}
@media (min-width: 768px) {
	.p-comparison {
		grid-template-columns: 1fr 1fr;
		margin-top:var(--s-10);
		}
	.p-comparison__box {
		padding: var(--s-6);
	}
	.p-comparison__title{
		margin-bottom: var(--s-2);
		}
}
@media (min-width: 1024px) {
}

/* お役立ちリンク
===========================================================================*/
.p-link-card,
.p-link-group {
	display: flex;
	flex-direction: column;
	padding: var(--s-3);
	border: 1px solid var(--color-border);
	border-radius: var(--s-2);
	text-decoration: none;
	color: inherit;
	transition: all 0.2s;
	background: #fff;
}
.p-link-card:hover {
	border-color: var(--color-red);
	background: var(--bg-light);
	transform: translateY(-2px);
}
.p-link-card__title,
.p-link-group__title {
	font-size: var(--text-14);
	font-weight: bold;
	display: block;
	margin-bottom: var(--s-1);
}
.p-link-card:hover .p-link-card__title,
.p-link-card:hover .p-link-group__title{
	color: var(--color-red);
	}
.p-link-card__title::after {
	content: " ↗"; /* 外部リンクアイコンの代わり */
	font-size: var(--text-12);
	opacity: 0.7;
}
.p-link-card__desc,
.p-link-group__desc {
	font-size: var(--text-12);
	line-height:1.5;
	color: #666;
}
.p-link-group {
}
.p-link-group__title {
	margin-bottom: var(--s-2)
}
.p-link-group__desc {
	margin-bottom: var(--s-2);
}
.p-link-group__body {
	display: flex;
	gap: var(--s-2);
	flex-wrap: wrap;
}
.p-button-link {
	display: inline-block;
	padding: var(--s-2) var(--s-2);
	background: var(--color-bg-light);
	border: 1px solid var(--color-border);
	border-radius: var(--s-1);
	font-size: var(--text-12);
	font-weight: bold;
	text-decoration: none;
	transition: all 0.2s;
	flex: 1;
	text-align: center;
	min-width: 90px;
}
.p-button-link:hover {
	background: var(--color-red);
	color: #fff;
	border-color: var(--color-red);
}
@media (min-width: 480px) {
}
@media (min-width: 768px) {
.p-link-card,
.p-link-group {
	padding: var(--s-5);
}
.p-link-card__title,
.p-link-group__title {
	font-size: var(--text-16);
}
.p-link-card__title::after {
	font-size: var(--text-14);
}
.p-link-card__desc,
.p-link-group__desc {
	font-size: var(--text-14);
}
}
@media (min-width: 1024px) {
}

/* 物件の解約
===========================================================================*/
.p-step-list {
	margin-bottom: var(--s-8);
}
.p-step-item {
	position: relative;
	padding-top: var(--s-15);
	margin-bottom: var(--s-12);
	text-align: center;
}
.p-step-item::before {
	content: "";
	position: absolute;
	left: 50%;
	top: var(--s-15);
	bottom: calc(var(--s-12) * -1);
	width: 2px;
	background: var(--color-border);
	transform: translateX(-50%);
	z-index: 0;
}
.p-step-item:last-child::before {
	display: none;
}
.p-step-item__number {
	position: absolute;
	left: 50%;
	top: 0;
	width: var(--s-12);
	height: var(--s-12);
	background: var(--color-primary);
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	font-size: var(--text-20);
	font-family: Arial, Helvetica, sans-serif;
	transform: translateX(-50%);
	z-index: 2;
}
.p-step-item__content {
	position: relative;
	z-index: 1;
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: var(--s-2);
	padding: var(--s-4);
	text-align: left;
}
.p-step-item__inner {
	display: flex;
	flex-direction: column;
	gap: var(--s-4);
}
.p-step-item__body {
	flex: 1;
}
.p-step-item__figure {
	flex-shrink: 0;
	width: 100%;
}
.p-step-item__img {
	width: 100%;
	height: auto;
	border-radius: var(--s-1);
	object-fit: cover;
}
.p-step-item__title {
	font-weight: bold;
	font-size: var(--text-18);
	margin-bottom: var(--s-2);
	color: var(--color-primary);
	text-align: center;
}
.p-step-item__text {
	margin-bottom: var(--s-3);
	}
.p-download-grid {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	margin-top: var(--s-4);
}
.p-button-download {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--s-2);
	background: #fff;
	border: 2px solid var(--color-accent);
	color: var(--color-accent);
	border-radius: var(--s-2);
	font-weight: bold;
	text-decoration: none;
	transition: all 0.2s;
	font-size: var(--text-14);
}
.p-button-download:hover{
	color:#fff;
	background: var(--color-accent-dark);
	border: 2px solid var(--color-accent-dark);
	}
.p-info-list{
	border-top: 1px solid #eee;
	}
.p-info-list__item {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid #eee;
	padding: var(--s-2) 0;
}
.p-info-list__label {
	font-weight: bold;
	font-size: var(--text-14);
}
.p-info-list__value {
	font-size: var(--text-14);
}
@media (min-width: 480px) {
	.p-download-grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	}
}
@media (min-width: 768px) {
	.p-step-item {
		padding-left: var(--s-18);
		padding-top: 0;
		text-align: left;
	}
	.p-step-item::before {
		left: var(--s-6);
		top: var(--s-10);
		transform: none;
	}
	.p-step-item__number {
		left: 0;
		transform: none;
	}
	.p-step-item__content {
		padding: var(--s-6);
	}
	.p-step-item__inner {
		flex-direction: row;
		align-items: flex-start;
		gap: var(--s-6);
	}
	.p-step-item__figure {
		width: 280px;
	}
	.p-step-item__title {
		font-size: var(--text-20);
		text-align: left;
	}
	.p-info-list__item {
		flex-direction: row;
	}
	.p-info-list__label {
		width: var(--s-30);
		margin-bottom: 0;
	}
}
@media (min-width: 1024px) {
	.p-step-item__figure {
		width: 320px;
	}
}



/*===========================================================================

　会社案内

===========================================================================*/

/* 代表挨拶
===========================================================================*/
.c-media--greeting .media-copy{
	font-size:var(--text-20);
	font-weight:700;
	margin-bottom:var(--s-4);
	}
.c-media--greeting .media-copy br{
	display:block;
	}
.c-media--greeting .media-text{
	font-size:var(--text-14);
	margin-bottom:var(--s-4);
	}
.c-media--greeting .media-name{
	font-family: var(--font-serif);
	font-size:var(--text-16);
	font-weight:700;
	}
@media (min-width: 768px) {
.c-media--greeting .media-copy{
	font-size:var(--text-24);
	}
.c-media--greeting .media-copy br{
	display:none;
	}
.c-media--greeting .media-text{
	font-size:var(--text-16);
	}
.c-media--greeting .media-name{
	font-size:var(--text-20);
	}
}
@media (min-width: 1024px) {
}



/*===========================================================================

　物件検索/一覧/詳細

===========================================================================*/

/* 物件検索
===========================================================================*/

/* ===== タイトル ===== */
.ps-search-heading{
	display:flex;
	align-items:center;
	justify-content:start;
	gap: var(--s-2);
	font-size: clamp(var(--text-24), 5vw, var(--text-30));
	font-weight:700;
	margin-bottom:var(--s-8);
	padding-bottom:var(--s-4);
	border-bottom: 1px solid var(--color-border);
	}
.ps-search-heading i{
	color:var(--color-primary);
	}
@media (min-width: 768px) {
.ps-search-heading{
	margin-bottom:var(--s-10);
	padding-bottom:var(--s-5);
	}
}
@media (min-width: 1024px) {
}

/* 物件検索フォーム
===========================================================================*/
.ps-box {
  margin: var(--s-8) auto 0 auto;
}

/* 検索カード */
.ps-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--s-1);
  margin-bottom: var(--s-3);
  overflow: hidden;
  transition: box-shadow 0.2s ease;
  display: grid;
	grid-template-columns: 1fr;
}
.ps-card:focus-within {
  border-color: var(--color-primary);
}

/* カード見出し */
.ps-card__head {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  padding: var(--s-4) var(--s-5);
  background: var(--color-bg-light);
	border-bottom: 1px solid var(--color-border);
}
@media (min-width: 768px) {
  .ps-card {
		grid-template-columns: 20% 1fr;
  }
  .ps-card__head {
		border-bottom:none;
		border-right: 1px solid var(--color-border);
    
  }
}
.ps-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--s-6);
  height: var(--s-6);
  border-radius: var(--s-1);
  background: #fff;
  color: var(--color-primary);
  font-size: var(--text-12);
  flex-shrink: 0;
}
.ps-card__label {
  font-size: var(--text-14);
  font-weight: 700;
  color: var(--color-text);
}

/* カード本体 */
.ps-card__body {
  padding: var(--s-4) var(--s-5);
}

/* チェックボックス・ラジオ（pill型）
===========================================================================*/
.ps-checks {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}
.ps-check {
  position: relative;
}
.ps-check__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.ps-check__label {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  padding: var(--s-1) var(--s-3-5);
  border-radius: 999px;
  border: 1.5px solid var(--color-border);
  background: #fff;
  font-size: var(--text-14);
  font-weight: 500;
  color: #666;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
  user-select: none;
  white-space: nowrap;
}
.ps-check__label::before {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 3px;
  border: 1.5px solid var(--color-border);
  background: #fff;
  flex-shrink: 0;
  transition: all 0.2s ease;
}
.ps-check--radio .ps-check__label::before {
  border-radius: 50%;
}
.ps-check__input:checked + .ps-check__label {
  border-color: var(--color-primary);
  background: var(--color-bg-light);
  color: var(--color-primary);
  font-weight: 700;
}
.ps-check__input:checked + .ps-check__label::before {
  background: var(--color-primary);
  border-color: var(--color-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'%3E%3Cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3E%3C/svg%3E");
  background-size: 100%;
}
.ps-check--radio .ps-check__input:checked + .ps-check__label::before {
  background-image: none;
  box-shadow: inset 0 0 0 3px #fff;
}
.ps-check__input:focus-visible + .ps-check__label {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
.ps-check__label:hover {
  border-color: var(--color-primary);
  color: var(--color-text);
}

/* セレクトボックス
===========================================================================*/
.ps-select {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.ps-select::after {
  content: '\f078';
  font-family: var(--font-icon);
  font-weight: 900;
  font-size: var(--text-10);
  color: #666;
  position: absolute;
  right: var(--s-3);
  pointer-events: none;
  transition: color 0.2s ease;
}
.ps-select select {
  appearance: none;
  -webkit-appearance: none;
  background: #fff;
  border: 1.5px solid var(--color-border);
  border-radius: var(--s-1);
  padding: var(--s-2) var(--s-9) var(--s-2) var(--s-3);
  font-size: var(--text-14);
  font-weight: 500;
  color: var(--color-text);
  font-family: var(--font-sans);
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  min-width: 120px;
}
.ps-select select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(0,0,0,.1);
}
.ps-select:focus-within::after {
  color: var(--color-primary);
}

/* 沿線・駅行
===========================================================================*/
.ps-line-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
}
.ps-line-row__divider {
  font-size: var(--text-12);
  color: #666;
  font-weight: 500;
}
.ps-line-walk {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
  margin-top: var(--s-3);
  padding-top: var(--s-3);
  border-top: 1px dashed var(--color-border);
}
.ps-line-walk__label {
  font-size: var(--text-12);
  font-weight: 600;
  color: #666;
  white-space: nowrap;
}

/* 賃料・面積レンジ行
===========================================================================*/
.ps-range-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
}
.ps-range-row__sep {
  font-size: var(--text-18);
  color: #666;
}
.ps-range-row__extra {
  margin-left: auto;
  display: flex;
  gap: var(--s-2);
  flex-wrap: wrap;
}

/* 間取り
===========================================================================*/
.ps-madori {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}

/* 設備グリッド
===========================================================================*/
.ps-setsubi {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s-1) var(--s-3);
}
@media (min-width: 480px) {
  .ps-setsubi { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 768px) {
  .ps-setsubi { grid-template-columns: repeat(4, 1fr); }
}
.ps-setsubi .ps-check__label {
  border-radius: var(--s-1);
  padding: var(--s-1) var(--s-2);
  font-size: var(--text-12);
  width: 100%;
  border-color: transparent;
  background: var(--color-bg-light);
}
.ps-setsubi .ps-check__input:checked + .ps-check__label {
  border-color: var(--color-primary);
  background: var(--color-bg-light);
}
.ps-setsubi .ps-check__label:hover {
  border-color: var(--color-primary);
  background: var(--color-bg-light);
}

/* 所在階など
===========================================================================*/
.ps-small-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
  align-items: center;
}

/* ボタン
===========================================================================*/
.ps-actions {
  display: flex;
  gap: var(--s-3);
  margin-top: var(--s-6);
  justify-content: center;
  flex-wrap: wrap;
}
.ps-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  padding: var(--s-3-5) var(--s-10);
  border-radius: 999px;
  font-size: var(--text-14);
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  border: 2px solid transparent;
  font-family: var(--font-sans);
}
.ps-btn--primary {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
  box-shadow: 0 4px 14px rgba(0,0,0,.15);
}
.ps-btn--primary:hover {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
}
.ps-btn--primary:active {
  transform: translateY(0);
}
.ps-btn--ghost {
  background: #fff;
  color: #666;
  border-color: var(--color-border);
}
.ps-btn--ghost:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  background: var(--color-bg-light);
}

/* レスポンシブ
===========================================================================*/
@media (max-width: 480px) {
  .ps-line-row { flex-direction: column; align-items: stretch; }
  .ps-line-row .ps-select,
  .ps-line-row .ps-select select { width: 100%; }
  .ps-range-row__extra { margin-left: 0; }
  .ps-btn { width: 100%; }
}

/* 沿線・駅行
========================================================================== */
.ps-line-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
}
.ps-line-row__divider {
  font-size: var(--text-12);
  color: #666;
  font-weight: 500;
}
.ps-line-walk {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
  margin-top: var(--s-3);
  padding-top: var(--s-3);
  border-top: 1px dashed var(--color-border);
}
.ps-line-walk__label {
  font-size: var(--text-12);
  font-weight: 600;
  color: #666;
  white-space: nowrap;
}

/* 賃料・面積レンジ行
========================================================================== */
.ps-range-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
}
.ps-range-row__sep {
  font-size: var(--text-18);
  color: #666;
}
.ps-range-row__extra {
  margin-left: auto;
  display: flex;
  gap: var(--s-2);
  flex-wrap: wrap;
}

/* 間取り
========================================================================== */
.ps-madori {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}

/* 設備グリッド
========================================================================== */
.ps-setsubi {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s-1) var(--s-3);
}
@media (min-width: 480px) {
  .ps-setsubi { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 768px) {
  .ps-setsubi { grid-template-columns: repeat(4, 1fr); }
}
.ps-setsubi .ps-check__label {
  border-radius: var(--s-1);
  padding: var(--s-2) var(--s-2);
  font-size: var(--text-14);
  width: 100%;
  border-color: transparent;
  background: var(--color-bg-light);
}
.ps-setsubi .ps-check__input:checked + .ps-check__label {
  border-color: var(--color-primary);
  background: var(--color-bg-light);
}
.ps-setsubi .ps-check__label:hover {
  border-color: var(--color-primary);
  background: var(--color-bg-light);
}

/* 所在階など
========================================================================== */
.ps-small-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
  align-items: center;
}

/* ボタン
========================================================================== */
.ps-actions {
  display: flex;
  gap: var(--s-3);
  margin-top: var(--s-6);
  justify-content: center;
  flex-wrap: wrap;
}
.ps-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  padding: var(--s-3-5) var(--s-10);
  border-radius: 999px;
  font-size: var(--text-14);
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  border: 2px solid transparent;
  font-family: var(--font-sans);
}
.ps-btn--primary {
  background: var(--color-accent);
  color: #fff;
  border-color: var(--color-accent);
  box-shadow: 0 4px 14px rgba(0,0,0,.15);
}
.ps-btn--primary:hover {
  background: var(--color-accent-dark);
  border-color: var(--color-accent-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
}
.ps-btn--primary:active {
  transform: translateY(0);
}
.ps-btn--ghost {
  background: #fff;
  color: #666;
  border-color: var(--color-border);
}
.ps-btn--ghost:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  background: var(--color-bg-light);
}

/* レスポンシブ
========================================================================== */
@media (max-width: 480px) {
  .ps-line-row { flex-direction: column; align-items: stretch; }
  .ps-line-row .ps-select { width: 100%; }
  .ps-line-row .ps-select select { width: 100%; }
  .ps-range-row__extra { margin-left: 0; }
  .ps-btn { width: 100%; }
}



/* 物件一覧
===========================================================================*/

/* ===== 物件登録数/ソート機能 ===== */
.pl-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
	flex-direction:column;
	padding: var(--s-3);
	background: var(--color-bg-light);
}
.pl-result__num {
	font-size: var(--text-24);
  font-weight: 700;
  color: var(--color-primary);
}
.pl-result__sort {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  font-size: var(--text-14);
}
@media (min-width: 480px) {
.pl-result {
	flex-direction:row;
	padding: var(--s-5);
}
}
@media (min-width: 768px) {
}
@media (min-width: 1024px) {
}

/* 物件詳細
===========================================================================*/

/* ===== ギャラリー ＋ 賃料・問い合わせ ===== */
.pd-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--s-10);
	align-items: start;
	margin-bottom:var(--s-10);
}
@media (min-width: 480px) {
}
@media (min-width: 768px) {
	.pd-layout {
		grid-template-columns: 1fr 228px;
		margin-bottom:var(--s-10);
	}
}
@media (min-width: 1024px){
	.pd-layout {
		grid-template-columns: 1fr 285px;
	}
}

/* ===== 賃料ボックス ===== */
.pd-price-box {
	background: #f0f6ff;
	border: 2px solid var(--color-primary);
	border-radius: var(--s-1);
	padding: var(--s-5);
}
.pd-price-main {
	display: flex;
	align-items: baseline;
	gap: var(--s-3);
	padding-bottom: var(--s-4);
	margin-bottom: var(--s-3);
	border-bottom: 1px solid var(--color-border);
}
.pd-price-label {
	font-size: var(--text-12);
	font-weight: 700;
	color: #fff;
	background-color: var(--color-red);
	padding: 2px 8px;
	border-radius: 3px;
	white-space: nowrap;
	flex-shrink: 0;
}
.pd-price-value {
	font-size: var(--text-36);
	font-weight: 900;
	color: var(--color-red);
	line-height: 1;
}
.pd-price-value small {
	font-size: var(--text-18);
}
.pd-price-sub-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: var(--text-13);
	color: #666;
	margin-bottom: var(--s-4);
}

/* ===== クイックスペックリスト ===== */
.pd-quick-list {
	border: 1px solid var(--color-border);
	border-radius: 4px;
	overflow: hidden;
	margin-bottom: var(--s-5);
}
.pd-quick-list__item {
	display: flex;
	font-size: var(--text-14);
	border-bottom: 1px solid var(--color-border);
}
.pd-quick-list__item:last-child {
	border-bottom: none;
}
.pd-quick-list__dt {
	background: #e8f0fb;
	font-weight: 700;
	padding: var(--s-2) var(--s-3);
	width: 45%;
	flex-shrink: 0;
	color: var(--color-primary);
}
.pd-quick-list__dd {
	padding: var(--s-2) var(--s-3);
	font-weight: 700;
}

/* ===== スタッフコメント ===== */
.pd-staff {
	background: #f0f6ff;
	border: 1px solid var(--color-primary);
	border-radius: var(--s-1);
	padding: var(--s-5);
	margin-bottom: var(--s-5);
}
.pd-staff__heading {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	font-weight: 700;
	color: var(--color-primary);
	margin-bottom: var(--s-2);
}
.pd-staff__body {
}
@media (min-width: 480px) {
}
@media (min-width: 768px) {
}
@media (min-width: 1024px){
}


/* ===== 特徴 ===== */
.pd-features {
	background: #fffbf0;
	border: 1px solid #f0d080;
	border-radius: var(--s-1);
	padding: var(--s-5);
	margin-bottom: var(--s-5);
}
.pd-features__heading {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	font-weight: 700;
	color: #b07000;
	margin-bottom: var(--s-2);
}
.pd-features__body {
}

/* ===== 物件概要テーブル（c-table-stacked 装飾） ===== */
.pd-overview th[scope="row"] {
	white-space: nowrap;
}
.pd-overview td {
}
.pd-overview thead th {
}

/* ===== 設備タグ ===== */
.pd-tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2);
	margin-bottom: var(--s-8);
}
.pd-tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: var(--text-14);
	font-weight:700;
	padding: var(--s-2) var(--s-4);
	border-radius: 999px;
	background: #fff;
	border: 1px solid #FFE0AD;
}
.pd-tag i {
	color: var(--color-accent);
	font-size: var(--text-12);
}

/* ===== 地図 ===== */
.pd-map {
	width: 100%;
	border-radius: var(--s-1);
	overflow: hidden;
	margin-bottom: var(--s-8);
	border: 1px solid var(--color-border);
}
.pd-map iframe {
	width: 100%;
	height: 400px;
	display: block;
	border: 0;
}

/* ===== 問い合わせCTAバナー ===== */
.pd-contact-banner {
	background: var(--color-bg-light);
	border-radius: 8px;
	padding: var(--s-8);
	text-align: center;
	margin-bottom: var(--s-10);
}
.pd-contact-banner__title {
	font-size: var(--text-18);
	font-weight: 700;
	margin-bottom: var(--s-6);
}
.pd-contact-banner__btns {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-4);
	justify-content: center;
}
.pd-contact-banner__btns .c-cta-btn {
	min-width: 260px;
}

/* ===== お気に入り一覧リンク ===== */
.pd-fav-list-link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--s-1);
	font-size: var(--text-14);
	font-weight:700;
	color: var(--color-primary);
	text-decoration: none;
	padding: var(--s-1) 0 var(--s-3);
	opacity: 0.85;
	transition: opacity 0.2s;
}
.pd-fav-list-link:hover {
	opacity: 1;
	text-decoration: underline;
}


/* お気に入り物件
===========================================================================*/

/* すべて削除 */
.fav-result__clear {
	display: inline-flex;
	align-items: center;
	gap: var(--s-1);
	font-size: var(--text-13);
	font-weight: 700;
	color: #999;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: var(--s-2) var(--s-4);
	background: #fff;
	cursor: pointer;
	transition: color 0.2s, border-color 0.2s, background-color 0.2s;
	font-family: var(--font-sans);
}
.fav-result__clear:hover {
	color: #d63031;
	border-color: #d63031;
	background-color: #fff0f0;
}

/* カードチェックボックス */
.fav-check {
	position: absolute;
	top: var(--s-2);
	left: var(--s-2);
	z-index: 2;
	cursor: pointer;
	line-height: 1;
}
.fav-check__input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}
.fav-check__box {
	width: 26px;
	height: 26px;
	border: 2px solid #fff;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.85);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	color: transparent;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}
.fav-check__input:checked + .fav-check__box {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: #fff;
}
.fav-check:hover .fav-check__box {
	border-color: var(--color-primary);
}
/* チェック済みカードのハイライト */
.c-card--checked {
	outline: 3px solid var(--color-primary);
	outline-offset: 2px;
	border-radius: 8px;
}

/* まとめて問い合わせバー（グリッド上部・常時表示） */
.fav-bulk-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--s-3);
	padding: var(--s-4) var(--s-5);
	background: var(--color-primary);
	color: #fff;
	border-radius: 6px;;
}
.fav-bulk-bar__count {
	font-size: var(--text-14);
	font-weight: 700;
	white-space: nowrap;
	margin: 0;
}
.fav-bulk-bar__count strong {
	font-size: var(--text-24);
	line-height: 1;
	vertical-align: baseline;
	margin-right: 2px;
}
.fav-bulk-bar__btn {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	background: #fff;
	color: var(--color-primary);
	border: 2px solid #fff;
	border-radius: 5px;
	padding: var(--s-2) var(--s-6);
	font-size: var(--text-14);
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s, color 0.2s, opacity 0.2s;
	font-family: var(--font-sans);
	line-height: 1.4;
}
.fav-bulk-bar__btn:hover {
	background: var(--color-primary-dark);
	color: #fff;
	border-color: var(--color-primary-dark);
}
.fav-bulk-bar__btn[aria-disabled="true"] {
	opacity: 0.4;
	cursor: not-allowed;
	pointer-events: none;
}

.fav-card {
  display: flex;
  gap: var(--s-3);
  align-items: flex-start;
}
.fav-card__image-wrapper {
  flex-shrink: 0;
  width: 20%;
}
.fav-card__image-link {
	display: block;
	flex-shrink: 0;
}
.fav-card__image {
	width: 100%;
  height: auto;
  display: block;
}
.fav-card__content {
  flex-grow: 1;
  font-size: var(--text-15);
}
.fav-card__info {
}
.fav-card__label{
	color:var(--color-primary);
	font-weight:700;
	}
.fav-card__link{
	color: var(--color-red);
	text-decoration:underline;
	}
.fav-card__actions {
  margin-top: var(--s-2);
}
.fav-card__btn-delete {
  display: inline-block;
  background-color: var(--color-red);
  color: #fff;
  padding: var(--s-2) var(--s-5);
  border-radius: 999px;
  text-decoration: none;
  font-weight: bold;
  font-size: var(--text-12);
  transition: opacity 0.2s;
}
.fav-card__btn-delete:hover {
  opacity: 0.8;
}
@media (min-width: 768px) {
	.fav-card {
		gap: var(--s-5);
	}
	.fav-card__image-wrapper {
		width: 150px;
	}
	}

/*===========================================================================

　下層ページ

===========================================================================*/

/* ページタイトル
===========================================================================*/
@media (min-width: 768px) {}
@media (min-width: 1024px) {}

.map-wrap{
    display:flex;
    gap:20px;
}

.map-item{
    flex:1;
}

.map-item iframe{
    width:100%;
    height:450px;
    border:0;
}

/* スマホ */
@media screen and (max-width:768px){

    .map-wrap{
        flex-direction:column;
    }

    .map-item iframe{
        height:300px;
    }

}