/* Homepage compaction + tinywow-style hubs (unlayered: overrides components layer). */
.nn-home-section{padding-block:var(--nn-space-5) !important}
.nn-home-section__head{margin-bottom:var(--nn-space-4)}
.nn-home-section__title{margin-bottom:0 !important;font-size:1.375rem}
.nn-hero-v3{padding-block:var(--nn-space-7) var(--nn-space-5) !important;gap:var(--nn-space-6) !important}
@media(min-width:1024px){.nn-hero-v3__title{font-size:3.25rem !important}}
.nn-hero-v3__copy{gap:var(--nn-space-4) !important}
.nn-trust-strip{padding:var(--nn-space-4) !important;gap:var(--nn-space-4) !important}
.nn-metrics-strip{padding:var(--nn-space-4) !important;gap:var(--nn-space-4) !important}
.nn-metrics-strip__value{font-size:1.5rem !important}
.nn-newsletter{padding:var(--nn-space-5) !important}
.nn-guide-card--placeholder{padding:var(--nn-space-4) !important}
.nn-guide-card__icon{width:2.25rem !important;height:2.25rem !important}

.nn-tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.25rem;margin-bottom:var(--nn-space-4);scrollbar-width:thin}
.nn-tab{flex:none;padding:.4rem .9rem;border:1px solid var(--nn-border);border-radius:999px;background:var(--nn-bg);color:var(--nn-text-muted);font-family:inherit;font-size:.8125rem;font-weight:600;line-height:1;cursor:pointer;transition:all .15s}
.nn-tab:hover{border-color:var(--nn-primary);color:var(--nn-primary)}
.nn-tab.is-active{background:var(--nn-primary);border-color:var(--nn-primary);color:#fff}

.nn-tool-grid,.nn-cat-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}
.nn-tcard[hidden]{display:none}
.nn-tcard,.nn-ccard{display:flex;align-items:center;gap:.75rem;padding:.75rem .9rem;border:1px solid var(--nn-border);border-radius:14px;background:var(--nn-bg-raised);text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s,border-color .18s}
.nn-tcard:hover,.nn-ccard:hover{transform:translateY(-2px);border-color:hsl(var(--h) 80% 60%);box-shadow:var(--nn-shadow-hover)}
.nn-tcard__icon,.nn-ccard__icon{flex:none;display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:12px;background:hsl(var(--h) 90% 94%);color:hsl(var(--h) 70% 38%);font-weight:700;font-size:1.05rem}
:root[data-theme="dark"] .nn-tcard__icon,:root[data-theme="dark"] .nn-ccard__icon{background:hsl(var(--h) 45% 20%);color:hsl(var(--h) 90% 75%)}
.nn-tcard__body,.nn-ccard__body{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}
.nn-tcard__title,.nn-ccard__label{font-size:.9375rem;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nn-tcard__cat{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--h) 75% 22%)}
:root[data-theme="dark"] .nn-tcard__cat{color:hsl(var(--h) 80% 72%)}
.nn-tcard__desc,.nn-ccard__desc{font-size:.8125rem;color:var(--nn-text-muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.nn-ccard__count{flex:none;padding:.15rem .55rem;border-radius:999px;background:var(--nn-primary-subtle);color:var(--nn-primary-strong,#1d4ed8);font-size:.75rem;font-weight:700}
.nn-cat-grid{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}
@media(max-width:600px){.nn-tool-grid,.nn-cat-grid{grid-template-columns:1fr}}
.nn-tool-more{display:flex;justify-content:center;margin-top:var(--nn-space-4)}
.nn-tool-more[hidden]{display:none}
.nn-tool-grid,.nn-cat-grid{grid-template-columns:repeat(auto-fill,minmax(16.5rem,1fr))}
.nn-tcard__title,.nn-ccard__label{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* compact hero preview */
.nn-hero-preview{justify-self:end;width:100%;max-width:24rem;padding:1.25rem !important}
.nn-hero-preview__stats{display:grid !important;grid-template-columns:repeat(2,1fr) !important;gap:.75rem 1.5rem !important}
/* Category hub page */
.nn-cathero{display:flex;align-items:center;gap:1.25rem;padding:1.5rem 1.75rem;border-radius:20px;border:1px solid hsl(var(--h) 60% 88%);background:linear-gradient(120deg,hsl(var(--h) 95% 96%),hsl(var(--h) 80% 98%) 60%,var(--nn-bg-raised))}
:root[data-theme="dark"] .nn-cathero{border-color:hsl(var(--h) 30% 24%);background:linear-gradient(120deg,hsl(var(--h) 40% 15%),var(--nn-bg-raised))}
.nn-cathero__icon{flex:none;display:grid;place-items:center;width:4rem;height:4rem;border-radius:18px;background:hsl(var(--h) 75% 52%);color:#fff;font-size:1.75rem;font-weight:700;box-shadow:0 8px 20px hsl(var(--h) 75% 52% / .35)}
.nn-cathero__text{flex:1;min-width:0}
.nn-cathero__title{margin:0;font-size:2rem;line-height:1.15}
.nn-cathero__sub{margin:.35rem 0 0;color:var(--nn-text-muted);max-width:60ch}
.nn-cathero__count{flex:none;padding:.4rem .9rem;border-radius:999px;background:var(--nn-bg);border:1px solid var(--nn-border);font-weight:700;font-size:.875rem}
.nn-cat-filter{margin-bottom:var(--nn-space-4)}
.nn-cat-filter__input{width:100%;max-width:26rem;height:2.75rem;padding:0 1rem;border:1px solid var(--nn-border);border-radius:999px;background:var(--nn-bg);color:var(--nn-text);font:inherit}
.nn-cat-filter__input:focus{outline:none;border-color:var(--nn-primary);box-shadow:0 0 0 3px var(--nn-primary-subtle)}
.nn-cat-empty{color:var(--nn-text-muted);text-align:center;padding:2rem 0}
.nn-tabs--wrap{flex-wrap:wrap;overflow:visible}
a.nn-tab{text-decoration:none;display:inline-block}
@media(max-width:600px){.nn-cathero{flex-wrap:wrap;padding:1.1rem}.nn-cathero__title{font-size:1.5rem}}

/* ===== Tool page — tinywow-style: centred hero, elevated tool card, single column ===== */
.single-tool main,.single-tool .nn-shell-main{background:none}
.single-tool .nn-tool-header{justify-content:center;text-align:center;padding:0}
.single-tool .nn-tool-header__identity{flex-direction:column;align-items:center;gap:.75rem}
.single-tool .nn-tool-header__title{font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.15;letter-spacing:-.02em}
.single-tool .nn-tool-header__subtitle{max-width:46rem;margin:.4rem auto .9rem;font-size:1.0625rem}
.single-tool .nn-tool-header__badges{justify-content:center;align-items:center}
.single-tool .nn-tool-header__icon{width:3.25rem;height:3.25rem;border-radius:16px;background:var(--nn-primary);color:#fff;font-size:1.4rem;box-shadow:0 8px 20px rgb(37 99 255/.3)}
.single-tool .nn-home-section{background:radial-gradient(60rem 18rem at 50% 0,var(--nn-primary-subtle),transparent 70%);padding-block:var(--nn-space-5) var(--nn-space-2) !important}
.single-tool .nn-with-rail{display:block !important;max-width:60rem;margin-inline:auto}
.single-tool .nn-shell-content{max-width:none;gap:var(--nn-space-5)}
/* answer box duplicates the subtitle: keep for SEO, tone down */
.single-tool .nn-shell-content>p:first-of-type{font-size:1rem;background:transparent;border:0;padding:0;text-align:center;color:var(--nn-text-muted);max-width:44rem;margin-inline:auto}
/* the tool itself = elevated card */
.single-tool .nn-tool{background:var(--nn-bg-raised);border:1px solid var(--nn-border);border-radius:20px;padding:clamp(1rem,3vw,2rem);box-shadow:0 10px 40px rgb(15 23 42/.07)}
.single-tool .nn-tool input[type=file]{width:100%;padding:2.25rem 1rem;border:2px dashed var(--nn-border-strong);border-radius:14px;background:var(--nn-bg);text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.single-tool .nn-tool input[type=file]:hover{border-color:var(--nn-primary);background:var(--nn-primary-subtle)}
.single-tool .nn-shell-content h2{font-size:1.5rem;letter-spacing:-.01em;margin-bottom:.25rem}
.single-tool .nn-shell-content details summary{font-weight:600}
/* sidebar becomes a row of cards below */
.single-tool .nn-shell-sidebar{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--nn-space-4);margin-top:var(--nn-space-6)}

/* ===== Guides ===== */
.nn-guide-hero{text-align:center;max-width:46rem;margin-inline:auto}
.nn-guide-hero__kicker{display:inline-block;padding:.2rem .7rem;border-radius:999px;background:var(--nn-primary-subtle);color:var(--nn-primary);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.nn-guide-hero__title{margin:.6rem 0 0;font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.15;letter-spacing:-.02em}
.nn-guide-body{max-width:46rem !important;margin-inline:auto}
.nn-guide-content{font-size:1.0625rem;line-height:1.7}
.nn-guide-content>p:first-of-type{font-size:1.15rem;padding:1rem 1.25rem;border-left:3px solid var(--nn-primary);background:var(--nn-bg-subtle);border-radius:8px}
.nn-guide-content h2{font-size:1.4rem;margin:1.75rem 0 .5rem;letter-spacing:-.01em}
.nn-guide-content ol,.nn-guide-content ul{padding-left:1.4rem}
.nn-guide-content li{margin-block:.35rem}
.nn-guide-content details{border-bottom:1px solid var(--nn-border);padding-block:.9rem}
.nn-guide-content details summary{font-weight:600;cursor:pointer}
.nn-guide-content details p{margin:.5rem 0 0;color:var(--nn-text-muted)}
.nn-guide-cta{display:flex;align-items:center;gap:1rem;margin-top:2rem;padding:1rem 1.25rem;border:1px solid hsl(var(--h) 60% 85%);border-radius:16px;background:hsl(var(--h) 90% 97%);text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s}
:root[data-theme="dark"] .nn-guide-cta{background:hsl(var(--h) 40% 14%);border-color:hsl(var(--h) 30% 26%)}
.nn-guide-cta:hover{transform:translateY(-2px);box-shadow:var(--nn-shadow-hover)}
.nn-guide-cta__text{flex:1;display:flex;flex-direction:column}
.nn-guide-cta__text span{color:var(--nn-text-muted);font-size:.875rem}
.nn-guide-cta__go{font-size:1.4rem;color:var(--nn-primary)}
.nn-guide-link{display:inline-block;margin-top:.5rem;font-weight:600;color:var(--nn-primary);text-decoration:none}
.nn-guide-link:hover{text-decoration:underline}

/* ===== Info / legal pages (page.php) ===== */
.nn-page-hero{text-align:center;background:radial-gradient(60rem 14rem at 50% 0,var(--nn-primary-subtle),transparent 70%);padding-block:var(--nn-space-7) var(--nn-space-3) !important}
.nn-page-hero__title{margin:0;font-size:clamp(1.9rem,4.5vw,2.75rem);line-height:1.15;letter-spacing:-.02em}
.nn-page-body{max-width:50rem !important;margin-inline:auto;padding-bottom:var(--nn-space-8)}
.nn-page-content{font-size:1rem;line-height:1.75;color:var(--nn-text)}
.nn-page-content>p:first-child strong{display:inline-block;padding:.2rem .7rem;border-radius:999px;background:var(--nn-primary-subtle);color:var(--nn-primary);font-size:.8125rem;font-weight:600}
.nn-page-content h2{font-size:1.375rem;line-height:1.3;margin:2rem 0 .5rem;color:var(--nn-text);letter-spacing:-.01em}
.nn-page-content p{margin:0 0 .9rem;color:var(--nn-text-secondary,var(--nn-text))}
.nn-page-content ul,.nn-page-content ol{padding-left:1.4rem;margin:0 0 1rem}
.nn-page-content li{margin-block:.35rem}
.nn-page-content a{color:var(--nn-primary);text-underline-offset:2px}

/* Mobile overflow guard: the filter tab strip scrolls inside itself and must not size its grid ancestors. */
.nn-page>*,.nn-shell-main,.nn-home-section{min-width:0}
.nn-tabs{max-width:100%}
.nn-metrics-strip__label{color:var(--nn-text-secondary,#4b5563) !important}

/* Category intro + FAQ */
.nn-cat-intro{max-width:56rem;color:var(--nn-text-muted);line-height:1.7}
.nn-cat-intro p{margin:0 0 .6rem}
.nn-cat-faq{max-width:56rem}
.nn-cat-faq details{border-bottom:1px solid var(--nn-border);padding-block:.85rem}
.nn-cat-faq summary{font-weight:600;cursor:pointer}
.nn-cat-faq p{margin:.5rem 0 0;color:var(--nn-text-muted)}

/* Related blocks, learn lists, tables in reference pages */
.nn-related-block{margin-top:2rem}
.nn-related-block h2{font-size:1.2rem;margin:0 0 .5rem}
.nn-related-block ul,.nn-learn-list{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}
.nn-related-block a,.nn-learn-list a{color:var(--nn-primary);text-decoration:none;font-weight:500}
.nn-related-block a:hover,.nn-learn-list a:hover{text-decoration:underline}
.nn-table-wrap{overflow-x:auto;margin:.75rem 0}
.nn-guide-content table{border-collapse:collapse;width:100%;font-size:.95rem}
.nn-guide-content th,.nn-guide-content td{border:1px solid var(--nn-border);padding:.55rem .75rem;text-align:left;vertical-align:top}
.nn-guide-content th{background:var(--nn-bg-subtle)}
.nn-source{font-size:.875rem;color:var(--nn-text-muted)}
/* Ads: labelled, spaced from controls, reserved height (only rendered when enabled) */
.nn-ad{margin:2rem 0;padding:.25rem 0;min-height:250px;text-align:center;clear:both}
.nn-ad__label{display:block;font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--nn-text-muted);margin-bottom:.25rem}
