/*
 * 商标注册板块（/trademark/ 总览与中国、马德里、欧盟、海外国家四个详情页），沿用专题页控件语言（topics.css）。
 * 用色：标题与大面积用藏青（--ink），数据、编号、链接用品牌蓝（--accent / --accent-fill），
 * 琥珀金只留给每屏一个主按钮（.button-cta，由品牌层统一定义）。造型母题：9° 前倾与切角，不用大圆角。
 */
.tp-tm .pk-sr, .tp-tm .tm-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.tp-tm { --tm-cut: 14px; --tm-cut-s: 8px; }
.tp-tm .p2-section { scroll-margin-top: 120px; }
.tp-tm #tp-form-title { scroll-margin-top: 84px; }

/* ---------- 首屏 ---------- */
.tm-hero h1 { max-width: 14em; }
.tm-hero .p2-hero-lead { max-width: 44em; }
.tm-hero-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.tm-hero-tags li { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border: 1px solid rgba(209, 219, 255, .32); color: rgba(240, 243, 255, .94); font-size: 13.5px; letter-spacing: .02em; clip-path: polygon(var(--tm-cut-s) 0, 100% 0, 100% calc(100% - var(--tm-cut-s)), calc(100% - var(--tm-cut-s)) 100%, 0 100%, 0 var(--tm-cut-s)); background: rgba(255, 255, 255, .04); }
.tm-hero .tp-points { margin-top: 26px; }
.tm-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.tm-hero-note { max-width: 46em; margin: 16px 0 0; color: rgba(209, 219, 255, .78); font-size: 13.5px; line-height: 1.75; }

/* ---------- 页内导航（吸顶，手机横向滑动） ---------- */
.tm-subnav { position: sticky; top: 66px; z-index: 30; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .96); backdrop-filter: blur(10px); }
.tm-subnav-in { display: flex; align-items: center; gap: 18px; min-height: 56px; }
.tm-subnav ul { display: flex; flex: 1 1 auto; gap: 4px; margin: 0; padding: 0; overflow-x: auto; list-style: none; scrollbar-width: none; }
.tm-subnav ul::-webkit-scrollbar { display: none; }
.tm-subnav li { flex: 0 0 auto; }
.tm-subnav a { position: relative; display: inline-flex; align-items: center; min-height: 56px; padding: 0 12px; color: var(--muted); font-size: 14px; white-space: nowrap; text-decoration: none; }
.tm-subnav ul a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; background: var(--accent-fill); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.tm-subnav ul a:hover, .tm-subnav ul a[aria-current] { color: var(--ink); }
.tm-subnav ul a[aria-current]::after, .tm-subnav ul a:hover::after { transform: scaleX(1); }
.tm-subnav a:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.tm-subnav-cta { flex: 0 0 auto; gap: 8px; min-height: 40px !important; padding: 0 16px !important; background: var(--ink); color: var(--white) !important; font-weight: 600; clip-path: polygon(var(--tm-cut-s) 0, 100% 0, 100% calc(100% - var(--tm-cut-s)), calc(100% - var(--tm-cut-s)) 100%, 0 100%, 0 var(--tm-cut-s)); }
.tm-subnav-cta:hover { background: var(--accent-fill); }

