/* ============================================================
   鲲鹏汇通国际物流 · HTML 可交互原型共享样式
   品牌色：蓝 #076AAE / 橙 #DF8D1D（来自 KPHT Logo）
   响应式断点：1440 / 1024 / 390（移动端以 900px 折叠导航）
   注意：本样式仅用于原型视觉确认，不代表最终 Elementor 实现
   ============================================================ */

:root {
  --blue: #076aae;
  --blue-dark: #054e80;
  --blue-deep: #033858;
  --orange: #df8d1d;
  --orange-dark: #c47a12;
  --ink: #1c2b36;
  --muted: #5b6b78;
  --line: #e3eaf0;
  --bg-soft: #f4f7fa;
  --white: #ffffff;
  --ok: #1d8a4e;
  --radius: 10px;
  --shadow: 0 6px 24px rgba(7, 106, 174, 0.10);
  --maxw: 1200px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  color: var(--ink);
  background: var(--white);
  line-height: 1.7;
  font-size: 16px;
}

img, svg { max-width: 100%; display: block; }
a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--orange); }
ul, ol { list-style: none; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 22px; border-radius: 8px; font-weight: 600; font-size: 15px; border: 1px solid transparent; cursor: pointer; transition: 0.15s; }
.btn-primary { background: var(--orange); color: #fff; }
.btn-primary:hover { background: var(--orange-dark); color: #fff; }
.btn-blue { background: var(--blue); color: #fff; }
.btn-blue:hover { background: var(--blue-dark); color: #fff; }
.btn-outline { border-color: #fff; color: #fff; background: transparent; }
.btn-outline:hover { background: rgba(255, 255, 255, 0.14); color: #fff; }
.btn-ghost { border-color: var(--blue); color: var(--blue); background: transparent; }
.btn-ghost:hover { background: rgba(7, 106, 174, 0.08); }
.btn-sm { padding: 8px 16px; font-size: 14px; }

/* ---------- Hero ---------- */
.hero { background: linear-gradient(135deg, var(--blue-dark) 0%, var(--blue) 55%, #0a86c9 100%); color: #fff; padding: 72px 0 56px; position: relative; overflow: hidden; }
.hero::after { content: ""; position: absolute; right: -140px; top: -140px; width: 460px; height: 460px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,0.12), transparent 65%); }
.hero .wrap { position: relative; z-index: 1; }
.hero-kicker { display: inline-block; background: rgba(255,255,255,0.16); border: 1px solid rgba(255,255,255,0.35); padding: 4px 14px; border-radius: 999px; font-size: 13px; margin-bottom: 18px; }
.hero h1 { font-size: 40px; line-height: 1.25; letter-spacing: 0.01em; }
.hero p.lead { margin-top: 14px; font-size: 18px; max-width: 640px; color: #e4f1fa; }
.hero-cta { margin-top: 28px; display: flex; gap: 14px; flex-wrap: wrap; }

.trustbar { margin-top: 40px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.trustbar .cell { background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.22); border-radius: var(--radius); padding: 16px 18px; }
.trustbar b { display: block; font-size: 26px; color: #fff; }
.trustbar span:not([class]) { font-size: 13px; color: #d7e8f4; }

/* ---------- 通用 Section ---------- */
.section { padding: 64px 0; }
.section.alt { background: var(--bg-soft); }
.section-head { text-align: center; max-width: 720px; margin: 0 auto 40px; }
.section-head h2 { font-size: 30px; position: relative; display: inline-block; padding-bottom: 14px; }
.section-head h2::after { content: ""; position: absolute; left: 50%; transform: translateX(-50%); bottom: 0; width: 48px; height: 4px; border-radius: 2px; background: var(--orange); }
.section-head p { color: var(--muted); margin-top: 10px; }

.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
/* Grid 子项默认 min-width:auto，宽表格（.table-scroll/.timetable）会把整页撑出横向滚动，导致移动端布局贴边；置 0 让内部滚动生效 */
.grid-2 > *, .grid-3 > *, .grid-4 > *, .quotes > * { min-width: 0; }

.card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px 22px; transition: 0.18s; display: flex; flex-direction: column; }
.card:hover { box-shadow: var(--shadow); border-color: rgba(7, 106, 174, 0.35); transform: translateY(-2px); }
.card .ico { width: 52px; height: 52px; border-radius: 12px; background: rgba(7, 106, 174, 0.10); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; color: var(--blue); }
.card h3 { font-size: 18px; margin-bottom: 8px; }
.card p { color: var(--muted); font-size: 14.5px; flex: 1; }
.card .more { margin-top: 14px; font-weight: 600; font-size: 14px; }
.card h3 a, .card .more { color: var(--blue); }
.card h3 a:hover { color: var(--orange); }

/* ---------- 联系入口条 ---------- */
.contact-strip { background: var(--white); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); padding: 26px; margin-top: -46px; position: relative; z-index: 5; }
.contact-strip .cols { display: grid; grid-template-columns: 1.1fr 1.1fr 1.1fr 1.6fr; gap: 18px; align-items: center; }
.chan { display: flex; gap: 12px; align-items: center; }
.chan .ico { width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex: none; }
.chan .ico svg { width: 22px; height: 22px; display: block; }
.chan.tel .ico, .chan.mail .ico { background: #eaf3fb; }
.chan.wechat .ico, .chan.wa .ico { background: #fdf3e3; }
.chan b { display: block; font-size: 15px; color: var(--blue); }
.chan span { font-size: 13px; color: var(--muted); }
.mini-form { border-left: 1px dashed var(--line); padding-left: 18px; }
.mini-form p { font-size: 13.5px; color: var(--muted); margin-bottom: 8px; }
.mini-form .row { display: flex; gap: 8px; }
.mini-form input { flex: 1; min-width: 0; }

/* ---------- 表单 ---------- */
input, select, textarea { width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 8px; font: inherit; color: var(--ink); background: var(--white); }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(7, 106, 174, 0.35); border-color: var(--blue); }
textarea { min-height: 110px; resize: vertical; }
.field { margin-bottom: 14px; }
.field label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.field label .req { color: #d64541; margin-left: 2px; }
.field .hint { font-size: 12.5px; color: var(--muted); margin-top: 4px; }
.form-note { font-size: 12.5px; color: var(--muted); }
.checkline { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: var(--muted); }
.checkline input { width: auto; margin-top: 4px; }
.form-success { display: none; background: #eaf7f0; border: 1px solid #bfe5cf; color: var(--ok); border-radius: 8px; padding: 14px 16px; margin-bottom: 14px; font-size: 14.5px; }
.form-success.show { display: block; }
.demo-tag { display: inline-block; background: #fff4e2; color: #9a6a10; border: 1px solid #f2d9a8; font-size: 12px; border-radius: 999px; padding: 2px 10px; margin-left: 8px; }

/* ---------- 流程步骤 ---------- */
.steps { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; counter-reset: step; }
.step { text-align: center; padding: 18px 10px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.step .num { width: 44px; height: 44px; margin: 0 auto 10px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 700; font-size: 18px; display: flex; align-items: center; justify-content: center; }
.step p { font-size: 13.5px; color: var(--muted); }
.step b { display: block; font-size: 15px; margin-bottom: 4px; }

/* ---------- 优势/保障 ---------- */
.feat .ico { width: 46px; height: 46px; border-radius: 10px; background: rgba(223, 141, 29, 0.12); color: var(--orange); display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }

/* ---------- 时效表 ---------- */
.tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.tab-btn { padding: 9px 20px; border-radius: 999px; border: 1px solid var(--line); background: var(--white); cursor: pointer; font: inherit; font-weight: 600; color: var(--muted); }
.tab-btn.active { background: var(--blue); border-color: var(--blue); color: #fff; }
.tab-panel { display: none; }
.tab-panel.active { display: block; }

.table-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
table.timetable { width: 100%; border-collapse: collapse; font-size: 14.5px; min-width: 560px; background: var(--white); }
.timetable th, .timetable td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; }
.timetable thead th { background: rgba(7, 106, 174, 0.07); color: var(--blue-dark); white-space: nowrap; }
.timetable tbody tr:last-child td { border-bottom: none; }
.table-note { font-size: 12.5px; color: var(--muted); margin-top: 8px; }

/* ---------- FAQ ---------- */
details.faq { border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); margin-bottom: 10px; }
details.faq summary { cursor: pointer; padding: 15px 18px; font-weight: 600; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
details.faq summary::-webkit-details-marker { display: none; }
details.faq summary::after { content: "+"; font-size: 20px; color: var(--blue); flex: none; }
details.faq[open] summary::after { content: "−"; }
details.faq .ans { padding: 0 18px 16px; color: var(--muted); font-size: 14.5px; }
details.faq .ans .ask-more { display: block; margin-top: 8px; font-weight: 600; }

/* ---------- 评价 ---------- */
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.quote { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; }
.quote .stars { color: var(--orange); letter-spacing: 2px; font-size: 14px; }
.quote p { margin: 10px 0 14px; color: var(--ink); font-size: 14.5px; }
.quote .who { display: flex; align-items: center; gap: 10px; }
.quote .avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--blue); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; flex: none; }
.quote .who b { font-size: 14px; display: block; }
.quote .who span { font-size: 12.5px; color: var(--muted); }

/* ---------- 博客卡片 ---------- */
.post-card { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--white); display: flex; flex-direction: column; transition: 0.18s; }
.post-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.post-card .thumb { height: 160px; }
.post-card .body { padding: 18px 18px 20px; display: flex; flex-direction: column; flex: 1; }
.post-card .cat { font-size: 12px; color: var(--orange); font-weight: 700; letter-spacing: 0.02em; }
.post-card h3 { font-size: 16.5px; line-height: 1.45; margin: 6px 0 8px; }
.post-card h3 a { color: var(--ink); }
.post-card h3 a:hover { color: var(--blue); }
.post-card p { font-size: 13.5px; color: var(--muted); flex: 1; }
.post-card .meta { margin-top: 12px; font-size: 12.5px; color: var(--muted); }

.thumb { background: linear-gradient(135deg, var(--blue) 0%, #0a86c9 100%); position: relative; overflow: hidden; }
.thumb::after { content: "KPHT"; position: absolute; right: 12px; bottom: 8px; font-size: 42px; font-weight: 800; color: rgba(255,255,255,0.16); letter-spacing: 0.05em; }
.thumb.t-guides { background: linear-gradient(135deg, #0a6fae, #12a5c9); }
.thumb.t-times { background: linear-gradient(135deg, #054e80, #0a86c9); }
.thumb.t-tax { background: linear-gradient(135deg, #b06f14, #df8d1d); }

/* ---------- 页面 Banner ---------- */

/* 首页 Hero 内的品牌实体定义（浅色描边块，适配深底） */
.hero .answer { background: rgba(255, 255, 255, 0.12); border-left: 4px solid rgba(255, 255, 255, 0.85); border-radius: 0 12px 12px 0; padding: 15px 20px; margin: 18px 0 0; max-width: 760px; font-size: 16px; line-height: 1.8; color: #eaf4fb; }.page-banner { background: linear-gradient(135deg, var(--blue-dark), var(--blue)); color: #fff; padding: 52px 0; }
.page-banner h1 { font-size: 32px; }
.page-banner .crumbs { font-size: 13px; color: #cfe3f2; margin-bottom: 10px; }
.page-banner .crumbs a { color: #eaf4fb; }
.page-banner p.lead { margin-top: 10px; color: #e4f1fa; max-width: 680px; }
.page-banner .banner-cta { margin-top: 20px; display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- 双栏布局（详情页） ---------- */
.detail-layout { display: grid; grid-template-columns: 1fr 340px; gap: 32px; align-items: start; }
.side-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; margin-bottom: 18px; }
.side-card h4 { font-size: 16px; margin-bottom: 10px; }
.side-card p { font-size: 13.5px; color: var(--muted); }
.side-card .btn { width: 100%; margin-top: 12px; }
.side-list li { border-bottom: 1px dashed var(--line); padding: 9px 0; font-size: 14px; }
.side-list li:last-child { border-bottom: none; }
.side-list a { color: var(--ink); }
.side-list a:hover { color: var(--blue); }

.prose h2 { font-size: 24px; margin: 36px 0 14px; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { font-size: 18px; margin: 24px 0 10px; }
.prose p, .prose li { color: #3d4c58; font-size: 15.5px; }
.prose ul { list-style: disc; padding-left: 22px; margin: 10px 0; }
.prose ol { list-style: decimal; padding-left: 22px; margin: 10px 0; }
.prose li { margin-bottom: 6px; }

.checklist li, .pill-list li { padding-left: 0; }
.checklist li::before { content: "✓"; color: var(--ok); font-weight: 700; margin-right: 8px; }
.pill-list { display: flex; flex-wrap: wrap; gap: 8px; }
.pill-list li { background: var(--bg-soft); border: 1px solid var(--line); border-radius: 999px; padding: 5px 14px; font-size: 13.5px; }

/* ---------- CTA 条 ---------- */
.cta-band { background: linear-gradient(135deg, var(--blue-deep), var(--blue-dark)); color: #fff; padding: 46px 0; text-align: center; }
.cta-band h2 { font-size: 26px; }
.cta-band p { color: #cfe3f2; margin-top: 8px; }
.cta-band .btn { margin-top: 20px; }



/* ---------- 弹窗（原生 dialog） ---------- */
dialog.wechat-modal { border: none; border-radius: 14px; padding: 28px; max-width: 340px; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
dialog.wechat-modal::backdrop { background: rgba(3, 24, 40, 0.55); }
dialog.wechat-modal img { width: 200px; height: 200px; margin: 12px auto; background: #f4f7fa; border-radius: 10px; padding: 8px; }
dialog.wechat-modal .close-x { position: absolute; right: 12px; top: 10px; border: none; background: none; font-size: 22px; cursor: pointer; color: var(--muted); }

/* ---------- 404 ---------- */
.notfound { text-align: center; padding: 90px 0; }
.notfound .code { font-size: 96px; font-weight: 800; color: var(--blue); line-height: 1; }
.notfound h2 { margin: 18px 0 8px; }
.notfound p { color: var(--muted); }
.notfound .btns { margin-top: 26px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ---------- 搜索页 ---------- */
.search-hero { background: var(--bg-soft); border-bottom: 1px solid var(--line); padding: 40px 0; }
.search-box { display: flex; gap: 10px; max-width: 640px; margin: 0 auto; }
.search-box input { flex: 1; }
.result-group { margin-top: 26px; }
.result-group h3 { font-size: 16px; color: var(--blue-dark); margin-bottom: 10px; padding-left: 10px; border-left: 4px solid var(--orange); }
.result-group li { padding: 10px 0; border-bottom: 1px dashed var(--line); }
.result-group a { font-weight: 600; }
.result-group .desc { font-size: 13px; color: var(--muted); }
.no-result { margin-top: 24px; color: var(--muted); text-align: center; padding: 30px; background: var(--bg-soft); border-radius: var(--radius); }

/* ---------- 时间线（发展历程） ---------- */
.timeline { border-left: 3px solid rgba(7, 106, 174, 0.25); padding-left: 24px; }
.timeline li { position: relative; padding-bottom: 22px; }
.timeline li::before { content: ""; position: absolute; left: -33px; top: 7px; width: 13px; height: 13px; border-radius: 50%; background: var(--orange); border: 3px solid #fff; box-shadow: 0 0 0 2px rgba(223,141,29,0.35); }
.timeline b { color: var(--blue-dark); }
.timeline p { color: var(--muted); font-size: 14.5px; }

/* ---------- 证书占位 ---------- */
.cert-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.cert { border: 1px dashed var(--line); border-radius: var(--radius); aspect-ratio: 4/3; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--muted); background: var(--bg-soft); font-size: 13px; gap: 6px; }
.cert .ico { font-size: 30px; color: var(--blue); }

/* ---------- 地址卡 ---------- */
.addr-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; }
.addr-card b { display: block; margin-bottom: 6px; color: var(--blue-dark); }
.addr-card p { font-size: 14px; color: var(--muted); }

/* ---------- 分类导航 ---------- */
.cat-nav { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
.cat-nav a { padding: 8px 18px; border-radius: 999px; border: 1px solid var(--line); color: var(--ink); font-size: 14px; font-weight: 500; background: var(--white); }
.cat-nav a.active, .cat-nav a:hover { border-color: var(--blue); color: var(--blue); background: rgba(7,106,174,0.06); }
.cat-nav a.active { font-weight: 700; }

/* ---------- 响应式 ---------- */
/* ---------- 首页服务区（OUR SERVICES 版式） ---------- */
.svc-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.kicker { color: var(--orange); font-weight: 700; font-size: 12.5px; letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 8px; }
.svc-head h2 { font-size: 30px; color: var(--blue-dark); }
.svc-sub { color: var(--muted); margin-top: 8px; font-size: 14.5px; }
.svc-arrows { display: flex; gap: 10px; flex-shrink: 0; }
.arrow-btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: #f1f4f8; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; transition: background 0.15s, border-color 0.15s; }
.arrow-btn svg { width: 18px; height: 18px; stroke: var(--blue-dark); display: block; }
.arrow-btn:hover { background: var(--blue); border-color: var(--blue); }
.arrow-btn:hover svg { stroke: #fff; }
.svc-row { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-bottom: 4px; }
.svc-row::-webkit-scrollbar { display: none; }
.svc-card { flex: 0 0 calc((100% - 54px) / 4); min-width: 240px; scroll-snap-align: start; background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; transition: box-shadow 0.2s, transform 0.2s; }
.svc-card:hover { box-shadow: 0 14px 34px rgba(3, 56, 88, 0.14); transform: translateY(-3px); }
.svc-media { position: relative; display: block; aspect-ratio: 5 / 3; overflow: hidden; background: var(--bg-soft); }
.svc-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s; }
.svc-card:hover .svc-media img { transform: scale(1.04); }
.svc-media .num { position: absolute; right: 12px; bottom: 8px; color: #fff; font-weight: 700; font-size: 15px; text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45); }
.svc-body { padding: 16px 16px 18px; display: flex; flex-direction: column; flex: 1; }
.svc-kicker { color: var(--blue-dark); font-weight: 700; font-size: 11.5px; letter-spacing: 0.14em; margin-bottom: 6px; }
.svc-body h3 { font-size: 17.5px; margin-bottom: 8px; }
.svc-body p { font-size: 13.5px; color: var(--muted); flex: 1; }
.svc-body .more { color: var(--blue); font-weight: 600; font-size: 13.5px; margin-top: 12px; display: inline-block; }

.answer { background: #f4f9fd; border-left: 4px solid var(--blue); border-radius: 0 12px 12px 0; padding: 16px 20px; margin: 0 0 26px; font-size: 16.5px; line-height: 1.8; color: #2a3a46; }
.prose .answer + h2, .prose .answer + h3 { margin-top: 0; }

@media (max-width: 1080px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .cert-grid { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: repeat(3, 1fr); }
  .detail-layout { grid-template-columns: 1fr; }
  .contact-strip .cols { grid-template-columns: 1fr 1fr; }
  .mini-form { border-left: none; padding-left: 0; border-top: 1px dashed var(--line); padding-top: 14px; }
  .svc-card { flex-basis: calc((100% - 18px) / 2); }
  .svc-head h2 { font-size: 26px; }
}

@media (max-width: 900px) {
  .hero h1 { font-size: 30px; }
  .trustbar { grid-template-columns: repeat(2, 1fr); }
  .grid-3, .quotes { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .grid-4, .grid-3, .grid-2, .quotes { grid-template-columns: 1fr; }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .contact-strip .cols { grid-template-columns: 1fr; }
  .trustbar { grid-template-columns: 1fr 1fr; }
  .section { padding: 44px 0; }
  .hero { padding: 48px 0 40px; }
  .svc-card { flex-basis: 82%; }
  .svc-head { align-items: flex-start; flex-direction: column; }
  .svc-head h2 { font-size: 23px; }
  .cat-nav { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 6px; }
  .post-card .thumb { height: 140px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; animation: none !important; }
}


/* ============================================================
   WordPress 适配层（第 3 段 · 服务模板）
   Elementor 容器/按钮的默认样式归零，让原型类接管视觉。
   ============================================================ */
.kpht-sec.elementor-widget,
.kpht-sec.e-con { margin: 0; max-width: none; width: 100%; min-height: 0; }
.kpht-sec.e-con .e-con-inner { max-width: none; padding: 0; }

/* 通栏容器内的 .wrap 行内容器：还原原型 max-width + 左右 24px 内边距
   （优先级必须高于上面的 .kpht-sec.e-con 归零规则）
   注意：.kpht-sec.e-con 不归零 padding —— Elementor 容器默认 padding 即 0，
   归零会压死原型类（.wrap/.page-banner/.section/.card 等）的内外边距 */
.kpht-sec.e-con.wrap { max-width: var(--maxw); margin-inline: auto; padding-left: 24px; padding-right: 24px; }
.kpht-sec.e-con.wrap .e-con-inner { max-width: 100%; padding: 0; }

/* 容器文字对齐恢复继承：只作用于 Elementor 生成的包装盒（不带原型对齐类），
   让区块类（.cta-band/.section-head 等）设置的 text-align 能向内传递；
   不能对 .kpht-sec.e-con 全量 inherit，否则会顶掉原型自身的对齐类 */
.kpht-sec.e-con.wrap,
.kpht-sec.e-con .e-con-inner { text-align: inherit; }

/* 服务卡图标：SVG 走媒体库 Image 组件 */
.card .ico img { width: 26px; height: 26px; object-fit: contain; }

/* ============================================================
   按钮并轨：构建脚本把 btn/btn-primary/btn-blue/btn-ghost/more 写在
   Button 组件的 _css_classes 上 → 实际落在 widget wrapper div；
   原型 .btn 系列样式需转移到内层 <a>，并清掉 wrapper 的块级铺满。
   ============================================================ */
/* wrapper：去背景去铺满，还原为原型 inline 按钮 */
.kpht-sec .elementor-widget-button.btn,
.kpht-sec .elementor-widget-button.more { background: none; padding: 0; border: 0; width: auto; }
/* 内层 <a>：承接原型 .btn 基础样式 */
.kpht-sec .elementor-widget-button.btn a.elementor-button,
.kpht-sec a.elementor-button.btn,
.kpht-sec a.elementor-button.more {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 22px; border-radius: 8px; font-weight: 600; font-size: 15px;
  border: 1px solid transparent; text-decoration: none; width: auto; background: none;
}
.kpht-sec .elementor-widget.btn-primary a.elementor-button,
.kpht-sec a.elementor-button.btn-primary { background: var(--orange); color: #fff; }
.kpht-sec .elementor-widget.btn-primary a.elementor-button:hover,
.kpht-sec a.elementor-button.btn-primary:hover { background: var(--orange-dark); color: #fff; }
.kpht-sec .elementor-widget.btn-blue a.elementor-button,
.kpht-sec a.elementor-button.btn-blue { background: var(--blue); color: #fff; }
.kpht-sec .elementor-widget.btn-blue a.elementor-button:hover,
.kpht-sec a.elementor-button.btn-blue:hover { background: var(--blue-dark); color: #fff; }
.kpht-sec .elementor-widget.btn-ghost a.elementor-button,
.kpht-sec a.elementor-button.btn-ghost { background: transparent; border-color: var(--blue); color: var(--blue); }
.kpht-sec .elementor-widget.btn-ghost a.elementor-button:hover { background: rgba(7, 106, 174, 0.08); }
/* 「了解详情 →」还原为原型 .more 文字链接（须在基础样式之后覆盖） */
.kpht-sec .elementor-widget-button.more { margin-top: 14px; }
.kpht-sec .elementor-widget-button.more a.elementor-button,
.kpht-sec a.elementor-button.more {
  background: none; padding: 0; border: 0; border-radius: 0; width: auto;
  font-weight: 600; font-size: 14px; color: var(--blue);
}
.kpht-sec .elementor-widget-button.more a.elementor-button:hover { color: var(--orange); }
/* banner 内 CTA 行：原型左对齐 flex；放开 widget 100% 宽限制让按钮靠左 */
.kpht-sec.e-con.banner-cta { margin-top: 20px; }
.kpht-sec.e-con.banner-cta,
.kpht-sec.e-con.banner-cta .e-con-inner { text-align: left; }
.kpht-sec.e-con.banner-cta > .e-con-inner > .elementor-widget { width: auto; }
.kpht-sec.e-con.banner-cta .e-con-inner { align-items: flex-start; }
/* 侧栏卡片按钮：原型 .side-card .btn 通栏 */
.kpht-sec .side-card .elementor-widget-button.btn { width: 100%; margin-top: 12px; }
.kpht-sec .side-card .elementor-widget-button.btn a.elementor-button { width: 100%; }

/* 单页侧栏（原 aside 无类名 → .kpht-aside 承接） */
.kpht-aside { display: flex; flex-direction: column; gap: 16px; }
.kpht-aside .side-card { margin: 0; }
.side-row { padding: 9px 0; border-bottom: 1px dashed var(--line); }
.elementor-grid .e-loop-item:last-child .side-row { border-bottom: none; }
.side-row a { color: var(--text); text-decoration: none; font-size: 14px; }
.side-row a:hover { color: var(--blue); }
/* WP 侧栏行 gap 归零（原型 li 紧贴堆叠），微信按钮复刻原型 <button> 行高 */
html .e-con .side-card .elementor-widget-loop-grid .elementor-grid { gap: 0; row-gap: 0; }
html .e-con .side-card .btn.js-open-wechat a.elementor-button { line-height: 20px; }
html .e-con .side-row .elementor-widget-text-editor { font-size: 14px; }
html .e-con .side-row .elementor-widget-text-editor p { margin: 0; }

/* heading 组件与原型 h1-h4 间距并轨 */
.kpht-sec .elementor-heading-title { margin: 0; }

/* Loop Grid 间距与原型网格一致：svc 横滑行 18px / grid-3（howto）20px
   （类落在 widget wrapper 上，注意没有 e-loop-grid 这个类；
   gap 必须落在 .elementor-grid 元素上，wrapper 的 gap 不产生网格间距） */
.elementor-widget-loop-grid.svc-cards .elementor-grid { column-gap: 20px; row-gap: 20px; }
.elementor-widget-loop-grid.howto .elementor-grid { column-gap: 20px; row-gap: 20px; }

/* 注意：`.svc-cards` 只出现在服务归档模板（原型 services.html 的 .grid-4 纵向网格），
   首页横滑行 .svc-row 是原型原样 HTML（由原型 CSS 自带 ≤640 flex-basis:82% 处理）。
   第 11 段曾误给 .svc-cards 加 ≤640 横滑规则导致归档 390 变横排，已删除——勿再加回。 */

/* 「怎么选」数据行自动编号（对齐原型 1./2./3.） */
.howto .e-loop-item { counter-increment: kpht-howto; }
.howto .e-loop-item .elementor-heading-title::before { content: counter(kpht-howto) ". "; }

/* ============================================================
 * 案例中心（第 4 段，2026-09-18 原型新增）
 * ========================================================== */

/* 行高并轨：原型 body line-height 1.7，Elementor heading 组件默认更紧 */
.kpht-sec .elementor-heading-title { line-height: 1.7; }

/* 字体并轨：Elementor kit 全局 typography 给内容组件强制 Roboto，
   导致中文回退字体与原型（PingFang SC / Microsoft YaHei）不一致，恢复继承 body 字体 */
.kpht-sec .elementor-widget-text-editor,
.kpht-sec .elementor-heading-title,
.kpht-sec a.elementor-button,
.kpht-sec .elementor-widget-icon-list { font-family: inherit; }

/* 页面 banner 排版并轨（原型：h1 32px / lead fs16 mt10 maxw680）。
   Elementor 以 .e-con.e-con > .e-con-inner > .elementor-widget（0,3,0）
   强制 max-width:100%，这里用 html .e-con 前缀（0,3,1+）反制 */
html .page-banner .e-con > .e-con-inner .lead { margin-top: 10px; font-size: 16px; max-width: 680px; color: #e4f1fa; }

/* 容器内 20px 弹性 gap 与原型 margin 制不一致的页面：加 kpht-tight 归零，
   间距改由原型类/下列规则接管（仅案例中心使用，不影响既有段落） */
.kpht-tight.e-con > .e-con-inner { gap: 0; row-gap: 0; }

/* section-head 并轨（原型：h2 30px + 底部橙条 + 副文 mt10，容器 mb40） */
.kpht-tight .section-head-title .elementor-heading-title { font-size: 30px; position: relative; display: inline-block; padding-bottom: 14px; }
.kpht-tight .section-head-title .elementor-heading-title::after { content: ""; position: absolute; left: 50%; transform: translateX(-50%); bottom: 0; width: 48px; height: 4px; border-radius: 2px; background: var(--orange); }
html .e-con .kpht-tight > .e-con-inner .section-head-sub { color: var(--muted); font-size: 14.5px; margin: 10px auto 40px; max-width: 720px; width: 100%; }
/* 原型 section-head h2 继承正文深灰 #1c2b36；Elementor Heading 默认取 kit 主色（深蓝）需覆盖 */
html .e-con.section-head .elementor-heading-title,
html .e-con .section-head .elementor-heading-title { color: var(--text, #1c2b36); }

/* CTA 条排版并轨（原型：h2 26px / p mt8 / btn mt20） */
.kpht-tight .cta-band-h2 .elementor-heading-title { font-size: 26px; }
.kpht-tight .cta-band-text p { color: #cfe3f2; margin: 8px 0 0; }
.kpht-tight .cta-band-btn { margin-top: 20px; }

/* CTA 条并轨补遗（第 11 段回归）：服务族 wrap 未加 kpht-tight（gap 20×2 → +32），
   博客/航线/案例族已归零但缺文本 widget 的 mt8（→ −8）。统一归零 gap + 补 margin。
   注意 .cta-band 自身是顶层 e-con，必须用 .e-con.cta-band 复合选择器。 */
html .e-con.cta-band .wrap > .e-con-inner { gap: 0; row-gap: 0; }
html .e-con.cta-band .wrap > .e-con-inner > .elementor-widget-text-editor { margin-top: 8px; }
html .e-con.cta-band .wrap > .e-con-inner > .elementor-widget-button { margin-top: 20px; }

/* 原型 .case-card .case-media：图片通到卡片边缘（卡片 padding 26/22）。
   Elementor 给 widget 强制 width/max-width:100%，负 margin 不会拉伸宽度，
   需显式 calc + max-width:none（特异性压过 .e-con.e-con 规则） */
html .e-con .card > .e-con-inner .case-media { margin: -26px -22px 16px; width: calc(100% + 44px); max-width: none; }
.case-card .case-media img { width: 100%; height: 188px; object-fit: cover; display: block; border-radius: var(--radius) var(--radius) 0 0; }
.case-card .elementor-heading-title { margin: 8px 0; }
.case-card .cat { display: block; }

/* 案例网格：原型 .grid-3（3 列 / gap 20 / ≤900 两列 / ≤640 单列，走原生断点）。
   gap 必须落在 .elementor-grid 上（wrapper 不产生网格间距） */
.elementor-widget-loop-grid.case-grid .elementor-grid { column-gap: 20px; row-gap: 20px; }

/* 打包步骤：原型 .steps.packing（4 列 / gap 14 / ≤960 两列 —— 960 是原型自带断点，勿并入 900） */
.elementor-widget-loop-grid.packing .elementor-grid { column-gap: 14px; row-gap: 14px; }
/* 原型 grid item 默认拉伸同行等高，Elementor 循环项需显式恢复 */
.elementor-widget-loop-grid.packing .elementor-grid > .e-loop-item { display: flex; flex-direction: column; }
.elementor-widget-loop-grid.packing .elementor-grid > .e-loop-item > .elementor-element { flex: 1 1 auto; }
@media (max-width: 960px) {
	.elementor-widget-loop-grid.packing .elementor-grid { grid-template-columns: repeat(2, 1fr); }
}
/* 原型 .step-img：图通边 + 圆角上侧，序号圆盘压图 */
.step-img { padding: 0 0 18px; overflow: hidden; }
html .e-con .step-img > .e-con-inner .step-media { margin: 0 0 14px; }
.step-img .step-media img { width: 100%; height: 148px; object-fit: cover; display: block; }
.step-img .num { margin-top: -22px; box-shadow: 0 0 0 4px var(--white); position: relative; z-index: 1; }
.step-img p { font-size: 13.5px; color: var(--muted); }
html .e-con .step-img .step-desc { font-size: 13.5px; color: var(--muted); }
.step-img b { display: block; font-size: 15px; margin-bottom: 4px; }
.packing-note { text-align: center; margin-top: 14px; }
.packing-note p { color: var(--muted); font-size: 13px; }

/* 修正：css_classes 挂在按钮 wrapper（div），<a> 才是 .elementor-button */
.card .more a.elementor-button,
.kpht-sec .more a.elementor-button { background: none; padding: 0; border-radius: 0; width: auto; color: var(--blue); font-weight: 600; font-size: 14px; }
.card .more a.elementor-button:hover,
.kpht-sec .more a.elementor-button:hover { color: var(--orange); }
.kpht-sec .btn-primary a.elementor-button { background: var(--orange); color: #fff; }
.kpht-sec .btn-primary a.elementor-button:hover { background: var(--orange-dark); color: #fff; }
.kpht-sec .btn-blue a.elementor-button { background: var(--blue); color: #fff; }
.kpht-sec .btn-blue a.elementor-button:hover { background: var(--blue-dark); color: #fff; }
.kpht-sec .btn-ghost a.elementor-button { background: transparent; border: 1px solid var(--blue); color: var(--blue); }
.kpht-sec .btn-ghost a.elementor-button:hover { background: rgba(7, 106, 174, 0.08); }

/* ============================================================
 * 航线中心（第 5 段）
 * ========================================================== */

/* 航线网格 / 影响因素网格：原型 .grid-3 与 .grid-4（gap 20）。
   gap 必须落在 .elementor-grid 上（wrapper 不产生网格间距） */
.elementor-widget-loop-grid.route-cards .elementor-grid { column-gap: 20px; row-gap: 20px; }
.elementor-widget-loop-grid.factor-cards .elementor-grid { column-gap: 20px; row-gap: 20px; }

/* 影响因素卡（.card.feat）：图标盒 46px，SVG 对齐原型 22px emoji */
.card.feat .ico img { width: 22px; height: 22px; object-fit: contain; }

/* 航线单页：post_content 投影里的 tabs 表格滚动与原型一致（.table-scroll 原型已有） */

/* ============================================================
 * 航线中心（第 5 段）
 * ========================================================== */

/* 航线网格 / 影响因素网格：原型 .grid-3 与 .grid-4（gap 20）。
   gap 必须落在 .elementor-grid 上（wrapper 不产生网格间距） */
.elementor-widget-loop-grid.route-cards .elementor-grid { column-gap: 20px; row-gap: 20px; }
.elementor-widget-loop-grid.factor-cards .elementor-grid { column-gap: 20px; row-gap: 20px; }

/* 影响因素卡（.card.feat）：图标盒 46px，SVG 对齐原型 22px emoji */
.card.feat .ico img { width: 22px; height: 22px; object-fit: contain; }

/* 卡片内距并轨：kpht-tight 归零容器 flex gap 后，恢复原型 margin 制
   （.card .ico 的 margin-bottom 被 Elementor widget 规则清掉，需 html 前缀反制） */
html .e-con .card > .e-con-inner > .ico { margin-bottom: 14px; }
html .e-con .card > .e-con-inner > .card-title { margin-bottom: 8px; }
html .e-con .card > .e-con-inner > .more { margin-top: 14px; }
/* 卡片描述文字：原型 .card p 14.5px，且 flex:1 把 more 按钮压到卡底 */
html .e-con .card > .e-con-inner > .elementor-widget-text-editor { font-size: 14.5px; line-height: 1.7; flex: 1; }

/* ---------- 第 6 段 · 博客 ---------- */
/* 网格 gap（原型 .grid-3 gap 20） */
.elementor-widget-loop-grid.blog-cards .elementor-grid { column-gap: 20px; row-gap: 20px; }
/* thumb 在 widget wrapper 内失去 flex item 身份，需显式块化 */
html .e-con .post-card a.thumb { display: block; }
/* body 容器 flex:1 让 meta 贴底；摘要 wrapper flex:1 撑开 */
html .e-con .post-card > .e-con-inner > .body { flex: 1; }
html .e-con .post-card .body > .e-con-inner > .elementor-widget-text-editor { flex: 1; }
/* 相关文章标题（原型 h2 22px / margin 44px 0 16px） */
html .e-con .related-title { margin: 44px 0 16px; }
html .e-con .related-title .elementor-heading-title { font-size: 22px; line-height: 1.7; }
/* 单页窄容器（原型 wrap max-width 820）；wrap-narrow 类在 e-con 自身，需同级命中 */
html .e-con .wrap-narrow { max-width: 820px; }
.kpht-sec.e-con.wrap-narrow { max-width: 820px; }
/* prose 本体是 e-con：kit 默认 padding 0 10px 同样需归零（原型 .prose 无水平内边距） */
.kpht-sec.e-con.prose { padding: 0; }
/* cat-nav / post-card 主体样式沿用原型移植规则（.cat-nav/.post-card 均已存在） */
/* 卡片标题排版：Elementor kit 用 em 字号（h6→0.67em）、1.7 行高、零边距压过
 * .post-card h3 / .post-card .cat 原型规则（0,1,1 < kit 0,2,0），此处按 kit 口径反压 */
html .e-con .post-card .cat .elementor-heading-title { font-size: 12px; line-height: 20px; }
html .e-con .post-card h3.elementor-heading-title { font-size: 16.5px; line-height: 1.45; margin: 6px 0 8px; }
html .e-con .post-card .elementor-widget-text-editor { font-size: 13.5px; line-height: 1.7; color: var(--muted); }
/* post-card 本体是 e-con：kit 默认容器 padding 0 10px 会让 thumb/body 全窄 20px，归零 */
.kpht-sec.e-con.post-card { padding: 0; }
/* HTML widget 内的 cert-grid：cert 的 aspect-ratio 会把内容高度传递为最小宽度，
   1fr 的 auto 下限（minmax(auto,1fr)）被撑到 1070px，压垮 detail-layout 双栏；
   改 minmax(0,1fr) 消除下限（原型有足够空间时渲染一致） */
html .e-con .cert-grid { grid-template-columns: repeat( 4, minmax( 0, 1fr ) ); }
/* 复刻原型 detail-layout 的实际首列宽：原型 cert min-content 地板 834px 撑出
   minmax(auto,1fr) 的 834 列（内容盒 1152 < 834+340+32，原型自身即溢出 54px）。
   contact 页 detail-layout 带内联 columns（1.15fr 0.85fr），内联优先不受影响 */
html .e-con .detail-layout { grid-template-columns: minmax( 834px, 1fr ) 340px; }
/* 移动断点随原型单列（0,2,1 需显式回退，否则压过上面 1080px 媒体查询） */
@media (max-width: 1080px) {
  html .e-con .detail-layout { grid-template-columns: 1fr; }
  /* 原型 ≤1080 证书栅格 2 列（style.css L358），同需显式回退压过 L664 的 4 列 */
  html .e-con .cert-grid { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}
/* prose 内 CTA 按钮行（原型结构原样投影，.btn 规则命中） */
html .e-con .prose .btn { display: inline-flex; }
html .e-con .prose .btn-ghost { border: 1px solid var(--line); }
html .e-con .card.feat > .e-con-inner > .ico { margin-bottom: 12px; }
html .e-con .card.feat > .e-con-inner > .elementor-widget-heading { margin-bottom: 8px; }

/* 归档页 section-head：Elementor 把 widget wrapper 压缩为内容宽并清掉
   margin，需恢复 max-width 720 + 居中 + mb40（同案例页 section-head-sub 手法） */
html .e-con .kpht-tight > .e-con-inner > .section-head { width: 100%; max-width: 720px; margin: 0 auto 40px; }

/* 单页双栏并轨（服务单页/航线单页共用）：Elementor 容器的 .e-con-inner
   成为 grid 的唯一项目，主栏/侧栏在其内部缩成内容宽。
   用 display:contents 让 prose / aside 直接成为 .detail-layout 的网格项 */
html .e-con.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; padding: 0; }
html .e-con.detail-layout > .e-con-inner { display: contents; }
@media (max-width: 1080px) {
	html .e-con.detail-layout { grid-template-columns: 1fr; }
}

/* 单页侧栏卡内距并轨（kpht-tight 归零 gap 后恢复原型 margin 制） */
html .e-con .side-card > .e-con-inner > .elementor-widget-heading { margin: 0 0 10px; }
html .e-con .side-card > .e-con-inner > .elementor-widget-button { margin-top: 12px; }
html .e-con .side-card > .e-con-inner > .elementor-widget-text-editor { margin: 0; font-size: 13.5px; color: var(--muted); }
/* 原型 aside 两卡间距 18px（.side-card margin-bottom 18） */
.kpht-aside { gap: 18px; }
/* e-con 容器化后 gap 落在 .e-con-inner（默认 20px），归位原型 18px */
html .e-con .kpht-aside > .e-con-inner { gap: 18px; }

/* 单页 prose 内容容器：去掉 Elementor 默认 10px 内边距，正文与原型同宽 */
html .e-con.prose { padding: 0; }
html .e-con .prose > .e-con-inner { padding: 0; }

/* Elementor 按钮并轨：原型 .btn padding 11px 22px / font-size 15px / 行高继承
   （.more 链接在上方规则里已单独归零 padding，不受影响） */
.kpht-sec a.elementor-button { padding: 11px 22px; font-size: 15px; line-height: 1.7; }

/* 单页 banner-cta：原型 .page-banner .banner-cta margin-top 20 */
html .page-banner .e-con > .e-con-inner .banner-cta { margin-top: 20px; }

/* ============================================================
 * 第 11 段 · 全站回归修正（2026-09-19）
 * ========================================================== */

/* 字体并轨：Elementor kit 全局排版（Roboto）压回原型字体栈
   （body 已是 "PingFang SC", "Microsoft YaHei", …；inherit 逐级上传到 body） */
html .kpht-sec .elementor-widget-text-editor,
html .kpht-sec .elementor-heading-title,
html .kpht-sec .elementor-widget-button .elementor-button,
html .kpht-sec .elementor-widget-icon-list .elementor-icon-list-item,
html .kpht-sec .elementor-widget-theme-post-content {
	font-family: inherit;
}

/* 博客分类页侧栏咨询卡（原型 blog-cat-*.html）：
   wrap 已是 kpht-tight（gap 0），直接用原型 margin：mt32 / mb18 */
html .e-con .side-card.cat-ask { margin-top: 32px; margin-bottom: 18px; }
/* 原型 <h2 style="font-size:20px">，且 h2 与 p 间距 0（覆盖侧栏卡通用 mb10 规则） */
html .kpht-sec .cat-ask .elementor-heading-title { font-size: 20px; }
html .e-con .side-card.cat-ask > .e-con-inner > .elementor-widget-heading { margin: 0; }
/* 原型按钮 <a> 15px/25.5（不套用侧栏微信 button 的 20px 行高规则） */
html .e-con .side-card.cat-ask > .e-con-inner > .elementor-widget-button a.elementor-button { line-height: 25.5px; }

/* —— 第 11 段回归 · 第二批（2026-09-19）—— */
/* 相关文章标题：原型 h2 mb16（.elementor-widget.elementor-widget 双写提特异性压过 kit reset） */
html .e-con .related-title.elementor-widget.elementor-widget { margin-bottom: 16px; }
/* 案例中心尾部说明：原型 p mt14 与上文 margin 塌缩，WP 需外提到 widget wrapper
   （构建产物的 p 带内联 margin-top:14px，须 !important 覆盖避免双计） */
html .e-con .packing-note { margin-top: 14px; }
html .e-con .packing-note p { margin-top: 0 !important; }
/* 航线归档 · 特性卡（card.feat）描述：原型 13.5px（kit 14.5 → +3） */
html .e-con .card.feat .elementor-widget-text-editor { font-size: 13.5px; }
/* 首页联系条：原型靠 margin 塌缩实现 −46 上叠；WP e-con 是 flex 不塌缩，
   用 :has() 把 −46 外提到区块 e-con、内部 .contact-strip 归零（视觉不变、盒子高度对齐） */
html .e-con.wrap:has(> .e-con-inner .contact-strip) { margin-top: -46px; }
html .e-con.wrap:has(> .e-con-inner .contact-strip) .contact-strip { margin-top: 0; }
/* 「怎么选」卡内 h4/p 间距：原型 0（e-con gap 20 归零；卡片 132 vs 152 → −20/卡） */
html .e-con .howto .card > .e-con-inner { gap: 0; row-gap: 0; }
/* 服务归档 howto 区块：head→网格间距原型 40 = e-con gap 20 + 本规则 20 */
html .e-con .section-head:has(+ .howto) { margin-bottom: 20px; }
/* 航线单页侧栏：原型 aside 由 grid 拉伸吸收末卡 mb18，WP flex 需显式补 */
html .e-con .kpht-aside > .e-con-inner > .side-card.elementor-element:last-child { margin-bottom: 18px; }


/* ============================================================
 * 第 12 段 · Theme Builder 壳桥接（Header/Footer 模板 → 原型样式）
 * ------------------------------------------------------------
 * 原型类挂在 Elementor 容器/控件 wrapper 上；原型类自身的规则
 * （.topbar/.site-header/.btn/.float-btn 等）已在上方逐字移植，
 * 本节只补「Elementor 结构差异」：
 *   1. .wrap 满宽 e-con → 还原原型 max-width + 自动居中 + 24px 侧距；
 *   2. text-editor/heading/nav-menu/button/image 控件的默认样式压回原型口径；
 *   3. 浮动条 icon-only 按钮用 Elementor 按钮控件复刻 .f-ico 彩色圆角片。
 * ========================================================== */

html .btn .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 11px 22px; border-radius: 8px; font-weight: 600; font-size: 15px;
	border: 1px solid transparent; background: transparent; color: var(--ink);
	box-shadow: none; text-transform: none; letter-spacing: 0; width: auto;
}
html .btn-primary .elementor-button { background: var(--orange); color: #fff; }
html .btn-primary .elementor-button:hover { background: var(--orange-dark); color: #fff; }
html .btn-sm .elementor-button { padding: 8px 16px; font-size: 14px; }




/* —— 原型按钮类挂在 wrapper 上会与内层元素双重生效，wrapper 层复位 —— */
html .btn.elementor-widget,
html .icon-btn.elementor-widget,
html .float-btn.elementor-widget {
	background: none; border: 0; box-shadow: none;
	padding: 0; width: auto; height: auto; border-radius: 0;
}
html .btn .elementor-button { font-size: 15px; line-height: 1.8; }
html .btn-sm .elementor-button { font-size: 14px; padding: 8px 16px; }

html .btn .elementor-button { font-size: 15px; line-height: 1.7; border: 1px solid transparent; }
html .btn-sm .elementor-button { font-size: 14px; padding: 8px 16px; }


/* ============================================================
 * 窄屏横向溢出加固（2026-11-01）
 * header 品牌名被 Elementor 模板设为 nowrap，≤400px 视口会撑破页面约 4px；
 * 放开换行，配合 min-width:0 收缩。
 * ========================================================== */
.brand-name, .brand-name p { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 400px) {
  html .brand.e-con { width: auto !important; flex: 0 1 auto !important; min-width: 0; }
  html .brand-name { width: auto !important; flex: 1 1 auto; }
  html .brand-name, html .brand-name p { white-space: normal !important; }
}
