/* בסיס נגיש, יחידות em בלבד, RTL */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    font-size: 1em;
}

/* שמירה על קנה מידה נוח; כל השאר באמ */
body {
    margin: 0;
    font-family: system-ui, -apple-system, "Segoe UI", Arial, "Noto Sans Hebrew", "Rubik", sans-serif;
    line-height: 1.8;
    background: var(--bg);
    color: var(--text);
    text-rendering: optimizeLegibility;
}

/* ערכות צבע (לייט/דארק) + ניגודיות */
:root {
    --bg: #ffffff;
    --text: #101418;
    --muted: #5c6a79;
    --surface: #f4f6f8;
    --accent: #3b82f6;
    --accent-contrast: #ffffff;
    --border: #e2e8f0;
    --shadow: rgba(0, 0, 0, .08);
}

:root.dark {
    --bg: #0d1117;
    --text: #e6edf3;
    --muted: #9fb0c3;
    --surface: #161b22;
    --accent: #60a5fa;
    --accent-contrast: #0d1117;
    --border: #30363d;
    --shadow: rgba(0, 0, 0, .3);
}

:root.contrast {
    --bg: #ffffff;
    --text: #000000;
    --muted: #000000;
    --surface: #fff;
    --accent: #000;
    --accent-contrast: #fff;
    --border: #000;
}

/* קונטיינר */
.wrap {
    max-width: 70em;
    margin: 0 auto;
    padding: 1.5em;
}

/* קישורי דילוג */
.skip-link {
    position: absolute;
    top: -10em;
    right: 0;
    background: var(--accent);
    color: var(--accent-contrast);
    padding: .75em 1em;
    border-radius: .5em;
    text-decoration: none;
    z-index: 1000;
}

.skip-link:focus {
    top: 0.5em;
    box-shadow: 0 0 0 .2em var(--accent-contrast), 0 0 0 .4em var(--accent);
}

/* כותרת עליונה */
.site-header {
    background: var(--bg);
    border-bottom: .1em solid var(--border);
    position: sticky;
    top: 0;
    z-index: 999;
}

.site-header .wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1em;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .5em;
    color: var(--text);
    text-decoration: none;
    font-weight: 700;
}

.brand-mark {
    font-size: 1.4em;
}

.top-nav {
    display: flex;
    align-items: center;
    gap: .75em;
    flex-wrap: wrap;
}

.font-controls .btn {
    min-width: 2.4em;
}

.progress {
    width: 100%;
    height: .4em;
    display: block;
    border: none;
    background: var(--surface);
}

.progress::-webkit-progress-bar {
    background: var(--surface);
}

.progress::-webkit-progress-value {
    background: var(--accent);
    transition: width .4s ease;
}

.progress::-moz-progress-bar {
    background: var(--accent);
}

/* גיבור */
.hero {
    background: linear-gradient(120deg, rgba(59, 130, 246, .15), rgba(99, 102, 241, .15) 50%, rgba(14, 165, 233, .15));
    animation: gradientShift 12s ease-in-out infinite alternate;
    border-bottom: .1em solid var(--border);
}

@keyframes gradientShift {
    0% {
        background-position: 0% 50%;
    }

    100% {
        background-position: 100% 50%;
    }
}

.hero .title {
    font-size: 2.2em;
    margin: .2em 0;
}

.hero .subtitle {
    font-size: 1.4em;
    color: var(--muted);
    margin: 0;
}

.hero .meta {
    margin: .8em 0 1.4em;
    color: var(--muted);
}

/* פריסה */
.layout {
    display: grid;
    grid-template-columns: 18em 1fr;
    gap: 2em;
}

.toc {
    position: sticky;
    top: 5.5em;
    align-self: start;
    background: var(--surface);
    border: .1em solid var(--border);
    border-radius: .8em;
    box-shadow: 0 .4em 1.2em var(--shadow);
    padding: 1em;
}

.toc-title {
    font-size: 1.1em;
    margin: 0 0 .5em;
}

.toc-list {
    margin: 0;
    padding: 0 1em;
}

.toc-list li {
    margin: .5em 0;
}

.toc-list a {
    text-decoration: none;
    color: var(--text);
}

.toc-list a:hover,
.toc-list a[aria-current="true"] {
    text-decoration: underline;
    text-underline-offset: .2em;
}

.content {
    min-width: 0;
}

/* ספר ותוכן */
.section {
    margin: 2.2em 0;
}

.section h2 {
    font-size: 1.6em;
    margin: 0 0 .6em;
}

.section h3 {
    font-size: 1.2em;
    margin: 1.2em 0 .4em;
}

.section p {
    margin: .8em 0;
}

.section ul,
.section ol {
    padding-inline-start: 1.4em;
}

