@charset "UTF-8";
/* ==========================================================================
   Odakyu Official CHECKBOX TOUR — LP styles
   デザイン基準幅: 1280px / 共通assetsのCSS変数(--font-dm, --font-rubik)を利用
   ========================================================================== */

:root {
	--cbt-red: #E9473F;
	--cbt-blue: #004DA1;
	--cbt-lightblue: #F3F8FF;
	--cbt-gray-line: #909090;
	--cbt-placeholder: #D9D9D9;
	--cbt-font-roboto: "Roboto", sans-serif;
}

/* 中間幅(768〜1279px)対策: LPコンテンツはPCデザイン1280px固定のため、
   bodyにも同じmin-widthを与えて共通ヘッダー/フッターごと横スクロールさせる
   (これがないとテンプレート側だけ縮んで幅がチグハグに崩れる)。
   タブレット実機は各ページhead内のviewport切替JS(width=1280)で縮小表示される */
@media (min-width: 768px) {
	body {
		min-width: 1280px;
	}
	/* 共通ヘッダーはabsoluteで包含ブロックがビューポートのため
	   bodyのmin-widthを継承しない → 個別指定(absoluteなので横スクロールには自然に追随) */
	.gHeader {
		min-width: 1280px;
	}
}

/* フッター背景(角R外側)を白に(2026-08-25 クライアント要望)。
   共通CSSの .gBody-footerWhite + .gFooter は「直前の要素」にしか効かず、
   箱根/鎌倉は gFreeContents とフッターの間にモーダルdivが挟まるため
   兄弟セレクタ(~)で同じ指定を補完する(共通フッター自体は無改変) */
.gBody-footerWhite ~ .gFooter {
	background-color: var(--color-white);
	box-shadow: 0 -2px 0 var(--color-white);
}

.cbt {
	position: relative;
	min-width: 1280px;
	overflow-x: clip;
	font-family: var(--font-dm);
	font-weight: 400;
	font-size: 16px;
	line-height: 1.4;
	color: #000;
	font-variation-settings: "opsz" 14;
}
.cbt img {
	max-width: 100%;
	height: auto;
}

/* --------------------------------------------------------------------------
   固定メディアレイヤー(FV右・ムービー・下部帯の「窓」から見える)
   -------------------------------------------------------------------------- */
.cbtMedia {
	position: fixed;
	inset: 0 0 auto 0;
	/* モバイルのURLバー開閉でビューポート高さが変わっても写真がガタつかないよう
	   100lvh(最大ビューポート高)で固定(未対応ブラウザは100vhフォールバック) */
	height: 100vh;
	height: 100lvh;
	z-index: -1;
	pointer-events: none;
}
.cbtMedia_picture {
	display: block;
	width: 100%;
	height: 100%;
}
.cbt .cbtMedia_item {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 40%;
}

/* --------------------------------------------------------------------------
   共通パーツ
   -------------------------------------------------------------------------- */
.cbt_inner {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 48px;
	box-sizing: border-box;
}
/* 改行制御(PCのみ表示 / SPのみ表示) */
.cbt_brSp {
	display: none;
}
.cbt_label {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.8;
	color: #000;
}
.cbt_labelDot {
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--cbt-blue);
}
.cbt_heading {
	margin: 8px 0 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 28px;
	line-height: 1.6;
	color: #000;
}
.cbtRating {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
}
.cbtRating_stars {
	font-size: 20px;
	line-height: 1;
	color: var(--cbt-red);
	letter-spacing: -2px;
}
.cbtRating_score {
	font-size: 16px;
	line-height: 1.4;
	color: #000;
}

/* 装飾(セクション境界の写真+アウトライン文字) */
.cbtDeco {
	position: absolute;
	z-index: 2;
	pointer-events: none;
}
.cbtDeco img {
	max-width: none;
}
.cbtDeco_crop {
	overflow: hidden;
}

/* 装飾写真: スクロールでポンっと出現(ワンテンポ遅らせるdelay付き) */
.cbtDeco_pop {
	scale: 0.5;
	opacity: 0;
}
.cbtDeco_pop.is-visible {
	transition: opacity 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275), scale 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	transition-delay: 0.25s;
	scale: 1;
	opacity: 1;
}

/* スクロール出現(102%=窓の外から完全に入場させる。%基準なのでPC/SP共通) */
.js-reveal .cbtWhy_romancecarTrainInner {
	transform: translateX(102%);
	transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.js-reveal.is-inview .cbtWhy_romancecarTrainInner {
	transform: translateX(0);
}

/* --------------------------------------------------------------------------
   共通ヘッダー(odakyu-official)対応
   ヘッダー自体は共通CSS(PC:absolute / SP:fixed)が制御。
   個別ページのgFreeContents(padding-top:70px+青帯)と同じ見た目になるよう
   LP側で上部オフセットと青帯を用意する
   -------------------------------------------------------------------------- */
.cbt {
	padding-top: 70px;
}
.cbt::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 70px;
	background: var(--color-blue-odakyu-ci);
}

/* --------------------------------------------------------------------------
   FV
   -------------------------------------------------------------------------- */
.cbtFv {
	position: relative;
	/* ブラウザ高さに追従して白背景が途切れないように(PCのみ。SPは固定高)。
	   共通ヘッダーぶん(70px)は.cbtのpadding-topで確保するため差し引く */
	height: calc(100vh - 70px);
	min-height: 730px;
}
/* FV右窓の一時写真(動画納品まで): FigmaのFV右半分を書き出した画像(fv-photo-fv.jpg)。
   白パネルと同じタイミング(is-fvHidden)でフェードアウトし固定レイヤーの全景に切り替わる。
   暗幕(.cbtFv::after)より上に置き、この写真には暗幕を掛けない */
.cbtFv_photo {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
	width: 50%;
	height: 100%;
	overflow: hidden;
	transition: opacity 0.5s ease;
}
.cbt .cbtFv_photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}
.cbtFv.is-fvHidden .cbtFv_photo {
	opacity: 0;
}
/* FV側にもムービーと同じ暗幕を敷き、セクション境目のフチをなくす(2026-08-19)
   ※はみ出しの重なりを作ると重なった1pxが濃くなるためピッタリ(inset:0)で合わせる */
