/*
Theme Name: BikeSpace Lightning Child
Template: lightning
Version: 1.0.17
Text Domain: bikespace-lightning-child
*/


/* ========================================
   ホーム 在庫車両スライダー
   （車両一覧・車両詳細ページと違い、
   ホームは常にこのstyle.cssを読み込むため
   ここに配置しています）
======================================== */

.bs-stock-swiper .swiper-wrapper {
	align-items: stretch;
}

.bs-stock-swiper .swiper-slide {
	display: flex;
	height: auto;
}

.bs-stock-card {
	display: flex;
	width: 100%;
	height: 100%;
}

.bs-stock-card__link {
	display: flex;
	width: 100%;
	height: 100%;
	flex-direction: column;
}

.bs-stock-card__image-area {
	flex: 0 0 290px;
	height: 290px;
	overflow: hidden;
}

.bs-stock-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bs-stock-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 28px;
}

/*
 * 車名は最大2行までに固定し、はみ出す分は「…」で省略します。
 * こうすることで、車名の長さに関係なく全カードの高さが揃います。
 */
.bs-stock-card__name {
	display: -webkit-box;
	overflow: hidden;
	margin-bottom: 10px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

/*
 * 車両状態も1行に固定し、はみ出す分は「…」で省略します。
 */
.bs-stock-card__category {
	overflow: hidden;
	margin-bottom: 12px;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.bs-stock-card__price-label {
	margin-top: auto;
}

.bs-stock-card__price {
	margin-top: auto;
	margin-bottom: 0;
	color: #087a42;
	font-weight: 700;
}

@media (max-width: 767px) {

	.bs-stock-card__image-area {
		flex-basis: 260px;
		height: 260px;
	}

	.bs-stock-card__body {
		padding: 22px;
	}

}


/* ========================================
   車両在庫一覧
======================================== */

.bike-stock-page {
	background: #f5f6f5;
	padding: 70px 20px 90px;
}

.bike-stock-container {
	width: min(1200px, 100%);
	margin: 0 auto;
}

.bike-stock-heading {
	margin-bottom: 40px;
}

.bike-stock-subtitle {
	margin: 0 0 8px;
	color: #087a42;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.18em;
}

.bike-stock-heading h1 {
	margin: 0 0 12px;
	font-size: clamp(32px, 5vw, 52px);
	line-height: 1.25;
}

.bike-stock-heading > p:last-child {
	margin: 0;
	color: #606660;
}

.bike-stock-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
}

.bike-stock-card {
	overflow: hidden;
	background: #fff;
	border: 1px solid #dfe3df;
	border-radius: 18px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.bike-stock-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 16px 38px rgba(0, 0, 0, 0.1);
}

.bike-stock-image {
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: #e8ebe8;
}

.bike-stock-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.bike-stock-card:hover .bike-stock-image img {
	transform: scale(1.04);
}

.bike-stock-no-image {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
	color: #7b827d;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.bike-stock-content {
	padding: 24px;
}

.bike-stock-maker {
	margin: 0 0 7px;
	color: #087a42;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.bike-stock-content h2 {
	margin: 0 0 20px;
	font-size: clamp(24px, 3vw, 32px);
	line-height: 1.3;
}

.bike-stock-content h2 a {
	color: #202420;
	text-decoration: none;
}

.bike-stock-specs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 0 24px;
	border-top: 1px solid #e5e8e5;
	border-bottom: 1px solid #e5e8e5;
}

.bike-stock-specs > div {
	padding: 14px 10px;
}

.bike-stock-specs > div + div {
	border-left: 1px solid #e5e8e5;
}

.bike-stock-specs dt {
	margin-bottom: 4px;
	color: #787f79;
	font-size: 12px;
}

.bike-stock-specs dd {
	margin: 0;
	color: #272c28;
	font-size: 15px;
	font-weight: 700;
}

.bike-stock-footer {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 20px;
}

.bike-stock-price {
	margin: 0;
}

.bike-stock-price span {
	display: block;
	margin-bottom: 2px;
	color: #737973;
	font-size: 12px;
}

.bike-stock-price strong {
	color: #087a42;
	font-size: clamp(22px, 3vw, 30px);
	line-height: 1;
}

.bike-stock-price small {
	margin-left: 3px;
	font-size: 13px;
}

