/*
 * NAVSMAP visual contract.
 * A small final layer that aligns the existing templates without rebuilding them.
 */
:root {
    --nm-accent: #333333;
    --nm-accent-hover: #111827;
    --nm-accent-soft: #f3f4f6;
    --nm-ink: #202124;
    --nm-body: #52525b;
    --nm-muted: #80858d;
    --nm-canvas: #f3f4f6;
    --nm-surface: #ffffff;
    --nm-surface-soft: #fafbfc;
    --nm-hairline: #e5e7eb;
    --nm-radius-card: 10px;
    --nm-radius-control: 6px;
    --nm-radius-media: 8px;
    --nm-shadow-featured: 0 18px 50px rgba(0, 0, 0, 0.08);
    --nm-shadow-hover: 0 12px 30px rgba(0, 0, 0, 0.07);
    --nm-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

body,
.nm-site,
.navsmap-app,
.navsmap-taaft {
    font-family: var(--nm-font);
    color: var(--nm-ink);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.nm-site {
    --nm-blue: var(--nm-accent);
    --nm-ink: #202124;
    --nm-muted: #80858d;
    --nm-bg: var(--nm-canvas);
    --nm-line: var(--nm-hairline);
    background: var(--nm-canvas);
}

.nm-site :where(h1, h2, h3),
.navsmap-app :where(h1, h2, h3) {
    color: var(--nm-ink);
    font-weight: 600;
    letter-spacing: -0.018em;
}

.nm-site :where(p, li),
.navsmap-app :where(p, li) {
    color: var(--nm-body);
}

.nm-site :focus-visible,
.navsmap-app :focus-visible,
body.login :focus-visible {
    outline: 2px solid var(--nm-accent);
    outline-offset: 3px;
}

/* Shell */
.nm-header {
    background: rgba(255, 255, 255, 0.96);
    border-bottom-color: var(--nm-hairline);
    box-shadow: none;
    backdrop-filter: saturate(160%) blur(14px);
}

.nm-brand strong {
    font-weight: 600;
    letter-spacing: -0.02em;
}

.nm-topnav a {
    color: var(--nm-body);
    font-weight: 400;
}

.nm-topnav a:hover,
.nm-topnav a:focus-visible {
    color: var(--nm-accent);
}

.nm-mini-search {
    border-color: transparent;
    border-radius: var(--nm-radius-control);
    background: #f3f4f6;
    box-shadow: none;
}

.nm-mini-search:focus-within {
    border-color: rgba(51, 51, 51, 0.35);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(51, 51, 51, 0.1);
}

.nm-user {
    background: #f3f4f6;
}

.nm-sidebar {
    --nm-sidebar-accent: #2563eb;
    --nm-sidebar-active: rgba(37, 99, 235, 0.08);
    background: #fff;
    border-right: 0;
}

.nm-sidebar nav { flex: 1; min-height: 0; }
.nm-side-group + .nm-side-group { margin-top: 24px; }
.nm-sidebar .nm-side-group-title { margin: 0 14px 8px; font-size: 11px; line-height: 16px; font-weight: 600; letter-spacing: 1px; color: #9ca3af; }
.nm-side-group .nm-side-link + .nm-side-link { margin-top: 4px; }

.nm-sidebar .nm-side-link {
    position: relative;
    min-height: 44px;
    padding: 10px 14px;
    margin: 0;
    border-radius: var(--nm-radius-control);
    color: #6b7280 !important;
    font-weight: 400;
    transition: background-color .18s ease, color .18s ease;
}

.nm-sidebar .nm-side-link:hover {
    color: var(--nm-ink) !important;
    background: #f3f4f6;
}

.nm-sidebar .nm-side-link.is-active {
    color: var(--nm-sidebar-accent) !important;
    background: var(--nm-sidebar-active);
    font-weight: 600;
}

.nm-sidebar .nm-side-link.is-active::before { content: ""; position: absolute; left: 0; top: 50%; width: 3px; height: 16px; border-radius: 0 4px 4px 0; background: var(--nm-sidebar-accent); transform: translateY(-50%); }
.nm-sidebar .nm-side-link:focus-visible { outline-color: var(--nm-sidebar-accent); outline-offset: 2px; }
.nm-side-icon { display: grid; width: 21px; height: 21px; flex-shrink: 0; color: var(--nm-muted); }
.nm-side-icon > * { grid-area: 1 / 1; width: 100%; height: 100%; }
.nm-sidebar .nm-side-link .nm-icon { color: inherit; }
.nm-sidebar .nm-side-link svg [stroke] { stroke-width: 2px; }
.nm-side-icon--solid { display: none; }
.nm-side-link.is-active .nm-side-icon { color: inherit; }
.nm-side-link.is-active .nm-side-icon--linear { display: none; }
.nm-side-link.is-active .nm-side-icon--solid { display: block; }
@media (min-width: 901px) {
    .nm-site.is-collapsed .nm-side-group-title { display: none; }
    .nm-site.is-collapsed .nm-sidebar .nm-side-link { justify-content: center; padding: 10px 0; }
}

.nm-collapse,
.nm-icon-button {
    border-color: var(--nm-hairline);
    box-shadow: none;
}

/* Homepage */
.nm-hero {
    background: var(--nm-canvas);
}

.nm-hero h1 {
    font-weight: 600;
    letter-spacing: -0.025em;
}

.nm-hero-search {
    border: 1px solid rgba(255, 255, 255, 0.58);
    border-radius: var(--nm-radius-card);
    box-shadow: none;
}

.nm-hero-search:focus-within {
    box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.24);
}

.nm-hero-search button,
.nm-secondary-button,
.navsmap-tool-actions__primary,
.navsmap-tool-card__visit {
    border-radius: var(--nm-radius-control);
    background: var(--nm-accent);
    font-weight: 600;
    box-shadow: none;
}

/* Keep the label readable when the shared button background is blue. */
.nm-secondary-button { color: #fff; }

.nm-topic {
    border-radius: var(--nm-radius-card);
    box-shadow: var(--nm-shadow-featured);
}

.nm-topic h2,
.nm-category strong,
.nm-tool-copy h3,
.nm-scene h3,
.nm-news-card h3 {
    font-weight: 600;
}

.nm-category,
.nm-tool-card,
.nm-scene,
.nm-news-card {
    border-color: var(--nm-hairline);
    border-radius: var(--nm-radius-card);
    box-shadow: none;
}

.nm-category:hover,
.nm-tool-card:hover,
.nm-scene:hover,
.nm-news-card:hover {
    transform: translateY(-2px);
    border-color: #d1d5db;
    box-shadow: var(--nm-shadow-hover);
}

.nm-category-icon,
.nm-scene-icon,
.nm-color-0,
.nm-color-1,
.nm-color-2,
.nm-color-3,
.nm-color-4,
.nm-color-5 {
    color: var(--nm-accent);
    background: var(--nm-accent-soft);
    border-radius: var(--nm-radius-control);
}

.nm-category-more a,
.nm-filter-list button,
.nm-tags span,
.nm-news-tag {
    color: #6b7280;
    border-color: transparent;
    background: #f3f4f6;
}

.nm-filter-list button.is-active {
    color: #fff;
    background: var(--nm-accent);
}
.nm-news-tag { color: var(--nm-body); background: var(--nm-accent-soft); }

.nm-tool-logo {
    border-radius: var(--nm-radius-control);
    background: #f3f4f6;
}

.nm-tool-foot {
    border-top-color: #eef1f5;
}

.nm-footer {
    border-top-color: var(--nm-hairline);
    background: #fff;
}

/* Taxonomy and discovery lists */
.nm-tax-hero {
    padding-top: 42px;
    padding-bottom: 34px;
    background: #f8f9fa;
    border-bottom-color: var(--nm-hairline);
}

.nm-tax-title-row h1 {
    font-weight: 600;
    letter-spacing: -0.025em;
}

.nm-tax-eyebrow,
.nm-blog-eyebrow,
.nm-blog-section-head span,
.nm-site-profile-head span {
    color: var(--nm-accent);
    font-weight: 600;
    letter-spacing: 0.14em;
}

.nm-tax-card,
.nm-search-card {
    border-color: var(--nm-hairline);
    border-radius: var(--nm-radius-card);
    background: #fff;
    box-shadow: none;
}

/* The link owns the only visible card surface; the wrapper stays transparent. */
.nm-tax-priority-card {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.nm-tax-priority-card > a,
.nm-tax-priority-card.is-first > a {
    border: 0;
    border-radius: var(--nm-radius-card);
    background: #fff;
    box-shadow: none;
}

.nm-tax-priority-card > a:hover {
    transform: translateY(-2px);
    box-shadow: none;
}

.nm-tax-rank {
    color: #d1d5db;
    font-weight: 700;
}

.nm-tax-priority-card.is-first .nm-tax-rank {
    color: var(--nm-accent);
}

.nm-tax-switcher {
    border-bottom-color: var(--nm-hairline);
}

.nm-tax-switcher__list a {
    min-height: 36px;
    border: 1px solid transparent;
    border-radius: var(--nm-radius-control);
    color: #6b7280;
    background: #f3f4f6;
}

.nm-tax-switcher__list a:hover {
    border-color: #d1d5db;
    color: var(--nm-ink);
}

.nm-tax-switcher__list a.is-active {
    border-color: #3578f6;
    color: #fff;
    background: #3578f6;
}
.nm-site .nm-tax-switcher__list a.is-active { color:#fff; }
.nm-site .nm-tax-pagination .page-numbers.current,
.nm-site .nm-tax-pagination .page-numbers:hover { color:#fff; background:#3578f6; border-color:#3578f6; }

/* Editorial */
.nm-blog-hero {
    color: var(--nm-ink);
    background: #f8f9fa;
    border-bottom: 1px solid var(--nm-hairline);
}

.nm-blog-hero::before {
    display: none;
}

.nm-blog-hero h1 {
    color: var(--nm-ink);
    font-weight: 600;
    letter-spacing: -0.025em;
}

.nm-blog-hero p,
.nm-blog-stats dd {
    color: var(--nm-muted);
}

.nm-blog-stats dt {
    color: var(--nm-accent);
    font-weight: 600;
}

.nm-blog-stats div + div {
    border-left-color: var(--nm-hairline);
}

.nm-blog-category-bar {
    border-bottom: 1px solid var(--nm-hairline);
    box-shadow: none;
}

.nm-blog-category-bar a {
    border-radius: var(--nm-radius-control);
}

.nm-blog-category-bar a:hover { color: var(--nm-ink); background: #e5e7eb; }
.nm-blog-category-bar a.is-current { color: #fff; background: var(--nm-accent); }

.nm-blog-lead,
.nm-blog-briefs,
.nm-blog-feed,
.nm-blog-empty {
    border: 1px solid var(--nm-hairline);
    border-radius: var(--nm-radius-card);
    box-shadow: none;
}

.nm-blog-lead h3,
.nm-blog-brief h3,
.nm-blog-row h3,
.nm-blog-date strong {
    font-weight: 600;
}

.nm-blog-lead-media,
.nm-blog-row-media,
.nm-blog-brief-media {
    border-radius: var(--nm-radius-media);
    background: #eef1f5;
}

.nm-blog-row + .nm-blog-row,
.nm-blog-brief + .nm-blog-brief,
.nm-blog-briefs-head {
    border-color: var(--nm-hairline);
}

.nm-blog-row-link {
    color: #6b7280 !important;
    background: #f3f4f6;
}

.nm-blog-row:hover .nm-blog-row-link {
    color: var(--nm-accent) !important;
    background: var(--nm-accent-soft);
    transform: translateX(2px);
}

/* Detail and article pages */
.nm-detail .navsmap-detail-hero,
.nm-site-pricing,
.nm-site-profile,
.nm-site-related .posts-item,
.nm-detail-content > .panel,
.nm-detail-content > .card,
.nm-detail #comments,
.nm-article-wrap {
    border: 1px solid var(--nm-hairline);
    border-radius: var(--nm-radius-card);
    box-shadow: none;
    background: #fff;
}

.nm-detail .site-name,
.nm-detail .navsmap-detail-hero h1,
.nm-site-profile-head h2,
.nm-site-subsection h3,
.nm-article-header h1 {
    font-weight: 600;
    letter-spacing: -0.02em;
}

.nm-detail .site-go .btn,
.nm-detail .app-button .btn,
.nm-detail .terms-list a,
.nm-site-term-list li > span {
    border-radius: var(--nm-radius-control);
}

.nm-detail .vc-theme {
    background: #3578f6 !important;
}

.nm-detail .vc-theme:hover {
    background: #2563dd !important;
}
.nm-detail--app .nm-app-actions .nm-app-website { color:#3578f6; border-color:#d0def3; }
.nm-detail--app .nm-app-actions .nm-app-website:hover { color:#fff; background:#3578f6; border-color:#3578f6; }

.nm-detail .sites-preview .preview-body {
    border: 1px solid var(--nm-hairline);
    border-radius: var(--nm-radius-card);
    box-shadow: var(--nm-shadow-featured);
}

/* Website details: one hero surface, then open editorial sections. */
.nm-detail--sites .site-name-box > .d-flex,
.nm-detail--sites .site-body .table-div { display:none !important; }
.nm-detail--sites .navsmap-detail-hero { border:0; padding:32px; margin-bottom:44px; }
.nm-detail--sites .site-body { min-width:0; }
.nm-detail--sites .site-body > .d-flex { margin-bottom:16px !important; }
.nm-detail--sites .site-name-box { margin-bottom:0 !important; }
.nm-detail--sites .site-body > .mt-2 { margin-top:0 !important; }
.nm-detail--sites .site-name { margin-bottom:0 !important; }
.nm-detail--sites .site-body p.nm-site-value { margin:0; color:var(--nm-ink); font-size:22px; font-weight:500; line-height:1.5; text-wrap:pretty; }
.nm-detail--sites .site-body p.nm-site-note { margin:10px 0 0; color:var(--nm-body); font-size:15px; line-height:1.7; }
.nm-detail--sites .site-go { align-items:flex-start; column-gap:12px; row-gap:12px; margin-top:24px !important; }
.nm-detail--sites .nm-site-cost { display:flex; flex-direction:column; gap:3px; flex:1 1 180px; min-width:0; padding-left:6px; color:var(--nm-body); font-size:13px; line-height:1.5; }
.nm-detail--sites .nm-site-cost strong { color:var(--nm-ink); font-size:14px; font-weight:600; }
.nm-site-cost-note { display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:3px; color:var(--nm-muted); font-size:12px; line-height:1.6; }
.nm-site-cost-note a { color:var(--nm-accent); }
.nm-detail--sites .terms-list { align-items:center; column-gap:16px; row-gap:4px; margin-top:20px !important; }
.nm-detail--sites .terms-list a { display:inline-flex; align-items:center; min-height:28px; padding:5px 8px !important; border:0; background:var(--nm-accent-soft) !important; color:var(--nm-body) !important; font-size:13px !important; }
.nm-detail--sites .terms-list a:hover { color:var(--nm-ink) !important; background:#e5e7eb !important; }
.nm-site-tags-more { flex-basis:100%; }
.nm-site-tags-more summary { width:fit-content; padding:6px 0; color:var(--nm-body); cursor:pointer; font-size:13px; }
.nm-site-tags-more summary:hover { color:var(--nm-accent); }
.nm-site-tags-extra { display:flex; flex-wrap:wrap; gap:4px 16px; padding-top:4px; }
.nm-detail--sites .sites-preview .site-img { width:100% !important; height:auto !important; min-height:0 !important; aspect-ratio:16/9; margin-top:0 !important; }
.nm-detail--sites .sites-preview .site-img img { position:absolute; inset:0; display:block; width:100% !important; height:100% !important; min-height:0 !important; max-width:none; object-fit:cover; object-position:top center; }
.nm-detail--sites .sites-preview .preview-body { border:0; box-shadow:0 8px 24px rgba(0,0,0,.06); }
@media(min-width:901px) {
    .nm-detail--sites .nm-site-richtext p:not(:last-child) { margin-bottom:20px; }
    .nm-detail--sites .navsmap-detail-hero > .site-content { display:grid !important; grid-template-columns:minmax(0,1fr) clamp(320px,32vw,480px); align-items:center; gap:36px; }
    .nm-detail--sites .sites-preview { width:100% !important; max-width:480px; justify-self:end; flex:none; }
    .nm-detail--sites .navsmap-detail-hero > .site-content:not(:has(.sites-preview)),
    .nm-detail--sites .navsmap-detail-hero > .site-content:has(.sites-preview img[src*="sites_null"]) { grid-template-columns:1fr; }
}
.nm-detail--sites .nm-site-pricing,
.nm-detail--sites .nm-site-profile { margin:0 0 44px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.nm-site-pricing__head h2,
.nm-detail--sites .nm-site-profile-head h2 { margin:0; padding:0; color:var(--nm-ink); font-size:22px; font-weight:600; line-height:1.4; letter-spacing:-.02em; }
.nm-detail--sites .nm-site-profile-head h2::before,
.nm-detail--sites .nm-site-subsection h3::before { display:none; }
.nm-site-capabilities { display:grid; gap:44px; margin:0 0 44px; padding:0; border-radius:0; background:transparent; }
.nm-site-capabilities h2 { margin:0; padding:0; color:#0f172a; font-size:16px; font-weight:600; line-height:1.5; }
.nm-site-capabilities .nm-site-audience-tags { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 0; padding:0; list-style:none; }
.nm-site-capabilities .nm-site-audience-tags li { display:inline-flex; align-items:center; min-width:0; max-width:100%; min-height:24px; padding:3px 10px; border-radius:99px; background:#f1f5f9; color:#374151; font-size:12px; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
.nm-site-capabilities .nm-site-core { margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.nm-site-capabilities .nm-site-core__head h2 { color:var(--nm-ink); font-size:22px; line-height:1.4; letter-spacing:-.02em; }
.nm-site-capabilities .nm-site-core__grid { display:grid; grid-template-columns:repeat(var(--nm-core-columns,3),minmax(0,1fr)); gap:32px; margin-top:24px; padding:0; border:0; }
.nm-site-capabilities .nm-site-core__item { min-width:0; display:flex; align-items:flex-start; gap:14px; padding:0; overflow-wrap:anywhere; }
.nm-site-capabilities .nm-site-core__item > div { min-width:0; }
.nm-site-capabilities .nm-site-core__icon { display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; color:var(--nm-accent); }
.nm-site-capabilities .nm-site-core__icon .nm-icon { width:28px; height:28px; }
.nm-site-capabilities .nm-site-core__item h3 { margin:0; color:#0f172a; font-size:15px; font-weight:600; line-height:1.45; }
.nm-site-capabilities .nm-site-core__item p { margin:7px 0 0; color:var(--nm-body); font-size:15px; line-height:1.7; text-wrap:pretty; }
.nm-detail--sites .nm-site-pricing { padding-top:24px; padding-bottom:24px; border-top:1px solid var(--nm-hairline); border-bottom:1px solid var(--nm-hairline); }
.nm-site-pricing__row { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; margin-top:16px; }
.nm-site-pricing__badge { display:inline-flex; align-items:center; min-height:28px; color:var(--nm-accent); font-size:13px; font-weight:600; }
.nm-site-pricing__row > strong { flex:1 1 240px; color:var(--nm-ink); font-size:16px; font-weight:500; line-height:1.6; }
.nm-site-pricing__meta { display:flex; flex-wrap:wrap; gap:8px 16px; color:var(--nm-body); font-size:13px; }
.nm-site-pricing__row > a { color:var(--nm-accent); font-size:13px; font-weight:500; }
.nm-site-pricing__row > a:hover { color:var(--nm-accent-hover); }
.nm-detail--sites .nm-site-richtext,
.nm-site-about-summary { max-width:960px; margin:16px 0 0; color:var(--nm-body); font-size:16px; line-height:1.8; letter-spacing:.01em; overflow-wrap:anywhere; }
.nm-site-about-more { margin-top:8px; }
.nm-site-about-more summary { width:fit-content; padding:8px 0; color:var(--nm-accent); font-size:14px; cursor:pointer; }
.nm-site-about-collapse { display:none; }
.nm-site-about-more[open] .nm-site-about-expand { display:none; }
.nm-site-about-more[open] .nm-site-about-collapse { display:inline; }
.nm-site-profile:has(.nm-site-about-more[open]) .nm-site-about-summary { display:none; }
/* Long introductions keep a readable column with quiet chapter navigation. */
.nm-site-about-layout,
.nm-site-about-main { min-width:0; }
.nm-site-about-aside { min-width:0; }
.nm-site-about-aside[hidden] { display:none; }
.nm-site-about-toc { color:var(--nm-body); font-size:13px; line-height:1.6; }
.nm-site-about-toc > summary { width:fit-content; padding:0 0 8px; list-style:none; color:var(--nm-body); font-size:13px; font-weight:600; cursor:pointer; }
.nm-site-about-toc nav { max-height:calc(100vh - 144px); max-height:calc(100dvh - 144px); overflow-y:auto; overscroll-behavior:contain; padding-right:8px; }
.nm-site-about-toc ol { margin:0; padding:0; border-left:1px solid var(--nm-hairline); list-style:none; }
.nm-site-about-toc li { margin:0; padding:0; }
.nm-site-about-toc a { display:block; min-height:36px; margin-left:-1px; padding:8px 0 8px 16px; border-left:2px solid transparent; color:var(--nm-body); line-height:1.6; text-decoration:none; overflow-wrap:anywhere; }
.nm-site-about-toc .is-subsection > a { padding-left:28px; font-size:12px; }
.nm-site-about-toc a:hover { color:var(--nm-ink); }
.nm-site-about-toc a[aria-current="location"] { border-left-color:#2563eb; color:#2563eb; font-weight:600; }
.nm-site-about-toc :focus-visible { outline-color:#2563eb; }
.nm-detail--sites .nm-site-richtext :is(h2,h3) { scroll-margin-top:16px; }
@media(min-width:1101px) {
    .nm-site-about-layout.has-toc.is-open { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:0 48px; align-items:start; }
    .nm-site-about-layout.has-toc.is-open > .nm-site-profile-head { grid-column:1; grid-row:1; }
    .nm-site-about-layout.has-toc.is-open > .nm-site-about-main { grid-column:1; grid-row:2; }
    .nm-site-about-layout.has-toc.is-open > .nm-site-about-aside { grid-column:2; grid-row:1 / span 2; position:sticky; top:88px; align-self:start; }
}
@media(max-width:1100px) {
    .nm-site-about-layout.has-toc.is-open > .nm-site-about-aside { max-width:960px; margin-top:16px; }
    .nm-site-about-toc > summary { min-height:44px; padding:10px 0; list-style:disclosure-closed; font-size:14px; }
    .nm-site-about-toc[open] > summary { list-style:disclosure-open; }
    .nm-site-about-toc nav { max-height:min(50vh,360px); max-height:min(50dvh,360px); margin-top:4px; }
    .nm-site-about-toc a { min-height:44px; padding-top:11px; padding-bottom:11px; }
    .nm-site-about-toc .is-subsection > a { font-size:13px; }
    .nm-site-about-more > summary { min-height:44px; }
}
@media(prefers-reduced-motion:reduce) {
    html:has(.nm-site-about-layout) { scroll-behavior:auto; }
}
.nm-detail--sites .nm-site-profile-grid { grid-template-columns:1fr; margin-top:24px; padding-top:24px; gap:32px; }
.nm-detail--sites .nm-site-subsection h3 { padding-left:0; font-size:18px; }
.nm-detail--sites .nm-site-term-list li { color:var(--nm-body); font-size:15px; }
@media(max-width:900px) {
    .nm-detail--sites .navsmap-detail-hero { padding:24px; margin-bottom:32px; }
    .nm-detail--sites .navsmap-detail-hero > .site-content { gap:24px; }
    .nm-detail--sites .sites-preview { order:0; }
    .nm-detail--sites .nm-site-pricing,
    .nm-detail--sites .nm-site-profile { margin-bottom:32px; }
    .nm-site-capabilities { gap:32px; margin-bottom:32px; }
    .nm-site-capabilities .nm-site-core__grid { grid-template-columns:1fr; gap:22px; margin-top:20px; }
    .nm-site-pricing__row { align-items:flex-start; }
    .nm-site-pricing__row > strong { flex-basis:calc(100% - 70px); }
    .nm-site-pricing__meta { flex-basis:100%; }
}
@media(max-width:560px) {
    .nm-detail--sites .navsmap-detail-hero { padding:20px; }
    .nm-detail--sites .site-body p.nm-site-value { font-size:20px; }
    .nm-detail--sites .nm-site-cost { flex-basis:100%; padding-left:0; }
    .nm-detail--sites .site-go .btn { min-height:44px; }
}

.nm-article-body {
    color: var(--nm-body);
    font-size: 16px;
    line-height: 1.9;
}

.nm-article-cover,
.nm-article-body img {
    border-radius: var(--nm-radius-media);
}

/* Shared custom pages built with the NAVSMAP shell */
.navsmap-app {
    --navsmap-green: var(--nm-accent);
    --navsmap-green-strong: var(--nm-accent-hover);
    --navsmap-accent-rgb: 51, 51, 51;
    --navsmap-bg: var(--nm-canvas);
    --navsmap-surface: #fff;
    --navsmap-line: var(--nm-hairline);
    --navsmap-text: var(--nm-ink);
    --navsmap-muted: var(--nm-muted);
    --navsmap-shadow: none;
    --navsmap-shadow-soft: none;
    --navsmap-radius-shell: var(--nm-radius-card);
    --navsmap-radius-panel: var(--nm-radius-card);
    --navsmap-radius-card: var(--nm-radius-card);
    background: var(--nm-canvas);
}

.navsmap-header-main,
.navsmap-side-menu,
.navsmap-page-main :where(.navsmap-ranking-card, .navsmap-scenarios-card, .navsmap-scenarios-featured-card, .navsmap-about-panel, .navsmap-links-list-shell, .navsmap-links-content-card),
.navsmap-submit-step,
.navsmap-submit-side-card,
.navsmap-submit-notice,
.navsmap-submit-login {
    border-color: var(--nm-hairline);
    border-radius: var(--nm-radius-card);
    box-shadow: none;
}

.navsmap-side-menu__link,
.navsmap-side-menu__aux-link,
.navsmap-header-btn,
.navsmap-allcats__item,
.navsmap-allcats__more {
    border-radius: var(--nm-radius-control);
}

.navsmap-side-menu .navsmap-side-menu__entry.is-current > .navsmap-side-menu__link,
.navsmap-side-menu .navsmap-side-menu__entry.current-menu-item > .navsmap-side-menu__link,
.navsmap-side-menu .navsmap-side-menu__entry.current-menu-ancestor > .navsmap-side-menu__link,
.navsmap-side-menu .navsmap-side-menu__entry.current_page_item > .navsmap-side-menu__link,
.navsmap-side-menu .navsmap-side-menu__entry.current_page_ancestor > .navsmap-side-menu__link,
.navsmap-app .navsmap-allcats__item.is-current {
    color: var(--nm-accent);
    border-color: rgba(51, 51, 51, 0.18);
    background: var(--nm-accent-soft);
}

/* Login */
body.login {
    color: var(--nm-ink);
    background: var(--nm-canvas);
    font-family: var(--nm-font);
}

body.login #login {
    border: 1px solid var(--nm-hairline);
    border-radius: var(--nm-radius-card);
    background: #fff;
    box-shadow: var(--nm-shadow-featured);
}

body.login h1.wp-login-logo a::before,
body.login h1 a::before,
body.login .button-primary {
    background-color: var(--nm-accent);
}

body.login .button-primary:hover,
body.login .button-primary:focus {
    background-color: var(--nm-accent-hover);
}

body.login input[type="text"],
body.login input[type="password"],
body.login input[type="email"] {
    border-color: var(--nm-hairline);
    border-radius: var(--nm-radius-control);
    background: var(--nm-surface-soft);
    box-shadow: none;
}

body.login input:focus {
    border-color: var(--nm-accent);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(51, 51, 51, 0.1);
}

@media (max-width: 900px) {
    .nm-blog-hero-inner {
        gap: 32px;
    }

    .nm-tax-hero {
        padding-top: 32px;
        padding-bottom: 28px;
    }
}

/* Quiet content tags shared by homepage, archives and recommendations. */
.nm-site .nm-resource-card__tags>span {
    border-radius: 4px;
    background: #f3f4f6;
    color: #52525b;
    padding: 4px 8px;
}
.nm-site .nm-resource-card__tags>span::before { content: '# '; }

/* Blue accents highlight homepage actions and selected categories. */
.nm-site .nm-hero { --nm-accent:#3478f6; --nm-blue:#3478f6; background:#3478f6; }
.nm-site .nm-hero h1 { color:#fff; }
.nm-site .nm-hero-copy>p { color:#e3edff; }
.nm-site .nm-hero .nm-hero-search button:hover { background:#2464dc; }
.nm-site .nm-hero .nm-hot { color:#e0ebff; }
.nm-site .nm-hero .nm-hot>a { color:#fff; background:#ffffff20; border-radius:20px; }
.nm-site .nm-hero .nm-hot>a:hover { background:#ffffff40; }
.nm-site .nm-hero .nm-brand-orbit { border-color:#ffffff30; }
.nm-site .nm-hero .nm-brand-core { color:#fff; background:#ffffff16; border-color:#ffffff40; box-shadow:0 8px 32px #3578f640; }
.nm-site .nm-topics .nm-carousel-dots button[aria-current] { background:#3578f6; }
.nm-site #categories .nm-category-icon { background:transparent; border-radius:0; box-shadow:none; }
.nm-site #categories .nm-category-icon img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .3s ease; }
.nm-site #categories .nm-category:hover .nm-category-icon img,
.nm-site #categories .nm-category:focus-visible .nm-category-icon img { transform:scale(1.05) rotate(2deg); }
.nm-site #categories .nm-category:hover strong { color:#2563eb; }
.nm-site #tools .nm-filter-list button.is-active,
.nm-site #tools .nm-filter-list button.is-active:hover { background:transparent; color:#0f172a; }
.nm-site .nm-news-item .nm-news-item__actions a { color:#3578f6; }
.nm-site .nm-news-item .nm-news-item__actions a:hover { color:#2563dd; }
.nm-site [data-nm-catalog] [data-nm-more] { color:#2865c2; border-color:#d0def3; border-radius:999px; }
.nm-site [data-nm-catalog] [data-nm-more]:hover { color:#fff; background:#3578f6; border-color:#3578f6; }
.nm-site [data-nm-catalog] [data-nm-more]:active { color:#fff; background:#2563dd; border-color:#2563dd; }
.nm-site [data-nm-catalog] [data-nm-more]:focus-visible { outline-color:#3578f6; }
.nm-site.nm-search-page .nm-hero-search,
.nm-site.nm-search-page .nm-hero-search:focus-within {
    gap: 12px;
    padding: 6px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,.02);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.nm-site.nm-search-page .nm-hero-search>.nm-icon {
    width: 20px;
    height: 20px;
    margin-left: 10px;
    flex-shrink: 0;
    color: #9ca3af;
}
.nm-site.nm-search-page .nm-hero-search input { padding: 10px 0; line-height: 24px; }
.nm-site.nm-search-page .nm-hero-search button {
    background: #3578f6;
    min-height: 44px;
    padding: 0 24px;
    border-radius: 8px;
    transition: background-color .2s ease;
}
.nm-site.nm-search-page .nm-hero-search button:hover { background: #2563dd; }
.nm-site.nm-search-page#top .nm-section-head p { margin-top: 10px; }
.nm-site.nm-search-page .nm-search-results { padding-top: 56px; }
.nm-site:is(.nm-search-page,.nm-tax-page) .nm-resource-card--compact { min-height:196px; }
.nm-site:is(.nm-search-page,.nm-tax-page) .nm-resource-card--compact .nm-resource-card__link { padding:20px; }
.nm-site:is(.nm-search-page,.nm-tax-page) .nm-resource-card--compact .nm-resource-card__brand>span { display:none; }
.nm-site:is(.nm-search-page,.nm-tax-page) .nm-resource-card--compact .nm-resource-card__description { -webkit-line-clamp:2; }
.nm-site:is(.nm-search-page,.nm-tax-page) .nm-resource-card--compact .nm-resource-card__tags { padding-top:14px; }
.nm-site:is(.nm-search-page,.nm-tax-page) .nm-tool-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 0; }
.nm-site.nm-tax-page .nm-tax-eyebrow { color:#9ca3af; font-size:9px; }
.nm-site .nm-tax-card--hot { position:relative; overflow:visible; }
.nm-site .nm-badge-hot { position:absolute; top:-12px; right:4px; display:inline-flex; align-items:center; justify-content:center; height:30px; padding:0 10px; border-radius:8px 8px 0 0; background:#ff466d; color:#fff; font-size:14px; font-weight:600; line-height:1; white-space:nowrap; pointer-events:none; }
@media (max-width: 900px) {
    .nm-site:is(.nm-search-page,.nm-tax-page) .nm-tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .nm-site:is(.nm-search-page,.nm-tax-page) .nm-tool-grid { grid-template-columns: 1fr; }
}

/* Shared resource interactions, including homepage and detail recommendations. */
.nm-site .nm-tool-card,
.nm-site .nm-tax-priority-card>a,
.nm-detail .posts-row>.posts-item {
    transition: transform .3s ease, box-shadow .3s ease;
}
.nm-site .nm-tool-card.nm-resource-card:hover,
.nm-site #popular .nm-tool-card:hover,
.nm-site #tools .nm-tool-card:hover,
.nm-site #latest .nm-tool-card:hover,
.nm-site .nm-tax-priority-card>a:hover,
.nm-detail .posts-row>.posts-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,.08);
}
.nm-site .nm-secondary-button,
.nm-site [data-nm-catalog] [data-nm-more] {
    transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.nm-site .nm-secondary-button:hover {
    background: var(--nm-blue);
    border-color: var(--nm-blue);
    color: #fff;
}
.nm-site #popular .nm-minimal-card-grid { margin-left:-16px; margin-right:-16px; }
.nm-site #popular .nm-resource-card--minimal { border-radius:12px; background:transparent; transition:all .3s ease; }
.nm-site #popular .nm-resource-card__link { padding:12px 16px; }
.nm-site #popular .nm-resource-card--minimal:hover,
.nm-site #popular .nm-resource-card--minimal:focus-within { background:#fff; box-shadow:0 4px 12px rgba(0,0,0,.04); transform:translateY(-2px); }
.nm-site #popular .nm-resource-card__link:focus-visible { border-radius:inherit; outline-offset:-2px; }

/* Self-service placement: scoped to the native ad form, including AJAX replacements. */
.modal:has(.auto-ad-pay-form) .modal-dialog { width:calc(100% - 32px); max-width:440px; margin:16px auto; }
.modal:has(.auto-ad-pay-form) .modal-content { max-height:calc(100dvh - 32px); overflow-y:auto!important; scrollbar-width:thin; scrollbar-color:#CBD5E1 transparent; background:#fff; border:1px solid #E2E8F0; border-radius:16px; box-shadow:0 20px 60px rgba(15,23,42,.16); color:#0F172A; }
.modal:has(.auto-ad-pay-form) .modal-header-simple { position:sticky; top:0; z-index:1; padding:20px 24px 12px!important; border:0; background:#fff; color:#0F172A; align-items:center; }
.modal:has(.auto-ad-pay-form) .modal-header-simple>span,
.modal:has(.auto-ad-pay-form) .modal-header-simple::before,
.modal:has(.auto-ad-pay-form) .modal-header-simple::after,
.modal:has(.auto-ad-pay-form) .modal-header-simple .icon-ad-copy { display:none; }
.modal:has(.auto-ad-pay-form) .modal-header-simple .text-sm { color:#0F172A; font-size:20px!important; line-height:1.4; font-weight:700; }
.modal:has(.auto-ad-pay-form) .modal-header-simple .close { display:grid; place-items:center; width:36px; height:36px; padding:0; margin:0 0 0 auto; border:0; border-radius:8px; background:transparent; color:#9CA3AF; opacity:1; text-shadow:none; transition:color .2s ease,background-color .2s ease; }
.modal:has(.auto-ad-pay-form) .modal-header-simple .close:hover { color:#64748B; background:#F8FAFC; }
.modal:has(.auto-ad-pay-form) .modal-header-simple .close:focus-visible { outline:2px solid #2563EB; outline-offset:2px; }
.modal:has(.auto-ad-pay-form) .io-modal-content>.p-3 { padding:12px 24px 24px!important; }
.auto-ad-pay-form>.text-muted,
.auto-ad-pay-form [for-group="index"]>.text-muted { color:#64748B!important; font-size:12px!important; font-weight:600; }
.auto-ad-pay-form>.btn-group { display:flex; gap:4px; padding:4px; margin-bottom:20px!important; border:0; border-radius:99px; background:#F1F5F9; }
.auto-ad-pay-form>.btn-group>.btn { flex:1; min-height:36px; padding:8px 12px; margin:0; border:0!important; border-radius:99px!important; background:transparent; color:#64748B; font-size:13px; line-height:20px; font-weight:500; opacity:1; transition:background-color .2s ease,color .2s ease,box-shadow .2s ease; }
.auto-ad-pay-form>.btn-group>.btn:hover { color:#0F172A; background:rgba(255,255,255,.5); }
.auto-ad-pay-form>.btn-group>.btn.active { background:#fff; color:#2563EB; font-weight:600; box-shadow:0 1px 4px rgba(15,23,42,.08); }
.auto-ad-pay-form .ad-product-lists { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-bottom:16px!important; }
.auto-ad-pay-form .ad-product-lists>.io-radio { min-width:0; min-height:108px; padding:28px 8px 12px; margin:0; border:1px solid #E2E8F0; border-radius:10px; background:#fff; color:#475569; font-variant-numeric:tabular-nums; transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease; }
.auto-ad-pay-form .ad-product-lists>.io-radio:hover { border-color:#93C5FD; background:#F8FAFC; }
.auto-ad-pay-form .ad-product-lists>.io-radio.active { padding:27px 7px 11px; border:2px solid #2563EB; background:#fff; color:#0F172A; box-shadow:0 2px 8px rgba(37,99,235,.08); }
.auto-ad-pay-form .ad-product-lists .text-md { font-size:16px!important; line-height:24px; font-weight:600; white-space:nowrap; }
.auto-ad-pay-form .ad-product-lists .text-sm { font-size:13px!important; line-height:20px; }
.auto-ad-pay-form .ad-product-lists .text-xs { font-size:10px!important; }
.auto-ad-pay-form .ad-product-lists .badge { top:7px; right:6px; height:18px; padding:2px 5px; border:0; border-radius:4px; background:#FEF3C7; color:#D97706; font-size:10px; line-height:14px; font-weight:600; transform:none; }
.auto-ad-pay-form .original-price { color:#94A3B8; opacity:1; }
.auto-ad-pay-form .original-price::before { background:#94A3B8; transform:none; }
.auto-ad-pay-form .form-control { height:44px; padding:10px 12px; border:1px solid transparent; border-radius:8px; background:#F8FAFC; color:#0F172A; font-size:14px; line-height:22px; box-shadow:none; transition:border-color .2s ease,box-shadow .2s ease; }
.auto-ad-pay-form .form-control::placeholder { color:#94A3B8; }
.auto-ad-pay-form .form-control:focus { border-color:#2563EB; outline:0; box-shadow:0 0 0 3px rgba(37,99,235,.1); }
.auto-ad-pay-form input[name="custom_time"] { padding-right:80px; }
.auto-ad-pay-form .ajax-custom-product-val { right:12px; padding:0!important; border:0; background:transparent; color:#2563EB; font-size:13px; font-variant-numeric:tabular-nums; }
.auto-ad-pay-form .form-text { margin-top:8px; margin-bottom:20px!important; color:#94A3B8!important; font-size:11px; }
.auto-ad-pay-form .pay-method-group>.d-flex { gap:8px; }
.auto-ad-pay-form .pay-method-group .io-radio { min-height:44px; margin:0; border-color:#E2E8F0; border-radius:8px; color:#64748B; }
.auto-ad-pay-form .pay-method-group .io-radio.active { border-color:#2563EB; background:#EFF6FF; color:#2563EB; }
.auto-ad-pay-form .pay-method-group .io-radio img { height:24px; }
.auto-ad-pay-form .initiate-pay { min-height:44px; padding:11px 16px; border:0; border-radius:8px; background:#2563EB; color:#fff; font-size:14px; font-weight:600; box-shadow:none; transition:background-color .2s ease; }
.auto-ad-pay-form .initiate-pay:hover { background:#1D4ED8; color:#fff; }
.auto-ad-pay-form .initiate-pay:focus-visible { outline:2px solid #2563EB; outline-offset:3px; }
.auto-ad-pay-form .initiate-pay:disabled,
.auto-ad-pay-form .initiate-pay.disabled,
.auto-ad-pay-form .initiate-pay[aria-disabled="true"],
.auto-ad-pay-form>a.btn-outline.vc-red,
.auto-ad-pay-form>.tips-box { min-height:44px; padding:11px 16px; border:0; border-radius:8px; background:#E2E8F0; color:#9CA3AF; box-shadow:none; }
.auto-ad-pay-form .initiate-pay:disabled,
.auto-ad-pay-form .initiate-pay.disabled,
.auto-ad-pay-form .initiate-pay[aria-disabled="true"] { cursor:not-allowed; opacity:1; }
.auto-ad-pay-form>a.btn-outline.vc-red:hover { background:#CBD5E1; color:#64748B; }
.modal:has(.auto-ad-pay-form) .io-modal-content>.bg-muted { padding:12px 24px!important; background:#F8FAFC!important; color:#94A3B8!important; font-size:10px; line-height:1.6; }
@media(max-width:480px) {
    .modal:has(.auto-ad-pay-form) .modal-header-simple { padding:16px 20px 8px!important; }
    .modal:has(.auto-ad-pay-form) .io-modal-content>.p-3 { padding:12px 20px 20px!important; }
    .auto-ad-pay-form .form-control { font-size:16px; }
    .auto-ad-pay-form .ad-product-lists>.io-radio { padding-left:4px; padding-right:4px; }
    .auto-ad-pay-form .ad-product-lists>.io-radio.active { padding-left:3px; padding-right:3px; }
    .modal:has(.auto-ad-pay-form) .io-modal-content>.bg-muted { padding:12px 20px!important; }
}
@media(max-width:360px) {
    .auto-ad-pay-form .ad-product-lists { gap:6px; }
    .auto-ad-pay-form .ad-product-lists .text-md { font-size:14px!important; }
    .auto-ad-pay-form .ad-product-lists .text-sm { font-size:12px!important; }
}
@media(prefers-reduced-motion:reduce) {
    .modal:has(.auto-ad-pay-form) * { transition:none!important; }
}

@media (prefers-reduced-motion: reduce) {
    .nm-site #categories .nm-category:hover .nm-category-icon img,
    .nm-site #categories .nm-category:focus-visible .nm-category-icon img,
    .nm-site .nm-tool-card.nm-resource-card:hover,
    .nm-site #popular .nm-tool-card:hover,
    .nm-site #popular .nm-resource-card--minimal:focus-within,
    .nm-site #tools .nm-tool-card:hover,
    .nm-site #latest .nm-tool-card:hover,
    .nm-site .nm-tax-priority-card>a:hover,
    .nm-detail .posts-row>.posts-item:hover {
        transform: none;
    }
    html {
        scroll-behavior: auto;
    }

    .nm-site *,
    .navsmap-app * {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
