@charset "UTF-8";
/* ==========================================================================
   CHECKBOX TOUR 商品ページ(箱根/鎌倉)共通スタイル
   デザイン基準幅: 1280px / 共通ヘッダー・フッターあり
   ========================================================================== */

.cbp {
	background: #fff;
	font-family: var(--font-dm);
	font-weight: 400;
	font-size: 16px;
	line-height: 1.4;
	color: #000;
	font-variation-settings: "opsz" 14;
	padding-bottom: 140px;
}
.cbp img {
	max-width: 100%;
	height: auto;
}
.cbp_inner {
	max-width: 1280px;
	min-width: 1184px;
	margin: 0 auto;
	padding: 0 48px;
	box-sizing: border-box;
}

/* 見出し・共通 */
.cbpH2 {
	margin: 0 0 29px;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 28px;
	line-height: 1.6;
	color: var(--cbt-blue);
}
.cbpH3 {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.4;
	color: #000;
}
.cbpH3-block {
	margin: 40px 0 16px;
	line-height: 1.6;
}
/* cbpH3-block 個別調整(上マージン / 下マージン) */
.cbpH3-points { margin: 40px 0 16px; }
.cbpH3-cancel { margin: 34px 0 16px; }
.cbpH3-terms { margin: 34px 0 18px; }
.cbpLabel {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.6;
	color: var(--cbt-blue);
}
.cbpIntro {
	margin: 0 0 36px;
}
/* 途中改行させたくないフレーズ用 */
.cbpNowrap {
	white-space: nowrap;
}
.cbpSection {
	padding-bottom: 136px;
}

/* --------------------------------------------------------------------------
   セクション個別調整(ピクセルパーフェクト用)
   セクション下余白 / 見出し(cbpH2)下 / リード文(cbpIntro)下 をセクションごとに指定
   ※cbpSpecs, cbpSection-overview, cbpItin は既存の個別指定を使用
   -------------------------------------------------------------------------- */
.cbpSection-reviewSummary { padding-bottom: 131px; }
.cbpSection-reviewSummary .cbpH2 { margin-bottom: 38px; }
.cbpSection-whats { padding-bottom: 130px; }
.cbpSection-whats .cbpH2 { margin-bottom: 30px; }
.cbpSection-whats .cbpIntro { margin-bottom: 36px; }
.cbpSection-overview .cbpIntro { margin-bottom: 44px; }
.cbpSection-availability { padding-bottom: 130px; }
.cbpSection-availability .cbpH2 { margin-bottom: 33px; }
.cbpSection-process { padding-bottom: 129px; }
.cbpSection-process .cbpH2 { margin-bottom: 38px; }
.cbpSection-onsite { padding-bottom: 75px; }
.cbpSection-onsite .cbpH2 { margin-bottom: 30px; }
.cbpSection-onsite .cbpIntro { margin-bottom: 36px; }
.cbpSection-guide { padding-bottom: 130px; }
.cbpSection-guide .cbpH2 { margin-bottom: 26px; }
.cbpSection-why { padding-bottom: 181px; }
.cbpSection-why .cbpH2 { margin-bottom: 29px; }
.cbpSection-tshirt { padding-bottom: 131px; }
.cbpSection-tshirt .cbpH2 { margin-bottom: 33px; }
.cbpSection-tshirt .cbpIntro { margin-bottom: 38px; }
.cbpSection-price { padding-bottom: 130px; }
.cbpSection-price .cbpH2 { margin-bottom: 31px; }
.cbpSection-included { padding-bottom: 143px; }
.cbpSection-included .cbpH2 { margin-bottom: 38px; }
.cbpSection-faq { padding-bottom: 130px; }
.cbpSection-faq .cbpH2 { margin-bottom: 27px; }
.cbpSection-customerReviews { padding-bottom: 140px; }
.cbpSection-customerReviews .cbpH2 { margin-bottom: 29px; }

