@charset "UTF-8";

/* ========== Reset ========== */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}

/* ========== Base ========== */
body.newlp3-body {
	letter-spacing: 0.05em;
	-webkit-text-size-adjust: 100%;
	font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, sans-serif;
	background: #fff;
	margin: 0;
	padding: 0;
}
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; }
a:hover { cursor: pointer; }
strong { font-weight: bold; }

/* ========== Utility ========== */
.clearfix:after { content: "."; display: block; height: 0; font-size: 0; clear: both; visibility: hidden; }

/* ================================================================
   PC Layout (min-width: 769px)
   参考: annin-music.com スタイルのPC2カラムレイアウト
   左サイドバー + 右スマホプレビューエリア
   ================================================================ */
@media screen and (min-width: 769px) {

	.sponly { display: none !important; }

	/* --- 背景画像 --- */
	.lp03-bg {
		position: fixed;
		top: -10%; left: 0;
		width: 100%; height: 120%;
		background-size: cover;
		background-position: center center;
		background-repeat: no-repeat;
		z-index: 0;
		will-change: transform;
	}

	/* --- 固定ヘッダー（LP幅に合わせる） --- */
	.lp03-header {
		position: fixed;
		top: 0;
		width: 36vw;
		max-width: 520px;
		min-width: 320px;
		height: 60px;
		background: rgba(255,255,255,0.95);
		box-shadow: 0 2px 8px rgba(0,0,0,0.1);
		z-index: 1000;
		backdrop-filter: blur(8px);
		border-radius: 0;
	}
	.lp03-header__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 0 16px;
		height: 100%;
	}
	.lp03-header__logo img {
		height: 40px;
		width: auto;
	}
	.lp03-header__entry-link img {
		height: 40px;
		width: auto;
	}
	.lp03-header__entry-link span {
		display: inline-block;
		background: #06c755;
		color: #fff;
		font-weight: bold;
		font-size: 14px;
		padding: 10px 24px;
		border-radius: 50px;
		transition: opacity 0.3s;
	}
	.lp03-header__entry-link:hover span,
	.lp03-header__entry-link:hover img {
		opacity: 0.8;
	}

	/* --- メインラッパー --- */
	.lp03-wrapper {
		display: flex;
		justify-content: center;
		align-items: flex-start;
		min-height: 100vh;
		padding-top: 60px;
		position: relative;
		z-index: 1;
		gap: 2vw;
	}

	/* --- 左サイドバー --- */
	.lp03-sidebar {
		position: fixed;
		top: 80px;
		width: 22vw;
		max-width: 370px;
		min-width: 180px;
		height: calc(100vh - 100px);
		display: flex;
		flex-direction: column;
		z-index: 10;
	}
	.lp03-sidebar__inner {
		display: flex;
		flex-direction: column;
		align-items: center;
		height: 100%;
		padding: 20px 0;
		overflow-y: auto;
	}

	/* サイドバー ロゴ */
	.lp03-sidebar__logo {
		margin-bottom: 24px;
		text-align: center;
	}
	.lp03-sidebar__logo img {
		max-width: 100%;
		height: auto;
	}

	/* サイドバー ナビボタン */
	.lp03-sidebar__nav {
		flex: 1;
		width: 100%;
		margin-bottom: 20px;
		overflow-y: auto;
		overflow-x: hidden;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}
	.lp03-sidebar__nav::-webkit-scrollbar {
		display: none;
	}
	.lp03-sidebar__nav ul {
		list-style: none;
		padding: 0;
		margin: 0;
	}
	.lp03-sidebar__nav ul li {
		margin-bottom: 8px;
	}

	.lp03-nav-btn {
		display: block;
		width: 100%;
		border-radius: 8px;
		overflow: hidden;
		transition: all 0.3s ease;
		opacity: 0.7;
		position: relative;
	}
	.lp03-nav-btn img {
		width: 100%;
		height: auto;
	}
	.lp03-nav-btn__img--active {
		display: none;
		position: absolute;
		top: 0; left: 0;
		width: 100%; height: 100%;
		object-fit: cover;
	}
	.lp03-nav-btn span {
		display: block;
		padding: 12px 16px;
		background: rgba(255,255,255,0.85);
		color: #333;
		font-size: 13px;
		font-weight: bold;
		text-align: center;
		border-radius: 8px;
		border: 2px solid transparent;
	}
	.lp03-nav-btn:hover {
		opacity: 1;
		transform: translateY(-2px);
	}
	.lp03-nav-btn.is-active {
		opacity: 1;
		transform: scale(1.03);
	}
	.lp03-nav-btn.is-active .lp03-nav-btn__img {
		display: none;
	}
	.lp03-nav-btn.is-active .lp03-nav-btn__img--active {
		display: block;
	}
	/* アクティブ画像がない場合のフォールバック */
	.lp03-nav-btn.is-active .lp03-nav-btn__img:only-child {
		display: block;
		box-shadow: 0 0 0 3px #06c755;
		border-radius: 8px;
	}
	.lp03-nav-btn.is-active span {
		background: #06c755;
		color: #fff;
		border-color: #06c755;
		border-radius: 8px;
	}

	/* サイドバー エントリーボタン（大きめ） */
	.lp03-sidebar__entry {
		width: 100%;
		padding: 10px 0;
		flex-shrink: 0;
	}
	.lp03-sidebar__entry-link {
		display: block;
		width: 100%;
		border-radius: 12px;
		overflow: hidden;
		transition: all 0.3s ease;
	}
	.lp03-sidebar__entry-link img {
		width: 100%;
		height: auto;
	}
	.lp03-sidebar__entry-link span {
		display: block;
		padding: 18px 0;
		background: #06c755;
		color: #fff;
		font-size: 18px;
		font-weight: bold;
		text-align: center;
		border-radius: 12px;
		transition: all 0.3s;
	}
	.lp03-sidebar__entry-link:hover {
		transform: translateY(-3px);
		box-shadow: 0 6px 20px rgba(6,199,85,0.4);
	}
	.lp03-sidebar__entry-link:hover span {
		background: #05b34c;
	}

	/* --- 右側：コンテンツエリア --- */
	.lp03-main {
		width: 36vw;
		max-width: 520px;
		min-width: 320px;
		flex-shrink: 0;
		padding-bottom: 0;
		margin: 0 auto;
	}
	.lp03-phone-frame {
		width: 100%;
		background: #fff;
		overflow: hidden;
		position: relative;
	}

	/* コンテンツ */
	.lp03-content {
		width: 100%;
	}
	.lp03-section img {
		width: 100%;
		height: auto;
		display: block;
	}
	.lp03-section a {
		display: block;
	}
	.lp03-video-wrap {
		width: 100%;
	}
	.lp03-video-wrap iframe,
	.lp03-video-wrap video {
		width: 100%;
		height: auto;
		display: block;
	}
	.lp03-video-wrap iframe {
		height: 236px;
	}

	/* 固定LINEボタン（PC: 画面下部に固定、フッター付近で非表示→プレースホルダーに表示） */
	.lp03-fixed-line {
		position: fixed;
		bottom: 0;
		width: 36vw;
		max-width: 520px;
		min-width: 320px;
		z-index: 50;
		background: transparent;
		padding: 0;
	}
	.lp03-line-placeholder {
		width: 100%;
	}
	.lp03-line-settled {
		display: block !important;
	}
	.lp03-fixed-line__link {
		display: block;
		width: 100%;
	}
	.lp03-fixed-line__link img {
		width: 100%;
		height: auto;
		display: block;
	}
	.lp03-fixed-line__link:hover {
		opacity: 0.9;
	}

	/* --- フッター（phone-frame内に配置済み） --- */
	.lp03-footer {
		width: 100%;
	}
}


