/*
Theme Name: Noventra
Theme URI: https://newrize.com/noventra
Author: Muhammad Rauf
Author URI: https://newrize.com
Description: Noventra is a high-performance, modular multipurpose WordPress & WooCommerce theme with a native admin dashboard, module manager, performance engine, header/footer options, and a global design system. Performance first, plugin dependency last.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: noventra
Tags: e-commerce, blog, custom-colors, custom-logo, custom-menu, featured-images, full-width-template, rtl-language-support, translation-ready, theme-options, threaded-comments, accessibility-ready
*/

/*
 * Noventra base reset & structural styles.
 * Design tokens (colors, typography, spacing) are output dynamically as CSS
 * variables by inc/dynamic-css.php from the Customizer / Global Design System,
 * so changing settings updates the whole site automatically.
 */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--nv-font-body, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
	font-size: var(--nv-font-size, 16px);
	line-height: var(--nv-line-height, 1.7);
	color: var(--nv-color-text, #222b3a);
	background: var(--nv-color-bg, #ffffff);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--nv-font-heading, inherit);
	color: var(--nv-color-heading, #11161f);
	line-height: 1.25;
	margin: 0 0 .6em;
	font-weight: 700;
}

a { color: var(--nv-color-accent, #2563eb); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--nv-color-accent-hover, #1d4ed8); }

img { max-width: 100%; height: auto; }

.nv-container {
	width: 100%;
	max-width: var(--nv-container-width, 1200px);
	margin-inline: auto;
	padding-inline: var(--nv-container-pad, 20px);
}

.nv-btn, button, input[type="submit"], .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	padding: .7em 1.4em;
	border: 0;
	border-radius: var(--nv-radius, 8px);
	background: var(--nv-color-accent, #2563eb);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	box-shadow: var(--nv-shadow, 0 1px 2px rgba(0,0,0,.06));
	transition: transform .15s ease, background .2s ease;
}
.nv-btn:hover, button:hover { background: var(--nv-color-accent-hover, #1d4ed8); color:#fff; transform: translateY(-1px); }

input, textarea, select {
	width: 100%;
	padding: .65em .85em;
	border: 1px solid var(--nv-color-border, #e2e8f0);
	border-radius: var(--nv-radius, 8px);
	background: var(--nv-color-bg, #fff);
	color: inherit;
	font: inherit;
}
input:focus, textarea:focus, select:focus { outline: 2px solid var(--nv-color-accent, #2563eb); outline-offset: 1px; }

/* Layout scaffolding */
.site-content { padding-block: var(--nv-section-spacing, 48px); }
.nv-layout { display: grid; gap: 40px; grid-template-columns: 1fr; }
@media (min-width: 900px) {
	.nv-layout.has-sidebar { grid-template-columns: minmax(0,1fr) 320px; }
	.nv-layout.sidebar-left.has-sidebar { grid-template-columns: 320px minmax(0,1fr); }
	.nv-layout.sidebar-left .nv-sidebar { order: -1; }
}

/* Header */
.site-header { background: var(--nv-header-bg, #fff); border-bottom: 1px solid var(--nv-color-border,#e2e8f0); }
.nv-header-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:72px; }
.site-branding .site-title { margin:0; font-size:1.4rem; }
.site-branding a { color: var(--nv-color-heading,#11161f); }
.nv-primary-nav ul { list-style:none; display:flex; gap:24px; margin:0; padding:0; }
.nv-primary-nav a { color: var(--nv-color-heading,#11161f); font-weight:600; padding:8px 0; display:inline-block; }
.nv-primary-nav a:hover { color: var(--nv-color-accent,#2563eb); }
.nv-header-actions { display:flex; align-items:center; gap:16px; }
.nv-icon-btn { background:none; box-shadow:none; padding:6px; color: var(--nv-color-heading,#11161f); }
.nv-icon-btn:hover { background:none; color: var(--nv-color-accent,#2563eb); transform:none; }
.nv-menu-toggle { display:none; }

@media (max-width: 899px) {
	.nv-primary-nav { display:none; }
	.nv-menu-toggle { display:inline-flex; }
}

/* Cards / posts */
.nv-post-grid { display:grid; gap:30px; grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); }
.nv-card { background: var(--nv-card-bg,#fff); border:1px solid var(--nv-color-border,#e2e8f0); border-radius: var(--nv-radius,8px); overflow:hidden; box-shadow: var(--nv-shadow,0 1px 3px rgba(0,0,0,.06)); transition: transform .2s ease, box-shadow .2s ease; }
.nv-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0,0,0,.10); }
.nv-card .nv-card-body { padding:20px; }
.nv-card .nv-card-thumb img { width:100%; aspect-ratio: 16/9; object-fit: cover; display:block; }
.nv-meta { font-size:.85rem; color: var(--nv-color-muted,#64748b); display:flex; gap:14px; flex-wrap:wrap; margin-bottom:8px; }

.entry-title a { color: var(--nv-color-heading,#11161f); }
.entry-title a:hover { color: var(--nv-color-accent,#2563eb); }

/* Footer */
.site-footer { background: var(--nv-footer-bg,#0f172a); color: var(--nv-footer-text,#cbd5e1); padding-block: 56px 0; margin-top: 60px; }
.site-footer a { color: var(--nv-footer-link,#e2e8f0); }
.nv-footer-widgets { display:grid; gap:36px; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); }
.nv-footer-bottom { border-top:1px solid rgba(255,255,255,.1); margin-top:40px; padding:22px 0; text-align:center; font-size:.9rem; }

/* Accessibility */
.screen-reader-text { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.skip-link { position:absolute; left:-9999px; top:0; background:#fff; padding:10px 16px; z-index:100000; }
.skip-link:focus { left:8px; top:8px; }

/* Pagination */
.nv-pagination { display:flex; gap:8px; justify-content:center; margin-top:40px; flex-wrap:wrap; }
.nv-pagination .page-numbers { padding:8px 14px; border:1px solid var(--nv-color-border,#e2e8f0); border-radius:var(--nv-radius,8px); color:var(--nv-color-heading,#11161f); }
.nv-pagination .page-numbers.current { background:var(--nv-color-accent,#2563eb); color:#fff; border-color:transparent; }

/* Widgets */
.nv-sidebar .widget { margin-bottom:32px; }
.nv-sidebar .widget-title { font-size:1.05rem; margin-bottom:14px; }

/* RTL helpers handled by WP rtl.css convention */
