/* =====================================================================
   NBTour Child · 宁波旅游网视觉层
   依赖顺序：父主题 css/style.css (stylesheet) → nbtour-core.css → 本文件。
   父主题任何文件都不修改；本文件只覆盖本站自有 class 与少量布局纠偏。
   ===================================================================== */

:root {
	--nb-primary: #0b6e99;
	--nb-primary-dark: #075570;
	--nb-accent: #f59a3c;
	--nb-teal: #0e9f8e;
	--nb-bg: #f5f8fa;
	--nb-card: #ffffff;
	--nb-text: #1c2b33;
	--nb-muted: #6b7c86;
	--nb-border: #e3ecf0;
	--nb-radius: 14px;
	--nb-shadow: 0 6px 24px rgba(11, 110, 153, .08);
	--nb-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
}

body { font-family: var(--nb-font); }
body.nbtour-home,
body.nbtour-content-page,
body.nbtour-topic-page { background: var(--nb-bg); }

/* 首页 / 专题页 / 归档页 / 详情页不调用 get_sidebar()，需把父主题 .main 的宽度纠偏为全宽 */
.nbtour-detail-main,
.nbtour-special-main,
.nbtour-topic-main,
.nbtour-archive-main {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.nbtour-single,
.nbtour-special-page,
.nbtour-topic-page,
.nbtour-archive-page { padding-top: 34px; padding-bottom: 60px; }

/* ---------------------------------------------------------------------
   顶部快捷条 + 三语切换
   --------------------------------------------------------------------- */
.nbtour-topbar {
	background: linear-gradient(90deg, var(--nb-primary-dark), var(--nb-primary) 55%, #0c8199);
	color: rgba(255, 255, 255, .9);
	font-size: 12px;
	line-height: 1;
}
.nbtour-topbar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 36px;
	flex-wrap: wrap;
	padding-top: 8px;
	padding-bottom: 8px;
}
.nbtour-topbar-slogan { letter-spacing: .06em; opacity: .9; flex: 0 1 auto; }
.nbtour-topbar-right { margin-left: auto; display: flex; align-items: center; }
.nbtour-quick-nav { display: flex; flex-wrap: wrap; gap: 4px 18px; flex: 1 1 auto; }
.nbtour-quick-nav a {
	color: rgba(255, 255, 255, .88);
	text-decoration: none;
	padding: 2px 0;
	border-bottom: 1px solid transparent;
	transition: color .2s, border-color .2s;
}
.nbtour-quick-nav a:hover,
.nbtour-quick-nav a.is-current { color: #fff; border-bottom-color: var(--nb-accent); }

.nbtour-lang { display: inline-flex; align-items: center; gap: 2px; margin-right: 12px; }
.nbtour-lang-btn {
	display: inline-block;
	padding: 5px 9px;
	border-radius: 6px;
	font-size: 12px;
	line-height: 1.2;
	color: var(--nb-muted);
	text-decoration: none;
	white-space: nowrap;
	transition: background .2s, color .2s;
}
.nbtour-lang-btn:hover { background: rgba(11, 110, 153, .08); color: var(--nb-primary); }
.nbtour-lang-btn.is-active { background: var(--nb-primary); color: #fff; }
.navbar-action .nbtour-lang { vertical-align: middle; }

/* 顶栏是深蓝底：三语按钮必须换成浅色方案，否则文字看不见（线上「不显示」的视觉误判之一） */
.nbtour-topbar .nbtour-lang { margin-right: 0; gap: 3px; }
.nbtour-topbar .nbtour-lang-btn {
	color: rgba(255, 255, 255, .88);
	border: 1px solid rgba(255, 255, 255, .28);
	background: rgba(255, 255, 255, .06);
	padding: 4px 10px;
}
.nbtour-topbar .nbtour-lang-btn:hover { background: rgba(255, 255, 255, .22); color: #fff; }
.nbtour-topbar .nbtour-lang-btn.is-active { background: #fff; border-color: #fff; color: var(--nb-primary-dark); font-weight: 700; }

/* logo 与导航强制同行：只作用于桌面宽度，不影响父主题 <992px 的抽屉菜单 */
@media (min-width: 992px) {
	body > header.header > .container { flex-wrap: nowrap !important; align-items: center !important; }
	body > header.header > .container > .navbar-header { flex: 0 0 auto; }
	body > header.header .navbar-collapse.nbtour-nav-inline {
		flex: 1 1 auto !important;
		width: auto !important;
		min-width: 0;
		float: none !important;
	}
	body > header.header .navbar-collapse.nbtour-nav-inline .primary-menu { min-width: 0; }
	body > header.header .navbar-action { flex-shrink: 0; }
}

/* ---------------------------------------------------------------------
   按钮补充
   --------------------------------------------------------------------- */
.nbtour-btn-outline {
	background: transparent;
	border: 1px solid var(--nb-primary);
	color: var(--nb-primary);
}
.nbtour-btn-outline:hover { background: var(--nb-primary); color: #fff; }
.nbtour-btn-accent { background: var(--nb-accent); color: #fff; }
.nbtour-btn-accent:hover { background: #e2872c; color: #fff; }

/* ---------------------------------------------------------------------
   首屏 Hero
   --------------------------------------------------------------------- */
.nbtour-hero {
	position: relative;
	background-color: var(--nb-hero-c1, #0a5b7d);
	background-image: linear-gradient(135deg, var(--nb-hero-c1, #075570) 0%, var(--nb-hero-c2, #0e9f8e) 100%);
	background-size: cover;
	background-position: center;
	color: #fff;
	min-height: 460px;
	display: flex;
	align-items: center;
	overflow: hidden;
}
.nbtour-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
}
/* 纯色 / 渐变模式只加一点高光，不压暗文字 */
.nbtour-hero-solid::after { background: radial-gradient(1000px 420px at 80% -10%, rgba(255,255,255,.14), transparent 62%); }
/* 图片模式：遮罩强度由控制面板的 Image dark overlay 控制 */
.nbtour-hero.has-image::after { background: rgba(4, 45, 65, var(--nb-hero-overlay, .45)); }
.nbtour-hero-inner { position: relative; z-index: 1; padding: 68px 0 76px; }
.nbtour-hero-center,
.nbtour-page-hero-inner.nbtour-hero-center,
.nbtour-topic-hero-inner.nbtour-hero-center,
.nbtour-archive-hero-inner.nbtour-hero-center {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.nbtour-hero-eyebrow,
.nbtour-page-eyebrow {
	font-size: 12px;
	letter-spacing: .22em;
	text-transform: uppercase;
	margin: 0 0 14px;
	color: rgba(255, 255, 255, .82);
	font-weight: 600;
}
.nbtour-hero-title { font-size: clamp(34px, 5vw, 58px); font-weight: 800; margin: 0 0 14px; line-height: 1.15; letter-spacing: .01em; }
.nbtour-hero-lead { font-size: clamp(15px, 1.8vw, 19px); margin: 0 auto 30px; color: rgba(255, 255, 255, .9); max-width: 720px; }

.nbtour-hero-search {
	display: flex;
	width: 100%;
	max-width: 620px;
	margin: 0 auto;
	background: #fff;
	border-radius: 999px;
	padding: 6px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, .18);
}
.nbtour-hero-search input {
	flex: 1;
	min-width: 0;
	border: 0;
	outline: 0;
	background: transparent;
	padding: 12px 22px;
	font-size: 15px;
	color: var(--nb-text);
	border-radius: 999px;
}
.nbtour-hero-search button {
	border: 0;
	background: var(--nb-accent);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	padding: 12px 30px;
	border-radius: 999px;
	cursor: pointer;
	transition: background .2s;
}
.nbtour-hero-search button:hover { background: #e2872c; }

.nbtour-hero-tags { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 26px; }
.nbtour-hero-ad {
	position: absolute;
	right: 12px;
	bottom: 12px;
	font-size: 12px;
	color: rgba(255, 255, 255, .9);
	text-decoration: none;
	border: 1px solid rgba(255, 255, 255, .45);
	background: rgba(0, 0, 0, .22);
	border-radius: 999px;
	padding: 5px 14px;
}
.nbtour-hero-ad:hover { background: rgba(0, 0, 0, .4); color: #fff; }
.nbtour-hero-tags-label { font-size: 13px; color: rgba(255, 255, 255, .7); margin-right: 6px; }
.nbtour-hero-tags a {
	font-size: 13px;
	color: #fff;
	text-decoration: none;
	border: 1px solid rgba(255, 255, 255, .4);
	background: rgba(255, 255, 255, .08);
	border-radius: 999px;
	padding: 5px 14px;
	transition: background .2s, border-color .2s;
}
.nbtour-hero-tags a:hover { background: rgba(255, 255, 255, .24); border-color: #fff; }

/* ---------------------------------------------------------------------
   频道入口
   --------------------------------------------------------------------- */
.nbtour-channels { background: #fff; border-bottom: 1px solid var(--nb-border); }
.nbtour-channels-inner { display: grid; grid-template-columns: repeat(var(--nb-ch-count, 5), minmax(0, 1fr)); }
.nbtour-channel {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 22px 16px;
	text-decoration: none;
	border-right: 1px solid var(--nb-border);
	transition: background .2s;
}
.nbtour-channel:last-child { border-right: 0; }
.nbtour-channel:hover { background: #f4fafd; }
.nbtour-channel-icon {
	flex: 0 0 46px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	border-radius: 12px;
	background: linear-gradient(135deg, #e8f4f9, #e3f6f1);
}
.nbtour-channel-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.nbtour-channel-text strong { color: var(--nb-text); font-size: 15px; font-weight: 700; }
.nbtour-channel-text small { color: var(--nb-muted); font-size: 12px; line-height: 1.35; }

/* ---------------------------------------------------------------------
   首页区块
   --------------------------------------------------------------------- */
.nbtour-home-main { padding-top: 46px; padding-bottom: 60px; }
.nbtour-home-section { margin-bottom: 56px; }
/* v1.1：题头统一居中。旧版的左竖条已移除，改由 .nbtour-head-centered h2::after 的居中短横线装饰。 */
.nbtour-home-section .nbtour-section-head h2 { position: static; padding-left: 0; }
.nbtour-home-section .nbtour-section-head h2::before { display: none; }
body.nbtour-head-left .nbtour-head-centered { align-items: flex-start; text-align: left; padding: 0; }
body.nbtour-head-left .nbtour-head-centered h2::after { margin-left: 0; }
body.nbtour-head-left .nbtour-head-centered .nbtour-section-more { position: static; margin-top: 2px; }
.nbtour-home-notice {
	background: #fff8ec;
	border: 1px solid #f4d9ad;
	color: #8a5a15;
	padding: 16px 20px;
	border-radius: var(--nb-radius);
	margin-bottom: 32px;
}
.nbtour-home-ticket { background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(232, 244, 249, .55), rgba(255, 255, 255, 0)); padding: 24px 0; }

.nbtour-news-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.nbtour-news-item {
	display: flex;
	gap: 14px;
	background: var(--nb-card);
	border: 1px solid var(--nb-border);
	border-radius: var(--nb-radius);
	padding: 14px;
	box-shadow: var(--nb-shadow);
}
.nbtour-news-thumb { flex: 0 0 96px; height: 84px; border-radius: 10px; overflow: hidden; background: #e9f1f5; }
.nbtour-news-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nbtour-news-ph { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 30px; opacity: .5; }
.nbtour-news-body { min-width: 0; }
.nbtour-news-body h3 { margin: 2px 0 6px; font-size: 15px; line-height: 1.4; font-weight: 600; }
.nbtour-news-body h3 a { color: var(--nb-text); text-decoration: none; }
.nbtour-news-body h3 a:hover { color: var(--nb-primary); }
.nbtour-news-body p { margin: 0 0 8px; font-size: 12px; color: var(--nb-muted); line-height: 1.6; }
.nbtour-news-body time { font-size: 11px; color: #9aabb4; }

/* ---------------------------------------------------------------------
   专题格栅卡片（首页 / 集合页 / 相关专题共用）
   --------------------------------------------------------------------- */
.nbtour-topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.nbtour-topic-card {
	background: var(--nb-card);
	border: 1px solid var(--nb-border);
	border-radius: var(--nb-radius);
	overflow: hidden;
	box-shadow: var(--nb-shadow);
	display: flex;
	flex-direction: column;
	transition: transform .2s ease, box-shadow .2s ease;
}
.nbtour-topic-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(11, 110, 153, .16); }
.nbtour-topic-cover { position: relative; display: block; aspect-ratio: 16 / 9; background: linear-gradient(135deg, #0b6e99, #0e9f8e); overflow: hidden; }
.nbtour-topic-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.nbtour-topic-card:hover .nbtour-topic-cover img { transform: scale(1.06); }
.nbtour-topic-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(4, 45, 65, .5)); }
.nbtour-topic-cover-ph { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 56px; opacity: .65; }
.nbtour-topic-count {
	position: absolute; z-index: 1; top: 12px; right: 12px;
	background: rgba(255, 255, 255, .92); color: var(--nb-primary-dark);
	font-size: 12px; font-weight: 600; padding: 4px 12px; border-radius: 999px;
}
.nbtour-topic-body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.nbtour-topic-title { margin: 0 0 8px; font-size: 20px; line-height: 1.35; font-weight: 700; }
.nbtour-topic-title a { color: var(--nb-text); text-decoration: none; }
.nbtour-topic-title a:hover { color: var(--nb-primary); }
.nbtour-topic-desc { color: var(--nb-muted); font-size: 13px; line-height: 1.7; margin-bottom: 12px; }
.nbtour-topic-preview { list-style: none; margin: 0 0 14px; padding: 12px 0 0; border-top: 1px dashed var(--nb-border); }
.nbtour-topic-preview li { font-size: 13px; line-height: 1.9; padding-left: 14px; position: relative; }
.nbtour-topic-preview li::before { content: ""; position: absolute; left: 0; top: 11px; width: 5px; height: 5px; border-radius: 50%; background: var(--nb-accent); }
.nbtour-topic-preview a { color: #48606c; text-decoration: none; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nbtour-topic-preview a:hover { color: var(--nb-primary); }
.nbtour-topic-more { margin-top: auto; align-self: flex-start; color: var(--nb-primary); font-size: 13px; font-weight: 600; text-decoration: none; }
.nbtour-topic-more:hover { text-decoration: underline; }
.nbtour-topic-grid-compact .nbtour-topic-cover { aspect-ratio: 21 / 9; }
.nbtour-topic-card.is-compact .nbtour-topic-title { font-size: 17px; }

/* ---------------------------------------------------------------------
   页面 Hero（专题集合页 / 归档页 / 单一专题页）
   --------------------------------------------------------------------- */
.nbtour-page-hero,
.nbtour-topic-hero,
.nbtour-archive-hero {
	position: relative;
	background-color: #0a5b7d;
	background-image: linear-gradient(125deg, #075570, #0b6e99 55%, #0e9f8e);
	background-size: cover;
	background-position: center;
	color: #fff;
	overflow: hidden;
}
.nbtour-page-hero::before,
.nbtour-topic-hero::before,
.nbtour-archive-hero::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(4, 45, 65, .25), rgba(4, 45, 65, .66));
	pointer-events: none;
}
.nbtour-page-hero-inner,
.nbtour-topic-hero-inner,
.nbtour-archive-hero-inner { position: relative; z-index: 1; padding: 62px 0 58px; }
.nbtour-page-hero h1,
.nbtour-topic-hero h1,
.nbtour-archive-hero h1 { font-size: clamp(30px, 4vw, 46px); font-weight: 800; margin: 0 0 14px; line-height: 1.2; }
.nbtour-page-lead,
.nbtour-topic-hero-desc,
.nbtour-archive-lead { max-width: 760px; color: rgba(255, 255, 255, .9); font-size: 15px; line-height: 1.8; margin: 0 0 22px; }
.nbtour-page-lead p:last-child,
.nbtour-topic-hero-desc p:last-child { margin-bottom: 0; }
.nbtour-special-stats,
.nbtour-topic-hero-stats { display: flex; flex-wrap: wrap; gap: 10px 26px; font-size: 13px; color: rgba(255, 255, 255, .86); }
.nbtour-special-stats strong,
.nbtour-topic-hero-stats strong { color: #fff; font-size: 17px; margin-right: 3px; }
.nbtour-special-head { align-items: center; }
.nbtour-special-hint { color: var(--nb-muted); font-size: 13px; }

.nbtour-loadmore-wrap { text-align: center; margin-top: 36px; }
.nbtour-load-topics[disabled] { opacity: .55; cursor: default; }
.nbtour-empty {
	background: var(--nb-card);
	border: 1px dashed var(--nb-border);
	border-radius: var(--nb-radius);
	padding: 42px 24px;
	text-align: center;
	color: var(--nb-muted);
}
.nbtour-empty p { margin: 0 0 10px; }
.nbtour-empty-hint { font-size: 13px; }

/* ---------------------------------------------------------------------
   单一专题页：Tab + 五个分区
   --------------------------------------------------------------------- */
.nbtour-topic-tabs-sticky { position: sticky; top: 0; z-index: 20; background: rgba(245, 248, 250, .94); backdrop-filter: blur(8px); padding: 10px 0; margin: 0 0 26px; }
.nbtour-topic-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.nbtour-topic-tabs a {
	display: inline-flex; align-items: center; gap: 8px;
	background: #fff; border: 1px solid var(--nb-border);
	border-radius: 999px; padding: 8px 16px;
	color: #48606c; font-size: 14px; font-weight: 600; text-decoration: none;
	transition: background .2s, color .2s, border-color .2s;
}
.nbtour-topic-tabs a:hover { border-color: var(--nb-primary); color: var(--nb-primary); }
.nbtour-tab-count { background: #eaf4f8; color: var(--nb-primary); border-radius: 999px; padding: 1px 8px; font-size: 12px; }
.nbtour-topic-section { margin: 0 0 48px; scroll-margin-top: 70px; }
.nbtour-topic-icon { display: inline-block; margin-right: 6px; }
.nbtour-related-topics { margin-top: 44px; padding-top: 30px; border-top: 1px solid var(--nb-border); }

/* ---------------------------------------------------------------------
   详情页
   --------------------------------------------------------------------- */
.nbtour-detail-hero {
	position: relative;
	border-radius: var(--nb-radius);
	overflow: hidden;
	background: linear-gradient(125deg, #075570, #0b6e99 55%, #0e9f8e);
	background-size: cover;
	background-position: center;
	min-height: 300px;
	display: flex;
	align-items: flex-end;
	color: #fff;
}
.nbtour-detail-hero::before {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(4, 45, 65, .12), rgba(4, 45, 65, .78));
}
.nbtour-detail-hero-inner { position: relative; z-index: 1; padding: 40px 40px 36px; width: 100%; }
.nbtour-detail-hero h1 { font-size: clamp(26px, 3.4vw, 42px); font-weight: 800; margin: 14px 0 10px; line-height: 1.25; }
.nbtour-detail-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.nbtour-type-pill, .nbtour-area-pill, .nbtour-badge-pill {
	display: inline-flex; align-items: center; gap: 5px;
	font-size: 12px; padding: 5px 12px; border-radius: 999px;
	background: rgba(255, 255, 255, .18); border: 1px solid rgba(255, 255, 255, .3);
	color: #fff; backdrop-filter: blur(4px);
}
.nbtour-badge-pill { background: var(--nb-accent); border-color: var(--nb-accent); }
.nbtour-detail-summary { margin: 0; color: rgba(255, 255, 255, .9); font-size: 15px; line-height: 1.7; max-width: 760px; }

.nbtour-detail-buybar {
	display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
	background: #fff; border: 1px solid var(--nb-border); border-top: 0;
	border-radius: 0 0 var(--nb-radius) var(--nb-radius);
	padding: 18px 26px;
	box-shadow: var(--nb-shadow);
	margin-bottom: 28px;
}
.nbtour-detail-buybar-price { display: flex; align-items: baseline; gap: 10px; }
.nbtour-detail-buybar-price .nbtour-price { font-size: 26px; }
.nbtour-detail-buybar-price del { color: var(--nb-muted); }
.nbtour-detail-buybar-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.nbtour-price-na { color: var(--nb-muted); font-size: 15px; }

.nbtour-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; }
.nbtour-detail-content { background: #fff; border: 1px solid var(--nb-border); border-radius: var(--nb-radius); padding: 28px 30px; box-shadow: var(--nb-shadow); }
.nbtour-detail-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; margin: 0 0 24px; }
.nbtour-detail-facts > div { display: flex; gap: 10px; padding: 11px 0; border-bottom: 1px dashed var(--nb-border); min-width: 0; }
.nbtour-detail-facts dt { flex: 0 0 96px; color: var(--nb-muted); font-size: 13px; font-weight: 500; }
.nbtour-detail-facts dd { margin: 0; color: var(--nb-text); font-size: 14px; word-break: break-word; }
.nbtour-map-link { margin: 0 0 22px; font-size: 13px; }
.nbtour-map-link a { color: var(--nb-primary); text-decoration: none; }
.nbtour-map-link a:hover { text-decoration: underline; }
.nbtour-detail-block { margin: 26px 0; }
.nbtour-detail-block h2 { font-size: 19px; margin: 0 0 14px; padding-left: 12px; border-left: 4px solid var(--nb-teal); }
.nbtour-lines { margin: 0; padding-left: 22px; color: #405660; font-size: 14px; line-height: 2; }
.nbtour-entry { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--nb-border); font-size: 15px; line-height: 1.9; color: #33454e; }
.nbtour-entry img { max-width: 100%; height: auto; border-radius: 10px; }
.nbtour-destination-topic { margin-top: 36px; padding-top: 26px; border-top: 1px solid var(--nb-border); }

.nbtour-detail-aside { position: sticky; top: 24px; }
.nbtour-aside-card { background: #fff; border: 1px solid var(--nb-border); border-radius: var(--nb-radius); padding: 22px; box-shadow: var(--nb-shadow); }
.nbtour-aside-card .nbtour-signup-form { border: 0; padding: 0; box-shadow: none; }
.nbtour-aside-card h3 { margin: 0 0 12px; font-size: 18px; }
.nbtour-aside-card p { color: var(--nb-muted); font-size: 13px; line-height: 1.8; margin: 0 0 16px; }
.nbtour-aside-card .nbtour-btn { width: 100%; text-align: center; }
.nbtour-aside-note { margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--nb-border); font-size: 12px; color: var(--nb-muted); line-height: 1.8; }
.nbtour-detail-aside .nbtour-signup-row { flex-direction: column; }
.nbtour-detail-aside .nbtour-signup-row label { flex: 1 1 auto; }
.nbtour-related { margin-top: 44px; }
.nbtour-related .nbtour-grid { margin-top: 18px; }

/* ---------------------------------------------------------------------
   归档页筛选
   --------------------------------------------------------------------- */
.nbtour-archive-hero-inner { padding: 54px 0 48px; }
.nbtour-archive-count { font-size: 13px; color: rgba(255, 255, 255, .85); background: rgba(255, 255, 255, .14); display: inline-block; padding: 6px 14px; border-radius: 999px; }
.nbtour-filter { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }
.nbtour-filter-label { flex: 0 0 52px; padding-top: 7px; color: var(--nb-muted); font-size: 13px; font-weight: 600; }
.nbtour-filter-chips { display: flex; flex-wrap: wrap; gap: 8px; flex: 1; }
.nbtour-chip {
	display: inline-block; padding: 6px 14px; border-radius: 999px;
	background: #fff; border: 1px solid var(--nb-border);
	color: #48606c; font-size: 13px; text-decoration: none;
	transition: background .2s, color .2s, border-color .2s;
}
.nbtour-chip:hover { border-color: var(--nb-primary); color: var(--nb-primary); }
.nbtour-chip.is-active { background: var(--nb-primary); border-color: var(--nb-primary); color: #fff; }
.nbtour-archive-grid { margin-top: 26px; }
.nbtour-pagination { margin-top: 36px; text-align: center; }
.nbtour-pagination .page-numbers,
.nbtour-pagination ul.page-numbers li { display: inline-block; }
.nbtour-pagination a, .nbtour-pagination span.page-numbers {
	display: inline-block; padding: 8px 14px; margin: 0 3px;
	border: 1px solid var(--nb-border); border-radius: 8px;
	background: #fff; color: var(--nb-primary); text-decoration: none; font-size: 14px;
}
.nbtour-pagination .current,
.nbtour-pagination span.current { background: var(--nb-primary); border-color: var(--nb-primary); color: #fff; }

/* =====================================================================
   v1.1 首页多样化版式 / 专题搜索 / 资讯新布局
   七种版式共用 core 的卡片变量与链接出口，互不干扰，也不会改动父主题选择器。
   ===================================================================== */

/* --- 统一题头的居中装饰（core 已给基础结构，这里补充本站视觉） --- */
.nbtour-head-centered h2 { letter-spacing: .01em; }
.nbtour-section-subtitle { max-width: 720px; margin-left: auto; margin-right: auto; }
.nbtour-head-centered .nbtour-section-more {
	border: 1px solid var(--nb-border);
	border-radius: 999px;
	padding: 7px 16px;
	background: var(--nb-card);
	transition: border-color .2s, color .2s;
}
.nbtour-head-centered .nbtour-section-more:hover { border-color: var(--nb-primary); text-decoration: none; }
.nbtour-section-head-text .nbtour-topic-icon { margin-right: 6px; }
.nbtour-search-result-hint { text-align: center; color: var(--nb-muted); margin: -4px 0 22px; }

/* --- 1) cards：core 统一卡片，仅微调间距 --- */
.nbtour-module-cards { margin-top: 4px; }

/* --- 2) mosaic：目的地拼图（1 大 + 4 小） --- */
.nbtour-mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 150px; gap: 12px; }
.nbtour-mosaic-item {
	position: relative; display: block; overflow: hidden;
	border-radius: var(--nb-radius); background: #dcecf3; text-decoration: none;
	box-shadow: var(--nb-shadow); transition: transform .25s ease;
}
.nbtour-mosaic-item:hover { transform: translateY(-3px); }
.nbtour-mosaic-item.is-featured { grid-column: span 2; grid-row: span 2; }
.nbtour-mosaic-item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nbtour-mosaic-ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-size: 34px; background: linear-gradient(135deg, #dcecf3, #d6f0e9); }
.nbtour-mosaic-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,32,46,0) 42%, rgba(3,32,46,.78)); }
.nbtour-mosaic-text { position: absolute; left: 16px; right: 16px; bottom: 14px; color: #fff; display: flex; flex-direction: column; gap: 4px; }
.nbtour-mosaic-text strong { font-size: 16px; font-weight: 700; line-height: 1.3; }
.nbtour-mosaic-item.is-featured .nbtour-mosaic-text strong { font-size: 24px; }
.nbtour-mosaic-text small { font-size: 12px; opacity: .86; }

/* --- 3) timeline：活动日期轴 --- */
.nbtour-timeline { display: grid; gap: 10px; }
.nbtour-timeline-row {
	display: flex; align-items: center; gap: 18px;
	background: var(--nb-card); border: 1px solid var(--nb-border);
	border-radius: var(--nb-radius); padding: 14px 18px;
	text-decoration: none; color: var(--nb-text); box-shadow: var(--nb-shadow);
	transition: border-color .2s, transform .2s;
}
.nbtour-timeline-row:hover { border-color: var(--nb-primary); transform: translateX(3px); }
.nbtour-timeline-date { flex: 0 0 70px; display: flex; flex-direction: column; align-items: center; border-right: 1px solid var(--nb-border); padding-right: 14px; }
.nbtour-timeline-date strong { font-size: 28px; line-height: 1; color: var(--nb-primary); }
.nbtour-timeline-date small { font-size: 11px; color: var(--nb-muted); margin-top: 5px; }
.nbtour-timeline-body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.nbtour-timeline-body strong { font-size: 16px; }
.nbtour-timeline-body small { font-size: 12px; color: var(--nb-muted); }
.nbtour-timeline-price { flex: 0 0 auto; }
.nbtour-timeline-arrow { color: var(--nb-primary); font-size: 18px; }

/* --- 4) wide：线路横向宽卡 --- */
.nbtour-wide-list { display: grid; gap: 16px; }
.nbtour-wide-card {
	display: grid; grid-template-columns: 300px minmax(0, 1fr);
	background: var(--nb-card); border: 1px solid var(--nb-border);
	border-radius: var(--nb-radius); overflow: hidden; box-shadow: var(--nb-shadow);
}
.nbtour-wide-media { display: block; background: #dcecf3; }
.nbtour-wide-media img { display: block; width: 100%; height: 100%; min-height: 196px; object-fit: cover; }
.nbtour-wide-ph { display: flex; align-items: center; justify-content: center; min-height: 196px; font-size: 42px; }
.nbtour-wide-body { padding: 18px 24px; display: flex; flex-direction: column; gap: 10px; }
.nbtour-wide-body h3 { margin: 0; font-size: 20px; }
.nbtour-wide-body h3 a { color: var(--nb-text); text-decoration: none; }
.nbtour-wide-body p { margin: 0; color: var(--nb-muted); font-size: 14px; line-height: 1.6; }
.nbtour-wide-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.nbtour-chip-static { display: inline-block; background: #eaf5fa; color: var(--nb-primary); border-radius: 999px; padding: 4px 12px; font-size: 12px; }
.nbtour-wide-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; }
.nbtour-wide-foot .nbtour-btn { padding: 8px 20px; border-radius: 999px; text-decoration: none; font-size: 14px; }

/* --- 5) tiles：本地商家小方块 --- */
.nbtour-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.nbtour-tile {
	display: flex; flex-direction: column; align-items: center; gap: 8px;
	background: var(--nb-card); border: 1px solid var(--nb-border);
	border-radius: var(--nb-radius); padding: 18px 12px;
	text-decoration: none; color: var(--nb-text); box-shadow: var(--nb-shadow);
	transition: transform .2s, border-color .2s;
}
.nbtour-tile:hover { transform: translateY(-3px); border-color: var(--nb-primary); }
.nbtour-tile-img img { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; display: block; }
.nbtour-tile-icon { font-size: 32px; width: 68px; height: 68px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #eaf5fa; }
.nbtour-tile strong { font-size: 15px; text-align: center; }
.nbtour-tile small { font-size: 12px; color: var(--nb-muted); text-align: center; }

/* --- 6) list：酒店横向列表 --- */
.nbtour-row-list { display: grid; gap: 12px; }
.nbtour-row {
	display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; gap: 18px; align-items: center;
	background: var(--nb-card); border: 1px solid var(--nb-border);
	border-radius: var(--nb-radius); padding: 12px; box-shadow: var(--nb-shadow);
}
.nbtour-row-media { display: block; background: #dcecf3; border-radius: 10px; overflow: hidden; }
.nbtour-row-media img { display: block; width: 180px; height: 118px; object-fit: cover; }
.nbtour-row-ph { display: flex; align-items: center; justify-content: center; width: 180px; height: 118px; font-size: 34px; }
.nbtour-row-body h3 { margin: 0 0 8px; font-size: 18px; }
.nbtour-row-body h3 a { color: var(--nb-text); text-decoration: none; }
.nbtour-row-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: 13px; color: var(--nb-muted); }
.nbtour-row-star { color: var(--nb-accent); font-weight: 700; }
.nbtour-row-rating { color: var(--nb-accent); }
.nbtour-row-side { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.nbtour-row-side .nbtour-btn { padding: 8px 18px; border-radius: 999px; text-decoration: none; font-size: 13px; }

/* --- 7) compact：用车紧凑行 --- */
.nbtour-compact-list { display: grid; gap: 8px; }
.nbtour-compact-row {
	display: flex; align-items: center; gap: 16px;
	background: var(--nb-card); border: 1px solid var(--nb-border);
	border-radius: 12px; padding: 12px 18px;
	text-decoration: none; color: var(--nb-text); box-shadow: var(--nb-shadow);
	transition: border-color .2s, background .2s;
}
.nbtour-compact-row:hover { border-color: var(--nb-primary); background: #f7fcfe; }
.nbtour-compact-icon { flex: 0 0 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 22px; border-radius: 10px; background: #eaf5fa; }
.nbtour-compact-main { flex: 1 1 auto; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nbtour-compact-main strong { font-size: 15px; }
.nbtour-compact-main small { font-size: 12px; color: var(--nb-muted); }
.nbtour-compact-price { flex: 0 0 auto; }
.nbtour-compact-arrow { color: var(--nb-primary); font-size: 18px; }

/* --- 专题搜索框（集合页 / 单一专题页共用） --- */
.nbtour-topic-search {
	display: flex; align-items: center; width: 100%; max-width: 620px;
	margin: 24px auto 0; background: #fff; border-radius: 999px;
	padding: 6px; box-shadow: 0 14px 36px rgba(0, 0, 0, .2);
}
.nbtour-topic-search-icon { padding-left: 14px; font-size: 15px; opacity: .55; }
.nbtour-topic-search input {
	flex: 1; min-width: 0; border: 0; outline: 0; background: transparent;
	padding: 11px 16px 11px 8px; font-size: 15px; color: var(--nb-text); border-radius: 999px;
}
.nbtour-topic-search button {
	border: 0; background: var(--nb-accent); color: #fff; font-size: 14px; font-weight: 600;
	padding: 11px 26px; border-radius: 999px; cursor: pointer; white-space: nowrap;
}
.nbtour-topic-search button:hover { background: #e2872c; }
.nbtour-topic-search-clear { font-size: 12px; color: var(--nb-muted); padding: 0 14px; text-decoration: none; white-space: nowrap; }
.nbtour-empty .nbtour-topic-search { margin-top: 18px; box-shadow: 0 6px 20px rgba(0, 0, 0, .08); }

/* --- 旅行资讯：左大右小 --- */
.nbtour-news-lead-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.nbtour-news-lead-grid .nbtour-news-item { margin: 0; }
.nbtour-news-lead-grid .is-lead { grid-column: span 2; grid-row: span 2; flex-direction: column; }
.nbtour-news-lead-grid .is-lead .nbtour-news-thumb { width: 100%; }
.nbtour-news-lead-grid .is-lead img { width: 100%; height: 260px; object-fit: cover; }
.nbtour-news-lead-grid .is-lead .nbtour-news-body { padding: 4px 4px 8px; }
.nbtour-news-lead-grid .is-lead h3 { font-size: 21px; }

/* ---------------------------------------------------------------------
   父主题暗色模式：只做可读性兜底，不改父主题配色逻辑
   --------------------------------------------------------------------- */
.style-for-dark .nbtour-topic-card,
.style-for-dark .nbtour-card,
.style-for-dark .nbtour-detail-content,
.style-for-dark .nbtour-aside-card,
.style-for-dark .nbtour-news-item,
.style-for-dark .nbtour-empty { background: #1b2a32; border-color: #2c4049; }
.style-for-dark .nbtour-topic-title a,
.style-for-dark .nbtour-detail-facts dd,
.style-for-dark .nbtour-card-title a { color: #e6f0f4; }
.style-for-dark .nbtour-channels { background: #1b2a32; border-color: #2c4049; }
.style-for-dark .nbtour-channel:hover { background: #223640; }
.style-for-dark .nbtour-channel-text strong { color: #e6f0f4; }
.style-for-dark .nbtour-chip,
.style-for-dark .nbtour-topic-tabs a { background: #1b2a32; border-color: #2c4049; color: #c8d9e0; }
.style-for-dark .nbtour-detail-buybar { background: #1b2a32; border-color: #2c4049; }
.style-for-dark .nbtour-topic-tabs-sticky { background: rgba(20, 32, 39, .94); }

/* ---------------------------------------------------------------------
   响应式
   --------------------------------------------------------------------- */
@media (max-width: 1100px) {
	.nbtour-channels-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nbtour-channel:nth-child(3) { border-right: 0; }
	.nbtour-detail-layout { grid-template-columns: minmax(0, 1fr) 300px; }
	.nbtour-topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.nbtour-detail-layout { grid-template-columns: 1fr; }
	.nbtour-detail-aside { position: static; }
	.nbtour-news-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nbtour-detail-facts { grid-template-columns: 1fr; }
	.nbtour-hero { min-height: 380px; }
}
@media (max-width: 700px) {
	.nbtour-channels-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nbtour-channel { border-right: 0; padding: 16px 10px; }
	.nbtour-channel-icon { flex-basis: 40px; height: 40px; font-size: 20px; }
	.nbtour-topic-grid,
	.nbtour-news-list { grid-template-columns: 1fr; }
	.nbtour-hero-inner,
	.nbtour-page-hero-inner,
	.nbtour-topic-hero-inner,
	.nbtour-archive-hero-inner { padding-top: 44px; padding-bottom: 44px; }
	.nbtour-hero-search button { padding: 12px 20px; }
	.nbtour-detail-hero-inner { padding: 28px 22px; }
	.nbtour-detail-content { padding: 20px 18px; }
	.nbtour-detail-buybar { padding: 16px 18px; }
	.nbtour-detail-facts dt { flex-basis: 84px; }
	.nbtour-topbar-slogan { display: none; }
	.nbtour-quick-nav { gap: 4px 12px; }
	.nbtour-filter-label { flex-basis: 100%; padding-top: 0; }
	.nbtour-topic-tabs-sticky { position: static; }
	.nbtour-lang { margin-right: 6px; }
	.nbtour-lang-btn { padding: 4px 6px; font-size: 11px; }
}
@media (max-width: 420px) {
	.nbtour-channels-inner { grid-template-columns: 1fr; }
	.nbtour-channel { border-bottom: 1px solid var(--nb-border); }
}

/* ---------------------------------------------------------------------
   v1.1 暗色模式补充
   --------------------------------------------------------------------- */
.style-for-dark .nbtour-timeline-row,
.style-for-dark .nbtour-wide-card,
.style-for-dark .nbtour-tile,
.style-for-dark .nbtour-row,
.style-for-dark .nbtour-compact-row,
.style-for-dark .nbtour-head-centered .nbtour-section-more { background: #1b2a32; border-color: #2c4049; color: #e6f0f4; }
.style-for-dark .nbtour-wide-body h3 a,
.style-for-dark .nbtour-row-body h3 a,
.style-for-dark .nbtour-tile strong,
.style-for-dark .nbtour-timeline-body strong,
.style-for-dark .nbtour-compact-main strong { color: #e6f0f4; }
.style-for-dark .nbtour-chip-static { background: #223640; color: #9fd7ea; }
.style-for-dark .nbtour-compact-row:hover { background: #223640; }
.style-for-dark .nbtour-topic-search { background: #22333c; }
.style-for-dark .nbtour-topic-search input { color: #e6f0f4; }

/* ---------------------------------------------------------------------
   v1.1 响应式：新模块在各断点下都保持可用，不横向溢出
   --------------------------------------------------------------------- */
@media (max-width: 1100px) {
	.nbtour-mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nbtour-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nbtour-wide-card { grid-template-columns: 220px minmax(0, 1fr); }
	.nbtour-row { grid-template-columns: 150px minmax(0, 1fr) auto; }
	.nbtour-row-media img, .nbtour-row-ph { width: 150px; }
}
@media (max-width: 900px) {
	.nbtour-news-lead-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nbtour-news-lead-grid .is-lead { grid-column: span 2; grid-row: auto; }
}
@media (max-width: 700px) {
	.nbtour-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 130px; }
	.nbtour-mosaic-item.is-featured { grid-column: span 2; grid-row: span 1; }
	.nbtour-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nbtour-wide-card { grid-template-columns: 1fr; }
	.nbtour-wide-media img, .nbtour-wide-ph { min-height: 180px; }
	.nbtour-row { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; }
	.nbtour-row-media img, .nbtour-row-ph { width: 96px; height: 96px; }
	.nbtour-row-side { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; }
	.nbtour-timeline-row { gap: 10px; padding: 12px; }
	.nbtour-timeline-date { flex-basis: 56px; padding-right: 10px; }
	.nbtour-timeline-date strong { font-size: 22px; }
	.nbtour-news-lead-grid { grid-template-columns: 1fr; }
	.nbtour-news-lead-grid .is-lead { grid-column: auto; grid-row: auto; flex-direction: row; }
	.nbtour-news-lead-grid .is-lead .nbtour-news-thumb { width: 40%; }
	.nbtour-news-lead-grid .is-lead img { height: 150px; }
	.nbtour-topic-search button { padding: 10px 16px; }
	.nbtour-head-centered { padding: 0; }
	.nbtour-head-centered .nbtour-section-more { position: static; margin-top: 4px; }
	.nbtour-topbar .nbtour-lang-btn { padding: 3px 7px; font-size: 11px; }
	.nbtour-topbar-right { margin-left: 0; }
}
@media (max-width: 420px) {
	.nbtour-compact-row { gap: 10px; padding: 10px 12px; }
	.nbtour-compact-icon { flex-basis: 36px; height: 36px; font-size: 18px; }
	.nbtour-timeline-price { display: none; }
}
