@charset "utf-8";
/* =====================================================================
   じゃぱにーずリフトガール  —  Chrome 2026
   ヘッダー / ハンバーガーメニュー / パンくず / サイドバー / フッター

   ・style.css の後に読み込み、上記パーツだけを上書きします。
   ・コンテンツ部分（#mainContent .left など）には一切影響しません。
   ・元に戻す場合は header.php の chrome2026.css / chrome2026.js の
     2行を削除し、header.php / footer.php / sidebar.php を差し戻してください。
   ===================================================================== */

:root{
	/* ブランドカラー（ロゴの 藍 → 紫 → ピンク から抽出） */
	--jlg-pink: #ff0090;
	--jlg-pink-soft: #ff5fb4;
	--jlg-violet: #b43cc8;
	--jlg-indigo: #3b2fa8;
	--jlg-sky: #1a7cea;
	--jlg-grad: linear-gradient(120deg, #3b2fa8 0%, #b43cc8 48%, #ff0090 100%);
	--jlg-grad-wide: linear-gradient(120deg, #3b2fa8 0%, #b43cc8 25%, #ff0090 50%, #b43cc8 75%, #3b2fa8 100%);

	--jlg-ink: #241a33;
	--jlg-muted: #7b6d88;
	--jlg-line: rgba(36, 26, 51, .09);
	--jlg-tint: #fff0f8;
	--jlg-surface: #ffffff;

	--jlg-radius-lg: 24px;
	--jlg-radius: 18px;
	--jlg-radius-sm: 12px;
	--jlg-shadow-sm: 0 1px 2px rgba(36, 26, 51, .05), 0 4px 14px -6px rgba(120, 20, 90, .14);
	--jlg-shadow: 0 2px 6px rgba(36, 26, 51, .04), 0 18px 40px -18px rgba(120, 20, 90, .32);
	--jlg-ease: cubic-bezier(.2, .8, .2, 1);
	--jlg-ease-io: cubic-bezier(.7, 0, .2, 1);

	--jlg-font: "Zen Maru Gothic", "M PLUS Rounded 1c", "游ゴシック体", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif;
	--jlg-font-en: "Kdam Thmor Pro", "Zen Maru Gothic", sans-serif;

	--jlg-bar-h: 34px;
	--jlg-head-h: 78px;
	--jlg-gutter: 16px;
}

/* 和文のプロポーショナル詰め（見出し・UIを引き締める） */
.jlgHeader,
.jlgCrumb,
.jlgDrawer,
.jlgFooter,
#mainContent .jlgSide{
	font-feature-settings: "palt" 1;
}

/* position: sticky を効かせるため（overflow-x:hidden はスクロールコンテナを作ってしまう） */
body{
	overflow-x: clip;
}
html.is-drawer-open{
	overflow: hidden;
}

/* =====================================================================
   HEADER
   ===================================================================== */
.jlgHeader{
	position: sticky;
	top: calc(var(--jlg-bar-h) * -1);   /* トップバーだけ流れて、メインヘッダーは吸着 */
	z-index: 1000;
	width: 100%;
	font-family: var(--jlg-font);
}

/* ---------- トップバー ---------- */
.jlgHeader__bar{
	position: relative;
	height: var(--jlg-bar-h);
	background: var(--jlg-grad-wide);
	background-size: 300% 100%;
	animation: jlgFlow 18s linear infinite;
	color: #fff;
	overflow: hidden;
}
.jlgHeader__barInner{
	width: min(100% - var(--jlg-gutter) * 2, 1280px);
	height: 100%;
	margin-inline: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.jlgHeader__tagline{
	flex: 1;
	min-width: 0;
}
.jlgHeader .jlgHeader__tagline h1,
.jlgHeader .jlgHeader__tagline p{
	margin: 0;
	padding: 0;
	background: none;
	color: #fff;
	font-size: 12px;
	font-weight: 500;
	line-height: var(--jlg-bar-h);
	letter-spacing: .04em;
	text-align: left;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	display: block;
}
.jlgHeader__util{
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
	flex: 0 0 auto;
}
.jlgHeader__util li{
	list-style: none;
	display: flex;
	align-items: center;
}
.jlgHeader__util li + li::before{
	content: "";
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: rgba(255,255,255,.6);
	margin: 0 8px;
}
.jlgHeader__util a{
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	padding: 4px 6px;
	border-radius: 6px;
	opacity: .92;
}
.jlgHeader__util a:hover{
	color: #fff;
	opacity: 1;
	background: rgba(255,255,255,.16);
}

/* ---------- メインヘッダー（グラスモーフィズム） ---------- */
.jlgHeader__main{
	position: relative;
	background: rgba(255, 255, 255, .78);
	-webkit-backdrop-filter: saturate(180%) blur(18px);
	backdrop-filter: saturate(180%) blur(18px);
	border-bottom: 1px solid var(--jlg-line);
	transition: background-color .35s ease, box-shadow .35s ease;
}
.jlgHeader.is-scrolled .jlgHeader__main{
	background: rgba(255, 255, 255, .88);
	box-shadow: 0 10px 30px -16px rgba(80, 20, 70, .28);
}
/* スクロール進捗バー */
.jlgHeader__main::after{
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	height: 2px;
	width: 100%;
	background: var(--jlg-grad);
	transform-origin: left center;
	transform: scaleX(var(--jlg-progress, 0));
	opacity: 0;
	transition: opacity .3s ease;
}
.jlgHeader.is-scrolled .jlgHeader__main::after{
	opacity: 1;
}

.jlgHeader__inner{
	width: min(100% - var(--jlg-gutter) * 2, 1280px);
	height: var(--jlg-head-h);
	margin-inline: auto;
	display: flex;
	align-items: center;
	gap: 24px;
}

/* ロゴ */
.jlgHeader__logo{
	flex: 0 0 auto;
	display: block;
	line-height: 0;
	transition: transform .4s var(--jlg-ease);
}
.jlgHeader__logo img{
	display: block;
	height: 48px;
	width: auto;
	max-width: none;
}
.jlgHeader__logo:hover{
	transform: translateY(-1px) scale(1.015);
}
.jlgHeader a img:hover{
	opacity: 1;
}

/* グローバルナビ（セグメント型ピル） */
.jlgHeader__nav{
	flex: 1;
	display: flex;
	justify-content: center;
	min-width: 0;
}
.jlgHeader__navList{
	display: flex;
	align-items: center;
	gap: 2px;
	margin: 0;
	padding: 4px;
	list-style: none;
	background: rgba(36, 26, 51, .04);
	border: 1px solid var(--jlg-line);
	border-radius: 999px;
}
.jlgHeader__navItem{
	position: relative;
	list-style: none;
}
.jlgHeader__navLink{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	padding: 0 18px;
	border-radius: 999px;
	color: var(--jlg-ink);
	font-size: 14.5px;
	font-weight: 700;
	letter-spacing: .05em;
	white-space: nowrap;
	transition: color .25s ease, background-color .25s ease, box-shadow .25s ease;
}
.jlgHeader__navItem.has-sub > .jlgHeader__navLink::after{
	content: "";
	width: 6px;
	height: 6px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	opacity: .55;
	transition: transform .3s var(--jlg-ease), opacity .3s ease;
}
.jlgHeader__navItem:hover > .jlgHeader__navLink,
.jlgHeader__navItem:focus-within > .jlgHeader__navLink{
	color: var(--jlg-pink);
	background: #fff;
	box-shadow: 0 1px 2px rgba(36,26,51,.06), 0 6px 16px -8px rgba(255, 0, 144, .45);
}
.jlgHeader__navItem.has-sub:hover > .jlgHeader__navLink::after,
.jlgHeader__navItem.has-sub:focus-within > .jlgHeader__navLink::after{
	transform: translateY(1px) rotate(-135deg);
	opacity: 1;
}

/* ドロップダウン（フローティングカード） */
.jlgHeader__sub{
	position: absolute;
	top: calc(100% + 14px);
	left: 50%;
	min-width: 250px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	backdrop-filter: blur(20px) saturate(180%);
	border: 1px solid var(--jlg-line);
	border-radius: 20px;
	box-shadow: 0 2px 6px rgba(36, 26, 51, .05), 0 28px 60px -22px rgba(70, 10, 70, .38);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 10px) scale(.97);
	transform-origin: top center;
	transition: opacity .22s ease, transform .3s var(--jlg-ease), visibility 0s linear .3s;
	z-index: 10;
}
.jlgHeader__sub::before{ /* ホバーが途切れないようにするブリッジ */
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -16px;
	height: 16px;
}
.jlgHeader__navItem:hover > .jlgHeader__sub,
.jlgHeader__navItem:focus-within > .jlgHeader__sub{
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0) scale(1);
	transition-delay: 0s;
}
.jlgHeader__sub li{
	list-style: none;
}
.jlgHeader__sub a{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 14px;
	border-radius: 12px;
	color: var(--jlg-ink);
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
	transition: background-color .2s ease, color .2s ease;
}
.jlgHeader__sub a::after{
	content: "\f061";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 11px;
	color: var(--jlg-pink);
	opacity: 0;
	transform: translateX(-6px);
	transition: opacity .2s ease, transform .3s var(--jlg-ease);
}
.jlgHeader__sub a:hover,
.jlgHeader__sub a:focus-visible{
	background: var(--jlg-tint);
	color: var(--jlg-pink);
}
.jlgHeader__sub a:hover::after,
.jlgHeader__sub a:focus-visible::after{
	opacity: 1;
	transform: none;
}

