@charset "utf-8";
/* =====================================================================
   じゃぱにーずリフトガール — 持上市紹介 2026
   対象：page-mochiage.php（固定ページ「持上市紹介」） … .jlgCityPage
   読み込み：header.php（持上市紹介ページでのみ）
   ===================================================================== */

#mainContent#mainContent.jlgCityPage .left{
	font-family: var(--jlg-font);
	font-feature-settings: "palt" 1;
	color: var(--jlg-ink);
}

/* ---------- ようこそ（夕暮れの街） ---------- */
#mainContent#mainContent.jlgCityPage .left .jlgCityHero{
	position: relative;
	margin: 0 0 28px;
	padding: 56px 24px 130px;
	overflow: hidden;
	border-radius: var(--jlg-radius-lg);
	background: linear-gradient(180deg, #2b1a55 0%, #7b2f8f 45%, #ff6fa8 80%, #ffc59e 100%);
	color: #fff;
	text-align: center;
	isolation: isolate;
	box-shadow: 0 28px 56px -32px rgba(60, 10, 60, .6);
}
#mainContent#mainContent.jlgCityPage .left .jlgCityHero__sky i{
	position: absolute;
	left: 50%;
	bottom: 40px;
	z-index: -2;
	width: 70%;
	max-width: 420px;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, #fff3c4 0%, #ffc28a 40%, rgba(255, 140, 150, 0) 70%);
	opacity: .85;
	transform: translateX(-50%);
}
#mainContent#mainContent.jlgCityPage .left .jlgCityHero__skyline{
	position: absolute;
	left: -2%;
	right: -2%;
	bottom: -4px;
	z-index: -1;
	height: 120px;
	background:
		radial-gradient(circle at 78% 30%, transparent 0 26px, #2a1540 27px 30px, transparent 31px) no-repeat,
		linear-gradient(#2a1540, #2a1540) 78% 100% / 3px 60% no-repeat,
		linear-gradient(#2a1540, #2a1540) 4% 100% / 7% 55% no-repeat,
		linear-gradient(#2a1540, #2a1540) 12% 100% / 5% 80% no-repeat,
		linear-gradient(#2a1540, #2a1540) 18% 100% / 9% 45% no-repeat,
		linear-gradient(#2a1540, #2a1540) 28% 100% / 4% 95% no-repeat,
		linear-gradient(#2a1540, #2a1540) 33% 100% / 12% 38% no-repeat,
		linear-gradient(#2a1540, #2a1540) 46% 100% / 6% 70% no-repeat,
		linear-gradient(#2a1540, #2a1540) 53% 100% / 14% 42% no-repeat,
		linear-gradient(#2a1540, #2a1540) 68% 100% / 7% 58% no-repeat,
		linear-gradient(#2a1540, #2a1540) 86% 100% / 8% 75% no-repeat,
		linear-gradient(#2a1540, #2a1540) 95% 100% / 6% 50% no-repeat,
		linear-gradient(#2a1540, #2a1540) 0 100% / 100% 18% no-repeat;
}
#mainContent#mainContent.jlgCityPage .left p.jlgCityHero__stamp{
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	margin: 0 0 20px;
	padding: 10px 22px;
	border: 2px solid rgba(255, 255, 255, .85);
	border-radius: 999px;
	outline: 1px solid rgba(255, 255, 255, .45);
	outline-offset: 4px;
	transform: rotate(-3deg);
}
#mainContent#mainContent.jlgCityPage .left p.jlgCityHero__stamp span{
	font-family: var(--jlg-font-en);
	font-size: 10.5px;
	letter-spacing: .3em;
	opacity: .85;
}
#mainContent#mainContent.jlgCityPage .left p.jlgCityHero__stamp b{
	font-family: var(--jlg-font-en);
	font-size: 20px;
	font-weight: 400;
	letter-spacing: .14em;
}
#mainContent#mainContent.jlgCityPage .left h1.jlgCityHero__title{
	margin: 0;
	padding: 0;
	background: none;
	color: #fff;
	font-family: var(--jlg-font);
	font-size: clamp(28px, 3.6vw, 46px);
	font-weight: 900;
	line-height: 1.35;
	letter-spacing: .04em;
	text-align: center;
	text-shadow: 0 8px 30px rgba(60, 10, 70, .45);
}
#mainContent#mainContent.jlgCityPage .left h1.jlgCityHero__title em{
	font-style: normal;
	font-weight: inherit;
	color: #fff3c4;
}

/* ---------- 見出し ---------- */
#mainContent#mainContent.jlgCityPage .left h2.jlgCityLbl{
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 16px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--jlg-ink);
	font-family: var(--jlg-font);
	font-size: 20px;
	font-weight: 900;
	letter-spacing: .06em;
	text-align: left;
}
#mainContent#mainContent.jlgCityPage .left h2.jlgCityLbl::before{
	content: "\f279";
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 12px;
	background: var(--jlg-grad);
	color: #fff;
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 14px;
	box-shadow: 0 8px 18px -8px rgba(255, 0, 144, .7);
}
#mainContent#mainContent.jlgCityPage .left h2.jlgCityLbl.is-spots::before{
	content: "\f3c5";
}
#mainContent#mainContent.jlgCityPage .left h2.jlgCityLbl::after{
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: linear-gradient(90deg, rgba(255, 0, 144, .3), transparent);
}

/* ---------- 持上市について ---------- */
#mainContent#mainContent.jlgCityPage .left .jlgCityAbout{
	margin: 0 0 36px;
	padding: 24px 24px 22px;
	border: 1px solid var(--jlg-line);
	border-radius: var(--jlg-radius-lg);
	background: var(--jlg-surface);
	box-shadow: var(--jlg-shadow-sm);
}
#mainContent#mainContent.jlgCityPage .left .jlgCityAbout__text p{
	margin: 0 0 1em;
	font-size: 15px;
	line-height: 2;
	letter-spacing: .03em;
	text-align: left;
}
#mainContent#mainContent.jlgCityPage .left .jlgCityAbout__text p.jlgCityAbout__note{
	color: var(--jlg-muted);
	font-size: 12px;
}
#mainContent#mainContent.jlgCityPage .left dl.jlgCityFacts{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin: 16px 0 0;
	padding: 0;
}
#mainContent#mainContent.jlgCityPage .left dl.jlgCityFacts > div{
	padding: 12px 14px;
	border-radius: 14px;
	background: #fff8fc;
}
#mainContent#mainContent.jlgCityPage .left dl.jlgCityFacts dt{
	margin: 0 0 4px;
	color: var(--jlg-muted);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .06em;
}
#mainContent#mainContent.jlgCityPage .left dl.jlgCityFacts dd{
	margin: 0;
	color: var(--jlg-ink);
	font-size: 15px;
	font-weight: 700;
}
#mainContent#mainContent.jlgCityPage .left dl.jlgCityFacts dd b{
	margin-right: 2px;
	color: var(--jlg-pink);
	font-family: var(--jlg-font-en);
	font-size: 22px;
	font-weight: 400;
}