blockquote {
    margin: 1em 0;
    padding: 1em 1.2em;
    background: var(--surface);
    border-left: .3em solid var(--accent);
    border-radius: .6em;
}

/* כפתורים */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .6em 1em;
    border-radius: .6em;
    border: .1em solid var(--border);
    background: var(--surface);
    color: var(--text);
    text-decoration: none;
    cursor: pointer;
    transition: transform .12s ease, background-color .2s ease, border-color .2s ease;
}

.btn:hover {
    transform: translateY(-.05em);
}

.btn:focus-visible {
    outline: .2em solid var(--accent);
    outline-offset: .2em;
}

.btn.primary {
    background: var(--accent);
    color: var(--accent-contrast);
    border-color: transparent;
}

.btn.ghost {
    background: transparent;
}

.btn.cta {
    background: var(--accent);
    color: var(--accent-contrast);
    border: none;
}

/* פוטר */
.site-footer {
    border-top: .1em solid var(--border);
    background: var(--bg);
    color: var(--muted);
}

.site-footer p {
    margin: 0;
}

/* מצבי עזר */
.sr-only {
    position: absolute;
    width: 1em;
    height: 1em;
    padding: 0;
    margin: -1em;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* הנפשות עדינות (מכבדות העדפת משתמש) */
@media (prefers-reduced-motion: reduce) {
    * {
        animation: none !important;
        transition: none !important;
    }
}

/* רספונסיביות באמ (לא px) */
@media (max-width: 60em) {
    .layout {
        grid-template-columns: 1fr;
    }

    .toc {
        position: static;
        order: -1;
        margin-top: 1.2em;
    }

    .hero .title {
        font-size: 2em;
    }
}

@media (max-width: 38em) {
    .top-nav {
        gap: .4em;
    }

    .hero .subtitle {
        font-size: 1.2em;
    }

    .wrap {
        padding: 1.2em;
    }
}

/* מצב הדפסה */
@media print {

    .site-header,
    .hero,
    .toc,
    .site-footer,
    .btn,
    .progress {
        display: none !important;
    }

    body {
        color: #000;
        background: #fff;
    }

    .wrap {
        padding: 0;
    }

    .section {
        page-break-inside: avoid;
    }
}

/* פריסה בסיסית של הניווט (על דסקטופ) */
.top-nav {
    display: flex;
    align-items: center;
    gap: 0.75em;
}

.nav-links {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 1em;
}

.nav-links a {
    text-decoration: none;
    color: inherit;
}

/* כפתור תפריט למובייל – מוסתר בדסקטופ */
.menu-toggle {
    display: none;
    cursor: pointer;
    font-size: 1.4em;
    line-height: 1;
}

/* רספונסיביות – במסכים צרים נסתיר את התפריט ונראה אייקון ☰ */
@media (max-width: 48em) {
    .top-nav {
        position: relative;
    }

    .menu-toggle {
        display: block;
    }

    .nav-links {
        position: absolute;
        top: 2.8em;
        /* קצת מתחת ל-header */
        right: 0;
        flex-direction: column;
        gap: 0.5em;
        background: var(--bg);
        border: 0.1em solid var(--border);
        border-radius: 0.6em;
        padding: 0.8em 1.2em;
        box-shadow: 0 0.4em 1.2em var(--shadow);
        min-width: 12em;
        display: none;
        /* סגור כברירת מחדל */
        z-index: 1000;
    }

    .nav-links.nav-open {
        display: flex;
        /* נפתח עם JS */
    }

}

/*חלוגו ספר*/
.brand-logo {
    width: 6em;
    height: auto;
    display: inline-block;
    vertical-align: middle;
    margin-inline-end: 0.5em;
}

@media (max-width: 48em) {

    /* הכותרת למעלה יכולה להישבר לשתי שורות */
    .site-header .wrap {
        flex-wrap: wrap;
        align-items: flex-start;
    }

    /* הניווט יתפוס את כל הרוחב מתחת ללוגו */
    .top-nav {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 0.5em;
        margin-top: 0.5em;
    }

    /* כפתור ההמבורגר – מוצג במובייל */
    .menu-toggle {
        display: block;
        cursor: pointer;
        font-size: 1.6em;
        line-height: 1;
        border: none;
        background: transparent;
    }

    /* רשימת הלינקים – ברירת מחדל: מוסתרת */
    .nav-links {
        display: none;
        flex-direction: column;
        width: 100%;
        list-style: none;
        margin: 0.5em 0 0;
        padding: 0.75em 0;
        border-top: 0.1em solid var(--border);
        gap: 0.5em;
    }

    /* כש־JS מוסיף nav-open – התפריט נפתח */
    .nav-links.nav-open {
        display: flex;
    }

    .nav-links a {
        padding: 0.4em 0;
    }
}