/* AI写真館カプセル（グラデーションボーダー） */
.jlgHeader__ai{
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 5px 5px 5px 18px;
	border: 1.5px solid transparent;
	border-radius: 999px;
	background:
		linear-gradient(#fff, #fff) padding-box,
		var(--jlg-grad) border-box;
	box-shadow: 0 8px 22px -12px rgba(255, 0, 144, .55);
}
.jlgHeader__aiLogo{
	display: block;
	line-height: 0;
	transition: transform .3s var(--jlg-ease);
}
.jlgHeader__aiLogo:hover{
	transform: scale(1.03);
}
.jlgHeader__aiLogo img{
	display: block;
	height: 21px;
	width: auto;
	max-width: none;
}
.jlgHeader__aiBtns{
	display: flex;
	gap: 5px;
}
.jlgHeader__aiBtn{
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 36px;
	padding: 0 15px 0 12px;
	border-radius: 999px;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	white-space: nowrap;
	overflow: hidden;
	isolation: isolate;
	transition: transform .25s var(--jlg-ease), box-shadow .25s ease;
}
.jlgHeader__aiBtn img{
	width: 15px;
	height: 15px;
	margin: 0;
}
.jlgHeader__aiBtn.is-normal{
	background: linear-gradient(135deg, #4f8dff 0%, #1a7cea 55%, #19b3e0 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.3);
}
.jlgHeader__aiBtn.is-r18{
	background: linear-gradient(135deg, #ff3fa9 0%, #ff0090 55%, #ff3b6b 100%);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.3);
}
.jlgHeader__aiBtn::after{ /* シャイン */
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.45) 50%, transparent 70%);
	transform: translateX(-120%);
	transition: transform .7s var(--jlg-ease);
	z-index: -1;
}
.jlgHeader__aiBtn:hover{
	color: #fff;
	transform: translateY(-1px);
}
.jlgHeader__aiBtn.is-normal:hover{ box-shadow: 0 10px 20px -10px rgba(26, 124, 234, .9); }
.jlgHeader__aiBtn.is-r18:hover{ box-shadow: 0 10px 20px -10px rgba(255, 0, 144, .9); }
.jlgHeader__aiBtn:hover::after{
	transform: translateX(120%);
}

/* ---------- パンくず ---------- */
.jlgCrumb{
	width: min(100% - var(--jlg-gutter) * 2, 1280px);
	margin: 14px auto 14px;
	font-family: var(--jlg-font);
}
.jlgCrumb__list{
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	max-width: 100%;
	margin: 0;
	padding: 6px 16px;
	list-style: none;
	background: rgba(255,255,255,.7);
	border: 1px solid var(--jlg-line);
	border-radius: 999px;
	font-size: 12.5px;
	line-height: 1.6;
}
.jlgCrumb__list li{
	list-style: none;
	display: inline-flex;
	align-items: center;
	color: var(--jlg-muted);
	min-width: 0;
}
.jlgCrumb__list li:not(:last-child)::after{
	content: "";
	width: 5px;
	height: 5px;
	margin: 0 10px 0 8px;
	border-top: 1.5px solid currentColor;
	border-right: 1.5px solid currentColor;
	transform: rotate(45deg);
	opacity: .5;
}
.jlgCrumb__list li:first-child a::before{
	content: "\f015";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 11px;
	margin-right: 6px;
}
.jlgCrumb__list a{
	color: var(--jlg-ink);
	font-weight: 700;
}
.jlgCrumb__list a:hover{
	color: var(--jlg-pink);
}

/* =====================================================================
   HAMBURGER BUTTON
   ===================================================================== */
.jlgBurger{
	display: none;
	position: fixed;
	top: var(--jlg-burger-top, 12px);
	right: max(var(--jlg-gutter), env(safe-area-inset-right));
	z-index: 1101;
	height: 44px;
	padding: 0 18px 0 15px;
	align-items: center;
	gap: 11px;
	border: 0;
	border-radius: 999px;
	background: var(--jlg-grad-wide);
	background-size: 250% 100%;
	background-position: 0% 50%;
	color: #fff;
	cursor: pointer;
	font-family: var(--jlg-font-en);
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.35),
		0 10px 24px -10px rgba(255, 0, 144, .7);
	-webkit-tap-highlight-color: transparent;
	transition: transform .25s var(--jlg-ease), box-shadow .3s ease, background-position .8s var(--jlg-ease);
}
.jlgBurger:hover{
	background-position: 60% 50%;
}
.jlgBurger:active{
	transform: scale(.95);
}
.jlgBurger:focus-visible{
	outline: 3px solid rgba(255, 0, 144, .35);
	outline-offset: 3px;
}
.jlgBurger__icon{
	position: relative;
	display: block;
	width: 22px;
	height: 14px;
}
.jlgBurger__icon > span{
	position: absolute;
	left: 0;
	height: 2px;
	border-radius: 2px;
	background: #fff;
	/* 閉じる時：回転を戻してから位置を戻す */
	transition:
		top .22s var(--jlg-ease) .18s,
		transform .22s var(--jlg-ease) 0s,
		width .35s var(--jlg-ease),
		opacity .2s ease .12s;
}
.jlgBurger__icon > span:nth-child(1){ top: 0;    width: 22px; }
.jlgBurger__icon > span:nth-child(2){ top: 6px;  width: 13px; }
.jlgBurger__icon > span:nth-child(3){ top: 12px; width: 18px; }
.jlgBurger:hover .jlgBurger__icon > span{ width: 22px; }

.jlgBurger[aria-expanded="true"] .jlgBurger__icon > span{
	/* 開く時：中央に寄せてから回転 */
	transition:
		top .22s var(--jlg-ease) 0s,
		transform .3s var(--jlg-ease-io) .18s,
		width .3s var(--jlg-ease),
		opacity .15s ease;
	width: 22px;
}
.jlgBurger[aria-expanded="true"] .jlgBurger__icon > span:nth-child(1){ top: 6px; transform: rotate(45deg); }
.jlgBurger[aria-expanded="true"] .jlgBurger__icon > span:nth-child(2){ opacity: 0; transform: translateX(8px); }
.jlgBurger[aria-expanded="true"] .jlgBurger__icon > span:nth-child(3){ top: 6px; transform: rotate(-45deg); }

.jlgBurger__label{
	position: relative;
	display: block;
	height: 14px;
	min-width: 3.9em;
	overflow: hidden;
	font-size: 13px;
	line-height: 14px;
	letter-spacing: .16em;
	text-align: left;
}
.jlgBurger__label > span{
	display: block;
	height: 14px;
	transition: transform .5s var(--jlg-ease-io);
}
.jlgBurger[aria-expanded="true"] .jlgBurger__label > span{
	transform: translateY(-100%);
}

/* =====================================================================
   DRAWER
   ===================================================================== */
.jlgDrawer{
	position: fixed;
	inset: 0;
	z-index: 1100;
	visibility: hidden;
	pointer-events: none;
	font-family: var(--jlg-font);
	transition: visibility 0s linear .75s;
}
.jlgDrawer.is-open{
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}
.jlgDrawer__backdrop{
	position: absolute;
	inset: 0;
	background: rgba(30, 12, 40, .38);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	opacity: 0;
	transition: opacity .5s ease;
}
.jlgDrawer.is-open .jlgDrawer__backdrop{
	opacity: 1;
}
.jlgDrawer__panel{
	--origin-x: calc(100% - 62px);
	--origin-y: calc(var(--jlg-burger-top, 12px) + 22px);
	position: absolute;
	top: 0;
	right: 0;
	width: min(460px, 100%);
	height: 100vh;
	height: 100dvh;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: calc(var(--jlg-burger-top, 12px) + 72px) 28px calc(48px + env(safe-area-inset-bottom));
	background: #fff7fb;
	/* ハンバーガーボタンから円形に広がる */
	clip-path: circle(0px at var(--origin-x) var(--origin-y));
	transition: clip-path .7s var(--jlg-ease-io);
	isolation: isolate;
}
.jlgDrawer.is-open .jlgDrawer__panel{
	clip-path: circle(160% at var(--origin-x) var(--origin-y));
}

