/* ==========================================================================
   Allé — alle-widgets.css
   נבנה אוטומטית מ-CSS של האתר הסטטי (tokens + base + sections) ע"י build_css.py.
   אין לערוך ידנית — לערוך את המקור הסטטי ולהריץ מחדש, אחרת הגרסאות מתפצלות.

   שתי טרנספורמציות מול המקור, שתיהן נדרשות בוורדפרס:
     · תחיליות: כל מחלקה → .alle-*, כל משתנה → --alle-*
     · סקופינג: כל חוק על אלמנט חשוף תחת .alle-scope, ה-wrapper של כל ווידג'ט.
       שני חוקים גלובליים בלבד, שניהם מתועדים: html (גלילה/עוגן) ו-
       body.alle-has-canvas (רקע העמוד, רק כשווידג'ט הרקע נוכח).
   ========================================================================== */

/* ═══════════ tokens.alle-css ═══════════ */
/* ==========================================================================
   Allé — tokens.alle-css
   מקור אמת יחיד: צבע, טיפוגרפיה, ריווח, מוטיון, z-index.
   כל הצבעים נבדקו מול WCAG 2.1. יחסי הניגודיות רשומים ליד כל טוקן.
   ========================================================================== */

:root {
  /* ---------- מותג (נשמר 1:1 מהאתר הקיים) ---------- */
  --alle-brand-magenta: #ED1C91;   /* הצבע הראשי של Allé — לא משתנה */
  --alle-brand-black:   #000000;
  --alle-brand-white:   #FFFFFF;

  /* ---------- משטחים ---------- */
  /* דיו מעט חמה־קרירה במקום שחור מוחלט: מפחיתה halation סביב טקסט לבן */
  --alle-surface-0: #0A0A0C;       /* קנבס הבסיס */
  --alle-surface-1: #121116;       /* כרטיס / הרמה ראשונה */
  --alle-surface-2: #1B1922;       /* הרמה שנייה */
  --alle-surface-3: #262233;       /* גבול עדין / hover */

  /* ---------- טקסט על משטח כהה ---------- */
  --alle-text-hi:   #FFFFFF;       /* 19.8:1 על surface-0 — AAA */
  --alle-text-mid:  #C9C4D0;       /* 11.6:1 — AAA. גוף טקסט משני */
  --alle-text-low:  #8F8A99;       /*  5.4:1 — AA. מטא־דאטה בלבד, לעולם לא גוף טקסט */

  /* ---------- אקצנט נגיש ----------
     #ED1C91 על דיו = 4.88:1 — עובר AA לטקסט רגיל אבל לא AAA,
     ולכן הוא משמש לטקסט תצוגה גדול, למשטחים ולגרפיקה בלבד.
     לטקסט קטן/קישורים על כהה משתמשים בגרסה המובהרת של אותו גוון. */
  --alle-accent:       var(--alle-brand-magenta);  /*  4.88:1 על surface-0 — טקסט גדול (24px+) */
  --alle-accent-text:  #FF5FB0;               /*  7.08:1 על surface-0 — AAA. טקסט קטן וקישורים */
  --alle-accent-quiet: #FF7CC0;               /*  8.38:1 — hover של accent-text */
  --alle-accent-deep:  #C2126F;               /*  5.82:1 על לבן — AA. לשימוש על משטח בהיר */
  /* רקע הריחוף של כפתור מלא. מתכהה ולא מתבהר, כדי שטקסט לבן יעבור AA:
     לבן על #ED1C91 = 4.06:1 (נכשל), לבן על #D1157E = 5.10:1 (עובר). */
  --alle-accent-hover: #D1157E;

  /* טקסט על מילוי מגנטה: דיו ולא לבן.
     לבן על #ED1C91 = 4.06:1 → נכשל AA. דיו על #ED1C91 = 4.88:1 → עובר. */
  --alle-on-accent: #0A0A0C;

  /* ---------- מצבי מערכת ---------- */
  --alle-ok:    #4ADE9B;           /* 10.9:1 על דיו */
  --alle-error: #FF8A8A;           /*  8.9:1 על דיו — אדום בהיר, לא #cf2e2e שנכשל על כהה */
  --alle-focus: #FFCD2A;           /* 13.2:1 — צהוב הוא הצבע הבטוח ביותר לטבעת פוקוס על מגנטה וגם על דיו */

  /* ---------- טיפוגרפיה ---------- */
  --alle-font-sans: 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --alle-font-mono: ui-monospace, 'SFMono-Regular', 'Menlo', monospace;

  /* סולם fluid, מכויל בין 390px (מובייל) ל-1440px (דסקטופ).
     הכל ב-rem כדי לכבד את הגדרת גודל הטקסט של המשתמש.
     שים לב לערכי ה-min: בגרסה קודמת ה-min של --alle-step-7 היה 3.583rem (57px),
     כלומר גם ב-390px הכותרת נשארה 57px — מילים עבריות ארוכות כמו "בירושלים"
     במשקל 800 חרגו מרוחב המסך והטקסט נחתך. ה-min עכשיו הוא הגודל האמיתי
     שנדרש במובייל, וה-vw מטפל בהגדלה משם. */
  --alle-step--1: clamp(0.833rem, 0.80rem + 0.13vw, 0.9rem);    /* 13.3 → 14.4 */
  --alle-step-0:  clamp(1rem, 0.97rem + 0.13vw, 1.125rem);      /*   16 → 18   */
  --alle-step-1:  clamp(1.09rem, 0.978rem + 0.476vw, 1.406rem); /* 17.5 → 22.5 */
  --alle-step-2:  clamp(1.1875rem, 0.976rem + 0.867vw, 1.758rem); /* 19 → 28   */
  --alle-step-3:  clamp(1.3125rem, 0.984rem + 1.348vw, 2.197rem); /* 21 → 35   */
  --alle-step-4:  clamp(1.4375rem, 0.95rem + 2vw, 2.747rem);      /* 23 → 44   */
  --alle-step-5:  clamp(1.625rem, 0.952rem + 2.762vw, 3.433rem);  /* 26 → 55   */
  --alle-step-6:  clamp(1.875rem, 0.977rem + 3.686vw, 4.292rem);  /* 30 → 69   */
  --alle-step-7:  clamp(2.25rem, 1.09rem + 4.76vw, 5.364rem);     /* 36 → 86   */

  /* Tracking תלוי־גודל: טקסט תצוגה גדול מתהדק, טקסט קטן מתרווח.
     ערך אחיד אחד תמיד שגוי במקום כלשהו בסולם. */
  --alle-track-display: -0.03em;
  --alle-track-title:   -0.018em;
  --alle-track-body:    0em;
  --alle-track-micro:   0.08em;   /* אוברליינים באנגלית / מונו */

  /* Leading: הדוק בכותרות, נוח בגוף. עברית צריכה מרווח מעט גדול יותר
     מלטינית באותו גודל בגלל אורך האותיות והניקוד. */
  --alle-leading-display: 1.02;
  --alle-leading-title:   1.14;
  --alle-leading-body:    1.7;
  --alle-leading-tight:   1.35;

  /* ---------- ריווח (סולם מודולרי, rem בלבד) ---------- */
  --alle-space-3xs: 0.25rem;
  --alle-space-2xs: 0.5rem;
  --alle-space-xs:  0.75rem;
  --alle-space-s:   1rem;
  --alle-space-m:   1.5rem;
  --alle-space-l:   2rem;
  --alle-space-xl:  3rem;
  --alle-space-2xl: 4.5rem;
  --alle-space-3xl: 7rem;
  --alle-space-4xl: 11rem;

  /* מרווח בין "פרקים" — מכוון, לא אחיד. הפרקים חופפים, ולכן הערכים
     האלה הם נקודת מוצא שכל פרק מתאים לעצמו. */
  --alle-chapter-lead: clamp(4rem, 9vw, 9rem);

  --alle-measure: 62ch;            /* אורך שורה מקסימלי לגוף טקסט */
  --alle-measure-narrow: 44ch;
  --alle-shell: 82rem;             /* רוחב תוכן מקסימלי */
  --alle-gutter: clamp(1.25rem, 5vw, 4rem);

  /* ---------- רדיוסים ---------- */
  --alle-radius-s:  0.5rem;
  --alle-radius-m:  1rem;
  --alle-radius-l:  1.75rem;
  --alle-radius-xl: 2.5rem;
  --alle-radius-pill: 999px;

  /* ---------- מוטיון ----------
     עקומות חזקות. ברירות המחדל של הדפדפן חלשות מדי.
     אין ease-in על UI — הוא מעכב בדיוק את הרגע שבו המשתמש מסתכל. */
  --alle-ease-out:    cubic-bezier(0.23, 1, 0.32, 1);
  --alle-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --alle-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);

  --alle-dur-press:  120ms;
  --alle-dur-fast:   180ms;
  --alle-dur-mid:    240ms;
  --alle-dur-slow:   320ms;
  --alle-dur-reveal: 720ms;   /* חשיפת גלילה — שיווקי, מותר ארוך יותר מ-UI */

  --alle-stagger: 70ms;

  /* ---------- שכבות ---------- */
  --alle-z-canvas:  0;
  --alle-z-content: 10;
  --alle-z-route:   20;
  --alle-z-header:  60;
  --alle-z-fab:     70;
  --alle-z-skip:    100;

  /* ---------- התקדמות גלילה ----------
     נקבע ע"י לולאת rAF אחת ב-main.alle-js. כל הרקע הרציף נגזר מזה.
     אתחול ב-0 כדי שהעמוד ייראה נכון גם בלי JS. */
  --alle-scroll-progress: 0;
  --alle-header-h: 4.5rem;
}

