@charset "utf-8";


body {
	/*スマホで勝手に文字が大きくなる対策*/
	-webkit-text-size-adjust: 100%;
}

.l-contents {
	/* サイドバー追従(sticky)を効かせるため解除（org-result.css と同じ手法） */
	overflow: unset;
}

#contents {
	width: 100%;
	padding: 0;
	background: #FFF;
}

.org-main * {
	color: #1C1C1C;
	font-family: "Noto Sans JP";
}
.breadcrumbs {
	width: 1140px;
}
.org-main {
	width: 100%;
	background: #FAFAFA;
}

.room__contents-flex {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.room__contents-flex .summary__howto {
	margin: 0;
}
.room__contents-title {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;
	margin-bottom: 5px;
}

.room__primary-wrapper {
	display: flex;
	justify-content: space-between;
	gap: 30px;
	width: 1140px;
	margin: 0 auto;
	padding-bottom: 58px;
}
	.org-room__primary {
		width: 712px;
	}
		.room__tag-list {
			display: flex;
			flex-wrap: wrap;
			gap: 3px;
			margin-bottom: 15px;
		}
			[class*="room__tag-item--"] {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 86px;
				height: 24px;
				font-size: 12px;
				font-weight: 700;
				line-height: 1;
				color: #FFF;
			}
			.room__tag-item--special {
				background: #FF5800;
			}
			.room__tag-item--early {
				background: #D82D2D;
			}
			.room__tag-item--middle {
				background: #FF9D00;
			}
			.room__tag-item--long {
				background: #5FB530;
			}
			.room__tag-item--equipment {
				border: 1px solid #EBEBEB;
				background: #FFF;
				color: #FF5800;
				width: auto;
				padding: 0 8px;
			}
		.room__name {
			font-size: 24px;
			font-weight: 700;
			line-height: 1.25;
			color: #111;
			margin-bottom: 10px;
		}
			/* 物件名横のグレードタイプ（【ロイヤルタイプ】等）。見出しの一部だが注記として小さく見せる */
			.room__name-grade {
				font-size: 16px;
				font-weight: 500;
			}
		.room__head-info {
			display: flex;
			justify-content: space-between;
			align-items: center;
			gap: 9px;
			margin-bottom: 15px;
		}
			.room__head-left {
				display: flex;
				flex-direction: column;
				gap: 8px;
			}
				.room__head-text {
					font-size: 12px;
					font-weight: 400;
					line-height: 1;
					color: #8F8F8F;
				}
			.room__head-right {
				display: flex;
				justify-content: flex-end;
				align-items: center;
				gap: 10px;
			}
			.room__icon-list {
				display: flex;
				align-items: center;
				gap: 5px;
			}
				[class*="room__icon-item--"] {
					width: 32px;
					height: 32px;
				}
					[class*="room__icon-item--"]::before {
						content: '';
						display: block;
						width: 100%;
						height: 100%;
					}
					/* ⚠️ 先方修正指示書 No.26 以降、頭部アイコンは該当（.active）のみを出力する
					   （RoomDetailPresenter::headIcons が非該当を返さない）。下の _off 系ルールと
					   icon_*_off.svg は現在どのページからも到達しないが、グレー表示へ戻す判断が
					   出たときのために残している。新しいアイコンは _on だけ用意すればよい。 */
					.room__icon-item--cigarette::before {
						background: url(/images/room/icon_cigarette_off.svg) no-repeat center / cover;
					}
					.room__icon-item--cigarette.active::before {
						background: url(/images/room/icon_cigarette_on.svg) no-repeat center / cover;
					}
					.room__icon-item--wifi::before {
						background: url(/images/room/icon_wifi_off.svg) no-repeat center / cover;
					}
					.room__icon-item--wifi.active::before {
						background: url(/images/room/icon_wifi_on.svg) no-repeat center / cover;
					}
					.room__icon-item--car::before {
						background: url(/images/room/icon_car_off.svg) no-repeat center / cover;
					}
					.room__icon-item--car.active::before {
						background: url(/images/room/icon_car_on.svg) no-repeat center / cover;
					}
					.room__icon-item--tv::before {
						background: url(/images/room/icon_tv_off.svg) no-repeat center / cover;
					}
					.room__icon-item--tv.active::before {
						background: url(/images/room/icon_tv_on.svg) no-repeat center / cover;
					}
					/* ペット可（先方修正指示書 No.26 で追加）。off 画像は 100204 で追加。 */
					.room__icon-item--pet::before {
						background: url(/images/room/icon_pet_off.svg) no-repeat center / cover;
					}
					.room__icon-item--pet.active::before {
						background: url(/images/room/icon_pet_on.svg) no-repeat center / cover;
					}
					.room__icon-item--newish::before {
						background: url(/images/room/icon_newish_off.svg) no-repeat center / cover;
					}
					.room__icon-item--newish.active::before {
						background: url(/images/room/icon_newish_on.svg) no-repeat center / cover;
					}
				.room__favorite-button {
					display: flex;
					justify-content: center;
					align-items: center;
					gap: 5px;
					width: 125px;
					height: 32px;
					border-radius: 3px;
					background: #D82D2D;
					font-size: 12px;
					font-weight: 500;
					line-height: 1;
					color: #FFF;
					transition: .4s;
				}
				.room__favorite-button span {
					display: contents;
					font-size: 12px;
					font-weight: 400;
					line-height: 1;
					color: #FFF;
					transition: .4s;
				}
				.room__favorite-button.is-checked span {
					display: contents;
					color: #D82D2D;
				}
				.room__favorite-button.is-checked {
					background: #FFE7E7;
					color: #D82D2D;
					opacity: 1;
				}
				.room__favorite-button .room__favorite-suffix--done {
					display: none;
				}
				.room__favorite-button.is-checked .room__favorite-suffix--add {
					display: none;
				}
					.room__favorite-button svg {
						width: 13px;
						height: 11px;
						fill: #FFF;
						stroke: #FFF;
					}
					.room__favorite-button.is-checked svg {
						fill: #D82D2D;
						stroke: #D82D2D;
					}
					/* opacity は common.css の button:hover{opacity:.7} を打ち消すガード。タッチ端末の残留 :hover でもボタンが薄くならないよう無条件で当てる */
					.room__favorite-button:hover {
						opacity: 1;
					}
					/* 色・枠の hover 演出はマウス環境のみ。タッチ端末では :hover が残留し、お気に入り解除後も追加済みの見た目になるため（デバッグシート No.349）。
					   pointer: fine を併せることで hover 可能でも粗いポインタの端末を除外する（マウス接続 iPad は hover 演出なし＝許容）。
					   タッチ対応ノートPC（primary pointer が fine）は対象外＝指タップ時の残留は従来どおり。潰すなら JS 側で別途対応 */
					@media (hover: hover) and (pointer: fine) {
						.room__favorite-button:hover,
						.room__favorite-button:hover span {
							background: #FFE7E7;
							color: #D82D2D;
						}
						.room__favorite-button.is-checked:hover {
							border: 1px solid #D82D2D;
							transition: unset;
						}
						.room__favorite-button:hover svg {
							fill: #D82D2D;
							stroke: #D82D2D;
						}
					}
		[class*="room__contents--"] {
			margin-bottom: 40px;
		}
		.room__contents--photo {

			[class*="swiper-button-"] {
				width: 32px;
				height: 32px;
				background: #FFF;
				border: 1px solid #EBEBEB;
				border-radius: 50%;
				margin: 0;
				transition: .4s;
				position: absolute;
				top: 50%;
				transform: translateY(-50%);
				z-index: 1;
			}
			.swiper-button-prev {
				left: -15px;
			}
			.swiper-button-next {
				right: -15px;
				transform: translateY(-50%) rotate(-180deg);
			}
				[class*="swiper-button-"] svg {
					width: 7px;
					height: 11px;
					fill: none;
					stroke: #1C1C1C;
					position: absolute;
					top: 50%;
					left: 50%;
					transform: translate(-50%, -50%);
				}
				.swiper-button-prev:after, .swiper-rtl .swiper-button-next:after,
				.swiper-button-next:after, .swiper-rtl .swiper-button-prev:after {
					content: none;
				}
			[class*="swiper-button-"]:hover {
				background: var(--color-primary-grayscale-black);
			}
				[class*="swiper-button-"]:hover svg {
					stroke: var(--color-primary-grayscale-white);
				}
		}
			.room__photo-main {
				margin-bottom: 10px;
				position: relative;
			}
				.room__photo-wrap {
					overflow: hidden;
				}
				.room__photo-item {
					width: 100%;
					height: 475px;
					background: #F4F4F4;
				}
					.room__photo-item img {
						width: 100%;
						height: 100%;
						object-fit: contain;
					}
			.room__photo-thumb {
				overflow: hidden;
			}
				.room__thumb-item {
					width: 120px;
					height: 90px;
					border: 1px solid #EBEBEB;
					cursor: pointer;
				}
				.room__thumb-item.swiper-slide-thumb-active {
					border: 2px solid #FF5800;
				}
					.room__thumb-item img {
						width: 100%;
						height: 100%;
						object-fit: cover;
					}
		.room__vr-box,
		.room__movie-box {
			width: 100%;
			height: 402px;
		}

		/*--------------- 物件情報 ---------------*/

		.room__summary {
			display: flex;
			flex-wrap: wrap;
		}
			[class*="room__summary-detail--"] {
				display: flex;
			}
			.room__summary-detail--full {
				width: 100%;
			}
			.room__summary-detail--medium {
				width: 356px;
			}
				.room__summary-title {
					display: flex;
					justify-content: center;
					align-items: center;
					min-width: 92px;
					min-height: 38px;
					height: auto;
					padding: 10px 0 9px;
					background: #EBEBEB;
					border-bottom: 1px solid #FFF;
					font-size: 12px;
					font-weight: 700;
					line-height: 1.5;
					text-align: center;
				}
				[class*="room__summary-text"] {
					display: flex;
					flex-direction: column;
					justify-content: center;
					width: 100%;
					background: #FFF;
					border: 1px solid #EBEBEB;
					border-top: none;
					border-left: none;
					padding: 9px 12px;
					font-size: 12px;
					font-weight: 400;
					line-height: 1.5;
				}
				[class*="room__summary-detail--"]:first-child [class*="room__summary-text"] {
					border-top: 1px solid #EBEBEB;
				}
				[class*="room__summary-text"] p,
				[class*="room__summary-text"] a {
					font-size: 12px;
					font-weight: 400;
					line-height: 1.5;
				}
				.room__summary-text--rental a {
					text-decoration: underline;
				}
				[class*="room__summary-text"] a:hover {
					opacity: .7;
				}
				.room__summary-text--rental a:hover {
					text-decoration: unset;
				}
					.room__equipment-group {
						padding-bottom: 7px;
					}
					.room__equipment-group:not(:last-child) {
						margin-bottom: 8px;
						border-bottom: 1px solid #EBEBEB;
					}
						.room__summary-text p.room__equipment-title {
							font-size: 12px;
							font-weight: 700;
							line-height: 1.5;
						}
						.room__equipment-text {
							font-size: 12px;
							font-weight: 400;
							line-height: 1.5;
						}

		/*--------------- ポイント ---------------*/

		.point__box {
			padding: 14px 19px;
			border: 1px solid #EBEBEB;
			background: #FFF;
			font-size: 12px;
			font-weight: 400;
			line-height: 1.5;
		}

		/*--------------- 支払いシミュレーション ---------------*/

		.simulation__wrap {
			padding: 19px 20px;
			border: 1px solid #EBEBEB;
			background: #FFF;
		}
			.simulation__calculation {
				display: flex;
				align-items: flex-end;
				gap: 20px;
				background: linear-gradient(0deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.88) 100%), #FF9D00;
				padding: 10px;
				margin-bottom: 15px;
			}
				.simulation__select {
					display: flex;
					align-items: flex-end;
					gap: 7px;
				}
					.simulation__text {
						font-size: 14px;
						font-weight: 400;
						line-height: 1;
						padding-bottom: 10px;
					}
					.simulation__select-text {
						font-size: 12px;
						font-weight: 500;
						line-height: 1;
						margin-bottom: 5px;
					}
				.input-date-wrap {
					position: relative;
					display: inline-block;
				}
				input[type="text"].input-date {
					width: 180px;
					height: 40px;
					padding: 0 36px 0 10px;
					border: 1px solid #EBEBEB;
					border-radius: 3px;
					background: #FFF url("/images/room/icon_calendar.svg") no-repeat 143px;
					background-size: 30px;
					font-size: 14px;
					font-weight: 400;
					line-height: 1.5;
					color: #1C1C1C;
					box-sizing: border-box;
				}
				/* カレンダー起動用の透明レイヤー。カレンダーアイコンの上だけに重ねる。
				   ここを width:100% にすると .input-date（テキスト欄）全面が覆われ、
				   クリックが必ずカレンダーに吸われて日付を手入力できなくなる（先方修正指示書 No.03）。
				   幅は .input-date の padding-right（36px＝アイコン領域）に合わせる。 */
				input[type="date"].input-date-native {
					position: absolute;
					top: 0;
					right: 0;
					width: 38px;
					height: 100%;
					margin: 0;
					padding: 0;
					border: 0;
					opacity: 0;
					cursor: pointer;
					z-index: 1;
				}
				/* ネイティブのカレンダーアイコンは非表示（見た目は .input-date の背景画像） */
				.input-date-native::-webkit-calendar-picker-indicator {
					position: absolute;
					inset: 0;
					width: 100%;
					height: 100%;
					margin: 0;
					padding: 0;
					cursor: pointer;
					opacity: 0;
				}
				/* jquery-ui 起動後は native date を隠し、トリガーをアイコン領域だけに置く（手入力は左側） */
				.input-date-wrap.is-ui-datepicker .input-date-native {
					display: none;
				}
				.input-date-wrap.is-ui-datepicker .ui-datepicker-trigger {
					position: absolute;
					top: 0;
					right: 0;
					width: 38px;
					height: 100%;
					margin: 0;
					padding: 0;
					border: 0;
					background: transparent;
					font-size: 0;
					cursor: pointer;
					z-index: 1;
				}
			.simulation__submit {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 100px;
				height: 40px;
				background: #1C1C1C;
				border: 1px solid #1C1C1C;
				border-radius: 3px;
				font-size: 14px;
				font-weight: 700;
				color: #FFF;
				transition: .4s;
			}
			.simulation__submit:hover {
				background: #FFF;
				color: #1C1C1C;
			}
			.simulation__result-title {
				font-size: 12px;
				font-weight: 700;
				line-height: 1;
				margin-bottom: 13px;
			}
				.simulation__result-title span {
					font-size: 12px;
					font-weight: 700;
					line-height: 1;
					color: #FF5800;
				}
			.simulation__notes-wrap {
				display: flex;
				flex-direction: column;
				gap: 5px;
				margin-top: 13px;
			}
				.simulation__notes {
					font-size: 12px;
					font-weight: 400;
					line-height: 1.25;
				}
		.fee-table {
			box-sizing: border-box;
			width: 650px;
			padding: 9px 15px 8px;
			background-color: #f4f4f4;
			display: flex;
			flex-direction: column;
			justify-content: center;
			align-items: stretch;
			gap: 10px;
			margin-top: 15px;
		}
		
		/* 計測値: row, gap:10px, alignItems:center */
		.fee-table__header {
			display: flex;
			align-items: center;
			gap: 10px;
			width: 100%;
		}
		
		/* 計測値: font-size:14px, font-weight:700, line-height:1em, color:#1C1C1C */
		.fee-table__title {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			font-size: 14px;
			font-weight: 700;
			line-height: 1;
			color: #1c1c1c;
		}
		
		/* 計測値: font-size:12px, font-weight:400, line-height:1em, color:#1C1C1C */
		/* 日数「00」は Bold */
		.fee-table__days {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			font-size: 12px;
			font-weight: 400;
			line-height: 1;
			color: #1c1c1c;
		}
		
		.fee-table__days-num {
			font-weight: 700;
		}
		
		/* 計測値: grid 5列×2行, padding:1px, gap:1px, bg:#CFCFCF */
		.fee-table__grid {
			display: grid;
			grid-template-columns: repeat(5, minmax(0, 1fr));
			grid-template-rows: repeat(2, fit-content(100%));
			gap: 1px;
			padding: 1px;
			width: 100%;
			box-sizing: border-box;
			background-color: #cfcfcf;
		}
		
		/* 計測値: padding:6px 10px, justifyContent:center, bg:#EBEBEB */
		.fee-table__cell {
			box-sizing: border-box;
			display: flex;
			flex-direction: column;
			width: 100%;
			min-width: 0;
		}
		
		.fee-table__cell--head {
			padding: 6px 10px;
			justify-content: center;
			align-items: stretch;
			background-color: #ebebeb;
		}
		
		/* 計測値: 合計ヘッダー bg:#D4D4D4 */
		.fee-table__cell--total-head {
			background-color: #d4d4d4;
		}
		
		/* 計測値: padding:6px 0, justifyContent:flex-end, alignItems:center, bg:#FFFFFF */
		.fee-table__cell--body {
			padding: 6px 0;
			justify-content: flex-end;
			align-items: center;
			background-color: #ffffff;
		}
		
		/* 計測値: font-size:12px, font-weight:700, line-height:1.5em, text-align:center */
		.fee-table__label {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			font-size: 12px;
			font-weight: 700;
			line-height: 1.5;
			text-align: center;
			color: #1c1c1c;
		}
		
		/* 計測値: font-size:10px, line-height:1.25em */
		.fee-table__label-sub {
			font-size: 10px;
			line-height: 1.25;
		}
		
		/* 計測値: font-size:10px, font-weight:400, line-height:1.5em, color:#1C1C1C */
		.fee-table__calc {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			font-size: 10px;
			font-weight: 400;
			line-height: 1.5;
			color: #1c1c1c;
		}
		
		.fee-table__price {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			text-align: center;
			line-height: 1;
		}
		
		/* 計測値: color:#FF5800 */
		.fee-table__price--accent {
			color: #ff5800;
			font-weight: 700;
			font-size: 14px;
		}
		
		/* Sショート・管理費の金額: num Medium 14px / 円 10px（ベース16px Bold） */
		.fee-table__price-num--m {
			font-size: 14px;
			font-weight: 500;
			line-height: 1.25;
		}
		
		.fee-table__price-yen {
			font-size: 10px;
			font-weight: 400;
			line-height: 1.25;
		}
		
		/* 清掃費・契約事務手数料: num Medium 14px */
		.fee-table__price-num {
			font-size: 14px;
			font-weight: 500;
			line-height: 1.25;
		}
		
		/* 計測値: 合計 color:#D82D2D, num 16px / 円 14px（ベース20px Bold） */
		.fee-table__price--total {
			color: #d82d2d;
			font-weight: 700;
			font-size: 20px;
			line-height: 1.25;
			text-align: right;
		}
		
		.fee-table__price-num--l {
			font-size: 16px;
			font-weight: 700;
			line-height: 1.25;
			color: #D82D2D;
		}
		
		.fee-table__price-yen--l {
			font-size: 14px;
			font-weight: 700;
			line-height: 1.25;
			color: #D82D2D;
		}
		
		.fee-table__cell--total {
			align-items: center;
		}
		.campaign-table {
			box-sizing: border-box;
			width: 650px;
			padding: 9px 15px 8px;
			background-color: #fff6b4;
			display: flex;
			flex-direction: column;
			justify-content: center;
			align-items: stretch;
			gap: 10px;
			margin-top: 15px;
		}
		
		/* 計測値: font-size:14px, font-weight:700, line-height:1em, color:#FF5800 */
		.campaign-table__title {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			font-size: 14px;
			font-weight: 700;
			line-height: 1;
			color: #ff5800;
		}
		
		.campaign-table__grid {
			display: grid;
			grid-template-columns: repeat(4, minmax(0, 1fr));
			grid-template-rows: repeat(3, fit-content(100%));
			gap: 1px;
			padding: 1px 1px 0 1px;
			width: 100%;
			box-sizing: border-box;
			background-color: #cfcfcf;
		}
		
		.campaign-table__cell {
			box-sizing: border-box;
			display: flex;
			flex-direction: column;
			width: 100%;
			min-width: 0;
			position: relative;
		}
		
		/* 計測値: padding:6px 10px, bg:#FFF3E0 */
		.campaign-table__cell--corner {
			padding: 6px 10px;
			justify-content: center;
			align-items: stretch;
			background-color: #fff3e0;
			overflow: hidden;
		}
		
		/* 計測値: decoration W:154px H:30px absolute x:0 y:0 */
		.campaign-table__corner-img {
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			width: 154px;
			height: 30px;
		}
		
		.campaign-table__label--hidden {
			opacity: 0;
			line-height: 1.25;
		}
		
		/* 計測値: padding:6px 10px, bg:#EBEBEB */
		.campaign-table__cell--head {
			padding: 6px 10px;
			justify-content: center;
			align-items: stretch;
			background-color: #ebebeb;
		}
		
		/* 計測値: 合計ヘッダー bg:#D4D4D4 */
		.campaign-table__cell--total-head {
			background-color: #d4d4d4;
		}
		
		/* 計測値: padding:6px 10px, bg:#FFF3E0 */
		.campaign-table__cell--name {
			padding: 6px 10px;
			justify-content: center;
			align-items: stretch;
			background-color: #fff3e0;
		}
		
		/* 計測値: padding:0 10px, gap:5px, bg:#FBEAEA, border:1px #EBEBEB */
		.campaign-table__cell--name-early {
			padding: 0 10px;
			justify-content: center;
			gap: 5px;
			background-color: #fbeaea;
			border: 1px solid #ebebeb;
		}
		
		/* 計測値: padding:6px 0, justifyContent:space-between, alignItems:center, bg:#FFFFFF */
		.campaign-table__cell--body {
			padding: 6px 0;
			align-items: center;
			background-color: #ffffff;
		}
		
		.campaign-table__cell--body-between {
			justify-content: space-between;
		}
		
		/* 計測値: padding:6px 0, justifyContent:flex-end */
		.campaign-table__cell--body-end {
			justify-content: flex-end;
		}
		
		/* 計測値: font-size:12px, font-weight:700, line-height:1.5em, text-align:center */
		.campaign-table__label {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			font-size: 12px;
			font-weight: 700;
			line-height: 1.5;
			text-align: center;
			color: #1c1c1c;
		}
		
		/* 計測値: font-size:12px, color:#9C9C9C, 取り消し線 */
		.campaign-table__strike {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			font-size: 12px;
			font-weight: 400;
			line-height: 1;
			color: #9c9c9c;
		}
		
		.campaign-table__strike s {
			font-size: var(--size-XXS);
			font-weight: 400;
			line-height: 1;
			color: #9c9c9c;
			text-decoration: line-through;
		}
		.campaign-table__strike s span {
			font-size: var(--size-XXS);
			font-weight: 400;
			line-height: 1;
			color: #9c9c9c;
		}
		
		/* 計測値: row, gap:3px, alignItems:center */
		.campaign-table__discount-row {
			display: flex;
			align-items: center;
			gap: 3px;
		}
		
		/* 計測値: row, gap:3px, justifyContent:center */
		.campaign-table__total-row {
			display: flex;
			justify-content: center;
			align-items: center;
			gap: 3px;
		}
		
		/* 計測値: W:11px H:8px */
		.campaign-table__arrow {
			display: block;
			width: 11px;
			height: 8px;
			flex-shrink: 0;
		}
		
		.campaign-table__price {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			text-align: center;
			line-height: 1;
		}
		
		/* 計測値: color:#FF5800, Bold 16px / num Medium 14px / yen 10px */
		.campaign-table__price--accent {
			color: #ff5800;
			font-weight: 700;
			font-size: 16px;
		}
		.campaign-table__price--accent.toku .campaign-table__price-num,
		.campaign-table__price--accent.toku .campaign-table__price-yen {
			color: #ff5800;
			font-weight: 700;
		}
		
		.campaign-table__price-num {
			font-size: 14px;
			font-weight: 500;
			line-height: 1.25;
		}
		
		.campaign-table__price-yen {
			font-size: 10px;
			font-weight: 400;
			line-height: 1.25;
		}
		
		/* 計測値: font-size:10px, color:#D82D2D */
		.campaign-table__off,
		.campaign-table__off span {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			font-size: 10px;
			font-weight: 400;
			line-height: 1.5;
			color: #d82d2d;
		}
		
		/* 計測値: font-size:10px, line-height:1.5em */
		.campaign-table__note {
			margin: 0;
			font-family: 'Noto Sans JP', sans-serif;
			font-size: 10px;
			font-weight: 400;
			line-height: 1.5;
			color: #1c1c1c;
		}
		.campaign-table__note span {
			font-size: 10px;
		}
		
		.campaign-table__note--red,
		.campaign-table__note--red span {
			color: #d82d2d;
		}
		
		/* 計測値: color:#D82D2D, Bold 20px / num 16px / yen 14px */
		.campaign-table__price--total {
			color: #d82d2d;
			font-weight: 700;
			font-size: 20px;
			line-height: 1.25;
			text-align: right;
		}
		.campaign-table__price--total span {
			color: #d82d2d;
		}
		
		.campaign-table__price-num--l {
			font-size: 16px;
			font-weight: 700;
			line-height: 1.25;
		}
		
		.campaign-table__price-yen--l {
			font-size: 14px;
			font-weight: 700;
			line-height: 1.25;
		}

	/*--------------- この物件にお問い合せ ---------------*/

	.room__contents--contact {
		padding: 40px 20px 50px;
		background: url(/images/room/bg_contact.webp) no-repeat center / cover;
	}
		.contact__title {
			font-size: 24px;
			font-weight: 700;
			line-height: 1.25;
			color: #FFF;
			text-align: center;
			margin-bottom: 10px;
		}
		.contact__head-text {
			font-size: 12px;
			font-weight: 500;
			line-height: 1;
			color: #FFF;
			text-align: center;
			margin-bottom: 20px;
		}
		.contact__wrap {
			display: flex;
			justify-content: center;
			align-items: flex-end;
			margin-left: 17px;
		}
			.contact__tel-number {
				font-size: 30px;
				font-weight: 400;
				line-height: 1;
				color: #FFF;
				font-family: 'Lato';
				margin: 10px 0 5px;
			}
			.contact__tel-text {
				font-size: 12px;
				font-weight: 400;
				line-height: 1.25;
				color: #FFF;
				text-align: center;
			}
			.contact__box--tel {
				padding-right: 13px;
				border-right: 1px solid #CFCFCF;
				padding-bottom: 7px;
			}
			.contact__box--line,
			.contact__box--mail {
				padding: 0 19px;
			}
			.contact__box--line {
				border-right: 1px solid #CFCFCF;
			}
				.contact__icon {
					width: 30px;
					height: 30px;
					margin: 0 auto;
				}
				.contact__text {
					margin-top: 10px;
					font-size: 12px;
					font-weight: 400;
					line-height: 1;
					color: #FFF;
					text-align: center;
					margin-bottom: 5px;
				}
				.contact__more a {
					display: flex;
					justify-content: center;
					align-items: center;
					width: 184px;
					height: 40px;
					border-radius: 3px;
					box-shadow: 2px 2px 8px 0 rgba(0, 0, 0, 0.30);
					font-size: 14px;
					font-weight: 700;
					line-height: 1.5;
					color: #FFF;
					position: relative;
				}
					.contact__more a span {
						width: 18px;
						height: 18px;
						background: #FFF;
						border-radius: 50%;
						position: absolute;
						top: 50%;
						right: 10px;
						transform: translateY(-50%);
					}
						.contact__more a span svg {
							width: 5px;
							height: 7px;
							fill: none;
							position: absolute;
							top: 50%;
							left: 50%;
							transform: translate(-50%, -50%);
						}
	.room__contents--map {
		margin-bottom: 0;
	}


	/*--------------- サイドバー ---------------*/

	.org-room__side {
		width: 398px;
		/* sticky の包含ブロックを .org-room__primary と同じ高さにする。
		   align-self:flex-start だとコンテンツ高さしかなく sticky が即終わる。
		   height:100% も親がコンテンツ高さのままでは効かないため、stretch + flex で埋める。
		   （サイド全体を sticky にしていた頃の「stretch だと効かない」とは別問題） */
		display: flex;
		flex-direction: column;
		align-self: stretch;
	}
		.org-room__side-inner {
			/* 伸びた .org-room__side いっぱいを sticky の可動範囲にする */
			flex: 1 0 auto;
			width: 100%;
		}
		[class*="room__side-contents--"] {
			margin-bottom: 15px;
		}
		.room__side-contents--price {
			background: #FAFAFA;
			z-index: 1;
		}
		.room__side-contents--price.is-stuck {
			padding-top: 5px;
		}
			.room__side-title {
				font-size: 14px;
				font-weight: 700;
				line-height: 1;
				margin-bottom: 8px;
			}
			.price__wrapper {
				box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.08);
			}
			.price__tab-list {
				display: flex;
				gap: 1px;
				background: #EBEBEB;
				padding: 1px;
			}
				.price__tab-item {
					flex: 1;
					width: 100%;
					height: 43px;
					background: #F4F4F4;
					font-size: 12px;
					font-weight: 700;
					line-height: 1;
					color: #B9B9B9;
					text-align: center;
					padding-top: 8px;
					transition: 0.4s;
					position: relative;
				}
				.price__tab-item.active {
					color: #1C1C1C;
					background: #FFF;
				}
					.price__tab-item.active::before {
						content: '';
						background: #FFF;
						width: 100%;
						height: 1px;
						position: absolute;
						left: 0;
						right: 0;
						bottom: -1px;
					}
					.price__tab-item span {
						display: block;
						font-size: 10px;
						font-weight: 400;
						line-height: 1;
						color: #B9B9B9;
						margin-top: 4px;
					}
					.price__tab-item.active span {
						color: #FF5800;
					}
			.price__tabcontents {
				display: none;
				background: #FFF;
				border: 1px solid #EBEBEB;
				border-top: none;
				padding: 10px 20px 13px;
			}
			.price__tabcontents.is-active {
				display: block;
			}
				.price__group--top {
					padding-bottom: 13px;
					border-bottom: 1px solid #EBEBEB;
					margin-bottom: 10px;
				}
					.price__box {
						display: flex;
						align-items: center;
						gap: 20px;
					}
						.price__title {
							width: 36px;
							font-size: 12px;
							font-weight: 500;
							line-height: 1;
							color: #FF9D00;
						}
						.price__detail {
							display: flex;
							align-items: flex-end;
							gap: 22px;
						}
							.price__main-before {
								font-size: 14px;
								font-weight: 500;
								line-height: 1;
								color: #9C9C9C;
								text-decoration-line: line-through;
								position: relative;
							}
							.price__main-before::after {
								content: '';
								background: url(/images/room/icon_price-arrow.svg) no-repeat center / cover;
								display: block;
								width: 12px;
								height: 9px;
								position: absolute;
								top: 50%;
								right: -16px;
								transform: translateY(-50%);
								z-index: 1;
							}
								.price__main-before span {
									display: block;
									margin-top: 5px;
									font-size: 12px;
									font-weight: 400;
									line-height: 1;
									color: #9C9C9C;
									text-decoration-line: line-through;
								}
							.price__main-after {
								font-size: 14px;
								font-weight: 700;
								line-height: 1;
								position: relative;
							}
								.price__red {
									font-size: 24px;
									font-weight: 700;
									line-height: 1;
									color: #D82D2D;
								}
								.price__weeks {
									display: block;
									margin-top: 4px;
									font-size: 14px;
									font-weight: 400;
									line-height: 1;
								}
				.price__group--bottom {
					display: flex;
					align-items: center;
					gap: 10px;

					.price__box {
						padding: 6px 0;
					}
				}
					.price__box.kanri {
						padding-right: 12px;
						border-right: 1px solid #EBEBEB;
					}
					.price__other {
						font-size: 14px;
						font-weight: 700;
						line-height: 1;
					}
						.price__other span {
							font-size: 24px;
							font-weight: 700;
							line-height: 1;
						}
				/* Sショート取り扱い不可（org20）の注記。料金ブロックを置き換えて表示する */
				.price__unavailable {
					font-size: 14px;
					font-weight: 500;
					line-height: 1.5;
				}
				.price__notes {
					font-size: 10px;
					font-weight: 400;
					line-height: 1.25;
					color: #8F8F8F;
					margin-top: 11px;
				}
			.side__campaign-list {
				display: flex;
				flex-direction: column;
				gap: 1px;
				padding: 1px;
				background: #EBEBEB;
			}
				[class*="side__campaign-head--"] {
					padding: 12px;
					cursor: pointer;
					position: relative;
				}
				[class*="side__campaign-head--"]::before,
				[class*="side__campaign-head--"]::after {
					content: '';
					display: block;
					width: 12px;
					height: 1.2px;
					border-radius: 9999px;
					position: absolute;
					top: 23px;
					right: 22px;
					transition: .4s;
				}
				[class*="side__campaign-head--"]::after {
					transform: rotate(90deg);
				}
				[class*="side__campaign-head--"].is-open::after {
					transform: rotate(0);
				}
				/* 特別割引（org13）と手入力枠。配色は同ページの割引タグ .room__tag-item--special と同一にする */
				.side__campaign-head--special {
					background: linear-gradient(0deg, rgba(255, 255, 255, 0.90) 0%, rgba(255, 255, 255, 0.90) 100%),#FF5800;

					.side__campaign-label {
						background: #FF5800;
					}
					.side__campaign-title {
						color: #FF5800;
					}
				}
				.side__campaign-head--special::before,
				.side__campaign-head--special::after {
					background: #FF5800;
				}
				.side__campaign-head--early {
					background: linear-gradient(0deg, rgba(255, 255, 255, 0.90) 0%, rgba(255, 255, 255, 0.90) 100%),#D82D2D;

					.side__campaign-label {				
						background: #D82D2D;
					}
					.side__campaign-title {
						color: #D82D2D;
					}
				}
				.side__campaign-head--early::before,
				.side__campaign-head--early::after {
					background: #D82D2D;
				}
				.side__campaign-head--middle {
					background: linear-gradient(0deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.88) 100%),#FF9D00;

					.side__campaign-label {
						background: #FF9D00;
					}
					.side__campaign-title {
						color: #FF9D00;
					}
				}
				.side__campaign-head--middle::before,
				.side__campaign-head--middle::after {
					background: #FF9D00;
				}
				.side__campaign-head--long {
					background: #EBF8E3;

					.side__campaign-label {
						background: #5FB530;
					}
					.side__campaign-title {
						color: #5FB530;
					}
				}
				.side__campaign-head--long::before,
				.side__campaign-head--long::after {
					background: #5FB530;
				}
					.side__campaign-label {
						display: flex;
						justify-content: center;
						align-items: center;
						width: 58px;
						height: 22px;
						font-size: 12px;
						font-weight: 700;
						line-height: 1;
						color: #FFF;
						margin-bottom: 5px;
					}
					.side__campaign-title {
						font-size: 14px;
						font-weight: 500;
						line-height: 1.25;
					}
					.side__campaign-text {
						display: none;
						background: #F9F9F9;
						padding: 11px 15px 11px 11px;
						font-size: 14px;
						font-weight: 400;
						line-height: 1.5;
					}
			.room__side-contact {
				display: flex;
				justify-content: space-between;
				gap: 20px;
				padding: 19px 24px;
				border: 1px solid #EBEBEB;
				background: #FFF;
				box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.08);
			}
				.side__mail-text {
					display: flex;
					flex-direction: column;
					justify-content: center;
					align-items: center;
					gap: 5px;
					font-size: 12px;
					font-weight: 400;
					line-height: 1;
					margin-bottom: 8px;
				}
					.side__mail-text::before {
						content: '';
						background: url(/images/room/icon_side-mail.svg) no-repeat center / cover;
						display: block;
						width: 40px;
						height: 40px;
					}
				[class*="side__mail-more"] a {
					display: flex;
					justify-content: center;
					align-items: center;
					width: 170px;
					height: 40px;
					padding-right: 15px;
					box-shadow: 2px 2px 8px 0 rgba(0, 0, 0, 0.30);
					background: #FF5800;
					border-radius: 3px;
					font-size: 14px;
					font-weight: 700;
					line-height: 1.5;
					color: #FFF;
					position: relative;
				}
					[class*="side__mail-more"] a span {
						width: 18px;
						height: 18px;
						background: #FFF;
						border-radius: 50%;
						position: absolute;
						top: 50%;
						right: 10px;
						transform: translateY(-50%);
					}
						[class*="side__mail-more"] a span svg {
							width: 5px;
							height: 7px;
							fill: none;
							stroke: #FF5800;
							position: absolute;
							top: 50%;
							left: 50%;
							transform: translate(-50%, -50%);
						}
			.side__tel-number {
				display: flex;
				flex-direction: column;
				justify-content: center;
				align-items: center;
				gap: 5px;
				font-size: 24px;
				font-weight: 400;
				line-height: 1;
				font-family: 'Lato';
				color: #FF5800;
				margin-bottom: 5px;
			}
				.side__tel-number::before {
					content: '';
					background: url(/images/room/icon_side-tel.svg) no-repeat center / cover;
					display: block;
					width: 40px;
					height: 40px;
				}
			.side__tel-text {
				font-size: 12px;
				font-weight: 400;
				line-height: 1.25;
				text-align: center;
			}

