/* ============================================================
 * JustNewsWP 旅游风格样式
 * 覆盖：首页模块、产品库、产品详情、活动、景区聚合专题页
 * 断点：1200 / 992 / 768 / 480
 * ============================================================ */

.jwp-travel-site {
	--jwp-primary: #0a84ff;
	--jwp-primary-dark: #0066cc;
	--jwp-accent: #ff7a45;
	--jwp-green: #12b886;
	--jwp-ink: #16202f;
	--jwp-gray: #6b7785;
	--jwp-light: #9aa6b2;
	--jwp-line: #edf0f4;
	--jwp-bg: #f5f8fb;
	--jwp-radius: 12px;
	--jwp-shadow: 0 4px 18px rgba(22, 32, 47, .07);
	--jwp-shadow-hover: 0 12px 32px rgba(22, 32, 47, .14);
}

/* ---------- 通用 ---------- */
.jwp-travel-site .jwp-page {
	padding-bottom: 40px;
}

/* 主题 .wrap 为 flex（适配 main+sidebar），定制页恢复块级布局 */
.jwp-travel-site .jwp-page.jwp-page {
	display: block;
}

.jwp-page-head {
	margin: 18px 0 22px;
}

.jwp-page-title {
	font-size: 26px;
	font-weight: 700;
	color: var(--jwp-ink);
	margin: 0 0 8px;
	line-height: 1.35;
}

.jwp-page-desc {
	color: var(--jwp-gray);
	font-size: 14px;
	margin: 0 0 16px;
}

.jwp-btn-primary,
.jwp-btn-ghost,
.jwp-btn-book,
.jwp-btn-disabled {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 42px;
	padding: 0 20px;
	border-radius: 8px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: all .2s ease;
	box-sizing: border-box;
}

.jwp-btn-primary,
.jwp-btn-book {
	background: linear-gradient(135deg, var(--jwp-primary), #2f9bff);
	color: #fff !important;
	border: none;
	box-shadow: 0 6px 16px rgba(10, 132, 255, .28);
}

.jwp-btn-primary:hover,
.jwp-btn-book:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(10, 132, 255, .36);
	color: #fff;
}

.jwp-btn-ghost {
	border: 1px solid var(--jwp-line);
	background: #fff;
	color: var(--jwp-ink) !important;
}

.jwp-btn-ghost:hover {
	border-color: var(--jwp-primary);
	color: var(--jwp-primary) !important;
}

.jwp-btn-ghost.is-light {
	background: rgba(255, 255, 255, .16);
	border-color: rgba(255, 255, 255, .5);
	color: #fff !important;
	backdrop-filter: blur(4px);
}

.jwp-btn-disabled {
	background: #eef1f5;
	color: var(--jwp-light);
	cursor: not-allowed;
	width: 100%;
}

.jwp-empty {
	text-align: center;
	padding: 70px 20px;
	color: var(--jwp-gray);
	background: #fff;
	border-radius: var(--jwp-radius);
}

.jwp-empty i {
	font-size: 46px;
	color: var(--jwp-light);
	display: block;
	margin-bottom: 12px;
}

.jwp-empty p {
	margin-bottom: 16px;
}

/* ---------- 网格 ---------- */
.jwp-product-grid,
.jwp-activity-grid,
.jwp-dest-grid {
	display: grid;
	gap: 20px;
}

.jwp-cols-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.jwp-cols-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.jwp-cols-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* 活动网格默认 3 列（无 cols 修饰时） */
.jwp-activity-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* ---------- 首屏 ---------- */
.jwp-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 420px;
	margin: 0 0 24px;
	background: linear-gradient(135deg, #0b4f8a 0%, #0a84ff 45%, #12b886 100%);
	background-size: cover;
	background-position: center;
	border-radius: 0;
	overflow: hidden;
}

.jwp-hero-mask {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 24, 44, .55), rgba(8, 24, 44, .35));
}

.jwp-hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 720px;
	padding: 0 20px;
	text-align: center;
	color: #fff;
}

.jwp-hero-title {
	font-size: 40px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 12px;
	color: #fff;
	letter-spacing: 1px;
	text-shadow: 0 2px 18px rgba(0, 0, 0, .28);
}

.jwp-hero-sub {
	font-size: 16px;
	opacity: .92;
	margin: 0 0 26px;
	line-height: 1.7;
}

.jwp-hero-search {
	display: flex;
	align-items: center;
	background: #fff;
	border-radius: 999px;
	padding: 6px 6px 6px 18px;
	box-shadow: 0 14px 34px rgba(0, 0, 0, .22);
}

.jwp-hero-search > i {
	color: var(--jwp-gray);
	font-size: 18px;
	margin-right: 8px;
}

.jwp-hero-search input {
	flex: 1;
	min-width: 0;
	border: none;
	outline: none;
	height: 40px;
	font-size: 15px;
	color: var(--jwp-ink);
	background: transparent;
}

.jwp-hero-search button {
	flex: none;
	height: 40px;
	padding: 0 26px;
	border: none;
	border-radius: 999px;
	background: var(--jwp-primary);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background .2s;
}

