/*
 * Nexus design layer: the Nexus views (article, embed or canvas, card archives, search, 404). Loaded only on those
 * views; every rule is scoped to .nx-main, so BuddyPress, bbPress and other templates are untouched.
 */
.nx-main{display:block;width:100%;max-width:none;margin:0;padding:0;background:var(--nx-bg-canvas);color:var(--nx-text-secondary);font-family:var(--nx-font-sans)}
.nx-main:focus{outline:0}
.nx-container{width:100%;max-width:calc(var(--nx-wide) + 2 * var(--nx-gutter));margin:0 auto;padding:0 var(--nx-gutter);box-sizing:border-box}
.nx-main .nx-eyebrow{display:flex;align-items:center;gap:10px;margin:0;font:500 11px/1.3 var(--nx-font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--nx-text-muted)}
.nx-main .nx-rule{display:inline-block;flex:none;width:28px;height:2px;background:var(--nxi-grad)}

/* Article view: the article (.nx-article) carries its own hero, h1 and chrome; the theme adds the crumbs and the bar. */
.nx-main--article{font-size:16.5px;line-height:1.65;padding-bottom:var(--nx-space-12)}
.nx-main--article .nx-entry{margin:0 auto;padding-top:0}
.nx-main--article .nx-entry>:where(p,ul,ol,h2,h3,blockquote,figure):not(.nx-article){max-width:var(--nx-content)}
.nx-crumbs{padding:14px 0 0}
.nx-crumbs ol{display:flex;flex-wrap:wrap;gap:4px 0;margin:0;padding:0;list-style:none;font:500 11px/1.5 var(--nx-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--nx-text-muted)}
.nx-crumbs li{margin:0;display:inline-flex;align-items:center;min-width:0}
.nx-crumbs li+li::before{content:"\b7 ";margin:0 10px;color:var(--nx-text-muted)}
.nx-crumbs a{color:var(--nx-text-muted);text-decoration:none}
.nx-crumbs a:hover{color:var(--nx-text-primary)}
.nx-crumbs [aria-current] span{color:var(--nx-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:48ch}
.nx-progress{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:50;height:2px;margin:0;background:transparent;pointer-events:none}
.nx-progress span{display:block;height:2px;background:var(--nx-accent);transform:scaleX(0);transform-origin:0 50%}
/* Belt and braces: if a plugin or the parent prints a post title, meta, author box, related posts or comments into this view, they stay hidden. */
.nx-view-article :where(.site-sub-header,.entry-header-post,.single-post-main-wrapper>.entry-header,.post-navigation,.comments-area,.author-box,.buddyx-author-box,.entry-meta,.entry-footer,.related-posts){display:none!important}

/* Embed or canvas view: no theme chrome around the content; embeds and patterns size themselves. */
.nx-main--embed{padding:0}
.nx-main--embed .nx-embed{margin:0;padding:0}
.nx-main--embed .nx-embed>.nxe-host{display:block}
.nx-view-embed :where(.site-sub-header,.comments-area,.post-navigation){display:none!important}

/* Card archives, search and 404. */
.nx-head{padding:var(--nx-space-16) 0 var(--nx-space-10);border-bottom:1px solid var(--nx-border-hairline)}
.nx-head__title{margin:22px 0 0;max-width:20ch;color:var(--nx-text-primary);font-family:var(--nx-font-sans);font-size:var(--nx-fs-2xl);line-height:1.08;font-weight:500;letter-spacing:-.028em;text-wrap:balance}
.nx-head__lede{margin:18px 0 0;max-width:60ch;font-size:var(--nx-fs-md);line-height:1.55;color:var(--nx-text-secondary)}
.nx-head__meta{margin:14px 0 0;font:400 12px/1.4 var(--nx-font-mono);color:var(--nx-text-muted)}
.nx-head__search{margin:24px 0 0;max-width:480px}
.nx-head__actions{margin:28px 0 0}
.nx-main :where(.search-form){display:flex;gap:8px}
.nx-main :where(.search-form label){flex:1;margin:0}
.nx-main :where(.search-field,input[type="search"]){width:100%;height:36px;padding:0 12px;border:1px solid var(--nx-border-hairline-strong);border-radius:var(--nx-radius);background:var(--nx-bg-surface);color:var(--nx-text-primary);font:400 14px/1 var(--nx-font-sans)}
.nx-main :where(.search-field,input[type="search"]):focus{border-color:var(--nx-focus);box-shadow:0 0 0 3px var(--nx-accent-soft);outline:0}
/* One primary per view (kit 5.1): the search button is secondary (hairline), the page action is primary. */
.nx-main :where(.search-submit,.nx-btn){display:inline-flex;align-items:center;height:36px;padding:0 16px;border:1px solid var(--nx-border-hairline-strong);border-radius:var(--nx-radius);background:transparent;color:var(--nx-text-primary);font:500 14px/1 var(--nx-font-sans);text-decoration:none;cursor:pointer}
.nx-main :where(.search-submit,.nx-btn):hover{border-color:var(--nx-text-primary)}
.nx-main .nx-btn[data-variant="primary"]{border-color:var(--nx-primary-bg);background:var(--nx-primary-bg);color:var(--nx-primary-ink)}
.nx-main .nx-btn[data-variant="primary"]:hover{background:var(--nx-primary-hover);border-color:var(--nx-primary-hover)}
.nx-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:var(--nx-space-10) 0 0;border-top:1px solid var(--nx-border-hairline);border-inline-start:1px solid var(--nx-border-hairline)}
.nx-card{position:relative;display:flex;flex-direction:column;gap:12px;margin:0;padding:24px;background:var(--nx-bg-canvas);border-inline-end:1px solid var(--nx-border-hairline);border-bottom:1px solid var(--nx-border-hairline);transition:background-color var(--nx-motion-fast) var(--nx-ease)}
.nx-card:hover{background:var(--nx-bg-elevated)}
.nx-card__plate{margin:-24px -24px 8px;aspect-ratio:1200/630;overflow:hidden;border-bottom:1px solid var(--nx-border-hairline);background:var(--nx-bg-muted)}
.nx-card__plate img{display:block;width:100%;height:100%;object-fit:cover}
.nx-card__eyebrow{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;margin:0;font:500 11px/1.3 var(--nx-font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--nx-text-muted)}
.nx-card__eyebrow time{letter-spacing:.04em;font-weight:400}
.nx-card__title{margin:0;font-family:var(--nx-font-sans);font-size:21px;line-height:1.25;font-weight:500;letter-spacing:-.015em;text-wrap:balance}
.nx-card__link{color:var(--nx-text-primary);text-decoration:none}
.nx-card__link::after{content:"";position:absolute;inset:0}
.nx-card__link:focus-visible{outline:0}
.nx-card:has(.nx-card__link:focus-visible){outline:2px solid var(--nx-focus);outline-offset:-2px}
.nx-card__excerpt{margin:0;font-size:15px;line-height:1.55;color:var(--nx-text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nx-card__more{margin-top:auto;padding-top:8px;font:500 11px/1 var(--nx-font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--nx-text-muted)}
.nx-card .nx-arrow{display:inline-block;color:var(--nx-accent);transition:transform var(--nx-motion-fast) var(--nx-ease)}
.nx-card:hover .nx-arrow{transform:translateX(3px)}
.nx-card:hover .nx-card__link{color:var(--nx-accent)}
@media (min-width:720px){.nx-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.nx-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:720px) and (max-width:1099px){.nx-cards--n3>:nth-child(3){display:none}}
@media (min-width:1100px){.nx-cards--n2{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-cards--n1{grid-template-columns:minmax(0,1fr)}}
.nx-main--cards{padding-bottom:var(--nx-space-16)}
.nx-main .nx-pages{margin:var(--nx-space-10) 0 0}
.nx-main .nx-pages .nav-links{display:flex;flex-wrap:wrap;gap:8px}
.nx-main .nx-pages :where(a,span).page-numbers{display:inline-flex;align-items:center;min-width:36px;height:36px;padding:0 12px;border:1px solid var(--nx-border-hairline-strong);border-radius:var(--nx-radius);color:var(--nx-text-secondary);font:500 12px/1 var(--nx-font-mono);text-decoration:none}
.nx-main .nx-pages .page-numbers.current{background:var(--nx-primary-bg);border-color:var(--nx-primary-bg);color:var(--nx-primary-ink)}
.nx-main .nx-pages a.page-numbers:hover{color:var(--nx-text-primary);border-color:var(--nx-text-primary)}
.nx-empty{padding:var(--nx-space-12) 0;text-align:center}
.nx-empty .nx-eyebrow{justify-content:center}
.nx-empty .search-form{max-width:480px;margin:20px auto 0}
.nx-main--404{min-height:50vh;padding-bottom:var(--nx-space-16)}
.nx-main--404 .nx-head{border-bottom:0}
@media (prefers-reduced-motion:reduce){.nx-main *{transition:none!important}.nx-progress{display:none}}
@media print{.nx-progress,.nx-crumbs,.nx-head__search,.nx-pages{display:none!important}.nx-main{background:#fff!important;color:#000!important}.nx-cards{display:block;border:0;background:none}.nx-card{break-inside:avoid;border-bottom:1px solid #000;padding:12pt 0}.nx-card__link::after{content:none}}
/* Portfolio items (nexus-templates/portfolio.php, 3.8.7-nexus.21) */
.nx-portfolio__lead{margin:var(--nx-space-8) 0}.nx-portfolio__lead img{display:block;inline-size:100%;block-size:auto;border-radius:var(--nx-radius)}
.nx-portfolio__body{max-inline-size:var(--nx-content)}
.nx-portfolio__terms{display:flex;flex-wrap:wrap;gap:var(--nx-space-2);margin:var(--nx-space-8) 0 0;padding:0;list-style:none}
.nx-portfolio__terms a{display:inline-block;padding:var(--nx-space-1) var(--nx-space-3);border:1px solid var(--nx-border-hairline);border-radius:var(--nx-radius-chip);font:500 var(--nx-fs-xs)/1.4 var(--nx-font-mono);color:var(--nx-text-secondary);text-decoration:none}
.nx-portfolio__nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--nx-space-4);margin:var(--nx-space-10) 0;padding-block-start:var(--nx-space-5);border-block-start:1px solid var(--nx-border-hairline)}
.nx-portfolio__gallery{list-style:none;margin:var(--nx-space-8) 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:var(--nx-space-4)}
.nx-portfolio__gallery img{display:block;inline-size:100%;block-size:auto;border-radius:var(--nx-radius)}
.nx-portfolio__details{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));gap:var(--nx-space-4);margin:var(--nx-space-8) 0;padding-block:var(--nx-space-5);border-block:1px solid var(--nx-border-hairline)}
.nx-portfolio__details dt{font:500 var(--nx-fs-xs)/1.4 var(--nx-font-mono);color:var(--nx-text-secondary);text-transform:uppercase;letter-spacing:.06em}
.nx-portfolio__details dd{margin:var(--nx-space-1) 0 0;color:var(--nx-text-primary)}
.nx-portfolio__video,.nx-portfolio__link{margin:var(--nx-space-6) 0}