/* ---------- スポットのジャンプリンク ---------- */
#mainContent#mainContent.jlgCityPage .left nav.jlgCityNav{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 22px;
}
#mainContent#mainContent.jlgCityPage .left nav.jlgCityNav a{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 36px;
	padding: 0 14px;
	border: 1px solid var(--jlg-line);
	border-radius: 999px;
	background: #fff;
	color: var(--jlg-ink);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: background .25s ease, color .25s ease, border-color .25s ease;
}
#mainContent#mainContent.jlgCityPage .left nav.jlgCityNav a::before{
	content: "\f3c5";
	color: var(--jlg-pink);
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 11px;
	transition: color .25s ease;
}
#mainContent#mainContent.jlgCityPage .left nav.jlgCityNav a:hover{
	border-color: transparent;
	background: var(--jlg-grad);
	color: #fff;
}
#mainContent#mainContent.jlgCityPage .left nav.jlgCityNav a:hover::before{
	color: #fff;
}

/* ---------- 施設カード ---------- */
#mainContent#mainContent.jlgCityPage .left .jlgCitySpots{
	display: grid;
	gap: 20px;
	margin: 0 0 40px;
}
#mainContent#mainContent.jlgCityPage .left article.jlgSpot{
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: 22px;
	padding: 16px;
	border: 1px solid var(--jlg-line);
	border-radius: var(--jlg-radius-lg);
	background: var(--jlg-surface);
	box-shadow: var(--jlg-shadow-sm);
	scroll-margin-top: calc(var(--jlg-head-h) + 20px);
}
#mainContent#mainContent.jlgCityPage .left article.jlgSpot:nth-child(even) .jlgSpot__photo{
	order: 2;
}
#mainContent#mainContent.jlgCityPage .left figure.jlgSpot__photo{
	position: relative;
	align-self: start;
	width: 100%;
	aspect-ratio: 4 / 3;
	margin: 0;
	overflow: hidden;
	border-radius: 16px;
	background: linear-gradient(135deg, #3a2266, #7b2a8c 55%, #c2257e);
}
#mainContent#mainContent.jlgCityPage .left figure.jlgSpot__photo img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 1;
}
#mainContent#mainContent.jlgCityPage .left span.jlgSpot__noimg{
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .05) 0 14px, transparent 14px 28px);
	color: rgba(255, 255, 255, .85);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
}
#mainContent#mainContent.jlgCityPage .left span.jlgSpot__noimg i::before{
	content: "\f030";
	font-family: "Font Awesome 6 Free";
	font-style: normal;
	font-weight: 900;
	font-size: 22px;
	opacity: .8;
}
#mainContent#mainContent.jlgCityPage .left span.jlgSpot__num{
	position: absolute;
	top: 10px;
	left: 10px;
	display: grid;
	place-items: center;
	min-width: 40px;
	height: 40px;
	padding: 0 8px;
	border-radius: 12px;
	background: rgba(255, 255, 255, .92);
	color: var(--jlg-pink);
	font-family: var(--jlg-font-en);
	font-size: 17px;
	box-shadow: 0 6px 14px -6px rgba(0, 0, 0, .4);
}
#mainContent#mainContent.jlgCityPage .left .jlgSpot__body{
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 4px 4px 2px;
}
#mainContent#mainContent.jlgCityPage .left p.jlgSpot__area{
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 8px;
	color: var(--jlg-muted);
	font-size: 12.5px;
	font-weight: 700;
	text-align: left;
}
#mainContent#mainContent.jlgCityPage .left p.jlgSpot__area span{
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--jlg-grad);
	color: #fff;
	font-family: var(--jlg-font-en);
	font-size: 11px;
	letter-spacing: .14em;
}
#mainContent#mainContent.jlgCityPage .left h3.jlgSpot__name{
	margin: 0 0 10px;
	padding: 0;
	border: 0;
	color: var(--jlg-ink);
	font-family: var(--jlg-font);
	font-size: 20px;
	font-weight: 900;
	line-height: 1.45;
	letter-spacing: .03em;
	text-align: left;
}
#mainContent#mainContent.jlgCityPage .left p.jlgSpot__text{
	margin: 0 0 14px;
	color: var(--jlg-ink);
	font-size: 14px;
	line-height: 1.9;
	text-align: left;
}
#mainContent#mainContent.jlgCityPage .left .jlgSpot__works{
	margin-top: auto;
	padding: 12px 14px;
	border-radius: 14px;
	background: #fbf6fa;
}
#mainContent#mainContent.jlgCityPage .left p.jlgSpot__worksLbl{
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 8px;
	color: var(--jlg-pink);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .06em;
	text-align: left;
}
#mainContent#mainContent.jlgCityPage .left p.jlgSpot__worksLbl::before{
	content: "\f02d";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 11px;
}
#mainContent#mainContent.jlgCityPage .left .jlgSpot__works ul{
	display: grid;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