.jwp-hero-search button:hover {
	background: var(--jwp-primary-dark);
}

.jwp-hero-quick {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.jwp-quick-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	border: 1px solid rgba(255, 255, 255, .3);
	color: #fff !important;
	font-size: 14px;
	text-decoration: none;
	backdrop-filter: blur(6px);
	transition: all .2s;
}

.jwp-quick-link:hover {
	background: rgba(255, 255, 255, .28);
	transform: translateY(-2px);
}

/* ---------- 模块通用区块头 ---------- */
.jwp-travel-site .sec-panel {
	background: #fff;
	border-radius: var(--jwp-radius);
	box-shadow: var(--jwp-shadow);
	padding: 20px 22px 22px;
	margin-bottom: 24px;
}

.jwp-travel-site .sec-panel-head {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--jwp-line);
	padding-bottom: 14px;
}

.jwp-travel-site .sec-panel-head h2 {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	color: var(--jwp-ink);
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}

.jwp-travel-site .sec-panel-head h2 small {
	font-size: 13px;
	font-weight: 400;
	color: var(--jwp-light);
}

.jwp-travel-site .sec-panel-head .more {
	margin-left: auto;
	font-size: 13px;
	color: var(--jwp-gray) !important;
	display: inline-flex;
	align-items: center;
	gap: 2px;
	text-decoration: none;
}

.jwp-travel-site .sec-panel-head .more:hover {
	color: var(--jwp-primary) !important;
}

/* tabs */
.jwp-tabs {
	display: inline-flex;
	background: var(--jwp-bg);
	border-radius: 999px;
	padding: 4px;
	gap: 2px;
}

.jwp-tab {
	border: none;
	background: transparent;
	color: var(--jwp-gray);
	font-size: 14px;
	padding: 6px 16px;
	border-radius: 999px;
	cursor: pointer;
	transition: all .2s;
	white-space: nowrap;
}

.jwp-tab.is-active {
	background: #fff;
	color: var(--jwp-primary);
	font-weight: 600;
	box-shadow: 0 2px 8px rgba(22, 32, 47, .1);
}

.jwp-booking-panel {
	display: none;
}

.jwp-booking-panel.is-active {
	display: block;
	animation: jwpFade .28s ease;
}

@keyframes jwpFade {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}

/* ---------- 产品卡片 ---------- */
.jwp-product {
	position: relative;
	background: #fff;
	border: 1px solid var(--jwp-line);
	border-radius: var(--jwp-radius);
	overflow: hidden;
	transition: all .24s ease;
	display: flex;
	flex-direction: column;
}

.jwp-product:hover {
	box-shadow: var(--jwp-shadow-hover);
	transform: translateY(-3px);
	border-color: transparent;
}

.jwp-product-link {
	display: block;
	color: inherit !important;
	text-decoration: none;
	flex: 1;
}

.jwp-product-cover {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: linear-gradient(135deg, #e8f1fb, #dff3ec);
}

.jwp-product-cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .4s ease;
}

.jwp-product:hover .jwp-product-cover img {
	transform: scale(1.06);
}

.jwp-thumb-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #b9c6d4;
	font-size: 34px;
}

.jwp-product-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 3px 10px;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 600;
	color: #fff;
	background: rgba(10, 132, 255, .92);
	backdrop-filter: blur(4px);
}

.jwp-badge-hotel {
	background: rgba(18, 184, 134, .92);
}

.jwp-badge-local {
	background: rgba(255, 122, 69, .92);
}

