/*
 * 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 {
    background: #fff;
    border-right: 0;
}

.nm-side-link {
    border-radius: var(--nm-radius-control);
    color: #6b7280 !important;
    font-weight: 400;
}

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

.nm-side-link.is-active {
    color: var(--nm-accent) !important;
    background: var(--nm-accent-soft);
}

.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-core,
.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-core,
.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-core__head h2,
.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-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-core__item { min-width:0; display:flex; align-items:flex-start; gap:14px; padding:0; }
.nm-site-core__icon { display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; color:var(--nm-accent); }
.nm-site-core__icon .nm-icon { width:28px; height:28px; }
.nm-site-core__item h3 { margin:0; color:var(--nm-ink); font-size:18px; font-weight:600; line-height:1.45; }
.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; }
.nm-detail--sites .nm-site-profile-grid { 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-core,
    .nm-detail--sites .nm-site-pricing,
    .nm-detail--sites .nm-site-profile { margin-bottom:32px; }
    .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-detail--sites .nm-site-profile-grid { grid-template-columns:1fr; }
}

.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 { color:#3578f6; background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(223,235,255,.8) 55%,rgba(196,217,252,.65));box-shadow:inset 0 0 0 1px rgba(53,120,246,.1),inset 0 1px 1px #fff,0 3px 8px rgba(53,120,246,.06); }
.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; }
@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;
}

@media (prefers-reduced-motion: reduce) {
    .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: 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;
    }
}
