/* ==========================================================================
   style.css - עיצוב הדף הציבורי (עמוד הבית).
   כלל הפרויקט: כל העיצוב חי כאן. אין CSS inline בקבצי ה-PHP.
   ========================================================================== */

:root {
    --bg-1: #0f1830;
    --bg-2: #131b2f;
    --bg-3: #1a2542;
    --card: rgba(255, 255, 255, 0.04);
    --card-border: rgba(255, 255, 255, 0.08);
    --card-hover: rgba(255, 255, 255, 0.07);
    --text: #eaeefb;
    --text-dim: #9cacd8;
    --accent: #ff9933;
    --accent-soft: #fcefc7;
    --radius: 14px;
    --shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    --gap-section: 28px;   /* רווח תקני בין ה-header/footer לתוכן */
    --ctl-h: 40px;         /* גובה אחיד לכל פקדי הסרגל העליון (חיפוש + כפתורים) */
    --fancy-col: 240px;    /* רוחב עמודה בתצוגה המעוצבת (מספיק לשני טורי קישורים) */
    --wrap-max: 2600px;    /* התוכן ממלא מסכים רחבים במקום להיתקע ברוחב קבוע */
    --col-width: 146px;    /* רוחב עמודה צר (~90%) - כדי שהכול ייכנס לעמוד אחד */
    /* חוק הפרויקט: כל הגופנים הם של Google. גוף - Heebo, כותרות - Rubik. */
    --font: "Heebo", sans-serif;
    --font-head: "Rubik", "Heebo", sans-serif;
}

* { box-sizing: border-box; }

/* ============================ מצב בהיר (Light) ============================
   ברירת המחדל היא כהה. data-theme="light" על <html> מחליף למצב בהיר. */
:root[data-theme="light"] {
    --bg-1: #eef1f9;
    --bg-2: #e6ecf6;
    --bg-3: #dbe3f1;
    --card: #ffffff;
    --card-border: rgba(24, 40, 80, 0.14);
    --card-hover: #f2f6fd;
    --text: #1a2544;
    --text-dim: #5b6a8d;
    --accent: #dd7a00;
    --accent-soft: #8a5a08;
    --shadow: 0 8px 22px rgba(30, 45, 85, 0.12);
}
:root[data-theme="light"] body::before {
    background: linear-gradient(160deg, var(--bg-1), var(--bg-2) 55%, var(--bg-3));
}
:root[data-theme="light"] .site-header { background: rgba(255, 255, 255, 0.88); }
:root[data-theme="light"] .site-footer { background: rgba(255, 255, 255, 0.55); }
:root[data-theme="light"] .filter-input { background: #ffffff; border-color: var(--card-border); }
:root[data-theme="light"] .toggle-all { background: #ffffff; border-color: var(--card-border); color: var(--text-dim); }
:root[data-theme="light"] .link-item a { color: var(--text); }
:root[data-theme="light"] .link-item a:hover,
:root[data-theme="light"] .link-item a:focus-visible { background: rgba(24, 40, 80, 0.05); color: var(--accent); }
:root[data-theme="light"] .card { background: var(--card); }
:root[data-theme="light"] .no-results { color: var(--text-dim); }
:root[data-theme="light"] * { scrollbar-color: rgba(221, 122, 0, 0.7) rgba(24, 40, 80, 0.08); }
:root[data-theme="light"] ::-webkit-scrollbar-track { background: rgba(24, 40, 80, 0.06); }

/* חוק הפרויקט: פס גלילה מעוצב מותאם לאתר - אף פעם לא סקרולבר ברירת מחדל */
* { scrollbar-width: thin; scrollbar-color: rgba(255, 153, 51, 0.65) rgba(255, 255, 255, 0.05); }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.04); border-radius: 999px; }
::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #ffb056, var(--accent));
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover { background: var(--accent); }
::-webkit-scrollbar-corner { background: transparent; }

/* מגע: ביטול השהיית 300ms והדגשת-הקשה גסה בכל האלמנטים האינטראקטיביים */
a, button, input, textarea, select, [role="button"], .card-title, .link-item {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

html { scroll-behavior: smooth; background: var(--bg-1); }

body {
    margin: 0;
    min-height: 100vh;
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
    font-family: var(--font);
    color: var(--text);
    background: var(--bg-1);
    /* חובה ביחידת rem ולא px: כלי "הגדלת טקסט" בתפריט הנגישות משנה את
       font-size של <html>, וערך px קבוע כאן היה מנטרל אותו עבור כל מה שיורש
       מ-body (WCAG 1.4.4). 0.9375rem = 15px בגודל ברירת המחדל. */
    font-size: 0.9375rem;
    line-height: 1.5;
}
/* רקע ה-gradient על שכבה קבועה נפרדת במקום background-attachment: fixed.
   כך הדפדפן לא מצייר מחדש את ה-gradient היקר בכל פריים גלילה (composited layer),
   והגלילה נשארת חלקה - אותו מראה בדיוק. */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(1200px 600px at 85% -10%, rgba(255, 153, 51, 0.10), transparent 60%),
        radial-gradient(1000px 700px at 0% 0%, rgba(76, 110, 245, 0.12), transparent 55%),
        linear-gradient(160deg, var(--bg-1), var(--bg-2) 55%, var(--bg-3));
}

.wrap {
    max-width: var(--wrap-max);
    margin: 0 auto;
    /* padding-inline בלבד - כדי לא לדרוס את padding-block של main (הרווח התקני). */
    padding-inline: clamp(16px, 2.2vw, 48px);
}

/* ==========================================================================
   נגישות (ת"י 5568 / WCAG 2.1 AA) - כללי בסיס החלים על כל הדף
   ========================================================================== */

/* קישור נגישות לדילוג לתוכן */
.skip-link {
    position: absolute;
    right: -999px;
    top: 8px;
    background: var(--accent);
    color: #1a1200;
    padding: 8px 16px;
    border-radius: 8px;
    z-index: 100;
    font-weight: 700;
}
.skip-link:focus { right: 12px; }

/* טקסט לקוראי מסך בלבד - נשמע, לא נראה. clip-path ולא display:none,
   כי אלמנט מוסתר לגמרי אינו קיים בעץ הנגישות. */
