/* =====================================================================
   ND Components — English LTR overrides (2026-09-28)
   =====================================================================
   Loaded after nd-shared.css, and only on LTR requests (see
   nd_components_register_assets() in init.php). Every rule here is scoped
   to [dir="ltr"] or body.nd-dir-ltr, so this file can never match a Hebrew
   page. nd-shared.css itself is deliberately left untouched: its RTL rules
   are the QA-approved Hebrew design.

   Components opt in one at a time (ND_Component::$ltr_ready). One that
   hasn't been converted yet prints no dir="ltr" and keeps its Hebrew RTL
   layout, even on an English page.

   Section order follows nd-shared.css. */


/* ---------------------------------------------------------------------
   Base wrapper (nd-shared.css: .nd-component-wrapper, direction:rtl)
   ------------------------------------------------------------------- */
.nd-component-wrapper[dir="ltr"] { direction: ltr; text-align: left; }


/* ---------------------------------------------------------------------
   English font: Barlow Condensed (client decision, 2026-09-29)

   The Hebrew design sets Assistant about 55 times, some through
   --nd-font-family and some as a literal 'Assistant'. One blanket rule
   per LTR root is simpler and safer than mirroring every declaration.
   !important because the parent/child themes force their own fonts on
   bare tags with !important (e.g. Trade Gothic on <p>). Scoped to
   [dir="ltr"] roots, so Hebrew pages, held components and
   not-yet-converted components keep Assistant. Enqueued by
   nd_components_enqueue_fonts() (init.php).

   The parent theme's own search bar (.qode_search_form) renders inside
   the ND header but keeps its own look, so it's excluded.
   ------------------------------------------------------------------- */
.nd-site-header[dir="ltr"],
.nd-mobile-nav[dir="ltr"],
.nd-component-wrapper[dir="ltr"] { --nd-font-family: 'Barlow Condensed', sans-serif; }

.nd-site-header[dir="ltr"] *:not(.qode_search_form, .qode_search_form *),
.nd-mobile-nav[dir="ltr"] *,
.nd-component-wrapper[dir="ltr"],
.nd-component-wrapper[dir="ltr"] * { font-family: 'Barlow Condensed', sans-serif !important; }


/* ---------------------------------------------------------------------
   Header (nd-shared.css: ".nd-header-container" through the 767px block)

   Hebrew desktop, left to right: donate, Aa, search | nav | logo, with the
   first menu item rightmost. That layout is pinned with direction:ltr on
   the container plus direction:rtl on the nav list. The English mirror
   keeps the container's ltr and reverses the three rows instead, so the
   DOM order (tools, nav, brand) stays as it is:
     logo | nav (first item leftmost) | search, Aa, donate.

   Phone (<=767px) stays as it is in Hebrew: logo left, hamburger right,
   which is already the usual English layout.
   ------------------------------------------------------------------- */
.nd-site-header[dir="ltr"] .nd-header-container { flex-direction: row-reverse; }
.nd-site-header[dir="ltr"] .nd-tools-inner { flex-direction: row-reverse; }
.nd-site-header[dir="ltr"] .nd-header-search-acc { flex-direction: row-reverse; }
.nd-site-header[dir="ltr"] .nd-nav-list { direction: ltr; }
.nd-site-header[dir="ltr"] .qode_search_form { direction: ltr; }

/* "Aa" now sits near the right edge, so the dropdown opens leftward. */
.nd-site-header[dir="ltr"] .nd-lang-dropdown { left: auto; right: 0; }

/* Tablet (768-1100px): the hamburger sits between the logo and the tools
   cluster instead of against the right viewport edge. */
.nd-site-header[dir="ltr"] .nd-mobile-toggle { margin-right: 0; margin-left: 16px; }

.nd-mobile-nav[dir="ltr"] .nd-mobile-nav-list { text-align: left; }

@media (max-width: 767px) {
  .nd-site-header[dir="ltr"] .nd-mobile-toggle { margin-left: 0; }
}


/* ---------------------------------------------------------------------
   Hero Carousel V2 (nd-shared.css: ".nd-hero-v2-container" block)

   The desktop box is pinned to the right in Hebrew (right:173px, for
   every box_position -- box_position only rotates the decorative shape
   around the box). English pins it left. box_position itself stays
   physical: the corner an editor picks is the corner that renders, on
   either language, so the English pages choose their own corners.

   Buttons (secondary then primary in the DOM) and the breadcrumb order
   (Home first) mirror on their own through direction:ltr. Tablet and
   phone layouts are centered/full-width and need nothing else.
   ------------------------------------------------------------------- */