.bike-stock-button {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	padding: 10px 22px;
	background: #087a42;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	border-radius: 8px;
	transition:
		background 0.2s ease,
		transform 0.2s ease;
}

.bike-stock-button:hover {
	background: #055d32;
	color: #fff;
	transform: translateY(-2px);
}

.bike-stock-empty {
	padding: 50px 20px;
	background: #fff;
	text-align: center;
	border-radius: 16px;
}

.bike-stock-pagination {
	margin-top: 45px;
	text-align: center;
}

.bike-stock-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

.bike-stock-pagination .page-numbers {
	display: inline-flex;
	min-width: 42px;
	min-height: 42px;
	align-items: center;
	justify-content: center;
	padding: 8px 12px;
	background: #fff;
	color: #202420;
	text-decoration: none;
	border-radius: 7px;
}

.bike-stock-pagination .page-numbers.current {
	background: #087a42;
	color: #fff;
}

@media (max-width: 767px) {
	.bike-stock-page {
		padding: 45px 15px 65px;
	}

	.bike-stock-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.bike-stock-content {
		padding: 20px;
	}

	.bike-stock-footer {
		align-items: stretch;
		flex-direction: column;
	}

	.bike-stock-button {
		width: 100%;
	}
}

/* =========================================================
   車両一覧ページのメニュー
========================================================= */

.bsk-stock-global-menu {
	width: 100%;
	background: #fff;
	border-bottom: 1px solid #e5e5e5;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.bsk-stock-global-menu__inner {
	width: min(1200px, calc(100% - 40px));
	margin: 0 auto;
}

.bsk-stock-global-menu__list {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bsk-stock-global-menu__list li {
	margin: 0;
	padding: 0;
}

.bsk-stock-global-menu__list a {
	display: block;
	padding: 22px 18px;
	color: #222;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition:
		color 0.2s ease,
		background-color 0.2s ease;
}

.bsk-stock-global-menu__list a:hover,
.bsk-stock-global-menu__list .current-menu-item > a {
	background: #f5f5f5;
	color: #087b39;
}
@media (max-width: 767px) {

	.bsk-stock-global-menu__inner {
		width: 100%;
		overflow-x: auto;
	}

	.bsk-stock-global-menu__list {
		justify-content: flex-start;
		width: max-content;
		min-width: 100%;
	}

	.bsk-stock-global-menu__list a {
		padding: 16px 14px;
		font-size: 14px;
		white-space: nowrap;
	}
}
/* ========================================
   車両カード内の大きな空白をなくす
======================================== */

.bike-stock-card {
	height: auto;
	min-height: 0;
}

.bike-stock-content {
	display: block;
	height: auto;
	min-height: 0;
	padding: 24px;
}

.bike-stock-content h2 {
	margin: 0 0 12px;
}

.bike-stock-specs {
	margin: 0 0 18px;
}

.bike-stock-comment {
	margin: 0 0 20px;
	color: #4a4f4b;
	font-size: 14px;
	line-height: 1.8;
}

.bike-stock-credit {
	margin: 12px 0 0;
	color: #a5aaa6;
	font-size: 11px;
}

.bike-stock-footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-top: 0;
}

.bike-stock-price {
	margin: 0;
}
@media (max-width: 767px) {

	.bike-stock-content {
		padding: 18px;
	}

	.bike-stock-content h2 {
		margin-bottom: 10px;
		font-size: 24px;
	}

	.bike-stock-specs {
		margin-bottom: 14px;
	}

	.bike-stock-footer {
		gap: 14px;
		margin-top: 0;
	}

	.bike-stock-price {
		margin: 0;
	}

}

/* ========================================
   車両在庫一覧の絞り込みバー
======================================== */

.bike-filter {
	margin: 0 0 30px;
}

.bike-filter__toggle-input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
}

.bike-filter__toggle-label {
	display: none;
}

.bike-filter__panel {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	background: #fff;
	border: 1px solid #dfe3df;
	border-radius: 14px;
}

.bike-filter__group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.bike-filter__group--pills {
	gap: 8px;
}

.bike-filter__pill {
	position: relative;
}

.bike-filter__pill input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
}

.bike-filter__pill span {
	display: inline-flex;
	min-height: 40px;
	align-items: center;
	padding: 0 16px;
	background: #f5f6f5;
	color: #4a4f4b;
	font-size: 14px;
	font-weight: 700;
	border: 1px solid #dfe3df;
	border-radius: 999px;
	cursor: pointer;
	transition:
		background 0.2s ease,
		color 0.2s ease;
}