.cbtFv::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: rgba(0, 0, 0, 0.6);
	opacity: var(--cbt-movie-shade, 0);
	pointer-events: none;
	will-change: opacity;
}
.cbtFv_panel,
.cbtMarquee {
	z-index: 1;
}
.cbtFv_panel {
	position: absolute;
	top: 0;
	left: 0;
	width: 50%;
	height: 100%;
	background: #fff;
	transition: opacity 0.5s ease;
}
/* コピーが見切れる位置までスクロールしたら白背景+マーキーをフェードアウト(JSがis-fvHiddenを付与) */
.cbtFv.is-fvHidden .cbtFv_panel,
.cbtFv.is-fvHidden .cbtMarquee {
	opacity: 0;
	pointer-events: none;
}
.cbtFv_panelInner {
	display: flex;
	flex-direction: column;
	align-items: center;
	/* 共通ヘッダー化に伴い調整(Figma: ロゴ上端=ページ上端から205px、ヘッダー70px+135px) */
	padding-top: 135px;
}
.cbtFv_logo {
	margin: 0;
	margin-left: -32px;
}
.cbtFv_logo img {
	display: block;
	width: 361px;
	height: 231px;
}
.cbtFv_tagline {
	width: 388px;
	margin: 36px 31px 0 0px;
	font-size: 16px;
	line-height: 1.4;
	color: var(--cbt-blue);
	text-align: center;
	white-space: nowrap;
}
/* FV内コンバージョンボタン(PCのみ) */
.cbtFv_btns {
	display: flex;
	gap: 20px;
	margin: 50px 0 0;
	padding: 0;
	list-style: none;
}
.cbtFv_btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 200px;
	height: 40px;
	background: var(--cbt-red);
	border-radius: 6px;
	font-family: var(--font-rubik);
	font-weight: 600;
	font-size: 14px;
	color: #fff;
	text-decoration: none;
	transition: opacity 0.3s ease;
}
.cbtFv_btn:hover {
	opacity: 0.8;
}
/* 画面右下の固定コンバージョンボタン(PCのみ)
   bottomは共通フッターのページトップボタン(gPageTop: bottom18px+40px=下端〜58px)と
   重ならない値にする。FVを通過するまでは非表示(JSがis-visibleを付与) */
.cbtFloatBtns {
	position: fixed;
	right: 50px;
	bottom: 70px;
	z-index: 90;
	display: flex;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	opacity: 0;
	transform: translateY(12px);
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
}
.cbtFloatBtns.is-visible {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}
.cbtFloatBtns_btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 240px;
	height: 48px;
	background: var(--cbt-red);
	border-radius: 6px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
	font-family: var(--font-rubik);
	font-weight: 600;
	font-size: 15px;
	color: #fff;
	text-decoration: none;
	transition: opacity 0.3s ease;
}
.cbtFloatBtns_btn:hover {
	opacity: 0.8;
}

/* マーキー(右→左 無限ループ)。コピー全体が見えるよう底辺をFV下端=初期表示の画面下端に揃える
   (クライアント要望 2026-08-27。Figmaの「FV境界跨ぎ」配置は取りやめ) */
.cbtMarquee {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 51px;
	overflow: hidden;
	transition: opacity 0.5s ease;
}
.cbtMarquee_track {
	display: flex;
	width: max-content;
	height: 100%;
	animation: cbtMarquee 27s linear infinite; /* 縮小前と同じ流速(px/s)を維持 */
	will-change: transform;
}
.cbtMarquee_group {
	display: flex;
	align-items: center;
	gap: 20px;
	height: 100%;
	padding-right: 30px;
}
.cbt .cbtMarquee_word {
	flex: none;
	height: 51px;
	width: auto;
	max-width: none;
}
.cbtMarquee_word-mustvisit {
	margin-left: 10px;
}
@keyframes cbtMarquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* --------------------------------------------------------------------------
   ムービーセクション(固定メディアの窓)
   -------------------------------------------------------------------------- */
.cbtMovie {
	position: relative;
	height: 900px;
}
/* 暗幕はスクロール量に応じてJSがopacityを0→1で更新(FVとの境目を見せない) */
.cbtMovie::before {
	content: "";
	position: absolute;
	inset: 0;
	/* 参考: mimaruhotels.com — 背景をしっかり塗りつぶす濃さ。
	   上端の0.6はFV側の暗幕(.cbtFv::after)と同じ濃さで、境目が出ない */
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.78) 160px, rgba(0, 0, 0, 0.78));
	opacity: var(--cbt-movie-shade, 0);
	will-change: opacity;
}
.cbtMovie_inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	height: 100%;
	padding: 120px 0 100px;
	box-sizing: border-box;
}
.cbtMovie_text {
	text-align: center;
	font-family: var(--font-rubik);
	font-size: 18px;
	line-height: 1.8;
	color: #fff;
}
.cbtMovie_text p {
	margin: 0;
}
.cbtMovie_text p + p {
	margin-top: 32px;
}
.cbtMovie_bottom {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}
.cbtMovie_heading {
	display: flex;
	align-items: center;
	gap: 30px;
	margin: 0;
}
.cbtMovie_headingBox {
	position: relative;
	flex: none;
	width: 50px;
	height: 50px;
	border: 3px solid #fff;
	box-sizing: border-box;
}
.cbtMovie_headingBox img {
	position: absolute;
	top: 1px;
	left: 6px;
	width: 52px;
	height: 41px;
	max-width: none;
}
.cbtMovie_headingText {
	font-family: var(--cbt-font-roboto);
	font-weight: 700;
	font-size: 50px;
	line-height: 1;
	color: #fff;
	white-space: nowrap;
}
.cbtMovie_btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 400px;
	height: 80px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 10px;
	background: var(--cbt-red);
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbtMovie_btn:hover {
	opacity: 0.8;
}
.cbtMovie_btnText {
	font-family: var(--font-rubik);
	font-weight: 400;
	font-size: 30px;
	color: #fff;
}
.cbtMovie_btnIcon {
	position: absolute;
	top: 50%;
	right: 30px;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
}
/* Video Coming Soon(動画公開までの告知。クリック不可)
   テキスト+アイコンを1グループ(gap10px)としてボタン内センタリング */
