.elementor-kit-6{--e-global-color-primary:#112B44;--e-global-color-secondary:#FFD92B;--e-global-color-text:#112B44;--e-global-color-accent:#FFD92B;--e-global-typography-primary-font-family:"Noto Sans Hebrew";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Noto Sans Hebrew";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Noto Sans Hebrew";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Noto Sans Hebrew";--e-global-typography-accent-font-weight:500;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* === Basson — site-wide finishing layer (Task 6) ==========================
   Site-wide interaction states plus two layout rules the V4 styles schema
   cannot express per-element.
   Hover states sit behind min-width:1025px per the house rule: V4 hover
   variants are not breakpoint-scopable, and the V4 `transition` prop carries
   property+duration only (no easing argument), so this spec is unreachable
   through style props.
   ======================================================================== */

/* --- 0. Motion tokens --------------------------------------------------- */
:root{--bsn-ease-out:cubic-bezier(0.23,1,0.32,1);}

/* --- 1. Sticky footer: a blank page must not leave white below the footer */
body{min-height:100vh;display:flex;flex-direction:column;}
body > main#content{flex:1 0 auto;}
body > footer.elementor-location-footer{flex-shrink:0;}
/* WP puts a 32/46px margin on <html> for the admin bar; without this guard a
   logged-in editor gets a phantom 32px scrollbar on every short page. */
body.admin-bar{min-height:calc(100vh - 32px);}
@media (max-width:782px){body.admin-bar{min-height:calc(100vh - 46px);}}

/* --- 2. Focus visibility — every width, never gate keyboard affordances -- */
.elementor a:focus-visible,
.elementor button:focus-visible,
.elementor [tabindex]:focus-visible{
	outline:2px solid #FFD92B;outline-offset:3px;border-radius:inherit;
}

/* --- 3. Interaction states (desktop pointers only) ---------------------- */
@media (min-width:1025px){
	.elementor .button-primary,
	.elementor .button-secondary{
		transition:background-color 160ms ease,color 160ms ease,
			border-color 160ms ease,transform 160ms var(--bsn-ease-out),
			box-shadow 160ms ease;
	}
	.elementor .button-primary > .e-svg-base,
	.elementor .button-secondary > .e-svg-base{
		transition:transform 200ms var(--bsn-ease-out);
	}
	/* gold primary: deepen one step + a real offset lift */
	.elementor .button-primary:hover{
		background-color:#F2CC12;transform:translateY(-1px);
		box-shadow:0 6px 18px rgba(17,43,68,.18);
	}
	/* white secondary inverts to navy — keeps gold reserved for the primary */
	.elementor .button-secondary:hover{
		background-color:#112B44;color:#FFFFFF;border-color:#112B44;
	}
	/* hero button on the photo: gold wash, never a second solid gold button */
	.elementor .button-secondary.button-outline-dark:hover{
		background-color:rgba(255,217,43,.14);color:#FFFFFF;border-color:#FFD92B;
	}
	/* arrows travel outward = LEFT in RTL */
	.elementor .button-primary:hover > .e-svg-base,
	.elementor .button-secondary:hover > .e-svg-base{transform:translateX(-3px);}
}

/* --- 4. Pressed feedback — all widths, touch included ------------------- */
.elementor .button-primary:active,
.elementor .button-secondary:active{
	transform:scale(.98);transition:transform 120ms var(--bsn-ease-out);
}

/* --- 5. Reduced motion: keep colour, drop movement ---------------------- */
@media (prefers-reduced-motion:reduce){
	.elementor .button-primary,.elementor .button-secondary,
	.elementor .button-primary > .e-svg-base,
	.elementor .button-secondary > .e-svg-base,
	.elementor .basson-site-header .elementor-nav-menu--main > ul > li > a::before,
	.elementor .basson-footer-social-icon,
	.elementor .basson-link-row .e-svg-base{transition-duration:1ms !important;}
	.elementor .button-primary:hover,.elementor .button-secondary:hover,
	.elementor .button-primary:active,.elementor .button-secondary:active,
	.elementor .button-primary:hover > .e-svg-base,
	.elementor .button-secondary:hover > .e-svg-base{transform:none !important;}
}

/* === Basson — scroll motion layer (2026-08-15) ==========================
   Class-driven, site-wide. Add a hook to any element and it animates:

     anim-reveal   an object rises into place as it enters view
     anim-stagger  on a row — its direct children arrive in reading order
     anim-rule     a gold rule draws itself from the reading edge (right)
     anim-drift    slow scroll-linked parallax (service watermark numbers)

   Durations were raised ~40% on 2026-08-16 (LiaD: make the arrivals more
   noticeable) - reveal 620->860ms, rule 560->760ms, stagger step 70->110ms.

   Reveal and rule are ordinary CSS transitions flipped by an `is-in` class
   that a ~20-line IntersectionObserver adds (Elementor → ניהול קודים →
   "Basson motion"). That pairing runs in every browser this site targets;
   pure scroll-driven CSS does not — Safari only gained it in version 26.

   The hidden start state is scoped to `.bsn-motion`, a class the script
   puts on <html> before first paint. If the script does not run, or the
   visitor asked for reduced motion, nothing is ever hidden and the page
   renders exactly as it would without this file. Preserve that property.

   The drift is the exception: a continuous scroll-linked effect has no
   transition equivalent, so it stays scroll-driven behind @supports and
   simply sits still on browsers that lack it.
   ====================================================================== */
@media (prefers-reduced-motion: no-preference) {

	/* --- 1. objects arrive; type stays put ------------------------------
	   Only cards and columns carry this. Headings, the hero and the stats
	   strip deliberately do not: a page where every section fades up reads
	   as a template, and the hero must be present on the first frame. */
	.bsn-motion .elementor .anim-reveal{
		opacity:0;transform:translateY(var(--bsn-rise,0.875rem));
		transition:opacity 860ms var(--bsn-ease-out),
		           transform 860ms var(--bsn-ease-out);
	}
	.bsn-motion .elementor .anim-reveal.is-in{opacity:1;transform:none;}
	@media (max-width:767px){.bsn-motion .elementor .anim-reveal{--bsn-rise:0.625rem;}}

	/* Siblings in one row arrive one after another. RTL puts the first
	   child on the right, so this runs right-to-left — reading order. */
	.bsn-motion .elementor .anim-stagger > .anim-reveal:nth-child(2){transition-delay:110ms;}
	.bsn-motion .elementor .anim-stagger > .anim-reveal:nth-child(3){transition-delay:220ms;}
	.bsn-motion .elementor .anim-stagger > .anim-reveal:nth-child(4){transition-delay:330ms;}
	.bsn-motion .elementor .anim-stagger > .anim-reveal:nth-child(5){transition-delay:440ms;}

	/* --- 2. the gold rule draws from the reading edge -------------------
	   RTL: it grows right to left, the direction the name above it reads. */
	.bsn-motion .elementor .anim-rule{
		transform:scaleX(0);transform-origin:right center;
		transition:transform 760ms var(--bsn-ease-out) 200ms;
	}
	.bsn-motion .elementor .anim-rule.is-in{transform:scaleX(1);}

	/* --- 3. the service number drifts as its card passes ----------------
	   The card clips its own overflow, which makes it a scroll container,
	   so a number inside it cannot resolve a bare view(). Name the card's
	   timeline instead and let the number reference it by name. */
	@supports (animation-timeline: view()){
		@keyframes bsn-drift{
			from{transform:translateY(0.75rem);}
			to  {transform:translateY(-0.75rem);}
		}
		.elementor .card-white:has(> .anim-drift){view-timeline-name:--bsn-card;}
		.elementor .anim-drift{
			animation-name:bsn-drift;
			animation-duration:auto;
			animation-fill-mode:both;
			animation-timing-function:linear;
			animation-timeline:--bsn-card;
			animation-range:cover;
		}
	}
}

/* --- Eyebrow display face ------------------------------------------------
   Registered in the WP Font Library (family 245) but never printed on the
   frontend: WP only prints Font Library faces that a theme's Global Styles
   activate, and Hello Elementor is a classic theme.  The homepage worked only
   because page 14's own custom CSS declares it.  Site-wide here. */
@font-face{
	font-family:'Ktav Yad CLM';
	src:url('https://courteous-gray-ant.liadscher.co.il/wp-content/uploads/fonts/KtavYadCLM-MediumItalic.woff2') format('woff2');
	font-weight:500;font-style:italic;font-display:swap;
}

/* === Basson — inner service pages, shared hook classes (Task 4) ==========
   Added 2026-09-14.  Everything a V4 variant can express lives in the class /
   element variants; these are the descendant, pseudo-state and hover rules it
   cannot.  Kit CSS is the FIRST Elementor stylesheet, so nothing here fights a
   local style — each rule addresses markup that has no element of its own.
   ====================================================================== */

/* --- sr-only: registered as a real global class, clipped here ----------- */
.elementor .sr-only{
	position:absolute;width:1px;height:1px;padding:0;margin:-1px;
	overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* --- basson-prose: the wysiwyg blocks come out of a classic text-editor,
   so the paragraphs have no element to hang a variant on. ---------------- */
.elementor .basson-prose p{line-height:1.8;margin-block-end:1.15em;}
.elementor .basson-prose p:last-child{margin-block-end:0;}
.elementor .basson-prose strong{font-weight:700;}
.elementor .basson-prose a{text-decoration:underline;text-underline-offset:4px;}
.elementor .basson-prose .elementor-widget-text-editor{width:100%;}

/* --- basson-crumbs ------------------------------------------------------ */
.elementor .basson-crumbs a{text-decoration:none;}
@media (hover:hover) and (pointer:fine) and (min-width:1025px){
	.elementor .basson-crumbs a{transition:color 150ms ease;}
	.elementor .basson-crumbs a:hover{color:#FFD92B;}
}

/* --- basson-byline ------------------------------------------------------ */
.elementor .basson-byline .e-collection-loop-base,
.elementor .basson-byline .e-collection-loop-layout-base{
	display:block;grid-template-columns:none;gap:0;width:100%;
}

/* --- basson-service-grid / basson-service-card -------------------------- */
/* grid-template-columns / grid-auto-rows (basson-service-grid) and
   text-decoration (basson-service-card) are global-class props since cleanup
   T1 (2026-09-24); only the hover / reduced-motion rules remain here. */
@media (hover:hover) and (pointer:fine) and (min-width:1025px){
	.elementor .basson-service-card{
		transition:translate 200ms var(--bsn-ease-out),box-shadow 200ms var(--bsn-ease-out);
	}
	.elementor .basson-service-card:hover{
		translate:0 -2px;box-shadow:0 10px 60px rgba(17,43,68,.22);
	}
	.elementor .basson-service-card:hover .basson-link-text{text-decoration-color:#FFD92B;}
	.elementor .basson-service-card:hover .basson-link-row .e-svg-base{transform:translateX(-4px);}
}
@media (prefers-reduced-motion:reduce){
	.elementor .basson-service-card{transition-duration:1ms !important;}
	.elementor .basson-service-card:hover{translate:none !important;}
}

/* --- basson-faq: Elementor Pro's nested accordion renders native
   <details>/<summary>; none of this markup has an element of its own.
   Cleanup T3 (2026-09-24): title typography + colour (all three states),
   title and answer padding, and the icon gap are the widget's own controls
   on template 1847 (probe P-C1 CTRL); what stays here has no control. ---- */
.elementor .basson-faq .e-n-accordion{display:flex;flex-direction:column;}
.elementor .basson-faq .e-n-accordion-item{
	border-block-end:1px solid #E8E9EB;background:transparent;
}
.elementor .basson-faq .e-n-accordion-item:first-of-type{border-block-start:1px solid #E8E9EB;}
.elementor .basson-faq .e-n-accordion-item-title{
	display:flex;align-items:flex-start;justify-content:space-between;
	cursor:pointer;list-style:none;
}
.elementor .basson-faq .e-n-accordion-item-title::-webkit-details-marker{display:none;}
.elementor .basson-faq .e-n-accordion-item-title-header{flex:1 1 0;min-width:0;}
.elementor .basson-faq .e-n-accordion-item-title-icon{
	flex:0 0 auto;width:34px;height:34px;border-radius:50%;
	background-color:#F1F6F8;
	display:flex;align-items:center;justify-content:center;
}
.elementor .basson-faq .e-n-accordion-item-title-icon svg{width:12px;height:auto;}
.elementor .basson-faq .e-n-accordion-item-title-icon svg path{fill:currentColor;stroke:currentColor;}
.elementor .basson-faq .e-n-accordion-item > .e-con{
	padding-inline-end:50px;
}
.elementor .basson-faq .e-n-accordion-item > .e-con p{line-height:1.8;color:#4A6580;}
@media (max-width:767px){
	.elementor .basson-faq .e-n-accordion-item-title-icon{width:30px;height:30px;}
	.elementor .basson-faq .e-n-accordion-item > .e-con{padding-inline-end:0;}
}
@media (hover:hover) and (pointer:fine) and (min-width:1025px){
	.elementor .basson-faq .e-n-accordion-item-title-icon{
		transition:transform 200ms var(--bsn-ease-out),background-color 150ms ease;
	}
	.elementor .basson-faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-icon{
		background-color:#C3DAE3;
	}
}/* End custom CSS */