/* ボタン */
.cbpBtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 235px;
	height: 50px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 50px;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 16px;
	color: #fff;
	text-decoration: none;
	cursor: pointer;
	transition: opacity 0.3s ease;
	box-sizing: border-box;
}
.cbpBtn:hover {
	opacity: 0.8;
}
.cbpBtn-red {
	background: var(--cbt-red);
	width: 277px;
}
.cbpBtn-blue {
	background: var(--cbt-blue);
}
.cbpBtn-outline {
	background: transparent;
	border: 1px solid var(--cbt-blue);
	color: var(--cbt-blue);
}
.cbpBtn-wide {
	width: 376px;
}
.cbpBtn-card {
	width: 100%;
}
.cbpBtnRow {
	margin: 47px 0 0;
}
/* 本文中のテキストリンク(a)と、リンク見た目のボタン(モーダル起動用button) */
.cbpTextLink,
.cbpLinkBtn {
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font: inherit;
	color: var(--cbt-blue);
	text-decoration: underline;
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbpTextLink:hover,
.cbpLinkBtn:hover {
	opacity: 0.7;
}

/* --------------------------------------------------------------------------
   ヒーロー
   -------------------------------------------------------------------------- */
/* ヒーロー: ロゴ+テキスト(3ポイントタイルは2026-08-28トルツメ) */
.cbpHero {
	display: flex;
	align-items: flex-start;
	gap: 48px;
	padding-top: 70px;
}
.cbpHero_logo {
	flex: none;
	width: 231px;
	margin: 0;
}
.cbp .cbpHero_logoImg {
	display: block;
	width: 231px;
	height: auto;
}
.cbpHero_text {
	width: 621px;
	flex: none;
	/* ロゴ縦センター寄りにテキストを配置(Figmaはロゴtopから+10px) */
	padding-top: 10px;
}
.cbpHero_title {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 32px;
	line-height: 1.6;
	color: #000;
}
.cbpHero_desc {
	margin: 6px 0 10px;
}

/* --------------------------------------------------------------------------
   2カラム(メイン + 右固定カード)
   -------------------------------------------------------------------------- */
.cbpLayout {
	display: flex;
	gap: 28px;
	margin-top: 50px;
}
.cbpMain {
	width: 881px;
	flex: none;
}
.cbpRail {
	width: 275px;
	flex: none;
}
.cbpPriceCard {
	position: sticky;
	top: 90px;
	box-sizing: border-box;
	padding: 33px 20px 29px;
	background: #fff;
	border: 1px solid var(--cbt-gray-line);
	border-radius: 10px;
}
.cbpPriceCard_block + .cbpPriceCard_block {
	margin-top: 20px;
}
/* SP追従バーの開閉ボタン(PCでは非表示 2026-08-28) */
.cbpPriceCard_toggle {
	display: none;
}
/* キャンペーン(2026-08-27 15% Offラウンド) */
.cbpPriceCard_campaign {
	margin: 0 0 20px;
}
.cbpPriceCard_campaignTitle {
	margin: 0;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.4;
	color: var(--cbt-red);
}
.cbpPriceCard_campaignText {
	margin: 8px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbpCampaignEm {
	color: var(--cbt-red);
}
.cbpPriceCard_from {
	margin: 0 0 5px;
	font-size: 16px;
	line-height: 1.4;
}
/* 通常価格(取り消し線) */
.cbpPriceCard_regular {
	margin: 0 0 3px;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.4;
	color: #000;
	text-decoration: line-through;
}
.cbpPriceCard_price {
	display: flex;
	align-items: flex-end;
	gap: 6px;
	margin: 0;
}
.cbpPriceCard_figure {
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 34px;
	line-height: 1;
	color: var(--cbt-red);
}
.cbpPriceCard_unit {
	font-size: 14px;
	line-height: 1.3;
	color: var(--cbt-red);
}
.cbpPriceCard .cbpBtn {
	margin-top: 35px;
}

/* --------------------------------------------------------------------------
   メディアブロック
   -------------------------------------------------------------------------- */
.cbpMedia {
	position: relative;
	display: flex;
	gap: 16px;
	margin-bottom: 44px;
}
.cbpMedia_video {
	position: relative;
	display: block;
	width: 679px;
	height: 453px;
	flex: none;
	margin: 0;
	padding: 0;
	border: none;
	background: var(--cbt-placeholder);
	overflow: hidden;
	cursor: pointer;
}
.cbp .cbpMedia_videoImg {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.cbpMedia_video:hover .cbpMedia_videoImg {
	transform: scale(1.03);
}
.cbp .cbpMedia_videoPlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 63px;
	height: 63px;
}
/* 動画未支給のため再生ボタンを一時非表示+クリック無効(素材が届いたらこの2行を削除) */
.cbp .cbpMedia_videoPlay { display: none; }
.cbpMedia_video { pointer-events: none; }
.cbpMedia_sides {
	display: flex;
	flex-direction: column;
	gap: 16px;
	flex: 1;
}
.cbpMedia_side {
	width: 100%;
	height: 140px;
	overflow: hidden;
	background: var(--cbt-placeholder);
}
.cbp .cbpMedia_side img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cbpMedia_allPicture {
	position: absolute;
	right: 16px;
	bottom: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 120px;
	height: 32px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 30px;
	background: #fff;
	white-space: nowrap;
	font-family: var(--font-rubik);
	font-weight: 600;
	font-size: 14px;
	color: var(--cbt-blue);
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbp .cbpMedia_allPicture img {
	flex: none;
	width: 15px;
	height: 12px;
}
.cbpMedia_allPicture:hover {
	opacity: 0.85;
}

/* --------------------------------------------------------------------------
   スペック表
   -------------------------------------------------------------------------- */
.cbpSpecs {
	display: flex;
	flex-direction: column;
	gap: 35px;
}
.cbpSpec_title {
	margin: 0 0 5px;
	font-weight: 600;
	font-size: 20px;
	line-height: normal;
	color: var(--cbt-blue);
}
.cbpSpec_table {
	margin: 0;
}
.cbpSpec_row {
	display: flex;
	padding-bottom: 7px;
	border-bottom: 1px solid var(--cbt-gray-line);
}
.cbpSpec_row + .cbpSpec_row {
	margin-top: 16px;
}
.cbpSpec_row dt {
	flex: none;
	width: 303px;
	padding-top: 2px;
	font-size: 16px;
	line-height: 1.4;
	color: var(--cbt-gray-line);
	font-weight: 400;
}
.cbpSpec_row dd {
	margin: 0;
	font-weight: 500;
	font-size: 18px;
	line-height: normal;
}
/* スペック表下の注意ボックス */
.cbpSpecNote {
	position: relative;
	margin: 0;
	padding: 19px 20px 19px 63px;
	border: 1px solid var(--cbt-blue);
	border-radius: 5px;
	font-size: 16px;
	line-height: 1.4;
	color: var(--cbt-blue);
}
.cbp .cbpSpecNote img {
	position: absolute;
	top: 19px;
	left: 20px;
	width: 22px;
	height: 22px;
}

/* --------------------------------------------------------------------------
   レビュー(要約カード)
   -------------------------------------------------------------------------- */
.cbpReviewHead {
	display: flex;
	align-items: center;
	gap: 9px;
}
.cbpReviewHead_info {
	display: inline-flex;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbpReviewHead_info:hover {
	opacity: 0.6;
}
.cbp .cbpReviewHead_info img {
	width: 22px;
	height: 22px;
}
.cbpReviewCards {
	display: flex;
	gap: 28px;
}
.cbpReviewCard {
	position: relative;
	width: 275px;
	height: 329px;
	box-sizing: border-box;
	padding: 24px 30px 30px;
	background: #fff;
	border: 1px solid var(--cbt-gray-line);
	border-radius: 10px;
}
.cbpReviewCard_quote {
	margin: 22px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbpReviewCard_name {
	position: absolute;
	left: 23px;
	bottom: 30px;
	margin: 0;
	font-size: 14px;
	line-height: 1.4;
}

/* --------------------------------------------------------------------------
   What's / Why Travelers (写真+テキスト行)
   -------------------------------------------------------------------------- */
.cbpFeature {
	display: flex;
	gap: 19px;
}
.cbpFeature + .cbpFeature {
	margin-top: 43px;
}
.cbpFeature-tight + .cbpFeature-tight {
	margin-top: 23px;
}
.cbpFeature_photo {
	flex: none;
	width: 376px;
	height: 250px;
	margin-top: 7px;
	overflow: hidden;
	background: var(--cbt-placeholder);
}
.cbp .cbpFeature_photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cbpFeature_text {
	width: 486px;
}
.cbpFeature_text p {
	margin: 17px 0 0;
	font-size: 16px;
	line-height: 1.4;
}

/* --------------------------------------------------------------------------
   Overview / 行程
   -------------------------------------------------------------------------- */
.cbpSection-overview {
	padding-bottom: 60px;
}
.cbpItin.cbpSection {
	padding-bottom: 118px;
}
.cbpMap {
	width: 881px;
	height: 350px;
	overflow: hidden;
}
.cbp .cbpMap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 75% 57%;
}

.cbpItin {
	position: relative;
	padding-bottom: 113px;
}
.cbpItin_item {
	position: relative;
	display: flex;
	gap: 28px;
	/* 開始・終了時刻ラベル復活(2026-08-25 Figma準拠)に伴い写真列を右へ。
	   ドット・縦線は左端のまま、ラベル(ドット右)の幅を確保する */
	padding-left: 102px;
}
/* 縦線は各アイテムのドットから次のドットまで(最後のドットの先には出ない)。
   注釈<p>がアイテムの後ろに入ったため :last-child ではなく :last-of-type で判定 */
.cbpItin_item:not(:last-of-type)::before {
	content: "";
	position: absolute;
	top: 6px;
	bottom: -51px; /* アイテム間マージン45px + 次ドット中心6px */
	left: 5px;
	width: 1px;
	background: var(--cbt-gray-line);
}
.cbpItin_item + .cbpItin_item {
	margin-top: 45px;
}
.cbpItin_time {
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	color: var(--cbt-blue);
	white-space: nowrap;
}
.cbpItin_dot {
	flex: none;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--cbt-blue);
}
/* 開始・終了時刻ラベル(最初と最後のアイテムのみ 2026-08-25) */
.cbpItin_timeText {
	font-weight: 700;
}
.cbpItin_photo {
	flex: none;
	width: 376px;
	height: 250px;
	overflow: hidden;
	background: var(--cbt-placeholder);
}
.cbp .cbpItin_photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cbpItin_text {
	width: 376px;
	flex: 1;
	margin-top: -5px;
}
.cbpItin_heading {
	position: relative;
	margin: 0;
	padding-left: 25px;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.4;
	color: #000;
}
.cbp .cbpItin_heading img {
	position: absolute;
	top: 5px;
	left: 0;
	width: 20px;
	height: 17px;
}
.cbpItin_body {
	margin: 16px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbpItin_stay {
	margin: 10px 0 0;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.4;
}
/* 行程末尾の注釈: 行程全体の下・アイテム左端揃えに移動(2026-08-27 Figma準拠) */
.cbpItin_note {
	margin: 22px 0 0;
	padding-left: 102px;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.4;
}
.cbpItin_dep {
	margin-top: 18px;
}
.cbpItin_depTitle {
	margin: 0 0 12px;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.4;
	color: #000;
}
.cbpItin_depThumbs {
	display: flex;
	gap: 14px;
}
.cbpItin_depThumbs figure {
	width: 182px;
	margin: 0;
}
.cbp .cbpItin_depThumbs img {
	display: block;
	width: 182px;
	height: 121px;
	object-fit: cover;
}
.cbpItin_depThumbs figcaption {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.4;
}

/* --------------------------------------------------------------------------
   在庫カレンダー
   -------------------------------------------------------------------------- */
.cbpCalendar_monthBar {
	display: flex;
	align-items: center;
	margin-bottom: 24px;
}
.cbpCalendar_month {
	min-width: 216px;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 28px;
	line-height: 1;
	color: #000;
}
.cbpCalendar_nav {
	display: flex;
	align-items: center;
	gap: 30px;
}
.cbpCalendar_navBtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbpCalendar_navBtn:hover {
	opacity: 0.6;
}
.cbpCalendar_navBtn:disabled {
	opacity: 0.25;
	cursor: default;
}
.cbp .cbpCalendar_navBtn img {
	width: 11px;
	height: 17px;
}
.cbpCalendar_navBtn-prev img {
	transform: rotate(180deg);
}
.cbpCalendar_table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}
.cbpCalendar_table th,
.cbpCalendar_table td {
	border: 1px solid var(--cbt-gray-line);
	text-align: center;
	box-sizing: border-box;
}
.cbpCalendar_table th {
	height: 54px;
	font-family: var(--font-rubik);
	font-weight: 400;
	font-size: 20px;
	line-height: 1.4;
	color: #000;
	background: #fff;
}
.cbpCalendar_table th.is-sun { color: var(--cbt-red); }
.cbpCalendar_table th.is-sat { color: var(--cbt-blue); }
.cbpCalendar_table td {
	height: 100px;
	background: #fff;
	vertical-align: middle;
	padding: 0;
}
.cbpCalendar_day {
	display: block;
	font-family: var(--font-rubik);
	font-weight: 400;
	font-size: 30px;
	line-height: 1.2;
	color: #000;
}
.cbpCalendar_status {
	display: block;
	margin-top: 8px;
	font-size: 13px;
	line-height: 1.4;
	color: #000;
	min-height: 18px;
}
.cbpCalendar_table td.is-selectable {
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.cbpCalendar_table td.is-selectable:hover {
	background: #f3f8ff;
}
.cbpCalendar_table td.is-full,
.cbpCalendar_table td.is-disabled {
	background: #efefef;
}
.cbpCalendar_table td.is-full .cbpCalendar_day,
.cbpCalendar_table td.is-full .cbpCalendar_status,
.cbpCalendar_table td.is-disabled .cbpCalendar_day {
	color: var(--cbt-gray-line);
}
.cbpCalendar_table td.is-selected {
	background: var(--cbt-blue);
}
.cbpCalendar_table td.is-selected .cbpCalendar_day,
.cbpCalendar_table td.is-selected .cbpCalendar_status {
	color: #fff;
}
.cbpCalendar_footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 30px;
	min-height: 50px;
}
.cbpCalendar_selection {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.6;
	color: #000;
	margin-top: -35px;
}
.cbpCalendar_footer .cbpBtn-red.is-disabled {
	opacity: 0.4;
	pointer-events: none;
}
/* 予約ボタン+モバイル限定注釈(ボタン下・右揃え) */
.cbpCalendar_action {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
}
.cbpCalendar_note {
	margin: 0;
	font-size: 14px;
	line-height: 1.4;
	color: #000;
}
.cbpCalendar_loading {
	padding: 40px 0;
	color: var(--cbt-gray-line);
}

/* カレンダーモーダル */
.cbtModal_content-availability {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 990px;
	max-height: calc(100vh - 80px);
	overflow-y: auto;
	box-sizing: border-box;
	padding: 60px 50px 50px;
	background: #fff;
	border-radius: 20px;
}
.cbpModalTitle {
	margin: 0 0 30px;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 28px;
	line-height: 1.6;
	color: var(--cbt-blue);
}
/* 画面の低い環境ではカレンダーを圧縮してモーダルを1画面に収める(PC)。
   6段の月(th54+td100×6)でも収まらない場合の保険としてoverflow-y:autoは維持 */
@media screen and (min-width: 768px) and (max-height: 1010px) {
	.cbtModal_content-availability {
		padding: 30px 50px;
	}
	.cbtModal_content-availability .cbpModalTitle {
		margin-bottom: 14px;
		font-size: 24px;
	}
	.cbtModal_content-availability .cbpCalendar_monthBar {
		margin-bottom: 12px;
	}
	.cbtModal_content-availability .cbpCalendar_month {
		font-size: 24px;
	}
	.cbtModal_content-availability .cbpCalendar_table th {
		height: 40px;
		font-size: 16px;
	}
	.cbtModal_content-availability .cbpCalendar_table td {
		height: 70px;
	}
	.cbtModal_content-availability .cbpCalendar_day {
		font-size: 22px;
	}
	.cbtModal_content-availability .cbpCalendar_status {
		margin-top: 2px;
		font-size: 12px;
		min-height: 16px;
	}
	.cbtModal_content-availability .cbpCalendar_footer {
		margin-top: 14px;
	}
	.cbtModal_content-availability .cbpCalendar_selection {
		margin-top: -14px;
	}
}

/* --------------------------------------------------------------------------
   予約プロセス
   -------------------------------------------------------------------------- */
.cbpProcess {
	display: flex;
	align-items: center;
	gap: 5px;
}
.cbpProcess_card {
	width: 275px;
	height: 427px;
	flex: none;
	box-sizing: border-box;
	padding: 30px;
	background: #fff;
	border: 1px solid var(--cbt-gray-line);
	border-radius: 10px;
}
.cbpProcess_icon {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 128px;
	margin: 0 0 -2px;
}
/* 1枚目(To EMot Online Tickets)だけアイコンが大きいぶん余白を確保 */
.cbpProcess_card:first-child .cbpProcess_icon {
	margin-bottom: 12px;
}
.cbp .cbpProcess_iconEmot {
	width: 119px;
	height: 121px;
}
.cbpProcess_icon-calendar img {
	width: 79px;
	height: 79px;
}
.cbpProcess_icon-check img {
	width: 120px;
	height: 120px;
}
.cbpProcess_title {
	margin: 0 0 20px;
	font-family: var(--font-rubik);
	font-weight: 400;
	font-size: 20px;
	line-height: 1.2;
	color: #000;
}
.cbpProcess_body {
	margin: 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbpProcess_body + .cbpProcess_body {
	margin-top: 22px;
}
.cbpProcess_arrow {
	flex: none;
	display: inline-flex;
}
.cbp .cbpProcess_arrow img {
	width: 19px;
	height: 14px;
	transform: rotate(90deg);
}

/* --------------------------------------------------------------------------
   窓口
   -------------------------------------------------------------------------- */
.cbpTravelLink {
	margin: -28px 0 45px;
}
.cbpTravelLink a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	font-size: 16px;
	color: var(--cbt-blue);
	text-decoration: underline;
	text-underline-position: from-font;
}
.cbp .cbpTravelLink img {
	width: 12px;
	height: 12px;
}
.cbpCenters {
	display: flex;
	flex-wrap: wrap;
	gap: 44px 27px;
}
.cbpCenter {
	width: 427px;
	margin: 0;
}
.cbp .cbpCenter img {
	display: block;
	width: 427px;
	height: 283px;
	object-fit: cover;
}
.cbpCenter figcaption {
	margin-top: 12px;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.4;
	color: #000;
}

/* --------------------------------------------------------------------------
   English Guide
   -------------------------------------------------------------------------- */
.cbpGuide {
	display: flex;
	align-items: flex-start;
	gap: 34px;
}
.cbpGuide_photo {
	flex: none;
	width: 436px;
	height: 474px;
	overflow: hidden;
}
.cbp .cbpGuide_photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cbpGuide_text {
	width: 421px;
	margin-top: 5px; /* 写真上端からの位置をここで調整 */
}
.cbpGuide_text p {
	margin: 19px 0 0;
}
.cbpGuide_list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 21px 0 0;
	padding: 0;
	list-style: none;
}
.cbpGuide_list li {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 26px;
	padding-left: 34px;
	font-size: 16px;
	line-height: 1.4;
}
.cbp .cbpGuide_list li img {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 26px;
	height: 26px;
}

/* --------------------------------------------------------------------------
   Tシャツ
   -------------------------------------------------------------------------- */
.cbpSizeGuide {
	margin: 40px 0 0; /* 写真の下に移動(2026-08-19) */
}
.cbpSizeGuide_title {
	margin: 0 0 4px;
	font-weight: 600;
	font-size: 19px;
}
.cbpSizeGuide_table {
	border-collapse: collapse;
}
.cbpSizeGuide_table th,
.cbpSizeGuide_table td {
	border: 1px solid #000;
	width: 83px;
	height: 33px;
	padding: 0 10px;
	text-align: center;
	font-weight: 600;
	font-size: 18px;
	color: #000;
	background: #fff;
}
.cbpSizeGuide_table th:first-child {
	width: 23px;
}
.cbpTshirtPhotos {
	display: flex;
	gap: 1px;
}
.cbpTshirtPhoto {
	width: 440px;
	height: 571px;
	overflow: hidden;
}
.cbp .cbpTshirtPhoto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* --------------------------------------------------------------------------
   料金表
   -------------------------------------------------------------------------- */
/* キャンペーン(Tour Priceセクション先頭 2026-08-27) */
.cbpCampaign {
	margin: 0 0 26px;
}
.cbpCampaign_title {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.4;
	color: var(--cbt-red);
}
.cbpCampaign_text {
	margin: 8px 0 0;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.4;
}
.cbpPriceTable {
	width: 100%;
	border-collapse: collapse;
}
.cbpPriceTable th,
.cbpPriceTable td {
	padding: 0 0 8px;
	border-bottom: 1px solid var(--cbt-gray-line);
	text-align: left;
	font-weight: 500;
	font-size: 18px;
	line-height: 1.5;
	color: #000;
}
.cbpPriceTable tr + tr th,
.cbpPriceTable tr + tr td {
	padding-top: 11px;
}
.cbpPriceTable th:first-child,
.cbpPriceTable td:first-child {
	width: 404px;
}
/* 鎌倉(価格1列)のPC: 固定404pxだとラベル→価格が離れすぎるため、
   最長ラベル幅+40pxに詰める(ユーザー指摘 2026-08-27)。SPは既存の縦積みのまま */
@media (min-width: 768px) {
	.cbpPriceTable-single th:first-child,
	.cbpPriceTable-single td:first-child {
		width: 1%; /* nowrapと組で「内容幅ちょうど」に縮む */
		white-space: nowrap;
		padding-right: 80px;
	}
	.cbpPriceTable-single th:nth-child(2),
	.cbpPriceTable-single td:nth-child(2) {
		width: auto; /* 余り幅は価格列側で吸収 */
	}
}
.cbpPriceTable th:nth-child(2),
.cbpPriceTable td:nth-child(2) {
	width: 202px;
}
/* 料金表: 通常価格(取り消し線)+割引価格の2段(2026-08-27) */
.cbpPriceTable_old {
	display: block;
	text-decoration: line-through;
}
.cbpPriceTable_new {
	display: block;
	margin-top: 4px;
	color: var(--cbt-red);
}
.cbpPriceNote {
	margin: 30px 0 0;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.4;
}

/* --------------------------------------------------------------------------
   含まれるもの・注意事項
   -------------------------------------------------------------------------- */
.cbpIncluded,
.cbpNotIncluded {
	margin: 0;
	padding: 0;
	list-style: none;
}
.cbpNotIncluded {
	margin-top: 34px;
}
.cbpIncluded li,
.cbpNotIncluded li {
	position: relative;
	padding: 0 0 9px 30px;
	border-bottom: 1px solid var(--cbt-gray-line);
	font-size: 16px;
	line-height: 1.4;
}
.cbpIncluded li + li,
.cbpNotIncluded li + li {
	margin-top: 18px;
}
.cbpIncluded li::before,
.cbpNotIncluded li::before {
	content: "";
	position: absolute;
	top: -2px;
	left: 0;
	width: 27px;
	height: 27px;
	background: url(/checkboxtour/assets/img/hk-icon-check-green.svg) no-repeat center / contain;
}
.cbpNotIncluded li::before {
	background-image: url(/checkboxtour/assets/img/hk-icon-x-blue.svg);
}
.cbpIncluded a,
.cbpPoints a {
	color: var(--cbt-blue);
	text-decoration: underline;
	text-underline-position: from-font;
}
/* Points to Confirm アコーディオン(初期は閉) */
.cbpAccordionBtn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font: inherit;
	color: inherit;
	text-align: left;
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbpAccordionBtn:hover {
	opacity: 0.7;
}
.cbpAccordionBtn_icon {
	position: relative;
	flex: none;
	width: 20px;
	height: 20px;
}
.cbpAccordionBtn_icon::before,
.cbpAccordionBtn_icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 16px;
	height: 2px;
	border-radius: 2px;
	background: var(--cbt-blue);
	transform: translate(-50%, -50%);
	transition: transform 0.3s ease;
}
.cbpAccordionBtn_icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}
.cbpAccordionBtn[aria-expanded="true"] .cbpAccordionBtn_icon::after {
	transform: translate(-50%, -50%) rotate(0deg);
}
.cbpAccordionPanel {
	display: none;
}
.cbpAccordionPanel.isShow {
	display: block;
}
/* PCではPoints to Confirmをデフォルトで展開表示(アコーディオンはSPのみ) */
@media screen and (min-width: 768px) {
	.cbpAccordionPanel {
		display: block;
	}
	.cbpAccordionBtn {
		pointer-events: none;
	}
	.cbpAccordionBtn_icon {
		display: none;
	}
}