/* פחות שקיפות: משטחים מוצקים במקום זכוכית */
@media (prefers-reduced-transparency: reduce) {
  :root {
    --alle-glass-bg: var(--alle-surface-1);
    --alle-glass-blur: 0px;
  }
}
:root {
  --alle-glass-bg: rgba(18, 17, 22, 0.72);
  --alle-glass-blur: 20px;
}

/* ניגודיות גבוהה: גבולות מוגדרים, רקעים כמעט אטומים */
@media (prefers-contrast: more) {
  :root {
    --alle-text-mid: #E8E5EC;
    --alle-text-low: #C9C4D0;
    --alle-accent-text: #FF8FC8;
    --alle-surface-3: #4A4360;
    --alle-glass-bg: var(--alle-surface-0);
    --alle-glass-blur: 0px;
  }
}

/* ═══════════ base.alle-css ═══════════ */
/* ==========================================================================
   Allé — base.alle-css
   Reset, טיפוגרפיה, פרימיטיבים של נגישות, מערכת הרקע הרציפה, כפתורים, טפסים.
   ========================================================================== */

.alle-scope, .alle-scope *, .alle-scope *::before, .alle-scope *::after { box-sizing: border-box; }

/* גלובלי במכוון ומינימלי: רק גלילה חלקה, ועוגן שלא נחתך ע"י הכותרת הצפה.
   font-size לא נוגע — זו האחריות של ערכת הנושא ושל הגדרת המשתמש. */
html {
  scroll-behavior: smooth;
  scroll-padding-block-start: calc(var(--alle-header-h) + 1.5rem);
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* .alle-scope הוא ה-wrapper של כל ווידג'ט. כאן יושבות התכונות שהיו על body
   באתר הסטטי, כדי לא לכפות אותן על כל הדף בוורדפרס. */
.alle-scope {
  font-family: var(--alle-font-sans);
  font-size: var(--alle-step-0);
  font-weight: 400;
  line-height: var(--alle-leading-body);
  letter-spacing: var(--alle-track-body);
  color: var(--alle-text-mid);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* רקע העמוד מוחל רק כשווידג'ט "רקע וציר המסלול" נוכח (ה-JS מוסיף את המחלקה),
   כדי שהתוסף לא יצבע דפים שהוא לא אמור לגעת בהם. */
body.alle-has-canvas {
  /* margin:0 — העיצוב הוא full-bleed, ובלי זה נשאר ה-margin שהדפדפן נותן
     ל-body כברירת מחדל (8px) והתוכן יורד ונדחק. רוב ערכות הנושא מאפסות
     אותו בעצמן, אבל אין להסתמך על זה. */
  margin: 0;
  background-color: var(--alle-surface-0);
  overflow-x: clip;
}

:where(.alle-scope) :where(h1, h2, h3, h4, h5, h6, p, figure, blockquote, ul, ol, dl) { margin: 0; }
:where(.alle-scope) :where(ul, ol) { padding: 0; list-style: none; }

:where(.alle-scope) :where(img, picture, video, canvas, svg) { display: block; max-width: 100%; }
:where(.alle-scope) img { height: auto; }

:where(.alle-scope) :where(button, input, select, textarea) { font: inherit; color: inherit; }

/* ==========================================================================
   טיפוגרפיה — היררכיה נבנית ממשקל + גודל + leading כמערכת, לא מגודל לבד
   ========================================================================== */

.alle-display,
.alle-scope h1, .alle-scope h2 {
  font-weight: 800;
  line-height: var(--alle-leading-display);
  letter-spacing: var(--alle-track-display);
  color: var(--alle-text-hi);
  text-wrap: balance;
}

:where(.alle-scope) h1 { font-size: var(--alle-step-7); }
:where(.alle-scope) h2 { font-size: var(--alle-step-6); }

/* רשת ביטחון: מילה עברית אחת ארוכה במשקל כבד לא תחרוג מהמכל גם אם
   הסולם יכויל מחדש בעתיד. */
:where(.alle-scope) :where(h1, h2, h3, h4), .alle-display { overflow-wrap: break-word; }

:where(.alle-scope) h3 {
  font-size: var(--alle-step-3);
  font-weight: 700;
  line-height: var(--alle-leading-title);
  letter-spacing: var(--alle-track-title);
  color: var(--alle-text-hi);
  text-wrap: balance;
}

:where(.alle-scope) h4 {
  font-size: var(--alle-step-2);
  font-weight: 700;
  line-height: var(--alle-leading-title);
  letter-spacing: var(--alle-track-title);
  color: var(--alle-text-hi);
}

/* הדגשה מגנטה בתוך כותרת. גדול מ-24px ולכן 4.88:1 מספיק כאן. */
:where(.alle-scope) em, .alle-accent {
  font-style: normal;
  color: var(--alle-accent);
}

.alle-lede {
  font-size: var(--alle-step-2);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.008em;
  color: var(--alle-text-hi);
  max-inline-size: var(--alle-measure);
  text-wrap: pretty;
}

:where(.alle-scope) p {
  max-inline-size: var(--alle-measure);
  text-wrap: pretty;
}
:where(.alle-scope) p + p { margin-block-start: var(--alle-space-s); }

/* אוברליין באנגלית/מונו — תמיד LTR, גם בתוך מסמך RTL */
.alle-overline {
  display: flex;
  align-items: center;
  gap: var(--alle-space-2xs);
  font-family: var(--alle-font-mono);
  font-size: var(--alle-step--1);
  font-weight: 500;
  letter-spacing: var(--alle-track-micro);
  text-transform: uppercase;
  color: var(--alle-accent-text);   /* 7.08:1 — טקסט קטן, חייב את הגרסה המובהרת */
}
.alle-overline::before {
  content: '';
  inline-size: 1.75rem;
  block-size: 2px;
  background: currentColor;
  flex: none;
  border-radius: 2px;
}

/* איי LTR: מספרים, טלפון, אימייל, מחרוזות לטיניות */
.alle-ltr {
  direction: ltr;
  unicode-bidi: isolate;
}

:where(.alle-scope) a { color: var(--alle-accent-text); }              /* 7.08:1 — AAA */

/* הריחוף הוורוד מיועד לקישורי טקסט בתוך גוף טקסט בלבד.
   קודם הוא היה חוק `a:hover` גלובלי, ולספציפיות שלו (0,1,1) גברה על
   `.alle-btn` (0,1,0) — כך שבריחוף טקסט הכפתורים נצבע ורוד על רקע ורוד
   (1.37:1, כמעט בלתי נראה). הכפתורים והניווט מוחרגים מבנית. */
:where(.alle-scope) :where(p, li, .alle-check, figcaption, .alle-footer, .alle-hours, .alle-contacts) a:hover {
  color: var(--alle-accent-quiet);
}

/* קישור בתוך גוף טקסט חייב להיות מזוהה גם בלי צבע (WCAG 1.4.1).
   קו תחתון על קישורים טקסטואליים בלבד — לא על כפתורים, ניווט או כרטיסים
   שכבר מזוהים לפי הצורה שלהם. */
:where(.alle-scope) :where(p, li, .alle-check, figcaption, .alle-footer, .alle-hours) a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
:where(.alle-scope) :where(p, li, .alle-check, .alle-footer, .alle-hours) a:hover { text-decoration-thickness: 2px; }
/* יוצאי דופן: אלמנטים שהצורה שלהם כבר מסמנת אותם כאינטראקטיביים */
:where(.alle-btn, .alle-card, .alle-card__more, .alle-contacts__row, .alle-socials__link, .alle-route__hold, .alle-header__link, .alle-fab) {
  text-decoration: none;
}

/* ==========================================================================
   נגישות — פרימיטיבים
   ========================================================================== */

/* טבעת פוקוס אחידה, נראית על כל משטח. צהוב עובר גם על מגנטה וגם על דיו. */
:where(.alle-scope) :where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--alle-focus);
  outline-offset: 3px;
  border-radius: var(--alle-radius-s);
}