.sr-only {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* ה-header דביק (sticky) ומכסה את ראש המסך. בלי scroll-margin, אלמנט
   שמקבל פוקוס בגלילת Tab נעצר מתחתיו ולא נראה (WCAG 2.4.11 / 2.4.7). */
:where(a, button, input, select, textarea, summary, [tabindex]) {
    scroll-margin-top: calc(var(--hdr-h, 76px) + 12px);
    scroll-margin-bottom: 24px;
}

/* מסגרת פוקוס ברירת מחדל לכל רכיב שאין לו כלל משלו - אין להשאיר
   שום עצירת Tab בלי סימון גלוי. */
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* כיבוד העדפת המערכת "צמצום תנועה". כפתור "עצירת הנפשות" בתפריט הנגישות
   נשאר לשליטה ידנית; כאן מכבדים את מי שכבר הגדיר זאת במכשיר שלו. */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ------------------------------ Header ------------------------------ */
.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    /* אין backdrop-filter: הוא הופך את ה-header ל-containing block ושובר את position:fixed
       של פאנל הנגישות במובייל (היה נחתך מעל המסך). רקע אטום יותר מפצה על הבלר. */
    background: rgba(13, 20, 40, 0.96);
    border-bottom: 1px solid var(--card-border);
}
.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding-block: 8px;
    flex-wrap: wrap;
}
.brand-title {
    margin: 0;
    font-family: var(--font-head);
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.3px;
    background: linear-gradient(90deg, var(--accent), var(--accent-soft));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.brand-tagline {
    margin: 2px 0 0;
    color: var(--text-dim);
    font-size: 0.9rem;
}
.header-search {
    flex: 1 1 320px;
    max-width: 780px;
    display: flex;
    align-items: center;
    gap: 10px;
}
/* min-width: 0 - כדי ששדה החיפוש יוכל להצטמצם ולא ידחוף את הכפתורים מחוץ למסך */
.header-search .filter-input { flex: 1; min-width: 0; }
/* כל פקדי הסרגל בגובה זהה בדיוק (כולל כפתור הנגישות שמגיע מרכיב נפרד) */
.header-search .filter-input,
.header-search .view-toggle,
.header-search .toggle-all,
.header-search .search-zoom,
.header-search .theme-toggle,
.header-search .a11y-fab {
    height: var(--ctl-h);
    min-height: var(--ctl-h);
}

/* כפתור גלובלי: כווץ / הרחב את כל הפאנלים */
.toggle-all {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 14px;
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-dim);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--card-border);
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
    transition: color .15s, border-color .15s, background .15s;
}
.toggle-all:hover {
    color: var(--accent-soft);
    border-color: rgba(255, 153, 51, 0.4);
    background: rgba(255, 153, 51, 0.08);
}
.toggle-all:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}
.toggle-all-icon {
    width: 8px;
    height: 8px;
    border-left: 1.7px solid currentColor;
    border-bottom: 1.7px solid currentColor;
    transform: rotate(-45deg);
    margin-bottom: 2px;
    transition: transform .28s ease;
}
/* כשהכול מכווץ - החץ מתהפך */
.toggle-all[aria-pressed="true"] .toggle-all-icon {
    transform: rotate(135deg);
    margin-bottom: -2px;
}

/* ------------------ מתג תצוגה: רשימה / מעוצב ------------------ */
.view-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: none;
    padding: 3px;
    border: 1px solid var(--card-border);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
    font-family: inherit;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