/* オーロラ背景 */
.jlgDrawer__aurora{
	position: absolute;
	inset: 0;
	z-index: -1;
	overflow: hidden;
	pointer-events: none;
}
.jlgDrawer__aurora i{
	position: absolute;
	border-radius: 50%;
	filter: blur(60px);
	opacity: .5;
	animation: jlgFloat 16s ease-in-out infinite alternate;
}
.jlgDrawer__aurora i:nth-child(1){ width: 320px; height: 320px; background: #ff7ac4; top: -80px;  right: -90px; }
.jlgDrawer__aurora i:nth-child(2){ width: 280px; height: 280px; background: #c58cff; top: 42%;   left: -120px; animation-duration: 20s; animation-delay: -6s; }
.jlgDrawer__aurora i:nth-child(3){ width: 260px; height: 260px; background: #8fd3ff; bottom: -90px; right: -40px; opacity: .35; animation-duration: 24s; animation-delay: -12s; }

.jlgDrawer__title{
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 14px;
	font-family: var(--jlg-font-en);
	font-size: 13px;
	letter-spacing: .3em;
	color: var(--jlg-pink);
	text-align: left;
}
.jlgDrawer__title::before{
	content: "";
	width: 28px;
	height: 2px;
	border-radius: 2px;
	background: var(--jlg-grad);
}
.jlgDrawer__title span{
	font-family: var(--jlg-font);
	font-size: 11px;
	letter-spacing: .12em;
	color: var(--jlg-muted);
}

.jlgDrawer__list{
	margin: 0;
	padding: 0;
	list-style: none;
}
.jlgDrawer__list > li{
	list-style: none;
	padding: 14px 0;
	border-top: 1px solid rgba(36, 26, 51, .08);
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .3s ease, transform .3s ease;
}
.jlgDrawer__list > li:last-child{
	border-bottom: 1px solid rgba(36, 26, 51, .08);
}
.jlgDrawer.is-open .jlgDrawer__list > li{
	opacity: 1;
	transform: none;
	transition: opacity .6s ease, transform .7s var(--jlg-ease);
	transition-delay: calc(.22s + var(--i, 0) * .06s);
}
.jlgDrawer__link{
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 4px 0;
	color: var(--jlg-ink);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: .04em;
}
.jlgDrawer__num{
	flex: 0 0 auto;
	min-width: 22px;
	font-family: var(--jlg-font-en);
	font-size: 12px;
	font-weight: normal;
	letter-spacing: .08em;
	color: var(--jlg-pink);
	opacity: .8;
}
.jlgDrawer__link::after{
	content: "\f061";
	flex: 0 0 auto;
	margin-left: auto;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid rgba(36, 26, 51, .14);
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 12px;
	color: var(--jlg-ink);
	background: rgba(255,255,255,.6);
	transition: background .3s ease, color .3s ease, border-color .3s ease, transform .4s var(--jlg-ease);
}
.jlgDrawer__link:hover,
.jlgDrawer__link:focus-visible{
	color: var(--jlg-pink);
}
.jlgDrawer__link:hover::after,
.jlgDrawer__link:focus-visible::after{
	background: var(--jlg-grad);
	border-color: transparent;
	color: #fff;
	transform: rotate(-45deg);
}
.jlgDrawer__sub{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 10px 0 4px 36px;
	padding: 0;
	list-style: none;
}
.jlgDrawer__sub li{
	list-style: none;
}
.jlgDrawer__sub a{
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 6px 15px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .78);
	border: 1px solid rgba(255, 0, 144, .18);
	color: var(--jlg-ink);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s var(--jlg-ease);
}
.jlgDrawer__sub a:hover,
.jlgDrawer__sub a:focus-visible{
	background: var(--jlg-pink);
	border-color: var(--jlg-pink);
	color: #fff;
	transform: translateY(-1px);
}

/* =====================================================================
   FOOTER
   ===================================================================== */
.jlgFooter{
	position: relative;
	overflow: hidden;
	isolation: isolate;
	margin: 0;
	padding: 56px 0 calc(44px + env(safe-area-inset-bottom));
	border: 0;
	border-radius: 32px 32px 0 0;
	background: #1c1327;
	color: rgba(255,255,255,.7);
	text-align: left;
	font-family: var(--jlg-font);
}
.jlgFooter::before{ /* グロー */
	content: "";
	position: absolute;
	inset: -40% -10% auto;
	height: 140%;
	background:
		radial-gradient(40% 50% at 15% 30%, rgba(255, 0, 144, .35), transparent 70%),
		radial-gradient(35% 45% at 85% 20%, rgba(123, 63, 228, .35), transparent 70%),
		radial-gradient(30% 40% at 55% 90%, rgba(59, 47, 168, .3), transparent 70%);
	filter: blur(20px);
	z-index: -1;
}
.jlgFooter::after{ /* 上端のハイライト */
	content: "";
	position: absolute;
	top: 0;
	left: 10%;
	right: 10%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent);
}
.jlgFooter__inner{
	width: min(100% - var(--jlg-gutter) * 2, 1280px);
	margin-inline: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 24px;
}
.jlgFooter__links{
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.jlgFooter__links li{
	list-style: none;
}
.jlgFooter__links a{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 46px;
	padding: 0 20px 0 22px;
	border-radius: 999px;
	border: 1px solid rgba(255,255,255,.16);
	background: rgba(255,255,255,.05);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: #fff;
	font-family: var(--jlg-font-en);
	font-size: 14px;
	letter-spacing: .14em;
	transition: background .3s ease, border-color .3s ease, transform .3s var(--jlg-ease), box-shadow .3s ease;
}
.jlgFooter__links a::after{
	content: "\f08e";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 10px;
	opacity: .55;
	transition: opacity .3s ease, transform .3s var(--jlg-ease);
}
.jlgFooter__links a:hover{
	color: #fff;
	background: var(--jlg-grad);
	border-color: transparent;
	transform: translateY(-2px);
	box-shadow: 0 12px 28px -12px rgba(255, 0, 144, .8);
}
.jlgFooter__links a:hover::after{
	opacity: 1;
	transform: translate(2px, -2px);
}
.jlgFooter__copy{
	margin: 0;
	font-size: 12px;
	letter-spacing: .08em;
	color: rgba(255,255,255,.55);
	text-align: right;
}

/* =====================================================================
   SIDEBAR
   ※ 旧CSS（#mainContent aside … / !important）より確実に優先させるため
     #mainContent#mainContent（ID二重指定）で詳細度を上げています。
   ===================================================================== */
#mainContent aside:has(> .jlgSide){
	container-type: inline-size;
	container-name: jlgside;
}
#mainContent#mainContent .jlgSide{
	display: flex;
	flex-direction: column;
	gap: 44px;
	font-family: var(--jlg-font);
	color: var(--jlg-ink);
}
#mainContent#mainContent .jlgSide ul{
	padding-bottom: 0;
}

/* ---------- 見出し ---------- */
#mainContent#mainContent .jlgSide h2.jlgSide__title{
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	padding: 0 !important;
	background: none !important;
	border-radius: 0;
	color: var(--jlg-ink) !important;
	font-family: var(--jlg-font);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.4;
	text-align: left;
}
#mainContent#mainContent .jlgSide h2.jlgSide__title::before{
	content: "";
	flex: 0 0 auto;
	width: 5px;
	height: 20px;
	border-radius: 3px;
	background: var(--jlg-grad);
}
#mainContent#mainContent .jlgSide h2.jlgSide__title::after{
	content: "";
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, rgba(255, 0, 144, .3), rgba(255, 0, 144, 0));
}

/* ---------- 作者カード ---------- */
#mainContent#mainContent .jlgSide .authorBox{
	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin: 0;
	border: 1px solid var(--jlg-line);
	border-radius: var(--jlg-radius-lg);
	background: var(--jlg-surface);
	box-shadow: var(--jlg-shadow);
}
#mainContent#mainContent .jlgSide .authorBox::before{ /* カバー */
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 96px;
	background:
		radial-gradient(60% 120% at 85% 0%, rgba(255,255,255,.35), transparent 60%),
		var(--jlg-grad);
	z-index: -1;
}
#mainContent#mainContent .jlgSide .authorBox dl{
	margin: 0;
	padding: 36px 22px 24px;
}
#mainContent#mainContent .jlgSide .authorBox dl dt{
	display: block;
	width: 100%;
	margin: 0 0 14px;
	text-align: center;
}
#mainContent#mainContent .jlgSide .authorBox dl dt img{
	width: 104px;
	height: 104px;
	border-radius: 50%;
	border: 4px solid #fff;
	box-shadow: 0 10px 24px -10px rgba(120, 20, 90, .55);
	object-fit: cover;
}
#mainContent#mainContent .jlgSide .authorBox dl dd{
	display: block;
	width: 100%;
	font-size: 13.5px;
	text-align: center;
}
#mainContent#mainContent .jlgSide .authorBox h2#authorLbl{
	margin: 0 0 10px;
	padding: 0 !important;
	font-family: var(--jlg-font);
	font-size: 19px;
	font-weight: 900;
	line-height: 1.35;
	letter-spacing: .06em;
	text-align: center;
	background-color: transparent !important;
	background-image: var(--jlg-grad) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	-webkit-text-fill-color: transparent;
	color: transparent !important;
}
#mainContent#mainContent .jlgSide .authorBox dd p{
	color: var(--jlg-muted);
	line-height: 1.8;
	text-align: center;
}
#mainContent#mainContent .jlgSide .authorBox .fantiaBtn{
	margin-top: 20px;
}
#mainContent#mainContent .jlgSide .authorBox .fantiaBtn a{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 8px 18px;
	border: 0;
	border-radius: 999px;
	background: var(--jlg-grad-wide);
	background-size: 250% 100%;
	background-position: 0% 50%;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .04em;
	box-shadow: 0 12px 24px -12px rgba(255, 0, 144, .75);
	transition: background-position .8s var(--jlg-ease), transform .3s var(--jlg-ease), box-shadow .3s ease;
}
#mainContent#mainContent .jlgSide .authorBox .fantiaBtn a::after{
	content: "\f061";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 12px;
	transition: transform .3s var(--jlg-ease);
}
#mainContent#mainContent .jlgSide .authorBox .fantiaBtn a:hover{
	border: 0;
	background: var(--jlg-grad-wide);
	background-size: 250% 100%;
	background-position: 60% 50%;
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 16px 28px -12px rgba(255, 0, 144, .85);
}
#mainContent#mainContent .jlgSide .authorBox .fantiaBtn a:hover::after{
	transform: translateX(3px);
}

/* ---------- 管理者リンク ---------- */
#mainContent#mainContent .jlgSide .jlgSide__linkList{
	margin: 0;
	padding: 6px;
	list-style: none;
	border: 1px dashed rgba(36, 26, 51, .2);
	border-radius: var(--jlg-radius);
	background: #faf8fb;
}
#mainContent#mainContent .jlgSide .jlgSide__linkList li{
	list-style: none;
}
#mainContent#mainContent .jlgSide .jlgSide__linkList a{
	display: block;
	padding: 9px 12px;
	border-radius: 10px;
	color: var(--jlg-ink);
	font-size: 13.5px;
}
#mainContent#mainContent .jlgSide .jlgSide__linkList a:hover{
	background: #fff;
	color: var(--jlg-pink);
}