.bike-filter__pill input:checked + span {
	background: #087a42;
	color: #fff;
	border-color: #087a42;
}

.bike-filter__select {
	min-height: 44px;
	padding: 0 14px;
	background: #fff;
	color: #202420;
	font-size: 14px;
	border: 1px solid #dfe3df;
	border-radius: 8px;
}

.bike-filter__submit {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	padding: 0 22px;
	background: #087a42;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: background 0.2s ease;
}

.bike-filter__submit:hover {
	background: #055d32;
}

@media (max-width: 767px) {

	.bike-filter {
		margin-bottom: 22px;
	}

	.bike-filter__toggle-label {
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 48px;
		padding: 0 18px;
		background: #fff;
		color: #202420;
		font-size: 15px;
		font-weight: 700;
		border: 1px solid #dfe3df;
		border-radius: 10px;
		cursor: pointer;
	}

	.bike-filter__toggle-label::after {
		content: '\25BE';
		color: #087a42;
	}

	.bike-filter__panel {
		display: none;
		margin-top: 10px;
		flex-direction: column;
		align-items: stretch;
		border-radius: 10px;
	}

	.bike-filter__toggle-input:checked ~ .bike-filter__panel {
		display: flex;
	}

	.bike-filter__group {
		flex-direction: column;
		align-items: stretch;
	}

	.bike-filter__group--pills {
		flex-direction: row;
		flex-wrap: wrap;
	}

	.bike-filter__select,
	.bike-filter__submit {
		width: 100%;
	}
}

/* ========================================
   車両在庫一覧ページ：スマホの電話CTA固定バー
======================================== */

.bike-mobile-call-cta {
	display: none;
}

@media (max-width: 767px) {

	.bike-stock-page {
		padding-bottom: 110px;
	}

	.bike-mobile-call-cta {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 100;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 56px;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		background: #087a42;
		color: #fff;
		font-size: 15px;
		font-weight: 700;
		text-decoration: none;
		box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.15);
	}

	.bike-mobile-call-cta__icon {
		flex-shrink: 0;
	}
}

/* ========================================
   トップページ（試作版）
======================================== */

.bs-home-container {
	width: min(1200px, 100%);
	margin: 0 auto;
	padding: 0 20px;
}

.bs-btn {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	padding: 10px 28px;
	font-weight: 700;
	text-decoration: none;
	border-radius: 3px;
	border: 2px solid transparent;
	transition:
		background 0.2s ease,
		color 0.2s ease;
}

.bs-btn--primary {
	background: #e8871e;
	color: #fff;
}

.bs-btn--primary:hover {
	background: #c96f10;
	color: #fff;
}

.bs-btn--outline {
	background: transparent;
	color: #fff;
	border-color: #fff;
}

.bs-btn--outline:hover {
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
}

.bs-home-heading {
	margin: 0 0 30px;
	font-size: clamp(26px, 3vw, 34px);
	text-align: center;
}

/* ヒーロー */

.bs-home-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 88vh;
	padding: 0;
	overflow: hidden;
	color: #fff;
}

/*
 * 背景の写真・映像を敷くための層。
 * 今は色だけのプレースホルダーですが、この中に
 * <img>や<video>を入れれば、そのまま背景として敷けます。
 */
.bs-home-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: #0b5c33;
	background-size: cover;
	background-position: center;
}

.bs-home-hero__media-item {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	animation: bsHeroCrossfade 24s infinite;
}

.bs-home-hero__media-item:nth-child(1) {
	animation-delay: 0s;
}

.bs-home-hero__media-item:nth-child(2) {
	animation-delay: -6s;
}

.bs-home-hero__media-item:nth-child(3) {
	animation-delay: -12s;
}

.bs-home-hero__media-item:nth-child(4) {
	animation-delay: -18s;
}