.cbpPoints {
	margin: 0;
	padding: 0;
	list-style: none;
}
.cbpPoints li {
	position: relative;
	padding-left: 1em;
	font-size: 16px;
	line-height: 1.4;
}
.cbpPoints li + li {
	margin-top: -0.5px;
}
.cbpPoints li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
	color: var(--cbt-blue);
}
.cbpCancelList {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: cancel;
}
.cbpCancelList li {
	position: relative;
	padding-left: 12px;
	font-size: 16px;
	line-height: 1.4;
	counter-increment: cancel;
}
.cbpCancelList li + li {
	margin-top: 0px;
}
.cbpCancelList li::before {
	content: counter(cancel) ".";
	position: absolute;
	top: 0;
	left: 0;
	color: var(--cbt-blue);
}
.cbpTerms {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 8px;
}
.cbpTerms a {
	font-size: 16px;
	color: var(--cbt-blue);
	text-decoration: underline;
	text-underline-position: from-font;
}
.cbpTerms_icon {
	flex: none;
}

/* --------------------------------------------------------------------------
   FAQ・サポート
   -------------------------------------------------------------------------- */
.cbpFaq_item {
	padding-bottom: 13px;
	border-bottom: 1px solid var(--cbt-gray-line);
}
.cbpFaq_item + .cbpFaq_item {
	margin-top: 21px;
}
.cbpFaq_q {
	margin: 0;
	font-weight: 500;
	font-size: 20px;
	line-height: 1.6;
	color: #000;
}
.cbpFaq_btn {
	display: flex;
	align-items: baseline;
	gap: 12px;
	width: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font: inherit;
	color: inherit;
	text-align: left;
}
/* PCはアコーディオンなし(常時展開・アイコン非表示) */
.cbpFaq_btn {
	pointer-events: none;
}
.cbpFaq_icon {
	display: none;
}
.cbpFaq_q span:first-child {
	flex: none;
	font-family: var(--font-rubik);
	font-weight: 500;
	color: var(--cbt-blue);
}
.cbpFaq_a {
	margin: 15px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbpSupport {
	margin-top: 43px;
}
.cbpSupport p {
	margin: 23px 0 0;
}

/* --------------------------------------------------------------------------
   カスタマーレビュー
   -------------------------------------------------------------------------- */
.cbpEval {
	display: flex;
	gap: 24px;
	margin-bottom: 34px;
}
.cbpEval_left {
	width: 275px;
	flex: none;
}
.cbpEval_score {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 8px 0 0;
}
.cbpEval_big {
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 100px;
	line-height: 1;
	color: #000;
}
.cbpEval_of {
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 60px;
	line-height: 1;
	color: #000;
}
.cbpEval_stars {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 10px 0 0; /* デザインは大きな4.9の行ボックスに食い込む配置 */
	font-size: 16px;
}
.cbpEval_bars {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 0px;
    margin-top: 43px;
	padding-bottom: 10px;
}
.cbpEval_bar {
	display: flex;
	align-items: center;
	gap: 16px;
}
/* 行間をgap:0からさらに詰める(マイナスで縮む) */
.cbpEval_bar + .cbpEval_bar {
	margin-top: -2px;
}
.cbpEval_barNum {
	width: 20px;
	font-family: var(--font-rubik);
	font-weight: 400;
	font-size: 20px;
	color: var(--cbt-gray-line);
	text-align: center;
}
.cbpEval_track {
	position: relative;
	display: block;
	width: 344px;
	height: 8px;
	border-radius: 30px;
	background: var(--cbt-placeholder);
	overflow: hidden;
}
.cbpEval_fill {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	border-radius: 30px;
	background: var(--cbt-red);
}
.cbpReviews {
	margin-bottom: 50px;
}
.cbpReview {
	padding-bottom: 22px;
	border-bottom: 1px solid var(--cbt-gray-line);
}
.cbpReview + .cbpReview {
	margin-top: 30px;
}
.cbpReview_head {
	display: flex;
	align-items: center;
	gap: 30px;
}
.cbp .cbpReview_avatar {
	width: 80px;
	height: 80px;
	border-radius: 50%;
}
.cbpReview_meta {
	margin: 0;
}
.cbpReview_name {
	display: block;
	font-family: var(--font-rubik);
	font-weight: 400;
	font-size: 20px;
	line-height: 1.6;
	color: #000;
}
.cbpReview_date {
	display: block;
	font-size: 16px;
	line-height: 1.6;
}
.cbpReview_stars {
	margin: 13px 0 0;
	font-size: 20px;
	line-height: 1;
	letter-spacing: -1px;
	color: #000;
}
.cbpReview_body {
	margin: 8px 0 0;
	font-size: 16px;
	line-height: 1.4;
}

/* --------------------------------------------------------------------------
   鎌倉導線
   -------------------------------------------------------------------------- */
.cbpKamakura {
	display: flex;
	gap: 28px;
}
.cbpKamakura_photo {
	flex: none;
	width: 477px;
	height: 317px;
	overflow: hidden;
}
.cbp .cbpKamakura_photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cbpKamakura_text {
	width: 376px;
	padding-top: 8px;
}
.cbpKamakura_title {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 24px;
	line-height: 1.6;
	color: #000;
}
.cbpKamakura_body {
	margin: 14px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbpKamakura_btns {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 53px 0 0;
}

/* ==========================================================================
   SP (デザイン基準幅: 390px / Figma node 759:160)
   ========================================================================== */
@media screen and (max-width: 767px) {

.cbp {
	font-size: 14px;
	padding-top: 48px;
	padding-bottom: 103px; /* 下部固定バーの逃げ */
}
.cbp_inner {
	max-width: none;
	min-width: 0;
	padding: 0 20px;
}
.cbpH2 {
	margin-bottom: 21px;
	font-size: 20px;
	line-height: 1.4;
}
.cbpH3 {
	font-size: 16px;
}
.cbpH3-block {
	margin: 44px 0 20px;
	font-size: 20px;
	line-height: 1.4;
}
/* cbpH3-block 個別調整(SP) */
.cbpH3-points { margin: 42px 0 20px; }
.cbpH3-cancel { margin: 38px 0 20px; }
.cbpH3-terms { margin: 38px 0 22px; }
.cbpIntro {
	margin-bottom: 40px;
}
.cbpSection {
	padding-bottom: 94px;
}
/* セクション個別調整(SP) */
.cbpSection-reviewSummary { padding-bottom: 94px; }
.cbpSection-reviewSummary .cbpH2 { margin-bottom: 22px; }
.cbpSection-whats { padding-bottom: 88px; }
.cbpSection-whats .cbpH2 { margin-bottom: 19px; }
.cbpSection-whats .cbpIntro { margin-bottom: 47px; }
.cbpSection-overview .cbpIntro { margin-bottom: 25px; }
.cbpSection-availability { padding-bottom: 93px; }
.cbpSection-availability .cbpH2 { margin-bottom: 20px; }
.cbpSection-process { padding-bottom: 92px; }
.cbpSection-process .cbpH2 { margin-bottom: 24px; }
.cbpSection-onsite { padding-bottom: 87px; }
.cbpSection-onsite .cbpH2 { margin-bottom: 20px; }
.cbpSection-onsite .cbpIntro { margin-bottom: 40px; }
.cbpSection-guide { padding-bottom: 95px; }
.cbpSection-guide .cbpH2 { margin-bottom: 18px; }
.cbpSection-why { padding-bottom: 88px; }
.cbpSection-why .cbpH2 { margin-bottom: 42px; }
.cbpSection-tshirt { padding-bottom: 93px; }
.cbpSection-tshirt .cbpH2 { margin-bottom: 22px; }
.cbpSection-tshirt .cbpIntro { margin-bottom: 32px; }
.cbpSection-price { padding-bottom: 93px; }
.cbpSection-price .cbpH2 { margin-bottom: 18px; }
.cbpSection-included { padding-bottom: 86px; }
.cbpSection-included .cbpH2 { margin-bottom: 24px; }
.cbpSection-faq { padding-bottom: 92px; }
.cbpSection-faq .cbpH2 { margin-bottom: 18px; }
.cbpSection-customerReviews { padding-bottom: 100px; }
.cbpSection-customerReviews .cbpH2 { margin-bottom: 19px; }
.cbpBtn {
	width: 100%;
	font-size: 20px;
}
.cbpBtn-red {
	width: 100%;
}
.cbpBtnRow {
	margin-top: 48px;
}

/* ヒーロー(SPは横組ロゴ 196×56) */
.cbpHero {
	display: block;
	padding-top: 0;
}
.cbpHero_logo {
	width: auto;
	margin: 0 0 14px;
}
.cbp .cbpHero_logoImg {
	width: 196px;
}
.cbpHero_text {
	width: auto;
	padding-top: 0;
}
.cbpHero_title {
	font-size: 20px;
	line-height: 1.4;
}
.cbpHero_desc {
	margin: 8px 0 12px;
	font-size: 14px;
}

/* レイアウト */
.cbpLayout {
	display: block;
	margin-top: 44px;
}
.cbpMain {
	width: auto;
}

/* メディア(JSでヒーロー上に移動) */
.cbpMedia {
	display: block;
	margin-bottom: 23px;
}
.cbpMedia_video {
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 233;
}
.cbp .cbpMedia_videoPlay {
	width: 45px;
	height: 45px;
}
/* SPもPC同様に複数画像を表示(メイン下に3枚横並び 2026-08-25) */
.cbpMedia_sides {
	display: flex;
	flex-direction: row;
	gap: 10px;
	margin-top: 10px;
}
.cbpMedia_side {
	width: calc((100% - 20px) / 3);
	height: auto;
	aspect-ratio: 110 / 77;
}
/* All pictureは写真上の重ね置きをやめ、サムネイル行の下に右寄せで配置 */
.cbpMedia_allPicture {
	position: static;
	margin: 10px 0 0 auto;
	gap: 4px;
	width: 110px;
	height: 24px;
	border: 1px solid var(--cbt-blue);
}

/* 右レール → 下部固定バー */
.cbpRail {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 90;
	width: auto;
}
.cbpPriceCard {
	position: static;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	column-gap: 10px;
	row-gap: 12px;
	padding: 16px 20px 15px;
	border: none;
	border-radius: 10px 10px 0 0;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
}
.cbpPriceCard_block + .cbpPriceCard_block {
	margin-top: 0;
}
/* キャンペーンは全幅で1段目 */
.cbpPriceCard_campaign {
	grid-column: 1 / -1;
	margin: 0;
}
.cbpPriceCard_campaignTitle {
	font-size: 14px;
}
.cbpPriceCard_campaignText {
	margin-top: 6px;
	font-size: 12px;
}
.cbpPriceCard_from {
	margin-bottom: 6px;
	font-size: 12px;
}
.cbpPriceCard_regular {
	margin-bottom: 2px;
	font-size: 14px;
}
.cbpPriceCard_price {
	gap: 4px;
	white-space: nowrap; /* 「JPY / Per Adult」を折り返さない(2026-08-28 Figma準拠) */
}
.cbpPriceCard_figure {
	font-size: 24px;
}
.cbpPriceCard_unit {
	font-size: 12px;
	line-height: 1.6;
}
/* CTAは全幅で最下段(鎌倉=1価格でも箱根dualと同じ縦積み 2026-08-28 Figma 1002:17) */
.cbpPriceCard .cbpBtn {
	grid-column: 1 / -1;
	grid-row: 3;
	width: 100%;
	height: 44px;
	margin-top: 0;
	font-size: 13px;
}
/* 箱根(2発地): 価格2列を横並び、ボタンは全幅で最下段 */
.cbpPriceCard-dual {
	grid-template-columns: 1fr 1fr;
}
.cbpPriceCard-dual .cbpPriceCard_block {
	grid-row: 2;
	grid-column: auto;
	align-self: start;
}
.cbpPriceCard-dual .cbpPriceCard_regular {
	font-size: 12px;
}
.cbpPriceCard-dual .cbpPriceCard_figure {
	font-size: 20px;
}
.cbpPriceCard-dual .cbpPriceCard_unit {
	font-size: 10px;
}
.cbpPriceCard-dual .cbpBtn {
	grid-column: 1 / -1;
	grid-row: 3;
	width: 100%;
	height: 44px;
}
/* 追従バー開閉(2026-08-28 Figma 982:1062/2004:5): デフォルト全表示、タップで圧縮 */
/* 注意: PCルールの top:90px(sticky用)を必ず殺すこと。position:relativeだけだと
   topが効いてカードが90px下にずれ、価格・ボタンが画面外に出る */
.cbpPriceCard {
	position: relative;
	top: auto;
}
/* SPのキャンペーン文言は「Book by October 30, 2026」のみ(日付の赤強調もなし) */
.cbpPriceCard_campaign {
	padding-right: 40px; /* 開閉ボタンとの重なり回避 */
	box-sizing: border-box;
}
.cbpPriceCard_campaignTail {
	display: none;
}
.cbpPriceCard_campaignText .cbpCampaignEm {
	color: inherit;
}
.cbpPriceCard_toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 13px;
	right: 20px;
	width: 27px;
	height: 27px;
	margin: 0;
	padding: 0;
	/* 展開時(−)はフチ細め・グレー(2026-08-28 ユーザー指定)。圧縮時(+)は赤のまま */
	border: 1px solid #666;
	border-radius: 50%;
	background: none;
	cursor: pointer;
}
.cbpPriceCard_toggleIcon {
	position: relative;
	display: block;
	width: 13px;
	height: 13px;
}
.cbpPriceCard_toggleIcon::before,
.cbpPriceCard_toggleIcon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 13px;
	height: 1.5px;
	border-radius: 2px;
	background: #666;
	transform: translate(-50%, -50%);
	transition: transform 0.3s ease;
}
/* 全表示時は「−」(2本重ね)、圧縮時は「+」 */
.cbpPriceCard_toggleIcon::after {
	transform: translate(-50%, -50%) rotate(0deg);
}
.cbpPriceCard.is-collapsed .cbpPriceCard_toggleIcon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}
/* 圧縮時: ボタン・アイコンは赤、価格ブロックを畳んでCTAを全幅に */
.cbpPriceCard.is-collapsed .cbpPriceCard_toggle {
	border-color: var(--cbt-red);
}
.cbpPriceCard.is-collapsed .cbpPriceCard_toggleIcon::before,
.cbpPriceCard.is-collapsed .cbpPriceCard_toggleIcon::after {
	background: var(--cbt-red);
}
.cbpPriceCard.is-collapsed .cbpPriceCard_block {
	display: none;
}
.cbpPriceCard.is-collapsed .cbpBtn {
	grid-column: 1 / -1;
	grid-row: 2;
	width: 100%;
	height: 44px;
}