.view-toggle:hover { border-color: rgba(255, 153, 51, 0.45); }
.view-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
:root[data-theme="light"] .view-toggle { background: #ffffff; }
/* "בורר" נע שמסמן את התצוגה הפעילה */
.view-toggle::before {
    content: "";
    position: absolute;
    top: 3px;
    bottom: 3px;
    inset-inline-start: 3px;
    width: calc(50% - 3px);
    border-radius: 999px;
    background: linear-gradient(180deg, #ffb056, var(--accent));
    box-shadow: 0 2px 9px rgba(255, 153, 51, 0.32);
    transition: transform .28s cubic-bezier(.4, 0, .2, 1);
}
.view-toggle[aria-pressed="true"]::before { transform: translateX(-100%); }
/* שתי האפשרויות ברוחב זהה - כדי שהבורר (50%) יתיישר בדיוק על כל אחת מהן */
.view-toggle-opt {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 76px;
    padding: 0 10px;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1;
    color: var(--text-dim);
    white-space: nowrap;
    transition: color .2s ease;
}
.view-toggle-opt svg { width: 14px; height: 14px; flex: none; }
.view-toggle[aria-pressed="false"] .view-toggle-opt[data-view="list"],
.view-toggle[aria-pressed="true"] .view-toggle-opt[data-view="fancy"] { color: #241500; }

/* זכוכית מגדלת — מתג "הגדלת קישור במעבר עכבר" */
.search-zoom {
    display: inline-flex; align-items: center; justify-content: center;
    width: var(--ctl-h); height: var(--ctl-h); flex: none;
    border-radius: 999px; border: 1px solid var(--card-border);
    background: rgba(255, 255, 255, 0.06); color: var(--accent);
    cursor: pointer; transition: border-color .15s, background .15s, transform .12s;
}
.search-zoom-ico { transition: transform .18s ease; }
.search-zoom:hover { border-color: rgba(255, 153, 51, 0.45); background: rgba(255, 153, 51, 0.12); }
.search-zoom:hover .search-zoom-ico { transform: scale(1.18); }
.search-zoom:active { transform: scale(0.92); }
.search-zoom:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
:root[data-theme="light"] .search-zoom { background: #ffffff; }
/* מצב דלוק: המתג פעיל */
.search-zoom[aria-pressed="true"] {
    background: rgba(255, 153, 51, 0.18);
    border-color: rgba(255, 153, 51, 0.65);
    box-shadow: 0 0 0 3px rgba(255, 153, 51, 0.15);
}
.search-zoom[aria-pressed="true"] .search-zoom-ico { transform: scale(1.12); }
:root[data-theme="light"] .search-zoom[aria-pressed="true"] { background: rgba(255, 153, 51, 0.18); }

/* כשהמתג דלוק: מעבר עכבר על קישור מגדיל את הטקסט כמו זכוכית מגדלת (בנוסף לאפקט הרגיל) */
:root.link-zoom .link-item a {
    transform-origin: right center;
    transition: background .12s, color .18s, padding-inline-start .12s,
                transform .22s cubic-bezier(.34, 1.56, .64, 1), text-shadow .18s;
    /* הקופסה נצמדת לטקסט (במקום להימתח על כל רוחב העמודה), אחרת ההגדלה מותחת
       גם את פס הרקע והוא גולש כפס רחב על הכרטיסים השכנים.
       חשוב שזה יחול תמיד ולא רק ב-:hover: כשהרוחב משתנה יחד עם הריחוף הוא קופץ
       מיידית בחזרה למלוא העמודה בזמן שההגדלה עוד מתכווצת (ומהבהב פס רחב), ובכניסה
       הוא מצטמצם מתחת לסמן ומייצר ריצוד hover בשוליים. */
    width: max-content;
    max-width: 100%;
}
/* עוגן הקופסה תואם ל-transform-origin: ברירת המחדל נצמדת לימין (RTL) */
:root.link-zoom .link-item[data-align="center"] a { transform-origin: center; margin-inline: auto; }
:root.link-zoom .link-item[data-align="left"] a { transform-origin: left center; margin-inline-start: auto; }
:root.link-zoom .link-item a:hover,
:root.link-zoom .link-item a:focus-visible {
    transform: scale(1.7);
    position: relative;
    z-index: 3;
    color: var(--accent);
    text-shadow: 0 2px 14px rgba(255, 153, 51, 0.55), 0 0 2px rgba(255, 153, 51, 0.4);
    letter-spacing: 0.2px;
}
/* מבטלים את הזזת-הריפוד שבריחוף רגיל: כשהקופסה נצמדת לטקסט היא מרחיבה את הפס
   עצמו (ולא רק מזיזה את הטקסט בתוכו), וזה מוסיף רעד רוחב מיותר להגדלה. */
@media (min-width: 641px) {
    :root.link-zoom .link-item a:hover,
    :root.link-zoom .link-item a:focus-visible { padding-inline-start: 7px; }
}
:root[data-theme="light"].link-zoom .link-item a:hover,
:root[data-theme="light"].link-zoom .link-item a:focus-visible {
    text-shadow: 0 2px 12px rgba(221, 122, 0, 0.35);
}
/* הטקסט המוגדל רחב מהעמודה שלו, ובלי זה הוא נחתך ע"י ה-overflow של הכרטיס
   ושל רשימת הקישורים. פותחים את החיתוך רק ברגע שהעכבר/הפוקוס על קישור -
   כך אנימציית הקיפול (שמסתמכת על אותו overflow) נשארת תקינה. */
:root.link-zoom .card:has(.link-item a:hover, .link-item a:focus-visible) {
    overflow: visible;
    position: relative;
    z-index: 5;              /* הטקסט המוגדל עובר מעל הכרטיסים השכנים */
}
:root.link-zoom .card-body > .link-list:has(a:hover, a:focus-visible) { overflow: visible; }

/* בטלפון (מסך צר ללא עכבר/עט) אין ריחוף — הזכוכית המגדלת מוסתרת והאפקט מנוטרל.
   בטאבלט/אייפד עם עט או בדסקטופ עם עכבר הכפתור נשאר. */
@media (max-width: 640px) and (hover: none) {
    .search-zoom { display: none; }
    :root.link-zoom .link-item a:hover,
    :root.link-zoom .link-item a:focus-visible {
        transform: none;
        text-shadow: none;
        letter-spacing: normal;
    }
}

/* מתג מצב בהיר/כהה */
.theme-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: var(--ctl-h); height: var(--ctl-h); flex: none;
    border-radius: 999px; border: 1px solid var(--card-border);
    background: rgba(255, 255, 255, 0.06); color: var(--accent);
    cursor: pointer; transition: border-color .15s, background .15s, transform .12s;
}
.theme-toggle:hover { border-color: rgba(255, 153, 51, 0.45); background: rgba(255, 153, 51, 0.12); }
.theme-toggle:active { transform: scale(0.92); }
.theme-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
:root[data-theme="light"] .theme-toggle { background: #ffffff; }
.theme-moon { display: none; }
.theme-sun { display: block; }
:root[data-theme="light"] .theme-sun { display: none; }
:root[data-theme="light"] .theme-moon { display: block; }

.filter-input {
    width: 100%;
    padding: 0 16px;
    font-size: 0.95rem;
    color: var(--text);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--card-border);
    border-radius: 999px;
    outline: none;
    transition: border-color .15s, background .15s, box-shadow .15s;
    font-family: inherit;
}
.filter-input::placeholder { color: var(--text-dim); }
.filter-input:focus {
    border-color: var(--accent);
    background: rgba(255, 255, 255, 0.10);
    box-shadow: 0 0 0 3px rgba(255, 153, 51, 0.15);
}

/* ------------------------------ Grid ------------------------------ */
/* רווח תקני: מרווח קבוע בין ה-header לתוכן ובין התוכן ל-footer. */
main { padding-block: var(--gap-section) var(--gap-section); }

/* פריסת עמודות עיתון: אורזת את כל הקטגוריות בצפיפות בעמוד אחד, כמו המקור.
   רוחב העמודה גדל במסכים רחבים כך שהתוכן מתרחב וגדל בהתאם. */
.grid {
    columns: var(--col-width);
    column-gap: 12px;
}

.card {
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    margin-bottom: 11px;
    background: var(--card);
    border: 1px solid var(--card-border);
    border-radius: var(--radius);
    padding: 9px 11px 10px;
    /* פס עליון בצבע הקטגוריה - מוצג רק כשנבחר צבע (ברירת מחדל: transparent = ללא). */
    box-shadow: var(--shadow), inset 0 3px 0 0 var(--cat-color, transparent);
    overflow: hidden;
    transition: border-color .16s ease, background .16s ease;
}
/* אפקטי hover רק במכשירים עם עכבר - כדי שבמובייל לא תישאר מסגרת כתומה "דבוקה" אחרי הקשה */
@media (hover: hover) and (pointer: fine) {
    .card:hover {
        border-color: var(--cat-color, rgba(255, 153, 51, 0.4));   /* בצבע הקטגוריה שנבחר (או עדין כברירת מחדל) */
        background: var(--card-hover);
    }
}

/* <h2> עוטף בלבד - נושא את דרגת הכותרת עבור קוראי מסך (ניווט לפי כותרות),
   בלי להוסיף שום מרווח או גודל משלו. הכפתור שבתוכו נושא את כל העיצוב. */
.card-head {
    margin: 0;
    font: inherit;
    display: block;
}
.card-title {
    /* איפוס ברירות המחדל של <button> - העיצוב זהה לכותרת שהייתה כאן קודם */
    appearance: none;
    -webkit-appearance: none;
    background: none;
    border: 0;
    width: 100%;
    text-align: inherit;
    /* מרווחים שליליים כדי שהכותרת תיגע בקצוות הכרטיס - כך פס ה-hover נקי ומלא */
    margin: -9px -11px 6px;
    padding: 8px 11px 6px;
    font-family: var(--font-head);
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--cat-color, var(--accent));
    border-bottom: 1px solid var(--card-border);
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    user-select: none;
    position: relative;
    transition: background .2s ease, border-color .2s ease;
}
/* מצב בהיר: הכתום (#dd7a00) על כרטיס לבן נותן 3.06:1 בלבד - מתחת ל-4.5:1
   הנדרש לטקסט רגיל. מכהים אותו לטקסט בלבד; הנקודה, המסגרות וה-hover
   נשארים בצבע הקטגוריה המקורי. */
:root[data-theme="light"] .card-title {
    color: color-mix(in srgb, var(--cat-color, var(--accent)) 62%, #14203c);
}
@supports (color: oklch(from red l c h)) {
    /* מקבע בהירות מקסימלית לכל צבע קטגוריה שייבחר - גם צהוב/ליים יישאר קריא */
    :root[data-theme="light"] .card-title {
        color: oklch(from var(--cat-color, var(--accent)) min(l, 0.52) c h);
    }
}
/* פס עליון עדין עם גרדיאנט שמתמזג - חכם ונקי במקום קופסה (רק במכשירים עם עכבר) */
@media (hover: hover) and (pointer: fine) {
    .card-title:hover {
        background: linear-gradient(to left, rgba(255, 153, 51, 0.16), rgba(255, 153, 51, 0.02) 82%);
        border-bottom-color: rgba(255, 153, 51, 0.5);
    }
    .card-title:hover::before { box-shadow: 0 0 12px var(--cat-color, rgba(255, 153, 51, 0.95)); }
    .card-title:hover .card-chevron { border-color: var(--accent); }
}
/* מסגרת פוקוס למקלדת. אין להגביל ל-(pointer: fine): :focus-visible ממילא לא
   נדלק בהקשת אצבע, ואילו טאבלט עם מקלדת חיצונית נשאר בלי שום סימון פוקוס. */
.card-title:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
    border-radius: 4px;
}
.card-title::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--cat-color, var(--accent));
    box-shadow: 0 0 8px var(--cat-color, rgba(255, 153, 51, 0.7));
    flex: none;
    transition: transform .28s ease;
}
.card-title-text { flex: 1; min-width: 0; }