/* ---------- 検索 ---------- */
#mainContent#mainContent .jlgSide .searchTab{
	width: 100%;
	margin: 0;
	padding: 14px;
	background: var(--jlg-surface);
	border: 1px solid var(--jlg-line);
	border-radius: var(--jlg-radius-lg);
	box-shadow: var(--jlg-shadow-sm);
}
#mainContent#mainContent .jlgSide .searchTab .tab-container{
	display: flex;
	gap: 4px;
	width: 100%;
	margin: 0 0 16px;
	padding: 4px;
	font-size: 13px;
	background: #f5eef4;
	border-radius: 16px;
}
#mainContent#mainContent .jlgSide .searchTab .tab-container .tab{
	flex: 1 1 0;
	width: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 6px 4px;
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: var(--jlg-muted);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
	cursor: pointer;
	transition: background .25s ease, color .25s ease, box-shadow .25s ease;
}
#mainContent#mainContent .jlgSide .searchTab .tab-container .tab:hover{
	color: var(--jlg-ink);
}
#mainContent#mainContent .jlgSide .searchTab .tab-container .tab.active{
	background: #fff;
	color: var(--jlg-pink);
	box-shadow: 0 1px 2px rgba(36,26,51,.06), 0 4px 12px -4px rgba(120, 20, 90, .25);
}
#mainContent#mainContent .jlgSide .searchTab h3{
	margin: 0 0 6px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--jlg-ink);
	font-size: 14px;
	font-weight: 700;
	text-align: left;
}
#mainContent#mainContent .jlgSide .detailSearch{
	margin: 0;
}
#mainContent#mainContent .jlgSide .detailSearch table{
	width: 100%;
	margin: 0 0 16px;
	border: 0;
	border-collapse: separate;
	border-spacing: 0 6px;
}
#mainContent#mainContent .jlgSide .detailSearch table tr th,
#mainContent#mainContent .jlgSide .detailSearch table tr td{
	border: 0;
	padding: 0;
	background: none;
	vertical-align: middle;
}
#mainContent#mainContent .jlgSide .detailSearch table thead tr th{
	padding: 12px 2px 0;
	color: var(--jlg-pink);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .14em;
	text-align: left;
}
#mainContent#mainContent .jlgSide .detailSearch table tbody tr th{
	width: 4em;
	padding: 0 8px 0 2px;
	color: var(--jlg-muted);
	font-size: 12.5px;
	font-weight: 700;
	text-align: left;
	white-space: nowrap;
}
#mainContent#mainContent .jlgSide .detailSearch select,
#mainContent#mainContent .jlgSide .detailSearch input[type="text"]{
	width: 100%;
	height: 40px;
	padding: 0 12px;
	border: 1px solid rgba(36, 26, 51, .12);
	border-radius: 12px;
	background-color: #fbf8fb;
	color: var(--jlg-ink);
	font-family: var(--jlg-font);
	font-size: 13.5px;
	transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
#mainContent#mainContent .jlgSide .detailSearch select{
	-webkit-appearance: none;
	appearance: none;
	padding-right: 32px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ff0090' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 12px;
	text-overflow: ellipsis;
}
#mainContent#mainContent .jlgSide .detailSearch select:hover,
#mainContent#mainContent .jlgSide .detailSearch input[type="text"]:hover{
	border-color: rgba(255, 0, 144, .35);
}
#mainContent#mainContent .jlgSide .detailSearch select:focus,
#mainContent#mainContent .jlgSide .detailSearch input[type="text"]:focus{
	outline: none;
	border-color: var(--jlg-pink);
	background-color: #fff;
	box-shadow: 0 0 0 4px rgba(255, 0, 144, .12);
}
#mainContent#mainContent .jlgSide .detailSearch input[type="radio"]{
	accent-color: var(--jlg-pink);
}
#mainContent#mainContent .jlgSide .detailSearch label{
	color: var(--jlg-muted);
	font-size: 12.5px;
}
#mainContent#mainContent .jlgSide .detailSearch .submitBtn{
	margin: 0;
	text-align: center;
}
#mainContent#mainContent .jlgSide .detailSearch .submitBtn button[type="submit"]{
	width: 100%;
	min-height: 46px;
	padding: 0 16px;
	border: 0;
	border-radius: 999px;
	background: var(--jlg-grad-wide);
	background-size: 250% 100%;
	background-position: 0% 50%;
	color: #fff;
	font-family: var(--jlg-font);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .08em;
	cursor: pointer;
	box-shadow: 0 12px 24px -12px rgba(255, 0, 144, .7);
	transition: background-position .8s var(--jlg-ease), transform .3s var(--jlg-ease), box-shadow .3s ease;
}
#mainContent#mainContent .jlgSide .detailSearch .submitBtn button[type="submit"] #s-btn{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #fff;
}
#mainContent#mainContent .jlgSide .detailSearch .submitBtn button[type="submit"] #s-btn::before{
	content: "\f002";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 13px;
}
#mainContent#mainContent .jlgSide .detailSearch .submitBtn button[type="submit"]:hover{
	background-position: 60% 50%;
	transform: translateY(-2px);
	box-shadow: 0 16px 28px -12px rgba(255, 0, 144, .85);
}

/* ---------- バナー ---------- */
#mainContent#mainContent .jlgSide .bannerArea{
	display: grid;
	gap: 14px;
}
#mainContent#mainContent .jlgSide .bannerArea p.sideBanner{
	margin: 0;
}
#mainContent#mainContent .jlgSide .bannerArea p.sideBanner a{
	display: block;
	overflow: hidden;
	border-radius: var(--jlg-radius);
	box-shadow: var(--jlg-shadow-sm);
	transform: translateZ(0);
	transition: transform .4s var(--jlg-ease), box-shadow .4s ease;
}
#mainContent#mainContent .jlgSide .bannerArea p.sideBanner img{
	display: block;
	width: 100%;
	transition: transform .7s var(--jlg-ease);
}
#mainContent#mainContent .jlgSide .bannerArea p.sideBanner a:hover{
	transform: translateY(-3px);
	box-shadow: var(--jlg-shadow);
}
#mainContent#mainContent .jlgSide .bannerArea p.sideBanner a:hover img{
	opacity: 1;
	transform: scale(1.04);
}

/* ---------- ランキング（人気ストーリー / 人気キャラ） ---------- */
#mainContent#mainContent .jlgSide .jlgSide__rankList{
	counter-reset: jlgrank;
	display: grid;
	gap: 10px;
	width: 100%;
	margin: 0;
	padding: 0;
	font-size: 14px;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList > li{
	counter-increment: jlgrank;
	display: block;
	width: auto;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList > li > a{
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 10px;
	padding: 8px;
	border: 1px solid var(--jlg-line);
	border-radius: var(--jlg-radius);
	background: var(--jlg-surface);
	color: var(--jlg-ink);
	transition: transform .35s var(--jlg-ease), box-shadow .35s ease, border-color .35s ease;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList > li > a:hover{
	transform: translateY(-2px);
	border-color: rgba(255, 0, 144, .25);
	box-shadow: var(--jlg-shadow);
	color: var(--jlg-ink);
}
/* 順位バッジ */
#mainContent#mainContent .jlgSide .jlgSide__rankList > li > a::before{
	content: counter(jlgrank);
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	min-width: 28px;
	height: 28px;
	padding: 0 8px;
	display: grid;
	place-items: center;
	border-radius: 10px;
	background: rgba(36, 26, 51, .72);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: #fff;
	font-family: var(--jlg-font-en);
	font-size: 15px;
	line-height: 1;
	box-shadow: 0 4px 10px -4px rgba(0,0,0,.4);
}
#mainContent#mainContent .jlgSide .jlgSide__rankList > li:nth-child(1) > a::before{ background: var(--jlg-grad); }
#mainContent#mainContent .jlgSide .jlgSide__rankList > li:nth-child(2) > a::before{ background: linear-gradient(135deg, #b43cc8, #7a4fe0); }
#mainContent#mainContent .jlgSide .jlgSide__rankList > li:nth-child(3) > a::before{ background: linear-gradient(135deg, #5b4fd6, #3b2fa8); }

#mainContent#mainContent .jlgSide .jlgSide__rankList figure{ /* ストーリーのアイキャッチは正方形 */
	position: relative;
	margin: 0;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	border-radius: var(--jlg-radius-sm);
	background: #f4eef3;
}
#mainContent#mainContent .jlgSide .jlgSide__rank.is-chara .jlgSide__rankList figure{ /* キャラのアイキャッチは16:9 */
	aspect-ratio: 16 / 9;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList figure img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	transition: transform .7s var(--jlg-ease);
}
#mainContent#mainContent .jlgSide .jlgSide__rankList > li > a:hover figure img{
	opacity: 1;
	transform: scale(1.06);
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	min-width: 0;
	margin: 0;
	padding: 0 4px 4px;
	font-size: 14px;
}
/* いいね数チップ */
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dt{
	display: inline-flex;
	width: auto;
	height: auto;
	margin: 0;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--jlg-tint);
	color: var(--jlg-pink);
	font-size: 12px;
	text-align: left;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dt .rankingBox{
	display: block;
	width: auto;
	height: auto;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dt .rankingBox .rankingCell{
	display: flex;
	align-items: center;
	gap: 4px;
	width: auto;
	height: auto;
	line-height: 1;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dt .rankingBox .rankingCell::before{
	content: "\f004";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 11px;
	margin-right: 2px;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dt .wpulike,
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dt .wp_ulike_general_class{
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dt span.count-box{
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: var(--jlg-pink);
	font-family: var(--jlg-font);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dt span.count-box::before,
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dt span.count-box::after{
	display: none;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dt span:not(.count-box){
	font-size: 11px;
	font-weight: 700;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dd{
	display: block;
	width: auto;
	margin: 0;
	padding: 0;
	color: var(--jlg-ink);
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.55;
	text-align: left;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dd .charaName{
	color: var(--jlg-ink);
	font-weight: 700;
	font-size: 12.5px;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dd .charaName span{
	color: var(--jlg-pink);
	font-size: 15px;
	font-weight: 700;
}
#mainContent#mainContent .jlgSide .jlgSide__rankList dl dd .charaSpec{
	margin-top: 2px;
	color: var(--jlg-muted);
	font-family: var(--jlg-font);
	font-size: 12px;
	font-weight: 500;
}

/* ---------- 最新ストーリー ---------- */
#mainContent#mainContent .jlgSide .jlgSide__latestList{
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	font-size: 14px;
}
#mainContent#mainContent .jlgSide .jlgSide__latestList > li{
	display: block;
	width: auto;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
}
#mainContent#mainContent .jlgSide .jlgSide__latestList > li > a{
	display: block;
	padding: 8px;
	border: 1px solid var(--jlg-line);
	border-radius: var(--jlg-radius);
	background: var(--jlg-surface);
	color: var(--jlg-ink);
	transition: transform .35s var(--jlg-ease), box-shadow .35s ease, border-color .35s ease;
}
#mainContent#mainContent .jlgSide .jlgSide__latestList > li > a:hover{
	transform: translateY(-2px);
	border-color: rgba(255, 0, 144, .25);
	box-shadow: var(--jlg-shadow);
	color: var(--jlg-ink);
}
#mainContent#mainContent .jlgSide .jlgSide__latestList > li > a > div{
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 10px;
}
#mainContent#mainContent .jlgSide .jlgSide__latestList figure{ /* ストーリーのアイキャッチは正方形 */
	margin: 0;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	border-radius: var(--jlg-radius-sm);
	background: #f4eef3;
}
#mainContent#mainContent .jlgSide .jlgSide__latestList figure img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s var(--jlg-ease);
}
#mainContent#mainContent .jlgSide .jlgSide__latestList > li > a:hover figure img{
	opacity: 1;
	transform: scale(1.06);
}
#mainContent#mainContent .jlgSide .jlgSide__latestList .storyTitleBox{
	display: block;
	font-size: 14px;
	min-width: 0;
	padding: 0 4px 4px;
}
#mainContent#mainContent .jlgSide .jlgSide__latestList .storyTitleBox .storyNum{
	position: absolute;
	top: 6px;
	left: 6px;
	z-index: 2;
	display: block;
	width: auto;
	height: auto;
	margin: 0;
	padding: 5px 10px;
	border-radius: 999px;
	background: var(--jlg-grad);
	color: #fff;
	box-shadow: 0 4px 10px -4px rgba(120, 20, 90, .6);
}
#mainContent#mainContent .jlgSide .jlgSide__latestList .storyTitleBox .storyNum > span.sn1,
#mainContent#mainContent .jlgSide .jlgSide__latestList .storyTitleBox .storyNum > span.sn1 > span.sn2{
	display: block;
	width: auto;
	height: auto;
	margin: 0;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .06em;
	text-align: left;
}
#mainContent#mainContent .jlgSide .jlgSide__latestList .storyTitleBox .storyName{
	display: block;
	width: auto;
	height: auto;
	color: var(--jlg-ink);
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.55;
}
#mainContent#mainContent .jlgSide .jlgSide__latestList .storyTitleBox .storyName > span{
	display: block;
	margin-bottom: 2px;
	color: var(--jlg-muted);
	font-family: var(--jlg-font-en);
	font-size: 11.5px;
	font-weight: normal;
	letter-spacing: .08em;
}