.nd-hero-v2-container[dir="ltr"] { direction: ltr; }

@media screen and (min-width: 992px) {
  .nd-hero-v2-container[dir="ltr"] .nd-hero-v2-box { right: auto; left: 173px; }
}

.nd-hero-v2-container[dir="ltr"] .nd-hero-v2-breadcrumbs { right: auto; left: 29px; }
/* Chevron points right (Hebrew: rotate(135deg), pointing left). */
.nd-hero-v2-container[dir="ltr"] .nd-hero-v2-breadcrumbs .nd-breadcrumb-sep { transform: rotate(-45deg); }

@media screen and (max-width: 767px) {
  .nd-hero-v2-container[dir="ltr"] .nd-hero-v2-breadcrumbs { right: auto; left: 16px; }
}


/* ---------------------------------------------------------------------
   Damka Radio (nd-shared.css: ".nd-dr-inner" block)

   The row itself mirrors through direction (row-reverse puts the media on
   the left in English). The desktop reveal starts the media shifted
   toward the text column, which is now on its right.
   ------------------------------------------------------------------- */
@media screen and (min-width: 992px) {
  .nd-component-wrapper[dir="ltr"] .nd-dr-media.nd-fade-in { transform: translateX(79%); }
  .nd-component-wrapper[dir="ltr"] .nd-dr-media.nd-fade-in.is-visible { transform: translateX(0); }
}


/* ---------------------------------------------------------------------
   Sticky Trigger (nd-shared.css: "a.nd-sticky-trigger")

   English: bottom-right (client doc round 5), stacked above the chat
   button (#chat-widget-push-to-talk: 76px, right/bottom 20px) and
   centered on its column, with a ~16px gap.
   The button is re-parented to <body> by nd-shared.js, so it's scoped by
   the body class. Values are CSS px inside the zoomed body, same as the
   chat button's.
   ------------------------------------------------------------------- */
body.nd-dir-ltr a.nd-sticky-trigger { left: auto; right: 8px; }
body.nd-dir-ltr a.nd-sticky-trigger.is-visible { bottom: 112px; }

@media screen and (max-width: 767px) {
  body.nd-dir-ltr a.nd-sticky-trigger { left: auto; right: 18px; }
  body.nd-dir-ltr a.nd-sticky-trigger.is-visible { bottom: 108px; }
}


/* ---------------------------------------------------------------------
   5 Content Promo (nd-shared.css: ".nd-5cp-*")

   The CTA arrow is drawn pointing left; English points it right and
   nudges it right on hover. Phone cards are right-aligned in Hebrew.
   ------------------------------------------------------------------- */
.nd-component-wrapper[dir="ltr"] .nd-5cp-card-cta svg { margin-left: 0; margin-right: 4px; transform: scaleX(-1); }
.nd-component-wrapper[dir="ltr"] .nd-5cp-card:hover .nd-5cp-card-cta svg,
.nd-component-wrapper[dir="ltr"] .nd-5cp-card:focus-within .nd-5cp-card-cta svg { transform: translateX(4px) scaleX(-1); }

@media screen and (max-width: 767px) {
  .nd-component-wrapper[dir="ltr"] .nd-5cp-card-title,
  .nd-component-wrapper[dir="ltr"] .nd-5cp-card-desc { text-align: left; }
}


/* ---------------------------------------------------------------------
   Puzzle (nd-shared.css: ".nd-puzzle-*")

   Every piece is absolutely positioned in % of the mosaic, so each
   mirrored left is 100 - left - width (values computed from nd-shared.css,
   rounded to 3 places). The phone title/desc cards are anchored at their
   centre (translateX(-50%)), so theirs is 100 - left. The two outline
   traces are drawn in Figma's natural orientation and flipped for Hebrew,
   so English simply drops the flip. Tablet (768-991px) is a plain grid
   and mirrors through direction.
   ------------------------------------------------------------------- */