/* スペック表 */
.cbpSpec_title {
	margin-bottom: 7px;
	font-size: 16px;
}
.cbpSpec_row {
	display: block;
	padding-bottom: 8px;
}
.cbpSpec_row + .cbpSpec_row {
	margin-top: 12px;
}
.cbpSpec_row dt {
	width: auto;
	padding-top: 0;
	font-size: 14px;
}
.cbpSpec_row dd {
	margin-top: 5px;
	font-size: 14px;
}
.cbpSpecNote {
	padding: 14px 14px 14px 46px;
	font-size: 14px;
}
.cbp .cbpSpecNote img {
	top: 15px;
	left: 14px;
	width: 20px;
	height: 20px;
}

/* レビュー(要約カード) */
.cbp .cbpReviewHead_info img {
	width: 18px;
	height: 18px;
}
.cbpReviewCards {
	flex-direction: column;
	gap: 20px;
}
.cbpReviewCard {
	width: auto;
	height: auto;
	padding: 16px 20px 14px;
}
.cbpReviewCard_quote {
	margin-top: 12px;
	font-size: 14px;
}
.cbpReviewCard_name {
	position: static;
	margin-top: 12px;
	font-size: 12px;
}

/* What's / Why Travelers */
.cbpFeature {
	display: block;
}
.cbpFeature + .cbpFeature,
.cbpFeature-tight + .cbpFeature-tight {
	margin-top: 25px;
}
.cbpFeature_photo {
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 233;
}
.cbpFeature_text {
	width: auto;
	margin-top: 16px;
}
.cbpFeature_text p {
	margin-top: 10px;
	font-size: 14px;
}