.jwp-product-discount {
	position: absolute;
	top: 10px;
	right: 10px;
	padding: 3px 8px;
	border-radius: 6px;
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(135deg, #ff5f6d, #ff9068);
}

.jwp-product-body {
	padding: 14px 14px 8px;
}

.jwp-product-title {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.45;
	margin: 0 0 6px;
	color: var(--jwp-ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 43px;
}

.jwp-product-sub {
	font-size: 12px;
	color: var(--jwp-gray);
	margin: 0 0 8px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.jwp-product-rate {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--jwp-gray);
	margin-bottom: 8px;
	min-height: 18px;
}

.jwp-stars {
	color: #ffb400;
	font-size: 12px;
	display: inline-flex;
	align-items: center;
	gap: 1px;
}

.jwp-stars .jwp-score {
	color: var(--jwp-ink);
	font-weight: 700;
	margin-left: 4px;
	font-size: 13px;
}

.jwp-product-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	margin-bottom: 10px;
}

.jwp-product-tags span {
	font-size: 11px;
	color: var(--jwp-primary);
	background: rgba(10, 132, 255, .08);
	padding: 2px 7px;
	border-radius: 4px;
}

.jwp-product-foot {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding-top: 8px;
	border-top: 1px dashed var(--jwp-line);
}

.jwp-price {
	color: var(--jwp-accent);
	font-weight: 700;
	font-size: 20px;
	font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
}

.jwp-price em {
	font-style: normal;
	font-size: 13px;
	font-weight: 600;
	margin-right: 1px;
}

.jwp-price small {
	font-size: 11px;
	color: var(--jwp-light);
	font-weight: 400;
	margin-left: 2px;
}

.jwp-price-ask,
.jwp-price-free {
	font-size: 15px;
	color: var(--jwp-green);
}

.jwp-product-foot del {
	font-size: 12px;
	color: var(--jwp-light);
}

.jwp-book-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	margin: 0 14px 14px;
	height: 36px;
	border-radius: 8px;
	background: linear-gradient(135deg, var(--jwp-primary), #2f9bff);
	color: #fff !important;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: all .2s;
}

.jwp-book-btn:hover {
	box-shadow: 0 8px 18px rgba(10, 132, 255, .32);
	transform: translateY(-1px);
}

/* ---------- 活动卡片 ---------- */
.jwp-activity-card {
	display: flex;
	background: #fff;
	border: 1px solid var(--jwp-line);
	border-radius: var(--jwp-radius);
	overflow: hidden;
	transition: all .24s ease;
}

.jwp-activity-card:hover {
	box-shadow: var(--jwp-shadow-hover);
	transform: translateY(-3px);
	border-color: transparent;
}

.jwp-activity-grid .jwp-activity-card {
	flex-direction: column;
}

.jwp-activity-grid.jwp-cols-2 .jwp-activity-card {
	flex-direction: row;
}

.jwp-act-cover {
	position: relative;
	display: block;
	flex: none;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, #e8f1fb, #dff3ec) center/cover no-repeat;
}

.jwp-activity-grid.jwp-cols-2 .jwp-act-cover {
	width: 40%;
	aspect-ratio: auto;
	min-height: 190px;
}

.jwp-act-status {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 3px 10px;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 600;
	color: #fff;
	background: rgba(18, 184, 134, .94);
}

.jwp-act-status.is-ongoing {
	background: rgba(255, 122, 69, .94);
}

.jwp-act-status.is-ended {
	background: rgba(154, 166, 178, .94);
}

.jwp-act-status.is-full {
	background: rgba(230, 162, 60, .94);
}

.jwp-act-date {
	position: absolute;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 6px 12px;
	background: rgba(9, 26, 46, .72);
	color: #fff;
	border-radius: 8px 0 0 0;
	backdrop-filter: blur(4px);
}

.jwp-act-date b {
	font-size: 16px;
	line-height: 1.2;
}

.jwp-act-date i {
	font-style: normal;
	font-size: 11px;
	opacity: .85;
}

.jwp-act-body {
	padding: 14px 16px 16px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.jwp-act-title {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.45;
	margin: 0 0 10px;
}

.jwp-act-title a {
	color: var(--jwp-ink) !important;
	text-decoration: none;
}

.jwp-act-title a:hover {
	color: var(--jwp-primary) !important;
}

.jwp-act-meta {
	list-style: none;
	padding: 0;
	margin: 0 0 12px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.jwp-act-meta li {
	font-size: 12.5px;
	color: var(--jwp-gray);
	display: flex;
	align-items: center;
	gap: 5px;
}

.jwp-act-meta i {
	color: var(--jwp-primary);
	font-size: 14px;
}

.jwp-act-progress {
	margin-bottom: 12px;
}

.jwp-act-bar {
	height: 6px;
	background: #eef1f5;
	border-radius: 999px;
	overflow: hidden;
	margin-bottom: 5px;
}

.jwp-act-bar span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--jwp-primary), var(--jwp-green));
	transition: width .5s ease;
}

.jwp-act-progress small {
	font-size: 11.5px;
	color: var(--jwp-light);
}

.jwp-act-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 10px;
	border-top: 1px dashed var(--jwp-line);
}

.jwp-act-child {
	font-style: normal;
	font-size: 11px;
	color: var(--jwp-gray);
	margin-left: 8px;
	font-weight: 400;
}

.jwp-act-btn {
	height: 32px;
	line-height: 32px;
	padding: 0 16px;
	border-radius: 8px;
	border: 1px solid var(--jwp-primary);
	color: var(--jwp-primary) !important;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: all .2s;
}

.jwp-act-btn:hover {
	background: var(--jwp-primary);
	color: #fff !important;
}

/* ---------- 目的地卡片 ---------- */
.jwp-dest-card {
	display: block;
	border-radius: var(--jwp-radius);
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--jwp-line);
	text-decoration: none;
	transition: all .24s;
}

.jwp-dest-card:hover {
	box-shadow: var(--jwp-shadow-hover);
	transform: translateY(-3px);
	border-color: transparent;
}

.jwp-dest-cover {
	position: relative;
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, #0b4f8a, #12b886) center/cover no-repeat;
}

.jwp-dest-level {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 3px 9px;
	border-radius: 6px;
	background: rgba(255, 255, 255, .92);
	color: var(--jwp-primary);
	font-size: 12px;
	font-weight: 700;
}

.jwp-dest-body {
	padding: 14px;
}

.jwp-dest-body h3 {
	font-size: 16px;
	margin: 0 0 6px;
	color: var(--jwp-ink);
	font-weight: 600;
}

