/* Noventra core components CSS (loaded after style.css). */

/* Custom logo */
.custom-logo { max-height: 48px; width: auto; }

/* Page headers */
.nv-page-header { margin-bottom: 36px; }
.nv-page-header .page-title { font-size: clamp(1.7rem, 4vw, 2.4rem); }
.nv-archive-desc { color: var(--nv-color-muted,#64748b); max-width: 700px; }

/* Read more */
.nv-readmore { display:inline-block; margin-top:10px; font-weight:600; }

/* Single */
.nv-single-header { margin-bottom: 24px; }
.nv-single-header .entry-title { font-size: clamp(1.9rem, 5vw, 3rem); }
.nv-single-thumb { margin: 0 0 32px; border-radius: var(--nv-radius,8px); overflow:hidden; }
.nv-single-thumb img { width:100%; display:block; }
.entry-content { font-size: 1.05rem; }
.entry-content > * { margin-bottom: 1.3em; }
.entry-content h2 { margin-top: 1.6em; }
.entry-content blockquote { border-left: 4px solid var(--nv-color-accent,#2563eb); margin:1.6em 0; padding:.4em 1.2em; color:var(--nv-color-muted,#475569); background:rgba(0,0,0,.02); }
.entry-content img { border-radius: var(--nv-radius,8px); }
.entry-content pre { background:#0f172a; color:#e2e8f0; padding:16px; border-radius:var(--nv-radius,8px); overflow:auto; }
.entry-content code { background:rgba(0,0,0,.06); padding:2px 6px; border-radius:4px; }

.nv-tags a { display:inline-block; padding:4px 12px; border:1px solid var(--nv-color-border,#e2e8f0); border-radius:999px; font-size:.82rem; margin:4px 4px 0 0; }

/* No results / 404 */
.nv-no-results { text-align:center; padding:40px 0; }
.nv-404 { text-align:center; padding:80px 0; }
.nv-404-code { font-size: clamp(5rem, 18vw, 11rem); line-height:1; color: var(--nv-color-accent,#2563eb); margin:0; }
.nv-404 .nv-search-form, .nv-no-results .nv-search-form { max-width:480px; margin:24px auto; }

/* Search form */
.nv-search-form { position:relative; display:flex; gap:8px; }
.nv-search-input { flex:1; }
.nv-search-submit { flex:0 0 auto; }
.nv-search-results { position:absolute; top:100%; left:0; right:0; background:var(--nv-color-bg,#fff); border:1px solid var(--nv-color-border,#e2e8f0); border-radius:var(--nv-radius,8px); margin-top:6px; box-shadow:0 12px 30px rgba(0,0,0,.12); z-index:50; display:none; overflow:hidden; }
.nv-search-results.is-open { display:block; }
.nv-search-results a { display:flex; gap:12px; align-items:center; padding:10px 14px; color:var(--nv-color-heading,#11161f); }
.nv-search-results a:hover { background:rgba(0,0,0,.04); }
.nv-search-results img { width:40px; height:40px; object-fit:cover; border-radius:6px; }

/* Header search panel */
.nv-search-panel { max-height:0; overflow:hidden; transition:max-height .3s ease; background:var(--nv-header-bg,#fff); border-bottom:1px solid var(--nv-color-border,#e2e8f0); }
.nv-search-panel.is-open { max-height:160px; }
.nv-search-panel .nv-container { padding-block:16px; }

/* Cart count badges */
.nv-header-cart { position:relative; }
.nv-header-cart-count, .nv-floating-cart-count {
	position:absolute; top:-4px; right:-4px;
	background:var(--nv-color-accent,#2563eb); color:#fff;
	min-width:18px; height:18px; border-radius:999px;
	font-size:.7rem; display:inline-flex; align-items:center; justify-content:center; padding:0 4px;
}

/* Mobile menu */
.nv-mobile-menu {
	position:fixed; inset:0 0 0 auto; width:min(320px, 85vw);
	background:var(--nv-color-bg,#fff); z-index:9999; padding:64px 24px 24px;
	transform:translateX(100%); transition:transform .3s ease; box-shadow:-10px 0 40px rgba(0,0,0,.15);
	overflow-y:auto;
}
.nv-mobile-menu.is-open { transform:translateX(0); }
.nv-mobile-menu ul { list-style:none; margin:0; padding:0; }
.nv-mobile-menu li { border-bottom:1px solid var(--nv-color-border,#e2e8f0); }
.nv-mobile-menu a { display:block; padding:14px 0; color:var(--nv-color-heading,#11161f); font-weight:600; }
.nv-mobile-close { position:absolute; top:16px; right:16px; }
.nv-menu-open { overflow:hidden; }
.nv-overlay { position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:9998; opacity:0; visibility:hidden; transition:opacity .3s ease; }
.nv-overlay.is-open { opacity:1; visibility:visible; }

/* Comments */
.nv-comments { margin-top:48px; padding-top:32px; border-top:1px solid var(--nv-color-border,#e2e8f0); }
.nv-comment-list { list-style:none; padding:0; }
.nv-comment-list .comment-body { padding:16px 0; border-bottom:1px solid var(--nv-color-border,#e2e8f0); }

/* Section titles inside content */
.nv-section-title { font-size:1.4rem; margin:40px 0 20px; }