.alle-visually-hidden {
  position: absolute;
  inline-size: 1px; block-size: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.alle-skip-link {
  position: fixed;
  inset-block-start: var(--alle-space-2xs);
  inset-inline-start: var(--alle-space-2xs);
  z-index: var(--alle-z-skip);
  padding: var(--alle-space-xs) var(--alle-space-m);
  background: var(--alle-focus);
  color: #0A0A0C;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--alle-radius-pill);
  transform: translateY(-150%);
  transition: transform var(--alle-dur-fast) var(--alle-ease-out);
}
.alle-skip-link:focus-visible { transform: translateY(0); }

/* ==========================================================================
   מערכת הרקע הרציפה
   שכבה אחת קבועה לכל העמוד, שנגזרת מ---scroll-progress.
   זה מה שמונע קווי חיתוך בין פרקים: אין לאף סקשן רקע משל עצמו.
   ========================================================================== */

.alle-canvas {
  position: fixed;
  inset: 0;
  z-index: var(--alle-z-canvas);
  pointer-events: none;
  background-color: var(--alle-surface-0);
}

/* זוהר "אבק מגנזיה" מגנטה שנודד לרוחב ולמעלה עם הגלילה.
   שני הצבעים חיים בטוקנים נפרדים ומקבלים שקיפות דרך color-mix, כדי שיהיה
   אפשר להחליף אותם מבחוץ (פקד צבע באלמנטור) בלי לגעת בגרדיאנט עצמו.
   color-mix עם transparent שקול בדיוק ל-rgba באותה אלפא. */
.alle-canvas {
  --alle-glow-1: #ED1C91;
  --alle-glow-2: #7828C8;
}
.alle-canvas__glow {
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(
      42rem 42rem at
      calc(88% - var(--alle-scroll-progress) * 74%)
      calc(16% + var(--alle-scroll-progress) * 66%),
      color-mix(in srgb, var(--alle-glow-1) calc(20% + var(--alle-scroll-progress) * 10%), transparent),
      transparent 62%
    ),
    radial-gradient(
      34rem 34rem at
      calc(6% + var(--alle-scroll-progress) * 62%)
      calc(84% - var(--alle-scroll-progress) * 58%),
      color-mix(in srgb, var(--alle-glow-2) 16%, transparent),
      transparent 65%
    );
  filter: blur(20px);
}

/* גרעיניות עדינה: שוברת את הבנדינג של הגרדיאנטים ונותנת מרקם מודפס */
.alle-canvas__grain {
  position: absolute;
  inset: 0;
  opacity: 0.05;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* וינייטה: מחזיקה את המבט במרכז ומשפרת ניגודיות טקסט בקצוות */
.alle-canvas__vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 90% at 50% 40%, transparent 40%, rgba(10, 10, 12, 0.75) 100%);
}

@media (prefers-reduced-motion: reduce) {
  /* אין רקע נודד — הוא תנועה של כל שדה הראייה */
  .alle-canvas__glow { inset: -20%; background-position: center; filter: blur(24px); }
}
@media (prefers-contrast: more) {
  .alle-canvas__glow { opacity: 0.35; }
  .alle-canvas__grain { display: none; }
}

/* ==========================================================================
   פריסה
   ========================================================================== */

.alle-shell {
  inline-size: 100%;
  max-inline-size: var(--alle-shell);
  margin-inline: auto;
  padding-inline: var(--alle-gutter);
}

/* .alle-scope הוא סקופ הסגנון בלבד — במפורש בלי z-index.
   z-index על כל ווידג'ט הופך אותו ל-stacking context, וזה שובר את ארכיטקטורת
   השכבות: כל כרומה fixed (רקע, כותרת, ציר, כפתור צף) נלכדת בהקשר של הווידג'ט
   שלה ולא מסתדרת מול האחרים, והרקע האטום מכסה את התוכן.
   רק פרקי התוכן מקבלים z-index, דרך המחלקה הנוספת. */
.alle-scope { position: relative; }
.alle-scope--content { z-index: var(--alle-z-content); }

/* "פרק", לא "סקשן": בלי רקע, בלי גבול, בלי padding אחיד.
   כל פרק מגדיר את הריווח שלו והם חופפים בכוונה.
   padding-block-start בלבד — עם padding-block דו־צדדי כל מרווח בין פרקים
   נהפך לכפול (סוף של אחד + התחלה של הבא) והעמוד התמלא בחורים שחורים. */
.alle-chapter {
  position: relative;
  padding-block-start: var(--alle-chapter-lead);
}

/* ==========================================================================
   כפתורים
   ========================================================================== */

.alle-btn {
  --alle-btn-bg: transparent;
  --alle-btn-fg: var(--alle-text-hi);
  --alle-btn-border: var(--alle-surface-3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--alle-space-2xs);
  /* יעד נגיעה מינימלי 44px גם כשהטקסט קטן */
  min-block-size: 2.75rem;
  padding: var(--alle-space-xs) var(--alle-space-m);
  font-size: var(--alle-step-0);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  color: var(--alle-btn-fg);
  background: var(--alle-btn-bg);
  border: 1.5px solid var(--alle-btn-border);
  border-radius: var(--alle-radius-pill);
  cursor: pointer;
  /* מונים במפורש — אף פעם לא transition: all */
  transition:
    transform var(--alle-dur-press) var(--alle-ease-out),
    background-color var(--alle-dur-fast) var(--alle-ease-out),
    border-color var(--alle-dur-fast) var(--alle-ease-out),
    color var(--alle-dur-fast) var(--alle-ease-out);
}

/* משוב על pointer-down, לא בשחרור */
.alle-btn:active { transform: scale(0.97); }

/* hover רק במצביע אמיתי — מגע יורה hover מדומה על טאץ'.
   בכפתור המלא הרקע *מתכהה* והטקסט הופך לבן: כך הטקסט בולט בריחוף,
   והניגודיות נשמרת (לבן על --alle-accent-hover = 5.10:1, עובר AA). */
@media (hover: hover) and (pointer: fine) {
  .alle-btn--primary:hover {
    --alle-btn-bg: var(--alle-accent-hover);
    --alle-btn-border: var(--alle-accent-hover);
    --alle-btn-fg: var(--alle-brand-white);
  }
  .alle-btn--ghost:hover {
    --alle-btn-bg: var(--alle-surface-2);
    --alle-btn-border: var(--alle-surface-3);
    --alle-btn-fg: var(--alle-text-hi);
  }
}

/* ראשי: מילוי מגנטה עם טקסט דיו. דיו על מגנטה = 4.88:1 (עובר AA);
   לבן על מגנטה = 4.06:1 (נכשל). זה תיקון נגישות ולא בחירה סטייליסטית. */
.alle-btn--primary {
  --alle-btn-bg: var(--alle-brand-magenta);
  --alle-btn-fg: var(--alle-on-accent);
  --alle-btn-border: var(--alle-brand-magenta);
  font-weight: 800;
}

.alle-btn--ghost {
  --alle-btn-bg: transparent;
  --alle-btn-fg: var(--alle-text-hi);
  --alle-btn-border: color-mix(in oklab, var(--alle-text-hi) 28%, transparent);
}

.alle-btn--lg { min-block-size: 3.5rem; padding-inline: var(--alle-space-l); font-size: var(--alle-step-1); }

.alle-btn__icon { inline-size: 1.25em; block-size: 1.25em; flex: none; }

/* ==========================================================================
   טפסים — כל שדה עם label אמיתי, לא placeholder בתור label
   ========================================================================== */

.alle-field { display: grid; gap: var(--alle-space-3xs); }

.alle-field__label {
  font-size: var(--alle-step--1);
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--alle-text-hi);
}
.alle-field__req { color: var(--alle-accent-text); margin-inline-start: 0.15em; }

.alle-field__hint { font-size: var(--alle-step--1); color: var(--alle-text-low); }

/* שדות שקופים עם קו־שיער ורוד עדין.
   הרקע שקוף לחלוטין, כך שהזוהר של העמוד נראה מבעדו ואין "מלבן ורוד" שמפריע.
   הגבול הוא #FF5FB0 ב-60%: זה הערך העדין ביותר שעדיין עובר את דרישת
   הניגודיות לגבולות רכיבים (3:1 — נמדד 3.11 על כרטיס ו-3.13 על רקע העמוד).
   מגנטה המותג בשקיפות נבדקה ונפסלה — גם ב-100% היא מגיעה ל-4.63 בלבד,
   וכל שקיפות שלה צונחת מתחת ל-3:1. עובי 1px שומר על התחושה העדינה. */
.alle-field__input {
  inline-size: 100%;
  min-block-size: 3rem;
  padding: var(--alle-space-xs) var(--alle-space-s);
  color: var(--alle-text-hi);
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--alle-accent-text) 60%, transparent);
  border-radius: var(--alle-radius-m);
  transition:
    border-color var(--alle-dur-fast) var(--alle-ease-out),
    box-shadow var(--alle-dur-fast) var(--alle-ease-out);
}
.alle-field__input::placeholder { color: var(--alle-text-low); }
.alle-field__input:hover { border-color: color-mix(in srgb, var(--alle-accent-text) 80%, transparent); }
/* בפוקוס הגבול נעשה מלא ומקבל הילה דקה — הבחנה ברורה מעבר לצבע בלבד */
.alle-field__input:focus {
  border-color: var(--alle-accent-text);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--alle-accent-text) 18%, transparent);
  outline-offset: 2px;
}
:where(.alle-scope) textarea.alle-field__input { min-block-size: 7rem; resize: vertical; }