#mainContent#mainContent.jlgCityPage .left .jlgSpot__works li{
	margin: 0;
	padding: 0;
	list-style: none;
}
#mainContent#mainContent.jlgCityPage .left .jlgSpot__works li > *{
	position: relative;
	display: block;
	padding: 8px 30px 8px 12px;
	border: 1px solid var(--jlg-line);
	border-radius: 10px;
	background: #fff;
	color: var(--jlg-ink);
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
	transition: border-color .25s ease, color .25s ease;
}
#mainContent#mainContent.jlgCityPage .left .jlgSpot__works li > a::after{
	content: "\f054";
	position: absolute;
	top: 50%;
	right: 12px;
	margin-top: -7px;
	color: var(--jlg-pink);
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 10px;
	line-height: 14px;
}
#mainContent#mainContent.jlgCityPage .left .jlgSpot__works li > a:hover{
	border-color: rgba(255, 0, 144, .3);
	color: var(--jlg-pink);
}
#mainContent#mainContent.jlgCityPage .left .jlgSpot__works ul.is-empty li > span{
	border-style: dashed;
	background: transparent;
	color: var(--jlg-muted);
	font-weight: 500;
}

/* 作品リンク（サムネイル＋第○話＋タイトル） */
#mainContent#mainContent.jlgCityPage .left .jlgSpot__works li > a{
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	padding: 6px 30px 6px 6px;
}
#mainContent#mainContent.jlgCityPage .left span.jlgSpot__wThumb{
	display: block;
	width: 44px;
	height: 44px;
	overflow: hidden;
	border-radius: 8px;
	background: linear-gradient(135deg, #3a2266, #c2257e);
}
#mainContent#mainContent.jlgCityPage .left span.jlgSpot__wThumb img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 1;
}
#mainContent#mainContent.jlgCityPage .left span.jlgSpot__wBody{
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
#mainContent#mainContent.jlgCityPage .left span.jlgSpot__wBody small{
	color: var(--jlg-pink);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
}
#mainContent#mainContent.jlgCityPage .left span.jlgSpot__wBody b{
	display: -webkit-box;
	overflow: hidden;
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.45;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}
#mainContent#mainContent.jlgCityPage .left .jlgSpot__works ul{
	max-height: 320px;
	overflow-y: auto;
	overscroll-behavior: contain;
}
#mainContent#mainContent.jlgCityPage .left p.jlgCityEmpty{
	margin: 0 0 40px;
	padding: 40px 20px;
	border: 1px dashed rgba(255, 0, 144, .3);
	border-radius: var(--jlg-radius-lg);
	background: #fff8fc;
	color: var(--jlg-muted);
	text-align: center;
}