/* Overview / 行程 */
.cbpSection-overview {
	padding-bottom: 28px;
}
.cbpMap {
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 153;
}
.cbp .cbpMap img {
	object-position: center;
}
.cbpItin.cbpSection {
	padding-bottom: 89px;
}
.cbpItin_item {
	display: block;
	/* 時刻ラベルを写真の横(左レール)に置くためSPもレールを拡幅(2026-08-25 Figma準拠) */
	padding-left: 74px;
}
.cbpItin_item + .cbpItin_item {
	margin-top: 40px;
}
/* ドット・縦線はレール中央寄りに配置(Figma準拠) */
.cbpItin_time {
	left: 18px;
}
/* 縦線はPC共通の::before(ドット中心から次ドットまで)を流用し、間隔だけSP用に調整 */
.cbpItin_item:not(:last-of-type)::before {
	left: 23px;
	bottom: -46px; /* アイテム間マージン40px + 次ドット中心6px */
}
/* 開始・終了時刻ラベル: SPはドットの代わりにラベルを写真の横(レール内・左端)に表示(Figma準拠) */
.cbpItin_item-timed .cbpItin_time {
	left: 0;
	font-size: 14px;
}
.cbpItin_item-timed .cbpItin_dot {
	display: none;
}
/* 最初のアイテムの縦線はラベルの下から開始 */
.cbpItin_item-timed:not(:last-of-type)::before {
	top: 30px;
}
/* 終了時刻ラベルの手前で縦線を止めて余白を確保(最後のアイテムの直前の線) */
.cbpItin_item:nth-last-of-type(2)::before {
	bottom: -24px;
}
.cbpItin_photo {
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 376 / 250;
}
.cbpItin_text {
	width: auto;
	margin-top: 26px;
}
.cbpItin_heading {
	padding-left: 19px;
	font-size: 16px;
}
.cbp .cbpItin_heading img {
	top: 6px;
	width: 16px;
	height: 13px;
}
.cbpItin_body {
	margin-top: 11px;
	font-size: 14px;
}
.cbpItin_stay {
	margin-top: 7px;
	font-size: 14px;
}
/* SPの注釈も行程全体の下・アイテム左端(写真左端)揃え。PCよりやや下に配置(Figma準拠) */
.cbpItin_note {
	margin-top: 22px;
	padding-left: 74px;
	font-size: 14px;
}
.cbpItin_dep {
	margin-top: 14px;
}
.cbpItin_depTitle {
	display: none;
}
.cbpItin_depThumbs {
	gap: 11px;
}
.cbpItin_depThumbs figure {
	width: calc((100% - 11px) / 2);
}
.cbp .cbpItin_depThumbs img {
	width: 100%;
	height: auto;
	aspect-ratio: 124 / 83;
}
.cbpItin_depThumbs figcaption {
	margin-top: 8px;
	font-size: 12px;
}

