/*
Theme Name: Novask
Theme URI: https://example.com/novask
Author: Novask Team
Author URI: https://example.com
Description: Novask is a full-featured, multipurpose WordPress theme built for ThemeForest-standard submissions. It ships with custom image sizes, category thumbnail support, deep WooCommerce integration, full Elementor page builder compatibility, a powerful Customizer, widgetized areas, custom nav menus, and translation-ready markup. Built with performance, accessibility, and extendability in mind.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: novask
Tags: e-commerce, custom-logo, custom-menu, custom-colors, featured-images, threaded-comments, translation-ready, wide-blocks, block-styles

Novask WordPress Theme is distributed under the terms of the GNU GPL.
*/

/* =========================================================
   TABLE OF CONTENTS
   1.0 Base / Reset
   2.0 Typography
   3.0 Layout / Grid
   4.0 Header
   5.0 Navigation
   6.0 Content / Posts
   7.0 Sidebar & Widgets
   8.0 Footer
   9.0 Forms & Buttons
   10.0 Comments
   11.0 WooCommerce
   12.0 Elementor Compatibility
   13.0 Category Image (Admin + Front)
   14.0 Utilities
   15.0 Responsive
========================================================= */

/* 1.0 Base / Reset */
:root{
  --novask-primary: #1b1f3b;
  --novask-accent: #ff5a5f;
  --novask-text: #333333;
  --novask-muted: #6b7280;
  --novask-bg: #ffffff;
  --novask-border: #e5e7eb;
  --novask-radius: 6px;
  --novask-container: 1200px;
  --novask-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --novask-font-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
*, *::before, *::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family: var(--novask-font-body);
  color: var(--novask-text);
  background: var(--novask-bg);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{ max-width:100%; height:auto; display:block; }
a{ color: var(--novask-accent); text-decoration:none; transition: color .2s ease; }
a:hover, a:focus{ color: var(--novask-primary); }
ul, ol{ margin:0 0 1.5em; padding-left:1.4em; }

/* 2.0 Typography */
h1,h2,h3,h4,h5,h6{
  font-family: var(--novask-font-heading);
  color: var(--novask-primary);
  line-height:1.25;
  margin:0 0 .6em;
  font-weight:700;
  letter-spacing:-.02em;
}
h1{ font-size:2.4em; }
h2{ font-size:1.9em; }
h3{ font-size:1.5em; }
h4{ font-size:1.2em; }
p{ margin:0 0 1.4em; }

/* 3.0 Layout / Grid */
.novask-container{
  max-width: var(--novask-container);
  margin:0 auto;
  padding:0 20px;
}
.novask-site-wrapper{ display:flex; flex-direction:column; min-height:100vh; }
.novask-content-area{ flex:1 0 auto; padding: 40px 0; background:#f9f9f9;}
.novask-layout-with-sidebar{ display:flex; flex-wrap:wrap; gap:40px; }
.novask-layout-with-sidebar .novask-main{ flex:1 1 65%; min-width:280px; }
.novask-layout-with-sidebar .novask-sidebar{ flex:1 1 28%; min-width:260px; }

/* 3.1 Full width page template (with header/footer) */
.novask-fullwidth-page{ width:100%; }
.novask-main-fullwidth{ width:100%; max-width:none; padding:0; margin:0; }

/* 4.0 Header */
.novask-header{
  border-bottom:1px solid var(--novask-border);
  padding: 0;
  background: var(--novask-bg);
  position: sticky;
  top:0;
  z-index: 999;
}
.novask-header-inner{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap:24px;
  min-height:80px;
}
.novask-header-left{ display:flex; align-items:center; gap:16px; justify-self:start; }
.novask-header-center{ justify-self:center; }
.novask-header-right{ display:flex; align-items:center; gap:14px; justify-self:end; }
.novask-site-branding{ display:flex; align-items:center; gap:12px; }
.novask-site-title{ font-size:1.6em; margin:0; }
.novask-site-title a{ color: var(--novask-primary); }
.novask-site-description{ margin:0; font-size:.85em; color:var(--novask-muted); }

.novask-header-search{ display:flex; align-items:center; gap:2px; border:1px solid var(--novask-border); border-radius:999px; padding:4px 4px 4px 16px; background:#fff; transition:border-color .2s ease; }
.novask-header-search:focus-within{ border-color: var(--novask-accent); }
.novask-header-search-field{ width:150px; border:none; outline:none; background:transparent; font-size:.9em; padding:0; }
.novask-header-search-submit{ display:flex; align-items:center; justify-content:center; flex:0 0 auto; width:32px; height:32px; border-radius:50%; border:none; background:var(--novask-bg); color:var(--novask-text); cursor:pointer; padding:0; transition:background .2s ease,color .2s ease; }
.novask-header-search-submit:hover{ background:var(--novask-accent); color:#fff; }
.novask-header-cta{ white-space:nowrap; text-decoration:none; }

/* 5.0 Navigation */
.novask-primary-nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:22px; flex-wrap:wrap; }
.novask-primary-nav li{ position:relative; }
.novask-primary-nav > ul > li > a{ display:block; height:80px; line-height:80px; padding:0; margin:0; }
.novask-primary-nav a{ color: var(--novask-text); font-weight:600; }
.novask-primary-nav .sub-menu{
  display:none; position:absolute; top:100%; left:0; background:#fff;
  border:1px solid var(--novask-border); min-width:200px; padding:10px 0; flex-direction:column; z-index: 50;
}
.novask-primary-nav li:hover > .sub-menu{ display:flex; }
.novask-primary-nav .sub-menu li{ padding:0 16px; }
.novask-menu-toggle{ display:none; background:none; border:1px solid var(--novask-border); border-radius:var(--novask-radius); padding:8px 12px; cursor:pointer; }

/* 6.0 Content / Posts */
.novask-entry{ margin-bottom:48px; background:#ffffff;border-radius:7px;}
.novask-entry-thumb{ margin-bottom:16px; border-radius: var(--novask-radius); overflow:hidden; width:100%!important;}
.novask-entry-meta{ color: var(--novask-muted); font-size:.85em; margin-bottom:8px; }
.novask-entry-meta a{ color: var(--novask-muted); }
.novask-pagination{ display:flex; gap:8px; margin-top:32px; flex-wrap:wrap; }
.novask-pagination a, .novask-pagination span{
  padding:8px 14px; border:1px solid var(--novask-border); border-radius:var(--novask-radius);
}
.novask-pagination .current{ background: var(--novask-primary); color:#fff; border-color: var(--novask-primary); }

/* 7.0 Sidebar & Widgets */
.widget{ margin-bottom:36px; }
.widget-title{ font-size:1.1em; text-transform:uppercase; letter-spacing:.04em; border-bottom:2px solid var(--novask-accent); padding-bottom:8px; margin-bottom:16px; }
.novask-footer-widgets{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:32px; padding:48px 0; }

/* 8.0 Footer */
.novask-footer{ background: var(--novask-primary); color:#e5e7eb; margin-top:auto; }
.novask-footer a{ color:#fff; }
.novask-footer-bottom{ border-top:1px solid rgba(255,255,255,.12); padding:18px 0; font-size:.85em; text-align:center; }

/* 9.0 Forms & Buttons */
input[type=text], input[type=email], input[type=url], input[type=password], input[type=search], input[type=tel], textarea, select{
  width:100%; padding:10px 12px; border:1px solid var(--novask-border); border-radius: var(--novask-radius); font-family:inherit;
}
button, .button, input[type=submit], .novask-btn, .wp-block-button__link, a.button{
  display:inline-block; background: var(--novask-accent); color:#fff !important; border:none;
  padding:12px 22px; border-radius: var(--novask-radius); cursor:pointer; font-weight:600; transition: background .2s ease;
}
button:hover, .button:hover, input[type=submit]:hover, .novask-btn:hover{ background: var(--novask-primary); }

/* 10.0 Comments */
.novask-comments-area{ margin-top:48px; }
.comment-list{ list-style:none; margin:0; padding:0; }
.comment-list .children{ list-style:none; margin-left:32px; padding:0; }
.comment-body{ border:1px solid var(--novask-border); border-radius:var(--novask-radius); padding:18px; margin-bottom:16px; }

/* 11.0 WooCommerce */
.woocommerce ul.products{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:28px; list-style:none; padding:0; }
.woocommerce ul.products li.product{ text-align:left; }
.woocommerce span.onsale{ background: var(--novask-accent); border-radius:50%; }
.woocommerce div.product p.price, .woocommerce div.product span.price{ color: var(--novask-accent); font-size:1.3em; }
.woocommerce a.button, .woocommerce button.button, .woocommerce #respond input#submit{
  background: var(--novask-accent); color:#fff;
}
.woocommerce a.button:hover, .woocommerce button.button:hover{ background: var(--novask-primary); }
.woocommerce-cart table.cart, .woocommerce-checkout table.shop_table{ width:100%; border-collapse:collapse; }

/* 12.0 Elementor Compatibility */
.elementor-page .novask-content-area{ padding:0; }
.elementor-page .novask-content-area .novask-container{ max-width:none; padding:0; }
body.elementor-template-full-width .novask-header,
body.elementor-template-full-width .novask-footer{ display:none; }

/* 13.0 Category Image */
.novask-category-thumb{ margin-bottom:12px; border-radius:var(--novask-radius); overflow:hidden; }
.novask-category-card{ text-align:center; border:1px solid var(--novask-border); border-radius:var(--novask-radius); padding:16px; }
#novask-category-image-preview img{ max-width:150px; margin-top:10px; border-radius: var(--novask-radius); }

/* 14.0 Utilities */
.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); overflow:hidden; height:1px; width:1px; }
.novask-hidden{ display:none !important; }

/* 15.0 Responsive */
@media (max-width: 782px){
  .novask-header-inner{ display:flex; justify-content:space-between; align-items:center; }
  .novask-header-right{ display:none; }
  .novask-menu-toggle{ display:inline-block; }
  .novask-primary-nav{ display:none; width:100%; }
  .novask-primary-nav.is-open{ display:block; }
  .novask-primary-nav ul{ flex-direction:column; gap:0; }
  .novask-primary-nav > ul > li > a{ height:auto; padding:12px 16px; }
  .novask-primary-nav .sub-menu{ position:static; border:none; padding-left:16px; }
  .novask-layout-with-sidebar{ flex-direction:column; }
}