/* ---------- スマホ ---------- */
@media screen and (max-width: 759px){
	#mainContent#mainContent.jlgCityPage .left .jlgCityHero{
		padding: 36px 16px 140px;
		border-radius: 20px;
	}
	#mainContent#mainContent.jlgCityPage .left h1.jlgCityHero__title{
		font-size: 26px;
	}
	#mainContent#mainContent.jlgCityPage .left .jlgCityAbout{
		padding: 18px 16px;
		border-radius: 20px;
	}
	#mainContent#mainContent.jlgCityPage .left .jlgCityAbout__text p{
		font-size: 14.5px;
	}
	#mainContent#mainContent.jlgCityPage .left dl.jlgCityFacts{
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
	}
	#mainContent#mainContent.jlgCityPage .left article.jlgSpot{
		grid-template-columns: minmax(0, 1fr);
		gap: 14px;
		padding: 12px;
		border-radius: 20px;
	}
	#mainContent#mainContent.jlgCityPage .left article.jlgSpot:nth-child(even) .jlgSpot__photo{
		order: 0;
	}
	#mainContent#mainContent.jlgCityPage .left h3.jlgSpot__name{
		font-size: 18px;
	}
	#mainContent#mainContent.jlgCityPage .left h2.jlgCityLbl{
		font-size: 18px;
	}
}