/* 在庫カレンダー */
.cbpCalendar_monthBar {
	margin-bottom: 16px;
}
.cbpCalendar_month {
	min-width: 0;
	margin-right: 20px;
	font-size: 20px;
}
.cbpCalendar_nav {
	gap: 8px;
}
.cbpCalendar_table th {
	height: 41px;
	font-size: 14px;
}
.cbpCalendar_table td {
	height: 79px;
}
.cbpCalendar_day {
	font-size: 20px;
}
.cbpCalendar_status {
	margin-top: 6px;
	padding: 0 2px;
	font-size: 12px;
	line-height: 1.2;
	min-height: 14px;
}
.cbpCalendar_footer {
	flex-direction: column;
	align-items: stretch;
	gap: 11px;
	margin-top: 20px;
}
.cbpCalendar_selection {
	font-size: 16px;
	text-align: center;
	margin-top: -6px;
}
.cbpCalendar_action {
	align-items: center;
}
.cbpCalendar_action .cbpBtn-red {
	width: 100%;
}
.cbpCalendar_note {
	font-size: 12px;
}

/* カレンダーモーダル */
.cbtModal_content-availability {
	width: calc(100% - 20px);
	max-height: calc(100vh - 40px);
	padding: 50px 12px 24px;
	border-radius: 10px;
}
.cbpModalTitle {
	margin-bottom: 20px;
	font-size: 20px;
}