/* שגיאה מסומנת בצבע *וגם* באייקון וטקסט — לא בצבע לבד */
.alle-field__input[aria-invalid='true'] { border-color: var(--alle-error); }
.alle-field__error {
  display: none;
  align-items: center;
  gap: var(--alle-space-3xs);
  font-size: var(--alle-step--1);
  font-weight: 600;
  color: var(--alle-error);
}
.alle-field__error::before { content: '⚠'; font-size: 1em; }
.alle-field__input[aria-invalid='true'] ~ .alle-field__error { display: flex; }

/* צ'ק־בוקס: ה-input האמיתי נשאר בעץ הפוקוס, רק מצויר מעליו */
.alle-check {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--alle-space-xs);
  align-items: start;
  font-size: var(--alle-step--1);
  line-height: 1.5;
  color: var(--alle-text-mid);
  cursor: pointer;
}
.alle-check input {
  appearance: none;
  inline-size: 1.5rem;
  block-size: 1.5rem;
  margin: 0;
  flex: none;
  /* אותה שפה של השדות: שקוף עם קו־שיער ורוד */
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--alle-accent-text) 60%, transparent);
  border-radius: var(--alle-radius-s);
  cursor: pointer;
  transition: background-color var(--alle-dur-fast) var(--alle-ease-out), border-color var(--alle-dur-fast) var(--alle-ease-out);
}
.alle-check input:checked {
  background: var(--alle-brand-magenta);
  border-color: var(--alle-brand-magenta);
  /* וי בדיו — עובר ניגודיות על מגנטה */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A0A0C' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E");
  background-size: 78%;
  background-position: center;
  background-repeat: no-repeat;
}
.alle-check a { color: var(--alle-accent-text); }

/* אזור סטטוס לקורא מסך אחרי שליחה */
.alle-form__status {
  margin-block-start: var(--alle-space-s);
  font-weight: 600;
}
.alle-form__status:empty { display: none; }
.alle-form__status[data-state='ok'] { color: var(--alle-ok); }
.alle-form__status[data-state='error'] { color: var(--alle-error); }

/* ==========================================================================
   מדיה — גריד תמונות מאוחד
   הצילומים באתר מגיעים ממקורות שונים באיכות משתנה. גרייד אחיד אחד
   (דה-סאטורציה + הרמת שחורים + שכבת מגנטה ב-soft-light) גורם להם
   להיקרא כמערכת מכוונת ולא כאסופה מזדמנת.
   ========================================================================== */

.alle-media {
  position: relative;
  overflow: hidden;
  border-radius: var(--alle-radius-l);
  background: var(--alle-surface-1);
  isolation: isolate;
}
/* גרייד מונוכרום.
   הצילומים באתר מגיעים ממקורות שונים ובאיכות משתנה (סטילס מקצועי אחד לצד
   צילומי טלפון). גרייד אחד מהדק אותם לסדרה תיעודית מכוונת אחת.
   בלי שכבת גוון מגנטה על הפיקסלים: גם soft-light וגם screen צבעו את החדרים
   הבהירים (הקליניקה, הסטודיו) בוורוד שנקרא כתקלת צבע ולא כעיצוב.
   הצבע של המותג חוזר דרך ה-UI — תגי המרחבים, התבליטים והטיפוגרפיה. */
.alle-media :where(img, video) {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  filter: grayscale(0.92) contrast(1.12) brightness(0.8);
  transition: filter var(--alle-dur-slow) var(--alle-ease-out), transform var(--alle-dur-slow) var(--alle-ease-out);
}

/* מיזוג אל הקנבס: התמונה לא נגמרת בקו חד אלא נמסמסת אל הרקע.
   זה מה שמשרת את הגלילה הרציפה, בניגוד לשכבת הצבע שהוסרה. */
.alle-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 10, 12, 0.55), transparent 42%);
  pointer-events: none;
}
/* מדרג קריאות לטקסט שיושב על תמונה — תמיד, לא רק כשנוח */
.alle-media--scrim::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(10, 10, 12, 0.92) 0%, rgba(10, 10, 12, 0.55) 45%, rgba(10, 10, 12, 0.15) 100%);
  pointer-events: none;
}

/* hover מחזיר את הצבע — חשיפה מכוונת ולא סתם הבהרה */
@media (hover: hover) and (pointer: fine) {
  a:hover > .alle-media :where(img, video),
  .alle-media:hover :where(img, video) { filter: grayscale(0.12) contrast(1.06) brightness(0.95); }
}

@media (prefers-contrast: more) {
  .alle-media :where(img, video) { filter: none; }
  .alle-media::after { display: none; }
}

/* ═══════════ sections.alle-css ═══════════ */
/* ==========================================================================
   Allé — sections.alle-css
   כותרת, ציר "המסלול", ופרקי העמוד.
   ========================================================================== */

/* ==========================================================================
   כותרת — שכבה שקופה שהתוכן נגלל מתחתיה
   ========================================================================== */

.alle-header {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: var(--alle-z-header);
  background: var(--alle-glass-bg);
  backdrop-filter: blur(var(--alle-glass-blur)) saturate(160%);
  -webkit-backdrop-filter: blur(var(--alle-glass-blur)) saturate(160%);
  /* אפקט קצה במקום גבול 1px: התוכן מתמוסס אל תוך הכותרת */
  mask-image: linear-gradient(to bottom, #000 0 82%, rgba(0, 0, 0, 0.6) 92%, transparent 100%);
  transition: background-color var(--alle-dur-slow) var(--alle-ease-out);
}

.alle-header__inner {
  display: flex;
  align-items: center;
  gap: var(--alle-space-m);
  min-block-size: var(--alle-header-h);
  padding-block: var(--alle-space-2xs);
}

.alle-header__logo {
  display: flex;
  align-items: center;
  flex: none;
  color: var(--alle-text-hi);
  text-decoration: none;
  transition: color var(--alle-dur-fast) var(--alle-ease-out);
}
.alle-header__logo svg { inline-size: auto; block-size: 2.15rem; }
@media (hover: hover) and (pointer: fine) {
  .alle-header__logo:hover { color: var(--alle-accent); }
}

.alle-header__nav { margin-inline-start: auto; }
.alle-header__list {
  display: flex;
  align-items: center;
  gap: var(--alle-space-2xs);
}
.alle-header__link {
  display: inline-flex;
  align-items: center;
  min-block-size: 2.75rem;
  padding-inline: var(--alle-space-xs);
  font-size: var(--alle-step--1);
  font-weight: 600;
  color: var(--alle-text-mid);
  text-decoration: none;
  border-radius: var(--alle-radius-pill);
  transition: color var(--alle-dur-fast) var(--alle-ease-out), background-color var(--alle-dur-fast) var(--alle-ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .alle-header__link:hover { color: var(--alle-text-hi); background: rgba(255, 255, 255, 0.07); }
}
.alle-header__link[aria-current='page'] { color: var(--alle-text-hi); }

.alle-header__cta { flex: none; }

/* תפריט מובייל: הניווט המלא עובר לתפריט נשלף */
.alle-header__toggle { display: none; }

@media (max-width: 60rem) {
  .alle-header__nav { display: none; }
  .alle-header__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 2.75rem;
    block-size: 2.75rem;
    margin-inline-start: auto;
    color: var(--alle-text-hi);
    background: transparent;
    border: 1.5px solid var(--alle-surface-3);
    border-radius: var(--alle-radius-pill);
    cursor: pointer;
  }
  .alle-header__nav[data-open='true'] {
    display: block;
    position: absolute;
    inset-block-start: 100%;
    inset-inline: var(--alle-gutter);
    padding: var(--alle-space-s);
    background: var(--alle-surface-1);
    border: 1px solid var(--alle-surface-3);
    border-radius: var(--alle-radius-l);
    box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.55);
  }
  .alle-header__nav[data-open='true'] .alle-header__list { flex-direction: column; align-items: stretch; }
  .alle-header__nav[data-open='true'] .alle-header__link { min-block-size: 3rem; padding-inline: var(--alle-space-s); }
}

/* ==========================================================================
   ציר "המסלול" — המטאפורה של המותג
   מסלול טיפוס הוא קו רצוף של אחיזות. העמוד הוא מסלול אחד מלמטה למעלה,
   והגלילה היא הטיפוס. הציר גם מחבר את הפרקים ויזואלית וגם משמש ניווט.
   ========================================================================== */

.alle-route {
  position: fixed;
  inset-block: 0;
  inset-inline-start: 0;
  z-index: var(--alle-z-route);
  display: flex;
  align-items: center;
  gap: var(--alle-space-xs);
  padding-inline-start: clamp(0.5rem, 1.6vw, 1.25rem);
  pointer-events: none;
}
.alle-route > * { pointer-events: auto; }

.alle-route__line { position: relative; flex: none; }
.alle-route__line svg { block-size: min(62vh, 34rem); inline-size: 1.5rem; overflow: visible; }

.alle-route__track { stroke: rgba(255, 255, 255, 0.14); }
.alle-route__progress {
  stroke: var(--alle-brand-magenta);
  /* pathLength=1 מנרמל את המסלול, כך שההתקדמות היא 0..1 ישירות */
  stroke-dasharray: 1;
  stroke-dashoffset: calc(1 - var(--alle-scroll-progress));
  filter: drop-shadow(0 0 6px rgba(237, 28, 145, 0.55));
}