.jwp-dest-body p {
	font-size: 12.5px;
	color: var(--jwp-gray);
	line-height: 1.6;
	margin: 0 0 10px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 40px;
}

.jwp-dest-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 12px;
	color: var(--jwp-light);
}

.jwp-dest-meta em {
	font-style: normal;
	color: var(--jwp-accent);
	font-weight: 700;
	font-size: 13px;
}

/* ---------- 筛选 ---------- */
.jwp-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.jwp-filter-item {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 8px 18px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--jwp-line);
	color: var(--jwp-gray) !important;
	font-size: 14px;
	text-decoration: none;
	transition: all .2s;
}

.jwp-filter-item:hover {
	border-color: var(--jwp-primary);
	color: var(--jwp-primary) !important;
}

.jwp-filter-item.is-active {
	background: var(--jwp-primary);
	border-color: var(--jwp-primary);
	color: #fff !important;
	font-weight: 600;
	box-shadow: 0 6px 14px rgba(10, 132, 255, .26);
}

/* ---------- 详情页 ---------- */
.jwp-detail-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: 28px;
	background: #fff;
	border-radius: var(--jwp-radius);
	padding: 22px;
	box-shadow: var(--jwp-shadow);
	margin-bottom: 24px;
}

.jwp-detail-gallery {
	border-radius: 10px;
	overflow: hidden;
	background: linear-gradient(135deg, #e8f1fb, #dff3ec);
	aspect-ratio: 4 / 3;
}

.jwp-detail-gallery img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.jwp-detail-info {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.jwp-type-pill {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	align-self: flex-start;
	padding: 4px 12px;
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: 600;
	color: #fff;
	background: var(--jwp-primary);
	margin-bottom: 10px;
}

.jwp-detail-title {
	font-size: 26px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--jwp-ink);
	margin: 0 0 10px;
}

.jwp-detail-sub {
	font-size: 14px;
	color: var(--jwp-gray);
	margin: 0 0 12px;
	line-height: 1.7;
}

.jwp-detail-rate {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	font-size: 13px;
	color: var(--jwp-gray);
	margin-bottom: 16px;
}

.jwp-scenic-link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--jwp-primary) !important;
	font-size: 13px;
	text-decoration: none;
}

.jwp-detail-price {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 14px 16px;
	background: linear-gradient(90deg, rgba(255, 122, 69, .08), rgba(255, 122, 69, 0));
	border-radius: 10px;
	margin-bottom: 14px;
}

.jwp-price-lg {
	font-size: 30px;
	font-weight: 800;
	color: var(--jwp-accent);
	line-height: 1;
}

.jwp-price-lg em {
	font-style: normal;
	font-size: 16px;
	margin-right: 2px;
}

.jwp-price-lg small {
	font-size: 12px;
	color: var(--jwp-gray);
	font-weight: 400;
	margin-left: 3px;
}

.jwp-detail-price del {
	font-size: 13px;
	color: var(--jwp-light);
}

.jwp-detail-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 16px;
}

.jwp-detail-tags span {
	font-size: 12px;
	color: var(--jwp-green);
	background: rgba(18, 184, 134, .1);
	padding: 3px 9px;
	border-radius: 5px;
}

.jwp-detail-meta {
	list-style: none;
	padding: 0;
	margin: 0 0 18px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.jwp-detail-meta li {
	font-size: 13.5px;
	color: var(--jwp-gray);
	display: flex;
	align-items: flex-start;
	gap: 6px;
	line-height: 1.6;
}

.jwp-detail-meta i {
	color: var(--jwp-primary);
	font-size: 15px;
	margin-top: 2px;
}

.jwp-detail-meta a {
	color: var(--jwp-gray) !important;
}

.jwp-detail-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.jwp-detail-tip {
	font-size: 12px;
	color: var(--jwp-light);
	margin: 12px 0 0;
	display: flex;
	align-items: center;
	gap: 4px;
}

.jwp-detail-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 24px;
	align-items: start;
}

.jwp-block {
	background: #fff;
	border-radius: var(--jwp-radius);
	padding: 22px;
	box-shadow: var(--jwp-shadow);
	margin-bottom: 20px;
}

.jwp-block-title {
	font-size: 19px;
	font-weight: 700;
	color: var(--jwp-ink);
	margin: 0 0 16px;
	display: flex;
	align-items: center;
	gap: 8px;
	padding-left: 12px;
	border-left: 4px solid var(--jwp-primary);
	line-height: 1.3;
}

.jwp-block-title i {
	color: var(--jwp-primary);
}

.jwp-block-more {
	margin-left: auto;
	font-size: 13px;
	font-weight: 400;
	color: var(--jwp-gray) !important;
	text-decoration: none;
	border: none;
	padding: 0;
	display: inline-flex;
	align-items: center;
}

.jwp-block-more:hover {
	color: var(--jwp-primary) !important;
}

.jwp-rich {
	font-size: 15px;
	line-height: 1.9;
	color: #35404f;
}

.jwp-rich p {
	margin: 0 0 14px;
}

.jwp-rich img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}

.jwp-highlights,
.jwp-notice {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 18px;
}