/* 予約プロセス */
.cbpProcess {
	flex-direction: column;
	align-items: stretch;
	gap: 13px;
}
.cbpProcess_card {
	display: grid;
	grid-template-columns: 80px 1fr;
	column-gap: 18px;
	align-items: start;
	width: auto;
	height: auto;
	padding: 24px 20px;
}
.cbpProcess_icon,
.cbpProcess_card:first-child .cbpProcess_icon {
	grid-row: 1 / span 3;
	align-self: center;
	width: 80px;
	height: 80px;
	margin: 0;
}
.cbpProcess_title,
.cbpProcess_body {
	grid-column: 2;
}
.cbp .cbpProcess_iconEmot {
	width: 66px;
	height: 67px;
}
.cbpProcess_icon-calendar img {
	width: 55px;
	height: 55px;
}
.cbpProcess_icon-check img {
	width: 80px;
	height: 80px;
}
.cbpProcess_title {
	margin-bottom: 13px;
	font-size: 16px;
}
.cbpProcess_body {
	font-size: 14px;
}
.cbpProcess_body + .cbpProcess_body {
	margin-top: 21px;
}
.cbpProcess_arrow {
	align-self: center;
}
.cbp .cbpProcess_arrow img {
	width: 22px;
	height: 18px;
	transform: rotate(180deg);
}

/* 窓口 */
.cbpTravelLink {
	margin: -33px 0 25px;
}
.cbpTravelLink a {
	font-size: 14px;
}
.cbpCenters {
	display: block;
}
.cbpCenter {
	width: auto;
}
.cbpCenter + .cbpCenter {
	margin-top: 23px;
}
.cbp .cbpCenter img {
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 233;
}
.cbpCenter figcaption {
	margin-top: 15px;
	font-size: 16px;
}

/* English Guide */
.cbpGuide {
	flex-direction: column-reverse;
	align-items: stretch;
	gap: 30px;
}
.cbpGuide_photo {
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 381;
}
.cbpGuide_text {
	width: auto;
	margin-top: 0;
}
.cbpGuide_text p {
	margin-top: 11px;
	font-size: 14px;
}
.cbpGuide_list {
	margin-top: 10px;
}