/* אחיזות = ניווט אמיתי (רשימת קישורים), לא נקודות דקורטיביות */
.alle-route__holds { display: grid; gap: var(--alle-space-2xs); }

.alle-route__hold {
  display: flex;
  align-items: center;
  gap: var(--alle-space-2xs);
  min-block-size: 2.75rem;   /* יעד נגיעה, גם כשהנקודה קטנה */
  padding-inline: var(--alle-space-3xs);
  text-decoration: none;
  color: var(--alle-text-low);
}
.alle-route__dot {
  inline-size: 0.7rem;
  block-size: 0.7rem;
  flex: none;
  border-radius: 50%;
  border: 1.5px solid color-mix(in oklab, var(--alle-text-hi) 35%, transparent);
  background: transparent;
  transition:
    transform var(--alle-dur-mid) var(--alle-ease-out),
    background-color var(--alle-dur-mid) var(--alle-ease-out),
    border-color var(--alle-dur-mid) var(--alle-ease-out);
}
.alle-route__label {
  font-size: var(--alle-step--1);
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  transform: translateX(-0.4rem);
  transition: opacity var(--alle-dur-mid) var(--alle-ease-out), transform var(--alle-dur-mid) var(--alle-ease-out);
}
/* ב-RTL הכיתוב נכנס מהכיוון ההגיוני הנגדי */
:dir(rtl) .alle-route__label { transform: translateX(0.4rem); }

.alle-route__hold[aria-current='true'] .alle-route__dot {
  background: var(--alle-brand-magenta);
  border-color: var(--alle-brand-magenta);
  transform: scale(1.45);
  box-shadow: 0 0 0 4px rgba(237, 28, 145, 0.2);
}
.alle-route__hold[aria-current='true'] { color: var(--alle-text-hi); }

@media (hover: hover) and (pointer: fine) {
  .alle-route__hold:hover .alle-route__dot { border-color: var(--alle-accent); transform: scale(1.3); }
  .alle-route__hold:hover .alle-route__label { opacity: 1; transform: translateX(0); }
  .alle-route__hold:hover { color: var(--alle-text-hi); }
}
.alle-route__hold:focus-visible .alle-route__label { opacity: 1; transform: translateX(0); }

/* מובייל / מסכים נמוכים: הציר מוחלף בפס התקדמות דק בראש העמוד */
@media (max-width: 64rem), (max-height: 34rem) {
  .alle-route { display: none; }
}

.alle-progressbar {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: var(--alle-z-header);
  block-size: 3px;
  background: var(--alle-brand-magenta);
  transform-origin: inline-start;
  transform: scaleX(var(--alle-scroll-progress));
  display: none;
}
@media (max-width: 64rem), (max-height: 34rem) {
  .alle-progressbar { display: block; }
}

/* ==========================================================================
   חשיפת גלילה
   static-first: התוכן גלוי לחלוטין בלי JS. רק כשה-JS רץ, לא באדיטור,
   ולא ב-reduced-motion — נוספת המחלקה על <html> ואז מוגדר מצב ההתחלה.
   התנועה: התוכן "מושיט יד" מלמטה, בדיוק כמו הושטת יד לאחיזה הבאה.
   ========================================================================== */

.alle-frontend-animations-enabled .alle-reveal {
  opacity: 0;
  transform: translate3d(0, 1.75rem, 0);
  filter: blur(6px);
  transition:
    opacity var(--alle-dur-reveal) var(--alle-ease-out),
    transform var(--alle-dur-reveal) var(--alle-ease-out),
    filter var(--alle-dur-reveal) var(--alle-ease-out);
  transition-delay: var(--alle-reveal-delay, 0ms);
}
.alle-frontend-animations-enabled .alle-reveal.alle-is-in {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

@media (prefers-reduced-motion: reduce) {
  /* גם אם המחלקה נוספה: cross-fade עדין בלבד, בלי תזוזה ובלי blur */
  .alle-frontend-animations-enabled .alle-reveal { transform: none; filter: none; transition: opacity var(--alle-dur-mid) ease; }
}

/* ==========================================================================
   פרק 1 — Hero
   ========================================================================== */

.alle-hero {
  position: relative;
  display: grid;
  align-content: center;
  /* svh ולא vh: מונע קפיצה כשסרגל הכתובת ב-iOS נעלם */
  min-block-size: 100svh;
  padding-block: calc(var(--alle-header-h) + var(--alle-space-2xl)) var(--alle-space-2xl);
  overflow: clip;
}

/* התמונה נושמת מחוץ לגריד ומדממת אל קצה העמוד */
.alle-hero__media {
  position: absolute;
  inset-block: 0;
  inset-inline-end: 0;
  inline-size: min(62%, 52rem);
  border-radius: 0;
  border-start-start-radius: var(--alle-radius-xl);
  border-end-start-radius: var(--alle-radius-xl);
}
.alle-hero__media :where(img, video) { block-size: 100%; }
/* מדרג דו־כיווני: קורא את הטקסט מעל התמונה ומאחה אותה לרקע */
.alle-hero__media::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(to left, transparent 20%, rgba(10, 10, 12, 0.75) 65%, var(--alle-surface-0) 96%),
    linear-gradient(to top, rgba(10, 10, 12, 0.85), transparent 55%);
}
:dir(rtl) .alle-hero__media::before {
  background:
    linear-gradient(to right, transparent 20%, rgba(10, 10, 12, 0.75) 65%, var(--alle-surface-0) 96%),
    linear-gradient(to top, rgba(10, 10, 12, 0.85), transparent 55%);
}

.alle-hero__body { position: relative; z-index: 2; display: grid; gap: var(--alle-space-m); }

.alle-hero h1 { max-inline-size: 22ch; }
.alle-hero .alle-lede { max-inline-size: 46ch; color: var(--alle-text-mid); font-size: var(--alle-step-1); }

/* הצהרת השליחות. מסומנת ע"י צורת האחיזה של המותג ולא ע"י פס צד צבעוני —
   הציר המגנטה כבר קיים בעמוד, וחזרה עליו כאן הייתה מייתרת אותו. */
.alle-hero__mission {
  position: relative;
  max-inline-size: 40ch;
  padding-inline-start: calc(var(--alle-space-m) + 0.4rem);
  font-size: var(--alle-step-1);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: -0.01em;
  color: var(--alle-text-hi);
}
.alle-hero__mission::before {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0.5em;
  inline-size: 1.05rem;
  block-size: 1.05rem;
  /* אותה צורת אחיזה אורגנית של תבליטי הרשימה */
  border-radius: 50% 50% 50% 20%;
  background: var(--alle-brand-magenta);
  rotate: -12deg;
}

.alle-hero__actions { display: flex; flex-wrap: wrap; gap: var(--alle-space-xs); margin-block-start: var(--alle-space-2xs); }

/* פס נתונים — כל מספר מגיע מהתוכן הקיים של העמוד */
.alle-stats {
  display: grid;
  /* min(8rem,100%) ולא 9rem: ב-390px שלוש עמודות של 9rem לא נכנסות
     והפריט השלישי נחתך. עכשיו הוא נשבר לשורה שנייה. */
  grid-template-columns: repeat(auto-fit, minmax(min(8rem, 100%), 1fr));
  gap: var(--alle-space-m);
  max-inline-size: 42rem;
  margin-block-start: var(--alle-space-l);
  padding-block-start: var(--alle-space-m);
  border-block-start: 1px solid var(--alle-surface-3);
}
.alle-stat__num {
  display: block;
  font-size: var(--alle-step-5);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--alle-text-hi);
  font-variant-numeric: tabular-nums;
}
.alle-stat__label {
  display: block;
  margin-block-start: var(--alle-space-3xs);
  font-size: var(--alle-step--1);
  font-weight: 500;
  line-height: 1.35;
  color: var(--alle-text-low);
}

/* מובייל: התמונה נשארת רקע מאחורי הטקסט, כמו בדסקטופ.
   בגרסה קודמת היא הפכה לבלוק בתחתית הסקשן (column-reverse) — מה שגם שבר
   את הרעיון של הירו הקולנועי וגם דחק את התוכן למטה. */
@media (max-width: 62rem) {
  .alle-hero {
    display: grid;
    align-content: center;
    /* התוכן במובייל גבוה מ-100svh בכל מקרה, ולכן זו רצפה ולא תקרה */
    min-block-size: 100svh;
    padding-block: calc(var(--alle-header-h) + var(--alle-space-xl)) var(--alle-space-2xl);
  }
  .alle-hero__media {
    position: absolute;
    inset: 0;
    inline-size: 100%;
    aspect-ratio: auto;
    margin: 0;
    border-radius: 0;
  }
  /* מדרג חזק יותר מבדסקטופ: כאן הטקסט יושב על *כל* רוחב התמונה ולא על
     חצי, ולכן נדרשת שכבה אטומה יותר כדי לשמור על קריאות. */
  .alle-hero__media::before,
  :dir(rtl) .alle-hero__media::before {
    background: linear-gradient(
      to top,
      rgba(10, 10, 12, 0.94) 0%,
      rgba(10, 10, 12, 0.86) 45%,
      rgba(10, 10, 12, 0.72) 100%
    );
  }
}