/* ================================================================
   SP Layout (max-width: 768px)
   従来のNewLP02と同様のモバイルファーストレイアウト
   ================================================================ */
@media screen and (max-width: 768px) {

	.pconly { display: none !important; }

	body.newlp3-body {
		background: #fff;
	}

	.lp03-bg { display: none; }

	.lp03-wrapper {
		display: block;
	}

	.lp03-main {
		width: 100%;
	}
	.lp03-phone-frame {
		width: 100%;
		background: #fff;
	}
	.lp03-content {
		width: 100%;
	}
	.lp03-section img {
		width: 100%;
		height: auto;
		display: block;
	}
	.lp03-section a {
		display: block;
	}
	.lp03-video-wrap {
		width: 100%;
	}
	.lp03-video-wrap iframe,
	.lp03-video-wrap video {
		width: 100%;
		display: block;
	}
	.lp03-video-wrap iframe {
		height: 56vw;
	}

	/* SP固定ヘッダー */
	.lp03-header {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 50px;
		background: rgba(255,255,255,0.95);
		box-shadow: 0 2px 8px rgba(0,0,0,0.1);
		z-index: 1000;
		backdrop-filter: blur(8px);
		box-sizing: border-box;
	}
	.lp03-header__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 0 12px;
		height: 100%;
		box-sizing: border-box;
	}
	.lp03-header__logo {
		flex: 1;
		min-width: 0;
		overflow: hidden;
		margin-right: 10px;
	}
	.lp03-header__logo img {
		height: 36px;
		width: auto;
		max-width: 100%;
		object-fit: contain;
	}
	.lp03-header__entry {
		flex-shrink: 0;
	}
	.lp03-header__entry-link img {
		height: 30px;
		width: auto;
	}
	.lp03-header__entry-link span {
		display: inline-block;
		background: #06c755;
		color: #fff;
		font-weight: bold;
		font-size: 12px;
		padding: 8px 16px;
		border-radius: 50px;
		white-space: nowrap;
	}

	.lp03-wrapper {
		padding-top: 50px;
	}

	/* SP固定LINEボタン */
	.lp03-fixed-line {
		position: fixed;
		bottom: 0; left: 0;
		width: 100%;
		z-index: 999;
		background: transparent;
		padding: 0;
	}
	.lp03-fixed-line__link {
		display: block;
		width: 100%;
	}
	.lp03-fixed-line__link img {
		width: 100%;
		height: auto;
		display: block;
	}
	.lp03-line-placeholder {
		width: 100%;
	}

	/* フッター */
	.lp03-footer {
		width: 100%;
	}
}


