@charset "UTF-8";

/* ============================================================
   目次
   ============================================================
   1. リセット
   2. ユーティリティ
   3. レイアウト共通（.inner / .content / .content-title）
   4. FV（ファーストビュー）
   5. セクション背景
   6. 01 イントロダクション
   7. 02 キャンペーン
   8. 03 商品紹介（セクション共通 / ボタン / 美味しさの理由）
   9. 04 機能性
  10. 05 オススメコンテンツ（ガイドカード / FSMバナー）
  11. レシピ（タブ）
  12. プロフィール（カード含む）
  13. サイドナビ
  14. スクロールアニメーション
  15. タブレット（768–1024px）
  16. SP（〜767px）
   ============================================================ */

@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap");


/* ==========================================================
   1. リセット
   ========================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-size: 16px;
	scroll-behavior: smooth;
	overflow-x: clip;
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body {
	margin: 0;
	padding: 0;
	font-family: 'Noto Sans JP', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro',
		'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', Osaka, Tahoma, Verdana,
		Arial, sans-serif;
	line-height: 1.5;
	color: #000000;
	overflow-x: clip;
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: inherit;
	font-weight: inherit;
}

ul,
ol,
li {
	list-style: none;
}

a {
	text-decoration: none;
	color: inherit;
	transition: all .2s ease-out;
}

a:focus {
	outline: none !important;
}

a:hover {
	text-decoration: none;
}

img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

button,
input,
select,
textarea {
	font: inherit;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}

button {
	cursor: pointer;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

iframe {
	border: none;
	max-width: 100%;
	width: 100%;
}

/* プロジェクト仕様：主要要素を font-weight: 700 に統一 */
h2,
h3,
h4,
h5,
h6,
div,
p,
ul,
ol,
li,
dl,
dt,
dd,
img,
nav,
figure {
	margin: 0;
	padding: 0;
	font-weight: 700;
}

td,
th,
input,
textarea {
	color: #000000;
	font-family: 'Noto Sans JP', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro',
		'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', Osaka, Tahoma, Verdana,
		Arial, sans-serif;
	font-size: 1.6rem;
	line-height: 1.5;
}


/* ==========================================================
   2. ユーティリティ
   ========================================================== */
@media (min-width: 768px) {
	.pc-none {
		display: none;
	}
}

@media (max-width: 767px) {
	.sp-none {
		display: none;
	}
}


/* ==========================================================
   3. レイアウト共通
   ========================================================== */
.page_wrapper {
	background: #171717;
}

.content {
	width: 100%;
	overflow-x: clip;
}

.content img {
	max-width: 100%;
	text-align: center;
	margin: 0 auto;
}

.content * {
	box-sizing: border-box;
	letter-spacing: .1em;
}

.inner, .inner-campaign {
	margin-right: auto;
	margin-left: auto;
	width: 100%;
	max-width: 1220px;
	padding: 0 30px;
	position: relative;
	overflow-x: clip;
}

.content-title {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0 20px 0;
	width: 100%;
	max-width: 800px;
	overflow-x: clip;
	margin: 0 auto 20px;
}

.content-title.comming-soon {
	margin-top: -90px;
}

.content-image-bnr {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 auto;
	padding: 0;
	width: 100%;
	overflow-x: clip;
}

/* セクション共通テキスト */
.introduction-text,
.introduction-movie-text{
	font-size: 2.0rem;
	color: #fff;
	line-height: 1.6;
	overflow-x: clip;
	max-width: 1260px;
	text-align: center;
	width: 100%;
	margin: 0 auto;
}

.nutrition-text {
	font-size: 1.6rem;
	color: #fff;
	line-height: 1.6;
	overflow-x: clip;
	max-width: 1260px;
	text-align: center;
	width: 100%;
	margin: 0 auto;
}

.banakatsu-01 * {
	letter-spacing: 4px;
}


/* ==========================================================
   4. FV（ファーストビュー）
   ========================================================== */
.fv {
	position: relative;
	z-index: 1;
	text-align: center;
}

.fv img {
	width: 100%;
}

.lp-kv__title {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	font-size: clamp(36px, 5vw, 85px);
	font-weight: 700;
	color: #fff;
	margin: 0;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}


/* ==========================================================
   5. セクション背景
   ========================================================== */