/* ==========================================================================
   פרק 2 — מניפסט
   ========================================================================== */

.alle-manifesto {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(var(--alle-space-l), 5vw, var(--alle-space-2xl));
  align-items: center;
}
.alle-manifesto__body { display: grid; gap: var(--alle-space-m); }
.alle-manifesto__body .alle-lede { font-size: var(--alle-step-3); font-weight: 600; letter-spacing: -0.02em; line-height: 1.25; }
.alle-manifesto__body p { color: var(--alle-text-mid); }

.alle-manifesto__media {
  aspect-ratio: 3 / 4;
  max-block-size: clamp(22rem, 58vh, 34rem);
  /* חופף לפרק הבא — מונע קו חיתוך בין הפרקים */
  margin-block-end: calc(var(--alle-chapter-lead) * -0.45);
}

@media (max-width: 62rem) {
  .alle-manifesto { grid-template-columns: 1fr; }
  .alle-manifesto__media { aspect-ratio: 4 / 3; margin-block-end: 0; }
}

/* ==========================================================================
   פרק 3 — המרחבים
   כל מרחב הוא "אחיזה" על הקיר: שורות שמתחלפות בכיוון, כמו מסלול שעולה.
   ========================================================================== */

.alle-chapter__head { display: grid; gap: var(--alle-space-s); margin-block-end: var(--alle-space-2xl); }
.alle-chapter__head h2 { max-inline-size: 26ch; }
.alle-chapter__head p { color: var(--alle-text-mid); font-size: var(--alle-step-1); }

.alle-holds { display: grid; gap: clamp(var(--alle-space-xl), 4.5vw, var(--alle-space-2xl)); }

.alle-hold {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(var(--alle-space-l), 4vw, var(--alle-space-2xl));
  align-items: center;
}
/* מרחבים זוגיים מתהפכים — הציר הוויזואלי מזגזג כמו מסלול טיפוס.
   order:1 ולא -1: המדיה כבר ראשונה ב-DOM, ולכן order שלילי לא הזיז כלום
   וכל ארבעת המרחבים יצאו באותו צד. */
.alle-hold:nth-child(even) .alle-hold__media { order: 1; }
/* היסט אנכי עדין: השורות לא מיושרות לגריד קשיח */
.alle-hold:nth-child(odd) .alle-hold__media { transform: translateY(calc(var(--alle-space-s) * -1)); }
.alle-hold:nth-child(even) .alle-hold__body { transform: translateY(calc(var(--alle-space-2xs) * -1)); }

/* כל ארבעת המרחבים בפורטרט 4:5 — הצילומים המקוריים כולם אנכיים,
   וחיתוך לרוחב היה חותך את הנושא. הזיגזג נוצר מהיפוך הסדר ומההיסט
   האנכי, לא מהיחס. */
.alle-hold__media {
  aspect-ratio: 4 / 5;
  /* תקרת גובה: בלעדיה שורה של פורטרט 4:5 גבוהה פי כמה מהטקסט שלה,
     ו-align-items:center מייצר חור אנכי ענק בכל שורה. */
  max-block-size: clamp(18rem, 38vh, 24rem);
}

.alle-hold__body { display: grid; gap: var(--alle-space-s); align-content: start; }

/* תג המרחב — מחקה את השילוט הצבוע על הקירות של המקום עצמו
   ("קליניקה", "סטודיו"), במקום מספור 01/02/03 גנרי.
   פונט sans ולא mono: למונו אין תמיכה עברית אמיתית והוא נופל לפולבק. */
/* `.alle-hold__body .alle-hold__tag` ולא `.alle-hold__tag`: הכלל `.alle-hold__body p` ספציפי יותר
   והוא דרס את הצבע, כך שהתג יצא אפור על מגנטה (2.37:1) במקום דיו (4.88:1). */
.alle-hold__body .alle-hold__tag {
  justify-self: start;
  padding: var(--alle-space-3xs) var(--alle-space-xs);
  font-size: var(--alle-step--1);
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--alle-on-accent);
  background: var(--alle-brand-magenta);   /* דיו על מגנטה — 4.88:1 */
  border-radius: var(--alle-radius-s);
}
.alle-hold__body p { color: var(--alle-text-mid); max-inline-size: 48ch; }

.alle-hold__points { display: grid; gap: var(--alle-space-2xs); margin-block-start: var(--alle-space-2xs); }
.alle-hold__point {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--alle-space-xs);
  align-items: start;
  font-size: var(--alle-step-0);
  color: var(--alle-text-hi);
}
/* אחיזה קטנה כתבליט רשימה — חוזר למטאפורה */
.alle-hold__point::before {
  content: '';
  inline-size: 0.55rem;
  block-size: 0.55rem;
  margin-block-start: 0.55em;
  border-radius: 50% 50% 50% 20%;
  background: var(--alle-brand-magenta);
  flex: none;
}

/* לוח שעות של הסטודיו */
.alle-hours-inline {
  display: flex;
  flex-wrap: wrap;
  gap: var(--alle-space-2xs);
  margin-block-start: var(--alle-space-2xs);
}
.alle-hours-inline__item {
  display: inline-flex;
  align-items: baseline;
  gap: var(--alle-space-3xs);
  padding: var(--alle-space-3xs) var(--alle-space-xs);
  font-size: var(--alle-step--1);
  font-weight: 600;
  color: var(--alle-text-hi);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--alle-surface-3);
  border-radius: var(--alle-radius-pill);
}
.alle-hours-inline__day { color: var(--alle-accent-text); }

@media (max-width: 62rem) {
  .alle-hold { grid-template-columns: 1fr; }
  .alle-hold:nth-child(even) .alle-hold__media { order: 0; }
  .alle-hold:nth-child(odd) .alle-hold__media,
  .alle-hold:nth-child(even) .alle-hold__body { transform: none; }
  .alle-hold__media, .alle-hold:nth-child(even) .alle-hold__media { aspect-ratio: 4 / 3; }
  .alle-chapter__head { margin-block-end: var(--alle-space-xl); }
}

/* ==========================================================================
   פרק 4 — קהילה
   ========================================================================== */

.alle-community { position: relative; }

.alle-community__media {
  position: relative;
  aspect-ratio: 21 / 9;
  min-block-size: 22rem;
  border-radius: var(--alle-radius-xl);
}

/* "Be Part Take part" — סיסמת המותג כטיפוגרפיית תצוגה, LTR */
.alle-community__motto {
  position: absolute;
  z-index: 2;
  inset-block-end: clamp(var(--alle-space-m), 4vw, var(--alle-space-2xl));
  inset-inline-start: clamp(var(--alle-space-m), 4vw, var(--alle-space-2xl));
  direction: ltr;
  unicode-bidi: isolate;
  font-size: clamp(2.5rem, 8vw, 7rem);
  font-weight: 900;
  line-height: 0.92;
  letter-spacing: -0.045em;
  text-transform: uppercase;
  color: var(--alle-brand-white);
  text-wrap: balance;
}
/* צאצא ישיר בלבד (`> span`): הטקסט עשוי להכיל span פנימי לבידוד דו־כיווני,
   ובלי הסימן הזה `span:last-child` היה תופס גם אותו וצובע את שתי השורות. */
.alle-community__motto > span { display: block; }
.alle-community__motto > span:last-child { color: var(--alle-brand-magenta); }

.alle-community__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(var(--alle-space-l), 5vw, var(--alle-space-2xl));
  align-items: start;
  margin-block-start: var(--alle-space-xl);
}
.alle-community__body p { color: var(--alle-text-mid); font-size: var(--alle-step-1); }

/* רצועת ניוזלטר — קומפקטית, לא פרק שלם */
.alle-signup {
  padding: clamp(var(--alle-space-m), 3vw, var(--alle-space-l));
  background: var(--alle-surface-1);
  border: 1px solid var(--alle-surface-3);
  border-radius: var(--alle-radius-l);
}
.alle-signup h3 { font-size: var(--alle-step-2); }
.alle-signup__note { margin-block-start: var(--alle-space-2xs); font-size: var(--alle-step-0); color: var(--alle-text-mid); }
.alle-signup__form { display: grid; gap: var(--alle-space-s); }
.alle-signup__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: var(--alle-space-s); }

/* --------------------------------------------------------------------------
   טופס הניוזלטר נפתח בלחיצה (disclosure)
   static-first: בלי JS הכפתור לא מוצג בכלל והטופס פתוח ושמיש. הכפתור נחשף
   רק אחרי ש-js-ready נוסף ל-<html>, ואז ה-JS מקפל את הפאנל. כך אין מצב
   שבו מבקר בלי JS רואה כפתור שלא עושה כלום, או טופס שאי אפשר לפתוח.
   -------------------------------------------------------------------------- */

.alle-signup__toggle {
  display: none;
  margin-block-start: var(--alle-space-m);
  /* לא להימתח לרוחב מלא: ערכות נושא נוטות להרחיב כפתורים ל-100% במובייל,
     וזה הפך את הכפתור העדין הזה לבלוק ענק. */
  inline-size: auto;
  align-self: start;
}
.alle-ready .alle-signup__toggle { display: inline-flex; }