@keyframes bsHeroCrossfade {
	0%, 21% { opacity: 1; }
	25%, 96% { opacity: 0; }
	100% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {

	.bs-home-hero__media-item {
		animation: none;
	}

	.bs-home-hero__media-item:nth-child(1) {
		opacity: 1;
	}

	.bs-home-hero__media-item:nth-child(2),
	.bs-home-hero__media-item:nth-child(3),
	.bs-home-hero__media-item:nth-child(4) {
		opacity: 0;
	}
}

/*
 * スマホ幅では映像を1本（霧島）だけ表示します。
 * 他の写真・映像は読み込まず、通信量を抑えます。
 */
@media (max-width: 767px) {

	.bs-home-hero__media-item {
		animation: none;
		display: none;
	}

	.bs-home-hero__media-item--mobile {
		display: block;
		opacity: 1;
	}
}

/*
 * 文字を読みやすくするための、下から暗くなるグラデーション。
 * 写真・映像を敷いた後もそのまま使えます。
 */
.bs-home-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(4, 26, 15, 0.15) 0%, rgba(4, 26, 15, 0.75) 100%);
}

.bs-home-hero__inner {
	position: relative;
	z-index: 2;
	max-width: 640px;
	padding: 0 24px 80px;
}

.bs-home-hero__overline {
	margin: 0 0 14px;
	color: #e8871e;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.bs-home-hero__logo {
	display: inline-block;
	margin: 0 0 16px;
}

.bs-home-hero__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: clamp(48px, 8vw, 72px);
	filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.6)) drop-shadow(0 0 14px rgba(0, 0, 0, 0.4));
}

.bs-home-hero h1 {
	margin: 0 0 16px;
	color: #fff;
	font-size: clamp(30px, 4.5vw, 46px);
	line-height: 1.3;
	text-align: left;
}

.bs-home-hero__lead {
	margin: 0 0 30px;
	color: rgba(255, 255, 255, 0.9);
	font-size: 16px;
	text-align: left;
}

.bs-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* 強み3本柱 */

.bs-home-badges {
	padding: 50px 0;
	background: linear-gradient(135deg, #0b5c33, #087a42);
}

.bs-home-badges__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	text-align: center;
}

.bs-home-badge {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	padding: 0 20px;
}

.bs-home-badge + .bs-home-badge::before {
	position: absolute;
	top: 8px;
	left: 0;
	width: 1px;
	height: calc(100% - 16px);
	background: rgba(255, 255, 255, 0.25);
	content: "";
}

.bs-home-badge__icon {
	display: grid;
	width: 72px;
	height: 72px;
	place-items: center;
	color: #087a42;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.bs-home-badge p {
	margin: 0;
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.02em;
}

@media (max-width: 767px) {

	.bs-home-badge + .bs-home-badge::before {
		display: none;
	}
}

/* サービスタブ */

.bs-home-services {
	padding: 60px 0;
	background: #f5f6f5;
}

.bs-tabs__input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
}

.bs-tabs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 24px;
}

.bs-tabs__label {
	display: inline-flex;
	min-height: 46px;
	align-items: center;
	padding: 0 20px;
	background: #fff;
	color: #202420;
	font-weight: 700;
	border: 1px solid #dfe3df;
	border-radius: 999px;
	cursor: pointer;
	transition:
		background 0.2s ease,
		color 0.2s ease;
}

.bs-tabs__panel {
	display: none;
	padding: 30px;
	background: #fff;
	border-radius: 14px;
}

.bs-tabs__panel p {
	margin: 0 0 20px;
	line-height: 1.8;
}

#bs-tab-sales:checked ~ .bs-tabs__list label[for="bs-tab-sales"],
#bs-tab-rental:checked ~ .bs-tabs__list label[for="bs-tab-rental"],
#bs-tab-service:checked ~ .bs-tabs__list label[for="bs-tab-service"],
#bs-tab-buy:checked ~ .bs-tabs__list label[for="bs-tab-buy"] {
	background: #087a42;
	color: #fff;
}

#bs-tab-sales:checked ~ .bs-tabs__panel--sales,
#bs-tab-rental:checked ~ .bs-tabs__panel--rental,
#bs-tab-service:checked ~ .bs-tabs__panel--service,
#bs-tab-buy:checked ~ .bs-tabs__panel--buy {
	display: block;
}

/* おすすめ車両 */

.bs-home-pickup {
	padding: 60px 0;
	background: #fff;
}

