/* =====================================================================
   DvirTech — מערכת העיצוב של האתר
   =====================================================================
   גרסת עיצוב בהירה, לפי המוקאפ של החנות. הגרסה הקודמת (הכהה) נשמרה
   כ-style-OLD-backup.css.

   מה השתנה ומה לא:
   • כל שמות המחלקות נשמרו בדיוק. אף קובץ JS לא צריך להשתנות בגללי.
   • ההדר הפך מנייבי כהה ללבן, עם חיפוש ואייקונים — כמו במוקאפ.
   • הרקע הכהה נשאר רק במקומות שבהם הוא "מסך של מכשיר": הדמיית המחשב
     בבונה, הבאנרים השיווקיים והפוטר.
   • ⚠️ שינוי מודע: ה-headbar כבר לא נעול ל-direction:ltr. במוקאפ הלוגו
     יושב מימין, כמקובל ב-RTL, ולכן ההדר עוקב אחרי כיוון המסמך: לוגו
     מימין בעברית, משמאל באנגלית.
===================================================================== */

:root{
  /* --- נייבי המותג. השמות navy-* נשמרו כי קוד קיים מסתמך עליהם --- */
  --navy-950:#0B2C4D;
  --navy-900:#12395F;
  --navy-800:#1B4A76;

  --bg:#F5F8FC;
  --surface:#FFFFFF;
  --surface-2:#F7FAFD;
  --ink:#0E2A47;
  --ink-soft:#5F7590;
  --line:#E2EAF2;
  --line-soft:#EDF2F8;

  --blue:#1B6FE0;
  --blue-dark:#0E4C97;
  --blue-soft:#E9F2FE;
  --teal:#2FC4B0;
  --teal-dark:#0E9C8A;
  --grad: linear-gradient(100deg, var(--blue) 0%, var(--teal) 100%);

  --amber:#D9822B;
  --amber-bg:#FFF6EA;
  --red:#E0453F;
  --red-bg:#FDEEEE;
  --wa:#10A37F;
  --wa-2:#0C8467;

  --radius:16px;
  --radius-sm:11px;
  --shadow-s:0 2px 10px rgba(14,42,71,.05);
  --shadow:0 8px 30px rgba(14,42,71,.08);
  --shadow-lg:0 22px 56px rgba(14,42,71,.14);
}

*{box-sizing:border-box}
/* min-height + flex-column + footer{margin-top:auto} = "sticky footer".
   בלי זה, בדף שהתוכן שלו קצר מגובה החלון (בולט במסך אנכי/portrait, אבל
   קורה גם ב-thanks/terms) הפוטר נעצר איפה שהתוכן נגמר — באמצע המסך —
   ומתחתיו נשאר שטח ריק בצבע הרקע. עכשיו הוא תמיד נדחף לתחתית. */
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Heebo',sans-serif;line-height:1.65;
  min-height:100vh;display:flex;flex-direction:column}
/* פריט flex מקבל min-width:auto ולכן מסרב להתכווץ מתחת לרוחב התוכן
   שלו. אפס מאפשר לרצועות הגלילה האופקיות (.rowscroll) להתכווץ כרגיל
   במקום לדחוף את הדף לרוחב. */
body > *{min-width:0}
body > footer{margin-top:auto}
/* ריווח מהתוכן שמעל, בלי לשבור את ה-sticky footer: כשהתוכן קצר
   margin-top:auto מנצח וממילא נוצר רווח גדול יותר; padding נוסף רק
   כשהדף ארוך והפוטר צמוד לתוכן. */
body > footer.footer-top-gap{padding-top:44px}
h1,h2,h3,h4,.brand-font{font-family:'Rubik',sans-serif;color:var(--ink)}
/* width:100% נדרש כי .wrap הוא לפעמים פריט flex ישיר של body (ראו
   ה-sticky footer למטה), ושם ה-margin:0 auto מבטל את ה-stretch — בלי
   רוחב מפורש הוא נצמד ל-max-width שלו וגולש מהחלון. עם width:100%
   הוא נשאר min(1200px, רוחב האב) בכל הקשר. */
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}

/* ⚠️ "תמונות להמחשה בלבד" — תנאי מפורש של הספק לשימוש בתמונות המוצר
   שלו, ולא קישוט. מוגדר כאן ולא ב-products.css כי דף הבית טוען רק את
   style.css. מכוון להיות קריא אך לא להתחרות במוצר: קטן, אפור, בשוליים.
   :empty מסתיר אותו כשאין בדף אף תמונת מוצר אמיתית. */
.img-note{margin:0 2px 12px;font-size:11.5px;line-height:1.5;
  color:var(--ink-soft,#6B7A8D)}
.img-note:empty{display:none;margin:0}
img{max-width:100%;display:block}
a{color:inherit}

/* איור מהספרייה (sprite.js). ברירת מחדל 1em כדי שאייקון שמישהו שכח
   לתת לו מידה מפורשת לא ייפול לגודל ברירת המחדל של הדפדפן ל-SVG לא
   ממודד (300×150) — זה קרה בפועל לכפתור הירו וניפח אותו לענק. כל
   שימוש עם מידה משלו (למשל .trust-strip .ui-ic) פשוט דורס את זה. */
.ic{width:1em;height:1em;display:block;flex:none}
[class*="ui-"] use,.ui-ic{fill:none}
.ui-ic{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- header ---------- */
header{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.headbar{display:flex;align-items:center;gap:20px;padding:10px 0}
/* הלוגו: sprite.js מחליף את ה-<img> המקורי (הדמיה על קיר משרד, לא
   נכס גרפי נקי) בשרטוט וקטורי (#dvt-logo, viewBox 360×104). הגובה כאן
   קובע את הגודל; הרוחב נגזר לבד מיחס הממדים של ה-viewBox. */
.brand{display:flex;align-items:center;gap:10px;flex:none;text-decoration:none;transition:opacity .15s}
.brand:hover{opacity:.82}
/* הלוגו האמיתי (575×420, ~1.37:1) הרבה יותר מרובע מהשרטוט הווקטורי
   הזמני (3.46:1) שעליו כוילו המידות האלה קודם — לכן חוזרים ל-64px
   שהיה גובה הלוגו המקורי בעיצוב האתר, לפני שהיה צריך לצמצם אותו כדי
   להכיל את הבאנר הרחב של הווקטור. */
.brand-logo{height:64px;width:auto;display:block}
.footer-logo{height:40px;width:auto;display:block;margin:0 auto 12px}
.footer-grid .footer-logo{margin:0 0 12px}

nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
nav a,.nav-drop-btn{color:var(--ink);text-decoration:none;font-size:14px;font-weight:500;transition:.15s;position:relative;padding-bottom:2px}
nav a::after,.nav-drop-btn::after{content:"";position:absolute;inset-inline:0;bottom:-2px;height:2px;border-radius:2px;background:var(--blue);transform:scaleX(0);transition:transform .18s}
nav a:hover,.nav-drop-btn:hover{color:var(--blue)}
nav a:hover::after,.nav-drop-btn:hover::after{transform:scaleX(1)}
nav a.active{color:var(--blue);font-weight:700}
nav a.active::after{transform:scaleX(1)}
/* הדגשה עדינה ל"למה DvirTech?" — טקסט בגרדיאנט המותג, בלי גימיקים.
   דרישת דביר: שיבלוט בתפריט אבל בלי לכער/להפוך את ההדר לצעקני. */
nav a.nav-accent{font-weight:700;background:var(--grad);
  -webkit-background-clip:text;background-clip:text;color:transparent}
nav a.nav-accent:hover{filter:brightness(1.12)}
@media(max-width:1000px){nav{display:none}}

/* חיפוש + אייקוני פעולה בהדר (דף הבית) */
.head-search{flex:1;max-width:330px;position:relative;margin-inline-start:auto}
.head-search input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 38px 10px 14px;
  font-family:'Heebo',sans-serif;font-size:13.5px;background:var(--surface-2);color:var(--ink);transition:.15s}
.head-search input:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(27,111,224,.12)}
.head-search .ui-ic{position:absolute;inset-inline-start:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--ink-soft)}

/* ---------- תפריט תוצאות חיפוש נפתח (site-search.js) ---------- */
/* רחב יותר מהתיבה עצמה בכוונה — שם מוצר + מחיר לא מצטמצמים ל-330px */
.site-search-panel{
  display:none;position:absolute;top:calc(100% + 8px);inset-inline-start:0;width:max(100%,380px);
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);
  padding:6px;z-index:80;max-height:70vh;overflow-y:auto;
}
.site-search-panel.show{display:block}
.site-search-row{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 10px;border-radius:8px;text-decoration:none;color:var(--ink)}
.site-search-row:hover{background:var(--surface-2)}
.site-search-row .ssr-name{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  flex:1;min-width:0}
/* תמונת המוצר בשורת החיפוש. ⚠️ flex:none — בלי זה השם הארוך מועך
   אותה לרוחב אפס והשורה נראית כאילו אין תמונה. */
.site-search-row .ssr-thumb{position:relative;flex:none;width:36px;height:36px;border-radius:9px;
  background:var(--surface-2);overflow:hidden;display:grid;place-items:center}
.site-search-row .ssr-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  background:#fff}
.site-search-row .ssr-ph{display:grid;place-items:center;width:100%;height:100%}
.site-search-row .ssr-ph svg{width:18px;height:18px;color:var(--ink-soft);fill:none;stroke:currentColor;stroke-width:1.6}
/* התמונה עלתה — ממלא המקום מפנה מקום כדי שלא יציץ מבעד ל-PNG שקוף */
.site-search-row .ssr-thumb.on .ssr-ph{opacity:0}
.site-search-row .ssr-meta{display:flex;align-items:center;gap:8px;flex:none}
.site-search-row .ssr-cat{font-size:11px;color:var(--ink-soft);background:var(--surface-2);border-radius:999px;padding:2px 8px}
.site-search-row .ssr-price{font-size:13px;font-weight:800;color:var(--blue);font-family:'Rubik',sans-serif;white-space:nowrap}
.site-search-all{display:block;text-align:center;margin-top:4px;padding:10px;border-radius:8px;
  font-size:13px;font-weight:700;color:var(--blue);text-decoration:none;border-top:1px solid var(--line)}
.site-search-all:hover{background:var(--blue-soft)}
.site-search-empty{padding:16px 10px;text-align:center;font-size:13px;color:var(--ink-soft)}
.head-acts{display:flex;align-items:center;gap:6px;flex:none}
.head-ic{width:38px;height:38px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);
  display:grid;place-items:center;position:relative;cursor:pointer;color:var(--ink);transition:.15s}
.head-ic:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}
.head-ic .ui-ic{width:19px;height:19px}
.head-ic-badge{position:absolute;top:-6px;inset-inline-end:-6px;background:var(--blue);color:#fff;font-size:10.5px;
  font-weight:800;min-width:19px;height:19px;border-radius:10px;display:grid;place-items:center;padding:0 4px;border:2px solid #fff}

.lang-switch{display:flex;gap:2px;background:var(--surface-2);border:1px solid var(--line);border-radius:20px;padding:3px;flex:none;margin-inline-start:auto}
.head-search ~ .lang-switch,.head-acts ~ .lang-switch{margin-inline-start:0}
.lang-btn{border:none;background:none;color:var(--ink-soft);font-size:12px;font-weight:600;padding:6px 12px;border-radius:16px;cursor:pointer;transition:.15s;font-family:'Heebo',sans-serif}
.lang-btn.active{background:var(--grad);color:#fff}
.lang-btn:hover:not(.active){color:var(--blue)}

/* ---------- hero ---------- */
/* הירו הפך מרקע כהה לרקע לבן עם "גל" כחול. הטקסט שהיה לבן חייב היה
   להפוך לכהה — זו הסיבה שהצבעים כאן מפורשים ולא יורשים. */
.hero{position:relative;background:#fff;overflow:hidden;padding:64px 0 50px;text-align:center}
.hero-wave{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.hero h1{font-size:clamp(30px,4.4vw,48px);font-weight:800;margin:0 0 16px;color:var(--ink);position:relative;line-height:1.22;letter-spacing:-.01em}
.hero h1 .g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--ink-soft);font-size:16.5px;max-width:620px;margin:0 auto;position:relative}

/* ירו דף הבית: התמונה היא הרקע של הסקשן כולו, מקצה לקצה, והטקסט
   יושב מעליה. */
.hero-full{position:relative;overflow:hidden;padding:0;background:#F4F5FB}
.hero-full .hero-photo{
  position:absolute;inset:0;z-index:0;
  background-image:url("images/hero-products.jpg");
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
/* הדהייה שמונעת את מראה "התמונה החתוכה שהודבקה": הצבע כאן נמדד בפועל
   מקצוות הקובץ (#F4F5FB) והוא כמעט זהה לרקע האתר (--bg ‎#F5F8FC), ולכן
   המעבר בין התמונה לדף לא נראה כקו תפר. הדהייה חזקה למטה, שם התמונה
   נפגשת עם פס היתרונות הלבן, וקלה מאוד למעלה מתחת להדר. */
.hero-full .hero-photo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(244,245,251,.55) 0%, rgba(244,245,251,0) 18%,
                            rgba(245,248,252,0) 68%, var(--bg) 100%);
}
.hero-full .hero-in{
  position:relative;z-index:1;
  display:flex;align-items:center;
  min-height:clamp(340px,34vw,470px);
  /* פס היתרונות צף 26px מעל תחתית הירו (‎.trust-strip{margin-top:-26px}).
     בלי השוליים האלה כפתור ה-CTA נכנס בדיוק מתחתיו במסכים גבוהים־צרים
     (מסך אנכי) ונראה "בתוך" הפס. 56px = 26 של החפיפה + מרווח נשימה. */
  padding-bottom:56px;
  /* direction:ltr מקבע את הטקסט לצד השמאלי *הפיזי* בכל שפה — שם
     התמונה ריקה (רק הגל), בעוד שהמוצרים יושבים בחציה הימני. אילו
     היינו נשענים על flex-start בדף RTL, הטקסט היה נוחת ימינה בדיוק
     על גבי המסך והמארז. הטקסט עצמו מוחזר ל-rtl בשורה הבאה. */
  direction:ltr;
}
.hero-full .hero-copy{direction:rtl;max-width:430px}
.hero-copy h1{margin-bottom:16px}
/* ⚠️ `margin-inline:auto` ולא רק `text-align`. הפסקה צרה מהמכל
   (32ch מול 430px), ובלי שוליים אוטומטיים הבלוק נצמד לקצה
   ההתחלה — שב-RTL הוא ימין. הטקסט נראה מרוכז, הבלוק לא היה. */
.hero-copy .hero-lede{font-size:17.5px;color:var(--ink-soft);margin:0 auto 30px;max-width:32ch;line-height:1.65}
/* .btn ברירת המחדל היא width:100% (נכון לכפתורים בתוך כרטיס/סיידבר),
   אבל כאן הכפתור יושב לצד טקסט וצריך רק לעטוף את התוכן שלו.
   ⚠️ הסלקטור מפורש כ-".hero-copy .hero-cta" (במקום ".hero-cta" בלבד)
   כדי לנצח את ".btn{width:100%}" בקסקייד: לשני הסלקטורים אותה
   ספציפיות (מחלקה בודדת), ו-.btn מוגדר בהמשך הקובץ. */
.hero-copy .hero-cta{width:auto;padding:13px 26px}

/* מתחת ל-820px אין מספיק רוחב גם לטקסט וגם למוצרים באותה שורה, ולכן
   התמונה מוסטת ימינה (המוצרים נשארים בקדר) והטקסט מקבל שכבת קריאוּת
   לבנה-שקופה מעליה במקום להתנגש בה. */
@media(max-width:820px){
  .hero-full .hero-photo{background-position:72% center}
  /* ⚠️ קודם הבד היה קלוש מדי בדיוק בפס האמצעי (‎.35→.25) — שם יושב
     ה-lede האפור, ומאחוריו המסך הכחול הבוהק. התוצאה: הכיתוב כמעט לא
     נקרא בנייד (דיווח של דביר עם צילום). מחזקים את הפס האמצעי כדי
     שלטקסט יהיה בסיס קריא, בלי להסתיר את התמונה לגמרי. */
  .hero-full .hero-photo::after{
    background:
      linear-gradient(180deg, rgba(244,245,251,.90) 0%, rgba(244,245,251,.64) 38%,
                              rgba(245,248,252,.42) 66%, var(--bg) 100%);
  }
  .hero-full .hero-in{min-height:400px}
  .hero-full .hero-copy{max-width:none}
  /* הכיתוב עצמו: כהה יותר + הילה לבנה עדינה, כדי לבלוט מעל התמונה בלי
     להוסיף "קופסה" שתשבור את המראה של טקסט הצף על הצילום. */
  .hero-copy h1{text-shadow:0 1px 10px rgba(255,255,255,.85), 0 0 2px rgba(255,255,255,.7)}
  .hero-copy .hero-lede{color:var(--ink);font-weight:500;
    text-shadow:0 1px 6px rgba(255,255,255,.9), 0 0 2px rgba(255,255,255,.8)}
}

.trust-bar{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trust-wrap{display:flex;justify-content:center;gap:36px;flex-wrap:wrap;padding:18px 0;font-size:13px;color:var(--ink-soft)}
.trust-wrap span b{color:var(--blue);font-weight:700}

/* פס היתרונות של דף הבית — הכרטיס הלבן שצף מעל הירו */
.trust-strip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
  display:grid;grid-template-columns:repeat(5,1fr);position:relative;z-index:2;margin:-26px 0 0}
.trust-strip>div{display:flex;align-items:center;gap:13px;padding:20px 18px;position:relative}
.trust-strip>div + div::before{content:"";position:absolute;inset-inline-start:0;top:22%;height:56%;width:1px;background:var(--line)}
.trust-strip .ui-ic{width:30px;height:30px;color:var(--blue);flex:none}
.trust-strip b{display:block;font-size:13.5px;font-weight:700;color:var(--ink);font-family:'Rubik',sans-serif}
.trust-strip span{display:block;font-size:12px;color:var(--ink-soft)}
@media(max-width:900px){
  .trust-strip{grid-template-columns:repeat(2,1fr);margin-top:20px}
  .trust-strip>div + div::before{display:none}
  .trust-strip>div{border-top:1px solid var(--line)}
  .trust-strip>div:nth-child(-n+2){border-top:0}
}
@media(max-width:520px){ .trust-strip{grid-template-columns:1fr} .trust-strip>div:nth-child(2){border-top:1px solid var(--line)} }

/* ---------- כותרת סקשן + קרוסלה ---------- */
.sec-head{display:flex;align-items:center;gap:12px;margin:44px 0 4px}
.sec-head h2{font-size:20px;font-weight:800;margin:0;display:flex;align-items:center;gap:9px}
.sec-head h2 .ui-ic{width:22px;height:22px;color:var(--blue)}
.sec-head .more{margin-inline-start:auto;font-size:13px;font-weight:700;color:var(--blue);text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.sec-head .more:hover{text-decoration:underline}
.sec-head .more .ui-ic{width:14px;height:14px}

/* רצועה נגללת אופקית. הכפתורים בקצוות מופיעים רק בדסקטופ. */
.carousel{position:relative}
.rowscroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);gap:14px;
  overflow-x:auto;padding:16px 2px 22px;scroll-behavior:smooth;scrollbar-width:thin}
.rowscroll::-webkit-scrollbar{height:6px}
.rowscroll::-webkit-scrollbar-thumb{background:#CFDCEA;border-radius:3px}
.car-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:38px;height:38px;border-radius:50%;
  background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer;display:grid;place-items:center;color:var(--ink)}
.car-btn:hover{color:var(--blue);border-color:var(--blue)}
.car-btn .ui-ic{width:17px;height:17px}
.car-prev{inset-inline-start:-16px}
.car-next{inset-inline-end:-16px}
/* ה-path של החץ מצייר חץ שמאלה. SVG לא מתהפך לבד ב-RTL, ולכן הכיוון
   נקבע כאן במפורש: החץ תמיד מצביע החוצה מהרצועה, לכיוון שאליו גוללים. */
[dir="ltr"] .car-next .ui-ic{transform:scaleX(-1)}
[dir="rtl"] .car-prev .ui-ic{transform:scaleX(-1)}
@media(max-width:1000px){.car-btn{display:none}}

/* ---------- כרטיס קטגוריה ---------- */
.cat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 12px;
  box-shadow:var(--shadow-s);
  text-align:center;text-decoration:none;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s,border-color .2s;display:block}
.cat-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:#C9DEF8}
.cat-card .cat-art{height:96px;border-radius:12px;background:linear-gradient(155deg,#F3F8FF,#EFFBF8);
  display:grid;place-items:center;margin-bottom:11px;overflow:hidden}
.cat-card .cat-art svg{width:60px;height:60px}
/* תמונת קטגוריה אמיתית (מוגדרת ב-HOME_CAT_IMAGE ב-home.js) גוברת על
   האיור — אותו כלל שחל על תמונת מוצר בכרטיסי החנות. */
.cat-card .cat-art img{width:100%;height:100%;object-fit:contain;padding:11px}
.cat-card b{font-size:13px;font-weight:600;color:var(--ink);font-family:'Heebo',sans-serif}

/* ---------- באנרים שיווקיים ---------- */
/* הכותרת, המשפט והכפתור צרובים בתוך קובץ התמונה עצמו, ולכן הבאנר הוא
   פשוט <img> בתוך קישור. width:100% + height:auto = היחס נשמר תמיד
   והתמונה לעולם לא נחתכת — לא בדסקטופ ולא בנייד. */
.promo-stack{display:grid;gap:14px;margin:16px 0 6px}
.promo-banner{display:block;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--line);background:#0B1A2C;line-height:0;
  transition:transform .2s,box-shadow .2s}
.promo-banner:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.promo-banner img{display:block;width:100%;height:auto}
.promo-pair{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:820px){ .promo-pair{grid-template-columns:1fr 1fr} }

.promo-row{display:grid;grid-template-columns:1fr;gap:14px;margin:14px 0 6px}
@media(min-width:900px){ .promo-row{grid-template-columns:1fr 1.35fr 1fr} }
.promo{border-radius:var(--radius);padding:24px 26px;display:flex;align-items:center;gap:16px;min-height:150px;
  text-decoration:none;overflow:hidden;position:relative;transition:transform .2s,box-shadow .2s}
.promo:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.promo-txt{position:relative;z-index:1}
.promo b{display:block;font-family:'Rubik',sans-serif;font-size:19px;font-weight:800;margin-bottom:5px}
.promo span{display:block;font-size:13.5px;margin-bottom:14px;opacity:.9}
/* 🔴 ==================== תיקון גלובלי: תמונות חתוכות ====================
   פריט בתוך grid/flex מקבל `min-height:auto` כברירת מחדל — כלומר "אל
   תקטן מגודל התוכן". תמונת מוצר 600×500 שנכנסת למסגרת רחבה ונמוכה
   מקבלת גובה תוכן גדול מהמסגרת, `min-height` **דורס את `height:100%`**,
   האלמנט גולש, ו-`overflow:hidden` חותך את התחתית.

   ⚠️ `object-fit:contain` לא מונע את זה — הוא מסדר את הביטמאפ *בתוך*
   תיבת האלמנט ולא מונע מהתיבה לגלוש. זו הסיבה שהתמונות נראו חתוכות
   למרות ש-contain הוגדר נכון בכל המסגרות.

   ⚠️ הבאג "חוזר" אחרי סנכרון ספק כי הוא תלוי בגודל התמונה: כשהתמונות
   היו לוגו w_100 גודל התוכן היה קטן מהמסגרת ולא היה מה לחתוך. ברגע
   שהסנכרון החליף אותן ב-600×500 אמיתיות הוא נחשף בכל האתר בבת אחת.
   **כל מסגרת תמונה חדשה שנוסיף חייבת לרשת את הכלל הזה.** */