.jwp-highlights li,
.jwp-notice li {
	display: flex;
	align-items: flex-start;
	gap: 7px;
	font-size: 14px;
	line-height: 1.65;
	color: #35404f;
}

.jwp-highlights i {
	color: var(--jwp-green);
	font-size: 16px;
	margin-top: 1px;
}

.jwp-notice i {
	color: var(--jwp-accent);
	font-size: 16px;
	margin-top: 1px;
}

.jwp-map {
	position: relative;
	background: linear-gradient(135deg, #eef6ff, #e9f7f1);
	border-radius: 10px;
	padding: 26px 20px;
	text-align: center;
	border: 1px dashed #cfe0f0;
}

.jwp-map-pin {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff;
	color: var(--jwp-primary);
	font-size: 22px;
	box-shadow: 0 6px 16px rgba(10, 132, 255, .2);
	margin-bottom: 10px;
}

.jwp-map p {
	margin: 0 0 14px;
	color: var(--jwp-ink);
	font-size: 14px;
}

.jwp-address {
	font-size: 14px;
	color: var(--jwp-gray);
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
}

.jwp-address i {
	color: var(--jwp-primary);
}

.jwp-side-block {
	padding: 18px;
}

.jwp-side-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.jwp-side-list a {
	display: flex;
	gap: 10px;
	text-decoration: none;
	align-items: center;
}

.jwp-side-list img,
.jwp-side-list .jwp-thumb-placeholder {
	width: 74px;
	height: 56px;
	border-radius: 6px;
	object-fit: cover;
	flex: none;
}

.jwp-side-list span {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.jwp-side-list strong {
	font-size: 13.5px;
	font-weight: 500;
	color: var(--jwp-ink);
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.jwp-side-list em {
	font-style: normal;
	color: var(--jwp-accent);
	font-size: 13px;
	font-weight: 700;
}

.jwp-side-cta p {
	font-size: 13px;
	color: var(--jwp-gray);
	line-height: 1.7;
	margin: 0 0 14px;
}

.jwp-side-cta .jwp-btn-primary {
	width: 100%;
	height: 38px;
	font-size: 14px;
}

/* ---------- 活动详情 ---------- */
.jwp-act-hero {
	position: relative;
	border-radius: var(--jwp-radius);
	overflow: hidden;
	margin-bottom: 24px;
	min-height: 260px;
	display: flex;
	align-items: flex-end;
	background: linear-gradient(135deg, #0b4f8a, #12b886);
}

.jwp-act-hero-bg {
	position: absolute;
	inset: 0;
	background-position: center;
	background-size: cover;
	transform: scale(1.02);
}

.jwp-act-hero-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(6, 20, 36, .25) 0%, rgba(6, 20, 36, .82) 100%);
}

.jwp-act-hero-inner {
	position: relative;
	z-index: 2;
	padding: 30px;
	color: #fff;
	width: 100%;
}

.jwp-act-hero-inner .jwp-detail-title {
	color: #fff;
	margin: 12px 0 14px;
	text-shadow: 0 2px 14px rgba(0, 0, 0, .3);
}

.jwp-act-hero-meta {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
}

.jwp-act-hero-meta li {
	font-size: 13.5px;
	color: rgba(255, 255, 255, .92);
	display: flex;
	align-items: center;
	gap: 5px;
}

.jwp-timeline {
	list-style: none;
	padding: 0;
	margin: 0;
	position: relative;
}

.jwp-timeline li {
	position: relative;
	padding: 0 0 18px 22px;
	font-size: 14px;
	color: #35404f;
	line-height: 1.7;
	border-left: 2px solid #e6edf5;
}

.jwp-timeline li:last-child {
	border-left-color: transparent;
	padding-bottom: 0;
}

.jwp-timeline li span {
	position: absolute;
	left: -7px;
	top: 4px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--jwp-primary);
}

.jwp-booking-box {
	background: #fff;
	border-radius: var(--jwp-radius);
	padding: 20px;
	box-shadow: var(--jwp-shadow);
	margin-bottom: 20px;
	position: sticky;
	top: 80px;
}

.jwp-booking-price {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 14px;
	flex-wrap: wrap;
}

.jwp-price-child {
	font-size: 12.5px;
	color: var(--jwp-gray);
	background: var(--jwp-bg);
	padding: 3px 8px;
	border-radius: 5px;
}

.jwp-booking-box .jwp-btn-book,
.jwp-booking-box .jwp-btn-disabled {
	width: 100%;
	margin-top: 6px;
}

.jwp-deadline {
	font-size: 12.5px;
	color: var(--jwp-accent);
	margin: 10px 0 0;
	display: flex;
	align-items: center;
	gap: 5px;
}

.jwp-booking-tel {
	font-size: 12.5px;
	color: var(--jwp-gray);
	margin: 12px 0 0;
	display: flex;
	align-items: center;
	gap: 5px;
}

.jwp-booking-tel a {
	color: var(--jwp-primary) !important;
	font-weight: 600;
}

/* ---------- 景区聚合页 ---------- */
.jwp-scenic-hero {
	position: relative;
	border-radius: var(--jwp-radius);
	overflow: hidden;
	min-height: 340px;
	display: flex;
	align-items: center;
	background: linear-gradient(135deg, #0b4f8a, #0a84ff 50%, #12b886) center/cover no-repeat;
	margin-bottom: 0;
}

.jwp-scenic-hero-mask {
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, rgba(6, 20, 36, .78) 0%, rgba(6, 20, 36, .32) 62%, rgba(6, 20, 36, .12) 100%);
}

.jwp-scenic-hero-inner {
	position: relative;
	z-index: 2;
	padding: 40px 36px;
	color: #fff;
	max-width: 720px;
}

.jwp-scenic-title {
	font-size: 38px;
	font-weight: 800;
	color: #fff;
	margin: 12px 0 10px;
	line-height: 1.25;
	text-shadow: 0 2px 18px rgba(0, 0, 0, .32);
}

.jwp-scenic-sub {
	font-size: 15.5px;
	color: rgba(255, 255, 255, .9);
	margin: 0 0 16px;
	line-height: 1.7;
}

.jwp-scenic-meta {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
}

.jwp-scenic-meta li {
	font-size: 13.5px;
	color: rgba(255, 255, 255, .92);
	display: flex;
	align-items: center;
	gap: 5px;
}

.jwp-scenic-meta i {
	color: #7fd4ff;
}

.jwp-scenic-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.jwp-anchors {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	clear: both;
	width: 100%;
	box-sizing: border-box;
	background: #fff;
	border-radius: 0 0 var(--jwp-radius) var(--jwp-radius);
	box-shadow: var(--jwp-shadow);
	padding: 12px 18px;
	margin-bottom: 22px;
	position: sticky;
	top: 0;
	z-index: 20;
	scrollbar-width: none;
}

.jwp-anchors::-webkit-scrollbar {
	display: none;
}

.jwp-anchors a {
	flex: none;
	padding: 7px 16px;
	border-radius: 999px;
	font-size: 14px;
	color: var(--jwp-gray) !important;
	text-decoration: none;
	transition: all .2s;
}

.jwp-anchors a:hover {
	background: var(--jwp-bg);
	color: var(--jwp-primary) !important;
}

.jwp-scenic-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 24px;
	align-items: start;
}