/* ---------- コンテナクエリ：サイドバー幅に応じてレイアウト切替 ---------- */
/* 狭いサイドバー（180px 前後） */
@container jlgside (max-width: 239px){
	#mainContent#mainContent .jlgSide{ gap: 36px; }
	#mainContent#mainContent .jlgSide .authorBox dl{ padding: 28px 14px 18px; }
	#mainContent#mainContent .jlgSide .authorBox dl dt img{ width: 84px; height: 84px; }
	#mainContent#mainContent .jlgSide .authorBox h2#authorLbl{ font-size: 16px; }
	#mainContent#mainContent .jlgSide .authorBox .fantiaBtn a{ font-size: 13px; padding: 8px 12px; }
	#mainContent#mainContent .jlgSide .searchTab{ padding: 10px; border-radius: var(--jlg-radius); }
	#mainContent#mainContent .jlgSide .searchTab .tab-container .tab{ font-size: 11.5px; padding: 6px 4px; }
	#mainContent#mainContent .jlgSide .detailSearch table tbody tr th{ width: 3.2em; font-size: 11.5px; padding-right: 6px; }
	#mainContent#mainContent .jlgSide .detailSearch select,
	#mainContent#mainContent .jlgSide .detailSearch input[type="text"]{ font-size: 12px; padding-left: 9px; }
	#mainContent#mainContent .jlgSide .detailSearch select{ padding-right: 24px; background-position: right 8px center; }
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li > a::before{ top: 12px; left: 12px; min-width: 24px; height: 24px; font-size: 13px; border-radius: 8px; }
}

/* 標準サイドバー（300px）以上：2位以降・最新ストーリーは横並びのコンパクト行 */
@container jlgside (min-width: 240px){
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:not(:first-child) > a,
	#mainContent#mainContent .jlgSide .jlgSide__latestList > li > a > div{
		grid-template-columns: 104px minmax(0, 1fr);
		gap: 12px;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:not(:first-child) > a::before{
		top: 12px;
		left: 12px;
		min-width: 22px;
		height: 22px;
		padding: 0 6px;
		font-size: 12px;
		border-radius: 7px;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:not(:first-child) dl,
	#mainContent#mainContent .jlgSide .jlgSide__latestList .storyTitleBox{
		padding: 2px 4px 2px 0;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:not(:first-child) dl dd,
	#mainContent#mainContent .jlgSide .jlgSide__latestList .storyTitleBox .storyName{
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
		font-size: 13px;
	}
	#mainContent#mainContent .jlgSide .jlgSide__latestList .storyTitleBox .storyNum{
		top: 4px;
		left: 4px;
		padding: 4px 7px;
	}
	#mainContent#mainContent .jlgSide .jlgSide__latestList .storyTitleBox .storyNum > span.sn1 > span.sn2{
		font-size: 10.5px;
	}
}

/* スマホ等で全幅になった時：2カラムのグリッド */
@container jlgside (min-width: 560px){
	#mainContent#mainContent .jlgSide .jlgSide__rankList,
	#mainContent#mainContent .jlgSide .jlgSide__latestList{
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:first-child{
		grid-column: 1 / -1;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:first-child > a{
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		gap: 16px;
	}
	#mainContent#mainContent .jlgSide .bannerArea{
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}
	#mainContent#mainContent .jlgSide .authorBox dl{
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		gap: 22px;
		padding: 28px;
	}
	#mainContent#mainContent .jlgSide .authorBox dl dt{ margin: 0; }
	#mainContent#mainContent .jlgSide .authorBox dl dd,
	#mainContent#mainContent .jlgSide .authorBox h2#authorLbl,
	#mainContent#mainContent .jlgSide .authorBox dd p{ text-align: left; }
	#mainContent#mainContent .jlgSide .authorBox .fantiaBtn a{ display: inline-flex; }
}

/* =====================================================================
   PAGE TITLE（section#nextMainCategoryText：下層ページの見出し帯）
   ===================================================================== */
body section#nextMainCategoryText{
	position: relative;
	isolation: isolate;
	overflow: hidden;
	width: min(100% - var(--jlg-gutter) * 2, 1280px);
	margin: 4px auto 0;
	padding: 44px 24px 46px;
	border: 1px solid rgba(255, 0, 144, .12);
	border-radius: 28px;
	background:
		radial-gradient(55% 90% at 0% 0%, rgba(255, 122, 196, .38), transparent 70%),
		radial-gradient(45% 80% at 100% 0%, rgba(180, 60, 200, .22), transparent 70%),
		radial-gradient(50% 90% at 85% 100%, rgba(143, 211, 255, .30), transparent 70%),
		#fff6fb;
	color: var(--jlg-ink);
	font-family: var(--jlg-font);
	font-feature-settings: "palt" 1;
	font-size: 30px;
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: .06em;
	text-align: center;
	box-shadow: 0 18px 40px -30px rgba(120, 20, 90, .45);
}
/* ドットテクスチャ（中央に向かってフェード） */
body section#nextMainCategoryText::before{
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: radial-gradient(rgba(255, 0, 144, .22) 1px, transparent 1.4px);
	background-size: 16px 16px;
	-webkit-mask-image: radial-gradient(ellipse 70% 90% at 50% 50%, transparent 35%, #000 100%);
	mask-image: radial-gradient(ellipse 70% 90% at 50% 50%, transparent 35%, #000 100%);
	pointer-events: none;
}
/* グラデーションのアクセントバー */
body section#nextMainCategoryText::after{
	content: "";
	display: block;
	width: 56px;
	height: 4px;
	margin: 16px auto 0;
	border-radius: 4px;
	background: var(--jlg-grad);
}
@media screen and (max-width: 759px){
	body section#nextMainCategoryText{
		margin-top: 0;
		padding: 28px 16px 30px;
		border-radius: 20px;
		font-size: 21px;
	}
	body section#nextMainCategoryText::after{
		width: 44px;
		height: 3px;
		margin-top: 12px;
	}
}

/* =====================================================================
   RESPONSIVE（ヘッダー・フッター）
   ===================================================================== */
@media screen and (max-width: 1199px){
	:root{ --jlg-head-h: 72px; }
	.jlgHeader__inner{ gap: 16px; }
	.jlgHeader__logo img{ height: 40px; }
	.jlgHeader__navLink{ padding: 0 13px; font-size: 14px; }
	.jlgHeader__ai{ gap: 8px; padding-left: 14px; }
	.jlgHeader__aiLogo img{ height: 16px; }
	.jlgHeader__aiBtn{ height: 32px; padding: 0 11px 0 9px; font-size: 12px; }
}

/* ハンバーガーメニューに切替 */
@media screen and (max-width: 1023px){
	:root{ --jlg-head-h: 64px; }
	.jlgHeader__util,
	.jlgHeader__nav,
	.jlgHeader__ai{
		display: none;
	}
	.jlgHeader__logo img{ height: 36px; }
	.jlgBurger{ display: inline-flex; }
	/* ボタンとロゴが重ならないように */
	.jlgHeader__inner{ padding-right: 130px; }
}