.room__bkn-contents {
	padding-block: 50px;
	overflow: hidden;
}
.room__bkn-contents.bg-gray {
	background: #F4F4F4;
}
	.room__bkn-inner {
		width: 1140px;
		margin: 0 auto;
	}
		.room__bkn-contents-title {
			font-size: 24px;
			font-weight: 700;
			line-height: 1.25;
			padding-bottom: 10px;
			border-bottom: 1px solid #DADADA;
			margin-bottom: 15px;
		}
		.bkn__card {
			width: 270px;
			position: relative;
		}
			.bkn__image {
				width: 100%;
				height: 203px;
				margin-bottom: 10px;
				position: relative;
			}
				.bkn__image img {
					width: 100%;
					height: 100%;
					object-fit: cover;
				}
				.bkn__favorite {
					background: url(/images/top/icon_favorite.webp) no-repeat center / cover;
					display: block;
					width: 40px;
					height: 40px;
					position: absolute;
					top: 8px;
					right: 8px;
					z-index: 1;
				}
				.bkn__favorite.is-checked {
					background: url(/images/top/icon_favorite_on.webp) no-repeat center / cover;
				}
				/* グレードバッジは物件画像の左上に重ねる（該当時のみ） */
				.bkn__image .bkn__type {
					position: absolute;
					left: 8px;
					top: 8px;
					z-index: 1;
					margin-bottom: 0;
				}
			.bkn__summary {
				margin-bottom: 9px;
			}
				.bkn__label-list {
					display: flex;
					gap: 0 3px;
					margin-bottom: 10px;
				}
					[class*="bkn__label-item--"] {
						flex: 1;
						display: flex;
						justify-content: center;
						align-content: center;
						width: 100%;
						height: fit-content;
						padding: 6px 0;
						font-size: 12px;
						font-weight: 700;
						color: var(--white);
						line-height: 1;
						text-align: center;
					}
					.bkn__label-item--01 {
						background: var(--orange);
					}
					.bkn__label-item--02 {
						background: var(--red);
					}
					.bkn__label-item--03 {
						background: var(--yellow);
					}
					.bkn__label-item--04 {
						background: #5FB530;
					}
				.bkn__name {
					font-size: 20px;
					font-weight: 700;
					line-height: 1;
					overflow: hidden;
					text-overflow: ellipsis;
					white-space: nowrap;
					margin-bottom: 10px;
				}
				.bkn__type {
					display: flex;
					justify-content: center;
					align-items: center;
					width: fit-content;
					height: fit-content;
					padding: 6px 12px;
					background: #FFF;
					border-radius: 999px;
					font-size: 12px;
					font-weight: 700;
					line-height: 1;
					color: var(--text-orange-color);
					margin-bottom: 5px;
				}
				[class*="bkn__short-wrap"] {
					display: flex;
					gap: 0 8px;
				}
				.bkn__short-wrap--sshort {
					margin-bottom: 5px;
				}
					.short__label {
						display: flex;
						justify-content: center;
						align-items: center;
						min-width: 88px;
						width: 88px;
						height: auto;
						min-height: 51px;
						background: #FFF;
						border: 1px solid var(--color-primary-grayscale-border-light, #EBEBEB);
						font-size: 12px;
						font-weight: 700;
					}
					.short__price-wrap {
						display: flex;
						flex-direction: column;
						justify-content: center;
						align-items: flex-start;
						gap: 5px;
					}
						.short__days {
							display: flex;
							align-items: center;
							gap: 0 18px;
						}
							[class*="short__price--"] {
								font-weight: 500;
							}
							[class*="short__price--"],
							[class*="short__price--"] span {
								line-height: 1.2;
							}
							.price-off {
								font-size: 12px;
								font-weight: 700;
								line-height: 1;
								color: var(--red);
							}
							.short__price--change {
								position: relative;
							}
								.short__price--change::before {
									content: '';
									background: url(/images/top/icon_change-arrow.svg) no-repeat center / cover;
									display: block;
									width: 8px;
									height: 6px;
									position: absolute;
									top: 5px;
									left: -11px;
								}
							.change {
								text-decoration: line-through;
							}
							.price-change {
								font-weight: 700;
								color: var(--red);
							}
				.bkn__info {
					display: flex;
					flex-direction: column;
					gap: 4px;
					margin-top: 10px;
				}
					.bkn__text {
						font-weight: 500;
						overflow: hidden;
						text-overflow: ellipsis;
						white-space: nowrap;
					}
			.bkn__more a {
				display: flex;
				align-items: center;
				width: 100%;
				height: 50px;
				padding-left: 84px;
				background: var(--black);
				border-radius: 5px;
				font-size: 16px;
				font-weight: 700;
				color: var(--white);
				box-shadow: 2px 2px 8px 0 rgba(0, 0, 0, 0.30);
				position: relative;
			}
				.bkn__more a .arrow__icon {
					display: flex;
					justify-content: center;
					align-items: center;
					width: 22px;
					height: 22px;
					background: #FFF;
					border-radius: 50%;
					padding-left: 2px;
					position: absolute;
					top: 50%;
					right: 15px;
					transform: translateY(-50%);
				}
					.bkn__more a .arrow__icon svg {
						width: 5px;
						height: 8px;
						fill: none;
						stroke: var(--black);
					}
			.bkn__contents.no-slide .bkn__list {
				display: flex;
				justify-content: flex-start;
				gap: 20px;
			}
			/* バッジ・割引行の有無に関わらずカード高さを揃える（swiper の .swiper-slide{height:100%} が
			   auto 高ラッパー内で stretch を無効化するため、slide を height:auto に戻して stretch を効かせる） */
			.bkn__contents .bkn__list.swiper-wrapper {
				align-items: stretch;
			}
			.bkn__contents .bkn__card.swiper-slide {
				height: auto;
			}

			/* オンマウス時カーソル（クリック可能要素）・地図バナーはホバー透過 */
			.price__tab-item:hover {
				cursor: pointer;
				color: #1C1C1C;
				background: #FFF;
			}
			.map__banner {
				transition: .4s;
			}
			.map__banner:hover {
				cursor: pointer;
				transform: translateY(5px);
			}
			.map__embed {
				width: 100%;
				height: 320px;
			}
			/* 初期非表示・JS による出し分け（html の style 属性は使わない） */
			.is-hidden {
				display: none !important;
			}
.link__section {
	background: var(--color-primary-grayscale-background-01, #F4F4F4);
}
/* シミュレーション日付の jquery-ui カレンダー（body 直下）。ヘッダーより上に出す */
#ui-datepicker-div {
	z-index: 110 !important;
}