.banana-content-01 {
	width: 100%;
	max-width: 100%;
	margin-top: -1px;
	background-color: #F00012;
	background-image:
		url("../images/intro_04.webp"),
		linear-gradient(0deg, #A6010D 0%, #F00012 100%);
	background-repeat: no-repeat, no-repeat;
	background-position: center -180px, center;
	background-size: 100% auto, cover;
	background-blend-mode: hard-light, normal;
	padding: 80px 0 120px;
	overflow-x: clip;
}

.banana-content-02 {
	background: linear-gradient(0deg, #002F78 0%, #0046B4 100%), #003D9D;
	overflow-x: clip;
}

.banana-content-03 {
	background: linear-gradient(0deg, #A6010D 0%, #F00012 100%);
	overflow-x: clip;
}

.banana-content-04 {
	background: linear-gradient(0deg, #002F78 0%, #0046B4 100%), #003D9D;
	overflow-x: clip;
}

.banana-content-05 {
	background: linear-gradient(0deg, #A6010D 0%, #F00012 100%), #AC0000;
	overflow-x: clip;
}

.banana-content-05 .content-title {
	padding: 0 20px;
}


/* ==========================================================
   6. 01 イントロダクション
   ========================================================== */
.introduction {
	width: 100%;
	max-width: 100%;
	padding: 0;
	overflow-x: clip;
}

.introduction-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 20px;
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}

.introduction-movie {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	max-width: 889px;
	width: 100%;
	margin: 80px auto 0;
	overflow: clip;
}

.nutrition-button{
	max-width: 80%!important;
}

.introduction-movie-title {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 41px;
	width: 70%;
	max-width: 800px;
	overflow-x: clip;
}

.introduction-movie-text {
	color: #fff;
	text-align: center;
	line-height: 2;
	margin-top: 24px;
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}

.introduction-movie-video {
	margin-top: 53px;
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}



/* ==========================================================
   7. 02 キャンペーン
   ========================================================== */
.banana-campaign {
	padding: 80px 0 120px;
	overflow: clip;
	position: relative;
}

.campaign-list-1 {
	position: relative;
}


.campaign-list3 {
	margin-top: -60px;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	}

.campaign-list2 picture,
.campaign-list3 picture {
	display: block;
}

.campaign-list2 img,
.campaign-list3 img {
	display: block;
	width: 100%;
	height: auto;
	position: relative;
	z-index: 1;
	padding: 0;
}

.campaign-list3 img {
	margin-top: 0;
}


.campaign-storelist-info-wrapper {
margin:20px auto 80px;
padding: 0 20px;
}


.campaign-storelist-info {
	text-align: center;
	color: #fff;
}

.campaign-storelist-info-inner {
	display: inline-block;
	text-align: left;
}

.campaign-storelist-title {
	font-weight: bold;
	color: #fff;
	margin-top: 0;
	font-size: clamp(20px, 2.4vw, 32px);
}

.campaign-storelist-info-text {
	font-size: clamp(15px, 1.8vw, 24px);
	color: #fff;
	margin-top: 10px;
}

.campaign-storelist-info-note {
	margin-top: 15px;
}




.campaign-storelist {
	width: 100%;
	max-width: 900px;
	margin: clamp(8px, 1.8vw, 16px) auto 0;
	position: relative;
	z-index: 2;
}

.campaign-storelist .store-table-area {
	width: 100%;
	margin: 0 auto;
}

.campaign-storelist-note {
	width: 100%;
    max-width: 850px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.campaign-storelist-note-inner {
	display: inline-block;
	text-align: left;
}

.campaign-storelist-note-text {
	text-align: left;
	font-size: 14px;
	color: #fff;
}


.campaign-list3 {
	transform: translateY(0);
}

.req-banner-area {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 20px;
	max-width: 900px;
	width: 100%;
	margin: 20px auto 0;
}


/* ==========================================================
   8. 03 商品紹介
   ========================================================== */
.banana-products {
	padding: 80px 0 120px;
	overflow: clip;
}

/* --- セクション共通レイアウト --- */
.gokusen-section,
.sweet-section,
.banakatsu-section {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 40px;
}

.sweet-section {
	flex-direction: row-reverse;
}

/* テキストエリア */
.gokusen-text-area,
.sweet-text-area,
.banakatsu-text-area {
	flex: 0 0 35%;
	color: #fff;
}

/* ラベル */
.gokusen-label,
.sweet-label,
.banakatsu-label {
	font-size: 3rem;
	letter-spacing: .1em;
	margin-bottom: 16px;
	border-bottom: 2px solid #fff;
	padding-bottom: 8px;
}

/* キャッチコピー */
.gokusen-copy,
.sweet-copy,
.banakatsu-copy {
	font-size: 1.6rem;
}

.gokusen-copy-main {
	font-size: 3.2rem;
	line-height: 1.4;
	margin-bottom: 16px;
}

.gokusen-copy-sub {
	font-size: 1.4rem;
	line-height: 2;
	margin-bottom: 24px;
}

/* 商品画像 */
.gokusen-product img,
.sweet-product img,
.banakatsu-product img {
	max-width: 470px;
	margin: 0 auto 0 0;
}

/* バナーエリア */
.gokusen-bnr-area,
.sweet-bnr-area,
.banakatsu-bnr-area {
	flex: 1;
	min-width: 0;
}

.gokusen-bnr-area img,
.sweet-bnr-area img,
.banakatsu-bnr-area img {
	display: block;
	max-width: 100%;
	width: 100%;
	height: auto;
}

/* 画面端ブリード（1025px以上） */
@media (min-width: 1025px) {
	.banana-products .inner {
		overflow: visible;
	}

	.gokusen-section,
	.sweet-section,
	.banakatsu-section {
		--edge-bleed: max(0px, calc(50vw - 50%));
	}

	.gokusen-section .gokusen-bnr-area,
	.banakatsu-section .banakatsu-bnr-area {
		flex: 1 0 0%;
		max-width: none;
		margin-right: calc(var(--edge-bleed) * -1);
	}


	.gokusen-section .gokusen-bnr-area img,
	.banakatsu-section .banakatsu-bnr-area img {
		width: 80%;
		margin-left: auto; 
		margin-right: 0;
	}

	.sweet-section .sweet-bnr-area img {
		width: 80%;
		margin-left: 0; 
		margin-right: auto;
	}

	.sweet-section .sweet-bnr-area {
		flex: 1 0 0%;
		max-width: none;
		margin-left: calc(var(--edge-bleed) * -1);
	}
}

/* --- ボタン共通 --- */
.gokusen-button,
.product-info-button,
.product-site-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 24px;
	min-width: 230px;
	border-radius: 3px;
	background: #fff;
	color: #F00012;
	font-size: 2.4rem;
	font-weight: 700;
	letter-spacing: .08em;
	white-space: nowrap;
}

.gokusen-button:hover,
.product-info-button:hover,
.product-site-button:hover {
	transform: translateY(3px);
	box-shadow: 0 2px 0 rgba(0, 0, 0, .2);
}

/* ボタン行 */
.gokusen-section-buttons,
.sweet-section-buttons,
.banakatsu-section-buttons {
	display: flex;
	justify-content: center;
	gap: 48px;
	margin: 44px auto 223px;
}



@media (min-width: 1025px) and (max-width: 1620px) {
	.gokusen-section-buttons,
	.sweet-section-buttons {
		margin-top: -50px;
	}
}


@media (min-width: 1025px) and (max-width: 1620px) {

	.banakatsu-section-buttons {
		margin-top: -20px;
	}
}


/* --- 美味しさの理由 --- */
.reason-section {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	align-items: start;
	padding: 0 0 100px;
}

.reason-section .banakatsu-bnr-area {
	grid-row: 1 / 3;
	grid-column: 1;
}

.reason-section .banakatsu-bnr-area img {
	display: block;
	height: 100%;
	width: auto;
	object-fit: cover;
}

.reason-text-area {
	flex: 1;
	color: #fff;
	display: flex;
	flex-direction: column;
}

.reason-label {
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: 12px;
	letter-spacing: .05em;
}

.reason-copy {
	font-size: 1.4rem;
	line-height: 1.8;
	font-weight: 400;
}

.reason-image-area {
	flex: 0 0 200px;
	width: 200px;
	border-radius:8px;
}

.reason-image-area img {
	border-radius:8px;
}


.reason-inner {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.reason-title-area {
	width: 100%;
}

.reason-title-area img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: contain;
}

.reason-section-contents {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 40px;
}



/* ==========================================================
   9. 04 機能性
   ========================================================== */
.banana-nutrition {
	padding: 80px 0 120px;
	overflow: clip;
}

.nutrition-section {
	display: flex;
	align-items: center;
	gap: 40px;
	margin: 20px 0;
}

.nutrition-section_reverse {
	display: flex;
	flex-direction: row-reverse;
	gap: 40px;
	margin: 20px 0;
	align-items: center;
}

.nutrition-image-title {
	flex: 55;
}

.nutrition-image-area {
	flex: 45;
}

.nutrition-image-title img,
.nutrition-image-area img {
	width: 100%;
	height: auto;
}

.content-title.nutrition {
	margin-top: 100px;
}

.nutrition-copy {
	font-size: 1.6rem;
	color: #fff;
	line-height: 1.7;
	margin: 40px 0 20px;
}

.nutrition-copy_small {
	font-size: 1.5rem;
	color: #d9d9d9;
	line-height: 1.7;
	margin: 40px 0 20px;
}

.nutrition-copy span {
	color: #fff33f;
}


/* ==========================================================
  10. 05 オススメコンテンツ
   ========================================================== */
.banana-guide {
	width: 100%;
	max-width: 100%;
	padding: 0 0 80px;
	overflow-x: clip;
}

.banana-guide_list,
.banana-guide_list_nutrition {
	display: flex;
	flex-wrap: wrap;
	gap: 24px 20px;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: 100%;
}

.banana-guide_card {
	width: 100%;
	max-width: 375px;
}

.banana-guide_card a {
	display: block;
	color: #fff;
	text-decoration: none;
}

.banana-guide_img {
	margin: 0 0 16px;
	overflow: hidden;
	aspect-ratio: 375 / 254;
}

.banana-guide_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius:8px;
}

.banana-guide_title {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.4;
	margin: 0 0 8px;
	letter-spacing: .05em;
}

.banana-guide_text {
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.6;
	margin: 0;
	letter-spacing: .03em;
	opacity: .95;
}

/* ガイドカード PC */
@media (min-width: 768px) {
	.banana-guide_list {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 40px 24px;
		margin: -230px auto 20px;
	}

	.banana-guide_list_nutrition {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 40px 24px;
		margin: 20px auto 20px;
	}

	.banana-guide_card {
		max-width: none;
	}

	.banana-guide_title {
		font-size: 2.0rem;
		margin-bottom: 10px;
	}

	.banana-guide_text {
		font-size: 1.8rem;
	}
}

/* FSMバナー */
.fsm-bnr {
	max-width: 600px;
	width: 100%;
	margin: 10px auto 0;
}

.fsm-bnr-area {
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* --- ホバー共通 --- */
@media (hover: hover) and (pointer: fine) {

	.req-banner-area .req-banner,
	.fsm-bnr,
	.recipe-buttons .product-info-button {
		transition: transform .25s ease;
	}

	.req-banner-area .req-banner:hover,
	.fsm-bnr:hover {
		transform: scale(1.03);
	}

	.recipe-buttons .product-info-button:hover {
		transform: scale(1.05);
	}

	.banana-guide_card a:hover .banana-guide_img img {
		transform: scale(1.03);
	}

	.banana-guide_img img {
		transition: transform .3s ease;
	}
}


/* ==========================================================
  11. レシピ（タブ）
   ========================================================== */
.recipe_banana {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding: 80px 0 100px;
	overflow-x: clip;
}

.recipe_bana_title {
	padding-bottom: 20px;
	display: block;
}

.recipe_bana_title img {
	width: 90%;
	display: block;
	margin: 30px auto 0;
}

.recipe_bana_title-text {
	font-size: 2.4rem;
	font-weight: bold;
	letter-spacing: 1px;
	line-height: 1.8;
	padding: 0 10px 30px;
	color: #ffffff;
	margin: clamp(-420px, calc(40px - 42vw), -130px) auto 20px;
}

.recipe_post_title-text {
	color: #333;
}

.tab-menu {
	display: flex;
	list-style: none;
	padding: 0;
	justify-content: space-between;
}

.tab-menu li {
	padding: 10px 0;
	cursor: pointer;
	margin-right: 5px;
	margin-bottom: 15px;
	border: 5px solid #FBDC46;
	border-bottom: none;
	width: calc(50% - 6px);
	color: #fff;
	text-align: center;
	font-size: 1.5rem;
}

.tab-menu li.active {
	background: #FBDC46;
	font-weight: bold;
	border: 5px solid #FBDC46;
	border-bottom: none;
	margin: 0;
	color: #333;
}

.tab-content {
	border: 5px solid #FBDC46;
	padding: 10px;
	background: #fff;
}

.recipe_banana .tab-content ul {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
}

.recipe_banana .tab-content ul li {
	width: calc(50% - 15px);
	box-sizing: border-box;
	margin: 5px;
}

.recipe_banana .tab-content ul li p {
	font-size: 1.5rem;
	letter-spacing: normal;
	font-weight: 600;
	line-height: 1.4;
	margin-top: 8px;
	color: #333;
}

.recipe_banana .tab-content img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.recipe_tab_box {
	width: 100%;
}

.recipe-buttons {
	width: 100%;
	max-width: 100%;
	min-width: auto;
	margin: 60px auto;
	display: flex;
	justify-content: center;
	align-items: center;
}

/* レシピ PC */
@media (min-width: 768px) {
	.recipe_bana_title img {
		width: 800px;
		max-width: 100%;
		margin: 0 auto;
	}

	.recipe_bana_title-text {
		font-size: 2rem;
		width: 100%;
		padding: 0 0 30px;
		text-align: center;
	}

	.recipe_banana .tab-content {
		border: 8px solid #FBDC46;
		padding: 3em;
	}

	.recipe_banana .tab-content ul {
		gap: 30px;
	}

	.recipe_banana .tab-content ul li {
		width: calc(50% - 36px);
	}

	.recipe_banana .tab-content ul li p {
		font-size: 2rem;
	}

	.tab-menu li {
		font-size: 2.6rem;
		border: 8px solid #FBDC46;
		border-bottom: none;
		width: calc(50% - 10px);
	}

	.tab-menu li.active {
		border: 8px solid #FBDC46;
		border-bottom: none;
	}
}

/* レシピ ホバー */
@media (hover: hover) and (pointer: fine) {
	.recipe_banana figure {
		overflow: hidden;
	}

	.recipe_banana figure img {
		transition: .4s;
	}

	.recipe_banana a:hover figure img {
		transform: scale(1.1);
	}
}


/* ==========================================================
  12. プロフィール
   ========================================================== */
.profile {
	position: relative;
	width: 100%;
	margin: 0 auto;
	padding: 80px 0 100px;
	background: #171717;
	overflow-x: clip;
}

.profile-visual {
	position: relative;
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	overflow: clip;
}

.profile-visual_bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.profile-visual_bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.4;
}

.profile-visual_inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}

.profile-visual_heading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-bottom: 40px;
	color: #fff;
	font-size: 5rem;
	font-weight: 400;
	letter-spacing: .1em;
}

.profile-visual_icon {
	width: 71px;
	height: auto;
	object-fit: contain;
}

.profile-visual_heading-text {
	font-family: 'Noto Sans JP', sans-serif;
}

.profile-visual_main {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 40px;
	margin: 0 auto 80px;
	max-width: 1080px;
	width: 100%;
}

.profile-visual_video {
	flex: 1 1 auto;
	min-width: 0;
}

.profile-visual_video iframe {
	display: block;
	width: 100%;
	max-width: 780px;
	aspect-ratio: 780 / 439;
	height: auto;
}

.profile-visual_song {
	flex: 0 0 280px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding-left: 0;
	color: #fff;
	text-align: left;
}

.profile-visual_song img {
	display: block;
	width: 100%;
	max-width: 260px;
	height: auto;
	margin: 0;
}

.profile-visual_song--after-cards {
	flex: none;
	display: block;
	padding-left: 0;
	padding-top: 0;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	max-width: 1080px;
	text-align: center;
}

.profile-visual_song--after-cards img {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	height: auto;
}

.profile-visual_song-label {
	font-size: 2.4rem;
	font-weight: 400;
	margin-bottom: 8px;
	letter-spacing: .1em;
}

.profile-visual_song_title {
	font-size: 5.2rem;
	font-weight: 800;
	line-height: 1.1;
	font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	color: transparent;
	-webkit-text-stroke: 1.5px #ffffff;
}

.profile-visual_song_artist {
	font-size: 3.4rem;
	font-weight: 800;
	line-height: 1.1;
	font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

/* --- プロフィールカード --- */
.profile-visual_cards {
	display: flex;
	justify-content: center;
	gap: 60px;
	max-width: 1080px;
	width: 100%;
	margin: 0 auto 80px;
}

.profile-visual_card {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	flex: 1 1 0;
	max-width: 520px;
	min-width: 0;
	text-align: left;
}

.profile-visual_card_img {
	flex: 0 0 180px;
	width: 180px;
	height: 180px;
	margin: 0;
	overflow: hidden;
	aspect-ratio: 1;
}

.profile-visual_card_img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.profile-visual_card_body {
	flex: 1 1 auto;
	min-width: 0;
	color: #fff;
}

.profile-visual_card_name_container {
	display: flex;
	align-items: baseline;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 16px;
}

.profile-visual_card_name {
	font-size: 2rem;
	line-height: 1.2;
	font-weight: 700;
	margin: 0;
	letter-spacing: .1em;
}

.profile-visual_card_romaji {
	font-size: 1rem;
	line-height: 1.2;
	font-weight: 700;
	margin: 0;
	letter-spacing: .1em;
	opacity: .9;
}

.profile-visual_card_desc {
	font-size: 1rem;
	line-height: 1.8;
	font-weight: 400;
	letter-spacing: .05em;
	text-align: left;
	margin: 0;
}


/* ==========================================================
  13. サイドナビ
   ========================================================== */
body .lp-sidenav {
	position: fixed;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	z-index: 100;
	padding: 0;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 4px;
}

body .lp-sidenav.is-visible {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

.lp-sidenav__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	width: 46px;
	min-height: 170px;
	padding: 14px 10px;
	border-radius: 8px 0 0 8px;
	background: #FFE033;
	color: #333;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .2);
}

.lp-sidenav__toggle::after {
	content: "◀";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	margin: 12px 0 0;
	color: #E50012;
	line-height: 1;
}

.lp-sidenav__panel {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 4px;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	transform: translateX(8px);
	transition: max-height 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.lp-sidenav.is-open .lp-sidenav__panel {
	max-height: 420px;
	opacity: 1;
	pointer-events: auto;
	transform: translateX(0);
}

.lp-sidenav.is-open .lp-sidenav__toggle::after {
	content: "×";
	font-size: 20px;
	margin: 0;
	width: 100%;
	height: 100%;
}

.lp-sidenav.is-open .lp-sidenav__toggle {
	writing-mode: horizontal-tb;
	text-orientation: mixed;
	width: 28px;
	min-width: 28px;
	min-height: 28px;
	height: 28px;
	padding: 0;
	border-radius: 50%;
	background: #fff;
	border: 1px solid #E50012;
	box-shadow: none;
}

.lp-sidenav.is-open .lp-sidenav__toggle-text {
	display: none;
}

.lp-sidenav__item {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	position: relative;
	box-sizing: border-box;
	width: 170px;
	padding: 10px 28px 10px 14px;
	color: #333;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	background: #fff;
	border-radius: 6px 0 0 6px;
	transition: background 0.2s ease, padding 0.2s ease;
}

.lp-sidenav__item::after {
	content: "▼";
	font-size: 8px;
	color: #E50012;
	flex-shrink: 0;
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
}

@media (max-width: 767px) {
	.lp-sidenav__item::after {
		content: "▶";
	}
}

@media (hover: hover) and (pointer: fine) {

	.lp-sidenav__item:hover,
	.lp-sidenav__item:focus-visible {
		background: #FFF0B0;
	}
}

.lp-sidenav__item.is-current {
	background: #FFE033;
	/* width: 230px; */
}

.lp-sidenav__text {
	display: block;
	position: relative;
	z-index: 3;
}


/* ==========================================================
  14. スクロールアニメーション
   ========================================================== */
@keyframes fadeUp {
	from {
		opacity: 0;
		transform: translateY(40px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeLeft {
	from {
		opacity: 0;
		transform: translateX(-60px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes fadeRight {
	from {
		opacity: 0;
		transform: translateX(60px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes scaleIn {
	from {
		opacity: 0;
		transform: scale(.92);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes popIn {
	0% {
		opacity: 0;
		transform: scale(.88);
	}

	70% {
		opacity: 1;
		transform: scale(1.02);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes popInBig {
	0% {
		opacity: 0;
		transform: scale(.6) rotate(-2deg);
	}

	55% {
		opacity: 1;
		transform: scale(1.03) rotate(.5deg);
	}

	80% {
		transform: scale(.98) rotate(0deg);
	}

	100% {
		opacity: 1;
		transform: scale(1) rotate(0deg);
	}
}

[data-anim] {
	opacity: 0;
}

[data-anim].is-visible {
	animation-duration: .7s;
	animation-timing-function: cubic-bezier(.22, 1, .36, 1);
	animation-fill-mode: both;
}

[data-anim="fade-up"].is-visible {
	animation-name: fadeUp;
}

[data-anim="fade-left"].is-visible {
	animation-name: fadeLeft;
}

[data-anim="fade-right"].is-visible {
	animation-name: fadeRight;
}

[data-anim="scale-in"].is-visible {
	animation-name: scaleIn;
}

[data-anim="pop-in"].is-visible {
	animation-name: popIn;
	animation-duration: .5s;
	animation-timing-function: cubic-bezier(.22, 1, .36, 1);
}

[data-anim="pop-in-big"].is-visible {
	animation-name: popInBig;
	animation-duration: .8s;
	animation-timing-function: cubic-bezier(.34, 1.56, .64, 1);
}

[data-anim-delay="1"] {
	animation-delay: .1s;
}

[data-anim-delay="2"] {
	animation-delay: .2s;
}

[data-anim-delay="3"] {
	animation-delay: .3s;
}

[data-anim-delay="4"] {
	animation-delay: .4s;
}

@media (prefers-reduced-motion: reduce) {
	[data-anim] {
		opacity: 1 !important;
		animation: none !important;
	}
}


/* ==========================================================
  15. タブレット（768px – 1024px）
   ========================================================== */
@media (min-width: 768px) and (max-width: 1024px) {

	/* 共通 */
	.inner {
		max-width: 100%;
		padding: 0 30px;
	}

	.introduction-text,
	.introduction-movie-text,
	.nutrition-text {
		font-size: 1.8rem;
	}

	/* 01 イントロダクション */
	.banana-content-01 {
		padding: 60px 0 80px;
	}

	.introduction-movie {
		margin: 60px auto 0;
	}

	.introduction-movie-title {
		max-width: 100%;
		gap: 30px;
	}

	.introduction-movie-text {
		font-size: 1.6rem;
	}

	/* 02 キャンペーン */
	.banana-campaign {
		padding: 60px 0 100px;
	}

	.campaign-list3 img {
		margin-top: 40px;
	}

	.campaign-storelist .pro_store_teble .wrap {
		width: 100%;
		margin: 10px auto;
	}

	.campaign-storelist-title {
		font-size: clamp(20px, 3.5vw, 28px);
		margin-top: 0;
	}

	.campaign-storelist-info-text {
		font-size: clamp(14px, 2.2vw, 20px);
		margin-top: 8px;
	}

	.campaign-storelist-info-note {
		margin-top: 14px;
	}


	/* 03 商品紹介 */
	.banana-products {
		padding: 60px 0 100px;
	}

	.gokusen-section,
	.sweet-section,
	.banakatsu-section {
		gap: 24px;
	}

	.gokusen-text-area,
	.sweet-text-area,
	.banakatsu-text-area {
		flex: 0 0 40%;
	}

	.gokusen-copy,
	.sweet-copy,
	.banakatsu-copy {
		font-size: 1.6rem;
	}

	.gokusen-section-buttons,
	.sweet-section-buttons,
	.banakatsu-section-buttons {
		margin: -80px auto 80px;
	}

	.gokusen-button,
	.product-info-button,
	.product-site-button {
		min-width: 230px;
		font-size: 2.2rem;
		padding: 8px 16px;
	}

	.reason-section {
		padding: 0 0 60px;
	}

	.reason-section-contents {
		gap: 24px;
	}

	.reason-label {
		font-size: 1.6rem;
	}

	.reason-copy {
		font-size: 1.4rem;
	}

	.reason-image-area {
		flex: 0 0 180px;
		width: 180px;
	}

	/* 04 機能性 */
	.banana-nutrition {
		padding: 60px 0 100px;
	}

	.nutrition-section,
	.nutrition-section_reverse {
		gap: 24px;
		margin: 80px 0;
	}

	.content-title.nutrition {
		margin-top: 60px;
	}

	/* ガイドカード */
	.banana-guide_list,
	.banana-guide_list_nutrition {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px 20px;
	}

	.banana-guide_list {
		margin: -240px auto 20px;
	}

	.banana-guide_title {
		font-size: 1.6rem;
	}

	.banana-guide_text {
		font-size: 1.4rem;
	}

	/* FSMバナー */
	.fsm-bnr {
		max-width: 400px;
	}

	/* レシピ */
	.recipe_banana {
		padding: 60px 0 80px;
	}

	.recipe_bana_title-text {
		font-size: 1.6rem;
		margin-top: -330px;
	}

	.tab-menu li {
		font-size: 2rem;
	}

	.recipe_banana .tab-content ul li p {
		font-size: 1.6rem;
	}

	/* プロフィール */
	.profile {
		padding: 60px 0 80px;
	}

	.profile .inner {
		padding: 0 30px;
	}

	.profile-visual_main {
		gap: 24px;
		padding: 0 30px;
	}

	.profile-visual_song {
		flex: 0 0 220px;
	}

	.profile-visual_cards {
		padding: 0 30px;
		gap: 24px;
	}

	.profile-visual_card {
		gap: 16px;
	}

	.profile-visual_card_img {
		flex: 0 0 150px;
		width: 150px;
		height: 150px;
	}

	.profile-visual_card_name {
		font-size: 2rem;
	}

	.profile-visual_card_desc {
		font-size: 1rem;
	}
}


/* ==========================================================
  16. SP（〜767px）
   ========================================================== */
@media (max-width: 767px) {

	/* 共通 */
	.content {
		overflow-x: clip;
	}

	.content img {
		max-width: 100%;
	}

	.inner {
		padding: 0 30px;
		position: relative;
		overflow-x: clip;
	}

	.inner-campaign {
		padding: 0 10px;
		overflow-x: clip;
	}

	.banakatsu-01 {
		overflow: clip;
	}

	.content-title {
		margin: 0 auto 20px;
		padding: 0 10px;
		max-width: 520px;
	}

	.content-title img {
		width: 100%;
		height: auto;
		object-fit: contain;
	}

	.introduction-text,
	.introduction-movie-text,
	.nutrition-text {
		font-size: clamp(1.6rem, calc(1.6rem + 0.8 * (100vw - 375px) / 375), 2.0rem);
		text-align: center;
		color: #fff;
		line-height: 1.8;
		padding: 0;
	}

	.introduction-text{
		/* max-width: 290px; */
		font-size: 1.8rem;
	}

	/* 01 イントロダクション */
	.banana-content-01 {
		background-image:
			url("../images/intro_04_sp.webp"),
			linear-gradient(0deg, #A6010D 0%, #F00012 100%);
		background-position: center top, center;
		padding: 120px 0 60px;
		overflow-x: visible;
	}

	.introduction-wrapper {
		overflow: visible;
	}

	.introduction {
		overflow: visible;
	}

	.introduction-inner {
		gap: 16px;
		overflow: visible;
	}

	.introduction-inner > picture,
	.introduction-inner > a {
		overflow: visible;
	}

	.introduction-movie {
		margin: 40px auto 0;
	}

	.introduction-movie-title {
		gap: 20px;
		max-width: 100%;
	}

	.introduction-movie-video {
		margin-top: 30px;
	}

	.introduction-movie-video iframe {
		aspect-ratio: 16 / 9;
		height: auto;
	}

	/* 02 キャンペーン */

	.inner-campaign {
		padding: 0 10px;
	}

	.banana-campaign {
		padding: 60px 0 80px;
	}


	.campaign-storelist {
		max-width: 100%;
		padding: 0;
	}

	.campaign-list3-overlay {
		position: absolute;
		left: 50%;
		top: auto;
		bottom: 24px;
		transform: translateX(-50%);
		width: min(calc(100% - 20px), 420px);
		max-width: 420px;
		margin: 0 auto;
	}

	.campaign-storelist-title {
		font-size: clamp(18px, 5.2vw, 24px);
		line-height: 1.6;
		margin-top: 0;
	}

	.campaign-storelist-info-text {
		font-size: clamp(13px, 3.8vw, 18px);
		line-height: 1.6;
		margin-top: 8px;
	}

	.campaign-storelist-info-note {
		margin-top: 12px;
	}

	.campaign-storelist .pro_store_teble .wrap {
		width: 100%;
		margin: 10px auto;
	}


	.campaign-area {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.req-banner-area {
		padding: 0 30px;
		margin-top: 40px;
	}


	.campaign-list3 img {
		margin-top: 40px;
	}

	/* 03 商品紹介 */
	.banana-content-03 {
		overflow: visible;
	}

	.banana-products {
		padding: 60px 0 80px;
		overflow: visible;
	}

	.gokusen-section,
	.sweet-section,
	.banakatsu-section {
		flex-direction: column-reverse;
		align-items: stretch;
		gap: 16px;
		overflow: visible;
	}

	.gokusen-text-area,
	.sweet-text-area,
	.banakatsu-text-area {
		flex: none;
		width: 100%;
		text-align: left;
		margin: 30px 0;
		display: flex;
		flex-wrap: nowrap;
		align-items: flex-start;
		gap: 8px;
		letter-spacing: 0;
		box-sizing: border-box;
		overflow: visible;
	}

	.gokusen-text-area .text-area,
	.sweet-text-area .text-area,
	.banakatsu-text-area .text-area {
		flex: 1 1 0%;
		min-width: 0;
	}

	.gokusen-product,
	.sweet-product,
	.banakatsu-product {
		flex: 1 0 4%;
		min-width: 0;
		overflow: visible;
	}

	.gokusen-label,
	.sweet-label,
	.banakatsu-label {
		font-size: clamp(1.8rem, calc(1.8rem + 0.35 * (100vw - 300px) / 450), 2.15rem);
		line-height: 1.2;
		margin-bottom: 6px;
		padding-bottom: 4px;
		letter-spacing: .02em;
		overflow-wrap: break-word;
		word-break: break-word;
	}

	.content-title.product-introduction {
		padding: 0 10px;
		margin: 20px auto;
		width: 60%;
	}

	.content-title.comming-soon {
		padding: 0 10px;
		margin-top: -40px;
	}

	.gokusen-copy,
	.sweet-copy,
	.banakatsu-copy {
		font-size: clamp(1.35rem, calc(1.35rem + 0.4 * (100vw - 300px) / 450), 1.6rem);
		line-height: 1.6;
		letter-spacing: .02em;
		overflow-wrap: break-word;
		word-break: break-word;
	}

	.gokusen-product img,
	.sweet-product img,
	.banakatsu-product img {
		display: block;
		width: 170%;
		max-width: none;
		height: auto;
		margin-left: -40%;
		margin-top: -24px;
	}

	/* SPボタン（極栓 / スイート） */
	.gokusen-section-buttons,
	.sweet-section-buttons {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 8px;
		align-items: stretch;
		margin: -70px auto 72px;
		padding: 0 4px;
	}

	/* SPボタン（バナカツ） */
	.banakatsu-section-buttons {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 8px;
		align-items: stretch;
		width: fit-content;
		max-width: calc(100% - 8px);
		margin: -70px auto 72px;
		padding: 0;
	}

	.gokusen-section-buttons .product-info-button,
	.gokusen-section-buttons .product-site-button,
	.sweet-section-buttons .product-info-button,
	.sweet-section-buttons .product-site-button,
	.gokusen-button {
		flex: 1 1 calc(50% - 4px);
		min-width: 0;
		max-width: none;
		padding: 10px 12px;
		font-size: clamp(1rem, calc(0.95rem + 0.35vw), 1.35rem);
		line-height: 1.35;
		text-align: center;
		white-space: normal;
		word-break: break-word;
		overflow-wrap: break-word;
	}

	.banakatsu-section-buttons .product-info-button,
	.banakatsu-section-buttons .product-site-button {
		flex: 0 1 auto;
		max-width: 240px;
		padding: 10px 12px;
		font-size: clamp(1rem, calc(0.95rem + 0.35vw), 1.35rem);
		line-height: 1.35;
		text-align: center;
		white-space: normal;
		word-break: break-word;
		overflow-wrap: break-word;
	}

	.recipe-buttons .product-info-button {
		max-width: 100%;
		min-width: 0;
		font-size: clamp(1.1rem, calc(1.05rem + 0.5vw), 1.8rem);
		padding: 10px 14px;
		white-space: normal;
		text-align: center;
		word-break: break-word;
		overflow-wrap: break-word;
	}

	/* 美味しさの理由 */
	.reason-section {
		margin: 60px auto;
		display: flex;
		flex-direction: column-reverse;
		align-items: center;
		padding: 0;
	}

	.reason-section .banakatsu-bnr-area {
		width: 100%;
		max-width: 180px;
		margin-top: 40px;
	}

	.reason-section .banakatsu-bnr-area img {
		width: 100%;
		height: auto;
	}

	.reason-section-contents {
		grid-column: 1;
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		justify-content: space-between;
		padding: 12px 0;
		gap: 14px;
	}

	.reason-text-area {
		flex: 1 1 auto;
		min-width: 0;
	}

	.reason-image-area {
		flex: 0 0 50%;
        width: 50%;
        max-width: 120px;
	}

	.reason-image-area a {
		display: block;
	}

	.reason-image-area img {
		display: block;
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 4 / 3;
		object-fit: cover;
		border-radius: 8px;
	}

	.reason-label {
		font-size: 1.6rem;
	}

	.reason-copy {
		font-size: 1.4rem;
	}

	/* 04 機能性 */
	.banana-nutrition {
		padding: 60px 0 80px;
	}

	.nutrition-section,
	.nutrition-section_reverse {
		flex-direction: column;
		gap: 20px;
	}

	.nutrition-text {
		font-size: 1.6rem;
		text-align: left;
		padding: 0 10px;
		margin: 30px 0 60px;
	}

	.nutrition-copy {
		font-size: 1.6rem;
		margin: 20px 0 10px;
	}

	.nutrition-copy_small {
		font-size: 1.5rem;
		margin: 20px 0 10px;
	}


	.nutrition-image-area_img {
		width: 100%;
        max-width: 272px;
	}

	.content-title.nutrition {
		margin: 60px 0 20px;
	}

	.banana-guide_list_nutrition {
		gap: 16px 12px;
	}

	.banana-guide_list_nutrition .banana-guide_card {
		width: calc(50% - 6px);
		max-width: none;
	}

	.banana-guide_title {
		font-size: 1.4rem;
	}

	.banana-guide_text {
		font-size: 1.2rem;
	}

	/* 05 オススメコンテンツ */
	.banana-guide {
		padding: 0 0 40px;
	}

	.banana-guide_list {
		gap: 16px 12px;
		padding: 0;
		margin-top: -80px;
	}

	.banana-guide_list .banana-guide_card {
		width: calc(50% - 6px);
		max-width: none;
	}

	/* FSMバナー */
	.fsm-bnr-area {
		padding: 20px 20px 0;
		flex-direction: column;
	}

	.fsm-bnr-info {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	/* レシピ */
	.recipe_banana {
		padding: 0 0 60px;
	}

	.recipe_bana_title-text {
		font-size: 1.4rem;
		line-height: 1.8;
		padding: 0 10px;
	}

	.tab-menu li {
		font-size: 1.5rem;
		padding: 8px 0;
	}

	.recipe_banana .tab-content ul li {
		width: calc(50% - 10px);
		margin: 0;
	}

	.recipe_banana .tab-content ul li p {
		font-size: 1.5rem;
	}

	.recipe_banana .tab-content ul {
		gap: 8px;
	}

	/* プロフィール */

	.content-title.profile {
		max-width: 260px;
	}

	
	.profile {
		padding: 40px 0 40px;
	}

	.profile .inner {
		padding: 0 20px;
	}

	.profile-visual_heading {
		flex-direction: column;
		gap: 8px;
		margin-bottom: 20px;
		font-size: 3.2rem;
	}

	.profile-visual_icon {
		width: 48px;
	}

	.profile-visual_main {
		flex-direction: column-reverse;
		align-items: center;
		margin-bottom: 40px;
		gap: 20px;
	}

	.profile-visual_video {
		width: 100%;
	}

	.profile-visual_song {
		flex: none;
		width: 100%;
		max-width: 240px;
		align-items: center;
		text-align: center;
	}

	.profile-visual_song img {
		margin: 0 auto;
	}

	.profile-visual_song-label {
		font-size: 1.8rem;
	}

	.profile-visual_song_title {
		font-size: 3.6rem;
	}

	.profile-visual_cards {
		gap: 20px;
		margin: 0 auto 40px;
	}

	.profile-visual_card {
		flex-direction: column;
		align-items: center;
		text-align: center;
		max-width: 100%;
	}

	.profile-visual_card_img {
		flex: none;
		width: 60%;
		max-width: 200px;
		height: auto;
	}

	.profile-visual_card_name_container {
		justify-content: center;
		flex-direction: column;
		align-items: center;
		gap: 6px;
		flex-wrap: nowrap;
	}

	.profile-visual_card_name {
		font-size: 1.8rem;
	}

	.profile-visual_card_romaji {
		font-size: 1rem;
		margin-left: 0;
	}

	.profile-visual_card_desc {
		font-size: 1.2rem;
		text-align: left;
	}

	/* サイドナビ SP */
	body .lp-sidenav {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		gap: 6px;
		left: 0;
		right: 0;
		bottom: 12px;
		top: auto;
		transform: none;
		padding: 0 10px;
	}

	.lp-sidenav__toggle {
		display: none;
	}

	.lp-sidenav__toggle::after {
		content: "▶";
		margin-top: 0;
		margin-left: 8px;
	}

	.lp-sidenav__panel {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-auto-flow: row;
		justify-items: stretch;
		align-items: stretch;
		column-gap: 6px;
		row-gap: 6px;
		width: 100%;
		max-height: none;
		opacity: 1;
		overflow: visible;
		pointer-events: auto;
		transform: none;
	}

	.lp-sidenav.is-open .lp-sidenav__panel {
		transform: none;
	}

	.lp-sidenav.is-open .lp-sidenav__toggle::after {
		content: "×";
	}

	.lp-sidenav.is-open .lp-sidenav__toggle {
		width: 28px;
		min-width: 28px;
		min-height: 28px;
		height: 28px;
		padding: 0;
		border-radius: 50%;
		background: transparent;
		box-shadow: none;
	}

	.lp-sidenav__item {
		width: 100%;
		max-width: none;
		white-space: normal;
		line-height: 1.2;
		overflow-wrap: anywhere;
		word-break: break-word;
		padding: 10px 20px 10px 10px;
		font-size: 12px;
		border-radius: 6px;
	}

	.lp-sidenav__item.is-current {
		background: #FFE033;
		width: 100%;
	}
}

/* ============================================================
   17. 全画面ローディング（page-loading）
   ============================================================ */
body.is-page-loading {
	overflow: hidden;
}


html.banakatsu-no-loader #page-loading {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.page-loading {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: linear-gradient(165deg, #f8f6f0 0%, #eef2f8 55%, #e8ecf5 100%);
	transition: opacity 0.45s ease, visibility 0.45s ease;
}

.page-loading.is-done {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.page-loading__inner {
	width: min(360px, 100%);
	text-align: center;
	font-family: 'Zen Maru Gothic', 'Noto Sans JP', sans-serif;
}

.page-loading__mascot-wrap {
	margin: 0 auto 16px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.page-loading__mascot {
	display: block;
	max-width: min(118px, 40vw);
	width: 100%;
	height: auto;
	margin: 0 auto;
	filter: drop-shadow(0 10px 22px rgba(30, 40, 80, 0.14));
}

.page-loading__title {
	font-size: 1.4rem;
	font-weight: 700;
	color: #442e1a;
	margin-bottom: 8px;
}

.page-loading__status {
	font-size: 1.2rem;
	color: #c20909;
	margin-bottom: 20px;
}

.page-loading__track {
	width: 100%;
	height: 10px;
	border-radius: 9999px;
	background: rgba(26, 39, 68, 0.12);
	overflow: hidden;
}

.page-loading__bar-fill {
	width: 0%;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #ff5c5c 0%, #d32f2f 45%, #b71c1c 100%);
	transition: width 0.35s ease-out;
}

@media (prefers-reduced-motion: reduce) {
	.page-loading__bar-fill {
		transition: none;
	}
}

.page-loading__percent {
	margin-top: 10px;
	font-size: 1.2rem;
	font-weight: 600;
	color: #1a2744;
	letter-spacing: 0.04em;
}