/* ---------- 四类服务入口（总览） ---------- */
.tm-paths { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.tm-path { display: flex; }
.tm-path-link { position: relative; display: flex; flex-direction: column; gap: 10px; width: 100%; padding: 26px 24px 24px; border: 1px solid var(--line); background: var(--white); color: inherit; text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; clip-path: polygon(0 0, calc(100% - var(--tm-cut)) 0, 100% var(--tm-cut), 100% 100%, 0 100%); }
.tm-path-link::before { content: ""; position: absolute; left: 0; top: 0; width: 56px; height: 3px; background: var(--accent-fill); transform: skewX(calc(var(--slant) * -1)); transform-origin: left; }
.tm-path-link:hover, .tm-path-link:focus-visible { border-color: var(--accent-fill); box-shadow: 0 18px 40px -28px rgba(33, 39, 115, .45); transform: translateY(-3px); }
.tm-path-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.tm-path-no { color: var(--accent-fill); font-family: var(--numeric), var(--sans); font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.tm-path-kicker { color: var(--muted); font-size: 13px; }
.tm-path h3 { margin: 0; color: var(--ink); font-size: 21px; line-height: 1.35; }
.tm-path p { margin: 0; color: var(--text, #2B3155); font-size: 14.5px; line-height: 1.75; }
.tm-path dl { display: grid; gap: 8px; margin: 4px 0 0; padding-top: 14px; border-top: 1px dashed var(--line); }
.tm-path dl div { display: grid; grid-template-columns: 4.6em 1fr; gap: 8px; font-size: 13.5px; line-height: 1.65; }
.tm-path dt { color: var(--muted); }
.tm-path dd { margin: 0; color: var(--ink); }
.tm-path-cta { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 10px; color: var(--accent-fill); font-weight: 600; font-size: 14.5px; }
.tm-path-cta i { transition: transform .2s; }
.tm-path-link:hover .tm-path-cta i { transform: translateX(4px); }

/* ---------- 布局测算 ---------- */
.tm-planner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(20px, 3vw, 36px); align-items: start; }
.tm-form { display: grid; gap: 22px; padding: clamp(20px, 2.4vw, 30px); border: 1px solid var(--line); background: var(--white); box-shadow: 0 18px 48px -32px rgba(33, 39, 115, .35); }
.tm-field { display: grid; gap: 12px; min-width: 0; margin: 0; padding: 0; border: 0; }
.tm-field + .tm-field { padding-top: 20px; border-top: 1px solid var(--line); }
.tm-field legend { display: flex; align-items: center; gap: 10px; width: 100%; margin-bottom: 12px; padding: 0; color: var(--ink); font-size: 16px; font-weight: 700; }
.tm-field legend b { display: inline-grid; place-items: center; width: 26px; height: 26px; background: var(--ink); color: var(--white); font-family: var(--numeric), var(--sans); font-size: 13px; transform: skewX(calc(var(--slant) * -1)); }
.tm-field legend em { margin-left: auto; color: var(--accent-fill); font-size: 13px; font-style: normal; font-weight: 600; }
.tm-presets { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.tm-presets > span { color: var(--muted); font-size: 13px; margin-right: 2px; }
.tm-preset { min-height: 34px; padding: 0 12px; border: 1px dashed rgba(33, 39, 115, .34); background: transparent; color: var(--ink); font: inherit; font-size: 13px; cursor: pointer; }
.tm-preset:hover { border-color: var(--accent-fill); color: var(--accent-fill); }
.tm-preset[aria-pressed="true"] { border-style: solid; border-color: var(--accent-fill); background: rgba(var(--accent-rgb), .08); color: var(--accent-fill); }
.tm-preset:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.tm-group { display: grid; gap: 8px; }
.tm-group-label { margin: 0; color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .04em; }
.tm-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.tm-chip { position: relative; cursor: pointer; }
.tm-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tm-chip span { display: inline-flex; align-items: center; min-height: 38px; padding: 0 12px; border: 1px solid rgba(33, 39, 115, .24); color: var(--ink); font-size: 14px; transition: background .2s, border-color .2s, color .2s; }
.tm-chip small { display: none; }
.tm-chip:hover span { border-color: var(--accent-fill); }
.tm-chip input:checked + span { border-color: var(--accent-fill); background: var(--accent-fill); color: var(--white); }
.tm-chip input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.tm-chip.is-base span { border-style: dashed; }
.tm-stepper { display: flex; align-items: center; gap: 8px; }
.tm-stepper button { width: 44px; height: 44px; border: 1px solid rgba(33, 39, 115, .28); background: var(--white); color: var(--ink); font-size: 20px; line-height: 1; cursor: pointer; }
.tm-stepper button:hover { border-color: var(--accent-fill); color: var(--accent-fill); }
.tm-stepper button:focus-visible, .tm-stepper input:focus { outline: 2px solid var(--accent); outline-offset: 0; }
.tm-stepper input { width: 72px; height: 44px; border: 1px solid rgba(33, 39, 115, .28); color: var(--ink); font-family: var(--numeric), var(--sans); font-size: 18px; font-weight: 700; text-align: center; -moz-appearance: textfield; }
.tm-stepper input::-webkit-outer-spin-button, .tm-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tm-stepper span { color: var(--muted); font-size: 14px; }
.tm-industry, .tm-date { display: grid; gap: 6px; color: var(--ink); font-size: 14px; font-weight: 600; }
.tm-industry select, .tm-date input { width: 100%; min-height: 46px; padding: 0 12px; border: 1px solid rgba(33, 39, 115, .28); border-radius: var(--radius); background: var(--white); color: var(--ink); font: inherit; font-size: 15px; font-weight: 400; }
.tm-date input { font-family: var(--numeric), var(--sans); }
.tm-industry select:focus, .tm-date input:focus { outline: 2px solid var(--accent); outline-offset: 0; border-color: var(--accent); }
.tm-hint { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.tm-check { display: flex; align-items: flex-start; gap: 10px; color: var(--text, #2B3155); font-size: 14px; line-height: 1.6; cursor: pointer; }
.tm-check input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--accent-fill); }
.tm-result { position: sticky; top: 140px; display: grid; gap: 16px; min-width: 0; }
.tm-sum { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.tm-sum-card { position: relative; display: grid; gap: 6px; padding: 20px 22px; border: 1px solid var(--line); background: var(--white); clip-path: polygon(0 0, calc(100% - var(--tm-cut)) 0, 100% var(--tm-cut), 100% 100%, 0 100%); }
.tm-sum-card.is-madrid { border-color: var(--ink); background: var(--ink); color: var(--white); }
.tm-sum-card p { margin: 0; color: var(--muted); font-size: 13.5px; font-weight: 600; }
.tm-sum-card.is-madrid p { color: rgba(209, 219, 255, .86); }
.tm-sum-card b { color: var(--ink); font-family: var(--numeric), var(--sans); font-size: clamp(26px, 2.6vw, 34px); line-height: 1.15; font-variant-numeric: tabular-nums; }
.tm-sum-card.is-madrid b { color: var(--white); }
.tm-sum-card small { color: var(--muted); font-size: 12.5px; line-height: 1.6; }
.tm-sum-card.is-madrid small { color: rgba(209, 219, 255, .8); }
.tm-sum-card.is-lower::after { content: "官费较低"; position: absolute; top: 16px; right: 22px; padding: 2px 8px; background: rgba(var(--accent-rgb), .1); color: var(--accent-fill); font-size: 12px; font-weight: 600; }
.tm-sum-card.is-madrid.is-lower::after { background: rgba(255, 255, 255, .14); color: var(--white); }
.tm-verdict { margin: 0; padding: 14px 16px; border-left: 3px solid var(--accent-fill); background: rgba(var(--accent-rgb), .06); color: var(--text, #2B3155); font-size: 14px; line-height: 1.75; }
.tm-verdict b { color: var(--ink); }
.tm-empty { margin: 0; padding: 32px 20px; border: 1px dashed var(--line); color: var(--muted); text-align: center; }
.tm-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); background: var(--white); -webkit-overflow-scrolling: touch; }
.tm-table-wrap:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.tm-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 13.5px; line-height: 1.6; }
.tm-table caption { padding: 12px 14px; color: var(--ink); font-weight: 700; text-align: left; border-bottom: 1px solid var(--line); }
.tm-table th, .tm-table td { padding: 11px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.tm-table thead th { background: var(--pale); color: var(--muted); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.tm-table tbody th { color: var(--ink); font-weight: 700; white-space: nowrap; }
.tm-table td { color: var(--text, #2B3155); font-variant-numeric: tabular-nums; }
.tm-table small { display: block; color: var(--muted); font-size: 12px; font-weight: 400; }
.tm-table tr:last-child th, .tm-table tr:last-child td { border-bottom: 0; }
.tm-table tfoot th, .tm-table tfoot td { border-top: 2px solid var(--ink); border-bottom: 0; color: var(--ink); }
.tm-lines { border: 1px solid var(--line); background: var(--white); }
.tm-lines summary { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; color: var(--ink); font-size: 14px; font-weight: 600; cursor: pointer; list-style: none; }
.tm-lines summary::-webkit-details-marker { display: none; }
.tm-lines summary i { position: relative; width: 12px; height: 12px; }
.tm-lines summary i::before, .tm-lines summary i::after { content: ""; position: absolute; left: 0; top: 5px; width: 12px; height: 2px; background: currentColor; transition: transform .2s; }
.tm-lines summary i::after { transform: rotate(90deg); }
.tm-lines[open] summary i::after { transform: rotate(0); }
.tm-lines ul { margin: 0; padding: 0 14px 10px; list-style: none; }
.tm-lines li { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-top: 1px dashed var(--line); font-size: 13.5px; }
.tm-lines li span { color: var(--text, #2B3155); }
.tm-lines li b { color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tm-flags { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.tm-flags li { position: relative; padding: 10px 14px 10px 34px; background: var(--white); border: 1px solid var(--line); color: var(--text, #2B3155); font-size: 13.5px; line-height: 1.7; }
.tm-flags li::before { content: ""; position: absolute; left: 14px; top: 17px; width: 9px; height: 9px; background: var(--accent-fill); transform: skewX(calc(var(--slant) * -1)); }
.tm-flags li.is-warn { border-color: rgba(180, 35, 24, .28); }
.tm-flags li.is-warn::before { background: #B42318; }
.tm-flags li.is-ok::before { background: #067647; }
.tm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.tm-copy-status { flex: 1 1 100%; margin: 0; color: var(--muted); font-size: 13px; }
.tm-copy-status:empty { display: none; }
.tm-fx { font-size: 13.5px; }

/* ---------- 三条路径对比 ---------- */
.tm-compare { min-width: 720px; }
.tm-compare thead th:not(:first-child) { color: var(--ink); font-size: 14px; }
.tm-compare tbody th { white-space: normal; width: 9em; }

/* ---------- 规则卡 ---------- */
.tm-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.tm-filter[hidden] { display: none; }
.tm-filter button { min-height: 38px; padding: 0 14px; border: 1px solid rgba(33, 39, 115, .24); background: var(--white); color: var(--ink); font: inherit; font-size: 14px; cursor: pointer; }
.tm-filter button em { margin-left: 4px; color: var(--muted); font-style: normal; font-size: 12px; }
.tm-filter button[aria-pressed="true"] { border-color: var(--ink); background: var(--ink); color: var(--white); }
.tm-filter button[aria-pressed="true"] em { color: rgba(255, 255, 255, .75); }
.tm-filter button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.tm-rules { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.tm-rule { display: flex; flex-direction: column; gap: 14px; padding: 24px; border: 1px solid var(--line); background: var(--white); scroll-margin-top: 130px; }
.tm-rule[hidden] { display: none; }
.tm-rule header { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: start; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.tm-rule h3 { margin: 0; color: var(--ink); font-size: 19px; }
.tm-rule header p { grid-column: 1; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.tm-badge { grid-column: 2; grid-row: 1 / span 2; align-self: start; padding: 3px 8px; border: 1px solid var(--line); color: var(--muted); font-size: 12px; white-space: nowrap; }
.tm-badge.is-yes { border-color: rgba(var(--accent-rgb), .4); background: rgba(var(--accent-rgb), .07); color: var(--accent-fill); }
.tm-rule dl { display: grid; gap: 10px; margin: 0; }
.tm-rule dl div { display: grid; grid-template-columns: 6.6em minmax(0, 1fr); gap: 10px; font-size: 13.5px; line-height: 1.7; }
.tm-rule dt { color: var(--muted); }
.tm-rule dd { margin: 0; color: var(--text, #2B3155); }
.tm-rule dd b { color: var(--ink); font-variant-numeric: tabular-nums; }
.tm-rule dd small { display: block; color: var(--muted); font-size: 12px; }
.tm-watch { margin: 0; padding: 10px 12px; background: var(--pale); color: var(--text, #2B3155); font-size: 13px; line-height: 1.7; }
.tm-watch b { margin-right: 8px; color: var(--accent-fill); }
.tm-watch.is-notice b { color: #B42318; }
.tm-rule .tp-src { margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--line); font-size: 12.5px; }
.tm-rule-add[hidden] { display: none; }

/* ---------- 行业与类别 ---------- */
.tm-inds { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.tm-ind { display: flex; flex-direction: column; gap: 12px; padding: 20px; border: 1px solid var(--line); background: var(--white); }
.tm-ind h3 { margin: 0; color: var(--ink); font-size: 17px; }
.tm-ind p { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.tm-cls { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px 4px 4px; background: var(--pale); color: var(--text, #2B3155); font-size: 13px; }
.tm-cls b { display: inline-grid; place-items: center; min-width: 24px; height: 22px; padding: 0 4px; background: var(--ink); color: var(--white); font-family: var(--numeric), var(--sans); font-size: 12px; }
.tm-ind .tp-link { margin-top: auto; padding: 0; border: 0; background: none; font: inherit; font-size: 14px; cursor: pointer; }
.tm-ind .tp-link[hidden] { display: none; }
.tm-nice { margin-top: 22px; border: 1px solid var(--line); background: var(--white); }
.tm-nice summary { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; color: var(--ink); font-weight: 600; cursor: pointer; list-style: none; }
.tm-nice summary::-webkit-details-marker { display: none; }
.tm-nice-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0 24px; margin: 0; padding: 0 20px 18px; list-style: none; }
.tm-nice-list li { display: grid; grid-template-columns: 30px 1fr; gap: 2px 10px; padding: 10px 0; border-top: 1px dashed var(--line); }
.tm-nice-list b { grid-row: 1 / span 2; color: var(--accent-fill); font-family: var(--numeric), var(--sans); font-size: 15px; }
.tm-nice-list span { color: var(--ink); font-size: 14px; font-weight: 600; }
.tm-nice-list small { color: var(--muted); font-size: 12.5px; line-height: 1.6; }

/* ---------- 关键事实 / 官费表 ---------- */
.tm-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0; margin: 0 0 18px; border-top: 2px solid var(--ink); }
.tm-fact { display: grid; gap: 8px; padding: 20px 20px 20px 0; border-bottom: 1px solid var(--line); }
.tm-fact dt { color: var(--muted); font-size: 13px; font-weight: 600; }
.tm-fact dd { display: grid; gap: 4px; margin: 0; }
.tm-fact b { color: var(--ink); font-size: 17px; line-height: 1.5; }
.tm-fact small { color: var(--text, #2B3155); font-size: 13.5px; line-height: 1.7; }
.tm-fees .tp-fee-price { color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.tm-sec .tp-src { margin-top: 16px; }

/* ---------- 马德里费用结构 ---------- */
.tm-mf { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(20px, 3vw, 40px); align-items: start; }
.tm-mf-parts { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--ink); }
.tm-mf-parts li { display: grid; grid-template-columns: 40px 1fr; gap: 4px 14px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.tm-mf-parts span { grid-row: 1 / span 2; color: var(--accent-fill); font-family: var(--numeric), var(--sans); font-weight: 700; }
.tm-mf-parts h3 { margin: 0; color: var(--ink); font-size: 17px; }
.tm-mf-parts p { margin: 0; color: var(--text, #2B3155); font-size: 14px; line-height: 1.75; }
.tm-mf-calc { padding: 22px; border: 1px solid var(--line); background: var(--pale); }
.tm-mf-calc h3 { margin: 0 0 14px; color: var(--ink); font-size: 16px; line-height: 1.5; }
.tm-mf-calc .tm-table { min-width: 0; background: var(--white); }
.tm-mf-calc .tm-table td { text-align: right; }
.tm-mf-calc .tm-table td b { font-size: 18px; }

/* ---------- 流程（两段式：快企务安排 / 您得到） ---------- */
.tm-steps .tp-step-get { padding-top: 10px; border-top: 1px dashed var(--line); }
.tm-steps .tp-step-get em { color: var(--accent-fill); }

/* ---------- 客户场景 ---------- */
.tm-scenes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.tm-scene { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 24px; border: 1px solid var(--line); background: var(--white); }
.tm-scene-no { color: var(--accent-fill); font-family: var(--numeric), var(--sans); font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.tm-scene h3 { margin: 0; color: var(--ink); font-size: 18px; line-height: 1.4; }
.tm-scene-q { margin: 0; color: var(--text, #2B3155); font-size: 14.5px; line-height: 1.75; }
.tm-scene-a { margin: 0; padding-top: 12px; border-top: 1px dashed var(--line); color: var(--text, #2B3155); font-size: 14px; line-height: 1.75; }
.tm-scene-a em, .tm-service-need em { display: block; margin-bottom: 4px; color: var(--muted); font-size: 12px; font-style: normal; font-weight: 600; letter-spacing: .04em; }
.tm-scene-go, .tm-market-go { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 6px; color: var(--accent-fill); font-size: 14.5px; font-weight: 600; text-decoration: none; }
.tm-scene-go i, .tm-market-go i { transition: transform .2s; }
.tm-scene-go:hover i, .tm-market-go:hover i { transform: translateX(4px); }
.tm-scene-go:focus-visible, .tm-market-go:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.tm-lead-line { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin: 22px 0 0; padding: 18px 22px; border: 1px solid var(--ink); }
.tm-lead-line span { color: var(--ink); font-size: 16px; font-weight: 600; line-height: 1.6; }

/* ---------- 核心服务 ---------- */
.tm-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--ink); }
.tm-service { display: flex; flex-direction: column; gap: 10px; padding: 24px 24px 24px 0; border-bottom: 1px solid var(--line); }
.tm-service:not(:nth-child(3n + 1)) { padding-left: 24px; border-left: 1px solid var(--line); }
.tm-service-no { color: var(--accent-fill); font-family: var(--numeric), var(--sans); font-size: 13px; font-weight: 700; }
.tm-service h3 { margin: 0; color: var(--ink); font-size: 18px; }
.tm-service p { margin: 0; color: var(--text, #2B3155); font-size: 14px; line-height: 1.75; }
.tm-service-need { padding: 10px 12px; background: var(--white); }
.tm-service .tp-link { margin-top: auto; }
.tm-role-note { border-left-color: var(--ink); }

/* ---------- 热门市场 ---------- */
.tm-markets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tm-market { display: flex; flex-direction: column; gap: 14px; padding: 24px; border: 1px solid var(--line); background: var(--white); scroll-margin-top: 130px; }
.tm-market header { display: grid; gap: 4px; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.tm-market-kind { justify-self: start; padding: 2px 8px; background: rgba(var(--accent-rgb), .08); color: var(--accent-fill); font-size: 12px; font-weight: 600; }
.tm-market h3 { margin: 0; color: var(--ink); font-size: 20px; }
.tm-market header p { margin: 0; color: var(--muted); font-size: 13px; }
.tm-market dl { display: grid; gap: 12px; margin: 0; }
.tm-market dt { margin-bottom: 4px; color: var(--muted); font-size: 12.5px; font-weight: 600; }
.tm-market dd { margin: 0; color: var(--text, #2B3155); font-size: 14px; line-height: 1.75; }
.tm-market dd > small { display: block; margin-top: 6px; color: var(--muted); font-size: 12.5px; line-height: 1.65; }
.tm-market-fee { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; color: var(--muted); font-size: 12.5px; }
.tm-market-fee b { color: var(--ink); font-size: 16px; font-variant-numeric: tabular-nums; }
.tm-market-fee.is-list { display: block; color: var(--ink); font-size: 13.5px; }
.tm-market-fee.is-list small { display: block; color: var(--muted); font-size: 12px; }
.tm-market-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--line); }
.tm-market-foot .tm-market-go { margin: 0; padding: 0; }
.tm-market.is-other { justify-content: center; border: 1px dashed rgba(33, 39, 115, .4); background: var(--pale); }
.tm-market.is-other h3 { font-size: 19px; }
.tm-market.is-other p { margin: 0; color: var(--text, #2B3155); font-size: 14px; line-height: 1.75; }
.tm-market.is-other .button { justify-self: start; align-self: flex-start; }

/* ---------- 申请路径 ---------- */
.tm-routes { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.tm-route { display: flex; flex-direction: column; gap: 12px; padding: 26px 24px; border: 1px solid var(--line); background: var(--white); }
.tm-route-no { display: inline-grid; place-items: center; width: 36px; height: 36px; background: var(--ink); color: var(--white); font-family: var(--numeric), var(--sans); font-weight: 700; transform: skewX(calc(var(--slant) * -1)); }
.tm-route h3 { margin: 0; color: var(--ink); font-size: 19px; }
.tm-route > p { margin: 0; color: var(--text, #2B3155); font-size: 14.5px; line-height: 1.75; }
.tm-route ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.tm-route li { position: relative; padding-left: 18px; color: var(--text, #2B3155); font-size: 14px; line-height: 1.7; }
.tm-route li::before { content: ""; position: absolute; left: 0; top: 11px; width: 8px; height: 2px; background: var(--accent-fill); }
.tm-route-watch { margin: auto 0 0; padding: 10px 12px; background: var(--pale); color: var(--text, #2B3155); font-size: 13.5px; line-height: 1.7; }
.tm-route-watch b { margin-right: 8px; color: var(--accent-fill); }
.tm-key { margin: 20px 0 0; padding: 16px 20px; border: 1px solid var(--ink); background: var(--white); color: var(--text, #2B3155); font-size: 15px; line-height: 1.8; }
.tm-key b { margin-right: 10px; color: var(--ink); }
.tm-route-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 22px; }

/* ---------- 服务优势（深色） ---------- */
.tm-advs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); }
.tm-advs li { display: grid; gap: 10px; align-content: start; padding: 26px 26px 26px 0; border-bottom: 1px solid var(--line-dark); }
.tm-advs li:not(:nth-child(3n + 1)) { padding-left: 26px; border-left: 1px solid var(--line-dark); }
.tm-advs span { color: rgba(209, 219, 255, .9); font-family: var(--numeric), var(--sans); font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.tm-advs h3 { margin: 0; color: var(--white); font-size: 19px; }
.tm-advs p { margin: 0; color: rgba(225, 231, 255, .86); font-size: 14.5px; line-height: 1.8; }
.is-dark .tm-advs + .tp-note, .tm-sec-advantages .tp-note { border-left-color: rgba(209, 219, 255, .6); background: rgba(255, 255, 255, .05); color: rgba(225, 231, 255, .9); }

/* ---------- 业务联动 ---------- */
.tm-linkage-lead { max-width: 46em; margin: 0 0 20px; color: var(--text, #2B3155); font-size: 15.5px; line-height: 1.85; }
.tm-linkage { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--ink); }
.tm-linkage a { display: grid; grid-template-columns: 9em minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.tm-linkage b { color: var(--ink); font-size: 16px; }
.tm-linkage span { color: var(--text, #2B3155); font-size: 14px; line-height: 1.7; }
.tm-linkage i { color: var(--accent-fill); transition: transform .2s; }
.tm-linkage a:hover b { color: var(--accent-fill); }
.tm-linkage a:hover i { transform: translateX(4px); }
.tm-linkage a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* ---------- 报价项目 ---------- */
.tm-pricing { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(20px, 3vw, 40px); align-items: start; }
.tm-quote .tp-fee-row { grid-template-columns: 13em minmax(0, 1fr); }
.tm-quote em { margin-right: 10px; color: var(--accent-fill); font-family: var(--numeric), var(--sans); font-style: normal; font-weight: 700; font-size: 13px; }
.tm-pricing-side { display: grid; gap: 16px; padding: 24px; border: 1px solid var(--line); background: var(--white); }
.tm-pricing-side h3 { margin: 0 0 6px; color: var(--ink); font-size: 16px; }
.tm-pricing-side p { margin: 0; color: var(--text, #2B3155); font-size: 14px; line-height: 1.75; }
.tm-pricing-actions { display: grid; gap: 10px; padding-top: 14px; border-top: 1px dashed var(--line); }
.tm-pricing-actions .button { justify-content: center; }

/* ---------- 表单：多选市场更紧凑 ---------- */
.tp-tm .tp-chips.is-multi span { min-height: 38px; padding: 0 12px; }

/* ---------- 响应式 ---------- */
@media (max-width: 1180px) {
  .tm-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tm-planner { grid-template-columns: 1fr; }
  .tm-result { position: static; }
}
@media (max-width: 1023px) {
  .tm-scenes, .tm-markets, .tm-routes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tm-services, .tm-advs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tm-service:not(:nth-child(3n + 1)), .tm-advs li:not(:nth-child(3n + 1)) { padding-left: 0; border-left: 0; }
  .tm-service:nth-child(2n), .tm-advs li:nth-child(2n) { padding-left: 24px; border-left: 1px solid var(--line); }
  .tm-advs li:nth-child(2n) { border-left-color: var(--line-dark); }
  .tm-mf, .tm-pricing { grid-template-columns: 1fr; }
  .tm-linkage { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .tm-subnav { top: 60px; }
  .tm-subnav-in { gap: 10px; min-height: 48px; padding-right: 0; }
  .tm-subnav a { min-height: 48px; padding: 0 10px; font-size: 13.5px; }
  .tm-subnav-cta { display: none !important; }
  .tm-paths, .tm-scenes, .tm-markets, .tm-routes, .tm-services, .tm-advs { grid-template-columns: 1fr; }
  .tm-service, .tm-service:nth-child(2n), .tm-advs li, .tm-advs li:nth-child(2n) { padding-left: 0; padding-right: 0; border-left: 0; }
  .tm-rules { grid-template-columns: 1fr; }
  .tm-rule, .tm-market, .tm-scene, .tm-route { padding: 20px; }
  .tm-rule dl div { grid-template-columns: 1fr; gap: 2px; }
  .tm-linkage a { grid-template-columns: 1fr auto; gap: 4px 12px; }
  .tm-linkage a span { grid-column: 1; }
  .tm-linkage a i { grid-column: 2; grid-row: 1 / span 2; }
  .tm-quote .tp-fee-row { grid-template-columns: 1fr; }
  .tm-hero-actions .button { flex: 1 1 100%; justify-content: center; }
  .tm-form { padding: 18px; }
  .tm-sum { grid-template-columns: 1fr; }
  .tm-sum-card.is-lower::after { top: 14px; right: 16px; }
  .tm-lead-line { padding: 16px; }
  .tm-lead-line .button { flex: 1 1 100%; justify-content: center; }
  /* 手机端表格改为逐行卡片，避免横向滚动 */
  .tm-planner .tm-table-wrap { border: 0; background: none; overflow: visible; }
  .tm-planner .tm-table { min-width: 0; }
  .tm-planner .tm-table caption { padding: 0 0 10px; border: 0; }
  .tm-planner .tm-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .tm-planner .tm-table tbody tr { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; margin-bottom: 10px; padding: 14px; border: 1px solid var(--line); background: var(--white); }
  .tm-planner .tm-table tbody th { grid-column: 1 / -1; padding: 0 0 8px; border-bottom: 1px solid var(--line); }
  .tm-planner .tm-table tbody td { padding: 0; border: 0; }
  .tm-planner .tm-table tbody td::before { display: block; color: var(--muted); font-size: 11.5px; }
  .tm-planner .tm-table tbody td:nth-of-type(1)::before { content: "直接申请官费"; }
  .tm-planner .tm-table tbody td:nth-of-type(2)::before { content: "马德里指定费"; }
  .tm-planner .tm-table tbody td:nth-of-type(3)::before { content: "官方周期参考"; }
  .tm-planner .tm-table tbody td:nth-of-type(4)::before { content: "代理 / 送达要求"; }
  .tm-planner .tm-table tbody td:nth-of-type(3), .tm-planner .tm-table tbody td:nth-of-type(4) { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .tm-path-link, .tm-path-cta i, .tm-subnav ul a::after, .tm-scene-go i, .tm-market-go i, .tm-linkage i, .tm-chip span, .tm-lines summary i::before, .tm-lines summary i::after { transition: none; }
  .tm-path-link:hover, .tm-path-link:focus-visible { transform: none; }
}
@media print {
  .tm-subnav, .tm-actions, .tm-filter, .tm-rule-add, .tm-scene-go, .tm-market-go { display: none !important; }
  .tm-result { position: static; }
}

/* 区块标题：桌面端加宽标题列，并只在标点处断行（避免“您准 / 备在哪里”式的词中断行）；手机端保持常规换行 */
@media (min-width: 900px) {
  .tp-tm .p2-head.is-split { grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr); }
  .tp-tm .p2-head.is-split h2 { max-width: none; word-break: keep-all; overflow-wrap: anywhere; }
}
/* 服务优势恰为 4 项时宽屏排成一行，避免 3+1 的孤行（手机、平板仍按上面的断点） */
@media (min-width: 1024px) {
  .tm-advs:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* 流程：宽屏列数由模板按步骤数给出（--steps-cols）；分行时去掉贯穿顶线，改用行距区分 */
@media (min-width: 1101px) {
  .tm-steps { grid-template-columns: repeat(var(--steps-cols, 5), minmax(0, 1fr)); }
  .tm-steps.is-wrap { row-gap: 36px; }
  .tm-steps.is-wrap::before { display: none; }
}
/* FAQ 窄栏标题：桌面端缩小一档，配合标点断行，避免末行只剩一个字 */
@media (min-width: 900px) {
  .tp-tm .tp-faq-layout .p2-head h2 { font-size: clamp(28px, 2.7vw, 40px); }
}