.cat-card .cat-art img,
.deal-art img,
.opt .thumb img,
.slot-icon-wrap img,
.product-card img{min-width:0;min-height:0}

.promo .go{display:inline-block;font-size:12.5px;font-weight:700;padding:9px 20px;border-radius:9px}
/* תג ההטבה בכרטיס הבונה. קטן ומאופק בכוונה — הוא צריך להיקרא כעובדה
   על השירות ולא כמדבקת מבצע. הסימן ✓ נוסף ב-CSS ולא ב-HTML כדי שהוא
   לא ייכנס לתרגום ולא ישוכפל בין data-he ל-data-en. */
.promo .promo-badge{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;
  font-size:11.5px;font-weight:700;letter-spacing:.2px;padding:5px 11px;margin-bottom:2px;
  border-radius:999px;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.34);color:#fff;backdrop-filter:blur(2px)}
.promo .promo-badge::before{content:"✓";font-weight:900;font-size:11px;opacity:.95}
.promo--light .promo-badge{background:#EAF3FF;border-color:#C9DEF8;color:var(--blue)}
.promo svg.promo-art{width:96px;height:96px;flex:none;margin-inline-start:auto;position:relative;z-index:1}

/* כהה — פה הכהה עובד, כי הבאנר הוא "תמונה" ולא ממשק */
/* באנר עם צילום ברקע. התמונה יושבת בצד הפיזי שממנו הגיעה (ימין), ומעליה
   גרדיאנט כהה שמתחזק לכיוון הטקסט — כך הכותרת נשארת קריאה בלי תלות
   בבהירות הצילום עצמו, וגם אם התמונה תוחלף בעתיד. */
/* ⚠️ הסלקטור כפול (.promo.promo--photo) בכוונה: ‎.promo--dark/--blue
   מוגדרים בהמשך הקובץ ומשתמשים ב-shorthand‏ background, שהיה דורס את
   התמונה. שתי מחלקות = ספציפיות גבוהה יותר, וכך הצילום מנצח. */
.promo.promo--photo{
  background-image:
    linear-gradient(to left, rgba(8,18,33,.05) 0%, rgba(8,18,33,.30) 38%, rgba(8,18,33,.80) 72%, rgba(8,18,33,.90) 100%),
    var(--promo-img);
  background-size:auto, cover;
  background-position:center, center right;
  background-repeat:no-repeat, no-repeat;
  background-color:#0B1A2C;
  color:#DCE8F4;
}
.promo.promo--photo b{color:#fff}
.promo.promo--photo .promo-txt{max-width:64%;position:relative;z-index:1}
[dir="ltr"] .promo.promo--photo{
  background-image:
    linear-gradient(to right, rgba(8,18,33,.05) 0%, rgba(8,18,33,.30) 38%, rgba(8,18,33,.80) 72%, rgba(8,18,33,.90) 100%),
    var(--promo-img);
  background-position:center, center left;
}

.promo--dark{background:radial-gradient(ellipse 70% 90% at 15% 20%,rgba(47,196,176,.18),transparent 60%),
  linear-gradient(135deg,#132C4D,#1D1440);color:#DCE8F4}
.promo--dark b{color:#fff}
.promo--dark .go{background:#fff;color:var(--ink)}
.promo--blue{background:radial-gradient(ellipse 60% 90% at 85% 15%,rgba(47,196,176,.2),transparent 62%),
  linear-gradient(135deg,#0B2C4D,#12395F);color:#C8DCEC}
.promo--blue b{color:#fff}
.promo--blue .go{background:var(--grad);color:#fff}
.promo--light{background:linear-gradient(140deg,#EEF5FE,#EAF8F5);color:var(--ink-soft);border:1px solid var(--line)}
.promo--light b{color:var(--blue-dark)}
.promo--light .go{background:#fff;color:var(--blue);border:1px solid #C9DEF8}

/* אלמנטים בהדר שממתינים לפיצ'ר עתידי (כרגע: אייקון חשבון/התחברות).
   נשארים בקוד כדי שאפשר יהיה להחזיר אותם בשורה אחת. */
.head-ic--hidden{display:none !important}

/* ---------- משוב "נוסף לעגלה" ---------- */
/* הכדור שטס מהמוצר לעגלה. position:fixed כי המסלול מחושב מקואורדינטות
   מסך (getBoundingClientRect), ו-pointer-events:none כדי שלא יחסום קליק. */
.cart-fly{position:fixed;z-index:9999;width:16px;height:16px;margin:-8px 0 0 -8px;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 32% 30%, #7CC4FF, var(--blue,#1B6FE0));
  box-shadow:0 0 0 4px rgba(27,111,224,.18), 0 6px 16px rgba(27,111,224,.45)}

/* קפיצה קצרה של אייקון העגלה ברגע שהכדור מגיע */
@keyframes cartBump{
  0%{transform:scale(1)} 35%{transform:scale(1.28)}
  60%{transform:scale(.94)} 100%{transform:scale(1)}
}
.cart-bump{animation:cartBump .42s cubic-bezier(.34,1.56,.64,1)}

/* תג "+N" שעולה ונמוג מעל העגלה */
@keyframes cartPlus{
  0%{opacity:0;transform:translate(-50%,4px) scale(.7)}
  22%{opacity:1;transform:translate(-50%,-10px) scale(1)}
  75%{opacity:1;transform:translate(-50%,-14px) scale(1)}
  100%{opacity:0;transform:translate(-50%,-26px) scale(.9)}
}
.cart-plus{position:absolute;left:50%;top:-6px;transform:translate(-50%,0);
  background:var(--blue,#1B6FE0);color:#fff;font-family:'Rubik',sans-serif;font-weight:800;
  font-size:11.5px;line-height:1;padding:4px 8px;border-radius:999px;white-space:nowrap;
  pointer-events:none;z-index:5;box-shadow:0 4px 12px rgba(27,111,224,.4);
  animation:cartPlus 1.1s ease-out forwards}

/* בהעדפת "פחות אנימציות": בלי תנועה, אבל התג עדיין נראה כשנייה —
   אחרת הלקוח לא מקבל שום משוב שהמוצר נוסף. */
@media(prefers-reduced-motion:reduce){
  .cart-bump{animation:none}
  .cart-plus{animation:none;opacity:1;transform:translate(-50%,-12px)}
}

/* ---------- כרטיס מבצע בדף הבית ---------- */
.deal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;
  box-shadow:var(--shadow-s);
  display:flex;flex-direction:column;position:relative;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.deal:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#C9DEF8}
/* ⚠️ הרקע כאן הוא הגרדיאנט ולא ‎--surface-2 האפור. תמונת מוצר מוצגת
   ‎contain ולכן כמעט תמיד נשארים שוליים סביבה — ועל אפור שטוח השוליים
   האלה נקראים כ"התמונה לא נטענה עד הסוף", בעוד שעל הגרדיאנט התכלכל
   של שאר תיבות התמונה באתר הם נקראים כמסגרת. עד עכשיו התיקון הזה היה
   משוכפל פעמיים בחוץ (‎.deal-art ב-products.css והזרקת הכללים ב-home.js)
   כי כאן נשאר האפור; מקור אחד עדיף על שני עוקפים. */
.deal-art{height:110px;border-radius:12px;background:linear-gradient(155deg,#F3F8FF,#EFFBF8);display:grid;place-items:center;margin-bottom:12px;overflow:hidden}
.deal-art svg{width:70px;height:70px}
.deal-art img{width:100%;height:100%;object-fit:contain;padding:12px}
.deal-cat{font-size:11px;color:var(--ink-soft);margin-bottom:3px}
.deal-name{font-size:13px;font-weight:600;color:var(--ink);line-height:1.45;min-height:38px}
.deal-foot{margin-top:auto;padding-top:11px;display:flex;align-items:flex-end;justify-content:space-between;gap:8px}
.deal-price{font-family:'Rubik',sans-serif;font-weight:800;font-size:16px;color:var(--blue)}
.deal-old{font-size:11.5px;color:#A6B4C6;text-decoration:line-through;display:block;line-height:1.3}
/* מחיר קודם (oldPrice מהגיליון) + תג אחוז ההנחה על כרטיס המבצע */
.deal-was{font-size:12px;color:#9AA8BA;text-decoration:line-through;font-weight:600}
.deal-badge{position:absolute;inset-inline-start:10px;top:10px;z-index:2;
  background:var(--red,#E4322B);color:#fff;font-family:'Rubik',sans-serif;font-weight:800;
  font-size:11.5px;letter-spacing:.2px;padding:4px 9px;border-radius:999px;
  box-shadow:0 2px 8px rgba(228,50,43,.35)}
.deal-off{background:var(--red-bg);color:var(--red);font-size:11px;font-weight:800;padding:4px 8px;border-radius:8px;
  font-family:'Rubik',sans-serif;border:1px solid #F6CFCE}
.deal-tag{position:absolute;top:12px;inset-inline-start:12px;font-size:9.5px;font-weight:800;padding:4px 10px;
  border-radius:20px;background:var(--grad);color:#fff;font-family:'Rubik',sans-serif}

/* ---------- פס יצרנים ---------- */
/* כותרת פס המותגים.
   🔴 **לא קישוט — היא החלק שמונע הטעיה.** פס לוגואים בלי כותרת
   נקרא כמו "שותפים עסקיים"; "מותגים שאנו מוכרים" אומר בדיוק מה
   שהוא. ראה ההערה ב-home.html ואת §14 בתקנון. */
.brand-strip-h{font-family:'Rubik',sans-serif;font-size:15px;font-weight:800;
  color:var(--ink-soft,#5F7590);text-align:center;margin:0 0 16px;
  letter-spacing:.2px}
/* 🔴 **הלוגו מוסתר עד שהוא באמת נטען.** ראה ההסבר ב-home.html:
   הסתרת הטקסט כברירת מחדל הותירה פס ריק כששרת החזיר 200 לקובץ
   חסר. הכיוון הזה נכשל תמיד לצד הבטוח — טקסט.

   ✅ **עיגולים לבנים, לפי הבקשה של דביר.** תמונת המקור החדשה על
   רקע לבן אפשרה להשקיף את הרקע (הקודמת, על אפור, לא — הנשר של
   GIGABYTE היה באותו גוון). ראה tools/crop-brands.py.
   ⚠️ העיגול הוא על ה-`<a>` ולא על התמונה: תמונה שקופה בתוך עיגול
   לבן נותנת את המראה הנקי, ועיגול על התמונה עצמה היה גוזם לוגו
   רחב כמו "Western Digital". */
/* 🔴 **שורה אחת שנגללת, לא שתי שורות עקומות — 23.08.**
   דביר: "האתר כן מעודכן כולל התמונות אבל זה לא נראה טוב. צריך אולי
   ליצור גלגלת כמו שיש במבצעים שאפשר להחליק, או להקטין את הלוגואים."

   13 מותגים ב-88px נדחסו ל-10+3 — שורה שנייה עם שלושה בודדים
   ומרווח ריק ענק. שתי הבעיות נפתרות יחד: **בלי גלישה** ועם גלילה
   אופקית, כמו רצועת המבצעים.
   ⚠️ `flex-wrap:nowrap` הוא העיקר. בלעדיו ההקטנה לבדה רק דוחסת
   את השורה השנייה במקום לבטל אותה. */
.brand-strip{
  gap:14px;flex-wrap:nowrap;justify-content:flex-start;
  overflow-x:auto;overflow-y:hidden;
  /* ⚠️ שלושת אלה אינם קישוט. רצועה שאינה גולשת בתוך הורה מצומצם
     קורסת לרוחב התוכן או דוחפת את העמוד לגלילה אופקית; שלושתם יחד
     כולאים את הגלילה **בתוך הרצועה** ולא בעמוד. */
  width:100%;max-width:100%;min-width:0;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.brand-strip::-webkit-scrollbar{height:6px}
.brand-strip::-webkit-scrollbar-thumb{background:var(--line,#E2EAF2);border-radius:99px}
/* ⚠️ `flex-shrink:0` — בתוך רצועה שאינה נגללת פלקס היה מכווץ את
   העיגולים לסגלגלים במקום לאפשר גלילה. */
.brand-strip a.has-logo{flex:0 0 auto;scroll-snap-align:center}
.brand-strip a.has-logo{
  width:76px;height:76px;padding:0;border-radius:50%;
  background:#fff;border:1px solid var(--line,#E2EAF2);
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(14,42,71,.06);
  transition:transform .15s,box-shadow .15s;
}
.brand-strip a.has-logo:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(14,42,71,.12);
}
/* ⚠️ 70%/42% ולא `width:100%`: הלוגואים שונים ביחס הרוחב-גובה
   (‏AMD רחב פי 3.7, intel כמעט ריבועי). `contain` בתוך תיבה
   מרובעת שומר על שניהם קריאים ובאותו משקל ויזואלי. */
.brand-logo-img{display:none;max-width:70%;max-height:42%;
  width:auto;height:auto;object-fit:contain}
.brand-strip a.has-logo .brand-logo-img{display:block}
.brand-strip a.has-logo span{display:none}
@media(max-width:600px){
  .brand-strip a.has-logo{width:64px;height:64px}
}
.brand-strip-note{font-size:11.5px;color:var(--ink-soft,#5F7590);text-align:center;
  margin:14px auto 0;max-width:640px;line-height:1.6;opacity:.85}

/* ⚠️ הכלל השני של הרצועה בקובץ. `justify-content` ו-`flex-wrap`
   כאן היו גוברים על הכלל למעלה (אותה ספציפיות, מאוחר יותר) —
   ולכן הם מיושרים אליו. */
.brand-strip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;margin:30px 0 10px;display:flex;align-items:center;justify-content:flex-start;gap:14px;flex-wrap:nowrap}
.brand-strip span,.brand-strip a{font-family:'Rubik',sans-serif;font-weight:800;font-size:15px;
  color:#93A6BC;letter-spacing:.5px;transition:color .15s,opacity .15s;text-decoration:none}
.brand-strip span:hover,.brand-strip a:hover{color:var(--blue)}
.brand-strip a:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:4px}

/* ---------- layout ---------- */
.builder{display:grid;grid-template-columns:1.6fr 1fr;gap:26px;padding:32px 0 70px;align-items:start}
@media(max-width:900px){.builder{grid-template-columns:1fr}}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-s);margin-bottom:20px}
.panel.locked{opacity:.55}
.panel h3{margin:0 0 6px;font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px}
.panel .sub{font-size:12.5px;color:var(--ink-soft);margin:0 0 16px}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;background:var(--grad);color:#fff;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0}

.lock-msg{font-size:13px;color:var(--ink-soft);background:var(--surface-2);border:1px dashed var(--line);border-radius:var(--radius-sm);padding:14px;text-align:center}

.filter-explainer{background:var(--blue-soft);border:1px solid #C7DDFC;color:var(--blue-dark);font-size:13px;padding:12px 16px;border-radius:var(--radius-sm);text-align:center;line-height:1.5}

.options{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px}
.opt{border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:13px 15px;cursor:pointer;transition:.15s;background:#fff;position:relative;overflow:hidden}
.opt:hover{border-color:var(--blue);transform:translateY(-1px);box-shadow:var(--shadow-s)}
.opt.selected{border-color:var(--blue);background:linear-gradient(180deg,#F1FBF9,#F0F6FE);box-shadow:0 0 0 2px rgba(27,111,224,.14)}
.opt .thumb{width:100%;height:74px;border-radius:8px;background:linear-gradient(155deg,#F3F8FF,#EFFBF8);display:flex;align-items:center;justify-content:center;margin-bottom:8px;overflow:hidden}
.opt .thumb img{height:100%;width:100%;object-fit:contain}
.opt .thumb svg{width:38px;height:38px;color:var(--blue)}
.opt .name{font-weight:600;font-size:13.5px;color:var(--ink)}
.opt .spec{font-size:11.5px;color:var(--ink-soft);margin-top:2px}
.opt .reason{font-size:10.5px;color:var(--ink-soft);margin-top:5px;line-height:1.4;background:var(--surface-2);border-radius:6px;padding:5px 7px}
.opt .price{font-size:13px;font-weight:700;color:var(--blue);margin-top:7px}
.opt.selected .price{color:var(--teal-dark)}

.badge-tag{display:inline-block;font-size:9px;font-weight:700;padding:3px 8px;border-radius:20px;margin-bottom:8px}
.badge-rec{background:var(--grad);color:#fff}
.badge-info{background:#E4F3FB;color:#1E6B8C}
.badge-works{background:var(--amber-bg);color:#92650F}
.badge-bad{background:var(--red-bg);color:#A33333}
.filter-note{font-size:11.5px;color:var(--teal-dark);background:#F0FDFA;border:1px solid #B7EFE5;padding:6px 10px;border-radius:8px;margin-bottom:10px;display:inline-block}

/* ---------- sidebar ---------- */
.sticky{position:sticky;top:88px}
/* בורר אופן המשלוח בדף התשלום. כרטיס לכל אפשרות ולא <select>, כדי
   שהמחיר והזמן האספקה יהיו גלויים בלי לפתוח רשימה — זו החלטה שמשפיעה
   על הסכום, ולקוח צריך לראות אותה. */
.ship-opts{display:grid;gap:8px}
.ship-opt{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 10px;
  border:1px solid var(--line);border-radius:12px;padding:11px 13px;cursor:pointer;
  transition:border-color .15s,background .15s}
.ship-opt:hover{border-color:var(--blue,#1B6FE0)}
.ship-opt.is-on{border-color:var(--blue,#1B6FE0);background:rgba(27,111,224,.05)}
.ship-opt input{margin:0;accent-color:var(--blue,#1B6FE0)}
.ship-opt .ship-name{font-weight:600;font-size:13.5px}
.ship-opt .ship-price{font-weight:700;font-size:13.5px;color:var(--blue,#1B6FE0);white-space:nowrap}
.ship-opt .ship-eta{grid-column:2;font-size:11.5px;color:var(--ink-soft);margin-top:-2px}

/* בורר השירותים הנוספים בדף התשלום. ⚠️ מקופל (<details>) ולא רשימה
   פתוחה — דביר ביקש מפורשות שזה "לא יתפוס את כל הדף": שבע שורות
   פתוחות מעל כפתור התשלום נקראות כמו מכשול, וזו תוספת אופציונלית ולא
   שלב בהזמנה. <details> מקורי ולא JS כדי שזה יעבוד גם עם מקלדת/קורא
   מסך בלי קוד נוסף. המונה בכותרת קיים כדי שגם כשסגור רואים מה נבחר. */
.svc-box{border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.svc-box[open]{border-color:#C7DDFC;background:var(--surface)}
.svc-summary{display:flex;align-items:center;gap:9px;padding:11px 13px;cursor:pointer;
  list-style:none;font-size:13.5px}
.svc-summary::-webkit-details-marker{display:none}
.svc-summary:hover .svc-title{color:var(--blue)}
.svc-title{font-weight:700}
.svc-count{margin-inline-start:auto;font-size:11.5px;color:var(--ink-soft)}
.svc-count.is-on{color:var(--blue);font-weight:700}
.svc-chev{font-size:13px;line-height:1;color:var(--ink-soft);transition:transform .15s}
.svc-box[open] .svc-chev{transform:rotate(180deg)}
.svc-hint{font-size:11.5px;color:var(--ink-soft);line-height:1.7;margin:0 13px 9px}
.svc-opts{display:grid;gap:6px;padding:0 13px 12px}
.svc-opt{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:3px 9px;
  background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 11px;
  cursor:pointer;transition:border-color .15s,background .15s}
.svc-opt:hover{border-color:var(--blue)}
.svc-opt.is-on{border-color:var(--blue);background:rgba(27,111,224,.05)}
.svc-opt input{margin:0;accent-color:var(--blue)}
.svc-opt .svc-name{font-size:13px;font-weight:600}
.svc-opt .svc-price{font-size:13px;font-weight:700;color:var(--blue);white-space:nowrap}
.svc-opt .svc-note{grid-column:2/-1;font-size:11px;color:var(--ink-soft);line-height:1.5}

.summary-list{list-style:none;padding:0;margin:0 0 14px}
.summary-list li{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13.5px;gap:8px}
.summary-list li .k{color:var(--ink-soft);flex-shrink:0}
.summary-list li .v{font-weight:600;text-align:left;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.summary-list li .v.empty{color:#BFCCDC;font-weight:400}
.qty-ctrl{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:20px;padding:2px 8px}
.qty-ctrl button{border:none;background:none;width:18px;height:18px;border-radius:50%;color:var(--blue);font-weight:700;cursor:pointer;font-size:13px;line-height:1}
.qty-ctrl button:disabled{opacity:.3;cursor:not-allowed}
.qty-ctrl span{font-size:12px;font-weight:700;min-width:12px;text-align:center}
.qty-limit-note{width:100%;font-size:9.5px;color:var(--ink-soft);font-weight:400;margin-top:2px}
.total-row{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border-radius:var(--radius-sm);background:var(--grad);color:#fff;font-weight:800;font-size:18px}
@keyframes priceBump{ 0%{transform:scale(1)} 35%{transform:scale(1.045)} 100%{transform:scale(1)} }
.total-row.price-bump{ animation: priceBump .35s ease; }

.validation-msg{font-size:12.5px;color:#92650F;background:var(--amber-bg);border:1px solid #F6DDAF;border-radius:var(--radius-sm);padding:10px 12px;margin-top:10px}

/* ---------- live build diagram ---------- */
.case-diagram{background:linear-gradient(160deg,var(--navy-950),var(--navy-800));border-radius:var(--radius);padding:18px 10px;margin:16px 0}
.diagram-title{text-align:center;color:#8FE9DA;font-size:11px;letter-spacing:.4px;margin-bottom:14px}
.diagram-row{display:flex;align-items:flex-start;justify-content:space-between;gap:2px;overflow-x:auto;padding:0 2px 6px}
.diagram-slot{flex:1;min-width:78px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}
.slot-icon-wrap{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;border:2px dashed rgba(255,255,255,.18);background:rgba(255,255,255,.03);transition:.2s;position:relative}
.diagram-slot.filled .slot-icon-wrap{border-style:solid;border-color:var(--teal);background:rgba(47,196,176,.13)}
.diagram-slot.filled .slot-icon-wrap::after{
  content:"✓"; position:absolute; top:-4px; left:-4px; width:16px; height:16px; border-radius:50%;
  background:var(--teal); color:var(--navy-950); font-size:10px; font-weight:900; line-height:16px; text-align:center;
  box-shadow:0 0 0 2px var(--navy-800);
}
@keyframes slotPop{ 0%{transform:scale(.5); opacity:0} 55%{transform:scale(1.18); opacity:1} 75%{transform:scale(.94)} 100%{transform:scale(1)} }
@keyframes ringPulse{ 0%{box-shadow:0 0 0 0 rgba(47,196,176,.55)} 100%{box-shadow:0 0 0 16px rgba(47,196,176,0)} }
.diagram-slot.just-filled .slot-icon-wrap{ animation: slotPop .5s cubic-bezier(.34,1.56,.64,1), ringPulse .7s ease-out; }
.slot-icon-wrap svg{width:23px;height:23px;color:rgba(255,255,255,.28)}
.diagram-slot.filled .slot-icon-wrap svg{color:var(--teal)}
.slot-icon-wrap img{width:100%;height:100%;object-fit:contain;border-radius:14px}
.slot-cat{font-size:9px;color:#8FA3BE;text-transform:uppercase;letter-spacing:.3px;margin-top:2px}

/* ---------- live PC build visual ---------- */
.pc-visual-outer{background:linear-gradient(160deg,var(--navy-950),var(--navy-800));border-radius:14px;padding:18px;overflow-x:auto;overflow-y:hidden}
.pc-stage{position:relative;width:620px;height:460px;margin:0 auto}

.pc-case{position:absolute;left:0;top:45px;width:280px;height:340px}
.pc-shell{position:absolute;inset:0;transform:scale(1);transform-origin:center;transition:transform .3s ease}
.pc-case.style-white .pc-shell{transform:scale(.94)}
.pc-case.style-fulltower .pc-shell{transform:scale(1.1)}

.pc-border{position:absolute;inset:14px;border:2px solid rgba(47,196,176,.55);border-radius:18px;background:rgba(255,255,255,.025);box-shadow:inset 0 0 30px rgba(0,0,0,.35)}
.pc-case.style-white .pc-border{border-color:rgba(199,205,214,.55)}
.pc-case.style-fulltower .pc-border{border-color:rgba(139,149,161,.55)}

.pc-shine{position:absolute;inset:14px;border-radius:18px;background:linear-gradient(120deg,transparent 28%,rgba(255,255,255,.10) 44%,transparent 62%);pointer-events:none}

.pc-vent{position:absolute;left:24px;right:24px;height:5px;border-radius:3px;background:repeating-linear-gradient(90deg,rgba(47,196,176,.55) 0 3px,transparent 3px 8px)}
.pc-case.style-white .pc-vent{background:repeating-linear-gradient(90deg,rgba(199,205,214,.55) 0 3px,transparent 3px 8px)}
.pc-case.style-fulltower .pc-vent{background:repeating-linear-gradient(90deg,rgba(139,149,161,.55) 0 3px,transparent 3px 8px)}
.pc-vent-top{top:16px}
.pc-vent-bottom{bottom:26px}

.pc-io{position:absolute;left:24px;top:44px;display:flex;align-items:center;gap:6px}
.pc-io-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid rgba(47,196,176,1);display:inline-block}
.pc-case.style-white .pc-io-dot{border-color:#C7CDD6}
.pc-case.style-fulltower .pc-io-dot{border-color:#8B95A1}
.pc-io-usb{width:9px;height:5px;border-radius:1px;background:rgba(255,255,255,.22);display:inline-block}
.pc-io-jack{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.18);display:inline-block}

.pc-brand-label{position:absolute;top:20px;left:24px;font-size:9px;letter-spacing:.5px;color:#8FE9DA;text-transform:uppercase;font-weight:600}
.pc-brand-plate{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);font-size:8px;letter-spacing:1px;color:rgba(255,255,255,.22);font-weight:600}
.pc-led{position:absolute;top:19px;left:250px;width:9px;height:9px;border-radius:50%;background:#2A3D55;transition:.2s}
.pc-led.on{background:var(--teal);box-shadow:0 0 8px var(--teal);animation:pcGlow 2s ease-in-out infinite}
.pc-foot{position:absolute;bottom:-6px;width:16px;height:6px;border-radius:2px;background:#071726}
.pc-foot-l{left:22px}
.pc-foot-r{right:22px}

.pc-empty-hint{position:absolute;inset:14px;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;box-sizing:border-box;animation:pcFadeIn .4s ease}
.pc-empty-hint-text{font-size:13px;color:rgba(255,255,255,.4);line-height:1.6}

.pc-part{position:absolute}
.pc-part.just-filled{animation:pcPartIn .5s cubic-bezier(.34,1.56,.64,1)}
.pc-mobo{left:150px;top:28px;width:106px;height:206px;border-radius:10px;background:repeating-linear-gradient(0deg,#122A20,#122A20 6px,#123023 6px,#123023 7px);border:1px solid rgba(47,196,176,.35)}
.pc-cpu{left:181px;top:52px;width:32px;height:32px;border-radius:6px;background:linear-gradient(100deg,var(--blue),var(--teal));box-shadow:0 0 14px rgba(47,196,176,.6)}
.pc-cpu.just-filled{animation:pcPartIn .45s cubic-bezier(.34,1.56,.64,1), pcRingPulse .7s ease-out}
.pc-cooling{left:167px;top:38px;width:60px;height:60px;border-radius:50%;border:3px dashed rgba(47,196,176,.75);animation:pcSpin 6s linear infinite}
.pc-cooling.just-filled{animation:pcSpin 6s linear infinite, pcPartIn .5s cubic-bezier(.34,1.56,.64,1)}
.pc-cooling::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--teal);box-shadow:0 0 8px var(--teal)}
.pc-ram{left:222px;top:96px;width:24px;height:66px}
.pc-ram::before,.pc-ram::after{content:"";position:absolute;top:0;width:9px;height:66px;border-radius:3px;background:#2A3D55}
.pc-ram::before{left:0}
.pc-ram::after{left:15px}
.pc-gpu{left:150px;top:168px;width:106px;height:28px;border-radius:8px;background:#16273C;border:1px solid rgba(47,196,176,.4);box-shadow:0 0 16px rgba(27,111,224,.35)}
.pc-storage{left:150px;top:206px;width:44px;height:15px;border-radius:4px;background:#0F1E30;border:1px solid rgba(255,255,255,.1)}
.pc-psu{left:150px;top:246px;width:106px;height:32px;border-radius:8px;background:#182A3F;border:1px solid rgba(255,255,255,.1)}
.pc-psu::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2px solid #4A5D74}

.pc-glow-bar{position:absolute;left:24px;right:24px;bottom:10px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--teal));opacity:.75;animation:pcGlow 2.4s ease-in-out infinite;box-shadow:0 0 10px rgba(47,196,176,.6)}

.pc-callouts{position:absolute;left:0;top:0;width:0;height:0}
.pc-callout{position:absolute;left:296px;width:220px;background:var(--navy-900);border:1px solid rgba(47,196,176,.5);border-radius:8px;padding:6px 10px;box-shadow:0 4px 10px rgba(0,0,0,.25);box-sizing:border-box}
.pc-callout.just-filled{animation:pcCalloutIn .35s ease-out}
.pc-callout-cat{font-size:9px;color:#8FE9DA;text-transform:uppercase;letter-spacing:.3px;font-weight:600}
.pc-callout-name{font-size:12.5px;color:#fff;font-weight:700;font-family:'Rubik',sans-serif;white-space:nowrap}
.pc-callout-emph{width:230px;border:2px solid var(--teal);border-radius:9px;padding:8px 12px;box-shadow:0 4px 14px rgba(47,196,176,.35)}
.pc-callout-emph .pc-callout-cat{font-size:10px}
.pc-callout-emph .pc-callout-name{font-size:14px;font-weight:800}

@keyframes pcPartIn{ 0%{opacity:0; transform:scale(.5)} 60%{opacity:1; transform:scale(1.08)} 100%{opacity:1; transform:scale(1)} }
@keyframes pcCalloutIn{ 0%{opacity:0; transform:translateX(14px)} 100%{opacity:1; transform:translateX(0)} }
@keyframes pcRingPulse{ 0%{box-shadow:0 0 0 0 rgba(47,196,176,.55)} 100%{box-shadow:0 0 0 22px rgba(47,196,176,0)} }
@keyframes pcSpin{ to{ transform:rotate(360deg) } }
@keyframes pcGlow{ 0%,100%{opacity:.5} 50%{opacity:1} }
@keyframes pcFadeIn{ from{opacity:0} to{opacity:1} }
.slot-name{font-size:9.5px;font-weight:600;color:#EAF0F7;line-height:1.3;max-width:86px}
.slot-empty-text{font-size:9px;color:#4B5A70}
.connector{flex:0 0 12px;height:2px;background:rgba(255,255,255,.12);margin-top:24px}
.connector.on{background:var(--teal); box-shadow:0 0 6px rgba(47,196,176,.65)}

/* ---------- usage-context picker ---------- */
.pick-chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:20px;padding:6px 12px;font-size:12.5px;cursor:pointer;margin:0 6px 6px 0;transition:.15s;background:#fff}
.pick-chip:hover{border-color:var(--blue);color:var(--blue)}
.pick-chip.active{background:var(--grad);color:#fff;border-color:transparent}
.pick-chip.custom{background:var(--surface-2)}
.pick-chip .x{opacity:.7}
.add-row{display:flex;gap:8px;margin-top:8px}
.add-row input{flex:1;border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:9px 12px;font-family:'Heebo',sans-serif;font-size:13px}
.add-row input:focus{outline:none;border-color:var(--blue)}
.add-row button{border:none;background:var(--navy-950);color:#fff;border-radius:var(--radius-sm);padding:0 16px;font-weight:700;cursor:pointer;font-size:13px}

select{width:100%;padding:10px;border-radius:var(--radius-sm);border:1.5px solid var(--line);font-family:'Heebo',sans-serif;font-size:13.5px;background:#fff;color:var(--ink)}
label.field-label{font-size:13px;font-weight:600;display:block;margin-bottom:6px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;font-family:'Heebo',sans-serif;font-weight:700;font-size:14.5px;border-radius:var(--radius-sm);padding:13px 18px;width:100%;transition:transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .18s ease, filter .18s ease, background .18s ease;margin-top:16px}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(14,42,71,.16)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 6px 18px rgba(27,111,224,.22)}
.btn-primary:hover{filter:brightness(1.06)}
.btn-primary:disabled{background:#CBD8E6;color:#8497AB;cursor:not-allowed;transform:none;box-shadow:none;filter:none}
.btn-accent{background:linear-gradient(135deg,var(--wa),var(--wa-2));color:#fff}
.btn-accent:hover{filter:brightness(1.07)}
.btn-secondary{background:#fff;color:var(--ink-soft);border:1.5px solid var(--line);margin-top:10px}
.btn-secondary:hover{background:var(--blue-soft);color:var(--blue);border-color:#C9DEF8}
.btn small{font-weight:400;opacity:.9}

/* ---------- AI panel ---------- */
.ai-panel{margin-top:18px;display:none}
.ai-panel.show{display:block}
.ai-summary{background:#F0FDF7;border:1px solid #BBF0D8;border-radius:var(--radius-sm);padding:14px 16px;font-size:14px;color:#14532D;margin-bottom:14px}
.ai-error{background:var(--amber-bg);border-color:#F6DDAF;color:#92650F}
.fps-row{margin-bottom:10px}
.fps-row .fps-label{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:4px;color:var(--ink-soft)}
.fps-track{background:var(--line);border-radius:6px;height:9px;overflow:hidden}
.fps-fill{background:var(--grad);height:100%;border-radius:6px;width:0;transition:width .8s ease}
.fps-note{font-size:11px;color:#94A3B8;margin-top:10px}

.loading{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-soft);padding:10px 0}
.spinner{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- footer ---------- */
footer{background:var(--navy-950);color:#9DB4CB;text-align:center;padding:34px 0 26px;font-size:12.5px}
footer a{color:#C4D7E8}
.footer-legal{margin-top:14px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
.footer-legal a{color:#9DB4CB;font-size:12px;text-decoration:underline;text-underline-offset:2px}
.footer-legal a:hover{color:var(--teal)}

/* פוטר מורחב (דף הבית) */
.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:26px;text-align:start;padding-bottom:24px;
  border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:18px}
.footer-grid h4{color:#fff;font-size:13.5px;margin:0 0 12px;font-weight:700}
.footer-grid ul{list-style:none;margin:0;padding:0}
.footer-grid li{margin-bottom:8px}
.footer-grid a{text-decoration:none;font-size:12.5px}
.footer-grid a:hover{color:var(--teal)}
.footer-grid p{margin:0;line-height:1.85;font-size:12.5px;max-width:34ch}
.footer-grid .footer-logo{margin:0 0 12px}
@media(max-width:820px){ .footer-grid{grid-template-columns:1fr 1fr;gap:20px} }
@media(max-width:520px){ .footer-grid{grid-template-columns:1fr} }

/* ---------- landing gateway (נשמר לתאימות עם דפים ישנים) ---------- */
.service-screen{display:none;min-height:calc(100vh - 68px);flex-direction:column;align-items:center;padding:60px 20px;background:var(--bg)}
.service-logo{height:44px;margin-bottom:26px}
.service-heading{font-size:clamp(24px,3.5vw,34px);font-weight:800;color:var(--ink);margin:0 0 8px;text-align:center}
.service-sub{color:var(--ink-soft);margin-bottom:36px;text-align:center}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:760px;width:100%}
@media(max-width:600px){.service-grid{grid-template-columns:1fr}}
.service-card{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius);padding:30px 24px;cursor:pointer;transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease, border-color .25s ease;text-align:center;box-shadow:var(--shadow-s);position:relative}
.service-card:hover{border-color:#C9DEF8;transform:translateY(-6px) scale(1.02);box-shadow:var(--shadow-lg)}
.service-icon-wrap{width:64px;height:64px;border-radius:50%;background:linear-gradient(155deg,#F3F8FF,#EFFBF8);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;transition:background .25s ease, transform .25s cubic-bezier(.34,1.56,.64,1)}
.service-card:hover .service-icon-wrap{background:var(--grad);transform:scale(1.1) rotate(-4deg)}
.service-icon{width:30px;height:30px;color:var(--blue);transition:color .2s ease}
.service-card:hover .service-icon{color:#fff}
.service-card h3{font-size:16px;margin:0 0 6px;font-weight:700;color:var(--ink)}
.service-card p{font-size:13px;color:var(--ink-soft);margin:0;line-height:1.5}
.service-arrow{display:block;margin-top:12px;font-size:14px;font-weight:800;color:var(--blue);opacity:0;transform:translateX(-6px);transition:opacity .22s ease, transform .22s ease}
[dir="rtl"] .service-arrow{transform:translateX(6px)}
.service-card:hover .service-arrow{opacity:1;transform:translateX(0)}
.service-arrow::after{content:"←"}
[dir="ltr"] .service-arrow::after{content:"→"}
.change-lang-link{margin-top:32px;background:none;border:none;color:var(--ink-soft);font-size:13px;cursor:pointer;text-decoration:underline;font-family:'Heebo',sans-serif}

/* ---------- coming-soon page ---------- */
.cs-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);padding:40px 20px;text-align:center}
.cs-wrap h1{font-size:26px;font-weight:800;color:var(--ink);margin:0 0 12px}
.cs-wrap p{color:var(--ink-soft);max-width:420px;margin:0 0 28px}
.cs-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.cs-actions .btn{width:auto;margin-top:0;padding:12px 22px}

/* ---------- cart widget (floating, all pages) ---------- */
.cart-fab{position:fixed;bottom:24px;inset-inline-end:24px;width:56px;height:56px;border-radius:50%;background:var(--grad);color:#fff;border:none;font-size:22px;cursor:pointer;box-shadow:var(--shadow-lg);z-index:90;display:flex;align-items:center;justify-content:center;animation:cartFloat 3.2s ease-in-out infinite;transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease}
@keyframes cartFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.cart-fab:hover{animation-play-state:paused;transform:translateY(-4px) scale(1.12) rotate(-8deg);box-shadow:0 20px 40px rgba(27,111,224,.35)}
.cart-fab:active{transform:translateY(-2px) scale(1.04)}
.cart-fab-badge{position:absolute;top:-4px;inset-inline-end:-4px;background:var(--red);color:#fff;font-size:11px;font-weight:800;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 4px}
/* ---------- עגלה — מגירה צדדית ---------- */
/* קודם זו הייתה תיבה שצפה במרכז המסך. מגירה שנכנסת מהצד היא הסטנדרט
   בחנויות, לא מכסה את התוכן, ומרגישה כחלק מהאתר ולא כחלון קופץ. */
.cart-overlay{position:fixed;inset:0;background:rgba(11,44,77,.42);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  display:none;z-index:110;opacity:0;transition:opacity .22s ease}
.cart-overlay.show{display:block;opacity:1}
.cart-panel{position:absolute;inset-block:0;inset-inline-end:0;
  width:min(430px,100%);background:var(--surface);
  box-shadow:0 0 60px rgba(11,44,77,.28);
  display:flex;flex-direction:column;padding:0;
  animation:cartSlide .3s cubic-bezier(.22,.9,.3,1)}
/* ⚠️ translateX הוא פיזי ולא לוגי: ב-RTL הצד ה"סוגר" הוא שמאל ולכן
   ההחלקה מגיעה משלילי, ב-LTR מימין ולכן מחיובי. ערך אחד לשניהם היה
   גורם למגירה "לקפוץ" מהצד ההפוך. */
@keyframes cartSlide{from{transform:translateX(var(--cart-from))}to{transform:translateX(0)}}
[dir="rtl"] .cart-panel{--cart-from:-102%}
[dir="ltr"] .cart-panel{--cart-from:102%}

/* ---------- סגירה מונפשת, סימטרית לפתיחה ----------
   ⚠️ עד כאן הסגירה הייתה רק הסרת ‎.show, כלומר ‎display:none מיידי —
   וזה מבטל *כל* אנימציית יציאה, כי אלמנט שיצא מהתצוגה לא מנפיש כלום.
   התוצאה: המגירה נכנסת בהחלקה ונעלמת בפריים אחד. המצב ‎.closing מחזיק
   את השכבה מוצגת עוד רגע (‎display:block) ובו-זמנית מוריד את האטימות
   דרך ה-transition הקיים ומחליק את המגירה החוצה; ‎closeCart מסיר אותו
   ב-animationend (עם setTimeout כגיבוי) ואז ‎display:none נכנס לתוקף.
   ⚠️ אותו ‎--cart-from משמש לשני הכיוונים, ולכן היציאה תמיד חוזרת אל
   הצד שממנו המגירה נכנסה — גם ב-RTL וגם ב-LTR. */
.cart-overlay.closing{display:block;opacity:0}
.cart-overlay.closing .cart-panel{
  animation:cartSlideOut .26s cubic-bezier(.4,.05,.7,.2) forwards}
@keyframes cartSlideOut{from{transform:translateX(0)}to{transform:translateX(var(--cart-from))}}

/* בהעדפת "פחות אנימציות": המגירה פשוט מופיעה ונעלמת. ⚠️ ‎.closing חייב
   להיות ‎display:none כאן, אחרת השכבה נתקעת מוצגת עד שה-JS מסיר אותה. */
@media(prefers-reduced-motion:reduce){
  /* 🔴 קודם היה כאן `transition:none` + `animation:none` — כלומר
     המגירה **קופצת** במכה אחת. דביר ראה את זה במחשב (ההגדרה דלוקה
     ב-Windows) ולא בטלפון, ותיאר את זה בדיוק: "נפתח בבום".

     ⚠️ ההגדרה מבקשת **פחות תנועה, לא אפס מעבר**. ההמלצה המקובלת
     היא להחליף תנועה במרחב בהעלמה/הופעה — העין לא נגררת אחרי
     אובייקט שחוצה את המסך, ובכל זאת אין קפיצה מבהילה.
     ⚠️ אנימציית ה"טיסה לעגלה" נשארת מבוטלת (cart.js) — היא קישוט
     נע ממש, וזה מה שההגדרה נועדה למנוע. */
  .cart-panel{animation:cartFadeIn .22s ease both}
  .cart-overlay.closing .cart-panel{animation:cartFadeOut .18s ease both}
  .cart-overlay.closing{display:block}
}
@keyframes cartFadeIn{from{opacity:0}to{opacity:1}}
@keyframes cartFadeOut{from{opacity:1}to{opacity:0}}

/* כותרת דביקה עם הגרדיאנט של המותג */
.cart-panel-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;
  justify-content:space-between;gap:10px;padding:20px 22px;
  background:var(--grad);color:#fff;margin:0}
.cart-panel-head h3{margin:0;font-size:17px;font-weight:800;color:#fff;
  font-family:'Rubik',sans-serif;display:flex;align-items:center;gap:9px}
.cart-panel .checkout-close{position:static;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.3);color:#fff;flex:none}
.cart-panel .checkout-close:hover{background:rgba(255,255,255,.3)}

.cart-empty{color:var(--ink-soft);font-size:13.5px;padding:48px 22px;text-align:center;line-height:1.8}

.cart-items{list-style:none;padding:0 22px;margin:14px 0;overflow-y:auto;flex:1}
.cart-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  padding:14px;margin-bottom:10px;border:1px solid var(--line);border-radius:14px;
  background:var(--surface);transition:border-color .18s,box-shadow .18s,transform .18s}
.cart-item:hover{border-color:#C9DEF8;box-shadow:var(--shadow-s);transform:translateY(-1px)}
.cart-item-main{min-width:0}
.cart-item-name{font-weight:700;font-size:13.5px;color:var(--ink);display:block;line-height:1.5}
/* שם המוצר לחיץ ומוביל לדף המוצר */
a.cart-item-link{text-decoration:none;color:var(--ink)}
a.cart-item-link:hover{color:var(--blue);text-decoration:underline}
.cart-item-note{font-size:11.5px;color:var(--ink-soft);margin-top:4px;line-height:1.7}
.cart-item-price{font-size:13px;font-weight:700;margin-top:7px;color:var(--blue);
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
/* סה"כ לשורה, מוצג רק כשהכמות גדולה מ-1 */
.cart-item-line{font-size:11.5px;font-weight:700;color:var(--ink-soft);
  background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:2px 8px}
.cart-item-ctrl{display:flex;flex-direction:column;align-items:flex-end;gap:9px;flex-shrink:0}
.cart-item-remove{background:none;border:none;cursor:pointer;padding:4px;border-radius:8px;
  color:#A6B4C6;line-height:0;transition:.15s}
.cart-item-remove svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.cart-item-remove:hover{color:var(--red,#E4322B);background:var(--red-bg,#FDECEA)}

/* אזור התחתית — נשאר גלוי גם כשהרשימה ארוכה */
/* 🔴 **הכלל מכוון לכל `.btn` במגירה, ולא לרשימת מזהים. אל תחזיר
   רשימה.** קודם היו כאן `#cartCheckoutBtn` ו-`#cartContinueBtn`
   בשמם; `#cartShareBtn` נולד אחר כך (שיתוף עגלה) ומעולם לא צורף,
   ולכן יצא **44px רחב יותר משני האחרים** וגלש מהמגירה בקצה המסך.
   דביר ראה את זה בעין לפני שאני ראיתי את זה בקוד.
   ⚠️ רשימת מזהים בעיצוב מזדקנת בשקט — כל כפתור חדש נשאר בחוץ.

   ⚠️ `width:auto` ולא `width:100%` (שיורש מ-`.btn`): ‏100% מחושב על
   רוחב התוכן של המגירה **לפני** השוליים, ולכן 100% + 22px משני
   הצדדים = 44px גלישה. `auto` ממלא את מה שנשאר *אחרי* השוליים.
   ⚠️ בכל הרוחבים ולא רק במובייל — הגלישה קיימת גם בדסקטופ. */
.cart-panel .checkout-total-row,
.cart-panel > .btn{margin-inline:22px}
.cart-panel > .btn{display:flex;width:auto}
.cart-panel > .btn:last-child{margin-bottom:20px}
@keyframes checkoutIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.checkout-close{position:absolute;top:16px;inset-inline-end:16px;background:var(--surface-2);border:1px solid var(--line);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:14px;color:var(--ink-soft)}
.checkout-close:hover{background:var(--line)}
.checkout-field{margin-bottom:14px}
.checkout-field input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--line);font-family:'Heebo',sans-serif;font-size:13.5px}
.checkout-field input:focus{outline:none;border-color:var(--blue)}
.checkout-total-row{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:16.5px;border-top:1.5px dashed var(--line);padding-top:12px;margin:6px 0 14px}
.checkout-back-link{display:inline-block;font-size:13px;color:var(--ink-soft);text-decoration:none;font-weight:600}
.checkout-back-link:hover{color:var(--blue)}
@media(max-width:600px){.cart-panel{padding:18px}.cart-fab{bottom:16px;inset-inline-end:16px}}

/* ---------- catalog page ---------- */
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin:26px 0 60px}
.product-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-s);text-align:center}
.product-card img,.product-card .product-icon{width:100%;height:120px;object-fit:contain;margin-bottom:12px}
.product-card h4{margin:0 0 6px;font-size:14.5px}
.product-card p{margin:0 0 10px;font-size:12.5px;color:var(--ink-soft)}
.product-card .price{font-weight:800;font-size:16px;margin-bottom:12px;color:var(--blue)}
.product-card .btn{margin-top:0}

/* ---------- רצועת מבצעים נגללת ---------- */
/* הרצועה זזה רק כשהמבצעים לא נכנסים לרוחב המסך (home.js מחליט).
   הריחוף עוצר אותה כדי שאפשר יהיה ללחוץ על מוצר בלי לרדוף אחריו. */
@keyframes dealMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(var(--marquee-shift,-50%))}
}
/* במצב מרקי הכרטיסים נעטפים ב-.deal-track אחד, והוא מה שזז. הזזה של
   כל כרטיס בנפרד הייתה מזיזה כל אחד ברוחב *שלו* — לא רצועה מתגלגלת. */
.rowscroll.deal-marquee{overflow:hidden;scroll-behavior:auto;display:block}
.rowscroll.deal-marquee .deal-track{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);gap:14px;
  width:max-content;
  animation:dealMarquee var(--marquee-dur,40s) linear infinite}
.rowscroll.deal-marquee:hover .deal-track,
.rowscroll.deal-marquee:focus-within .deal-track{animation-play-state:paused}
/* חצי מהרוחב = בדיוק העותק הראשון, ולכן הלולאה נסגרת בלי קפיצה */
[dir="rtl"] .rowscroll.deal-marquee .deal-track{--marquee-shift:50%}
[dir="ltr"] .rowscroll.deal-marquee .deal-track{--marquee-shift:-50%}

/* הודעה כשאין מבצעים פעילים */
.deals-none{flex:1;text-align:center;padding:34px 20px;background:var(--surface);
  border:1px dashed var(--line);border-radius:var(--radius);color:var(--ink-soft)}
.deals-none b{display:block;font-family:'Rubik',sans-serif;font-size:15px;
  font-weight:700;color:var(--ink);margin-bottom:5px}
.deals-none span{font-size:13px}

/* ---------- תפריט "קטלוג" (mega menu) ---------- */
.navcat{position:relative;display:inline-flex}
/* ⚠️ ‎.navcat-btn הוא היום ‎<a href="products.html?cat=all"> ולא ‎<button>
   (ראו wireCatalogMenu ב-site-header.js): לחיצה על "מוצרים" עצמו מובילה
   לכל המוצרים, והתפריט נפתח בהצבעה ובפוקוס. ‎text-decoration:none נדרש
   מרגע שזה קישור; שאר ההצהרות נשארו כדי שהמראה יהיה זהה לכפתור הקודם. */
.navcat-btn{display:inline-flex;align-items:center;gap:5px;background:none;border:none;
  cursor:pointer;font-family:'Heebo',sans-serif;font-size:inherit;font-weight:inherit;
  color:inherit;padding:0;line-height:inherit;text-decoration:none}
.navcat-chev{width:10px;height:7px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
/* 📱 מכשירי מגע: החץ הוא כפתור פתיחה/סגירה (ראה wireCatalogMenu), ולכן
   צריך אזור-נגיעה גדול. padding מגדיל את אזור הלחיצה, margin שלילי מבטל
   את ההשפעה על הפריסה כדי שהתווית לא תזוז. */
@media(hover:none){
  .navcat-chev{box-sizing:content-box;padding:11px;margin:-11px;width:12px;height:9px}
}
.navcat:hover .navcat-chev,.navcat.open .navcat-chev{transform:rotate(180deg)}
.navcat-btn:hover,.navcat.open .navcat-btn{color:var(--blue)}

/* ⚠️ מרכוז עם left/translateX פיזיים ולא inset-inline-start: המאפיין
   הלוגי מתהפך ב-RTL בעוד ש-translateX נשאר פיזי, והתפריט "ברח" אל
   מתחת למתג השפה במקום להיפתח מתחת לכפתור עצמו. */
.navcat-menu{position:absolute;top:100%;left:50%;transform:translate(-50%,8px);
  margin-top:12px;min-width:min(680px,92vw);background:var(--surface);
  border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);
  padding:20px 22px 16px;z-index:120;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.navcat:hover .navcat-menu,.navcat.open .navcat-menu,.navcat:focus-within .navcat-menu{
  opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
/* ⚠️ ‎.dismissed הוא מה שמאפשר ל-Escape לעבוד בכלל. אחרי Escape הפוקוס
   חוזר לקישור "מוצרים" — והוא בתוך ‎.navcat, כך ש-‎:focus-within היה פותח
   את התפריט מחדש מיד. הכלל הזה חייב לבוא *אחרי* שלושת הבוררים שלמעלה:
   הספציפיות זהה (שלוש מחלקות), ולכן רק הסדר בקובץ מכריע.
   ‎site-header.js מסיר את המחלקה בהצבעה הבאה או בחץ למטה. */
.navcat.dismissed .navcat-menu{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,8px)}
/* גשר בלתי נראה בין הכפתור לתפריט — בלי זה התפריט נסגר כשהעכבר עובר במרווח */
.navcat-menu::before{content:"";position:absolute;top:-14px;inset-inline:0;height:14px}

.navcat-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:720px){ .navcat-cols{grid-template-columns:1fr 1fr;gap:16px} }
.navcat-h{font-family:'Rubik',sans-serif;font-size:12px;font-weight:800;
  color:var(--blue);letter-spacing:.4px;padding-bottom:7px;margin-bottom:7px;
  border-bottom:2px solid var(--blue-soft,#EAF3FF)}
/* כותרת קבוצה שהיא קישור: נשארת נראית כמו כותרת (זו עדיין כותרת ולא
   פריט ברשימה), אבל מסמנת שאפשר ללחוץ — החץ נדלק ומופיע ריחוף. */
a.navcat-h--link{display:flex;align-items:baseline;justify-content:space-between;
  text-decoration:none;cursor:pointer;transition:color .14s,border-color .14s}
a.navcat-h--link span{opacity:0;transition:opacity .14s;font-weight:700}
a.navcat-h--link:hover{color:var(--blue-strong,#0B57A4);border-bottom-color:currentColor}
a.navcat-h--link:hover span{opacity:1}
a.navcat-h--link:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
.navcat-link{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:7px 9px;border-radius:9px;text-decoration:none;color:var(--ink);
  font-size:13.5px;font-weight:500;transition:background .14s,color .14s}
.navcat-link:hover{background:var(--surface-2);color:var(--blue)}
.navcat-link em{font-style:normal;font-size:11px;font-weight:700;color:var(--ink-soft);
  background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:1px 7px}
.navcat-link:hover em{border-color:#C9DEF8;color:var(--blue)}

.navcat-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:16px;padding-top:13px;border-top:1px solid var(--line)}
.navcat-all{font-size:13px;font-weight:700;color:var(--blue);text-decoration:none}
.navcat-all:hover{text-decoration:underline}
.navcat-sale{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;
  color:#fff;background:#E4322B;border-radius:999px;padding:5px 12px;text-decoration:none}
.navcat-sale em{font-style:normal;background:rgba(255,255,255,.25);border-radius:999px;padding:0 6px}
.navcat-sale:hover{filter:brightness(1.07)}

/* ---------- בונה המחשבים: כותרות שלב ברורות יותר ---------- */
/* קודם הכותרת נראתה כמו טקסט רגיל וקל היה לפספס איפה מתחיל כל שלב.
   עכשיו: כותרת גדולה יותר, פס מפריד, ומספר השלב בולט. */
.panel h3{
  margin:0 0 8px;font-family:'Rubik',sans-serif;font-size:18.5px;font-weight:800;
  color:var(--ink);display:flex;align-items:center;gap:11px;
  padding-bottom:11px;border-bottom:2px solid var(--blue-soft,#EAF3FF)}
.step-num{width:30px;height:30px;font-size:13.5px;font-weight:800;
  box-shadow:0 3px 9px rgba(27,111,224,.32)}
.panel .sub{font-size:13px;margin:0 0 16px}

/* בחירה מרובה בשלב "שירותים נוספים" */
.opt--multi{padding-inline-end:38px}
.opt-check{position:absolute;top:11px;inset-inline-end:11px;width:21px;height:21px;
  border:1.8px solid var(--line);border-radius:6px;display:grid;place-items:center;
  font-size:13px;font-weight:900;color:#fff;line-height:1;transition:.15s}
.opt--multi.selected .opt-check{background:var(--blue);border-color:var(--blue)}

/* ---------- סיכום ההרכבה: טקסט ארוך יורד שורה ---------- */
/* ‎.k/.v הם פריטי flex, ובלי min-width:0 טקסט ארוך גולש מחוץ למלבן
   במקום להישבר לשורה חדשה. */
.summary-list li{flex-wrap:wrap}
.summary-list li .k{min-width:0;overflow-wrap:anywhere}
.summary-list li .v{min-width:0;overflow-wrap:anywhere;text-align:start}

/* גילוי נאות בראש בונה המחשבים */
.builder-disclaimer{background:#FFF8E9;border:1px solid #F0DCA8;border-radius:var(--radius-sm);
  padding:13px 16px;font-size:12.5px;line-height:1.75;color:#6B5622;margin:0 0 20px}
.builder-disclaimer b{color:#4A3A12}
.builder-disclaimer a{color:var(--blue);font-weight:600}

/* הצעת "הרכבה חינם" בדף התשלום */
.assembly-notice{background:var(--blue-soft,#EAF3FF);border:1px solid #C7DDFC;
  border-radius:var(--radius-sm);padding:15px 17px;margin:14px 0 4px}
.assembly-notice b{display:block;font-family:'Rubik',sans-serif;font-size:14.5px;
  color:var(--blue-dark,#0B2C4D);margin-bottom:5px}
.assembly-notice p{font-size:12.5px;line-height:1.75;color:var(--ink-soft);margin:0 0 11px}
.assembly-notice .btn{width:auto;display:inline-flex;padding:9px 18px;font-size:13px}

/* ---------- צור קשר ---------- */
.contact-hero{background:linear-gradient(160deg,#F2F8FF,#EAF7F4);
  border-bottom:1px solid var(--line);padding:46px 0 40px;margin-bottom:34px}
.contact-hero h1{font-family:'Rubik',sans-serif;font-size:31px;font-weight:800;
  color:var(--ink);margin:0 0 9px}
.contact-hero p{color:var(--ink-soft);font-size:15px;line-height:1.75;margin:0;max-width:620px}

.contact-wrap{padding-bottom:70px}
.contact-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:26px}
@media(min-width:800px){ .contact-grid{grid-template-columns:repeat(3,1fr)} }

.ccard{background:var(--surface);border:1px solid var(--line);border-radius:16px;
  padding:22px 20px;box-shadow:var(--shadow-s);display:flex;flex-direction:column;
  transition:transform .18s,box-shadow .18s,border-color .18s}
.ccard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#C9DEF8}
.ccard--wa{background:linear-gradient(160deg,#F0FBF8,#FFFFFF);border-color:#BFE9DE}
.ccard-ic{width:44px;height:44px;border-radius:12px;background:var(--blue-soft,#EAF3FF);
  display:grid;place-items:center;margin-bottom:13px}
.ccard-ic .ui-ic{width:22px;height:22px;color:var(--blue)}
.ccard--wa .ccard-ic{background:#D8F5EC}
.ccard--wa .ccard-ic .ui-ic{color:var(--teal-dark,#12836C)}
.ccard b{font-family:'Rubik',sans-serif;font-size:15.5px;font-weight:700;color:var(--ink);margin-bottom:5px}
.ccard span{font-size:13px;color:var(--ink-soft);line-height:1.7;margin-bottom:14px}
.ccard-val{font-family:'Rubik',sans-serif;font-size:18px;font-weight:800;color:var(--blue);
  text-decoration:none;margin:2px 0 15px;text-align:start}
.ccard-val:hover{text-decoration:underline}
.ccard-acts{margin-top:auto;display:flex;gap:8px;align-items:stretch}
.ccard-acts .btn{width:auto;flex:1;margin-top:0;padding:10px 14px;font-size:13px}
.ccard--wa .btn{width:100%}
.ccard-copy{flex:none;background:var(--surface-2);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:0 14px;font-family:'Heebo',sans-serif;font-size:12.5px;
  font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.15s;white-space:nowrap}
.ccard-copy:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft,#EAF3FF)}
.ccard-copy.done{border-color:var(--teal,#2FC4B0);color:var(--teal-dark,#12836C);background:#E4F8F3}

.contact-info{display:grid;grid-template-columns:1fr;gap:0;background:var(--surface);
  border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:22px}
@media(min-width:800px){ .contact-info{grid-template-columns:repeat(3,1fr)} }
.cinfo{padding:20px}
.cinfo + .cinfo{border-top:1px solid var(--line)}
@media(min-width:800px){ .cinfo + .cinfo{border-top:0;border-inline-start:1px solid var(--line)} }
.cinfo b{display:block;font-family:'Rubik',sans-serif;font-size:13px;font-weight:700;
  color:var(--blue);margin-bottom:7px}
.cinfo p{margin:0;font-size:13.5px;color:var(--ink-soft);line-height:1.8}

.contact-cancel{background:var(--surface-2);border:1px dashed var(--line);
  border-radius:16px;padding:20px 22px}
.contact-cancel b{display:block;font-family:'Rubik',sans-serif;font-size:15px;color:var(--ink);margin-bottom:7px}
.contact-cancel p{margin:0 0 13px;font-size:13px;color:var(--ink-soft);line-height:1.75}
.contact-cancel .btn{width:auto;display:inline-flex;margin-top:0;padding:10px 20px;font-size:13px}

/* ---------- וריאנט כהה להדר (דף צור קשר) ----------
   ⚠️ רק צבע. המבנה, הסדר והצד זהים לכל האתר, כי ההדר נבנה מאותו
   site-header.js — כך שהתפריט לא "קופץ" בין דפים. */
header.site-header--blue{background:#0B2C4D;border-bottom-color:rgba(255,255,255,.12)}
header.site-header--blue .brand-logo{filter:brightness(0) invert(1)}
/* ⚠️⚠️ ‎`#mainNav > a` ולא ‎`#mainNav a` — הכוכבית החשובה כאן.
   תפריט "מוצרים" (‎.navcat-menu) יושב *בתוך* ‎#mainNav, והקישורים שבו הם
   ‎<a> לכל דבר. עם סלקטור הצאצא הרחב הצבע הבהיר של ההדר הכהה (#DCE8F4)
   דלף גם אליהם — ספציפיות (1,1,2) מול (0,1,0) של ‎.navcat-link — כך
   שבדף "צור קשר" כל שמות הקטגוריות הופיעו בלבן-תכלת על רקע התפריט
   הלבן, כלומר כמעט בלתי קריאים. זו הייתה התלונה "הכתב מאוד דהוי".
   הבורר הישיר מצבע רק את קישורי הניווט עצמם, והתפריט הנפתח נשאר עם
   הצבעים שלו מ-‎.navcat-link (‎--ink על לבן) בכל דף. */
header.site-header--blue #mainNav > a,
header.site-header--blue .navcat-btn{color:#DCE8F4}
header.site-header--blue #mainNav > a:hover,
header.site-header--blue .navcat-btn:hover,
header.site-header--blue #mainNav > a.active,
header.site-header--blue .navcat-btn.active{color:#fff}
header.site-header--blue #mainNav > a.active::after{background:#5AA9F5}
/* בהדר הכחול הגרדיאנט הכהה לא קריא — ההדגשה הופכת לתכלת בהירה */
header.site-header--blue #mainNav > a.nav-accent{background:none;
  -webkit-background-clip:initial;background-clip:initial;color:#9BD3FF}
header.site-header--blue #mainNav > a.nav-accent:hover,
header.site-header--blue #mainNav > a.nav-accent.active{color:#fff}
header.site-header--blue .head-search{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18)}
/* 🔴 **אין כאן override לצבע הטקסט — בכוונה.**
   קודם היה `color:#fff` לשדה החיפוש בכותרת הכחולה, בזמן שה-input
   ממשיך לצייר `--surface-2` (כמעט לבן) מכלל הבסיס. התוצאה: טקסט
   לבן על רקע לבן — שדה שנראה ריק בדיוק כשמקלידים בו. דביר דיווח
   על זה מדף צור קשר, הדף היחיד באתר שמשתמש בכותרת הכחולה.
   ⚠️ אל תחזיר צבע טקסט בהיר כאן בלי לתת ל-input רקע כהה **אטום**
   באותה הכרזה. שקיפות מעל הכותרת נראית נכון בקוד ונכשלת במסך. */
header.site-header--blue .head-search{background:transparent;border-color:transparent}
header.site-header--blue .head-search .ui-ic{color:rgba(220,232,244,.8)}
header.site-header--blue .head-ic{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18);color:#DCE8F4}
header.site-header--blue .head-ic:hover{background:rgba(255,255,255,.2);color:#fff}
header.site-header--blue .lang-btn{color:#BCD2E8}
header.site-header--blue .lang-btn.active{background:#fff;color:#0B2C4D}

/* ---------- תמונת המחשב בתחתית דף צור קשר ----------
   הרנדר החדש מגיע עם רקע שקוף, ולכן הוא פשוט "צף" על הכרטיס הבהיר
   בדיוק כמו במוקאפ — בלי מסגרת כהה ובלי מלבן שחור.

   🔴 **הוזז ימינה 23.08.** שלוש תוויות היתרונות ("התאמה מלאה
   לצרכים" · "מחירים הוגנים" · "אחריות יצרן") ממוקמות
   `position:absolute; left:18px` בתוך אותו תא, והמחשב ישב צמוד
   לקצה השמאלי — כך שהכיתוב נחת **על הפאנל הקדמי** ולא לידו.

   ⚠️ התיקון הוא ב-`margin-inline-end` ולא ב-`left` של התוויות:
   דביר ביקש במפורש ש**רק המחשב יזוז**, והתוויות יישארו במקומן
   ורק יפסיקו לשבת עליו.

   ⚠️ `margin-inline-end` בעברית (RTL) הוא השוליים ה**שמאליים**,
   ולכן הגדלתו דוחפת את התמונה ימינה. 56px במקום 20px = הזזה של
   36px, מספיק כדי שהתוויות ינשקו את הקצה ולא יכסו אותו. */
.contact-pc-img{
  width:100%;max-width:420px;height:auto;display:block;
  margin-inline-end:56px;margin-inline-start:auto;
  filter:drop-shadow(0 22px 38px rgba(14,42,71,.28));
}
@media(max-width:760px){
  .contact-pc-img{margin-inline:auto;max-width:340px}
}

/* ---------- ריצת רכיב DesignCode בתוך דף אמיתי של האתר ----------
   ⚠️ באג אמיתי, לא קוסמטיקה: support.js מזריק בזמן ריצה גיליון סגנון
   עם `html,body{height:100%}` ו-`#dc-root,#dc-root>.sc-host{height:100%}`.
   בקנבס של הבונה זה נכון (רכיב אחד במסך מלא), אבל בדף אמיתי הגובה
   ננעל על גובה החלון: התוכן גולש החוצה, וכל מה שבא *אחרי* #dc-root —
   הפוטר של האתר — נערם באמצע העמוד וחותך את כרטיס ה-CTA.
   הגיליון המוזרק נוסף אחרי style.css, ולכן חייבים !important.
   רלוונטי ל-contact.html ול-builder.html (שניהם טוענים support.js). */
html, body{height:auto !important}
#dc-root, #dc-root > .sc-host{height:auto !important}

/* ---------- כפתור וואטסאפ צף (כל האתר) ----------
   ⚠️ יושב *מעל* העגלה ולא מאחוריה: שניהם bottom-inline-end, ולכן
   הוואטסאפ מקבל bottom גבוה יותר בדיוק בגובה העגלה + מרווח. */
.wa-fab{position:fixed;bottom:94px;inset-inline-end:24px;width:56px;height:56px;
  border-radius:50%;background:#25D366;color:#fff;border:none;cursor:pointer;
  box-shadow:0 12px 28px rgba(37,211,102,.35);z-index:89;
  display:flex;align-items:center;justify-content:center;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease}
.wa-fab svg{width:28px;height:28px;fill:currentColor;display:block}
.wa-fab:hover{transform:translateY(-4px) scale(1.08);box-shadow:0 20px 40px rgba(37,211,102,.42)}
.wa-fab:active{transform:translateY(-2px) scale(1.02)}
@media(max-width:600px){.wa-fab{bottom:80px;inset-inline-end:16px}}
@media print{.wa-fab{display:none}}

/* הערת "הרכבה ללא עלות" בראש הבונה */
.builder-free-note{background:var(--blue-soft,#EAF3FF);border:1px solid #C7DDFC;
  border-radius:var(--radius-sm);padding:11px 15px;margin:14px 0 0;
  font-size:12.5px;line-height:1.7;color:var(--ink-soft)}
.builder-free-note b{color:var(--blue-dark,#0B2C4D)}

/* ===================== פוטר אחיד (site-footer.js) =====================
   ⚠️ הפוטר נבנה ב-JS ממקור אחד. הכללים כאן חייבים לכסות גם את הגרסה
   המלאה וגם את המצומצמת (checkout/pay), כי שתיהן מגיעות מאותו קובץ. */
.footer-wa{display:inline-block;margin-top:12px;font-family:'Rubik',sans-serif;
  font-size:12.5px;font-weight:700;color:#fff;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:7px 15px;
  text-decoration:none;transition:background .15s}
.footer-wa:hover{background:rgba(255,255,255,.20)}
.footer-legal-line{margin:18px 0 6px;font-size:11.5px;opacity:.72;line-height:1.7}
.footer-copy{display:block;margin-top:8px;font-size:11.5px;opacity:.6}
/* בשלב התשלום — פוטר שקט, ממורכז, בלי ניווט שמוציא מהדף */
.footer-min{text-align:center}
.footer-min .footer-legal{justify-content:center}

/* ===================== דף אחרי תשלום (thanks.html) =====================
   ⚠️⚠️ **המחלקות כאן הן מנגנון אבטחה, לא רק עיצוב.** תוכן ההצלחה בדף
   התודה מוסתר כברירת מחדל ומוצג **רק** כש-‎#thxCard נושא
   ‎data-thx-state="confirmed" — ערך ש-thanks.js קובע אך ורק אחרי תשובת
   אימות חיובית מהשרת. הערך ההתחלתי כתוב ב-HTML עצמו ("verifying"), כך
   שגם JS שנפל באמצע לא יכול להציג "שולם" בטעות.
   **אין להחליף את הכללים האלה בהסתרה/הצגה ידנית מ-JS.** */

.thx-wrap{max-width:600px;padding-top:40px;padding-bottom:64px}

/* ⚠️ cart.js נטען בדף התודה כדי שאייקון העגלה שב-header יעבוד
   (‎onclick="openCart&&openCart()" — בלי cart.js הלחיצה זורקת
   ReferenceError). אבל הוא מזריק גם כפתור עגלה **צף**, וכפתור קנייה צף
   על מסך אישור תשלום הוא רעש: אותו שיקול שבגללו site-header.js מחריג
   את thanks.html מכפתור הוואטסאפ הצף. המגירה עצמה נשארת נגישה מההדר. */
.thx-page .cart-fab{display:none}

.thx-card{position:relative;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
/* פס הגרדיאנט העליון — אותה שפה ויזואלית של הכפתור הראשי באתר. */
.thx-card::before{content:"";position:absolute;inset-inline:0;top:0;height:4px;background:var(--grad)}

.thx-head{padding:36px 26px 24px;text-align:center;border-bottom:1px solid var(--line-soft)}
.thx-body{padding:24px 26px 26px}

/* ---------- סמל המצב ---------- */
.thx-badge{width:78px;height:78px;margin:0 auto 18px;border-radius:50%;
  display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);
  transition:background .25s ease,color .25s ease}
.thx-ic{display:none;width:40px;height:40px;fill:none;stroke:currentColor;
  stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

/* טבעת טעינה. אותה שפה של .spinner הקיים, בגודל שמתאים לסמל. */
.thx-spin{border:3px solid rgba(27,111,224,.20);border-top-color:currentColor;
  border-radius:50%;animation:spin .8s linear infinite}

/* ---------- מצב → צבע + איזה סמל מוצג ---------- */
[data-thx-state="verifying"] .thx-ic-spin{display:block}

[data-thx-state="confirmed"] .thx-badge{background:#E4F7F3;color:var(--teal-dark)}
[data-thx-state="confirmed"] .thx-ic-check{display:block}

[data-thx-state="pending"] .thx-badge{background:var(--amber-bg);color:var(--amber)}
[data-thx-state="pending"] .thx-ic-clock{display:block}

[data-thx-state="failed"] .thx-badge{background:var(--red-bg);color:var(--red)}
[data-thx-state="failed"] .thx-ic-alert{display:block}

[data-thx-state="noorder"] .thx-badge{background:var(--surface-2);color:var(--ink-soft)}
[data-thx-state="noorder"] .thx-ic-info{display:block}

/* סימן הווי שנמשך. מרגיע ומאשר — אבל רק פעם אחת, בלי לולאה שמושכת עין. */
@keyframes thxDraw{to{stroke-dashoffset:0}}
@keyframes thxPop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.06)}100%{transform:scale(1);opacity:1}}
[data-thx-state="confirmed"] .thx-badge{animation:thxPop .34s cubic-bezier(.34,1.56,.64,1) both}
[data-thx-state="confirmed"] .thx-ic-check path{stroke-dasharray:34;stroke-dashoffset:34;
  animation:thxDraw .45s .16s ease forwards}

/* ---------- כותרות ---------- */
.thx-title{font-size:25px;line-height:1.3;margin:0 0 8px;font-weight:800}
.thx-sub{margin:0;color:var(--ink-soft);font-size:14.5px;line-height:1.7}

/* ---------- שבבי פרטי ההזמנה ---------- */
.thx-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}
.thx-meta:empty{display:none}
.thx-chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;
  background:var(--surface-2);border:1px solid var(--line);border-radius:999px;
  padding:6px 14px;font-size:12.5px;color:var(--ink-soft)}
/* ⚠️ **חובה.** ‎thanks.js מסתיר שבב ריק עם המאפיין ‎hidden, אבל
   ‎[hidden]{display:none} של הדפדפן הוא כלל ברירת מחדל חלש יותר
   מ-‎.thx-chip{display:inline-flex} — בלי השורה הזו שבב "מספר הזמנה"
   ריק מוצג בדף גם כשאין הזמנה. אותו דבר לגבי ‎.thx-detail. */
.thx-chip[hidden],.thx-detail[hidden]{display:none}
/* מזהה הזמנה יכול להיות ארוך — שובר במקום לדחוף את הדף לרוחב. */
.thx-chip-v{font-family:'Rubik',sans-serif;font-weight:700;color:var(--ink);
  letter-spacing:.02em;overflow-wrap:anywhere}

/* ---------- בלוקים תלויי-מצב ---------- */
.thx-only{display:none}
[data-thx-state="verifying"] .thx-only-verifying,
[data-thx-state="confirmed"] .thx-only-confirmed,
[data-thx-state="pending"]   .thx-only-pending,
[data-thx-state="failed"]    .thx-only-failed,
[data-thx-state="noorder"]   .thx-only-noorder{display:block}

.thx-note{margin:0;text-align:center;font-size:13.5px;line-height:1.75;color:var(--ink-soft)}

/* ---------- "מה קורה עכשיו" ---------- */
.thx-h2{font-size:16px;margin:0 0 16px;font-weight:700}

.thx-steps{list-style:none;margin:0 0 4px;padding:0}
.thx-step{position:relative;display:flex;gap:13px;padding-bottom:20px}
/* הקו המחבר בין השלבים. inset-inline-start מוודא שהוא מתהפך נכון
   באנגלית בלי כלל נפרד ל-LTR. */
.thx-step::before{content:"";position:absolute;inset-inline-start:14px;top:32px;bottom:4px;
  width:2px;background:var(--line);border-radius:2px}
.thx-step-last{padding-bottom:0}
.thx-step-last::before{display:none}

.thx-step-num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--grad);
  color:#fff;display:grid;place-items:center;font-family:'Rubik',sans-serif;
  font-size:13px;font-weight:700;position:relative;z-index:1}
.thx-step-txt{min-width:0}
.thx-step-txt b{display:block;font-size:14.5px;font-weight:700;margin-bottom:3px;line-height:1.5}
.thx-step-txt span{display:block;font-size:13px;line-height:1.75;color:var(--ink-soft)}

/* ---------- זמני אספקה ---------- */
.thx-ship{margin-top:11px;background:var(--surface-2);border:1px solid var(--line-soft);
  border-radius:var(--radius-sm);padding:11px 14px}
.thx-ship-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px;
  font-size:12.5px;padding:5px 0;color:var(--ink-soft)}
.thx-ship-row + .thx-ship-row{border-top:1px solid var(--line-soft)}
.thx-ship-row b{color:var(--ink);font-weight:700}

/* ⚠️ ההערה שאומרת שאין מעקב ואין SMS. מובלטת בכוונה — היא מונעת את
   ההמתנה לעדכון שלא קיים. ראה thanks.html. */
/* מעקב אחרי ההזמנה בדף התודה — מוצג רק כשהשרת החזיר קוד.
   ⚠️ `hidden` בברירת מחדל: הזמנה שלא אומתה לא אמורה להציג קוד מעקב
   שלא יעבוד. thanks.js מסיר את התכונה רק במצב "confirmed". */
.thx-track{margin:22px 0 6px;padding:18px 20px;background:var(--blue-soft,#EEF5FF);
  border:1px solid #C7DDFC;border-radius:14px;text-align:center}
.thx-track[hidden]{display:none}
.thx-track-h{font-size:14.5px;font-weight:800;color:var(--ink,#0E2A47);margin-bottom:12px}
.thx-track-btn{display:inline-block;background:var(--blue,#1B6FE0);color:#fff;text-decoration:none;
  font-size:15px;font-weight:800;padding:12px 28px;border-radius:11px}
.thx-track-btn:hover{background:#1560c8}
.thx-track-code-l{font-size:12.5px;color:var(--ink-soft,#5F7590);margin-top:14px}
/* ⚠️ `direction:ltr` — הקוד הוא base64 ורגיש גם לרישיות וגם לסדר.
   בהקשר עברי הדפדפן היה מציג אותו הפוך, והלקוח היה מקליד שטויות. */
.thx-track-code{font-family:Consolas,Menlo,monospace;font-size:17px;font-weight:800;
  letter-spacing:1.5px;color:var(--ink,#0E2A47);background:#fff;border:1px dashed #C9DEF8;
  border-radius:10px;padding:10px 16px;display:inline-block;margin-top:6px;direction:ltr;
  user-select:all}

.thx-honest{margin:16px 0 0;background:var(--blue-soft);border:1px solid #C7DDFC;
  border-radius:var(--radius-sm);padding:12px 15px;font-size:12.5px;line-height:1.75;
  color:var(--blue-dark)}

/* ---------- תיבת הודעה (לא אומת / נכשל / אין הזמנה) ---------- */
.thx-notice{border-radius:var(--radius-sm);padding:14px 16px;font-size:13.5px;line-height:1.75}
.thx-notice p{margin:0}
.thx-notice p + p{margin-top:9px}
[data-thx-state="pending"] .thx-notice{background:var(--amber-bg);border:1px solid #F6DDAF;color:#7A5600}
[data-thx-state="failed"]  .thx-notice{background:var(--red-bg);border:1px solid #F6C9C7;color:#8A2F2B}
[data-thx-state="noorder"] .thx-notice{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-soft)}
/* נוסח השגיאה כפי שהשרת ניסח אותו — מוצג ולא מתורגם. */
.thx-detail{font-size:12.5px;opacity:.85;font-style:italic;overflow-wrap:anywhere}

/* ---------- פעולות ---------- */
.thx-actions{display:grid;gap:10px;margin-top:22px}
.thx-actions .btn{margin-top:0;width:100%;text-decoration:none}
/* בזמן האימות אין עדיין פעולה נכונה להציע. */
[data-thx-state="verifying"] .thx-actions,
[data-thx-state="verifying"] .thx-alt{display:none}
/* בהצלחה — "המשך לדף הבית" הוא הצעד הטבעי; בכל מצב אחר וואטסאפ הוא
   הפעולה שבאמת פותרת ללקוח את הבעיה, ולכן ראשון. */
.thx-act-wa{order:1}
.thx-act-home{order:2}
[data-thx-state="confirmed"] .thx-act-home{order:1}
[data-thx-state="confirmed"] .thx-act-wa{order:2}
/* ⚠️ #ui-wa הוא הסמל היחיד בספרייה שמצויר במילוי, ולכן לא משתמשים
   ב-.ui-ic (שקובע fill:none וגורם לו להיעלם). */
.thx-wa-ic{width:19px;height:19px;flex:none;fill:currentColor;stroke:none;display:block}

.thx-alt{margin:16px 0 0;text-align:center;font-size:12.5px;color:var(--ink-soft)}
.thx-alt a{color:var(--blue);font-weight:600;text-decoration:none;margin-inline-start:4px}
.thx-alt a:hover{text-decoration:underline}

/* ---------- מסכים צרים ---------- */
@media(max-width:560px){
  .thx-wrap{padding-top:26px;padding-bottom:44px}
  .thx-head{padding:28px 18px 20px}
  .thx-body{padding:20px 18px 22px}
  .thx-title{font-size:21px}
  .thx-badge{width:66px;height:66px;margin-bottom:15px}
  .thx-ic{width:34px;height:34px}
}

/* מי שביקש פחות תנועה מקבל את אותו מידע בלי אנימציה. */
@media(prefers-reduced-motion:reduce){
  [data-thx-state="confirmed"] .thx-badge{animation:none}
  [data-thx-state="confirmed"] .thx-ic-check path{stroke-dasharray:none;stroke-dashoffset:0;animation:none}
  .thx-spin{animation-duration:1.6s}
}

/* =====================================================================
   מעבר רספונסיבי — מובייל, טאבלט ומסכים צרים (כל האתר)
   =====================================================================
   דביר בדק את האתר בטלפון ובמסך אנכי ודיווח: "הרבה דברים היו חסרים,
   דברים לא הופיעו נכון, כפתורים/תפריט לא הופיע נכון". הממצא המרכזי:
   מתחת ל-1000px הניווט כולו היה `display:none` (השורה למעלה בקובץ) —
   בלי תפריט המבורגר חלופי. כלומר בטלפון ובטאבלט **אין שום ניווט**:
   אי אפשר להגיע לבונה, לתמיכה או לקטגוריות אלא בניחוש כתובת.

   כל הבלוקים כאן הם תוספות בסוף הקובץ בלבד: מעל 1000px (למעט תיקון
   התפריט הנפתח, ראו בלוק 1) שום כלל לא משתנה, כך שהדסקטופ נשאר
   פיקסל-פיקסל כמו קודם. הכול ב-inline-start/end כדי שיעבוד גם ב-EN.
===================================================================== */

/* ---------- 1. תפריט "מוצרים" נחתך מחוץ למסך (1001px–1460px) ----------
   ⚠️ באג אמיתי גם בדסקטופ צר וגם במסך אנכי: התפריט (‎min-width:680px)
   ממורכז מתחת לקישור "מוצרים", שיושב קרוב לקצה הפנימי של ההדר. בכל
   רוחב חלון שקטן מ‎-1460px~ החצי החיצוני של התפריט נדחף אל מחוץ למסך —
   ב-RTL ימינה (נחתך בשקט), וב-EN שמאלה. גרוע מזה: גם **סגור** התיבה
   שלו (‎visibility:hidden עדיין תופס שטח פריסה) הרחיבה את ‎scrollWidth
   ויצרה פס גלילה אופקי מיותר (נמדד ‎+73px ברוחב 1199).
   הפתרון: במקום מרכוז, התפריט נצמד לקצה ה-inline-start של הקישור
   וגדל פנימה אל תוך הדף — כך הוא לעולם לא חורג מהמסך, פתוח או סגור.
   העיגון לקישור עצמו נשמר, ולכן גשר ההצבעה (::before) ממשיך לעבוד. */
@media (min-width:1001px) and (max-width:1460px){
  .navcat-menu{left:auto;right:auto;inset-inline-start:0;transform:translateY(8px)}
  .navcat:hover .navcat-menu,.navcat.open .navcat-menu,.navcat:focus-within .navcat-menu{transform:translateY(0)}
  /* ⚠️ חייב לבוא אחרי שלושת מצבי הפתיחה — אותה ספציפיות, הסדר מכריע
     (בדיוק כמו בכלל המקורי למעלה). */
  .navcat.dismissed .navcat-menu{transform:translateY(8px)}
}

/* ---------- 2. ההדר במובייל/טאבלט (עד 1000px): הניווט חוזר ----------
   במקום להעלים את הניווט, ה-headbar נשבר לשורות: לוגו/עגלה/שפה בשורה
   הראשונה, והניווט הופך לרצועת גלילה אופקית ברוחב מלא מתחתיהם — הדפוס
   המקובל בחנויות מובייל, ובלי שום JS חדש.
   ⚠️ הסלקטור הוא ‎header nav#mainNav ולא ‎nav סתם: support.html מכיל
   ‎<nav class="sup-cats"> משלו מחוץ להדר, וכלל רחב היה הורס אותו.
   ⚠️ ‎!important נדרש כי builder.html ו-contact.html מזריקים בעצמם
   ‎`header nav{display:none !important}` מתחת ל-1000px (בלוק <style>
   בתוך ה-<helmet> של הייצוא). ה-id מעניק ספציפיות גבוהה יותר, וזה
   מה שמכריע בין שני כללי ‎!important. */
@media (max-width:1000px){
  .headbar{flex-wrap:wrap;gap:8px 14px}
  header nav#mainNav{
    display:flex !important;order:10;flex:0 0 100%;min-width:0;
    flex-wrap:nowrap;align-items:center;gap:2px;padding:0 2px 2px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
    scrollbar-width:none}
  header nav#mainNav::-webkit-scrollbar{display:none}
  /* יעד מגע: קישור בגובה ~40px במקום טקסט עם ריפוד 2px. הריפוד האופקי
     מחליף חלק מה-gap כדי שכל שטח בין מילים יהיה לחיץ. */
  header nav#mainNav > a,header nav#mainNav .navcat-btn{
    white-space:nowrap;flex:none;font-size:13.5px;padding:10px 9px}

  /* תפריט "מוצרים" בפריסה הזו: ההורה הופך static ולכן התפריט נפרס
     יחסית ל-header (sticky = הורה ממקם) על כל רוחב המסך, מתחת להדר —
     וכך הוא גם בורח מחיתוך ה-overflow של רצועת הגלילה (אלמנט אבסולוטי
     לא נחתך ע"י אב גולל שאינו ההורה הממקם שלו).
     ⚠️ במגע אין ‎hover, ולכן נגיעה ב"מוצרים" פשוט מנווטת לכל המוצרים
     (זה קישור) — התפריט המלא נשאר זמין לעכבר ולמקלדת. */
  .navcat{position:static}
  .navcat-menu{
    left:0;right:0;inset-inline-start:auto;transform:translateY(8px);
    min-width:0;margin-top:0;border-radius:0 0 14px 14px;
    padding:14px 16px 12px;
    /* מסך קצר: התפריט נגלל בתוך עצמו במקום להיחתך בתחתית המסך */
    max-height:min(72vh,560px);overflow-y:auto}
  .navcat:hover .navcat-menu,.navcat.open .navcat-menu,.navcat:focus-within .navcat-menu{transform:translateY(0)}
  .navcat.dismissed .navcat-menu{transform:translateY(8px)}
}

/* 📱 מגע: הראוּת של תפריט "מוצרים" נשלטת אך ורק ע"י .open — site-header.js
   מוסיף .navcat--touch ומטפל בפתיחה/סגירה בנגיעה בחץ. מבטלים פתיחה על
   :hover/:focus-within כדי שתרגום-מגע-לעכבר של הדפדפן לא יילחם ב-toggle
   (בלי זה הסגירה לא עבדה). רק opacity/visibility — המיקום (transform)
   נשאר לכללי הרוחב הקיימים. חייב לבוא אחרי כל כללי הפתיחה בקובץ. */
@media(hover:none){
  .navcat:hover .navcat-menu,
  .navcat:focus-within .navcat-menu{opacity:0;visibility:hidden;pointer-events:none}
  .navcat.open .navcat-menu{opacity:1;visibility:visible;pointer-events:auto}
}

/* ---------- 3. טלפון (עד 600px): הדר קומפקטי, חיפוש בשורה משלו ----------
   עד עכשיו תיבת החיפוש נמעכה ל~60px בין הלוגו לעגלה — אי אפשר להקליד
   בה. עכשיו: שורה 1 לוגו+עגלה+שפה, שורה 2 חיפוש ברוחב מלא, שורה 3
   רצועת הניווט. הסדר נקבע ב-order בלי לגעת ב-HTML. */
@media (max-width:600px){
  .headbar{gap:6px 10px}
  .brand-logo{height:44px}
  .head-search{order:8;flex:1 1 100%;max-width:none;margin-inline-start:0}
  .head-acts{margin-inline-start:auto}
  /* פאנל תוצאות החיפוש היה רחב מהמסך (‎min 380px) ונחתך — עכשיו הוא
     בדיוק ברוחב תיבת החיפוש, שהיא ממילא כל רוחב המסך. */
  .site-search-panel{width:100%;min-width:0}
  /* יעד מגע לעגלה שבהדר (38px → 42px) */
  .head-ic{width:42px;height:42px}
  header nav#mainNav > a,header nav#mainNav .navcat-btn{font-size:13px;padding:9px 7px}

  /* ⚠️ 16px ולא פחות בשדות קלט: iOS מבצע זום אוטומטי לכל input עם
     פונט קטן מ-16px, והדף "קופץ" בכל נגיעה בשדה. חל על החיפוש, שדות
     התשלום וה-select-ים. */
  .head-search input,.checkout-field input,.add-row input,select{font-size:16px}

  /* יעדי מגע בעגלה ובסיכום ההזמנה: כפתורי +/- של הכמות היו 18px —
     קטן מדי לאצבע. הסרה (פח) מקבלת שטח נגיעה גדול יותר סביב האייקון. */
  .qty-ctrl button{width:26px;height:26px;font-size:15px}
  .cart-item-remove{padding:8px}

  /* ⚠️ הכלל שהיה כאן (`width:auto` לשני מזהים) עלה למעלה והוחל על
     **כל** `.btn` במגירה, בכל הרוחבים. הוא נשאר מתועד שם. */

  /* הכפתורים הצפים (עגלה + וואטסאפ) כיסו רצועה שלמה בצד המסך הצר.
     קטנים יותר — עדיין לחיצים בנוחות (50px), מסתירים פחות תוכן. */
  .cart-fab{width:50px;height:50px;font-size:19px}
  .cart-fab-badge{min-width:18px;height:18px;font-size:10px}
  .wa-fab{width:50px;height:50px;bottom:78px}
  .wa-fab svg{width:25px;height:25px}
}

/* ---------- 3ב. חיפוש באנגלית: האייקון ישב על הטקסט (כל הרוחבים) ----------
   ⚠️ הריפוד של תיבת החיפוש פיזי (‎38px בצד ימין, ‎14px בצד שמאל) וכוון
   לעברית, שבה אייקון הזכוכית המגדלת יושב מימין. באנגלית האייקון עובר
   שמאלה (‎inset-inline-start) אבל הריפוד נשאר — והאייקון ישב על תחילת
   ה-placeholder. בעברית אין שום שינוי. */
[dir="ltr"] .head-search input{padding:10px 14px 10px 38px}

/* ---------- 4. בונה המחשבים: פס השלבים גלש מהמסך (עד 640px) ----------
   ⚠️ builder.html הוא ייצוא DesignCode שכולו סגנונות inline — אין שם
   מחלקות. הגלולה הלבנה של "1 בחירת רכיבים — 2 בדיקת תאימות — 3 סיכום"
   רחבה 523px ואינה מתכווצת (white-space:nowrap בפריטים), מה שניפח את
   viewport הפריסה בטלפון ל-545px: **כל האתר** הוצג מוקטן וחתוך בצד.
   הסלקטורים כאן לפי מקטעי ערך יציבים שקיימים גם בקובץ וגם אחרי
   שהרנטיים משכתב את style (‎"1820px" = עוטפי הרוחב של הבונה, ‎"999px" =
   הגלולה, ‎"46px" = קווי החיבור בין השלבים). אם המבנה ב-builder.html
   ישתנה — לעדכן גם כאן. ‎!important נדרש מול סגנון inline. */
@media (max-width:640px){
  [style*="1820px"] > [style*="999px"]{
    flex-wrap:wrap;justify-content:center;row-gap:4px;
    max-width:100%;border-radius:22px !important}
  /* קווי החיבור בין השלבים חסרי משמעות כשהשלבים נשברים לשורות */
  [style*="1820px"] > [style*="999px"] span[style*="46px"]{display:none !important}

  /* שורת הכפתורים שמעל הדמיית המחשב ("תאימות תקינה" + שני מתגי
     התצוגה): flex בלי wrap, והכפתור השלישי נחתך בקצה המסך (האזור הכהה
     הוא overflow:hidden ולכן החיתוך שקט). נשברת לשורות במקום להיחתך. */
  [data-col="stage"] > div:first-child{flex-wrap:wrap;row-gap:8px}
}

/* ---------- 5. בונה המחשבים: שלוש העמודות נחתכו ב-1181–1293px ----------
   ⚠️ הרשת של הבונה (inline) דורשת מינימום ‎280+640+290px + מרווחים =
   ‎~1294px, אבל נשברת לעמודה אחת רק מתחת ל-1180px (ה-media שבייצוא).
   בתווך שביניהם עמודת הסיכום נדחפה אל מחוץ למסך. במקום מינימום קשיח —
   אחוזים בלבד, כך שהעמודות מתכווצות לרוחב הזמין. מעל 1293px אין שינוי. */
@media (min-width:1181px) and (max-width:1293px){
  [data-cols]{grid-template-columns:minmax(0,20.5%) minmax(0,1fr) minmax(0,21.5%) !important}
}


/* ==================== dvt-mobile-taps — יעדי מגע בנייד ====================
   ⚠️ ~80% מהתנועה מגיעה מהטלפון, ולכן זו לא "התאמה" אלא הפלטפורמה
   העיקרית. מדידה בדפדפן ב-375×812 מצאה קישורים בגובה 19–30 פיקסלים;
   הסף המקובל למגע הוא 44×44 (Apple HIG) / 48×48 (Material).

   הכי גרועים היו קישורי הפוטר — 19 ו-20 פיקסלים. אצבע ממוצעת היא
   ~9 מ"מ, כלומר בערך 44 פיקסלים; קישור בגובה 19 פשוט מפספס.

   ⚠️ הפתרון הוא **ריפוד ולא font-size** — הטקסט נשאר באותו גודל ורק
   שטח הלחיצה גדל, כך שהעיצוב לא משתנה ויזואלית.

   ⚠️ הכל תחוּם ל-max-width:768px. הדסקטופ לא נוגע — שם יש עכבר, ו-44
   פיקסלים היו מנפחים את הפוטר בלי סיבה.

   ⚠️ אלמנטי .navcat-* **לא** נכללים כאן בכוונה: הם המגה-מניו של
   הדסקטופ ומסומנים visibility:hidden בנייד. הם נראו "קטנים" במדידה
   הראשונה ורק ניפחו את הספירה. */
@media (max-width:768px){

  /* קישורי הפוטר — 19px → 44px */
  footer li a{
    display:inline-flex; align-items:center;
    min-height:44px; padding-block:2px;
  }
  /* ⚠️ 14 קישורים × 44px = 616px של פוטר. שתי עמודות מחזירות
     את הגובה לקדמותו **בלי** לוותר על שטח הלחיצה — הרוחב הזמין הוא
     335px, כלומר ~157px לעמודה, ומספיק גם ל"ייעוץ לפני קנייה". */
  footer .footer-grid ul{
    display:grid; grid-template-columns:1fr 1fr;
    column-gap:12px; align-items:start;
  }
  /* שורת התקנון/פרטיות — 20px → 44px, בלי לשבור את ה-flex-wrap */
  .footer-legal{gap:6px 18px}
  .footer-legal a{
    display:inline-flex; align-items:center;
    min-height:44px; padding-inline:4px;
  }

  /* "צפה בכל הקטגוריות" / "הצג הכל" — 21px */
  .sec-head .more{min-height:44px; padding-inline:6px}

  /* לוגואי היצרנים ברצועה — 25px */
  .brand-strip a{
    display:inline-flex; align-items:center;
    min-height:44px; padding-inline:8px;
  }

  /* מתג השפה — 30px */
  .lang-btn{min-height:40px; padding-inline:12px}

  /* "⟵ המשך גלישה" בצ'קאאוט — 21px */
  .checkout-back-link{display:inline-flex; align-items:center; min-height:44px}

  /* ⚠️ קישורים **בתוך שורת טקסט** (tracking, תקנון) נשארים כמו שהם
     בכוונה — WCAG 2.5.5 פוטר אותם מהסף, והגדלתם הייתה שוברת את
     רווח השורות של הפסקה. */

  /* ניווט עליון ואייקוני הכותרת — 39/42px, גבוליים */
  header nav a{min-height:44px; display:inline-flex; align-items:center}
  .head-ic{min-width:44px; min-height:44px}

  /* ⚠️ טקסט 10px ברצועת היצרנים — קטן מדי לקריאה בנייד.
     11.5 הוא המינימום שנשאר קריא בלי לשבור את הפריסה. */
  .brand-strip a, .brand-strip span{font-size:11.5px}
}


/* אייקון קטגוריה בתפריט המוצרים — עיגול קטן לצד כל שורה.
   ⚠️ אותו איור של כרטיס הקטגוריה בדף הבית, רק קטן ובעיגול: הלקוח
   מזהה את אותו סמל בשני המקומות, וזה מה שנותן תחושת מלאות בלי
   להוסיף ולו קובץ אחד. */
.navcat-ic{
  flex:none; width:26px; height:26px; border-radius:50%;
  background:var(--blue-soft); display:grid; place-items:center;
  margin-inline-end:9px;
}
.navcat-ic svg{width:16px; height:16px}
.navcat-link:hover .navcat-ic{background:#DCE9FC}
/* השורה כבר flex; מוודאים יישור אנכי נקי עם האייקון */
.navcat-link{align-items:center}


/* ==================== אזור בטוח לכפתורים הצפים ====================
   🔴 הבעיה שדביר ראה: בועת הוואטסאפ/העגלה ישבה על טקסט ולא אפשרה
   לקרוא אותו. נמדד ב-375px — `cart-fab` כיסה שורה בפאנל ממצאי ההרכב.

   ⚠️ העיקר הוא לא שהכפתור *לפעמים* חופף — כפתור צף תמיד חופף משהו
   בזמן גלילה. העיקר הוא ש**בתחתית הדף אי אפשר היה לגלול את התוכן
   החוצה מתחתיו**: הגעת לסוף, והשורה האחרונה נשארה מכוסה לתמיד.
   `--fab-safe` מוסיף בדיוק את המקום הזה בסוף כל דף, כך שכל תוכן
   ניתן להזזה אל מעל הכפתורים.

   ⚠️ נמדד ולא נוחש: 24px תחתית + 56 עגלה + 14 רווח + 56 וואטסאפ
   ≈ 150px, ובנייד הכפתורים קטנים יותר ולכן 132px. */
:root{ --fab-safe: 150px }
@media (max-width:768px){ :root{ --fab-safe: 132px } }

/* ⚠️ **לא** על body. ריפוד על body מוסיף את המקום *מתחת* לפוטר, וכיוון
   שהפוטר כהה ורקע הגוף בהיר נוצרה רצועה בהירה בתחתית שנראית כמו תקלה
   (נראה בצילום ותוקן מיד). ספייסר בתוך הפוטר נותן בדיוק את אותו מקום
   גלילה, אבל בצבע הפוטר — כלומר בלתי נראה. */
footer::after{ content:""; display:block; height: var(--fab-safe) }

/* ⚠️ scrollIntoView לא יודע על הכפתורים הצפים ומצמיד את היעד לתחתית
   הדפדפן — כלומר בדיוק מתחתיהם. זה שומר עליו מעליהם. */
*{ scroll-margin-bottom: var(--fab-safe) }

/* בנייד הכפתורים קטנים יותר: הם עדיין בולטים לעין אבל תופסים פחות
   שטח על התוכן. ⚠️ 44px הוא המינימום לשטח נגיעה נוח — לא לרדת מזה. */
@media (max-width:768px){
  .wa-fab, .cart-fab{ width:44px; height:44px }
  .cart-fab{ bottom:18px; inset-inline-end:14px }
  .wa-fab{ bottom:76px; inset-inline-end:14px }
}

/* שירותים בתיאום מראש — שורות מידע בקופה, בלי תיבת סימון ובלי מחיר.
   ⚠️ מכוון להיראות שונה משירות שאפשר לבחור, כדי שלא ייווצר רושם
   שאפשר להוסיף אותם להזמנה ולשלם עליהם עכשיו. */
.svc-onreq{margin-top:12px;padding:11px 12px;border:1px dashed var(--line,#E2EAF2);
  border-radius:12px;background:var(--surface-2,#F7FAFD)}
.svc-onreq-h{font-size:11.5px;font-weight:800;color:var(--ink-soft,#5F7590);margin-bottom:7px}
.svc-onreq-row{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink,#0E2A47);
  padding:4px 0}
.svc-onreq-row::before{content:"•";color:var(--ink-soft,#5F7590)}
.svc-onreq-link{display:inline-block;margin-top:7px;font-size:12px;font-weight:800;color:var(--blue,#1B6FE0)}

/* תצלום קטגוריה בתפריט. ⚠️ cover ולא contain: העיגול קטן (26px)
   ותמונה עם שוליים לבנים הייתה נראית כמו כתם. */
/* ⚠️ התמונה היא <img> ולא רקע — רק כך יש onerror שמחזיר לאיור.
   האיור יושב מתחת (position:absolute) ומתגלה כשה-img מסיר את עצמו. */
.navcat-ic--photo{position:relative; overflow:hidden; background:#F1F6FC}
.navcat-ic--photo > img{position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:1}
.navcat-ic--photo > .navcat-fallback{position:absolute; inset:0; margin:auto;
  width:60%; height:60%; z-index:0; opacity:.55}
.navcat-link:hover .navcat-ic--photo{filter:brightness(1.06)}

/* בורר תחום החיפוש בראש החלונית */
.ss-scope{display:flex;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line,#E2EAF2);
  background:var(--surface-2,#F7FAFD);position:sticky;top:0;z-index:2}
.ss-scope-btn{border:1px solid var(--line,#E2EAF2);background:#fff;color:var(--ink-soft,#5F7590);
  border-radius:999px;padding:5px 13px;font-family:'Heebo',sans-serif;font-size:12px;font-weight:700;
  cursor:pointer;transition:.15s}
.ss-scope-btn:hover{border-color:var(--blue,#1B6FE0);color:var(--blue,#1B6FE0)}
.ss-scope-btn.is-on{background:var(--blue,#1B6FE0);border-color:var(--blue,#1B6FE0);color:#fff}

/* הודעת "ההזמנה לא אותרה" בדף הביטול — נוסף 26.08.
   ⚠️ ענברי ולא אדום: הבקשה **התקבלה** ותקפה; זו הנחיה, לא שגיאה. */
.cxl-notfound{
  background:var(--amber-bg,#FFF6EA);
  border:1px solid var(--amber,#D9822B);
  border-radius:10px;
  padding:12px 14px;
  font-size:13.5px;
  line-height:1.6;
  margin:14px auto 0;
  max-width:46ch;
}
.cxl-notfound a{ color:var(--blue,#1B6FE0); font-weight:700 }


/* ==================== 🎁 מתנות ====================
   שלושה רכיבים: מד ההתקדמות הצף (בכל דף), אזור המתנה בקופה,
   ומודאל בחירת המוצר.

   ⚠️ המד יושב בפינה **הפותחת** (inset-inline-start) בכוונה: שתי
   הפינות הסוגרות תפוסות — עגלה ב-24px ו-וואטסאפ ב-94px. פינה
   משותפת הייתה מכסה את כפתור העגלה בדיוק ברגע שהלקוח רוצה ללחוץ
   עליו.
   ⚠️ צבע סגול (#7C3AED) ולא הכחול/טורקיז של המותג: המד הוא הודעה
   ולא רכיב ניווט, וצריך להיקרא כמשהו אחר מכל השאר במסך.
   ⚠️ prefers-reduced-motion מכובד בשתי נקודות — כניסת המד והקונפטי. */

.gift-meter{
  position:fixed; bottom:24px; inset-inline-start:24px; z-index:95;
  width:min(280px, calc(100vw - 96px));
  background:var(--surface,#fff);
  border:1px solid #E9D5FF;
  border-inline-start:4px solid #7C3AED;
  border-radius:14px; padding:12px 14px 13px;
  box-shadow:0 12px 32px rgba(11,44,77,.16);
  font-family:'Heebo',sans-serif; cursor:pointer;
  animation:giftMeterIn .32s cubic-bezier(.22,.9,.3,1);
}
.gift-meter[hidden]{ display:none }
.gift-meter.is-won{ border-color:#C4B5FD; background:linear-gradient(180deg,#FBF7FF 0%,#fff 60%) }
@keyframes giftMeterIn{ from{ opacity:0; transform:translateY(14px) } to{ opacity:1; transform:translateY(0) } }

.gift-meter-x{
  position:absolute; top:4px; inset-inline-end:6px;
  border:none; background:none; color:var(--ink-soft,#5F7590);
  font-size:13px; line-height:1; padding:4px; cursor:pointer; border-radius:6px;
}
.gift-meter-x:hover{ background:var(--line-soft,#EDF2F8); color:var(--ink,#0E2A47) }

.gift-meter-head{ display:flex; align-items:flex-start; gap:8px; margin-inline-end:14px }
.gift-meter-emoji{ font-size:17px; line-height:1.3; flex-shrink:0 }
.gift-meter-text{ font-size:12.5px; line-height:1.5; color:var(--ink,#0E2A47) }
.gift-meter-text b{ color:#6D28D9; font-weight:800 }

.gift-meter-bar{
  height:6px; border-radius:99px; background:var(--line-soft,#EDF2F8);
  margin:9px 0 0; overflow:hidden;
}
.gift-meter-bar > i{
  display:block; height:100%; width:0;
  background:linear-gradient(90deg,#7C3AED 0%,#2FC4B0 100%);
  /* 🎢 ‏.8s במקום .45 — דביר: "שזה יעלה ביותר smooth, כרגע זה
     קפיצות". הקפיצה המורגשת הייתה בעיקר בספרות — הן מתגלגלות
     עכשיו ב-JS (dvtGiftRollNumber_) — והפס הואט להתאמה. */
  border-radius:99px; transition:width .8s cubic-bezier(.22,1,.36,1);
}
.gift-meter-sub{ margin-top:7px; font-size:11px; color:#0E9C8A; font-weight:700; line-height:1.45 }
.gift-meter-sub[hidden]{ display:none }

/* 🔴 **"במתנה" בצבע חם — בקשת דביר: "שיבלוט ויהיה מרגש".**
   ⚠️ ורוד-אדום (#E11D48) ולא `--red` של האתר: ‏`--red` הוא צבע
   **שגיאה** (שדה לא תקין, מוצר שאזל). אותו צבע לבשורה טובה מלמד
   את העין הפוך, וזה בדיוק סוג הדבר שמרגיש "לא בסדר" בלי שיודעים
   להצביע עליו.
   ⚠️ הזוהר הוא `text-shadow` ולא `filter` — filter על טקסט מטשטש
   אותו בפועל במסכים לא-Retina. */
.gift-hot{
  color:#E11D48; font-weight:900;
  text-shadow:0 0 10px rgba(225,29,72,.35);
  animation:giftHotPulse 2.4s ease-in-out infinite;
}
@keyframes giftHotPulse{
  0%,100%{ text-shadow:0 0 8px rgba(225,29,72,.28) }
  50%    { text-shadow:0 0 15px rgba(225,29,72,.55) }
}
.gift-tier.is-passed .gift-hot,
.gift-tier:not(.is-won):not(.is-passed) .gift-hot{
  /* במדרגה שעוד לא הושגה ההדגשה נשארת אבל בלי הפעימה — אחרת ארבע
     שורות פועמות יחד וזה רועש. */
  animation:none; text-shadow:none; opacity:.85;
}

/* ---------- "הצג את כל המדרגות" ---------- */
.gift-meter-toggle{
  margin-top:9px; padding-top:8px; border-top:1px dashed var(--line,#E2EAF2);
  font-size:11px; font-weight:700; color:#7C3AED; text-align:center;
}
.gift-meter-toggle[hidden]{ display:none }
.gift-meter-all{ margin-top:7px; display:flex; flex-direction:column; gap:2px }
.gift-meter-all[hidden]{ display:none }

.gift-tier{
  display:flex; align-items:center; gap:7px;
  padding:5px 7px; border-radius:7px; font-size:11px; line-height:1.35;
  /* 🔴 מעומעם אבל **קריא**. כל מטרת הרשימה היא שהלקוח יראה לאן
     לשאוף; מדרגה מטושטשת מדי לא מושכת לשום מקום. */
  color:var(--ink-soft,#5F7590); background:var(--surface-2,#F7FAFD);
}
.gift-tier-min{ flex:none; font-weight:800; font-family:'Rubik',sans-serif; min-width:52px }
.gift-tier-title{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.gift-tier-state{ flex:none; font-weight:700; font-size:10.5px; opacity:.8 }

.gift-tier.is-won{
  color:var(--ink,#0E2A47); background:#F5F0FF; cursor:pointer;
}
.gift-tier.is-won .gift-tier-min{ color:#6D28D9 }
.gift-tier.is-won .gift-tier-state{ color:#0E9C8A; opacity:1; font-size:12px }
.gift-tier.is-won:hover{ background:#EDE4FF }
.gift-tier.is-passed{ opacity:.75 }

/* קונפטי — 14 חלקיקים, בלי ספרייה. ⚠️ pointer-events:none כדי שלא
   יחטפו את הלחיצה על המד בדיוק בשנייה שהוא חוגג. */
.gift-confetti{ position:absolute; inset:0; overflow:hidden; pointer-events:none; border-radius:14px }
.gift-confetti > i{
  position:absolute; top:-10px; width:7px; height:11px; border-radius:2px;
  animation:giftConfetti 1.25s ease-in forwards;
}
@keyframes giftConfetti{
  0%{ transform:translateY(0) rotate(0); opacity:1 }
  100%{ transform:translateY(150px) rotate(420deg); opacity:0 }
}

@media(max-width:600px){
  .gift-meter{ bottom:16px; inset-inline-start:12px; width:min(255px, calc(100vw - 84px)); padding:10px 12px 11px }
  .gift-meter-text{ font-size:12px }
}
@media print{ .gift-meter{ display:none } }
@media(prefers-reduced-motion:reduce){
  .gift-meter{ animation:none }
  .gift-meter-bar > i{ transition:none }
  .gift-confetti{ display:none }
  /* ⚠️ הצבע נשאר, הפעימה נעצרת — מי שביקש פחות תנועה עדיין צריך
     לראות את ההדגשה. */
  .gift-hot{ animation:none }
}

/* ---------- אזור המתנה בקופה ---------- */
.gift-block{
  margin:18px 0 12px; padding:14px 15px;
  background:linear-gradient(180deg,#FBF7FF 0%,var(--surface,#fff) 70%);
  border:1px solid #E9D5FF; border-radius:14px;
}
.gift-block-flash{ animation:giftFlash 1.1s ease }
@keyframes giftFlash{ 0%,100%{ box-shadow:0 0 0 0 rgba(124,58,237,0) } 35%{ box-shadow:0 0 0 6px rgba(124,58,237,.16) } }

.gift-block-head{ display:flex; align-items:center; gap:10px; margin-bottom:11px }
.gift-block-emoji{ font-size:24px; line-height:1 }
.gift-block-title{ font-size:15px; font-weight:800; color:#6D28D9 }
.gift-block-sub{ font-size:12.5px; color:var(--ink-soft,#5F7590); margin-top:2px }
.gift-block-note{ font-size:11.5px; color:var(--ink-soft,#5F7590); margin:8px 0 0; text-align:center }
.gift-pick-btn{ width:100% }

.gift-chosen{
  display:flex; align-items:center; gap:11px;
  background:var(--surface,#fff); border:1px solid var(--line,#E2EAF2);
  border-radius:11px; padding:9px 11px;
}
.gift-chosen-img{
  flex:none; width:46px; height:46px; border-radius:9px; overflow:hidden;
  background:#fff; display:flex; align-items:center; justify-content:center;
}
.gift-chosen-img img{ max-width:100%; max-height:100%; object-fit:contain; display:block }
.gift-chosen-main{ flex:1; min-width:0 }
.gift-chosen-name{
  font-size:13.5px; font-weight:700; color:var(--ink,#0E2A47);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.gift-chosen-price{ font-size:12px; color:var(--ink-soft,#5F7590); margin-top:2px }
.gift-chosen-price b{ color:#0E9C8A }
.gift-chosen-swap{
  flex-shrink:0; border:1px solid var(--line,#E2EAF2); background:none;
  color:var(--blue,#1B6FE0); border-radius:99px; padding:6px 13px;
  font-family:'Heebo',sans-serif; font-size:12px; font-weight:700; cursor:pointer; transition:.15s;
}
.gift-chosen-swap:hover{ border-color:var(--blue,#1B6FE0); background:var(--blue-soft,#E9F2FE) }

/* ---------- מודאל בחירת המתנה ---------- */
.gift-modal{
  position:fixed; inset:0; z-index:130; display:none;
  background:rgba(11,44,77,.45);
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
}
.gift-modal.show{ display:flex; align-items:center; justify-content:center; padding:20px }
.gift-modal-panel{
  background:var(--surface,#fff); border-radius:18px;
  width:min(760px,100%); max-height:min(86vh,780px);
  display:flex; flex-direction:column; overflow:hidden;
  box-shadow:0 24px 70px rgba(11,44,77,.3);
}
.gift-modal-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 18px 12px; border-bottom:1px solid var(--line-soft,#EDF2F8);
}
.gift-modal-head h3{ margin:0; font-size:16.5px; color:#6D28D9 }
.gift-modal-search{
  margin:12px 18px 0; padding:10px 13px;
  border:1px solid var(--line,#E2EAF2); border-radius:10px;
  font-family:'Heebo',sans-serif; font-size:13.5px; color:var(--ink,#0E2A47);
}
.gift-modal-search:focus{ outline:none; border-color:#7C3AED }
.gift-modal-cats{ display:flex; gap:7px; overflow-x:auto; padding:12px 18px 4px; flex-shrink:0 }
.gift-cat{
  flex-shrink:0; border:1px solid var(--line,#E2EAF2); background:none;
  color:var(--ink-soft,#5F7590); border-radius:99px; padding:5px 12px;
  font-family:'Heebo',sans-serif; font-size:12px; font-weight:700; cursor:pointer; transition:.15s;
}
.gift-cat span{ opacity:.6; font-size:11px }
.gift-cat:hover{ border-color:#7C3AED; color:#6D28D9 }
.gift-cat.on{ background:#7C3AED; border-color:#7C3AED; color:#fff }
.gift-cat.on span{ opacity:.75 }

/* 🔴 **`auto-fill`, ולא `auto-fit`. נבדק — אל תחליף.**
   ניסיתי `auto-fit` כדי "לנצל את השטח בצד", ושתי טעויות יצאו מזה:
     1. `minmax(132px, max(132px,1fr))` הוא **CSS לא תקין** — `fr`
        אינו מותר בתוך `max()`. הדפדפן פסל את כל הכלל ונפל לעמודה
        אחת: כרטיס אחד ברוחב **709px**, שישה מתחת לזה.
     2. גם אילו היה תקין — `auto-fit` מכווץ עמודות ריקות, ולכן פריט
        בודד בשורה האחרונה נמתח על כל הרוחב. כרטיס מוצר ענק בודד
        נראה שבור יותר משורה עם מקום פנוי.
   ⚠️ מקום ריק בסוף השורה האחרונה הוא התנהגות נכונה של רשת מוצרים,
   ולא באג. מה שדביר ראה בפועל היה **גלישת התמונות** (ראה
   `.gift-card-img`), ו-`auto-fill` לא קשור לזה. */
.gift-modal-grid{
  flex:1; overflow-y:auto; padding:14px 18px;
  display:grid; gap:10px;
  grid-template-columns:repeat(auto-fill,minmax(132px,1fr));
  align-content:start;
}
.gift-card{
  display:flex; flex-direction:column; align-items:stretch; gap:7px;
  border:1px solid var(--line,#E2EAF2); background:var(--surface,#fff);
  border-radius:12px; padding:10px; cursor:pointer;
  font-family:'Heebo',sans-serif; text-align:center; transition:.16s;
  /* ⚠️ בלי זה כרטיס עם שם קצר נמוך משכנו והרשת נראית שבורה. */
  min-width:0;
}
.gift-card:hover{ border-color:#7C3AED; transform:translateY(-2px); box-shadow:0 8px 20px rgba(124,58,237,.14) }
.gift-card.on{ border-color:#7C3AED; background:#FBF7FF; box-shadow:0 0 0 2px rgba(124,58,237,.18) }

/* 🔴 **תיבת התמונה — היא שהייתה חסרה, ובלעדיה הכל נשבר.**
   הכרטיס השתמש ב-`dvtThumbHtml`, שכל ה-CSS שלו מוגדר תחת
   `.site-search-row` בלבד. מחוץ לשם ל-`<img>` אין מידה, הוא נפרס
   במאות פיקסלים, גלש מהכרטיס וכיסה את השכנים — וממלא המקום של
   הקטגוריה הוצג יחד איתו במקום להיעלם.
   ⚠️ `aspect-ratio` ולא גובה קבוע: כל הכרטיסים מקבלים בדיוק אותו
   ריבוע תמונה בלי קשר לפרופורציה של הקובץ, ולכן הרשת ישרה.
   ⚠️ `contain` ולא `cover` — מוצר חייב להיראות שלם, לא חתוך. */
.gift-card-img{
  display:flex; align-items:center; justify-content:center;
  width:100%; aspect-ratio:1/1; overflow:hidden;
  background:#fff; border-radius:9px;
}
.gift-card-img img{
  max-width:100%; max-height:100%; width:auto; height:auto;
  object-fit:contain; display:block;
}
.gift-card-name{
  font-size:11.5px; font-weight:700; color:var(--ink,#0E2A47); line-height:1.35;
  /* ⚠️ שתי שורות ואז חיתוך — שם מלא בכרטיס צר הורס את הרשת. */
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  /* ⚠️ מרכז את השם אנכית כשהוא שורה אחת, כדי שהמחיר יישאר בקו אחד
     בכל הכרטיסים ברשת. */
  margin-top:auto;
}
.gift-card-price{ font-size:12.5px; font-weight:800; color:#6D28D9 }
.gift-modal-empty{ grid-column:1/-1; text-align:center; color:var(--ink-soft,#5F7590); font-size:13px; padding:30px 0 }
.gift-modal-foot{
  display:flex; gap:9px; padding:12px 18px 16px;
  border-top:1px solid var(--line-soft,#EDF2F8); flex-shrink:0;
}
.gift-modal-foot .btn{ flex:1; margin:0 }

@media(max-width:600px){
  .gift-modal.show{ padding:0 }
  .gift-modal-panel{ max-height:100vh; height:100%; border-radius:0 }
  .gift-modal-grid{ grid-template-columns:repeat(auto-fill,minmax(126px,1fr)); padding:12px }
}

/* שורת ההכוונה מתחת לבורר התשלומים. ⚠️ ענברי ולא ירוק — זו הכוונה,
   לא אישור, וירוק באתר הזה אומר "הצליח". */
.pay-best-hint{
  margin:7px 0 0; padding:7px 10px; border-radius:8px;
  background:var(--amber-bg,#FFF6EA); border:1px solid rgba(217,130,43,.35);
  color:#8A5316; font-size:11.5px; font-weight:600; line-height:1.5;
}
.pay-best-hint[hidden]{ display:none }

/* ==================== שירותים נוספים — הבלטה ופירוט ====================
   🔴 **דביר: "שירותים נוספים מאוד דומה לבחירת משלוח מבחינת הניראות —
   היה לי קשה למצוא את זה בעין, זה נבלע בדף."**
   ⚠️ הפתרון הוא **היררכיה**, לא עוד צבע: מסגרת ענברית חמה במקום
   האפור הניטרלי של המשלוח, כותרת גדולה יותר, ופס צבע בהתחלה. שני
   אזורים סמוכים בדיוק באותו משקל = העין לא יודעת במה להסתכל.
   ⚠️ ענבר ולא כחול — כחול הוא צבע הפעולה באתר (כפתורים, קישורים),
   ואזור שלם בכחול היה מתחרה בכפתור התשלום עצמו. */
.svc-box{
  border:1.5px solid var(--amber,#D9822B) !important;
  border-inline-start:5px solid var(--amber,#D9822B) !important;
  background:linear-gradient(180deg,var(--amber-bg,#FFF6EA) 0%,var(--surface,#fff) 62%) !important;
  border-radius:14px;
}
.svc-box > .svc-summary .svc-title{ font-size:15.5px; font-weight:800; color:#8A5316 }
.svc-box > .svc-summary{ padding-block:13px }

/* שורת ההכוונה "1+1" */
.svc-bundle-nudge{
  margin:0 0 10px; padding:9px 12px; border-radius:9px;
  background:#F5F0FF; border:1px solid #DDD0FF;
  color:#5B21B6; font-size:12.5px; font-weight:600; line-height:1.5;
}
.svc-bundle-nudge[hidden]{ display:none }

/* ---------- שורת שירות + פירוט ----------
   ⚠️ הפירוט הוא **אח** של ה-label ולא בתוכו: כל קליק בתוך label
   מחליף את תיבת הסימון שלו, ולכן כפתור "מה כלול?" בתוכו היה מסמן
   את השירות. ראה ההערה ב-renderServiceOptions. */
.svc-row{ display:block; margin-bottom:8px }
.svc-row.is-hot .svc-opt{
  border-color:var(--amber,#D9822B);
  background:linear-gradient(180deg,#FFFBF4 0%,var(--surface,#fff) 70%);
}
.svc-badge{
  display:inline-block; margin-inline-start:7px; padding:1px 8px;
  border-radius:999px; background:var(--amber,#D9822B); color:#fff;
  font-size:10px; font-weight:800; vertical-align:middle;
}
.svc-price s{ color:var(--ink-soft,#5F7590); font-weight:600; opacity:.75; margin-inline-end:5px }

.svc-more{
  display:block; margin:5px 0 0; padding:4px 10px;
  border:none; background:none; cursor:pointer;
  font-family:'Heebo',sans-serif; font-size:11.5px; font-weight:700;
  color:var(--blue,#1B6FE0); text-decoration:underline; text-underline-offset:3px;
}
.svc-more:hover{ color:var(--blue-dark,#0E4C97) }
.svc-details{
  margin:4px 0 0; padding:9px 12px; list-style:none;
  background:var(--surface-2,#F7FAFD); border:1px solid var(--line-soft,#EDF2F8);
  border-radius:9px; font-size:11.5px; line-height:1.65; color:var(--ink,#0E2A47);
}
.svc-details[hidden]{ display:none }
.svc-details li{ padding-inline-start:15px; position:relative; margin-bottom:3px }
.svc-details li:last-child{ margin-bottom:0 }
.svc-details li::before{
  content:"✓"; position:absolute; inset-inline-start:0; top:0;
  color:var(--teal-dark,#0E9C8A); font-weight:800; font-size:11px;
}

/* ---------- הפניה למחשב קיים ---------- */
.svc-onreq{ margin-top:12px; padding-top:11px; border-top:1px dashed var(--line,#E2EAF2) }
.svc-onreq-h{ font-size:12px; font-weight:700; color:var(--ink,#0E2A47); margin-bottom:4px }
.svc-onreq-link{ font-size:11.5px; color:var(--blue,#1B6FE0); text-decoration:none; font-weight:600 }
.svc-onreq-link:hover{ text-decoration:underline }

/* 🐞 דיווח באג — בפוטר של כל דף. ⚠️ מאופק בכוונה: זו לא קריאה
   לפעולה שיווקית, אלא דלת שירות למי שנתקל במשהו. */
.footer-bug{
  display:inline-block; margin-top:9px; padding:5px 12px;
  border:1px solid rgba(255,255,255,.28); background:none; cursor:pointer;
  border-radius:999px; font-family:'Heebo',sans-serif;
  font-size:11.5px; font-weight:600; color:rgba(255,255,255,.72);
  transition:.16s;
}
.footer-bug:hover{ border-color:rgba(255,255,255,.6); color:#fff; background:rgba(255,255,255,.08) }


/* ==================== 🎁 מודעת "קנית? קיבלת!" ====================
   v2 (27.08) — הכיוון של המודעה שדביר עיצב: נייבי כהה, כרטיסים
   בוהקים שגדלים, שלושת השלבים בצד. HTML חי — לא תמונה (‏§10.8:
   קורא מסך, אינדוקס, ואפס רג'נרוט על שינוי מספר).
   שני עקרונות שנשארו מ-v1:
   1. **הסולם נראה עולה** — rank ‏0-3 קובע גודל; העליון עם זוהר ותג.
   2. **RTL: הנמוך הכי ימני** — סדר ה-DOM הוא סדר העלייה. */
#giftPromo{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg,#0B2440 0%,#10315A 55%,#0B2C4D 100%);
  border:1px solid #1E4A7A; border-radius:var(--radius,16px);
  padding:30px 26px 22px; color:#EAF2FB;
}
/* עיטורי מעגלים טכיים עדינים ברקע, כמו במודעה */
#giftPromo::before, #giftPromo::after{
  content:""; position:absolute; border-radius:50%; pointer-events:none;
  border:1.5px solid rgba(79,217,199,.14);
}
#giftPromo::before{ width:260px; height:260px; top:-90px; inset-inline-start:-70px }
#giftPromo::after{ width:200px; height:200px; bottom:-70px; inset-inline-end:-50px }

.gp-head{ text-align:center; margin-bottom:20px; position:relative }
.gp-head h2{
  margin:0 0 8px; font-size:38px; font-weight:900; color:#FFFFFF;
  font-family:'Rubik',sans-serif; letter-spacing:-0.5px;
}
.gp-head h2 em{
  font-style:normal;
  background:linear-gradient(100deg,#4FD9C7 0%,#7CC7FF 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.gp-head p{ margin:0; font-size:15px; color:#B9CDE4 }

.gp-body{ display:flex; gap:18px; align-items:stretch }
.gp-flow{
  flex:0 0 175px; display:flex; flex-direction:column; justify-content:center;
  gap:2px;
}
.gp-step{
  display:flex; gap:10px; align-items:center;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  border-radius:12px; padding:10px 12px;
}
.gp-step-ic{ font-size:20px; flex:none }
.gp-step b{ display:block; font-size:12.5px; color:#fff }
.gp-step span{ display:block; font-size:10.5px; color:#9FB6D2; line-height:1.4 }
.gp-step-arr{ text-align:center; color:#4FD9C7; font-size:14px; line-height:1 }

.gp-row{ flex:1; display:flex; gap:12px; align-items:stretch; justify-content:center; flex-wrap:wrap }
.gp-card{
  position:relative; display:flex; flex-direction:column; align-items:center;
  gap:6px; text-align:center;
  background:#F7FAFD; border:1px solid rgba(255,255,255,.25);
  border-radius:14px; flex:1 1 0; min-width:140px; max-width:230px;
  box-shadow:0 10px 26px rgba(0,0,0,.28);
}
/* המדרגה: גודל עולה עם הדרגה */
.gp-r0{ padding:13px 10px 11px; opacity:.94 }
.gp-r1{ padding:16px 11px 13px; opacity:.97 }
.gp-r2{ padding:19px 12px 15px }
.gp-r3{ padding:22px 13px 17px }
.gp-r0 .gp-what{ font-size:12.5px } .gp-r1 .gp-what{ font-size:13.5px }
.gp-r2 .gp-what{ font-size:14.5px } .gp-r3 .gp-what{ font-size:15.5px }
.gp-top{
  border:2px solid #4FD9C7;
  box-shadow:0 0 0 4px rgba(79,217,199,.18), 0 14px 34px rgba(0,0,0,.35);
}
.gp-best{
  position:absolute; top:-11px; inset-inline-start:50%; transform:translateX(50%);
  background:linear-gradient(100deg,#0E9C8A,#4FD9C7); color:#042520;
  font-size:10.5px; font-weight:800; border-radius:999px; padding:3px 12px;
  white-space:nowrap; box-shadow:0 4px 12px rgba(79,217,199,.4);
}
[dir="ltr"] .gp-best{ transform:translateX(-50%) }

.gp-min{ font-size:11.5px; color:var(--ink-soft,#5F7590) }
.gp-min b{ color:var(--navy-950,#0B2C4D); font-family:'Rubik',sans-serif; font-size:16px }
.gp-what{ font-weight:800; color:var(--ink,#0E2A47); line-height:1.3 }
.gp-img{
  width:76px; height:76px; border-radius:12px; background:#fff;
  border:1px solid var(--line-soft,#EDF2F8);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.gp-r2 .gp-img{ width:88px; height:88px }
.gp-r3 .gp-img{ width:100px; height:100px }
.gp-img img{ max-width:88%; max-height:88%; object-fit:contain; display:block }
.gp-img-empty{ font-size:30px }
.gp-sample{
  font-size:10.5px; color:var(--ink-soft,#5F7590); line-height:1.35;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

.gp-ship{ text-align:center; margin:18px 0 0; font-size:14.5px; font-weight:800; color:#4FD9C7 }
.gp-foot{ display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; margin-top:14px; position:relative }
.gp-cta{ width:auto; margin:0; padding:12px 30px; font-size:15px }
.gp-terms{ font-size:12px; color:#9FC4EE; font-weight:600; text-decoration:none }
.gp-terms:hover{ color:#fff; text-decoration:underline }
.gp-tag{
  text-align:center; margin:16px 0 0; padding-top:13px;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:12px; color:#8FA9C9; font-weight:600;
}

/* ⚠️ ההדגשה "במתנה" יושבת כאן על רקע בהיר של הכרטיס — הצבע החם
   של .gift-hot עובד; הפעימה כבר מכובדת ב-reduced-motion. */

@media(max-width:860px){
  .gp-body{ flex-direction:column }
  .gp-flow{ flex:none; flex-direction:row; justify-content:center; flex-wrap:wrap; gap:8px }
  .gp-step{ flex:1 1 30%; min-width:150px }
  .gp-step-arr{ display:none }
}
@media(max-width:700px){
  .gp-row{ gap:9px }
  .gp-card{ min-width:calc(50% - 9px) }
  #giftPromo{ padding:22px 14px 18px }
  .gp-head h2{ font-size:29px }
}

/* באנר שורה אחת בראש הקטלוג */
.gift-strip{
  display:block; margin:0 0 14px; padding:10px 15px;
  background:linear-gradient(90deg,#FBF7FF 0%,#F0FBF9 100%);
  border:1px solid #E9D5FF; border-radius:11px;
  font-size:13px; color:var(--ink,#0E2A47); text-decoration:none;
  transition:.16s;
}
.gift-strip:hover{ border-color:#7C3AED; box-shadow:0 6px 16px rgba(124,58,237,.12) }
.gift-strip[hidden]{ display:none }
.gift-strip b{ color:#6D28D9 }

/* ==================== 👤 האזור האישי ==================== */
.acct-wrap{ max-width:820px; margin:0 auto; padding:28px 16px 64px }
.acct-wrap h1{ font-size:26px; margin:0 0 18px; color:var(--ink) }
.acct-card{
  background:var(--surface); border:1px solid var(--line);
  border-radius:16px; padding:20px 22px; margin-bottom:14px;
  box-shadow:var(--shadow, 0 4px 14px rgba(11,44,77,.06));
}
.acct-card h2{ font-size:16.5px; margin:0 0 12px; color:var(--navy-900,#12395F) }
.acct-lead{ font-size:14px; color:var(--ink-soft); line-height:1.7; margin:0 0 14px }
.acct-note{ font-size:12px; color:var(--ink-soft); line-height:1.65; margin:10px 0 0 }
.acct-card input{
  width:100%; padding:11px 13px; border-radius:var(--radius-sm,10px);
  border:1.5px solid var(--line); font-family:'Heebo',sans-serif; font-size:14px;
  margin-bottom:10px;
}
.acct-card input:focus{ outline:none; border-color:var(--blue) }
.acct-code-input{
  font-size:24px !important; letter-spacing:8px; text-align:center;
  font-family:'Rubik',sans-serif !important; font-weight:700;
}
.acct-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px }
@media(max-width:640px){ .acct-grid{ grid-template-columns:1fr } }

.acct-row{ display:flex; justify-content:space-between; gap:10px; align-items:baseline;
  font-size:13.5px; margin:0 0 8px; border-bottom:1px dashed var(--line-soft,#EDF2F8); padding-bottom:8px }
.acct-row span{ color:var(--ink-soft) }
.acct-row b{ color:var(--ink); text-align:left }

.acct-badge{
  margin:12px 0 0; padding:9px 12px; border-radius:10px; font-size:12.5px; font-weight:600;
  background:var(--surface-2,#F7FAFD); color:var(--ink-soft); line-height:1.6;
}
.acct-badge.is-on{ background:#E9FBF3; color:#0E7A5F; border:1px solid #B5EAD3 }

.acct-orders{ display:flex; flex-direction:column; gap:10px }
.acct-order{ border:1px solid var(--line); border-radius:12px; padding:12px 14px }
.acct-order-h{ display:flex; gap:10px; align-items:baseline; font-size:13.5px }
.acct-order-h span{ color:var(--ink-soft); font-size:12px }
.acct-order-amt{ margin-inline-start:auto; font-family:'Rubik',sans-serif }
.acct-order-d{ font-size:12.5px; color:var(--ink-soft); margin:6px 0; line-height:1.5 }
.acct-order-f{ display:flex; justify-content:space-between; gap:10px; font-size:12px }
.acct-order-st{ color:var(--ink-soft) }
.acct-order-f a{ color:var(--blue); font-weight:700; text-decoration:none }
.acct-order-f a:hover{ text-decoration:underline }

/* מחיר המנוי בעמוד השירותים */
.sup-price-plan{ font-size:11px; font-weight:800; color:#6D28D9; white-space:nowrap }

/* ==================== 🎨 מודעת המתנות v3 — "משדר מבצע" (27.08) ====
   דביר: "צריך לשדר מבצע!!! (רק לשדר, לא לכתוב)". פינת 0 ₪ מסתובבת,
   שווי מתנה גדול, CTA עם הבזק. יושב מעל בסיס v2 — אלה דריסות. */
#giftPromo{ overflow:hidden }
.gp-burst{
  position:absolute; top:14px; inset-inline-start:-34px; z-index:3;
  transform:rotate(38deg);
  background:linear-gradient(135deg,#F59E0B,#EF4444);
  color:#fff; font-weight:900; font-size:11.5px; letter-spacing:.2px;
  padding:7px 44px; box-shadow:0 6px 16px rgba(239,68,68,.45);
  pointer-events:none; white-space:nowrap;
}
html[dir="ltr"] .gp-burst{ transform:rotate(-38deg) }
.gp-head h2{ font-size:clamp(30px,4.6vw,44px) }
/* הסרט האלכסוני יושב בפינה — הטקסט לא נכנס מתחתיו */
.gp-head p{ max-width:min(82%,560px); margin-inline:auto }
.gp-head h2 em{
  background:linear-gradient(90deg,#4FD9C7,#7DE3FF,#4FD9C7);
  background-size:200% 100%;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:gpShine 3.2s linear infinite;
}
@keyframes gpShine{ to{ background-position:200% 0 } }
.gp-card{ position:relative; overflow:visible }
.gp-zero{
  position:absolute; top:-12px; inset-inline-end:-10px; z-index:2;
  width:46px; height:46px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(circle at 30% 30%,#FB7185,#E11D48);
  color:#fff; font-family:'Rubik',sans-serif; font-weight:900; font-size:13px;
  transform:rotate(-14deg);
  box-shadow:0 6px 14px rgba(225,29,72,.4), inset 0 0 0 2px rgba(255,255,255,.35);
}
.gp-r3 .gp-zero{ width:54px; height:54px; font-size:15px; animation:gpZeroPulse 2.2s ease-in-out infinite }
@keyframes gpZeroPulse{ 50%{ transform:rotate(-14deg) scale(1.12) } }
.gp-what .gift-hot{ font-size:1.05em }
.gp-cta{
  position:relative; overflow:hidden; font-weight:900;
  box-shadow:0 8px 22px rgba(79,217,199,.35);
}
.gp-cta::after{
  content:""; position:absolute; top:0; bottom:0; width:44px;
  inset-inline-start:-60px;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  animation:gpSweep 2.8s ease-in-out infinite;
}
@keyframes gpSweep{ 55%,100%{ inset-inline-start:130% } }
@media (prefers-reduced-motion: reduce){
  .gp-head h2 em{ animation:none }
  .gp-r3 .gp-zero{ animation:none }
  .gp-cta::after{ animation:none; display:none }
  .gift-meter-bar > i{ transition:none }
}
@media (max-width:560px){ .gp-burst{ top:10px; font-size:10px; padding:6px 40px } }

/* ==================== ❓ הסבר שני המחירים (support) ==================== */
.sup-price-why{
  border:0; background:none; cursor:pointer; text-decoration:underline dotted;
  text-underline-offset:3px; padding:0; font:inherit;
}
.sup-price-why:hover{ color:var(--blue,#1B6FE0) }
.sup-why-overlay{
  position:fixed; inset:0; z-index:1200; background:rgba(10,26,43,.55);
  display:flex; align-items:center; justify-content:center; padding:18px;
}
.sup-why-box{
  position:relative; background:var(--surface,#fff); border-radius:16px;
  max-width:460px; width:100%; padding:24px 26px;
  box-shadow:0 24px 60px rgba(0,0,0,.3);
}
.sup-why-box h3{ margin:0 0 12px; font-size:18px; color:var(--ink,#0E2A47) }
.sup-why-box p{ font-size:13.5px; line-height:1.75; color:var(--ink,#0E2A47); margin:0 0 10px }
.sup-why-note{ color:var(--ink-soft,#5F7590); font-size:12.5px }
.sup-why-x{
  position:absolute; top:10px; inset-inline-start:12px; border:0; background:none;
  font-size:16px; cursor:pointer; color:var(--ink-soft,#5F7590);
}

/* ==================== 👤 מצב מחובר בהדר ==================== */
.head-acct{ position:relative; display:inline-flex }
.head-ic.is-logged{ position:relative }
.head-acct-dot{
  position:absolute; top:6px; inset-inline-end:6px; width:9px; height:9px;
  border-radius:50%; background:#22C55E; border:2px solid var(--surface,#fff);
}
.head-acct-menu{
  position:absolute; top:calc(100% + 8px); inset-inline-end:0; z-index:1100;
  min-width:210px; background:var(--surface,#fff); border:1px solid var(--line,#DEE6F0);
  border-radius:14px; padding:8px; box-shadow:0 16px 40px rgba(11,44,77,.16);
  display:flex; flex-direction:column;
}
/* ⚠️ display מפורש גובר על hidden — בלי זה התפריט נולד פתוח. */
.head-acct-menu[hidden]{ display:none }
.head-acct-hi{
  font-weight:800; font-size:13.5px; color:var(--ink,#0E2A47);
  padding:8px 10px 10px; border-bottom:1px solid var(--line-soft,#EDF2F8); margin-bottom:6px;
}
.head-acct-plan{
  display:inline-block; margin-inline-start:8px; padding:2px 8px; border-radius:999px;
  background:#EDE9FE; color:#6D28D9; font-size:10.5px; font-weight:800; vertical-align:1px;
}
.head-acct-menu a, .head-acct-menu button{
  text-align:start; border:0; background:none; cursor:pointer;
  font:inherit; font-size:13px; color:var(--ink,#0E2A47);
  padding:8px 10px; border-radius:8px; text-decoration:none;
}
.head-acct-menu a:hover, .head-acct-menu button:hover{ background:var(--surface-2,#F2F7FC) }
.head-acct-menu button{ color:#B4232E; border-top:1px solid var(--line-soft,#EDF2F8); border-radius:0 0 8px 8px; margin-top:4px }

/* ==================== 👤 מחיקת חשבון + משוב שמירה ==================== */
.acct-danger{
  margin-top:16px; padding-top:12px; border-top:1px dashed var(--line,#DEE6F0);
  font-size:11.5px; color:var(--ink-soft,#5F7590); line-height:1.6;
}
.acct-danger-link{
  border:0; background:none; padding:0; cursor:pointer; font:inherit;
  font-weight:800; color:#B4232E; text-decoration:underline; text-underline-offset:3px;
}
.acct-danger-link:hover{ color:#8F1B24 }
.validation-msg.is-good{ color:#0E7A5F; background:#E9FBF3; border-color:#B5EAD3 }
.btn.is-saved{ background:#16A34A !important }

/* ==================== 👤 שורת ההשלמה בקופה ==================== */
.prefill-hint{
  margin:0 0 12px; padding:9px 12px; border-radius:10px;
  background:#EFF8FF; border:1px solid #CBE5FB; color:#134E8D;
  font-size:12.5px; line-height:1.6;
}

/* הערת "בחרו שוב X תשלומים" מתחת לבורר — עד ש-SUMIT יתנו נעילה אמיתית */
.pay-sumit-note{
  margin:7px 0 0; padding:8px 11px; border-radius:9px;
  background:#FFF7E6; border:1px solid #F5DFA8; color:#7A5A12;
  font-size:12px; line-height:1.55;
}
.pay-sumit-note[hidden]{ display:none }

/* ==================== 🎯 בחירה לפי כוונה (עמוד השירותים) ==================== */
.sup-int-wrap{ margin:0 0 18px }
.sup-int-lead{ font-size:14px; font-weight:800; color:var(--ink,#0E2A47); margin:0 0 10px }
.sup-int-lead span{ font-weight:500; color:var(--ink-soft,#5F7590); font-size:12.5px }
.sup-int-row{
  display:grid; gap:10px;
  grid-template-columns:repeat(auto-fit,minmax(178px,1fr));
}
.sup-int{
  position:relative; text-align:start; cursor:pointer;
  background:var(--surface,#fff); border:1.5px solid var(--line,#DEE6F0);
  border-radius:14px; padding:13px 14px 12px; font:inherit;
  display:flex; flex-direction:column; gap:3px; transition:.16s;
}
.sup-int:hover{ border-color:var(--blue,#1B6FE0); transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(11,44,77,.08) }
.sup-int.is-on{ border-color:var(--blue,#1B6FE0); background:#EFF6FF;
  box-shadow:0 0 0 3px rgba(27,111,224,.14) }
.sup-int-ic{ font-size:21px; line-height:1 }
.sup-int b{ font-size:14px; color:var(--ink,#0E2A47) }
.sup-int-sub{ font-size:11.5px; color:var(--ink-soft,#5F7590); line-height:1.45 }
.sup-int-n{
  position:absolute; top:10px; inset-inline-end:11px;
  background:var(--surface-2,#F2F7FC); color:var(--ink-soft,#5F7590);
  border-radius:999px; min-width:21px; text-align:center;
  font-size:11px; font-weight:800; padding:2px 6px;
}
.sup-int.is-on .sup-int-n{ background:var(--blue,#1B6FE0); color:#fff }
.sup-int-clear{
  margin-top:10px; border:0; background:none; cursor:pointer; font:inherit;
  font-size:12.5px; font-weight:700; color:var(--blue,#1B6FE0);
  text-decoration:underline; text-underline-offset:3px; padding:0;
}

/* ==================== 💳 "מה המחיר שלי?" ==================== */
.sup-me{
  background:var(--surface,#fff); border:1px solid var(--line,#DEE6F0);
  border-radius:14px; padding:14px 16px; margin:0 0 16px;
}
.sup-me.is-in{ background:linear-gradient(180deg,#F2FBF7,#FFFFFF); border-color:#BFE6D5 }
.sup-me-in{ display:flex; align-items:center; gap:12px; flex-wrap:wrap }
.sup-me-ic{ font-size:22px; line-height:1; flex:none }
.sup-me-in > div{ flex:1 1 260px; min-width:0 }
.sup-me-in b{ display:block; font-size:14.5px; color:var(--ink,#0E2A47) }
.sup-me-in > div > span{ display:block; font-size:12.5px; color:var(--ink-soft,#5F7590); line-height:1.55; margin-top:2px }
.sup-me-tags{ display:flex; flex-wrap:wrap; gap:7px; margin-top:6px }
.sup-me-tag{
  font-size:11.5px; font-weight:700; line-height:1.5;
  background:var(--surface-2,#F2F7FC); color:var(--ink-soft,#5F7590);
  border-radius:999px; padding:4px 11px;
}
.sup-me-tag.is-on{ background:#E9FBF3; color:#0E7A5F }
.sup-me-tag.is-plan{ background:#EDE9FE; color:#6D28D9 }
.sup-me-cta{ width:auto; margin:0; padding:10px 20px; font-size:13.5px; flex:none }
.sup-me-link{ font-size:12.5px; font-weight:800; color:var(--blue,#1B6FE0); text-decoration:none; flex:none }
.sup-me-link:hover{ text-decoration:underline }
.sup-me-note{
  margin:10px 0 0; padding-top:9px; border-top:1px dashed var(--line,#DEE6F0);
  font-size:11.5px; color:var(--ink-soft,#5F7590); line-height:1.6;
}
/* מחיר DvirTech כיעד להשגה (גולש שאינו זכאי/מחובר) */
.sup-price-dvt{ font-size:11.5px; font-weight:700; color:#0E7A5F; white-space:nowrap }

/* ==================== 📢 הודעת אתר (נשלטת מהגיליון) ==================== */
.site-notice{
  position:relative; z-index:1200;
  font-size:13.5px; line-height:1.5;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.site-notice-in{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:10px 16px; max-width:1240px; margin:0 auto;
}
.site-notice-txt{ flex:1 1 auto; font-weight:600 }
.site-notice-link{
  flex:none; font-weight:800; text-decoration:underline;
  text-underline-offset:3px; color:inherit; white-space:nowrap;
}
.site-notice-x{
  flex:none; border:0; background:none; cursor:pointer; color:inherit;
  font-size:15px; line-height:1; opacity:.6; padding:4px 6px; border-radius:6px;
}
.site-notice-x:hover{ opacity:1; background:rgba(0,0,0,.07) }
/* שלושת המצבים — הצבע נגזר מסוג ההודעה בגיליון, לא מהטקסט */
.site-notice--info{   background:#EAF2FE; color:#134E8D }
.site-notice--warn{   background:#FFF4E0; color:#7A5A12 }
.site-notice--closed{ background:#FDE7E7; color:#8F1B24 }
@media (max-width:560px){
  .site-notice-in{ padding:9px 12px; gap:8px }
  .site-notice{ font-size:12.5px }
}

/* ==================== 🎁 שומר-מקום למודעה (מונע קפיצת פריסה) ====
   המודעה תלויה בקריאה ל-Apps Script (~2 שניות בביקור ראשון). בלי
   הגובה השמור כאן, האזור הוא 0 ואז קופץ — וכל מה שמתחת נדחף.
   ⚠️ הגובה מוגדר על מיכל **ריק** בלבד, ולכן הוא לא משפיע על
   המודעה עצמה — כולל אם תוכן המודעה יוחלף בעתיד. */
#giftPromoWrap.gp-loading #giftPromo:empty{
  display:block; min-height:420px; border-radius:20px;
  background:
    linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.06) 50%, rgba(255,255,255,0) 100%),
    linear-gradient(160deg, #0E2A47, #0B2036);
  background-size:200% 100%, 100% 100%;
  animation:gpSkeleton 1.4s ease-in-out infinite;
}
@keyframes gpSkeleton{ to{ background-position:-200% 0, 0 0 } }
@media (max-width:640px){
  #giftPromoWrap.gp-loading #giftPromo:empty{ min-height:560px }
}
@media (prefers-reduced-motion:reduce){
  #giftPromoWrap.gp-loading #giftPromo:empty{ animation:none }
}

/* ==================== 🎁 מודעת המתנות v4 (31.08) ====================
   העיצוב ש-דביר בנה, מותאם לאתר: תצלום שולחן גיימינג ברקע במקום
   גרדיאנט שטוח, כותרת Rubik ענקית, וכרטיסי מדרגה בוהקים.

   🔴 **המקור היה 1536×1220 פיקסלים קבועים, וזה לא יכול לעבוד באתר.**
   מודעה במידות קבועות נחתכת בטלפון ומשאירה פס לבן בדסקטופ רחב.
   כאן הכל יחסי, והתצלום מקבל שני טיפולים:
     · דסקטופ — גרדיאנט **צדי**: הטקסט על הכהה, התצלום נשאר גלוי בצד
     · מובייל — גרדיאנט **אנכי** וכהה יותר, אחרת הטקסט יושב על
       הצילום ולא נקרא בכלל

   ⚠️ v2/v3 שלמעלה (`.gp-head`, `.gp-card`, `.gp-burst`…) **כבר לא
   נפלטות** — הרינדור עבר כולו ל-`gp4-`. הן נשארו בקובץ כדי לא לגעת
   ב-200 שורות CSS באותו סבב שבו מחליפים עיצוב; המחיקה שייכת ל-#42
   (איחוד קוד). ⚠️ לא למחוק את `.gift-meter-*` ואת `.gift-hot` — הן
   של מד ההתקדמות בעגלה, לא של המודעה. */
#giftPromo{ background:#020712; border-color:#123253; padding:0 }
#giftPromo::before, #giftPromo::after{ content:none }

.gp4{ position:relative; isolation:isolate; padding:clamp(22px,3.4vw,40px) clamp(18px,3vw,44px) 18px }
.gp4::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background:url("images/promo-gift-bg.jpg") center top / cover no-repeat;
}
/* RTL: הטקסט בימין ⇐ האטימות בימין, התצלום נושם בשמאל. */
.gp4::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(to left,
    rgba(2,7,18,.95) 0%, rgba(2,7,18,.9) 44%, rgba(2,7,18,.68) 58%,
    rgba(2,7,18,.22) 68%, rgba(2,7,18,0) 76%);
}
html[dir="ltr"] .gp4::after{
  background:linear-gradient(to right,
    rgba(2,7,18,.95) 0%, rgba(2,7,18,.9) 44%, rgba(2,7,18,.68) 58%,
    rgba(2,7,18,.22) 68%, rgba(2,7,18,0) 76%);
}

.gp4-hero{ max-width:min(62%,660px) }
.gp4-hero h2{
  margin:0 0 10px; font-family:'Rubik',sans-serif; font-weight:900;
  font-size:clamp(30px,4.8vw,60px); line-height:1.06; color:#fff;
  text-shadow:0 0 30px rgba(79,216,255,.45);
}
.gp4-hero h2 em{
  font-style:normal;
  background:linear-gradient(90deg,#4FD8FF,#7DE3FF,#4FD8FF);
  background-size:200% 100%;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:gpShine 3.2s linear infinite;
}
.gp4-hero p{ margin:0 0 20px; font-size:clamp(14px,1.6vw,20px); font-weight:500; color:#BFE6F7 }
.gp4-cta{
  position:relative; overflow:hidden; font-weight:900;
  box-shadow:0 10px 26px rgba(79,216,255,.35);
}
.gp4-cta::after{
  content:""; position:absolute; top:0; bottom:0; width:44px; inset-inline-start:-60px;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  animation:gpSweep 2.8s ease-in-out infinite;
}

/* ⚠️ `auto-fit` ולא מספר עמודות קבוע: מספר המדרגות מגיע מהשרת
   ויכול להיות 3 או 5, ופריסה שמניחה 4 הייתה נשברת בשקט. */
.gp4-tiers{
  margin-top:clamp(20px,3vw,34px);
  display:grid; gap:12px;
  grid-template-columns:repeat(auto-fit,minmax(148px,1fr));
  max-width:min(96%,940px);
}
.gp4-card{
  position:relative; display:flex; flex-direction:column; align-items:center; text-align:center;
  background:rgba(10,22,38,.9); border:1px solid rgba(79,216,255,.25);
  border-radius:16px; padding:16px 10px 14px; backdrop-filter:blur(6px);
}
.gp4-top{
  background:linear-gradient(180deg,#132A4D,#0A1626);
  border:1.5px solid #4FD8FF; box-shadow:0 0 24px rgba(79,216,255,.35);
}
.gp4-tag{
  position:absolute; top:-11px; inset-inline-start:50%; transform:translateX(50%);
  background:#4FD8FF; color:#020712; font-weight:800; font-size:11px;
  padding:4px 14px; border-radius:999px; white-space:nowrap;
}
html[dir="ltr"] .gp4-tag{ transform:translateX(-50%) }
.gp4-over{ font-size:12px; color:#8FB8CC }
.gp4-min{ font-family:'Rubik',sans-serif; font-size:clamp(19px,2vw,25px); font-weight:800; color:#fff }
.gp4-img{
  width:64px; height:64px; margin:10px 0 8px; display:flex; align-items:center; justify-content:center;
  border-radius:12px; background:rgba(255,255,255,.06); overflow:hidden;
}
.gp4-img img{ max-width:100%; max-height:100%; object-fit:contain }
.gp4-img-empty{ font-size:30px; background:none }
.gp4-lbl{ font-size:11px; color:#8FB8CC }
.gp4-cap{ font-family:'Rubik',sans-serif; font-size:clamp(20px,2.1vw,27px); font-weight:800; color:#4FD8FF }
.gp4-sample{ margin-top:6px; font-size:10.5px; color:#7FA6BC; line-height:1.35 }
/* ⚠️ `margin-top:auto` דוחף את הכפתור לתחתית הכרטיס — בלעדיו
   כרטיס עם שם דוגמה ארוך משאיר את הכפתור באמצע, וארבעת הכפתורים
   לא מתיישרים בשורה אחת. */
.gp4-pick{
  display:block; width:100%; margin-top:auto; padding-top:0;
  border-radius:999px; padding:7px 0;
  font-size:12px; font-weight:700; color:#4FD8FF;
  background:rgba(79,216,255,.12); border:1px solid rgba(79,216,255,.4);
}
.gp4-top .gp4-pick{ background:#4FD8FF; border-color:#4FD8FF; color:#020712; font-weight:800 }

.gp4-ship{
  margin:18px 0 0; font-size:clamp(13px,1.5vw,16px); font-weight:800; color:#4FD9C7;
}
.gp4-flow{
  margin-top:16px; display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  font-size:13px; color:#BFE6F7;
}
.gp4-step{ display:flex; align-items:center; gap:8px }
.gp4-step b{ font-weight:700 }
.gp4-arr{ color:#4FD8FF }

.gp4-foot{ margin-top:18px; border-top:1px solid rgba(79,216,255,.16); padding-top:12px }
.gp4-terms{ font-size:13px; color:#9FD9F5; text-decoration:underline; text-underline-offset:3px }
.gp4-legal{ margin:8px 0 0; font-size:10px; line-height:1.5; color:#8FA4B4 }

/* 📱 מובייל — הטקסט לא יכול לשבת על הצילום. */
@media (max-width:900px){
  .gp4::after{
    background:linear-gradient(to bottom, rgba(2,7,18,.82) 0%, rgba(2,7,18,.94) 55%, rgba(2,7,18,.97) 100%);
  }
  html[dir="ltr"] .gp4::after{
    background:linear-gradient(to bottom, rgba(2,7,18,.82) 0%, rgba(2,7,18,.94) 55%, rgba(2,7,18,.97) 100%);
  }
  .gp4-hero{ max-width:100% }
  .gp4-tiers{ max-width:100%; grid-template-columns:repeat(auto-fit,minmax(132px,1fr)) }
}
@media (max-width:420px){
  .gp4-tiers{ grid-template-columns:1fr 1fr }
  .gp4-img{ width:50px; height:50px }
}
@media (prefers-reduced-motion: reduce){
  .gp4-hero h2 em{ animation:none }
  .gp4-cta::after{ animation:none; display:none }
}

/* ==================== 🚚 הודעת אזור משלוח (31.08) ====================
   יושבת מתחת לשדה העיר בקופה. שני מצבים: חסום (אדום) ותוספת (כתום).
   ⚠️ `aria-live="polite"` ב-HTML — קורא מסך צריך לשמוע שהיישוב לא
   נתמך **כשזה קורה**, לא כשהוא מגיע לכפתור התשלום. */
.ship-area-msg{
  margin-top:8px; padding:9px 12px; border-radius:10px;
  font-size:13px; line-height:1.55; font-weight:600;
}
.ship-area-msg.checkout-note-block{
  background:#FEF2F2; color:#991B1B; border:1px solid #FECACA;
}
.ship-area-msg.checkout-note-warn{
  background:#FFFBEB; color:#92400E; border:1px solid #FDE68A;
}

/* ==================== 🎁 מודעת המתנות v5 — רזה ורחבה (01.09) ========
   דביר: "היא עבה מדי — רזה ורחבה (לצדדים) יותר."
   דריסות מעל v4. שלושה מקורות לגובה שירדו: תמונת דוגמה בכרטיס,
   כפתור חוזר בכל כרטיס, וריווח נדיב מדי בכל מקום.
   ⚠️ **הגובה נשלט בעיקר ע"י `clamp` ולא ע"י ערך קבוע** — מודעה
   שנראית רזה בדסקטופ ונחנקת במובייל היא לא פתרון. */
.gp4{ padding:clamp(16px,2.2vw,26px) clamp(14px,2.2vw,32px) 12px }
.gp4-hero{ max-width:min(64%,700px) }
.gp4-hero h2{ font-size:clamp(24px,3.4vw,44px); line-height:1.02; margin:0 0 6px }
.gp4-hero p{
  margin:0; font-size:clamp(13px,1.35vw,16.5px);
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
/* ה-CTA נצמד לשורת המשנה במקום לשבת בשורה משלו — חוסך שורה שלמה. */
.gp4-cta{
  flex:none; padding:8px 20px; border-radius:999px;
  background:#4FD8FF; color:#020712; font-weight:800; font-size:13.5px;
  text-decoration:none; box-shadow:0 6px 18px rgba(79,216,255,.32);
}
.gp4-cta::after{ content:none }

/* רחבה: הרשת תופסת את כל המיכל, ולא נעצרת ב-940px. */
.gp4-tiers{ margin-top:clamp(14px,1.8vw,22px); max-width:100%; gap:10px }
.gp4-card{ padding:12px 8px 10px; border-radius:14px }
.gp4-over{ font-size:11.5px }
.gp4-min{ font-size:clamp(17px,1.75vw,22px) }
.gp4-sep{
  display:block; width:56px; height:1px; margin:7px auto;
  background:rgba(79,216,255,.35);
}
.gp4-lbl{ font-size:10.5px }
.gp4-cap{ font-size:clamp(18px,1.9vw,24px) }
.gp4-gifts{ display:block; margin-top:4px; font-size:15px; letter-spacing:2px }
.gp4-tag{ top:-9px; font-size:10px; padding:3px 12px }

.gp4-ship{ margin:12px 0 0; font-size:clamp(12.5px,1.3vw,15px) }

/* "איך זה עובד" — שורה אחת, אייקונים עגולים. */
.gp4-flow{ margin-top:14px; display:block }
.gp4-flow-t{
  margin:0 0 8px; font-size:14px; font-weight:800; color:#4FD8FF;
}
.gp4-steps{ display:flex; align-items:center; gap:10px; flex-wrap:wrap }
.gp4-step{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:#BFE6F7 }
.gp4-step b{ font-weight:600 }
.gp4-ic{
  flex:none; width:30px; height:30px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:14px;
  background:rgba(79,216,255,.12); border:1px solid rgba(79,216,255,.3);
}
.gp4-arr{ color:#4FD8FF; font-size:13px; opacity:.7 }

.gp4-foot{
  margin-top:12px; padding-top:9px; display:flex; align-items:baseline;
  gap:14px; flex-wrap:wrap;
}
.gp4-terms{ font-size:12.5px; flex:none }
.gp4-legal{ margin:0; font-size:9.5px; line-height:1.45; color:#8FA4B4; flex:1; min-width:220px }

@media (max-width:900px){
  .gp4-hero p{ display:block }
  .gp4-cta{ display:inline-block; margin-top:10px }
  .gp4-steps{ gap:8px }
  .gp4-arr{ display:none }
  .gp4-step{ width:calc(50% - 6px) }
}
@media (max-width:420px){
  .gp4-step{ width:100% }
}

/* ==================== 🎁 מודעת המתנות v6 (01.09) ====================
   דביר: *"בכלל לא רואים את המוצרים — תצר את הבלוקים של המתנות ואת
   הכיתוב בתוכם, תעשה יותר מרגש, לא עמוס מדי, עם סימונים של מתנות
   על כל מוצר, תוסיף קצת חיות."*

   🔴 **הסיבה שהמוצרים נעלמו — נמדדה, לא שוערה.** שורת המדרגות
   תפסה **1,095px מתוך מיכל של 1,158** אחרי ש-v5 שחרר אותה ל-100%.
   הכרטיסים אטומים, ולכן הם פשוט שכבו על התצלום. "רחב יותר" היה
   נכון לגובה — ושגוי לרוחב.
   ⇐ המדרגות חוזרות לחצי הימני בלבד; השמאלי נשאר לתצלום. */
.gp4-tiers{
  max-width:min(56%,660px);
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr));
  gap:8px;
}
/* הגרדיאנט נפתח מוקדם יותר — יותר תצלום, פחות כהה. */
.gp4::after{
  background:linear-gradient(to left,
    rgba(2,7,18,.94) 0%, rgba(2,7,18,.88) 38%, rgba(2,7,18,.55) 50%,
    rgba(2,7,18,.12) 60%, rgba(2,7,18,0) 68%);
}
html[dir="ltr"] .gp4::after{
  background:linear-gradient(to right,
    rgba(2,7,18,.94) 0%, rgba(2,7,18,.88) 38%, rgba(2,7,18,.55) 50%,
    rgba(2,7,18,.12) 60%, rgba(2,7,18,0) 68%);
}

/* כרטיס צר יותר, וכיתוב צפוף יותר בתוכו. */
.gp4-card{
  padding:11px 6px 9px; border-radius:12px;
  background:rgba(8,20,36,.82);
  border-color:rgba(79,216,255,.28);
}
.gp4-over{ font-size:10.5px; color:#9FC4D8 }
.gp4-min{ font-size:clamp(15px,1.5vw,19px); letter-spacing:-.3px }
.gp4-sep{ width:40px; margin:6px auto }
.gp4-lbl{ font-size:9.5px; color:#9FC4D8 }
/* 🔴 ניגודיות: סכום המתנה הוא המספר שהעין צריכה לתפוס ראשונה. */
.gp4-cap{
  font-size:clamp(17px,1.75vw,22px); color:#7FE7FF;
  text-shadow:0 0 14px rgba(79,216,255,.55);
}
.gp4-gifts{ margin-top:3px; font-size:14px }

/* ✨ חיות — עדינה. שלושה דברים בלבד, וכולם נעצרים תחת
   `prefers-reduced-motion`. מודעה שרוקדת היא מודעה שמעצבנת. */
.gp4-gifts{ animation:gpGift 2.6s ease-in-out infinite }
.gp4-r1 .gp4-gifts{ animation-delay:.2s }
.gp4-r2 .gp4-gifts{ animation-delay:.4s }
.gp4-r3 .gp4-gifts{ animation-delay:.6s }
@keyframes gpGift{ 0%,88%,100%{ transform:translateY(0) } 94%{ transform:translateY(-3px) } }

.gp4-top{ animation:gpTop 3.4s ease-in-out infinite }
@keyframes gpTop{
  0%,100%{ box-shadow:0 0 20px rgba(79,216,255,.28) }
  50%    { box-shadow:0 0 30px rgba(79,216,255,.5) }
}
.gp4-tag{ animation:gpTag 3.4s ease-in-out infinite }
@keyframes gpTag{ 0%,100%{ transform:translateX(50%) scale(1) } 50%{ transform:translateX(50%) scale(1.06) } }
html[dir="ltr"] .gp4-tag{ animation:none }

@media (prefers-reduced-motion: reduce){
  .gp4-gifts, .gp4-top, .gp4-tag{ animation:none }
}

/* 📱 במובייל אין "צד שמאל" לשמור — הכרטיסים חוזרים לרוחב מלא. */
@media (max-width:900px){
  .gp4-tiers{ max-width:100%; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)) }
  .gp4::after{
    background:linear-gradient(to bottom, rgba(2,7,18,.8) 0%, rgba(2,7,18,.94) 52%, rgba(2,7,18,.97) 100%);
  }
  html[dir="ltr"] .gp4::after{
    background:linear-gradient(to bottom, rgba(2,7,18,.8) 0%, rgba(2,7,18,.94) 52%, rgba(2,7,18,.97) 100%);
  }
}