.bs-home-pickup__grid {
	display: flex;
	gap: 24px;
	margin-bottom: 30px;
	padding-bottom: 10px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.bs-home-pickup__grid .bs-stock-card {
	flex: 0 0 300px;
	background: #fff;
	border: 1px solid #dfe3df;
	border-radius: 14px;
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	transition: box-shadow 0.2s ease;
}

.bs-home-pickup__grid .bs-stock-card:hover {
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.bs-home-pickup__noimage {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
	color: #7b827d;
	background: #e8ebe8;
	font-size: 13px;
	font-weight: 700;
}

.bs-home-pickup__more {
	margin: 0;
	text-align: center;
}

.bs-home-pickup__more .bs-btn--outline {
	color: #087a42;
	border-color: #087a42;
}

.bs-home-pickup__more .bs-btn--outline:hover {
	background: #087a42;
	color: #fff;
}

.bs-home-reviews__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	margin-top: 20px;
}

.bs-home-reviews__link.bs-btn--outline {
	color: #087a42;
	border-color: #087a42;
}

.bs-home-reviews__link.bs-btn--outline:hover {
	background: #087a42;
	color: #fff;
}

/* レンタル */

.bs-home-rental {
	position: relative;
	padding: 70px 0;
	overflow: hidden;
	color: #fff;
	text-align: center;
	border-top: none !important;
	box-shadow: none !important;
}

.bs-home-rental::before,
.bs-home-rental::after {
	display: none !important;
}

.bs-home-rental__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	background: #0b5c33;
}

.bs-home-rental__quadrant {
	position: relative;
	overflow: hidden;
}

.bs-home-rental__slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	animation: bsRentalCrossfade 14s infinite;
}

.bs-home-rental__slide--a {
	animation-delay: 0s;
}

.bs-home-rental__slide--b {
	animation-delay: -7s;
}

@keyframes bsRentalCrossfade {
	0%, 42% { opacity: 1; }
	50%, 92% { opacity: 0; }
	100% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {

	.bs-home-rental__slide {
		animation: none;
	}

	.bs-home-rental__slide--a {
		opacity: 1;
	}

	.bs-home-rental__slide--b {
		opacity: 0;
	}
}

.bs-home-rental__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(4, 26, 15, 0.55) 0%, rgba(4, 26, 15, 0.8) 100%);
}

.bs-home-rental__inner {
	position: relative;
	z-index: 2;
}

.bs-home-heading--light {
	color: #fff;
}

.bs-home-rental__table {
	max-width: 640px;
	margin: 0 auto 20px;
	background: rgba(255, 255, 255, 0.96);
	border-radius: 14px;
	overflow: hidden;
}

.bs-home-rental__row {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 18px 24px;
	text-align: left;
}

.bs-home-rental__row + .bs-home-rental__row {
	border-top: 1px solid #e5e8e5;
}

.bs-home-rental__row span {
	color: #606660;
	font-size: 13px;
}

.bs-home-rental__row strong {
	color: #087a42;
}

.bs-home-rental__note {
	max-width: 560px;
	margin: 0 auto 24px;
	color: rgba(255, 255, 255, 0.85);
	font-size: 13px;
}

.bs-home-rental__cta {
	margin: 0;
	text-align: center;
}

@media (max-width: 767px) {

	.bs-home-rental__row {
		text-align: center;
	}
}

/* お客様の声 */

.bs-home-reviews {
	padding: 60px 0;
	background: #fff;
	text-align: center;
}

.bs-home-reviews__score {
	margin: 0 0 30px;
	color: #e8871e;
	font-size: 32px;
}

.bs-home-reviews__score strong {
	color: #202420;
	font-size: 32px;
}

.bs-home-reviews__grid {
	display: flex;
	gap: 20px;
	margin-bottom: 20px;
	padding-bottom: 10px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
}

.bs-home-review-card {
	flex: 0 0 180px;
	padding: 24px 16px;
	background: #f5f6f5;
	border: 1px solid #dfe3df;
	border-radius: 12px;
	scroll-snap-align: start;
}

.bs-home-review-card__stars {
	margin: 0 0 8px;
	color: #e8871e;
	font-size: 16px;
}

.bs-home-review-card__label {
	margin: 0 0 6px;
	color: #606660;
	font-size: 13px;
}

.bs-home-review-card__score {
	margin: 0;
	color: #202420;
	font-size: 22px;
	font-weight: 700;
}

.bs-home-review-card--wide {
	display: flex;
	flex: 0 0 260px;
	flex-direction: column;
	text-align: left;
}

.bs-home-review-card__topic {
	margin: 0 0 10px;
	color: #087a42;
	font-size: 14px;
	font-weight: 700;
}