/* צ'ברון עדין (שני קווים) שמסתובב בעת קיפול */
.card-chevron {
    width: 7px;
    height: 7px;
    flex: none;
    border-left: 1.6px solid var(--text-dim);
    border-bottom: 1.6px solid var(--text-dim);
    transform: rotate(-45deg);          /* פתוח: מצביע למטה */
    margin-bottom: 2px;
    transition: transform .28s ease, border-color .15s;
}
.card.is-collapsed .card-chevron {
    transform: rotate(45deg);           /* סגור: מצביע למעלה */
    margin-bottom: -2px;
}

/* גוף מתקפל בהנפשה חלקה (grid-template-rows 1fr <-> 0fr) */
.card-body {
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows .28s ease, opacity .22s ease;
    opacity: 1;
}
.card-body > .link-list { overflow: hidden; min-height: 0; }
.card.is-collapsed .card-body {
    grid-template-rows: 0fr;
    opacity: 0;
}
.card.is-collapsed .card-title { margin-bottom: -10px; border-bottom-color: transparent; }

/* בזמן חיפוש: חושפים את תוכן כל הפאנלים כדי שהתאמות בפאנל מכווץ יופיעו. */
.grid.is-searching .card-body { grid-template-rows: 1fr; opacity: 1; }
.grid.is-searching .card.is-collapsed .card-title {
    margin-bottom: 6px;
    border-bottom-color: var(--card-border);
}

.link-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.link-item a {
    display: block;
    padding: 2px 7px;
    border-radius: 6px;
    color: var(--text);
    text-decoration: none;
    font-size: 0.77rem;
    line-height: 1.32;
    transition: background .12s, color .12s, padding-inline-start .12s, transform .12s;
}
.link-item a:hover,
.link-item a:focus-visible {
    background: rgba(255, 153, 51, 0.12);
    color: var(--accent-soft);
    padding-inline-start: 13px;
}
/* פוקוס מקלדת חייב סימון משלו ולא רק רקע עדין: רקע ב-12% שקיפות אינו מגיע
   ל-3:1 מול הכרטיס (WCAG 1.4.11), ומשתמש מקלדת אינו יודע איפה הוא נמצא. */
.link-item a:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -1px;
}

.link-item.is-hidden,
.card.is-hidden { display: none; }

/* יישור טקסט לפאנל (ברירת מחדל: ימין/RTL) */
.card[data-align="center"] .link-item a { text-align: center; }
.card[data-align="left"] .link-item a { text-align: left; }
.card[data-align="center"] .card-title-text { text-align: center; }
.card[data-align="left"] .card-title-text { text-align: left; }

/* יישור טקסט פר-אתר - עוקף את יישור הקטגוריה (אחרי הכללים לעיל) */
.card .link-item[data-align="right"] a { text-align: right; }
.card .link-item[data-align="center"] a { text-align: center; }
.card .link-item[data-align="left"] a { text-align: left; }

/* ============================ תצוגה מעוצבת (כרטיסים מאוירים) ============================
   נדלקת ע"י המחלקה .view-fancy על <html> (מתג "רשימה / מעוצב" בסרגל העליון).
   במקום פריסת עמודות-עיתון צפופה - רשת כרטיסים אחידה עם איור לכל קטגוריה. */
.card-art { display: none; }

/* פריסת "לבנים" (masonry) בעמודות רחבות: כרטיסים מעוצבים בלי חורים בגובה,
   בשונה מ-grid שבו שורה שלמה נמתחת לגובה הכרטיס הארוך ביותר. */
:root.view-fancy .grid {
    columns: var(--fancy-col);
    column-gap: 16px;
}

:root.view-fancy .card {
    margin-bottom: 16px;
    padding: 13px 13px 15px;
    border-radius: 20px;
    border-color: rgba(255, 255, 255, 0.11);
    background:
        radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--cat-color, #ff9933) 13%, transparent), transparent 70%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.02));
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.3), inset 0 3px 0 0 var(--cat-color, transparent);
}
:root[data-theme="light"].view-fancy .card {
    background:
        radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--cat-color, #dd7a00) 12%, transparent), transparent 70%),
        #ffffff;
    box-shadow: 0 10px 26px rgba(30, 45, 85, 0.1), inset 0 3px 0 0 var(--cat-color, transparent);
}
@media (hover: hover) and (pointer: fine) {
    :root.view-fancy .card:hover {
        border-color: var(--cat-color, rgba(255, 153, 51, 0.5));
        transform: translateY(-3px);
        box-shadow: 0 22px 42px rgba(0, 0, 0, 0.38), inset 0 3px 0 0 var(--cat-color, transparent);
    }
    :root.view-fancy .card { transition: border-color .16s ease, transform .18s ease, box-shadow .18s ease; }
}