@media screen and (max-width: 759px){
	:root{
		--jlg-bar-h: 28px;
		--jlg-head-h: 60px;
		--jlg-gutter: 14px;
	}
	.jlgHeader .jlgHeader__tagline h1,
	.jlgHeader .jlgHeader__tagline p{
		font-size: 11px;
		text-align: center;
	}
	.jlgHeader__logo img{ height: 32px; }
	.jlgHeader__inner{ padding-right: 118px; }
	.jlgBurger{ height: 42px; padding: 0 15px 0 13px; gap: 9px; }
	.jlgBurger__label{ font-size: 12px; }

	.jlgCrumb{ margin-top: 10px; margin-bottom: 10px; }
	.jlgCrumb__list{ padding: 5px 14px; font-size: 12px; border-radius: 16px; }

	.jlgDrawer__panel{
		width: 100%;
		padding-left: 22px;
		padding-right: 22px;
	}
	.jlgDrawer__link{ font-size: 20px; }
	.jlgDrawer__sub{ margin-left: 36px; }

	.jlgFooter{
		padding-top: 44px;
		border-radius: 24px 24px 0 0;
	}
	.jlgFooter__inner{
		flex-direction: column;
		justify-content: center;
		gap: 20px;
	}
	.jlgFooter__links{ justify-content: center; }
	.jlgFooter__links a{ height: 44px; padding: 0 16px 0 18px; font-size: 13px; }
	.jlgFooter__copy{ text-align: center; }
}

@media screen and (max-width: 360px){
	.jlgBurger__label{ display: none; }
	.jlgBurger{ padding: 0 12px; }
	.jlgHeader__inner{ padding-right: 60px; }
}

/* =====================================================================
   ANIMATIONS
   ===================================================================== */
@keyframes jlgFlow{
	from{ background-position: 0% 50%; }
	to  { background-position: 300% 50%; }
}
@keyframes jlgFloat{
	0%  { transform: translate(0, 0) scale(1); }
	50% { transform: translate(-30px, 40px) scale(1.12); }
	100%{ transform: translate(20px, -20px) scale(.95); }
}

@media (prefers-reduced-motion: reduce){
	.jlgHeader__bar,
	.jlgDrawer__aurora i{ animation: none; }
	.jlgHeader *,
	.jlgBurger,
	.jlgBurger *,
	.jlgDrawer,
	.jlgDrawer *,
	.jlgFooter *,
	.jlgSide *{
		transition-duration: .01ms !important;
		transition-delay: 0s !important;
	}
}

/* backdrop-filter 非対応ブラウザ */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
	.jlgHeader__main{ background: rgba(255,255,255,.97); }
	.jlgHeader__sub{ background: #fff; }
}


/* =====================================================================
   スマホ最適化（〜759px）
   ・サイドバーは出さず、人気ストーリー／人気キャラだけ横スワイプの帯に
   ・画面下に固定タブバー（.jlgTabbar）
   ・検索は下から出るパネル（.jlgSheet）
   ===================================================================== */
.jlgTabbar,
.jlgSheet{
	display: none;
}

