/*
Theme Name:   NOWIBLY — Astra Child
Theme URI:    https://nowibly.com
Description:  NOWIBLY child theme for Astra. Curated smart-gadgets store. RTL-ready (EN / FR / AR). Single-theme architecture: no MU-plugins, no Elementor — page templates in /templates/, classes in /includes/, one-shot setup script in /setup-scripts/.
Author:       NOWIBLY
Author URI:   https://nowibly.com
Template:     astra
Version:      2.0.0
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  nowibly
*/

/* =============================================================
   [GLOBAL] Base resets + typography baseline
   Tokens (--nw-*) come from assets/css/tokens.css enqueued first.
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.nowibly {
    margin: 0;
    background: var(--nw-bg);
    color: var(--nw-text-dark);
    font-family: var(--nw-font-body);
    font-size: 16px;
    line-height: 1.6;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

/* [LINKS] */
.nowibly a {
    color: var(--nw-blue);
    text-decoration: none;
    transition: color var(--nw-duration-fast) var(--nw-ease-standard);
}
.nowibly a:hover,
.nowibly a:focus-visible { color: var(--nw-ink); }

/* [TYPOGRAPHY] Headings */
.nowibly h1,
.nowibly h2,
.nowibly h3,
.nowibly h4,
.nowibly h5,
.nowibly h6 {
    font-family: var(--nw-font-display);
    color: var(--nw-ink);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 var(--nw-space-4);
    letter-spacing: -0.01em;
}
.nowibly h1 { font-size: 56px; font-weight: 800; letter-spacing: -0.02em; }
.nowibly h2 { font-size: 40px; font-weight: 700; }
.nowibly h3 { font-size: 28px; font-weight: 700; }
.nowibly h4 { font-size: 20px; font-weight: 600; }

.nowibly p { margin: 0 0 var(--nw-space-4); }
.nowibly small { font-size: 14px; color: var(--nw-text-gray); }
.nowibly code, .nowibly pre, .nowibly kbd { font-family: var(--nw-font-mono); }

@media (max-width: 768px) {
    .nowibly h1 { font-size: 36px; }
    .nowibly h2 { font-size: 28px; }
    .nowibly h3 { font-size: 22px; }
}

/* [SELECTION] */
::selection { background: var(--nw-blue-pale); color: var(--nw-ink); }

/* [FOCUS] Keyboard accessibility */
.nowibly :focus-visible {
    outline: 2px solid var(--nw-blue);
    outline-offset: 2px;
    border-radius: 4px;
}

/* [LAYOUT] Container helper */
.nw-container {
    width: 100%;
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: var(--nw-space-5);
}
@media (max-width: 768px) {
    .nw-container { padding-inline: var(--nw-space-4); }
}

/* [UTIL] Visually hidden but accessible */
.nw-sr-only {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* [REDUCED-MOTION] Respect OS preference */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}