/* הכותרת ממורכזת עם הנקודה צמודה אליה; הצ'ברון יושב בקצה ולא "דוחף" את המרכז */
:root.view-fancy .card-title {
    margin: -13px -13px 8px;
    padding: 11px 26px 9px;
    font-size: 0.95rem;
    justify-content: center;
}
:root.view-fancy .card-title-text { flex: 0 1 auto; text-align: center; }
:root.view-fancy .card-chevron {
    position: absolute;
    inset-inline-end: 11px;
    top: 50%;
    margin: 0;
    transform: translateY(-60%) rotate(-45deg);
}
:root.view-fancy .card.is-collapsed .card-chevron { transform: translateY(-40%) rotate(45deg); }

/* האיור: ריבוע רך בגוון הקטגוריה, ממורכז מתחת לכותרת */
:root.view-fancy .card-art {
    display: block;
    width: 52px;
    height: 52px;
    margin: 6px auto 10px;
    padding: 7px;
    border-radius: 16px;
    background: rgba(255, 153, 51, 0.14);
    background: color-mix(in srgb, var(--cat-color, #ff9933) 18%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cat-color, #ff9933) 26%, transparent);
    transition: transform .25s cubic-bezier(.34, 1.56, .64, 1);
}
@media (hover: hover) and (pointer: fine) {
    :root.view-fancy .card:hover .card-art { transform: translateY(-2px) scale(1.07); }
}
/* פאנל מכווץ: האיור הגדול נסגר, ובמקומו אייקון קטן נכנס לשורת הכותרת -
   כך שגם כשהפאנל מכווץ רואים את האיור לצד שם הקטגוריה. */
:root.view-fancy .card.is-collapsed .card-art { display: none; }
/* הכרטיס המכווץ מתכווץ לגובה שורת הכותרת בלבד */
:root.view-fancy .card.is-collapsed .card-title { margin-bottom: -11px; }
:root.view-fancy .grid.is-searching .card.is-collapsed .card-title { margin-bottom: 8px; }
:root.view-fancy .card.is-collapsed .card-title::after {
    content: "";
    order: -1;              /* לפני נקודת הצבע והכותרת */
    flex: none;
    width: 26px;
    height: 26px;
    border-radius: 9px;
    background-color: rgba(255, 153, 51, 0.14);
    background-color: color-mix(in srgb, var(--cat-color, #ff9933) 18%, transparent);
    background-image: var(--cat-art);
    background-size: 19px 19px;
    background-position: center;
    background-repeat: no-repeat;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cat-color, #ff9933) 26%, transparent);
}
/* בתצוגה המעוצבת האיור כבר נושא את צבע הקטגוריה - נקודת הצבע מיותרת */
:root.view-fancy .card-title::before { display: none; }

/* בזמן חיפוש הפאנלים נפתחים - חוזרים לאיור הגדול, בלי כפילות */
:root.view-fancy .grid.is-searching .card.is-collapsed .card-art { display: block; }
:root.view-fancy .grid.is-searching .card.is-collapsed .card-title::after { content: none; }

:root.view-fancy .link-list { gap: 2px; }

/* פאנל ארוך (8 קישורים ומעלה) נפרס לשני טורים - כדי לקצר את הכרטיס.
   :has() בודק אם קיים פריט שמיני; פאנלים קצרים נשארים בטור אחד. */
@media (min-width: 641px) {
    :root.view-fancy .link-list:has(.link-item:nth-child(8)) {
        display: block;
        columns: 2;
        column-gap: 12px;
        column-rule: 1px solid var(--card-border);
    }
    :root.view-fancy .link-list:has(.link-item:nth-child(8)) .link-item {
        break-inside: avoid;
        margin-bottom: 2px;
    }
}
:root.view-fancy .card .link-item a {
    text-align: center;
    font-size: 0.83rem;
    padding: 4px 8px;
    border-radius: 8px;
}
:root.view-fancy .card .link-item a:hover,
:root.view-fancy .card .link-item a:focus-visible { padding-inline-start: 8px; }
/* זכוכית מגדלת: בתצוגה המעוצבת הטקסט ממורכז, ולכן גם ההגדלה יוצאת מהמרכז */
:root.view-fancy.link-zoom .card .link-item a { transform-origin: center; margin-inline: auto; }

.no-results {
    text-align: center;
    color: var(--text-dim);
    padding: 40px 0;
    font-size: 1.05rem;
}

/* ------------------------------ Doc / statement page ------------------------------ */
.doc {
    max-width: 820px;
    margin: 0 auto;
    background: var(--card);
    border: 1px solid var(--card-border);
    border-radius: var(--radius);
    padding: clamp(20px, 3vw, 40px);
    box-shadow: var(--shadow);
    line-height: 1.75;
}
.doc h2 {
    font-family: var(--font-head);
    color: var(--accent);
    font-size: 1.15rem;
    margin: 26px 0 10px;
}
.doc p { margin: 0 0 14px; color: var(--text); }
.doc ul { margin: 0 0 16px; padding-inline-start: 22px; }
.doc li { margin-bottom: 6px; }
.doc a { color: var(--accent-soft); text-decoration: underline; }
.doc a:hover { color: var(--accent); }
.doc-updated { color: var(--text-dim); font-size: 0.85rem; }
.doc-back-wrap { text-align: center; margin-top: 22px; }
.doc-back {
    display: inline-block; font-weight: 700; text-decoration: none;
    padding: 11px 26px; border-radius: 999px;
    color: var(--accent); background: rgba(255, 153, 51, 0.1);
    border: 1px solid rgba(255, 153, 51, 0.4); transition: background .15s, color .15s;
}
.doc-back:hover { background: var(--accent); color: #241500; text-decoration: none; }

/* ------------------------------ Footer ------------------------------ */
.site-footer {
    border-top: 1px solid var(--card-border);
    background: rgba(9, 15, 30, 0.5);
    padding-block: 18px;
}
.footer-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    color: var(--text-dim);
    font-size: 0.85rem;
    flex-wrap: wrap;
}
.footer-inner a {
    color: var(--text-dim);
    text-decoration: none;
    transition: color .12s;
}
.footer-inner a:hover { color: var(--accent); }

/* כפתור ניהול - אייקון מנעול קטן בצד שמאל של ה-footer */
.footer-admin {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    padding: 6px;
    border-radius: 8px;
    line-height: 0;
}
.footer-admin svg { fill: currentColor; opacity: 0.5; transition: opacity .12s; }
.footer-admin:hover svg { opacity: 1; }

/* מובייל: המנעול לא צף מעל הטקסט אלא בשורה נפרדת מתחת */
@media (max-width: 640px) {
    .footer-admin {
        position: static;
        top: auto; left: auto;
        transform: none;
        order: 10;
        flex-basis: 100%;
        justify-content: left;   /* המנעול מיושר לשמאל (פיזי) */
        margin-top: 4px;
    }
}

/* ------------------------------ Responsive ------------------------------ */
/* מסך רחב: התוכן ממלא את הרוחב וגדל - עמודות רחבות יותר וגופן בסיס גדול יותר
   (רוב הגדלים ביחידות rem, ולכן הכול גדל פרופורציונלית). */
@media (min-width: 1600px) {
    :root { --col-width: 158px; --fancy-col: 252px; }
    body { font-size: 0.9375rem; }   /* 15px - ראו ההערה ב-body על rem מול px */
}
@media (min-width: 2100px) {
    :root { --col-width: 172px; --fancy-col: 272px; }
    body { font-size: 0.96875rem; }  /* 15.5px */
}
@media (min-width: 2800px) {
    :root { --col-width: 190px; --fancy-col: 300px; }
    body { font-size: 1rem; }        /* 16px */
}

/* טאבלט: עמודות צרות יותר. */
@media (max-width: 900px) {
    :root { --col-width: 136px; }
    .grid { column-gap: 10px; }
}
/* מובייל: 2 עמודות, יעדי מגע גדולים יותר, חיפוש ברוחב מלא. */
@media (max-width: 640px) {
    .brand-title { font-size: 1.25rem; }
    .grid { columns: 2; column-gap: 10px; }
    .card { margin-bottom: 10px; padding: 11px 12px; }
    .card-title { font-size: 0.92rem; }
    /* קישורים גדולים יותר ללחיצה נוחה באצבע וקריאות טובה */
    .link-item a { padding: 9px 10px; font-size: 0.95rem; line-height: 1.4; border-radius: 8px; }
    .link-item a:hover, .link-item a:focus-visible { padding-inline-start: 10px; }
    .card-title { font-size: 0.98rem; }
    .header-inner { gap: 10px; }
    .header-search { flex: 1 1 100%; max-width: none; }
    main { padding-block: 22px; }

    /* הכפתורים מצטמצמים לאייקונים בלבד - כדי לפנות מקום לשדה החיפוש */
    .view-toggle-txt { display: none; }
    .view-toggle-opt { min-width: 34px; padding: 0 6px; }
    .view-toggle-opt svg { width: 16px; height: 16px; }
    .toggle-all { width: var(--ctl-h); padding: 0; justify-content: center; flex: none; }
    .toggle-all-text { display: none; }
    .toggle-all-icon { width: 10px; height: 10px; }

    /* תצוגה מעוצבת במובייל: שתי עמודות ויעדי מגע נוחים */
    :root { --fancy-col: 148px; }
    :root.view-fancy .grid { columns: 2; column-gap: 11px; }
    :root.view-fancy .card { margin-bottom: 11px; }
    /* כשכל הפאנלים מכווצים - רשת אמיתית במקום פריסת לבנים, כך שהשורות מיושרות
       זו מול זו וכל הכרטיסים בגובה זהה (בלבנים כל עמודה "זוחלת" בנפרד).
       כשיש פאנל פתוח חוזרים ללבנים, אחרת פאנל קצר לצד ארוך היה משאיר חור ענק. */
    :root.view-fancy .grid:not(.is-searching):not(:has(.card:not(.is-collapsed))) {
        columns: initial;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 11px;
    }
    :root.view-fancy .grid:not(.is-searching):not(:has(.card:not(.is-collapsed))) .card {
        margin-bottom: 0;
    }
    :root.view-fancy .card { padding: 11px 10px 13px; border-radius: 17px; }
    :root.view-fancy .card-title { margin: -11px -10px 7px; padding: 10px 10px 8px; }
    /* פאנל מכווץ: האייקון והשם צמודים לימין (RTL). המידות מכווננות כך שגם השם
       הארוך ביותר נכנס לשורה אחת - אחרת כרטיס שהשם בו נשבר יוצא גבוה משכנו. */
    :root.view-fancy .card.is-collapsed .card-title {
        justify-content: flex-start;
        gap: 5px;
        font-size: 0.88rem;
        padding-inline: 9px 22px;
    }
    :root.view-fancy .card.is-collapsed .card-title-text {
        text-align: start;
        min-width: 0;
        overflow-wrap: anywhere;
    }
    :root.view-fancy .card.is-collapsed .card-title::after {
        width: 24px;
        height: 24px;
        background-size: 17px 17px;
    }
    :root.view-fancy .card-art { width: 46px; height: 46px; margin: 4px auto 8px; }
    :root.view-fancy .card .link-item a { padding: 7px 8px; font-size: 0.9rem; }
    :root.view-fancy .card .link-item a:hover,
    :root.view-fancy .card .link-item a:focus-visible { padding-inline-start: 8px; }
}
/* מסך צר מאוד: עמודה אחת. */
@media (max-width: 380px) {
    .grid { columns: 1; }
}

/* ============================ קישורי footer + מגירת הסכמים ============================ */
.footer-links { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.footer-link {
    background: none; border: none; padding: 0; cursor: pointer;
    font: inherit; color: var(--text-dim); text-decoration: none;
    transition: color .15s;
}
.footer-link:hover, .footer-link:focus-visible { color: var(--accent); text-decoration: underline; }
.footer-sep { color: var(--text-dim); opacity: 0.5; }

/* יעדי מגע ב-footer: הטקסטים בגובה ~20px בלבד, מתחת ל-24×24 הנדרש
   (WCAG 2.5.8). ה-margin השלילי מחזיר את הגובה החזותי כך שהפריסה
   לא משתנה - רק אזור הלחיצה גדל. */
.footer-inner a,
.footer-link,
.footer-credit {
    padding-block: 6px;
    margin-block: -6px;
}

/* ============================ באנר עוגיות ============================ */
.cookie-banner {
    position: fixed; inset-inline: 0; bottom: 0; z-index: 180;
    background: rgba(13, 20, 40, 0.97);
    border-top: 1px solid rgba(255, 153, 51, 0.35);
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.4);
    transform: translateY(105%);
    transition: transform .38s cubic-bezier(.4, 0, .2, 1);
}
:root[data-theme="light"] .cookie-banner { background: rgba(255, 255, 255, 0.98); }
.cookie-banner[hidden] { display: none; }
.cookie-banner.is-in { transform: translateY(0); }
.cookie-inner {
    display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
    padding-block: 14px;
    padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
}
.cookie-text { flex: 1 1 320px; font-size: 0.9rem; color: var(--text-dim); line-height: 1.65; }
.cookie-title { display: block; margin-bottom: 3px; color: var(--text); font-family: var(--font-head); font-size: 1.02rem; }
.cookie-text p { margin: 0; }
.cookie-policy {
    background: none; border: none; padding: 0; cursor: pointer; font: inherit;
    color: var(--accent); text-decoration: underline; font-weight: 600;
}
.cookie-policy:hover { color: var(--accent-soft); }
.cookie-accept {
    flex: none; padding: 11px 30px; border: none; border-radius: 999px; cursor: pointer;
    font-family: var(--font-head); font-size: 0.95rem; font-weight: 700; color: #241500;
    background: linear-gradient(180deg, #ffb056, var(--accent));
    box-shadow: 0 6px 18px rgba(255, 153, 51, 0.3); transition: transform .12s, box-shadow .15s;
}
.cookie-accept:hover { transform: translateY(-1px); box-shadow: 0 9px 24px rgba(255, 153, 51, 0.4); }
@media (max-width: 640px) { .cookie-accept { width: 100%; } }

/* מונע גלילת רקע כשהמגירה פתוחה */
body.agreement-open { overflow: hidden; }

.agreement-overlay { position: fixed; inset: 0; z-index: 200; }
.agreement-overlay[hidden] { display: none; }
.agreement-backdrop {
    position: absolute; inset: 0;
    background: rgba(4, 8, 18, 0.62); backdrop-filter: blur(4px);
    opacity: 0; transition: opacity .32s ease;
}
.agreement-overlay.is-open .agreement-backdrop { opacity: 1; }

.agreement-drawer {
    position: absolute; top: 0; left: 0; height: 100%;
    width: min(500px, 93vw);
    display: flex; flex-direction: column;
    background: linear-gradient(160deg, #16223f 0%, #101a30 100%);
    border-inline-end: 1px solid rgba(255, 153, 51, 0.25);
    box-shadow: 20px 0 60px rgba(0, 0, 0, 0.5);
    transform: translateX(-100%);
    transition: transform .34s cubic-bezier(.4, 0, .2, 1);
    outline: none;
}
.agreement-overlay.is-open .agreement-drawer { transform: translateX(0); }

.agreement-head {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 20px 24px; flex: none;
    border-bottom: 1px solid var(--card-border);
    background: linear-gradient(180deg, rgba(255, 153, 51, 0.09), transparent);
}
.agreement-title {
    margin: 0; font-family: var(--font-head); font-size: 1.3rem; font-weight: 800;
    color: var(--accent); position: relative; padding-inline-start: 14px;
}
.agreement-title::before {
    content: ""; position: absolute; inset-inline-start: 0; top: 50%; transform: translateY(-50%);
    width: 5px; height: 1.25em; border-radius: 3px; background: linear-gradient(180deg, #ffb056, var(--accent));
}
.agreement-x {
    flex: none; width: 38px; height: 38px; display: grid; place-items: center;
    border: 1px solid var(--card-border); border-radius: 10px;
    background: rgba(255, 255, 255, 0.05); color: var(--text-dim); cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}
.agreement-x:hover { background: rgba(255, 92, 108, 0.15); color: #ff8a96; border-color: rgba(255, 92, 108, 0.4); }

.agreement-body {
    flex: 1; min-height: 0; overflow-y: auto;
    padding: 20px 24px 28px; color: var(--text); line-height: 1.75;
    overscroll-behavior: contain;
}
.agreement-body h3 {
    margin: 22px 0 8px; font-family: var(--font-head); font-size: 1.05rem; font-weight: 700;
    color: var(--accent-soft); display: flex; align-items: center; gap: 8px;
}
.agreement-body h3::before {
    content: ""; width: 7px; height: 7px; border-radius: 50%;
    background: var(--accent); flex: none; box-shadow: 0 0 8px rgba(255, 153, 51, 0.7);
}
.agreement-body h3:first-child { margin-top: 0; }
.agreement-body p { margin: 0 0 12px; color: #d4ddf5; font-size: 0.96rem; }
.agreement-body a { color: var(--accent); text-decoration: underline; font-weight: 600; }
.agreement-body a:hover { color: var(--accent-soft); }
.agreement-body strong, .agreement-body b { color: #fff; font-weight: 700; }
.agreement-body ul { margin: 0 0 14px; padding-inline-start: 4px; list-style: none; }
.agreement-body li {
    position: relative; padding-inline-start: 22px; margin-bottom: 7px;
    color: #d4ddf5; font-size: 0.95rem;
}
.agreement-body li::before {
    content: ""; position: absolute; inset-inline-start: 4px; top: 0.62em;
    width: 7px; height: 7px; border-radius: 2px; transform: rotate(45deg);
    background: var(--accent); opacity: 0.85;
}

.agreement-foot {
    flex: none; padding: 16px 24px; border-top: 1px solid var(--card-border);
    background: rgba(10, 16, 32, 0.5);
}
.agreement-ok {
    width: 100%; padding: 13px; border: none; border-radius: 12px; cursor: pointer;
    font-family: var(--font-head); font-size: 1rem; font-weight: 700; color: #241500;
    background: linear-gradient(180deg, #ffb056, var(--accent));
    box-shadow: 0 6px 18px rgba(255, 153, 51, 0.3);
    transition: transform .12s, box-shadow .15s;
}
.agreement-ok:hover { transform: translateY(-1px); box-shadow: 0 9px 24px rgba(255, 153, 51, 0.4); }
.agreement-ok:active { transform: translateY(0); }

@media (max-width: 640px) {
    .agreement-head { padding: 16px 18px; }
    .agreement-body { padding: 16px 18px 24px; }
    .agreement-title { font-size: 1.15rem; }
}

/* ============================ "הפוך לדף הבית" / התקנה כאפליקציה ============================ */
.footer-home {
    display: inline-flex; align-items: center; gap: 5px;
    /* padding-block 7px במקום 4px - מביא את יעד המגע ל-≥24px (WCAG 2.5.8);
       ה-margin השלילי שומר על אותו גובה שורה ב-footer. */
    padding: 7px 11px; margin-block: -3px;
    border: none; border-radius: 999px; cursor: pointer;
    font-family: var(--font-head); font-weight: 700; font-size: 0.72rem; color: #241500;
    background: linear-gradient(180deg, #ffb056, var(--accent));
    box-shadow: 0 2px 9px rgba(255, 153, 51, 0.24);
    transition: transform .12s, box-shadow .15s, filter .12s;
}
.footer-home svg { fill: currentColor; width: 12px; height: 12px; }
.footer-home:hover { transform: translateY(-1px); box-shadow: 0 3px 10px rgba(255, 153, 51, 0.22); filter: brightness(1.03); }
.footer-home:active { transform: translateY(0); }

body.hp-open { overflow: hidden; }
.hp-overlay { position: fixed; inset: 0; z-index: 210; display: grid; place-items: center; padding: 20px; }
.hp-overlay[hidden] { display: none; }
.hp-backdrop {
    position: absolute; inset: 0;
    background: rgba(4, 8, 18, 0.62); backdrop-filter: blur(4px);
    opacity: 0; transition: opacity .24s ease;
}
.hp-overlay.is-open .hp-backdrop { opacity: 1; }

.hp-modal {
    position: relative; width: 100%; max-width: 440px;
    max-height: calc(100dvh - 40px); overflow-y: auto; overscroll-behavior: contain;
    background: linear-gradient(160deg, #16223f 0%, #101a30 100%);
    border: 1px solid rgba(255, 153, 51, 0.25); border-radius: 18px;
    padding: 26px 24px 22px; text-align: center; color: var(--text);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
    transform: translateY(12px) scale(.98); opacity: 0;
    transition: transform .24s cubic-bezier(.4, 0, .2, 1), opacity .24s ease;
}
.hp-overlay.is-open .hp-modal { transform: none; opacity: 1; }
:root[data-theme="light"] .hp-modal { background: #ffffff; border-color: rgba(221, 122, 0, 0.3); }

.hp-x {
    position: absolute; inset-inline-end: 14px; top: 14px;
    width: 34px; height: 34px; display: grid; place-items: center;
    border: 1px solid var(--card-border); border-radius: 9px;
    background: rgba(255, 255, 255, 0.05); color: var(--text-dim); cursor: pointer;
    transition: background .15s, color .15s;
}
.hp-x:hover { background: rgba(255, 92, 108, 0.15); color: #ff8a96; }

.hp-hero img { border-radius: 16px; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.4); }
.hp-title { margin: 12px 0 4px; font-family: var(--font-head); font-size: 1.35rem; font-weight: 800; color: var(--accent); }
.hp-sub { margin: 0 0 18px; color: var(--text-dim); font-size: .92rem; line-height: 1.5; }

.hp-install {
    width: 100%; padding: 13px; margin-bottom: 18px; border: none; border-radius: 12px; cursor: pointer;
    font-family: var(--font-head); font-size: 1rem; font-weight: 700; color: #063d22;
    background: linear-gradient(180deg, #3ad98c, #22b06a);
    box-shadow: 0 6px 18px rgba(53, 196, 127, 0.3); transition: transform .12s, box-shadow .15s;
}
.hp-install[hidden] { display: none; }
.hp-install:hover { transform: translateY(-1px); box-shadow: 0 9px 24px rgba(53, 196, 127, 0.42); }

.hp-browser { text-align: start; margin-bottom: 12px; }
.hp-browser label { display: block; font-size: .85rem; color: var(--text-dim); margin-bottom: 6px; }
.hp-select {
    width: 100%; padding: 10px 13px; padding-inline-end: 34px;
    font: inherit; color: var(--text); cursor: pointer;
    background-color: rgba(0, 0, 0, 0.22); border: 1px solid var(--card-border); border-radius: 10px;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%239cacd8' d='M6 8 0 2 1.4.6 6 5.2 10.6.6 12 2z'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: left 12px center;
}
:root[data-theme="light"] .hp-select { background-color: #f4f7fd; }
.hp-select option { background: #16223f; color: var(--text); }
:root[data-theme="light"] .hp-select option { background: #fff; color: #1a2544; }

.hp-steps {
    text-align: start; margin: 0 0 18px; padding: 0; list-style: none; counter-reset: hp;
    display: flex; flex-direction: column; gap: 10px;
}
.hp-steps li {
    position: relative; counter-increment: hp; padding-inline-start: 38px;
    font-size: .93rem; line-height: 1.55; color: var(--text); min-height: 26px;
    display: block; padding-block: 2px;
}
.hp-steps .hp-u {
    display: inline-block; unicode-bidi: isolate; direction: ltr;
    padding: 1px 6px; border-radius: 6px; font-weight: 700; font-size: .88em;
    color: var(--accent); background: rgba(255, 176, 86, 0.12);
    border: 1px solid rgba(255, 176, 86, 0.28); word-break: break-all;
}
.hp-steps li::before {
    content: counter(hp); position: absolute; inset-inline-start: 0; top: 0;
    width: 26px; height: 26px; display: grid; place-items: center;
    border-radius: 50%; font-family: var(--font-head); font-weight: 700; font-size: .85rem;
    color: #241500; background: linear-gradient(180deg, #ffb056, var(--accent));
}

.hp-url { display: flex; gap: 8px; }
.hp-url-input {
    flex: 1; min-width: 0; padding: 10px 12px; direction: ltr; text-align: left;
    font: inherit; font-size: .85rem; color: var(--text);
    background: rgba(0, 0, 0, 0.22); border: 1px solid var(--card-border); border-radius: 10px;
}
:root[data-theme="light"] .hp-url-input { background: #f4f7fd; }
.hp-copy {
    flex: none; padding: 10px 16px; border-radius: 10px; cursor: pointer;
    font: inherit; font-weight: 700; font-size: .85rem; color: var(--text);
    background: rgba(255, 255, 255, 0.06); border: 1px solid var(--card-border);
    transition: background .12s, border-color .12s, color .12s;
}
.hp-copy:hover { border-color: var(--accent); color: var(--accent); }
.hp-copy.is-done { color: #35c47f; border-color: #35c47f; }

@media (max-width: 480px) {
    .hp-url { flex-direction: column; }
    .hp-copy { width: 100%; }
}