/* Tシャツ */
.cbpSizeGuide {
	margin: 24px 0 0;
}
.cbpSizeGuide_title {
	margin-bottom: 4px;
	font-size: 14px;
}
.cbpSizeGuide_table {
	width: 100%;
}
.cbpSizeGuide_table th,
.cbpSizeGuide_table td {
	width: auto;
	height: 25px;
	padding: 0 4px;
	font-size: 13px;
}
.cbpSizeGuide_table th:first-child {
	width: 25px;
}
.cbpTshirtPhotos {
	gap: 0;
}
.cbpTshirtPhoto {
	width: 50%;
	height: auto;
	aspect-ratio: 175 / 227;
}

/* 料金表(1行=ラベル+2価格の積み) */
.cbpPriceTable,
.cbpPriceTable tbody {
	display: block;
}
.cbpPriceTable tr {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--cbt-gray-line);
}
.cbpPriceTable tr + tr {
	margin-top: 13px;
}
.cbpPriceTable th,
.cbpPriceTable td {
	width: auto;
	padding: 0;
	border-bottom: none;
	font-size: 14px;
	line-height: 1.4;
}
.cbpPriceTable tr + tr th,
.cbpPriceTable tr + tr td {
	padding-top: 0;
}
.cbpPriceTable th:first-child {
	display: none;
}
.cbpPriceTable th:nth-child(2),
.cbpPriceTable td:nth-child(2) {
	width: auto;
}
.cbpPriceTable td:first-child {
	width: 100%;
	margin-bottom: 5px;
}
.cbpPriceTable th:nth-child(3)::before {
	content: "/";
	margin: 0 10px;
}
/* 価格2列(旧価格+割引価格の2段組)の間は大きな「/」を縦センターに表示。
   旧実装のinline ::beforeはblockの価格スパンと混ざり「/」が独立行になりズレていた(2026-08-28 Figma準拠) */
.cbpPriceTable td:nth-child(3) {
	position: relative;
	margin-left: 30px;
}
.cbpPriceTable td:nth-child(3)::before {
	content: "/";
	position: absolute;
	top: 50%;
	left: -15px;
	transform: translate(-50%, -50%);
	margin: 0;
	font-size: 24px;
	font-weight: 300;
	line-height: 1;
}
.cbpPriceNote {
	margin-top: 24px;
	font-size: 14px;
}
.cbpCampaign {
	margin-bottom: 20px;
}
.cbpCampaign_title {
	font-size: 16px;
}
.cbpCampaign_text {
	margin-top: 8px;
	font-size: 14px;
}

/* 含まれるもの・注意事項 */
.cbpIncluded li,
.cbpNotIncluded li {
	padding: 0 0 4px 22px;
	font-size: 14px;
}
.cbpIncluded li::before,
.cbpNotIncluded li::before {
	top: -1px;
    width: 18px;
    height: 18px;
}
.cbpNotIncluded {
	margin-top: 17px;
}
.cbpPoints li,
.cbpCancelList li,
.cbpTerms a {
	font-size: 14px;
}

/* FAQ・サポート(SPは+/-アコーディオン) */
.cbpFaq_item {
	padding-bottom: 11px;
}
.cbpFaq_item + .cbpFaq_item {
	margin-top: 14px;
}
.cbpFaq_q {
	font-size: 16px;
	line-height: 1.4;
}
.cbpFaq_btn {
	position: relative;
	gap: 8px;
	padding-right: 32px;
	pointer-events: auto;
	cursor: pointer;
}
.cbpFaq_icon {
	display: block;
	position: absolute;
	top: 50%;
	right: 0;
	width: 20px;
	height: 20px;
	transform: translateY(-50%);
}
.cbpFaq_icon::before,
.cbpFaq_icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 16px;
	height: 2px;
	border-radius: 2px;
	background: var(--cbt-blue);
	transform: translate(-50%, -50%);
	transition: transform 0.3s ease;
}
.cbpFaq_icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}
.cbpFaq_btn[aria-expanded="true"] .cbpFaq_icon::after {
	transform: translate(-50%, -50%) rotate(0deg);
}
.cbpFaq_a {
	display: none;
	margin-top: 7px;
	font-size: 14px;
}
.cbpFaq_a.isShow {
	display: block;
}
.cbpSupport {
	margin-top: 24px;
	text-align: center;
}
.cbpSupport p {
	margin-top: 14px;
}

/* カスタマーレビュー */
.cbpEval {
	gap: 38px;
	margin-bottom: 23px;
}
.cbpEval_left {
	width: 145px;
}
.cbpEval_score {
	margin-top: 4px;
	gap: 10px;
}
.cbpEval_big {
	font-size: 60px;
}
.cbpEval_of {
	font-size: 40px;
}
.cbpEval_stars {
	flex-wrap: wrap;
	gap: 3px 10px;
	margin-top: 7px;
}
.cbpEval_stars > span:last-child {
	width: 100%;
}
.cbpEval_bars {
	width: 168px;
	gap: 2px;
	padding-bottom: 4px;
	margin-top: 53px;
}
.cbpEval_bar {
	gap: 15px;
}
.cbpEval_bar + .cbpEval_bar {
	margin-top: 0;
}
.cbpEval_barNum {
	width: 16px;
	font-size: 14px;
	text-align: left;
}
.cbpEval_track {
	width: 136px;
	height: 6px;
}
.cbpReviews {
	margin-bottom: 30px;
}
.cbpReview {
	padding-bottom: 14px;
}
.cbpReview + .cbpReview {
	margin-top: 20px;
}
.cbpReview_head {
	gap: 20px;
}
.cbpReview_name {
	font-size: 16px;
}
.cbpReview_date {
	font-size: 12px;
}
.cbpReview_stars {
	margin-top: 12px;
	font-size: 16px;
}
.cbpReview_body {
	margin-top: 9px;
	font-size: 14px;
}

/* 鎌倉導線 */
.cbpKamakura {
	display: block;
}
.cbpKamakura_photo {
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 233;
}
.cbpKamakura_text {
	width: auto;
	padding-top: 12px;
}
.cbpKamakura_title {
	font-size: 20px;
	line-height: 1.4;
}
.cbpKamakura_body {
	margin-top: 10px;
	font-size: 14px;
}
.cbpKamakura_btns {
	gap: 15px;
	margin: 24px 0 0;
}
.cbpKamakura .cbpBtn {
	width: 100%;
}

}

/* 画面の低いスマホではカレンダーを圧縮してモーダルを1画面に収める(SP) */
@media screen and (max-width: 767px) and (max-height: 820px) {
	.cbtModal_content-availability {
		padding: 40px 12px 16px;
	}
	.cbtModal_content-availability .cbpModalTitle {
		margin-bottom: 10px;
		font-size: 18px;
	}
	.cbtModal_content-availability .cbpCalendar_monthBar {
		margin-bottom: 10px;
	}
	.cbtModal_content-availability .cbpCalendar_table th {
		height: 32px;
		font-size: 12px;
	}
	.cbtModal_content-availability .cbpCalendar_table td {
		height: 60px;
	}
	.cbtModal_content-availability .cbpCalendar_day {
		font-size: 16px;
	}
	.cbtModal_content-availability .cbpCalendar_status {
		margin-top: 2px;
		font-size: 10px;
		min-height: 12px;
	}
	.cbtModal_content-availability .cbpCalendar_footer {
		margin-top: 12px;
		gap: 8px;
	}
	.cbtModal_content-availability .cbpCalendar_selection {
		margin-top: 0;
	}
}