.bs-home-review-card__summary {
	margin: 0;
	color: #4a4f4b;
	font-size: 13px;
	line-height: 1.7;
}

.bs-home-reviews__note {
	max-width: 560px;
	margin: 0 auto;
	color: #606660;
	font-size: 14px;
}

/* ツーリングスポット */

.bs-home-touring {
	padding: 60px 0;
	background: #f5f6f5;
}

.bs-home-touring__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.bs-home-touring__image {
	overflow: hidden;
	background: #e8ebe8;
	border-radius: 14px;
	aspect-ratio: 16 / 10;
}

.bs-home-touring__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bs-home-touring__credit {
	margin: 20px 0 0;
	color: #a5aaa6;
	font-size: 11px;
	text-align: center;
}

.bs-home-touring__item p {
	margin: 12px 0 0;
	font-weight: 700;
	text-align: center;
}

/* 会社概要 */

.bs-home-company {
	padding: 60px 0;
	background: #fff;
}

.bs-home-company__table {
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
	border-collapse: collapse;
}

.bs-home-company__table th,
.bs-home-company__table td {
	padding: 16px;
	text-align: left;
	border-bottom: 1px solid #e5e8e5;
}

.bs-home-company__table th {
	width: 160px;
	color: #606660;
	font-weight: 700;
	white-space: nowrap;
}

/* アクセス */

.bs-home-access {
	padding: 60px 0 90px;
	background: #f5f6f5;
}

.bs-home-access__grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 30px;
	align-items: stretch;
}

.bs-home-access__map {
	overflow: hidden;
	border-radius: 14px;
}

.bs-home-access__info {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 10px;
	padding: 24px;
	background: #fff;
	border-radius: 14px;
}

.bs-home-access__photo {
	overflow: hidden;
	margin-bottom: 6px;
	background: #e8ebe8;
	border-radius: 10px;
	aspect-ratio: 4 / 3;
	max-width: 260px;
}

.bs-home-access__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bs-home-access__info p {
	margin: 0;
}

.bs-home-access__list {
	margin: 4px 0 8px;
	padding-left: 1.2em;
	color: #4a4f4b;
	font-size: 14px;
	line-height: 1.8;
}

.bs-home-access__list li {
	margin-bottom: 4px;
}

@media (max-width: 767px) {

	.bs-home-hero {
		min-height: auto;
		padding: 50px 20px;
	}

	.bs-home-badges__grid,
	.bs-home-touring__grid {
		grid-template-columns: 1fr;
	}

	.bs-home-pickup__grid .bs-stock-card {
		flex-basis: 260px;
	}

	.bs-home-access__grid {
		grid-template-columns: 1fr;
	}

	.bs-home-company__table th {
		width: 110px;
	}
}

/* ========================================
   休業日カレンダー（フロント表示）
======================================== */

.bs-home-calendar {
	padding: 60px 0;
	background: #fff;
}

.bs-home-calendar__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px;
	max-width: 1160px;
	margin: 0 auto;
}

.bsk-closed-calendar {
	max-width: 420px;
	margin: 0 auto;
}

@media (min-width: 768px) {

	.bsk-closed-calendar {
		width: 100%;
		max-width: none;
	}
}

@media (max-width: 767px) {

	.bs-home-calendar__grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}
}

.bsk-closed-calendar__header {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	margin-bottom: 16px;
}

.bsk-closed-calendar__title {
	font-weight: 700;
	font-size: 18px;
}

.bsk-closed-calendar__table {
	width: 100%;
	border-collapse: collapse;
}

.bsk-closed-calendar__table th,
.bsk-closed-calendar__table td {
	padding: 10px 0;
	text-align: center;
	border: 1px solid #e5e8e5;
}

.bsk-closed-calendar__table th {
	background: #f5f6f5;
	font-size: 13px;
}

.bsk-closed-calendar__table td.is-closed {
	color: #b23c22;
	background: #fbeee9;
	font-weight: 700;
}

.bsk-closed-calendar__table td.is-empty {
	background: #fafafa;
}

.bsk-closed-calendar__legend {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 14px 0 0;
	color: #606660;
	font-size: 13px;
}

.bsk-closed-calendar__legend-dot {
	display: inline-block;
	width: 12px;
	height: 12px;
	background: #fbeee9;
	border: 1px solid #b23c22;
	border-radius: 2px;
}