/* מובייל: כפתור עדין. הגובה נשאר 44px — זהו רצפת יעד־הנגיעה הנגיש
   ואין לרדת מתחתיו — אבל הטקסט והריווח האופקי מתכווצים. */
@media (max-width: 40rem) {
  .alle-signup__toggle {
    font-size: var(--alle-step--1);
    font-weight: 700;
    padding-inline: var(--alle-space-m);
    gap: var(--alle-space-3xs);
  }
  .alle-signup__chev { inline-size: 0.95em; block-size: 0.95em; }
}

.alle-signup__chev {
  inline-size: 1.1em;
  block-size: 1.1em;
  flex: none;
  transition: transform var(--alle-dur-mid) var(--alle-ease-out);
}
[aria-expanded='true'] .alle-signup__chev { transform: rotate(180deg); }

/* ברירת המחדל (בלי JS) — פתוח */
.alle-signup__panel { display: grid; grid-template-rows: 1fr; }
/* min-block-size:0 + overflow:hidden נדרשים כדי שהמסלול 0fr אכן יאפס את הגובה.
   הריווח יושב על הטופס ולא על העוטף — padding על העוטף לא מתאפס עם המסלול
   והשאיר 24px גם במצב מקופל. */
.alle-signup__panel-inner { overflow: hidden; min-block-size: 0; }
.alle-signup__panel-inner > .alle-signup__form { padding-block-start: var(--alle-space-m); }

/* עם JS — מקופל, אלא אם נפתח.
   אנימציה על grid-template-rows ולא על height: זה מאפשר לגובה לנבוע
   מהתוכן בלי למדוד אותו ב-JS. אקורדיון הוא המקרה שבו אין חלופת transform. */
.alle-ready .alle-signup__panel {
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--alle-dur-slow) var(--alle-ease-out);
}
.alle-ready .alle-signup__panel > .alle-signup__panel-inner {
  /* visibility מוציא את התוכן המקופל מעץ הנגישות ומסדר הטאבים.
     ההשהיה בסגירה משאירה אותו נראה עד שהקיפול נגמר. */
  visibility: hidden;
  transition: visibility 0s linear var(--alle-dur-slow);
}
.alle-ready .alle-signup__panel[data-open='true'] { grid-template-rows: 1fr; }
.alle-ready .alle-signup__panel[data-open='true'] > .alle-signup__panel-inner {
  visibility: visible;
  transition-delay: 0s;
}

@media (prefers-reduced-motion: reduce) {
  /* בלי אנימציית גובה — פתיחה וסגירה מיידיות */
  .alle-ready .alle-signup__panel { transition: none; }
  .alle-signup__chev { transition: none; }
}

@media (max-width: 62rem) {
  .alle-community__body { grid-template-columns: 1fr; align-items: start; }
  .alle-community__media { aspect-ratio: 4 / 3; min-block-size: 0; }
}

/* ==========================================================================
   פרק 5 — מאמרים
   ========================================================================== */

.alle-articles__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(19rem, 100%), 1fr));
  gap: var(--alle-space-l);
}

.alle-card {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: var(--alle-space-s);
  padding: 0 0 var(--alle-space-m);
  color: inherit;
  text-decoration: none;
  border-radius: var(--alle-radius-l);
  transition: transform var(--alle-dur-mid) var(--alle-ease-out);
}
.alle-card__media { aspect-ratio: 16 / 11; }
.alle-card__body { display: grid; gap: var(--alle-space-2xs); align-content: start; padding-inline: var(--alle-space-3xs); }
.alle-card h3 { font-size: var(--alle-step-2); }
.alle-card p { font-size: var(--alle-step-0); color: var(--alle-text-mid); }

.alle-card__more {
  display: inline-flex;
  align-items: center;
  gap: var(--alle-space-3xs);
  margin-block-start: var(--alle-space-2xs);
  font-size: var(--alle-step-0);
  font-weight: 700;
  color: var(--alle-accent-text);
}
.alle-card__more svg {
  inline-size: 1em; block-size: 1em;
  transition: transform var(--alle-dur-fast) var(--alle-ease-out);
}

@media (hover: hover) and (pointer: fine) {
  .alle-card:hover { transform: translateY(-0.4rem); }
  .alle-card:hover h3 { color: var(--alle-accent-quiet); }
  .alle-card:hover .alle-card__more svg { transform: translateX(-0.25rem); }
}

/* ==========================================================================
   פרק 6 — ביקור אצלנו
   ========================================================================== */

.alle-visit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(var(--alle-space-l), 5vw, var(--alle-space-2xl));
  align-items: start;
}
.alle-visit__block { display: grid; gap: var(--alle-space-m); align-content: start; }

/* שעות פעילות כטבלה אמיתית עם caption ו-th scope.
   ------------------------------------------------------------------
   איפוס מוחלט קודם: ערכות נושא של וורדפרס מוסיפות כמעט תמיד border לכל
   תא, רקע ל-th ופסי זברה ל-tr. זה הופך את הטבלה ל"מסגרת" שלא קיימת
   בעיצוב, ולכן צריך לנטרל אותן במפורש ולא להסתמך על הערכה. */
.alle-hours,
.alle-hours caption,
.alle-hours thead,
.alle-hours tbody,
.alle-hours tfoot,
.alle-hours tr,
.alle-hours th,
.alle-hours td {
  border: 0;
  background: none;
  box-shadow: none;
}

.alle-hours { inline-size: 100%; border-collapse: collapse; text-align: start; }
.alle-hours caption {
  font-size: var(--alle-step-1);
  font-weight: 700;
  color: var(--alle-text-hi);
  text-align: start;
  padding-block-end: var(--alle-space-xs);
}
.alle-hours th, .alle-hours td {
  padding: var(--alle-space-xs) 0;
  border-block-end: 1px solid var(--alle-surface-3);
  vertical-align: baseline;
}
.alle-hours th {
  font-size: var(--alle-step-0);
  font-weight: 700;
  color: var(--alle-text-hi);
  text-align: start;
  inline-size: 8rem;
}
/* כל השעות באותו צד. בלי היישור המפורש `start` היה מתרגם לשמאל בשורות
   שהוגדרו LTR (מספרים) ולימין בשורות בעברית — וחצי מהעמודה יצאה הפוך.
   הבידוד הדו־כיווני יושב על span פנימי, כדי שהמספרים יסודרו נכון בלי
   להשפיע על יישור התא. */
.alle-hours td {
  color: var(--alle-text-mid);
  font-variant-numeric: tabular-nums;
  text-align: end;
}
.alle-hours tr:last-child th, .alle-hours tr:last-child td { border-block-end: 0; }
.alle-hours .alle-hours__note { font-size: var(--alle-step--1); color: var(--alle-text-low); }

/* פרטי קשר */
.alle-contacts { display: grid; gap: var(--alle-space-2xs); }
.alle-contacts__row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--alle-space-s);
  align-items: center;
  /* הטלפון והמייל עטופים ב-.alle-ltr כדי שהספרות והתווים יסודרו נכון, אבל
     direction:ltr גם הפך את היישור בתוך התא לשמאל — ולכן הם נראו מיושרים
     הפוך מהוואטסאפ והכתובת. justify-items:start מכריח כל תא להתכווץ לתוכן
     ולשבת בתחילת השורה לפי כיוון המסמך (ימין ב-RTL), בלי לקבע צד. */
  justify-items: start;
  min-block-size: 2.75rem;
  padding: var(--alle-space-2xs) 0;
  font-size: var(--alle-step-1);
  font-weight: 600;
  color: var(--alle-text-hi);
  text-decoration: none;
}
.alle-contacts__row svg { inline-size: 1.35rem; block-size: 1.35rem; color: var(--alle-accent-text); flex: none; }
@media (hover: hover) and (pointer: fine) {
  a.alle-contacts__row:hover { color: var(--alle-accent-quiet); }
}

.alle-socials { display: flex; flex-wrap: wrap; gap: var(--alle-space-2xs); }
.alle-socials__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 2.75rem;
  block-size: 2.75rem;
  color: var(--alle-text-hi);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--alle-surface-3);
  border-radius: 50%;
  transition: background-color var(--alle-dur-fast) var(--alle-ease-out), color var(--alle-dur-fast) var(--alle-ease-out), transform var(--alle-dur-press) var(--alle-ease-out);
}
.alle-socials__link svg { inline-size: 1.15rem; block-size: 1.15rem; }
.alle-socials__link:active { transform: scale(0.94); }
@media (hover: hover) and (pointer: fine) {
  .alle-socials__link:hover { background: var(--alle-brand-magenta); color: var(--alle-on-accent); }
}

@media (max-width: 62rem) { .alle-visit { grid-template-columns: 1fr; } }

/* ==========================================================================
   פרק 7 — טופס חזרה
   ========================================================================== */

.alle-contact {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(var(--alle-space-l), 5vw, var(--alle-space-2xl));
  align-items: start;
}
.alle-contact__intro { display: grid; gap: var(--alle-space-s); align-content: start; }
.alle-contact__intro p { color: var(--alle-text-mid); font-size: var(--alle-step-1); }