.cbtMovie_coming {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 400px;
	height: 80px;
	border: 1px solid #fff;
	border-radius: 10px;
	box-sizing: border-box;
}
.cbtMovie_comingText {
	font-family: var(--font-rubik);
	font-weight: 400;
	font-size: 28px;
	color: #fff;
}
.cbt .cbtMovie_comingIcon {
	flex: none;
	width: 40px;
	height: 40px;
}

/* ディレイ表示 */
.cbtMovie_delay {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.9s ease, transform 0.9s ease;
}
.cbtMovie.is-inview .cbtMovie_delay-1 { opacity: 1; transform: none; transition-delay: 0.5s; }
.cbtMovie.is-inview .cbtMovie_delay-2 { opacity: 1; transform: none; transition-delay: 1s; }
.cbtMovie.is-inview .cbtMovie_delay-3 { opacity: 1; transform: none; transition-delay: 1.3s; }

/* --------------------------------------------------------------------------
   Why Choose CHECKBOX TOUR
   -------------------------------------------------------------------------- */
.cbtWhy {
	position: relative;
	padding: 292px 0 172px;
	background: var(--cbt-lightblue);
}
.cbtWhy_romancecar {
	position: absolute;
	top: 50px;
	left: 0;
	width: 100%;
	height: 195px;
	pointer-events: none;
}
.cbtWhy_romancecarLockup {
	position: absolute;
	top: 0;
	/* ブラウザ幅に関わらず常に画面右端に */
	right: 0;
	margin: 0;
}
.cbtWhy_romancecarLockup img {
	width: 337px;
	height: 87px;
	max-width: none;
}
.cbtWhy_romancecarTrain {
	position: absolute;
	top: 34px;
	/* ブラウザ幅に関わらず常に画面右端に */
	right: 0;
	width: 918px;
	height: 160px;
	overflow: hidden;
}
.cbtWhy_romancecarTrainInner {
	width: 100%;
	height: 100%;
	position: relative;
}
.cbtWhy_romancecarTrainInner img {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: auto;
	max-width: none;
}
.cbtWhy_list {
	display: flex;
	flex-direction: column;
	gap: 50px;
	margin-top: 63px;
}
.cbtWhy_item {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 80px;
}
.cbtWhy_itemText {
	width: 526px;
	flex: none;
}
.cbtWhy_itemNum {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 28px;
	line-height: 1;
	color: var(--cbt-red);
}
.cbtWhy_itemTitle {
	margin: 4px 0 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 28px;
	line-height: 1.6;
	color: #000;
}
.cbtWhy_itemBody {
	margin: 30px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbtWhy_itemPhotos {
	display: flex;
	flex: none;
}
/* デザイン改訂で2枚組→1枚の合成画像に変更 */
.cbtWhy_itemPhoto {
	width: 578px;
	height: 385px;
	overflow: hidden;
}
.cbtWhy_itemPhoto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* お地蔵さま装飾 */
.cbtDeco-jizo {
	bottom: -142px;
	left: calc(50% - 717px);
	width: 666px;
	height: 395px;
}
.cbtDeco-jizo .cbtDeco_img {
	position: absolute;
	top: 0;
	left: 0;
	width: 504px;
	z-index: 1; /* テキストSVGを写真の下レイヤーに(2026-08-19) */
}
.cbtDeco-jizo .cbtDeco_text {
	position: absolute;
	top: 213px;
	left: 482px;
	width: 184px;
	z-index: 0;
}

/* --------------------------------------------------------------------------
   Tour Line Up
   -------------------------------------------------------------------------- */
.cbtLineup {
	position: relative;
	padding: 182px 0 212px;
	background: #fff;
}
.cbtLineup_banner {
	position: relative;
	height: 350px;
	margin-top: 45px;
	overflow: hidden;
}
.cbtLineup_banner-kamakura {
	margin-top: 100px;
}
.cbt .cbtLineup_bannerImg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cbt .cbtLineup_bannerKanji {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	height: 350px;
	width: auto;
	max-width: none;
}
.cbtLineup_bannerLabel {
	position: absolute;
	top: 157px;
	left: calc(50% + 306px);
	width: 183px;
	max-width: none;
}
/* KAMAKURAは一体型SVG(label-kamakura.svg)に変更(2026-08-25 Figma準拠) */
.cbtLineup_bannerLabel-kamakura {
	top: 158px;
	left: calc(50% + 261px);
	width: 229px;
}
.cbtLineup .cbtCard {
	margin-top: 60px;
}

/* ツアーカード */
.cbtCard {
	display: flex;
	justify-content: space-between;
	gap: 50px;
}
.cbtCard_media {
	width: 578px;
	flex: none;
}
.cbtCard_video {
	position: relative;
	display: block;
	width: 578px;
	height: 385px;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	overflow: hidden;
	cursor: pointer;
}
.cbt .cbtCard_videoImg {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}
/* 箱根のメイン写真は元画像が広めのためデザインのクロップ位置に合わせる */
.cbt .cbtCard_videoImg-hakone {
	object-position: 33% 93%;
}
.cbtCard_video:hover .cbtCard_videoImg {
	transform: scale(1.04);
}
.cbtCard_videoPlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 63px;
	height: 63px;
}
/* 動画未支給のため再生ボタンを一時非表示+クリック無効(素材が届いたらこの2行を削除) */
.cbtCard_videoPlay { display: none; }
.cbtCard_video { pointer-events: none; }
.cbtCard_thumbs {
	display: flex;
	gap: 10px;
	margin-top: 20px;
}
.cbtCard_thumb {
	position: relative;
	width: 137px;
	height: 91px;
	overflow: hidden;
}
.cbtCard_thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cbtCard_thumb-placeholder {
	background: var(--cbt-placeholder);
}
.cbtCard_allPicture {
	position: absolute;
	top: 70%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 120px;
	height: 32px;
	white-space: nowrap;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 30px;
	background: #fff;
	font-family: var(--font-rubik);
	font-weight: 600;
	font-size: 14px;
	color: var(--cbt-blue);
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbt .cbtCard_allPicture img {
	flex: none;
	width: 15px;
	height: 12px;
}
.cbtCard_allPicture:hover {
	opacity: 0.85;
}
.cbtCard_table {
	margin: 24px 0 0;
}
.cbtCard_tableRow {
	display: flex;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--cbt-gray-line);
}
.cbtCard_tableRow + .cbtCard_tableRow {
	margin-top: 14px;
}
.cbtCard_tableRow dt {
	flex: none;
	width: 283px;
	font-weight: 400;
}
.cbtCard_tableRow dd {
	margin: 0;
}
.cbtCard_body {
	display: flex;
	flex-direction: column;
	gap: 32px;
	width: 556px;
	flex: none;
}
.cbtCard_titleSet {
	margin: 0;
}
.cbtCard_title {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 28px;
	line-height: 1.5;
	color: #000;
}
.cbtCard_desc {
	margin: 2px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbtCard_subHead {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.6;
	color: #000;
}
.cbtCard_highlightList {
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
	font-size: 16px;
	line-height: 1.4;
}
.cbtCard_subHead-campaign {
	color: var(--cbt-red);
}
.cbtCard_campaignText {
	margin: 8px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbtCard_campaignEm {
	color: var(--cbt-red);
}
.cbtCard_priceRegular {
	margin: 8px 0 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.6;
	color: #000;
	text-decoration: line-through;
}
.cbtCard_price {
	display: flex;
	align-items: baseline;
	gap: 20px;
	margin: 2px 0 0;
}
.cbtCard_priceFigure {
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 40px;
	line-height: 1;
	color: var(--cbt-red);
}
.cbtCard_priceUnit {
	font-size: 16px;
}
.cbtCard_cta {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 80px;
	margin-top: 20px;
	border-radius: 10px;
	background: var(--cbt-red);
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 20px;
	color: #fff;
	text-decoration: none;
	transition: opacity 0.3s ease;
}
.cbtCard_cta:hover {
	opacity: 0.8;
}

/* --------------------------------------------------------------------------
   English Guide
   -------------------------------------------------------------------------- */
.cbtGuide {
	position: relative;
	padding: 115px 0 110px;
	background: var(--cbt-lightblue);
}
.cbtGuide_row {
	display: flex;
	align-items: flex-start;
	gap: 40px;
	margin-top: 23px;
}
.cbtGuide_photo {
	flex: none;
	width: 436px;
	height: 474px;
	overflow: hidden;
}
.cbtGuide_photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cbtGuide_text {
	width: 708px;
	margin-top: 90px; /* 上端からの位置調整はここ */
}
.cbtGuide_heading {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 28px;
	line-height: 1.6;
	color: #000;
}
.cbtGuide_body {
	margin: 23px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbtGuide_list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 23px 0 0;
	padding: 0;
	list-style: none;
}
.cbtGuide_list li {
	position: relative;
	min-height: 26px;
	padding-left: 34px;
	font-size: 16px;
	line-height: 1.4;
	display: flex;
	align-items: center;
}
.cbtGuide_list li img {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 26px;
	height: 26px;
}

/* 江ノ電装飾 */
.cbtDeco-enoden {
	top: -242px;
	left: calc(50% + 178px);
	width: 518px;
	height: 412px;
}
.cbtDeco-enoden .cbtDeco_text {
	position: absolute;
	top: 218px;
	left: 0;
	width: 266px;
}
.cbtDeco-enoden .cbtDeco_crop {
	position: absolute;
	top: 0;
	left: 100px;
	width: 418px;
	height: 412px;
}
.cbtDeco-enoden .cbtDeco_img {
	width: 418px;
	margin-top: 0;
}

/* --------------------------------------------------------------------------
   Optional Add-On (T-shirt)
   -------------------------------------------------------------------------- */
.cbtTshirt {
	position: relative;
	padding: 209px 0 116px;
	background: #fff;
}
.cbtTshirt_cols {
	display: flex;
	justify-content: space-between;
	gap: 50px;
}
.cbtTshirt_text {
	width: 578px;
	flex: none;
}
.cbtTshirt_body {
	margin: 41px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbtTshirt_comic {
	margin: 48px 0 0;
}
.cbtTshirt_comic img {
	display: block;
	width: 578px;
}
.cbtTshirt_photo {
	flex: none;
	width: 556px;
	height: 724px;
	overflow: hidden;
	margin-top: 8px;
}
.cbtTshirt_photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 黒たまご装飾(2卵は見切れなしの完全版1枚画像。右端基準で配置) */
.cbtDeco-blackegg {
	top: -168px;
	left: calc(50% - 712px);
	width: 589px;
	height: 355px;
}
.cbtDeco_img-eggs {
	position: absolute;
	top: 59px;
	left: 64px;
	width: 283px;
}
.cbtDeco-blackegg .cbtDeco_text {
	position: absolute;
	top: 141px;
	left: 367px;
	width: 222px;
}

/* --------------------------------------------------------------------------
   Review
   -------------------------------------------------------------------------- */
.cbtReview {
	position: relative;
	padding: 151px 0 172px;
	background: var(--cbt-lightblue);
}
.cbtReview_heading {
	display: flex;
	align-items: center;
	gap: 10px;
}
.cbtReview_info {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbtReview_info:hover {
	opacity: 0.6;
}
.cbtReview_info img {
	width: 22px;
	height: 22px;
}
.cbtReview_grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px 28px;
	margin-top: 49px;
}
.cbtReview_card {
	box-sizing: border-box;
	padding: 25px 30px 22px;
	background: #fff;
	border: 1px solid var(--cbt-gray-line);
	border-radius: 20px;
}
.cbtReview_quote {
	margin: 22px 0 0;
	font-size: 16px;
	line-height: 1.4;
}
.cbtReview_name {
	margin: 14px 0 0;
	font-size: 14px;
	line-height: 1.6;
}
.cbtReview_more {
	display: flex;
	justify-content: center;
	margin: 60px 0 0;
}
.cbtReview_moreBtn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 376px;
	height: 80px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 10px;
	background: var(--cbt-red);
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 20px;
	color: #fff;
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbtReview_moreBtn:hover {
	opacity: 0.8;
}
.cbtReview_moreArrow {
	position: absolute;
	top: 50%;
	right: 30px;
	transform: translateY(-50%);
	width: 25px;
	height: 20px;
}

/* 登山電車装飾 */
.cbtDeco-tozan {
	top: -78px;
	left: calc(50% + 58px);
	width: 610px;
	height: 340px;
}
.cbtDeco-tozan .cbtDeco_text {
	position: absolute;
	top: 63px;
	left: 0;
	width: 287px;
}
.cbtDeco-tozan .cbtDeco_crop {
	position: absolute;
	top: 0;
	left: 246px;
	width: 357px;
	height: 327px;
}
.cbtDeco-tozan .cbtDeco_img {
	position: absolute;
	top: 0;
	left: 0;
	width: 357px;
}

/* 鳥居装飾 */
.cbtDeco-torii {
	bottom: -126px;
	left: calc(50% - 690px);
	width: 742px;
	height: 390px;
}
.cbtDeco-torii .cbtDeco_crop {
	position: absolute;
	top: 0;
	left: 0;
	width: 430px;
	height: 390px;
}
.cbtDeco-torii .cbtDeco_img {
	position: absolute;
	top: 0;
	left: 0;
	width: 430px;
}
.cbtDeco-torii .cbtDeco_text {
	position: absolute;
	top: 239px;
	left: 372px;
	width: 370px;
}

/* --------------------------------------------------------------------------
   FAQ
   -------------------------------------------------------------------------- */
.cbtFaq {
	position: relative;
	padding: 147px 0 160px;
	background: #fff;
}
.cbtFaq_title {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 50px;
	line-height: 1.6;
	text-align: center;
	color: #000;
}
.cbtFaq_list {
	margin-top: 25px;
}
.cbtFaq_item {
	padding-bottom: 22px;
	border-bottom: 1px solid var(--cbt-gray-line);
}
.cbtFaq_item + .cbtFaq_item {
	margin-top: 29px;
}
.cbtFaq_q {
	display: flex;
	align-items: baseline;
	gap: 20px;
	margin: 0;
}
.cbtFaq_qMark {
	flex: none;
	font-family: var(--cbt-font-roboto);
	font-weight: 500;
	font-size: 28px;
	line-height: 1.6;
	color: var(--cbt-blue);
}
.cbtFaq_qText {
	font-weight: 500;
	font-size: 20px;
	color: #000;
}
.cbtFaq_a {
	margin: 11px 0 0;
	font-size: 16px;
	line-height: 1.4;
}

/* --------------------------------------------------------------------------
   固定メディアの窓(帯)
   -------------------------------------------------------------------------- */
.cbtBand {
	position: relative;
	height: 400px;
}

/* --------------------------------------------------------------------------
   Tour Line Up CTA
   -------------------------------------------------------------------------- */
.cbtCta {
	position: relative;
	padding: 151px 0 153px;
	background: #fff;
}
.cbtCta_cards {
	display: flex;
	gap: 28px;
	margin-top: 67px;
}
.cbtCta_card {
	display: block;
	width: 376px;
	color: #000;
	text-decoration: none;
	transition: opacity 0.3s ease;
}
.cbtCta_card:hover {
	opacity: 0.8;
}
.cbtCta_cardPhoto {
	display: block;
	width: 376px;
	height: 250px;
	overflow: hidden;
}
.cbtCta_cardPhoto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cbtCta_card .cbtRating {
	margin-top: 16px;
}
.cbtCta_cardTitle {
	display: block;
	margin-top: 11px;
	font-size: 16px;
	line-height: 1.4;
}

/* --------------------------------------------------------------------------
   モーダル共通
   -------------------------------------------------------------------------- */
.cbtModal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: none;
}
.cbtModal.is-open {
	display: block;
}
.cbtModal_overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	cursor: pointer;
}
.cbtModal_close {
	position: absolute;
	top: 30px;
	right: 30px;
	z-index: 5;
	width: 68px;
	height: 68px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbtModal_close:hover {
	opacity: 0.8;
}
.cbtModal_close::before,
.cbtModal_close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 26px;
	height: 3px;
	border-radius: 2px;
	background: #000;
}
.cbtModal_close::before {
	transform: translate(-50%, -50%) rotate(45deg);
}
.cbtModal_close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

/* カード型(レビュー系) */
.cbtModal_content-card {
	position: absolute;
	top: 30%;
	left: 50%;
	transform: translateX(-50%);
	width: min(1120px, calc(100% - 160px));
	box-sizing: border-box;
	padding: 89px 60px 90px;
	background: #fff;
	border-radius: 20px;
	text-align: center;
}
.cbtModal_title {
	margin: 0;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 28px;
	line-height: 1.6;
	color: #000;
}
.cbtModal_text {
	margin: 18px 0 0;
	font-size: 16px;
	line-height: 1.62;
	color: #000;
}
.cbtModal_content-reviewAll {
	/* 縦に長いため、常に画面中央に展開する(content-cardのtop:30%を上書き) */
	top: 50%;
	transform: translate(-50%, -50%);
	padding: 80px 60px 40px;
}
.cbtModal_reviewList {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	max-height: calc(80vh - 220px);
	margin-top: 40px;
	overflow-y: auto;
	text-align: left;
}

/* 動画モーダル */
.cbtModal_content-video {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(1120px, calc(100% - 160px));
}
.cbtModal_content-video .cbtModal_close {
	top: -30px;
	right: -30px;
}
.cbtModal_video {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
}

/* ギャラリーモーダル(全画面白背景) */
.cbtModal_content-gallery {
	position: absolute;
	inset: 0;
	background: #fff;
	overflow-y: auto;
}
.cbtModal_content-gallery .cbtModal_close {
	position: fixed;
	top: 48px;
	right: 48px;
}
.cbtGallery {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 80px 48px;
	box-sizing: border-box;
}
.cbtGallery_item {
	display: block;
	aspect-ratio: 275 / 183;
	margin: 0;
	padding: 0;
	border: none;
	background: var(--cbt-placeholder);
	overflow: hidden;
	cursor: pointer;
}
.cbtGallery_item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.cbtGallery_item:hover img {
	transform: scale(1.05);
}
.cbtGallery_item-placeholder {
	cursor: default;
}
.cbtGalleryZoom {
	position: fixed;
	inset: 0;
	z-index: 10;
	display: none;
	background: rgba(0, 0, 0, 0.85);
}
.cbtGalleryZoom.is-open {
	display: block;
}
.cbtGalleryZoom .cbtGalleryZoom_img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	max-width: calc(100% - 160px);
	max-height: calc(100% - 120px);
	width: auto;
	height: auto;
}
.cbtGalleryZoom_close {
	position: absolute;
	top: 30px;
	right: 30px;
}
/* 拡大表示の送り(前後)ボタン */
.cbtGalleryZoom_nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	width: 50px;
	height: 50px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.cbtGalleryZoom_nav:hover {
	opacity: 0.8;
}
.cbtGalleryZoom_nav::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 12px;
	border-top: 2px solid #000;
	border-right: 2px solid #000;
	box-sizing: border-box;
}
.cbtGalleryZoom_nav-prev {
	left: 30px;
}
.cbtGalleryZoom_nav-prev::before {
	transform: translate(-30%, -50%) rotate(-135deg);
}
.cbtGalleryZoom_nav-next {
	right: 30px;
}
.cbtGalleryZoom_nav-next::before {
	transform: translate(-70%, -50%) rotate(45deg);
}