/* ========== Footer (共通) ========== */
.lp03-footer { background: transparent; }
.lp03-footer .footer_menu { padding: 10px 0; text-align: center; background: transparent; }
.lp03-footer .footer_menu ul { font-size: 0; }
.lp03-footer .footer_menu ul li { font-size: 12px; display: inline-block; padding-right: 1em; margin-right: 1em; border-right: solid 1px #131313; }
.lp03-footer .footer_menu ul li:last-child { margin-right: 0; padding-right: 0; border: none; }
.lp03-footer .footer_menu ul li a { color: #131313; }
.lp03-footer .footer_menu ul li a:hover { text-decoration: underline; }
.lp03-footer #copyright { background: #131313; text-align: center; padding: 10px 0; }
.lp03-footer #copyright p { font-size: 10px; color: #fff; }


/* ================================================================
   Animations - ボタンアニメーション
   ACFで切り替え可能: none / pulse / sparkle
   ================================================================ */

/* --- 拍動（パルス）エフェクト --- */
.lp03-anim-pulse {
	animation: lp03-pulse 2s ease-in-out infinite;
}
@keyframes lp03-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.06); }
}
/* ホバー時はアニメ停止 */
.lp03-anim-pulse:hover {
	animation: none;
	transform: scale(1.03);
}

/* --- キラキラ（スパークル）エフェクト --- */
.lp03-anim-sparkle {
	position: relative;
	overflow: hidden;
}
.lp03-anim-sparkle::before,
.lp03-anim-sparkle::after {
	content: '';
	position: absolute;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	pointer-events: none;
	z-index: 10;
}
.lp03-anim-sparkle::before {
	background: linear-gradient(
		105deg,
		transparent 40%,
		rgba(255,255,255,0.6) 45%,
		rgba(255,255,255,0.8) 50%,
		rgba(255,255,255,0.6) 55%,
		transparent 60%
	);
	animation: lp03-sparkle-shine 3s ease-in-out infinite;
}
@keyframes lp03-sparkle-shine {
	0% { transform: translateX(-120%) rotate(25deg); }
	30%, 100% { transform: translateX(120%) rotate(25deg); }
}

/* --- 拍動+グロー（強調版） --- */
.lp03-anim-glow {
	animation: lp03-glow 2s ease-in-out infinite;
}
@keyframes lp03-glow {
	0%, 100% {
		transform: scale(1);
		box-shadow: 0 0 5px rgba(6,199,85,0.3);
	}
	50% {
		transform: scale(1.05);
		box-shadow: 0 0 25px rgba(6,199,85,0.6), 0 0 50px rgba(6,199,85,0.3);
	}
}
.lp03-anim-glow:hover {
	animation: none;
}

/* --- バウンス --- */
.lp03-anim-bounce {
	animation: lp03-bounce 2s ease infinite;
}
@keyframes lp03-bounce {
	0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
	40% { transform: translateY(-8px); }
	60% { transform: translateY(-4px); }
}
.lp03-anim-bounce:hover {
	animation: none;
}


/* ========== Modal (既存互換) ========== */
.modal { display: none; position: fixed; top: 0; left: 0; height: 100vh; width: 100%; z-index: 100; }
.modal-bg { position: absolute; height: 100vh; width: 100%; z-index: 101; background: rgba(0, 0, 0, 0.8); }
.modal-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); overflow: scroll; height: 80%; width: 60%; background: white; padding: 40px; z-index: 102; text-align: center; }
body.fixed { position: fixed; width: 100%; height: 100%; left: 0; }


/* ================================================================
   漫画カルーセル & ビューア
   ================================================================ */