.alle-contact__form {
  display: grid;
  gap: var(--alle-space-m);
  padding: clamp(var(--alle-space-m), 3vw, var(--alle-space-xl));
  background: var(--alle-surface-1);
  border: 1px solid var(--alle-surface-3);
  border-radius: var(--alle-radius-l);
}
.alle-contact__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: var(--alle-space-m); }
.alle-contact__form fieldset { min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.alle-contact__form legend { padding: 0; }

@media (max-width: 62rem) { .alle-contact { grid-template-columns: 1fr; } }

/* ==========================================================================
   פוטר
   ========================================================================== */

.alle-footer {
  position: relative;
  z-index: var(--alle-z-content);
  margin-block-start: var(--alle-space-2xl);
  padding-block: var(--alle-space-xl) var(--alle-space-l);
  border-block-start: 1px solid var(--alle-surface-3);
}
.alle-footer__inner {
  display: flex;
  flex-wrap: wrap;
  gap: var(--alle-space-m);
  align-items: center;
  justify-content: space-between;
  font-size: var(--alle-step--1);
  color: var(--alle-text-low);
}
.alle-footer__links { display: flex; flex-wrap: wrap; gap: var(--alle-space-m); }
/* קו תחתון קבוע: הקישורים בפוטר יושבים בתוך גוף טקסט, וההפרש בצבע בינם
   לסביבה הוא 1.96:1 בלבד — כלומר צבע לבדו לא מזהה אותם (WCAG 1.4.1). */
.alle-footer a {
  color: var(--alle-text-mid);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
.alle-footer a:hover { color: var(--alle-accent-quiet); text-decoration-thickness: 2px; }
.alle-footer__logo { color: var(--alle-text-mid); }
.alle-footer__logo svg { block-size: 1.75rem; inline-size: auto; }

/* ==========================================================================
   FAB וואטסאפ — ההמרה הראשית
   ========================================================================== */

.alle-fab {
  position: fixed;
  inset-block-end: clamp(1rem, 3vw, 1.75rem);
  inset-inline-end: clamp(1rem, 3vw, 1.75rem);
  z-index: var(--alle-z-fab);
  display: inline-flex;
  align-items: center;
  gap: var(--alle-space-2xs);
  min-block-size: 3.5rem;
  padding: var(--alle-space-xs) var(--alle-space-m);
  font-size: var(--alle-step-0);
  font-weight: 800;
  color: var(--alle-on-accent);          /* דיו על מגנטה — 4.88:1 */
  text-decoration: none;
  background: var(--alle-brand-magenta);
  border-radius: var(--alle-radius-pill);
  box-shadow: 0 0.75rem 2rem rgba(237, 28, 145, 0.32), 0 0.25rem 0.5rem rgba(0, 0, 0, 0.4);
  transition: transform var(--alle-dur-press) var(--alle-ease-out), background-color var(--alle-dur-fast) var(--alle-ease-out);
}
.alle-fab svg { inline-size: 1.6rem; block-size: 1.6rem; flex: none; }
.alle-fab:active { transform: scale(0.96); }
@media (hover: hover) and (pointer: fine) {
  /* אותו היגיון כמו בכפתור המלא: רקע מתכהה, טקסט לבן */
  .alle-fab:hover {
    background: var(--alle-accent-hover);
    color: var(--alle-brand-white);
    transform: translateY(-2px);
  }
}
/* וריאנט מיקום: הצד הנגדי (לוגי, מתהפך נכון ב-RTL/LTR) */
.alle-fab--start {
  inset-inline-end: auto;
  inset-inline-start: clamp(1rem, 3vw, 1.75rem);
}

/* במובייל הכיתוב מתקפל והכפתור נשאר עיגול — אבל שם הנגישות נשמר */
@media (max-width: 30rem) {
  .alle-fab { padding: 0; inline-size: 3.5rem; justify-content: center; }
  .alle-fab__text { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

  /* אופציה: להשאיר את הכיתוב גם במסך צר */
  .alle-fab--keep-text { padding: var(--alle-space-xs) var(--alle-space-m); inline-size: auto; }
  .alle-fab--keep-text .alle-fab__text {
    position: static;
    inline-size: auto;
    block-size: auto;
    clip-path: none;
  }
}


/* ==========================================================================
   שריון מול CSS של אלמנטור וערכת הנושא
   בלוק זה קיים בגרסת התוסף בלבד ואינו חלק מהעיצוב — הוא רק מגן על מה
   שכבר אושר, מפני חוקים של צד שלישי שאין לנו שליטה עליהם.

   הבעיה שהוא פותר: לאלמנטור יש `.elementor img { height: auto }` בספציפיות
   (0,1,1), והיא גברה על `.alle-media :where(img,video) { block-size:100% }`
   שהיא (0,1,0). ברגע שהגובה נשלט ע"י התמונה, `object-fit: cover` מאבד
   משמעות, והתוצאה במובייל הייתה:
     · תמונה לאורך (קליניקה) — 467px בתוך מסגרת של 263px, נחתכה מלמעלה
       ונראתה רק התקרה.
     · תמונה לרוחב (קהילה)   — 197px בתוך מסגרת של 263px, ונשאר שטח ריק
       בתוך הכרטיס.
   שלוש מחלקות (0,3,0) מנצחות כל כלל סביר של צד שלישי, בלי !important.
   ========================================================================== */

.alle-scope .alle-media .alle-media__el,
.alle-scope .alle-media > img,
.alle-scope .alle-media > video {
  inline-size: 100%;
  block-size: 100%;
  height: 100%;          /* גם הצורה הפיזית, כי זו התכונה שנדרסה */
  width: 100%;
  object-fit: cover;
}

/* אותה הגנה לכפתור הנפתח. ערכות נושא לא רק מרחיבות אותו ל-100% אלא גם
   מגדילות font-size ו-padding בספציפיות (0,2,0), שגברה על כלל המובייל שלנו
   (0,1,0) — ולכן הכפתור נשאר ענק גם אחרי שהרוחב תוקן. */
.alle-scope .alle-signup .alle-signup__toggle {
  inline-size: auto;
  width: auto;
}

/* כפתורים בכלל: חסימת מתיחה ל-100% ע"י ערכת הנושא.
   רוחב הכפתורים כאן נגזר מהתוכן (inline-flex), ולכן בסביבה נקייה הכלל
   הזה לא משנה כלום — הוא רק חוסם דריסה. בלעדיו כפתור הכותרת נמתח ל-350px
   וגלש מהמסך (inset-inline-start הגיע ל--143px).
   מחלקה כפולה = ספציפיות (0,3,0), שמנצחת גם אם ה-CSS של הערכה נטען אחרינו. */
.alle-scope .alle-btn.alle-btn { width: auto; }
.alle-scope .alle-header .alle-header__cta { font-size: var(--alle-step-0); }

@media (max-width: 40rem) {
  .alle-scope .alle-signup .alle-signup__toggle {
    font-size: var(--alle-step--1);
    font-weight: 700;
    /* 2.75rem = 44px, רצפת יעד־הנגיעה הנגיש. לא לרדת מתחת. */
    min-block-size: 2.75rem;
    padding: var(--alle-space-2xs) var(--alle-space-m);
    gap: var(--alle-space-3xs);
  }
  .alle-scope .alle-signup .alle-signup__chev {
    inline-size: 0.95em;
    block-size: 0.95em;
  }
}


/* ==========================================================================
   מצב אדיטור של אלמנטור
   באדיטור אין אנימציות, ואלמנטים fixed/svh היו מכסים את הפאנל או מותחים את
   הבד. הכל נהפך לזרימה רגילה כדי שהסקשנים יהיו שטוחים ועריכים.
   הזיהוי נעשה ב-JS לפי elementor-editor-active / -preview / #elementor-panel —
   במכוון לא לפי elementor-html, שקיים גם ב-frontend החי (באג מתועד).
   ========================================================================== */

.alle-editor-preview .alle-canvas,
.alle-editor-preview .alle-header,
.alle-editor-preview .alle-fab {
  position: relative !important;
  inset: auto !important;
}
.alle-editor-preview .alle-canvas {
  block-size: 14rem;
  border-radius: var(--alle-radius-m);
  overflow: hidden;
}
.alle-editor-preview .alle-route,
.alle-editor-preview .alle-progressbar { display: none !important; }

.alle-editor-preview .alle-hero {
  min-block-size: 0 !important;
  padding-block-start: var(--alle-space-xl) !important;
}
.alle-editor-preview .alle-hero__media { position: relative !important; inset: auto !important; inline-size: auto !important; }

/* באדיטור התוכן תמיד גלוי — אין מצב טרום-אנימציה */
.alle-editor-preview .alle-reveal {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

/* הטופס הנפתח נשאר פתוח באדיטור כדי שיהיה עריך */
.alle-editor-preview .alle-signup__panel { grid-template-rows: 1fr !important; }
.alle-editor-preview .alle-signup__panel > .alle-signup__panel-inner { visibility: visible !important; }
.alle-editor-preview .alle-signup__toggle { display: inline-flex !important; }