@media screen and (max-width: 759px){
	:root{
		--jlg-tab-h: 58px;
		--jlg-tab-safe: env(safe-area-inset-bottom, 0px);
	}
	body{
		padding-bottom: calc(var(--jlg-tab-h) + var(--jlg-tab-safe));
	}

	/* ---------- サイドバー：人気ランキング以外は出さない ---------- */
	#mainContent#mainContent .jlgSide{
		gap: 30px;
	}
	/* ページの種類ごとに1つだけ出す（種類は sidebar.php が is-ctx-◯◯ として付ける）
	   ストーリー詳細＝人気ストーリー／キャラ詳細＝人気キャラ／検索・一覧＝なし／その他＝販売案内 */
	#mainContent#mainContent .jlgSide > *{
		display: none !important;
	}
	#mainContent#mainContent .jlgSide.is-ctx-story > .jlgSide__rank:not(.is-chara),
	#mainContent#mainContent .jlgSide.is-ctx-chara > .jlgSide__rank.is-chara,
	#mainContent#mainContent .jlgSide.is-ctx-other > .jlgSidePromo{
		display: block !important;
	}
	#mainContent aside:has(> .jlgSide.is-ctx-list){
		display: none;
	}
	#mainContent#mainContent .jlgSide h2.jlgSide__title{
		font-size: 18px;
	}

	/* 横スワイプの帯 */
	#mainContent#mainContent .jlgSide .jlgSide__rankList{
		display: flex;
		gap: 12px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-left: 2px;
		padding: 4px 2px 14px;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList::-webkit-scrollbar{
		display: none;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:nth-child(n){
		flex: 0 0 42%;
		max-width: 190px;
		scroll-snap-align: start;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rank.is-chara .jlgSide__rankList > li:nth-child(n){
		flex-basis: 62%;
		max-width: 260px;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:nth-child(n) > a{
		grid-template-columns: 1fr;
		align-content: start;
		gap: 8px;
		height: 100%;
		box-sizing: border-box;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:nth-child(n) > a::before{
		top: 14px;
		left: 14px;
		min-width: 26px;
		height: 26px;
		font-size: 13px;
		border-radius: 8px;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:nth-child(n) dl{
		padding: 0 4px 4px;
	}
	#mainContent#mainContent .jlgSide .jlgSide__rankList > li:nth-child(n) dl dd{
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
		font-size: 13px;
	}

	/* ---------- フッター：タブバーぶんの余白は body 側で確保 ---------- */

	/* ---------- 下部タブバー ---------- */
	.jlgTabbar{
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 1050;
		padding: 0 max(6px, env(safe-area-inset-right)) var(--jlg-tab-safe) max(6px, env(safe-area-inset-left));
		border-top: 1px solid var(--jlg-line);
		background: rgba(255, 255, 255, .86);
		-webkit-backdrop-filter: saturate(1.6) blur(18px);
		backdrop-filter: saturate(1.6) blur(18px);
		box-shadow: 0 -10px 30px -18px rgba(120, 20, 90, .35);
		font-family: var(--jlg-font);
		font-feature-settings: "palt" 1;
	}
	.jlgTabbar::before{ /* 上端のグラデーションライン */
		content: "";
		position: absolute;
		top: -1px;
		left: 0;
		right: 0;
		height: 2px;
		background: var(--jlg-grad-wide);
		opacity: .55;
	}
	.jlgTabbar__list{
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		height: var(--jlg-tab-h);
		margin: 0;
		padding: 0;
		list-style: none;
	}
	.jlgTabbar__list > li{
		display: flex;
		margin: 0;
		padding: 0;
	}
	.jlgTabbar__item{
		position: relative;
		flex: 1;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
		min-width: 0;
		margin: 0;
		padding: 0;
		border: 0;
		background: none;
		color: var(--jlg-muted);
		font-family: inherit;
		font-size: 10.5px;
		font-weight: 700;
		line-height: 1;
		letter-spacing: .02em;
		text-decoration: none;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
		transition: color .25s ease, transform .25s var(--jlg-ease);
	}
	.jlgTabbar__item span{
		font-weight: 700;
		white-space: nowrap;
	}
	.jlgTabbar__item svg{
		width: 24px;
		height: 24px;
		fill: none;
		stroke: currentColor;
		stroke-width: 1.8;
		stroke-linecap: round;
		stroke-linejoin: round;
	}
	.jlgTabbar__item:active{
		transform: scale(.92);
	}
	.jlgTabbar__item.is-current,
	.jlgTabbar__item[aria-expanded="true"]{
		color: var(--jlg-pink);
	}
	.jlgTabbar__item.is-current::before,
	.jlgTabbar__item[aria-expanded="true"]::before{
		content: "";
		position: absolute;
		top: 0;
		left: 50%;
		width: 28px;
		height: 3px;
		border-radius: 0 0 4px 4px;
		background: var(--jlg-grad);
		transform: translateX(-50%);
	}
	.jlgTabbar__item:focus-visible{
		outline: 2px solid var(--jlg-pink);
		outline-offset: -4px;
		border-radius: 12px;
	}

	/* ---------- 検索パネル（下から出る） ---------- */
	.jlgSheet{
		display: block;
		position: fixed;
		inset: 0;
		z-index: 1040; /* タブバーより下＝タブバーは見えたまま */
		visibility: hidden;
		pointer-events: none;
		font-family: var(--jlg-font);
		font-feature-settings: "palt" 1;
		transition: visibility 0s linear .45s;
	}
	.jlgSheet.is-open{
		visibility: visible;
		pointer-events: auto;
		transition-delay: 0s;
	}
	.jlgSheet__backdrop{
		position: absolute;
		inset: 0;
		background: rgba(30, 12, 40, .42);
		-webkit-backdrop-filter: blur(5px);
		backdrop-filter: blur(5px);
		opacity: 0;
		transition: opacity .35s ease;
	}
	.jlgSheet.is-open .jlgSheet__backdrop{
		opacity: 1;
	}
	.jlgSheet__panel{
		position: absolute;
		left: 0;
		right: 0;
		bottom: calc(var(--jlg-tab-h) + var(--jlg-tab-safe));
		max-height: calc(100dvh - var(--jlg-tab-h) - var(--jlg-tab-safe) - 40px);
		overflow-y: auto;
		padding: 10px 18px 22px;
		border-radius: 26px 26px 0 0;
		background: #fff;
		box-shadow: 0 -20px 50px -20px rgba(120, 20, 90, .45);
		color: var(--jlg-ink);
		transform: translateY(105%);
		transition: transform .45s var(--jlg-ease);
	}
	.jlgSheet.is-open .jlgSheet__panel{
		transform: none;
	}
	.jlgSheet__grip{
		display: block;
		width: 40px;
		height: 4px;
		margin: 0 auto 12px;
		border-radius: 4px;
		background: rgba(36, 26, 51, .16);
	}
	.jlgSheet__head{
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 14px;
	}
	.jlgSheet .jlgSheet__title{
		margin: 0;
		padding: 0;
		border: 0;
		background: none;
		color: var(--jlg-ink);
		font-family: var(--jlg-font);
		font-size: 20px;
		font-weight: 900;
		line-height: 1.2;
		text-align: left;
	}
	.jlgSheet .jlgSheet__title span{
		display: block;
		margin-bottom: 4px;
		font-family: var(--jlg-font-en);
		font-size: 11px;
		font-weight: normal;
		letter-spacing: .2em;
		background: var(--jlg-grad);
		-webkit-background-clip: text;
		background-clip: text;
		color: transparent;
	}
	.jlgSheet__close{
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin: 0 -8px 0 0;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: var(--jlg-tint);
		color: var(--jlg-ink);
		cursor: pointer;
	}
	.jlgSheet__close svg{
		width: 20px;
		height: 20px;
		fill: none;
		stroke: currentColor;
		stroke-width: 2;
		stroke-linecap: round;
	}
	.jlgSheet__tabs{
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 4px;
		padding: 4px;
		border-radius: 999px;
		background: var(--jlg-tint);
	}
	.jlgSheet__tab{
		height: 42px;
		margin: 0;
		padding: 0 8px;
		border: 0;
		border-radius: 999px;
		background: none;
		color: var(--jlg-muted);
		font-family: inherit;
		font-size: 14px;
		font-weight: 700;
		cursor: pointer;
		transition: background .3s ease, color .3s ease, box-shadow .3s ease;
	}
	.jlgSheet__tab.is-active{
		background: #fff;
		color: var(--jlg-pink);
		box-shadow: var(--jlg-shadow-sm);
	}
	.jlgSheet__form{
		display: grid;
		gap: 10px;
		margin: 14px 0 0;
	}
	.jlgSheet__field{
		display: flex;
		align-items: center;
		gap: 10px;
		height: 54px;
		padding: 0 16px;
		border: 1.5px solid var(--jlg-line);
		border-radius: 16px;
		background: #fff;
		transition: border-color .25s ease, box-shadow .25s ease;
	}
	.jlgSheet__field:focus-within{
		border-color: var(--jlg-pink);
		box-shadow: 0 0 0 4px rgba(255, 0, 144, .12);
	}
	.jlgSheet__field svg{
		flex: none;
		width: 20px;
		height: 20px;
		fill: none;
		stroke: var(--jlg-muted);
		stroke-width: 2;
		stroke-linecap: round;
	}
	.jlgSheet .jlgSheet__field input{
		flex: 1;
		min-width: 0;
		width: auto;
		height: 100%;
		margin: 0;
		padding: 0;
		border: 0;
		outline: 0;
		background: none;
		box-shadow: none;
		color: var(--jlg-ink);
		font-family: inherit;
		font-size: 16px; /* 16px未満だとiPhoneで画面が拡大されるため */
		-webkit-appearance: none;
		appearance: none;
	}
	.jlgSheet__submit{
		height: 54px;
		margin: 0;
		padding: 0 20px;
		border: 0;
		border-radius: 16px;
		background: var(--jlg-grad);
		color: #fff;
		font-family: inherit;
		font-size: 16px;
		font-weight: 900;
		letter-spacing: .08em;
		cursor: pointer;
		box-shadow: 0 12px 24px -12px rgba(255, 0, 144, .7);
	}
	.jlgSheet__links{
		display: grid;
		gap: 0;
		margin: 16px 0 0;
		padding: 0;
		list-style: none;
		border-top: 1px solid var(--jlg-line);
	}
	.jlgSheet__links li{
		margin: 0;
		padding: 0;
		border-bottom: 1px solid var(--jlg-line);
	}
	.jlgSheet__links a{
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 50px;
		color: var(--jlg-ink);
		font-size: 14px;
		font-weight: 700;
		text-decoration: none;
	}
	.jlgSheet__links a::after{
		content: "";
		width: 8px;
		height: 8px;
		margin-right: 4px;
		border-top: 2px solid var(--jlg-pink);
		border-right: 2px solid var(--jlg-pink);
		transform: rotate(45deg);
	}
	html.is-sheet-open{
		overflow: hidden;
	}

	/* メニュー（ドロワー）は下のタブから開くので、右上のボタンは開いている時だけ表示 */
	.jlgBurger{
		opacity: 0;
		pointer-events: none;
		transition: opacity .3s ease;
	}
	html.is-drawer-open .jlgBurger{
		opacity: 1;
		pointer-events: auto;
	}
	.jlgHeader__inner{
		padding-right: var(--jlg-gutter);
	}
}

@media (prefers-reduced-motion: reduce){
	.jlgTabbar *,
	.jlgSheet,
	.jlgSheet *{
		transition-duration: .01ms !important;
	}
}


/* =====================================================================
   ホーム画面に追加：案内バー（スマホのみ）＋ iPhone用の手順パネル
   ===================================================================== */
.jlgInstall{
	display: none;
}
@media screen and (max-width: 759px){
	.jlgInstall:not([hidden]){
		display: grid;
		grid-template-columns: 48px minmax(0, 1fr) auto;
		align-items: center;
		gap: 12px;
		position: fixed;
		left: max(10px, env(safe-area-inset-left));
		right: max(10px, env(safe-area-inset-right));
		bottom: calc(var(--jlg-tab-h) + var(--jlg-tab-safe) + 10px);
		z-index: 1030;
		padding: 12px 14px 12px 12px;
		border: 1px solid rgba(255, 0, 144, .18);
		border-radius: 20px;
		background: rgba(255, 255, 255, .94);
		-webkit-backdrop-filter: saturate(1.6) blur(16px);
		backdrop-filter: saturate(1.6) blur(16px);
		box-shadow: 0 18px 40px -16px rgba(120, 20, 90, .5);
		color: var(--jlg-ink);
		font-family: var(--jlg-font);
		font-feature-settings: "palt" 1;
		opacity: 0;
		transform: translateY(16px);
		transition: opacity .45s ease, transform .45s var(--jlg-ease);
	}
	.jlgInstall.is-in{
		opacity: 1;
		transform: none;
	}
	.jlgInstall__icon{
		width: 48px;
		height: 48px;
		border-radius: 12px;
		object-fit: cover;
		box-shadow: var(--jlg-shadow-sm);
	}
	.jlgInstall .jlgInstall__text{
		margin: 0;
		padding: 0;
		font-size: 11.5px;
		line-height: 1.45;
		color: var(--jlg-muted);
		text-align: left;
	}
	.jlgInstall__text b{
		display: block;
		margin-bottom: 2px;
		color: var(--jlg-ink);
		font-size: 14px;
		font-weight: 900;
	}
	.jlgInstall__text span{
		display: block;
		font-weight: 500;
	}
	.jlgInstall__btn{
		height: 40px;
		margin: 0;
		padding: 0 16px;
		border: 0;
		border-radius: 999px;
		background: var(--jlg-grad);
		color: #fff;
		font-family: inherit;
		font-size: 13px;
		font-weight: 900;
		white-space: nowrap;
		cursor: pointer;
		box-shadow: 0 10px 20px -10px rgba(255, 0, 144, .8);
	}
	.jlgInstall__close{
		position: absolute;
		top: -10px;
		right: -6px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 30px;
		height: 30px;
		margin: 0;
		padding: 0;
		border: 1px solid var(--jlg-line);
		border-radius: 50%;
		background: #fff;
		color: var(--jlg-muted);
		box-shadow: var(--jlg-shadow-sm);
		cursor: pointer;
	}
	.jlgInstall__close::after{ /* 押しやすいように当たり判定を広げる */
		content: "";
		position: absolute;
		inset: -8px;
	}
	.jlgInstall__close svg{
		width: 14px;
		height: 14px;
		fill: none;
		stroke: currentColor;
		stroke-width: 2.4;
		stroke-linecap: round;
	}
	html.is-drawer-open .jlgInstall,
	html.is-sheet-open .jlgInstall{
		opacity: 0;
		pointer-events: none;
	}

	/* 手順パネル */
	.jlgSheet--guide{
		z-index: 1060; /* タブバーより上 */
	}
	.jlgSheet--guide .jlgSheet__panel{
		bottom: 0;
		padding-bottom: calc(26px + var(--jlg-tab-safe));
		max-height: calc(100dvh - 40px);
	}
	.jlgGuide{
		display: grid;
		gap: 10px;
		margin: 0;
		padding: 0;
		list-style: none;
	}
	.jlgGuide li{
		display: grid;
		grid-template-columns: 34px minmax(0, 1fr);
		align-items: center;
		gap: 12px;
		margin: 0;
		padding: 14px;
		border-radius: 16px;
		background: var(--jlg-tint);
		list-style: none;
	}
	.jlgGuide__num{
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 34px;
		height: 34px;
		border-radius: 50%;
		background: var(--jlg-grad);
		color: #fff;
		font-family: var(--jlg-font-en);
		font-size: 16px;
	}
	.jlgGuide li p{
		margin: 0;
		padding: 0;
		color: var(--jlg-ink);
		font-size: 14px;
		font-weight: 500;
		line-height: 1.6;
		text-align: left;
	}
	.jlgGuide li p b{
		font-weight: 900;
		color: var(--jlg-pink);
	}
	.jlgGuide__share{
		display: inline-block;
		width: 22px;
		height: 22px;
		margin: 0 3px;
		vertical-align: -5px;
		fill: none;
		stroke: #2f7cf6;
		stroke-width: 1.8;
		stroke-linecap: round;
		stroke-linejoin: round;
	}
	.jlgSheet .jlgGuide__note{
		margin: 14px 0 0;
		padding: 0;
		color: var(--jlg-muted);
		font-size: 12px;
		line-height: 1.6;
		text-align: left;
	}
}


/* ---------- サイドバー：FANZA・DLsite 販売案内 ---------- */
#mainContent#mainContent .jlgSide .jlgSideShop{
	position: relative;
	overflow: hidden;
	padding: 22px 18px 18px;
	border-radius: var(--jlg-radius);
	background: linear-gradient(150deg, #2a1c44 0%, #4a1f6e 55%, #a3157e 100%);
	color: #fff;
	box-shadow: var(--jlg-shadow);
	text-align: left;
}
#mainContent#mainContent .jlgSide .jlgSideShop::before{ /* 光のにじみ */
	content: "";
	position: absolute;
	top: -70px;
	right: -60px;
	width: 180px;
	height: 180px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 122, 196, .55), transparent 70%);
	pointer-events: none;
}
#mainContent#mainContent .jlgSide .jlgSideShop > *{
	position: relative;
}
#mainContent#mainContent .jlgSide .jlgSideShop__en{
	margin: 0 0 8px;
	padding: 0;
	color: #ffb3dc;
	font-family: var(--jlg-font-en);
	font-size: 11px;
	letter-spacing: .18em;
	line-height: 1;
}
#mainContent#mainContent .jlgSide h2.jlgSideShop__title{
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	color: #fff !important;
	font-family: var(--jlg-font);
	font-size: 21px;
	font-weight: 900;
	line-height: 1.35;
	letter-spacing: .02em;
	text-align: left;
}
#mainContent#mainContent .jlgSide h2.jlgSideShop__title::before,
#mainContent#mainContent .jlgSide h2.jlgSideShop__title::after{
	content: none;
}
#mainContent#mainContent .jlgSide .jlgSideShop__text{
	margin: 10px 0 0;
	padding: 0;
	color: rgba(255, 255, 255, .82);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.7;
}
#mainContent#mainContent .jlgSide ul.jlgSideShop__btns{
	display: grid;
	gap: 8px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}