.jwp-scenic-main .jwp-block {
	scroll-margin-top: 70px;
}

.jwp-tips,
.jwp-traffic {
	margin-top: 18px;
	background: linear-gradient(135deg, rgba(10, 132, 255, .05), rgba(18, 184, 134, .05));
	border-radius: 10px;
	padding: 16px 18px;
}

.jwp-tips h3,
.jwp-traffic h3 {
	font-size: 15px;
	margin: 0 0 10px;
	color: var(--jwp-ink);
	display: flex;
	align-items: center;
	gap: 6px;
}

.jwp-tips h3 i {
	color: #f5a623;
}

.jwp-traffic h3 i {
	color: var(--jwp-green);
}

.jwp-tips ul,
.jwp-traffic ul {
	margin: 0;
	padding-left: 18px;
}

.jwp-tips li,
.jwp-traffic li {
	font-size: 13.5px;
	color: #4b5765;
	line-height: 1.85;
}

.jwp-guide-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.jwp-guide-card {
	border: 1px solid var(--jwp-line);
	border-radius: 10px;
	overflow: hidden;
	transition: all .24s;
	background: #fff;
}

.jwp-guide-card:hover {
	box-shadow: var(--jwp-shadow);
	transform: translateY(-2px);
}

.jwp-guide-cover {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: linear-gradient(135deg, #e8f1fb, #dff3ec);
}

.jwp-guide-cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s;
}

.jwp-guide-card:hover .jwp-guide-cover img {
	transform: scale(1.05);
}

.jwp-guide-body {
	padding: 12px 14px 14px;
}

.jwp-guide-body h3 {
	font-size: 14.5px;
	line-height: 1.5;
	margin: 0 0 6px;
	font-weight: 600;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 43px;
}

.jwp-guide-body h3 a {
	color: var(--jwp-ink) !important;
	text-decoration: none;
}

.jwp-guide-body h3 a:hover {
	color: var(--jwp-primary) !important;
}

.jwp-guide-body p {
	font-size: 12px;
	color: var(--jwp-gray);
	line-height: 1.6;
	margin: 0 0 8px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.jwp-guide-body small {
	font-size: 11.5px;
	color: var(--jwp-light);
	display: flex;
	align-items: center;
	gap: 4px;
}

.jwp-info-card {
	background: #fff;
	border-radius: var(--jwp-radius);
	padding: 20px;
	box-shadow: var(--jwp-shadow);
	margin-bottom: 20px;
}

.jwp-info-card h2 {
	font-size: 16px;
	margin: 0 0 14px;
	color: var(--jwp-ink);
	font-weight: 700;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--jwp-line);
}

.jwp-info-card ul {
	list-style: none;
	padding: 0;
	margin: 0 0 16px;
}

.jwp-info-card li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 13px;
	padding: 8px 0;
	border-bottom: 1px dashed var(--jwp-line);
}