@media screen and (min-width: 992px) {
  .nd-puzzle[dir="ltr"] .nd-puzzle-slot-1 { left: 71.613%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-slot-2 { left: 29.34%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-slot-3 { left: 61.01%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-slot-4 { left: 46.55%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-slot-5 { left: 0%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-cta-wrap { left: -0.02%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-cta-outline { transform: none; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-title-card { left: 0; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-desc-card { left: 45.17%; }
}

@media screen and (max-width: 767px) {
  .nd-puzzle[dir="ltr"] .nd-puzzle-slot-1 { left: 0%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-slot-2 { left: 63.509%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-slot-3 { left: 0%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-slot-4 { left: 51.252%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-slot-5 { left: 0%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-cta-outline-mobile { transform: none; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-title-card { left: 29.655%; }
  .nd-puzzle[dir="ltr"] .nd-puzzle-desc-card { left: 65.182%; }
}


/* ---------------------------------------------------------------------
   Testimonial (nd-shared.css: ".nd-testimonial-*")

   Card row, media/text order and the dots mirror through direction. The
   slider init in nd-shared.js reads the slider's own dir: rtl:false and
   the arrows wired straight, so here the arrows only swap sides (prev is
   the rotated, left-pointing one).

   The notched image mask is a mirrored copy of nd-shared.css's path:
   x -> 795 - x with every arc's sweep flag flipped, so the notch sits
   top-right and the cut-out bottom-left. Same two-breakpoint pattern as
   the original (desktop, none on tablet, again on phone). The original
   is already flagged for a rebuild against Figma; this mirrors it as is.
   ------------------------------------------------------------------- */
.nd-testimonial[dir="ltr"] .nd-testimonial-slider { direction: ltr; }
.nd-testimonial[dir="ltr"] .nd-testimonial-text { text-align: left; }
.nd-testimonial[dir="ltr"] .nd-testimonial-arrow-prev { order: 1; }
.nd-testimonial[dir="ltr"] .nd-testimonial-arrow-next { order: 3; }

.nd-testimonial[dir="ltr"] .nd-testimonial-media .nd-media {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 795 544'%3E%3Cpath d='M585,0 A32,32 0 0,1 617,32 L617,191 A32,32 0 0,0 649,223 L763,223 A32,32 0 0,1 795,255 L795,512 A32,32 0 0,1 763,544 L487,544 A32,32 0 0,1 455,512 L455,487 A32,32 0 0,0 423,455 L32,455 A32,32 0 0,1 0,423 L0,32 A32,32 0 0,1 32,0 Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 795 544'%3E%3Cpath d='M585,0 A32,32 0 0,1 617,32 L617,191 A32,32 0 0,0 649,223 L763,223 A32,32 0 0,1 795,255 L795,512 A32,32 0 0,1 763,544 L487,544 A32,32 0 0,1 455,512 L455,487 A32,32 0 0,0 423,455 L32,455 A32,32 0 0,1 0,423 L0,32 A32,32 0 0,1 32,0 Z'/%3E%3C/svg%3E");
}

@media screen and (min-width: 992px) {
  .nd-testimonial[dir="ltr"] .nd-testimonial-card { padding: 40px 74px 40px 34px; }
}
@media screen and (max-width: 991px) {
  .nd-testimonial[dir="ltr"] .nd-testimonial-media .nd-media { -webkit-mask-image: none; mask-image: none; }
}
@media screen and (max-width: 767px) {
  .nd-testimonial[dir="ltr"] .nd-testimonial-media .nd-media {
      -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 795 544'%3E%3Cpath d='M585,0 A32,32 0 0,1 617,32 L617,191 A32,32 0 0,0 649,223 L763,223 A32,32 0 0,1 795,255 L795,512 A32,32 0 0,1 763,544 L487,544 A32,32 0 0,1 455,512 L455,487 A32,32 0 0,0 423,455 L32,455 A32,32 0 0,1 0,423 L0,32 A32,32 0 0,1 32,0 Z'/%3E%3C/svg%3E");
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 795 544'%3E%3Cpath d='M585,0 A32,32 0 0,1 617,32 L617,191 A32,32 0 0,0 649,223 L763,223 A32,32 0 0,1 795,255 L795,512 A32,32 0 0,1 763,544 L487,544 A32,32 0 0,1 455,512 L455,487 A32,32 0 0,0 423,455 L32,455 A32,32 0 0,1 0,423 L0,32 A32,32 0 0,1 32,0 Z'/%3E%3C/svg%3E");
  }
}


/* ---------------------------------------------------------------------
   Damka / Damka small (nd-shared.css: ".nd-damka-*", ".nd-fade-in-dir-*")

   image-left / image-right mirror through direction: the layout picked
   for Hebrew renders mirrored on an English page, like the hero. The
   image's slide-in (.nd-fade-in-dir-right/left) is a physical translateX,
   so it's mirrored here. The .is-visible resets are repeated because
   these selectors outrank nd-shared.css's own .is-visible rules.
   ------------------------------------------------------------------- */
.nd-component-wrapper[dir="ltr"] .nd-fade-in.nd-fade-in-dir-right { transform: translateX(-30px); }
.nd-component-wrapper[dir="ltr"] .nd-fade-in.nd-fade-in-dir-left { transform: translateX(30px); }
.nd-component-wrapper[dir="ltr"] .nd-fade-in.nd-fade-in-dir-right.is-visible,
.nd-component-wrapper[dir="ltr"] .nd-fade-in.nd-fade-in-dir-left.is-visible { transform: translateX(0); }


/* ---------------------------------------------------------------------
   Accordion / FAQ (nd-shared.css: ".nd-acc-*")
   ------------------------------------------------------------------- */
.nd-component-wrapper[dir="ltr"] .nd-acc-question,
.nd-component-wrapper[dir="ltr"] .nd-acc-content-inner { text-align: left; }


/* ---------------------------------------------------------------------
   Content Editor (nd-shared.css: ".nd-ce-*"). Lists already indent with
   padding-inline-start; only their alignment is physical.
   ------------------------------------------------------------------- */
.nd-component-wrapper[dir="ltr"] .nd-ce-body ul,
.nd-component-wrapper[dir="ltr"] .nd-ce-body ol { text-align: left; }


/* ---------------------------------------------------------------------
   Table utility class: nothing needed. Since the 2026-10-04 restyle
   .nd-table uses text-align:start and inherits direction, so it already
   reads left-to-right on English pages.
   ------------------------------------------------------------------- */

/* Single Media, Inside Page Menu, Text Box: symmetric or centered, no
   rules needed beyond the base wrapper and the English font. */


/* ---------------------------------------------------------------------
   Forms: Form Section / JoinUs (.nd-fs-row) and Join Us Extended
   (.nd-jue-card, .nd-fs-grid)

   The Hebrew CF7 forms store their fields in reversed tag order ([submit]
   first) so nd-shared.css's pinned direction:ltr rows/grid lay them out
   right to left. The English CF7 forms use natural order (name, phone,
   email, ..., submit), so the same pinned-ltr layout already renders them
   mirrored -- no row/grid changes here. What's left is text direction and
   the few physical offsets inside the fields.

   Newsletter's row is .nd-fs-row too (.nd-fs-row-narrow), so the field
   rules below cover it as well; its own section is further down.
   ------------------------------------------------------------------- */
.nd-component-wrapper[dir="ltr"] .nd-fs-row input[type="text"],
.nd-component-wrapper[dir="ltr"] .nd-fs-row input[type="email"],
.nd-component-wrapper[dir="ltr"] .nd-fs-row input[type="tel"],
.nd-component-wrapper[dir="ltr"] .nd-fs-grid input.wpcf7-form-control[type="text"],
.nd-component-wrapper[dir="ltr"] .nd-fs-grid input.wpcf7-form-control[type="email"],
.nd-component-wrapper[dir="ltr"] .nd-fs-grid input.wpcf7-form-control[type="tel"],
.nd-component-wrapper[dir="ltr"] .nd-fs-grid select.wpcf7-form-control { direction: ltr; text-align: left; }

.nd-component-wrapper[dir="ltr"] .nd-fs-row .wpcf7-not-valid-tip,
.nd-component-wrapper[dir="ltr"] .nd-fs-grid .wpcf7-not-valid-tip { direction: ltr; text-align: left; }

.nd-component-wrapper[dir="ltr"] .nd-fs-row .wpcf7-response-output,
.nd-component-wrapper[dir="ltr"] .nd-fs-grid .wpcf7-response-output { direction: ltr; }

/* Select chevron moves to the right edge. */
.nd-component-wrapper[dir="ltr"] .nd-fs-grid select.wpcf7-form-control { background-position: right 16px center; padding-left: 16px; padding-right: 44px; }

/* Spinner sits at the submit button's end edge. */
.nd-component-wrapper[dir="ltr"] .nd-fs-row .wpcf7-spinner,
.nd-component-wrapper[dir="ltr"] .nd-fs-grid .wpcf7-spinner { left: auto; right: 16px; }

/* Decorative pattern behind the JoinUs card: inset mirrored (right <-> left). */
.nd-component-wrapper[dir="ltr"] .nd-fs-pattern { inset: -52.66% -15.27% -27.13% 72.46%; }

/* Join Us Extended: photo on the right, form on the left (Hebrew is the
   reverse). The card is pinned ltr in nd-shared.css, so this reverses it
   explicitly; tablet/phone stack vertically and are unchanged. */
.nd-component-wrapper[dir="ltr"] .nd-jue-content { direction: ltr; }
@media screen and (min-width: 992px) {
  .nd-component-wrapper[dir="ltr"] .nd-jue-card { flex-direction: row-reverse; }
}

/* Phone: the stacked column is reset to rtl in nd-shared.css. Field order
   there comes from name-keyed order: rules, so only direction changes. */
@media screen and (max-width: 767px) {
  .nd-component-wrapper[dir="ltr"] .nd-fs-row,
  .nd-component-wrapper[dir="ltr"] .nd-fs-grid { direction: ltr; }
}

/* ---------------------------------------------------------------------
   Hub Programs (nd-shared.css: ".nd-hub-*" round 1 + round 2 blocks)
   Round 3 (client approved round 2, 2026-10-07). The tab bar, card grid
   and phone carousel follow DOM order and logical properties, so they
   mirror by themselves; nd-shared.js reads direction per instance for the
   scroll math. What's left is text alignment, the arrow glyphs, the
   phone "more tabs" fade and the breadcrumbs.
   ------------------------------------------------------------------- */
.nd-hub-programs-inner[dir="ltr"] .nd-hub-card-title,
.nd-hub-programs-inner[dir="ltr"] .nd-hub-card-desc { text-align: left; }

/* The shared arrow glyph points left. Hebrew flips "previous"; English
   flips "next", "more" and the card CTA arrow instead. */
.nd-hub-programs-inner[dir="ltr"] .nd-hub-tabs-arrow-prev svg,
.nd-hub-programs-inner[dir="ltr"] .nd-hub-grid-arrow-prev svg { transform: none; }
.nd-hub-programs-inner[dir="ltr"] .nd-hub-tabs-arrow-next svg,
.nd-hub-programs-inner[dir="ltr"] .nd-hub-grid-arrow-next svg,
.nd-hub-programs-inner[dir="ltr"] .nd-hub-tabs-more svg,
.nd-hub-programs-inner[dir="ltr"] .nd-hub-card-cta svg { transform: scaleX(-1); }

/* Breadcrumbs (shared Hero V2 markup inside .nd-hub-top). */
.nd-hub-programs-inner[dir="ltr"] .nd-hero-v2-breadcrumbs { right: auto; left: 29px; }
.nd-hub-programs-inner[dir="ltr"] .nd-hero-v2-breadcrumbs .nd-breadcrumb-sep { transform: rotate(-45deg); }

@media screen and (max-width: 767px) {
  .nd-hub-programs-inner[dir="ltr"] .nd-hero-v2-breadcrumbs { left: 16px; }
  /* "More tabs" fade sits on the end side: right in English. */
  .nd-hub-programs-inner[dir="ltr"] .nd-hub-tab-bar-scroll .nd-hub-tabs-more {
    left: auto; right: 0; border-radius: 0 24px 24px 0;
    background: linear-gradient(to left, rgba(255, 255, 255, 0.95) 40%, rgba(255, 255, 255, 0.4));
    -webkit-mask-image: linear-gradient(to left, #000 70%, transparent); mask-image: linear-gradient(to left, #000 70%, transparent);
  }
}


/* ---------------------------------------------------------------------
   Promotions Highlight (nd-shared.css: ".nd-promo-highlight" block)
   Centered and symmetric -- nothing beyond the base wrapper and font.
   ------------------------------------------------------------------- */


/* ---------------------------------------------------------------------
   Newsletter (nd-shared.css: ".nd-nl-card" / ".nd-fs-row-narrow")
   The English CF7 form lists email then submit, so the pinned-ltr row
   puts the button on the right (client doc round 3). CF7 prints dir="ltr"
   on an en_US form, which flips the privacy/consent rows by itself. The
   error tip is start-aligned like the Hebrew one.
   ------------------------------------------------------------------- */
.nd-component-wrapper[dir="ltr"] .nd-fs-row-narrow .wpcf7-not-valid-tip { text-align: left; }


/* ---------------------------------------------------------------------
   Bigger English body text (client doc round 3, 2026-10-07): Barlow
   Condensed reads much smaller than Assistant at the same size. Damka and
   Content Editor 26px, Testimonial 24px, FAQ answers 24px on desktop;
   tablet and phone go up in proportion.
   ------------------------------------------------------------------- */
.nd-component-wrapper[dir="ltr"] .nd-damka-content .nd-body-text,
.nd-component-wrapper[dir="ltr"] .nd-ce-body,
.nd-component-wrapper[dir="ltr"] .nd-ce-body p,
.nd-component-wrapper[dir="ltr"] .nd-ce-body li { font-size: 26px; }
.nd-component-wrapper[dir="ltr"] .nd-testimonial-desc { font-size: 24px; }
.nd-component-wrapper[dir="ltr"] .nd-acc-content-inner,
.nd-component-wrapper[dir="ltr"] .nd-acc-content-inner p { font-size: 24px; }

@media screen and (max-width: 991px) {
  .nd-component-wrapper[dir="ltr"] .nd-damka-content .nd-body-text,
  .nd-component-wrapper[dir="ltr"] .nd-ce-body,
  .nd-component-wrapper[dir="ltr"] .nd-ce-body p,
  .nd-component-wrapper[dir="ltr"] .nd-ce-body li,
  .nd-component-wrapper[dir="ltr"] .nd-acc-content-inner,
  .nd-component-wrapper[dir="ltr"] .nd-acc-content-inner p { font-size: 22px; }
  .nd-component-wrapper[dir="ltr"] .nd-testimonial-desc { font-size: 18px; }
}

@media screen and (max-width: 767px) {
  .nd-component-wrapper[dir="ltr"] .nd-damka-content .nd-body-text,
  .nd-component-wrapper[dir="ltr"] .nd-ce-body,
  .nd-component-wrapper[dir="ltr"] .nd-ce-body p,
  .nd-component-wrapper[dir="ltr"] .nd-ce-body li,
  .nd-component-wrapper[dir="ltr"] .nd-acc-content-inner,
  .nd-component-wrapper[dir="ltr"] .nd-acc-content-inner p { font-size: 20px; }
}

/* ---------------------------------------------------------------------
   English bold = 600, not 700 (client doc round 6): Barlow Condensed at
   700 reads too heavy. One override per font-weight:700 rule in
   nd-shared.css (generated from that file, same selectors, so hover/state
   rules keep their context), plus bold words typed into content. Barlow
   600 is already loaded (init.php). Hebrew keeps Assistant 700.
   ------------------------------------------------------------------- */
body.nd-dir-ltr .nd-title-h1,
body.nd-dir-ltr .nd-title-h2,
body.nd-dir-ltr .nd-title-h3,
body.nd-dir-ltr .nd-btn-solid-white,
body.nd-dir-ltr .nd-btn-solid-blue,
body.nd-dir-ltr .nd-btn-outline-blue,
body.nd-dir-ltr .nd-btn-outline-white,
body.nd-dir-ltr .nd-damka-content .nd-title-h2,
body.nd-dir-ltr .nd-dr-content .nd-title-h2,
body.nd-dir-ltr .nd-dr-cta,
body.nd-dir-ltr .nd-pc-title,
body.nd-dir-ltr .nd-pc-num,
body.nd-dir-ltr .nd-pc-text,
body.nd-dir-ltr .nd-fs-row input.wpcf7-submit[type="submit"],
body.nd-dir-ltr .nd-fs-grid input.wpcf7-submit[type="submit"],
body.nd-dir-ltr .nd-jue-thanks-title,
body.nd-dir-ltr .nd-nl-thanks-title,
body.nd-dir-ltr .nd-cf7-form input[type="submit"],
body.nd-dir-ltr .nd-acc-title-heading,
body.nd-dir-ltr .nd-acc-question,
body.nd-dir-ltr .nd-fs-form-box input.wpcf7-submit[type="submit"],
body.nd-dir-ltr .nd-fs-form-box button[type="submit"],
body.nd-dir-ltr a.nd-sticky-trigger,
body.nd-dir-ltr .nd-lang-list li.is-current a,
body.nd-dir-ltr .nd-mobile-lang-list li.is-current a,
body.nd-dir-ltr .nd-btn-donate span,
body.nd-dir-ltr .nd-hero-v2-breadcrumbs .nd-breadcrumb-current,
body.nd-dir-ltr .nd-5cp-title,
body.nd-dir-ltr .nd-5cp-card-title,
body.nd-dir-ltr .nd-iframe-title,
body.nd-dir-ltr .nd-hub-title-standalone,
body.nd-dir-ltr .nd-hub-card-title,
body.nd-dir-ltr .nd-hub-card-cta,
body.nd-dir-ltr .nd-hub-load-more,
body.nd-dir-ltr .nd-hub-cta.nd-btn-solid-blue,
body.nd-dir-ltr .nd-promo-highlight-title,
body.nd-dir-ltr .nd-promo-highlight-item:hover .nd-promo-highlight-item-title,
body.nd-dir-ltr .nd-promo-highlight-item:focus-within .nd-promo-highlight-item-title,
body.nd-dir-ltr .nd-puzzle-cta-title,
body.nd-dir-ltr .nd-puzzle-cta-btn,
body.nd-dir-ltr .nd-testimonial-quote,
body.nd-dir-ltr .nd-ce-title,
body.nd-dir-ltr .nd-ce-body h1,
body.nd-dir-ltr .nd-ce-body h2,
body.nd-dir-ltr .nd-ce-body h3,
body.nd-dir-ltr .nd-ce-body h4,
body.nd-dir-ltr .nd-table thead th,
body.nd-dir-ltr .nd-table .nd-table-amount,
body.nd-dir-ltr .nd-table-title,
body.nd-dir-ltr .nd-contact-box-title,
body.nd-dir-ltr .nd-component-wrapper :where(strong, b) { font-weight: 600; }

/* ---------------------------------------------------------------------
   English button/text sizes (client doc round 6)
   - Hero Carousel V2 buttons: 18px / 600, and all the same size. The
     button classes carry different sizes (.nd-btn-solid-white 20px,
     blue/outline 16px) and only the outline ones have a 1px border, so
     two buttons side by side differed in text size and height. A
     transparent border on the solid ones evens the height. Phone keeps
     smaller text (16px; the 2-button row's existing 15px stays).
   - Hub Programs "All Programs" / Load More: 18px / 600.
   - Puzzle CTA text: 22px (phone 18px).
   ------------------------------------------------------------------- */
.nd-hero-v2-container[dir="ltr"] .nd-hero-v2-buttons a { font-size: 18px; font-weight: 600; line-height: 1.2; }
.nd-hero-v2-container[dir="ltr"] .nd-hero-v2-buttons a.nd-btn-solid-white,
.nd-hero-v2-container[dir="ltr"] .nd-hero-v2-buttons a.nd-btn-solid-blue { border: 1px solid transparent; }

.nd-hub-programs-inner[dir="ltr"] .nd-hub-load-more,
.nd-hub-programs-inner[dir="ltr"] .nd-hub-cta { font-size: 18px; font-weight: 600; }

.nd-component-wrapper[dir="ltr"] .nd-puzzle-cta-desc { font-size: 22px; }

@media screen and (max-width: 767px) {
  .nd-hero-v2-container[dir="ltr"] .nd-hero-v2-buttons a { font-size: 16px; }
  .nd-hero-v2-container[dir="ltr"] .nd-hero-v2-buttons:has(> a:nth-of-type(2)) a { font-size: 15px; }
  .nd-component-wrapper[dir="ltr"] .nd-puzzle-cta-desc { font-size: 18px; }
}

/* Content Marker paint sweep starts on the left in English. */
.nd-component-wrapper[dir="ltr"] .nd-cm-highlight { background-position: left center; }
.nd-component-wrapper[dir="ltr"] .nd-cm-highlight-text { background-position: left center, left center; }