/* --- セクションタイトル --- */
.manga-section__title {
	text-align: center;
	padding: 20px 10px 16px;
}

.manga-section__title-en {
	display: block;
	font-size: 20px;
	font-style: italic;
	color: #4ecdc4;
	margin-bottom: 2px;
}

.manga-section__title-ja {
	display: block;
	font-size: 18px;
	font-weight: bold;
	color: #333;
}

/* --- カルーセル --- */
.lp03-manga-section {
	overflow: hidden;
	position: relative;
	width: 100%;
	max-width: 100%;
	padding-bottom: 10px;
}

.manga-carousel {
	position: relative;
	overflow: hidden;
	width: 100%;
	max-width: 100%;
	padding: 0 40px;
	box-sizing: border-box;
}

.manga-carousel__track {
	display: flex !important;
	flex-wrap: nowrap !important;
	transition: transform 0.3s ease;
	width: 100%;
}

.manga-carousel__slide {
	min-width: 100%;
	max-width: 100%;
	flex-shrink: 0;
	padding: 0 8px;
	box-sizing: border-box;
}

.manga-card {
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,0.1);
	max-width: 100%;
}

.manga-card__thumb {
	cursor: pointer;
	overflow: hidden;
	position: relative;
	aspect-ratio: 3 / 4;
	max-width: 100%;
}

.manga-card__thumb img {
	width: 100%;
	height: 100%;
	display: block !important;
	object-fit: cover;
	transition: transform 0.3s ease;
	max-width: 100%;
}

.manga-card__thumb:hover img {
	transform: scale(1.03);
}

.manga-card__title {
	font-size: 18px;
	font-weight: bold;
	padding: 12px 14px;
	color: #333;
	text-align: center;
}

/* カルーセル矢印 */
.manga-carousel__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255,255,255,0.85);
	border: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	font-size: 16px;
	cursor: pointer;
	z-index: 10;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.manga-carousel__arrow--prev { left: 4px; }
.manga-carousel__arrow--next { right: 4px; }
.manga-carousel__arrow:hover { background: rgba(255,255,255,1); }

/* --- ポップアップビューア --- */
.manga-viewer-overlay {
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 100%;
	z-index: 9999;
}

.manga-viewer-overlay__bg {
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
	background-color: rgba(0,0,0,0.85);
	background-size: cover;
	background-position: center;
}

.manga-viewer__container {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.manga-viewer__track {
	display: flex;
	transition: transform 0.3s ease;
	height: 100%;
}

.manga-viewer__page {
	min-width: 100vw;
	max-width: 100vw;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 50px 10px 60px;
	box-sizing: border-box;
	overflow: hidden;
}

.manga-viewer__page img {
	max-width: calc(100vw - 20px);
	max-height: 85vh;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 4px;
}

.manga-viewer__close {
	position: absolute;
	top: 12px; right: 12px;
	background: rgba(255,255,255,0.9);
	border: none;
	width: 40px; height: 40px;
	border-radius: 50%;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #333;
}

.manga-viewer__close:hover {
	background: #fff;
}

.manga-viewer__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255,255,255,0.8);
	border: none;
	width: 40px; height: 40px;
	border-radius: 50%;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
}

.manga-viewer__arrow--prev { left: 12px; }
.manga-viewer__arrow--next { right: 12px; }
.manga-viewer__arrow:hover { background: rgba(255,255,255,1); }

.manga-viewer__counter {
	position: absolute;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%);
	color: #fff;
	font-size: 14px;
	background: rgba(0,0,0,0.5);
	padding: 4px 14px;
	border-radius: 20px;
	z-index: 10;
}

/* --- SP調整 --- */
@media screen and (max-width: 768px) {
	.manga-carousel {
		padding: 0 36px;
	}
	.manga-carousel__slide {
		padding: 0 6px;
	}
	.manga-carousel__arrow {
		width: 28px; height: 28px;
		font-size: 13px;
	}
	.manga-carousel__arrow--prev { left: 3px; }
	.manga-carousel__arrow--next { right: 3px; }
	.manga-card__title {
		font-size: 13px;
		padding: 8px 10px;
	}
	.manga-section__title-en {
		font-size: 16px;
	}
	.manga-section__title-ja {
		font-size: 15px;
	}
	.manga-viewer__page {
		padding: 50px 48px 60px;
	}
	.manga-viewer__page img {
		max-width: calc(100vw - 96px);
	}
	.manga-viewer__close {
		top: 10px; right: 10px;
		width: 34px; height: 34px;
		font-size: 20px;
	}
	.manga-viewer__arrow {
		width: 32px; height: 32px;
		font-size: 16px;
	}
}