#mainContent#mainContent .jlgSide ul.jlgSideShop__btns li{
	margin: 0;
	padding: 0;
	list-style: none;
}
#mainContent#mainContent .jlgSide .jlgSideShop__btns a{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-height: 46px;
	padding: 6px 34px 6px 16px;
	position: relative;
	border-radius: 999px;
	background: #fff;
	color: var(--jlg-ink);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition: transform .35s var(--jlg-ease), box-shadow .35s ease;
}
#mainContent#mainContent .jlgSide .jlgSideShop__btns a span{
	font-family: var(--jlg-font-en);
	font-size: 16px;
	letter-spacing: .04em;
}
#mainContent#mainContent .jlgSide .jlgSideShop__btns a.is-fanza{
	background: var(--jlg-grad);
	color: #fff;
}
#mainContent#mainContent .jlgSide .jlgSideShop__btns a::after{ /* 矢印 */
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 7px;
	height: 7px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
}
#mainContent#mainContent .jlgSide .jlgSideShop__btns a:hover{
	opacity: 1;
	transform: translateY(-2px);
	box-shadow: 0 12px 22px -12px rgba(0, 0, 0, .6);
}
@container jlgside (max-width: 239px){
	#mainContent#mainContent .jlgSide .jlgSideShop{ padding: 18px 12px 14px; }
	#mainContent#mainContent .jlgSide h2.jlgSideShop__title{ font-size: 17px; }
	#mainContent#mainContent .jlgSide .jlgSideShop__text{ font-size: 12px; }
	#mainContent#mainContent .jlgSide .jlgSideShop__btns a{ font-size: 12px; padding-left: 10px; padding-right: 26px; }
	#mainContent#mainContent .jlgSide .jlgSideShop__btns a span{ font-size: 14px; }
	#mainContent#mainContent .jlgSide .jlgSideShop__btns a::after{ right: 12px; }
}


/* =====================================================================
   スマホのヘッダー右側：ログイン中のみ「マイページ／ログアウト」
   ログアウト時はロゴを中央揃え
   ===================================================================== */
.jlgHeader__member{
	display: none;
}
@media screen and (max-width: 759px){
	.jlgHeader__inner{
		padding-right: 0;
		gap: 10px;
	}
	.jlgHeader__inner.is-guest{
		justify-content: center;
	}
	.jlgHeader__inner.is-member{
		justify-content: space-between;
	}
	.jlgHeader__inner.is-member .jlgHeader__logo{
		flex: 0 1 auto;
		min-width: 0;
	}
	.jlgHeader__inner.is-member .jlgHeader__logo img{
		width: auto;
		height: auto;
		max-width: 100%;
		max-height: 32px;
	}
	.jlgHeader__member{
		display: flex;
		flex: 0 0 auto;
		align-items: center;
		gap: 6px;
		font-family: var(--jlg-font);
		font-feature-settings: "palt" 1;
	}
	.jlgHeader__memberBtn{
		display: inline-flex;
		align-items: center;
		justify-content: center;
		height: 34px;
		padding: 0 11px;
		border-radius: 999px;
		font-size: 11.5px;
		font-weight: 700;
		line-height: 1;
		letter-spacing: .02em;
		white-space: nowrap;
		text-decoration: none;
		-webkit-tap-highlight-color: transparent;
		transition: transform .25s var(--jlg-ease), opacity .25s ease;
	}
	.jlgHeader__memberBtn:active{
		transform: scale(.94);
	}
	.jlgHeader__memberBtn.is-mypage{
		background: var(--jlg-grad);
		color: #fff;
		box-shadow: 0 8px 16px -10px rgba(255, 0, 144, .8);
	}
	.jlgHeader__memberBtn.is-logout{
		border: 1px solid var(--jlg-line);
		background: #fff;
		color: var(--jlg-muted);
	}
	/* メニューを開いている間は、右上の CLOSE ボタンと重なるので隠す */
	html.is-drawer-open .jlgHeader__member{
		opacity: 0;
		pointer-events: none;
	}
}
@media screen and (max-width: 360px){
	.jlgHeader__inner{ padding-right: 0; }
	.jlgHeader__memberBtn{ padding: 0 9px; font-size: 11px; }
}


/* =====================================================================
   スマホ用：販売案内（本編／おんぶ'sマン／リフカ）… sidebar.php の .jlgSidePromo
   PC では出さない（PC は .jlgSideShop のカード）
   ===================================================================== */
#mainContent#mainContent .jlgSide > .jlgSidePromo{
	display: none;
}
@media screen and (max-width: 759px){
	#mainContent#mainContent .jlgSide .jlgSidePromo{
		font-family: var(--jlg-font);
		text-align: left;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__en{
		margin: 0 0 6px;
		padding: 0;
		font-family: var(--jlg-font-en);
		font-size: 11px;
		letter-spacing: .2em;
		line-height: 1;
		background: var(--jlg-grad);
		-webkit-background-clip: text;
		background-clip: text;
		color: transparent;
	}
	#mainContent#mainContent .jlgSide h2.jlgSidePromo__head{
		margin: 0 0 16px !important;
		padding: 0 !important;
		border: 0 !important;
		background: none !important;
		color: var(--jlg-ink) !important;
		font-family: var(--jlg-font);
		font-size: 24px;
		font-weight: 900;
		line-height: 1.35;
		text-align: left;
	}
	#mainContent#mainContent .jlgSide h2.jlgSidePromo__head::before,
	#mainContent#mainContent .jlgSide h2.jlgSidePromo__head::after{
		content: none;
	}
	#mainContent#mainContent .jlgSide ul.jlgSidePromo__list{
		display: flex;
		gap: 12px;
		width: auto;
		margin: 0 calc(var(--jlg-gutter) * -1);
		padding: 4px var(--jlg-gutter) 18px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-left: var(--jlg-gutter);
		scrollbar-width: none;
		list-style: none;
	}
	#mainContent#mainContent .jlgSide ul.jlgSidePromo__list::-webkit-scrollbar{
		display: none;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__card{
		flex: 0 0 82%;
		max-width: 340px;
		display: flex;
		flex-direction: column;
		margin: 0;
		padding: 0;
		overflow: hidden;
		border-radius: var(--jlg-radius-lg);
		background: linear-gradient(160deg, #2a1c44 0%, #4a1f6e 60%, #a3157e 100%);
		box-shadow: var(--jlg-shadow);
		color: #fff;
		list-style: none;
		scroll-snap-align: start;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__card.is-onbusman{
		background: linear-gradient(160deg, #1d2350 0%, #3b2fa8 55%, #b43cc8 100%);
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__card.is-lifca_series{
		background: linear-gradient(160deg, #3a1230 0%, #8a1560 55%, #ff0090 100%);
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__visual{
		position: relative;
		aspect-ratio: 16 / 10;
		overflow: hidden;
		background: rgba(255, 255, 255, .08);
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__visual img{
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center 18%;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__visual::after{ /* 下に向かって本文の色へなじませる */
		content: "";
		position: absolute;
		inset: 45% 0 0;
		background: linear-gradient(180deg, transparent, rgba(30, 14, 50, .78));
		pointer-events: none;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__num{
		position: absolute;
		left: 16px;
		bottom: 8px;
		z-index: 1;
		font-family: var(--jlg-font-en);
		font-size: 44px;
		line-height: 1;
		color: #fff;
		opacity: .92;
		text-shadow: 0 4px 18px rgba(0, 0, 0, .45);
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__body{
		flex: 1;
		display: flex;
		flex-direction: column;
		padding: 16px 18px 18px;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__body p{
		margin: 0;
		padding: 0;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__label{
		font-family: var(--jlg-font-en);
		font-size: 10.5px;
		letter-spacing: .18em;
		line-height: 1;
		color: #ffb3dc;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__tag{
		margin-top: 8px;
		font-size: 12px;
		font-weight: 700;
		color: rgba(255, 255, 255, .85);
	}
	#mainContent#mainContent .jlgSide h3.jlgSidePromo__title{
		margin: 8px 0 0;
		padding: 0;
		border: 0;
		background: none;
		color: #fff;
		font-family: var(--jlg-font);
		font-size: 23px;
		font-weight: 900;
		line-height: 1.3;
		letter-spacing: .02em;
		text-align: left;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__text{
		margin-top: 10px;
		font-size: 13px;
		font-weight: 500;
		line-height: 1.75;
		color: rgba(255, 255, 255, .84);
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__btns{
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: minmax(0, 1fr);
		gap: 8px;
		margin-top: auto;
		padding-top: 16px;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__btns a{
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 46px;
		padding: 6px 10px;
		border-radius: 999px;
		font-size: 13.5px;
		font-weight: 900;
		line-height: 1.2;
		text-align: center;
		text-decoration: none;
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__btns a.is-main{
		background: #fff;
		color: var(--jlg-ink);
	}
	#mainContent#mainContent .jlgSide .jlgSidePromo__btns a.is-sub{
		border: 1.5px solid rgba(255, 255, 255, .7);
		color: #fff;
	}
}