.jwp-info-card li:last-child {
	border-bottom: none;
}

.jwp-info-card li span {
	color: var(--jwp-light);
	flex: none;
}

.jwp-info-card li em {
	font-style: normal;
	color: var(--jwp-ink);
	text-align: right;
	line-height: 1.5;
}

.jwp-info-card li em a {
	color: var(--jwp-primary) !important;
}

.jwp-info-card .jwp-btn-primary {
	width: 100%;
	height: 38px;
	font-size: 14px;
}

.jwp-more-list li {
	border-bottom: 1px dashed var(--jwp-line);
	padding: 0;
}

.jwp-more-list a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 0;
	text-decoration: none;
}

.jwp-more-cover {
	width: 58px;
	height: 44px;
	border-radius: 6px;
	background: linear-gradient(135deg, #dbe9f7, #d9f0e7) center/cover no-repeat;
	flex: none;
}

.jwp-more-text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.jwp-more-text strong {
	font-size: 13.5px;
	font-weight: 500;
	color: var(--jwp-ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.jwp-more-text em {
	font-style: normal;
	font-size: 11.5px;
	color: var(--jwp-light);
}

/* ---------- 文章列表（攻略全部） ---------- */
.jwp-post-list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.jwp-post-item {
	display: flex;
	gap: 18px;
	background: #fff;
	border-radius: var(--jwp-radius);
	padding: 16px;
	box-shadow: var(--jwp-shadow);
	transition: all .22s;
}

.jwp-post-item:hover {
	box-shadow: var(--jwp-shadow-hover);
}

.jwp-post-thumb {
	flex: none;
	width: 200px;
	height: 132px;
	border-radius: 8px;
	overflow: hidden;
	background: linear-gradient(135deg, #e8f1fb, #dff3ec);
	display: block;
}

.jwp-post-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.jwp-post-info h2 {
	font-size: 17px;
	margin: 0 0 8px;
	line-height: 1.45;
}

.jwp-post-info h2 a {
	color: var(--jwp-ink) !important;
	text-decoration: none;
}

.jwp-post-info h2 a:hover {
	color: var(--jwp-primary) !important;
}

.jwp-post-info p {
	font-size: 13px;
	color: var(--jwp-gray);
	line-height: 1.7;
	margin: 0 0 10px;
}

.jwp-post-meta {
	display: flex;
	gap: 16px;
	font-size: 12px;
	color: var(--jwp-light);
}

.jwp-post-meta span {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

/* ---------- 分页 ---------- */
.jwp-pagination {
	margin: 26px 0 10px;
	text-align: center;
}

.jwp-pagination .nav-links {
	display: inline-flex;
	gap: 6px;
	flex-wrap: wrap;
	justify-content: center;
}

.jwp-pagination a,
.jwp-pagination span {
	min-width: 38px;
	height: 38px;
	line-height: 38px;
	padding: 0 12px;
	border-radius: 8px;
	background: #fff;
	border: 1px solid var(--jwp-line);
	color: var(--jwp-gray);
	text-decoration: none;
	display: inline-block;
	font-size: 14px;
}

.jwp-pagination .current {
	background: var(--jwp-primary);
	border-color: var(--jwp-primary);
	color: #fff;
	font-weight: 600;
}

.jwp-pagination a:hover {
	border-color: var(--jwp-primary);
	color: var(--jwp-primary);
}

/* ============================================================
 * 响应式
 * ============================================================ */
@media (max-width: 1200px) {
	.jwp-detail-body {
		grid-template-columns: minmax(0, 1fr) 290px;
	}

	.jwp-scenic-body {
		grid-template-columns: minmax(0, 1fr) 270px;
	}
}

@media (max-width: 992px) {
	.jwp-cols-4 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.jwp-cols-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.jwp-hero-title {
		font-size: 32px;
	}

	.jwp-scenic-title {
		font-size: 30px;
	}

	.jwp-detail-hero {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.jwp-detail-gallery {
		aspect-ratio: 16 / 9;
	}

	.jwp-detail-body,
	.jwp-scenic-body {
		grid-template-columns: 1fr;
	}

	.jwp-booking-box {
		position: static;
	}

	.jwp-scenic-side {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}

	.jwp-scenic-side .jwp-info-card {
		margin-bottom: 0;
	}

	.jwp-scenic-hero-inner {
		padding: 32px 26px;
	}

	.jwp-anchors {
		position: static;
		border-radius: var(--jwp-radius);
		margin-top: 16px;
	}
}

@media (max-width: 768px) {
	.jwp-travel-site .sec-panel {
		padding: 16px 14px 18px;
		border-radius: 10px;
	}

	.jwp-cols-4,
	.jwp-cols-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.jwp-activity-grid.jwp-cols-2 .jwp-activity-card {
		flex-direction: column;
	}

	.jwp-activity-grid.jwp-cols-2 .jwp-act-cover {
		width: 100%;
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.jwp-hero {
		min-height: 300px !important;
		border-radius: 10px;
		margin: 0 -1px 16px;
	}

	.jwp-hero-title {
		font-size: 25px;
	}

	.jwp-hero-sub {
		font-size: 14px;
		margin-bottom: 18px;
	}

	.jwp-hero-search {
		padding: 4px 4px 4px 14px;
	}

	.jwp-hero-search input {
		height: 36px;
		font-size: 14px;
	}

	.jwp-hero-search button {
		height: 36px;
		padding: 0 18px;
		font-size: 14px;
	}

	.jwp-quick-link {
		padding: 6px 12px;
		font-size: 12.5px;
	}

	.jwp-travel-site .sec-panel-head {
		gap: 10px;
	}

	.jwp-travel-site .sec-panel-head h2 {
		font-size: 17px;
	}

	.jwp-tabs {
		order: 3;
		width: 100%;
		justify-content: space-between;
	}

	.jwp-tab {
		flex: 1;
		padding: 6px 8px;
		font-size: 13px;
	}

	.jwp-product-title {
		font-size: 14px;
		min-height: 40px;
	}

	.jwp-price {
		font-size: 18px;
	}

	.jwp-book-btn {
		margin: 0 10px 10px;
	}

	.jwp-product-body {
		padding: 10px 10px 6px;
	}

	.jwp-page-title {
		font-size: 21px;
	}

	.jwp-detail-hero {
		padding: 14px;
	}

	.jwp-detail-title {
		font-size: 20px;
	}

	.jwp-price-lg {
		font-size: 24px;
	}

	.jwp-block {
		padding: 16px;
	}

	.jwp-block-title {
		font-size: 17px;
	}

	.jwp-highlights,
	.jwp-notice {
		grid-template-columns: 1fr;
	}

	.jwp-scenic-hero {
		min-height: 260px;
		border-radius: 10px;
	}

	.jwp-scenic-hero-inner {
		padding: 24px 18px;
	}

	.jwp-scenic-title {
		font-size: 24px;
	}

	.jwp-scenic-sub {
		font-size: 13.5px;
	}

	.jwp-scenic-meta {
		gap: 6px 14px;
	}

	.jwp-scenic-meta li {
		font-size: 12.5px;
	}

	.jwp-scenic-actions .jwp-btn-book,
	.jwp-scenic-actions .jwp-btn-ghost {
		height: 38px;
		font-size: 14px;
		padding: 0 16px;
	}

	.jwp-guide-grid {
		grid-template-columns: 1fr;
	}

	.jwp-scenic-side {
		grid-template-columns: 1fr;
	}

	.jwp-post-item {
		flex-direction: column;
		gap: 12px;
	}

	.jwp-post-thumb {
		width: 100%;
		height: 180px;
	}

	.jwp-act-hero {
		min-height: 220px;
	}

	.jwp-act-hero-inner {
		padding: 20px 16px;
	}

	.jwp-act-hero-meta {
		gap: 6px 14px;
	}

	.jwp-filter-item {
		padding: 6px 14px;
		font-size: 13px;
	}
}

@media (max-width: 480px) {
	.jwp-cols-4,
	.jwp-cols-3,
	.jwp-cols-2 {
		grid-template-columns: 1fr;
	}

	.jwp-hero-title {
		font-size: 21px;
	}

	.jwp-hero-sub {
		display: none;
	}

	.jwp-hero-quick {
		gap: 8px;
	}

	.jwp-detail-actions .jwp-btn-book,
	.jwp-detail-actions .jwp-btn-ghost {
		flex: 1;
		padding: 0 12px;
		font-size: 14px;
	}

	.jwp-scenic-title {
		font-size: 21px;
	}

	.jwp-page-desc {
		font-size: 13px;
	}
}

/* 深色模式兼容（主题自带 style-for-dark） */
.style-for-dark .jwp-product,
.style-for-dark .jwp-activity-card,
.style-for-dark .jwp-block,
.style-for-dark .jwp-info-card,
.style-for-dark .jwp-booking-box,
.style-for-dark .jwp-post-item,
.style-for-dark .jwp-anchors,
.style-for-dark .jwp-travel-site .sec-panel,
.style-for-dark .jwp-dest-card,
.style-for-dark .jwp-guide-card,
.style-for-dark .jwp-detail-hero {
	background: #1d2532;
	border-color: #2b3547;
}

.style-for-dark .jwp-product-title,
.style-for-dark .jwp-act-title a,
.style-for-dark .jwp-detail-title,
.style-for-dark .jwp-block-title,
.style-for-dark .jwp-page-title,
.style-for-dark .jwp-guide-body h3 a,
.style-for-dark .jwp-post-info h2 a,
.style-for-dark .jwp-dest-body h3,
.style-for-dark .jwp-info-card li em {
	color: #e8eef6 !important;
}

.style-for-dark .jwp-rich,
.style-for-dark .jwp-highlights li,
.style-for-dark .jwp-notice li {
	color: #c3cddb;
}

.style-for-dark .jwp-rich p,
.style-for-dark .jwp-page-desc,
.style-for-dark .jwp-act-meta li,
.style-for-dark .jwp-detail-meta li {
	color: #93a1b3;
}