/* モーダル表示中のスクロールロック */
body.is-cbtModalOpen {
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   SP専用要素(PCでは非表示)
   -------------------------------------------------------------------------- */
.cbtMovie_tourBtns {
	display: none;
}

/* ==========================================================================
   SP (デザイン基準幅: 390px)
   ========================================================================== */
@media screen and (max-width: 767px) {

.cbt {
	min-width: 0;
	font-size: 14px;
}
.cbt_inner {
	max-width: none;
	padding: 0 20px;
}
.cbt_label {
	font-size: 14px;
}
.cbt_heading {
	margin-top: 16px;
	font-size: 20px;
	line-height: 1.4;
}
.cbt_brPc {
	display: none;
}
.cbt_brSp {
	display: inline;
}

/* 共通ヘッダー(SPはfixed)ぶんのオフセット: gFreeContentsのSP(54px)に合わせる */
.cbt {
	padding-top: 54px;
}
.cbt::before {
	height: 54px;
}

/* FV */
.cbtFv_logo {
	margin-left: -138px;
}

.cbtFv {
	z-index: 2;
	/* 従来380px(ページ上端基準)。共通ヘッダー54pxぶんを差し引き */
	height: 326px;
	min-height: 0;
}
/* コンバージョンボタンはSPでは非表示(画面下部固定のcbtMovie_tourBtnsが担当) */
.cbtFv_btns,
.cbtFloatBtns {
	display: none;
}
/* SPはFV右窓の一時写真を使わない(固定レイヤーのobject-positionで調整) */
.cbtFv_photo {
	display: none;
}
/* SPはSP用写真(fv-photo-sp.jpg 780x1851、pictureタグで切替)を表示。
   上部に鏡映継ぎ足しPAD=100px@2x(実表示50px)入り(2026-08-25 ユーザー指定)。
   再生成は元画像(_P2A0669)から: 幅1168@2xに縮小→x96..876をクロップ(全高1751)→
   上部PADぶんを上下反転して結合。PADを増やす=被写体が下がる。
   object-positionの縦値は画面高との遊びがなく機種依存のため使わない。 */
.cbt .cbtMedia_item {
	object-position: center top;
	height: 100%;
}
.cbtFv_panel {
	width: 100%;
}
.cbtFv_panelInner {
	/* 従来129px(ページ上端基準)。共通ヘッダー54pxぶんを差し引き */
	padding-top: 75px;
}
.cbtFv_logo img {
	width: 200px;
	height: 128px;
}
.cbtFv_tagline {
	width: auto;
	margin-top: 26px;
	padding: 0 0 0 18px;
	font-size: 14px;
	text-align: center;
	white-space: normal;
}
/* SPモックにマーキーは無いがPCと同比率(x0.64)で縮小。
   SPもコピー全体が見えるよう白パネル下端に底辺を揃える(2026-08-27) */
.cbtMarquee {
	bottom: 0;
	height: 22px;
}
.cbtMarquee_group {
	gap: 8px;
	padding-right: 13px;
}
.cbt .cbtMarquee_word {
	height: 22px;
}
.cbtMarquee_word-mustvisit {
	margin-left: 4px;
}

/* ムービーセクション(FV写真から連続する窓) */
.cbtMovie {
	height: 1122px;
}
.cbtMovie_inner {
	justify-content: flex-start;
	padding: 288px 20px 80px;
}
/* ツアー導線ボタン: 画面下部に固定追従 */
.cbtMovie_tourBtns {
	position: fixed;
	left: 18px;
	right: 18px;
	bottom: 16px;
	z-index: 90;
	display: flex;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cbtMovie_tourBtns li {
	flex: 1;
}
.cbtMovie_tourBtns a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 50px;
	padding: 0 34px 0 10px;
	background: var(--cbt-red);
	border-radius: 50px;
	font-family: var(--font-rubik);
	font-weight: 500;
	font-size: 13px;
	color: #fff;
	text-decoration: none;
	white-space: nowrap;
}
.cbt .cbtMovie_tourBtnIcon {
	position: absolute;
	top: 50%;
	right: 7px;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
}
.cbtMovie_text {
	font-size: 14px;
}
.cbtMovie_text p + p {
	margin-top: 25px;
}
.cbtMovie_bottom {
	margin-top: 60px;
	gap: 30px;
}
.cbtMovie_heading {
	flex-direction: column;
	gap: 20px;
}
.cbtMovie_headingText {
	max-width: 270px;
	font-size: 30px;
	line-height: 1.2;
	text-align: center;
	white-space: normal;
}
.cbtMovie_btn {
	width: auto;
	height: auto;
	gap: 5px;
	background: none;
	border-radius: 0;
}
.cbtMovie_btnText {
	font-size: 20px;
}
.cbtMovie_btnIcon {
	position: static;
	transform: none;
	width: 20px;
	height: 20px;
}
/* Video Coming Soon: SPは枠なしのテキスト+アイコン(gap10pxはPCと共通) */
.cbtMovie_coming {
	width: auto;
	height: auto;
	border: none;
	border-radius: 0;
}
.cbtMovie_comingText {
	font-size: 20px;
}
.cbt .cbtMovie_comingIcon {
	width: 20px;
	height: 20px;
}

/* Why Choose */
.cbtWhy {
	padding: 173px 0 100px;
}
.cbtWhy_romancecar {
	top: 0;
	height: 136px;
}
.cbtWhy_romancecarLockup {
	top: 40px;
	left: auto;
	right: 19px;
}
.cbtWhy_romancecarLockup img {
	width: 197px;
	height: 51px;
}
.cbtWhy_romancecarTrain {
	top: 69px;
	left: 25px;
	right: auto;
	width: 382px;
	height: 67px;
}
.cbtWhy_list {
	gap: 36px;
	margin-top: 50px;
}
.cbtWhy_item {
	flex-direction: column;
	gap: 13px;
}
.cbtWhy_itemText {
	width: auto;
}
.cbtWhy_itemNum {
	font-size: 20px;
}
.cbtWhy_itemTitle {
	margin-top: 7px;
	font-size: 20px;
	line-height: 1.4;
}
.cbtWhy_itemBody {
	margin-top: 19px;
	font-size: 14px;
}
.cbtWhy_itemPhotos {
	width: 100%;
}
.cbtWhy_itemPhoto {
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 233;
}
.cbtDeco-jizo {
	bottom: -71px;
	left: -21px;
	width: 248px;
	height: 143px;
}
.cbtDeco-jizo .cbtDeco_img {
	top: 0;
	left: 0;
	width: 183px;
}
.cbtDeco-jizo .cbtDeco_text {
	top: 53px;
	left: 160px;
	width: 88px;
}

/* Tour Line Up */
.cbtLineup {
	padding: 91px 0;
}
.cbtLineup_banner {
	height: 106px;
	margin-top: 43px;
}
.cbt .cbtLineup_bannerKanji {
	height: 106px;
}
.cbtLineup_bannerLabel {
	top: 48px;
	left: auto;
	right: 61px;
	width: 72px;
}
.cbtLineup_bannerLabel-kamakura {
	top: 48px;
	left: auto;
	right: 45px;
	width: 92px;
}
.cbtLineup_banner-kamakura {
	margin-top: 60px;
}
.cbtLineup .cbtCard {
	margin-top: 30px;
}

/* ツアーカード */
.cbtCard {
	flex-direction: column;
	gap: 26px;
}
.cbtCard_media {
	width: 100%;
}
.cbtCard_video {
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 233;
}
.cbtCard_thumbs {
	position: relative;
	margin-top: 10px;
	padding-bottom: 48px;
}
.cbtCard_thumb {
	position: static;
	width: calc((100% - 30px) / 4);
	height: auto;
	aspect-ratio: 80 / 53;
}
.cbtCard_allPicture {
	top: auto;
	left: auto;
	right: 0;
	bottom: 0;
	transform: none;
	border: 1px solid var(--cbt-blue);
}
.cbtCard_table {
	margin-top: 15px;
}
.cbtCard_tableRow {
	padding-bottom: 8px;
}
.cbtCard_tableRow + .cbtCard_tableRow {
	margin-top: 16px;
}
.cbtCard_tableRow dt {
	width: 182px;
}
.cbtCard_body {
	width: 100%;
	gap: 17px;
}
.cbtCard_title {
	font-size: 20px;
}
.cbtCard_desc {
	margin-top: 10px;
	font-size: 14px;
}
.cbtCard_subHead {
	font-size: 20px;
}
.cbtCard_highlightList {
	margin-top: 16px;
	font-size: 14px;
}
.cbtCard_highlightList li {
	padding-left: 17px;
	text-indent: -17px;
}
.cbtCard_subHead-campaign {
	font-size: 16px;
}
.cbtCard_campaignText {
	margin-top: 10px;
	font-size: 14px;
}
.cbtCard_priceRegular {
	margin-top: 10px;
}
.cbtCard_price {
	margin-top: 2px;
}
.cbtCard_priceFigure {
	font-size: 32px;
}
.cbtCard_priceUnit {
	font-size: 14px;
}
.cbtCard_cta {
	height: 50px;
	margin-top: 24px;
	border-radius: 6px;
}

/* English Guide */
.cbtGuide {
	padding: 102px 0;
}
.cbtGuide_row {
	flex-direction: column-reverse;
	align-items: stretch;
	gap: 40px;
	margin-top: 14px;
}
.cbtGuide_photo {
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 381;
}
.cbtGuide_text {
	width: auto;
	margin-top: 0;
}
.cbtGuide_heading {
	font-size: 20px;
	line-height: 1.4;
}
.cbtGuide_body {
	margin-top: 10px;
	font-size: 14px;
}
.cbtGuide_list {
	margin-top: 15px;
}
.cbtDeco-enoden {
	top: -76px;
	left: auto;
	right: -38px;
	width: 248px;
	height: 197px;
}
.cbtDeco-enoden .cbtDeco_text {
	top: 64px;
	left: 0;
	width: 127px;
}
.cbtDeco-enoden .cbtDeco_crop {
	top: 0;
	left: 48px;
	width: 200px;
	height: 197px;
}
.cbtDeco-enoden .cbtDeco_img {
	width: 200px;
	margin-top: 0;
}

/* Optional Add-On (T-shirt) */
.cbtTshirt {
	padding: 91px 0;
}
.cbtTshirt_cols {
	flex-direction: column;
	gap: 0;
}
.cbtTshirt_text {
	display: contents;
}
.cbtTshirt_cols .cbt_label {
	order: 1;
}
.cbtTshirt_cols .cbt_heading {
	order: 2;
}
.cbtTshirt_body {
	order: 3;
	margin-top: 38px;
	font-size: 14px;
}
.cbtTshirt_photo {
	order: 4;
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 454;
	margin-top: 50px;
}
.cbtTshirt_comic {
	order: 5;
	margin-top: 26px;
}
.cbtTshirt_comic img {
	width: 100%;
}
.cbtDeco-blackegg {
	top: -60px;
	left: -31px;
	width: 228px;
	height: 119px;
}
.cbtDeco_img-eggs {
	top: 19px;
	left: 29px;
	width: 88px;
}
.cbtDeco-blackegg .cbtDeco_text {
	top: 49px;
	left: 127px;
	width: 101px;
}

/* Review */
.cbtReview {
	padding: 98px 0;
}
.cbtReview_info img {
	width: 18px;
	height: 18px;
}
.cbtReview_grid {
	grid-template-columns: 1fr;
	gap: 20px;
	margin-top: 46px;
}
.cbtReview_card {
	padding: 15px 20px 14px;
	border-radius: 10px;
}

.cbtRating_stars {
	letter-spacing: -1px;
}

.cbtReview_quote {
	margin-top: 13px;
	font-size: 14px;
}
.cbtReview_name {
	margin-top: 11px;
	font-size: 12px;
	line-height: 1.4;
}
.cbtReview_more {
	margin-top: 50px;
}
.cbtReview_moreBtn {
	width: 100%;
	height: 50px;
	border-radius: 6px;
}
.cbtReview_moreArrow {
	display: none;
}
.cbtDeco-tozan {
	top: -58px;
	left: auto;
	right: -31px;
	width: 295px;
	height: 155px;
}
.cbtDeco-tozan .cbtDeco_text {
	top: 43px;
	left: 0;
	width: 140px;
}
.cbtDeco-tozan .cbtDeco_crop {
	top: 0;
	left: 124px;
	width: 171px;
	height: 155px;
}
.cbtDeco-tozan .cbtDeco_img {
	top: 0;
	left: 0;
	width: 171px;
}
.cbtDeco-torii {
	bottom: -82px;
	left: -27px;
	width: 323px;
	height: 172px;
}
.cbtDeco-torii .cbtDeco_crop {
	width: 190px;
	height: 172px;
}
.cbtDeco-torii .cbtDeco_img {
	top: 0;
	left: 0;
	width: 190px;
}
.cbtDeco-torii .cbtDeco_text {
	top: 73px;
	left: 159px;
	width: 164px;
}

/* FAQ */
.cbtFaq {
	padding: 86px 0 100px;
}
.cbtFaq_title {
	font-size: 40px;
}
.cbtFaq_list {
	margin-top: 23px;
}
.cbtFaq_item {
	padding-bottom: 14px;
}
.cbtFaq_item + .cbtFaq_item {
	margin-top: 21px;
}
.cbtFaq_q {
	gap: 10px;
}
.cbtFaq_qMark {
	font-size: 20px;
}
.cbtFaq_qText {
	font-size: 16px;
}
.cbtFaq_a {
	margin-top: 12px;
	font-size: 14px;
}

/* 固定メディアの窓(帯) */
.cbtBand {
	height: 250px;
}

/* Tour Line Up CTA */
.cbtCta {
	padding: 93px 0;
}
.cbtCta_cards {
	flex-direction: column;
	gap: 24px;
	margin-top: 43px;
}
.cbtCta_card {
	width: 100%;
}
.cbtCta_cardPhoto {
	width: 100%;
	height: auto;
	aspect-ratio: 350 / 233;
}
.cbtCta_card .cbtRating {
	margin-top: 15px;
}
.cbtCta_cardTitle {
	margin-top: 11px;
}

/* モーダル */
.cbtModal_close {
	top: 16px;
	right: 16px;
	width: 48px;
	height: 48px;
}
.cbtModal_close::before,
.cbtModal_close::after {
	width: 20px;
}
.cbtModal_content-card {
	width: calc(100% - 40px);
	padding: 60px 24px 32px;
}
.cbtModal_title {
	font-size: 20px;
}
.cbtModal_text {
	margin-top: 24px;
	font-size: 14px;
}
.cbtModal_content-reviewAll {
	padding: 60px 20px 24px;
}
.cbtModal_reviewList {
	grid-template-columns: 1fr;
	max-height: calc(80vh - 160px);
	margin-top: 24px;
}
.cbtModal_content-video {
	width: calc(100% - 32px);
}
.cbtModal_content-video .cbtModal_close {
	top: -58px;
	right: 0;
}
.cbtModal_content-gallery .cbtModal_close {
	top: 60px;
	right: 20px;
	width: 34px;
	height: 34px;
}
.cbtModal_content-gallery .cbtModal_close::before,
.cbtModal_content-gallery .cbtModal_close::after {
	width: 15px;
	height: 2px;
}
.cbtGallery {
	grid-template-columns: repeat(2, 1fr);
	gap: 20px 14px;
	padding: 80px 20px 40px;
}
.cbtGalleryZoom .cbtGalleryZoom_img {
	max-width: calc(100% - 40px);
	max-height: calc(100% - 120px);
}
/* 送りボタン: 拡大写真(3:2)の左右下角付近に重ねる */
.cbtGalleryZoom_nav {
	width: 34px;
	height: 34px;
}
.cbtGalleryZoom_nav::before {
	width: 9px;
	height: 9px;
}
.cbtGalleryZoom_nav-prev {
	left: 8px;
}
.cbtGalleryZoom_nav-next {
	right: 8px;
}
/* 拡大写真(3:2)の右上角に重ねる */
.cbtModal .cbtGalleryZoom_close {
	top: calc(50% - (100vw - 40px) / 3 + 10px);
	right: 30px;
	width: 34px;
	height: 34px;
}
.cbtModal .cbtGalleryZoom_close::before,
.cbtModal .cbtGalleryZoom_close::after {
	width: 15px;
	height: 2px;
}

}
