/* ==========================================================================
   Michal Dalyot — site design layer
   One type scale, one button system, form fixes, layout fixes.
   Loaded last in <head> (see ../bootstrap.php). Logical properties only, so
   the same rules work for the Hebrew (RTL) and the coming English (LTR) site.

   Specificity note: Elementor writes per-widget CSS such as
   ".elementor-123 .elementor-element.elementor-element-abc .elementor-heading-title"
   (0,4,0) inside every breakpoint. Where the system must win over that, the
   selector carries :not(#_) — an id that never exists — which adds (1,0,0)
   without needing !important. !important is used only against legacy
   !important rules in WoodMart "Custom CSS".
   ========================================================================== */

:root {
	/* Brand ------------------------------------------------------------ */
	--dalyot-brand: #f94d56;            /* logo / accents (Elementor "primary") */
	--dalyot-brand-strong: #d62f3a;     /* button fill + text on white: 4.85:1 with #fff */
	--dalyot-brand-deep: #b52430;       /* hover / pressed */
	--dalyot-brand-tint: #fff1f2;
	--dalyot-ink: #1b1919;              /* body text (WoodMart text colour) */
	--dalyot-ink-soft: #58585a;         /* Elementor "landing pages text" */
	--dalyot-muted: #6b6b6b;            /* placeholders: 5.3:1 on white */
	--dalyot-line: #cfd4da;
	--dalyot-surface: #ffffff;
	--dalyot-page: #f4f6f8;
	--dalyot-whatsapp: #1a7f37;         /* WhatsApp green dark enough for white text: 5.1:1 */
	--dalyot-whatsapp-deep: #13652b;
	--dalyot-focus: #1b1919;

	/* Type ------------------------------------------------------------- */
	/* html is 18px on desktop and 16px on mobile (WoodMart text size), so
	   the clamp() minimums land on mobile and the maximums on desktop.      */
	--dalyot-font: "Narkis Block", "Narkis", Arial, Helvetica, sans-serif;
	--dalyot-fs-display: clamp(2.125rem, 1.2rem + 3vw, 3.556rem); /* hero h1: 34 → 64px */
	--dalyot-fs-h1: clamp(1.875rem, 1.1rem + 1.85vw, 2.667rem);   /* 30 → 48px */
	--dalyot-fs-h2: clamp(1.5rem, 1rem + 0.95vw, 1.778rem);       /* 24 → 32px */
	--dalyot-fs-h3: clamp(1.25rem, 0.95rem + 0.65vw, 1.444rem);   /* 20 → 26px */
	--dalyot-fs-h4: clamp(1.125rem, 0.92rem + 0.4vw, 1.222rem);   /* 18 → 22px */
	--dalyot-fs-h5: clamp(1.0625rem, 0.95rem + 0.2vw, 1.111rem);  /* 17 → 20px */
	--dalyot-fs-h6: 1rem;                                         /* 16 → 18px */
	--dalyot-fs-body: 1rem;                                       /* 16 → 18px */
	--dalyot-fs-small: 0.875rem;                                  /* 14 → 15.75px */
	--dalyot-lh-display: 1.1;
	--dalyot-lh-h1: 1.15;
	--dalyot-lh-h2: 1.2;
	--dalyot-lh-h3: 1.25;
	--dalyot-lh-h4: 1.3;
	--dalyot-lh-body: 1.65;
	--dalyot-fw-heading: 700;
	--dalyot-fw-subheading: 600;

	/* Buttons ---------------------------------------------------------- */
	--dalyot-btn-radius: 1.5em;          /* pill on one line, soft rectangle if a label wraps */
	--dalyot-btn-height: 3rem;          /* 48px mobile (16px root) … 54px desktop */
	--dalyot-btn-pad-block: 0.65em;
	--dalyot-btn-pad-inline: 1.6em;
	--dalyot-btn-fs: 1rem;
	--dalyot-btn-fw: 600;
	--dalyot-btn-ring: 0 0 0 3px #fff, 0 0 0 5px var(--dalyot-focus);

	/* Fields ----------------------------------------------------------- */
	--dalyot-field-height: 3rem;
	--dalyot-field-radius: 10px;
	--dalyot-field-border: 1.5px solid var(--dalyot-line);

	/* Full-bleed helper (JS sets the exact layout width without scrollbar) */
	--dalyot-bleed: calc(50% - var(--dalyot-vw, 100vw) / 2);

	/* Spacing scale (round 2) ------------------------------------------- */
	/* Steps are rem, so they follow the 16px (mobile) / 18px (desktop) root. */
	--dalyot-space-1: 0.25rem;          /*  4 /  4.5px */
	--dalyot-space-2: 0.5rem;           /*  8 /  9px   */
	--dalyot-space-3: 0.75rem;          /* 12 / 13.5px */
	--dalyot-space-4: 1rem;             /* 16 / 18px   */
	--dalyot-space-5: 1.5rem;           /* 24 / 27px   */
	--dalyot-space-6: 2rem;             /* 32 / 36px   */
	--dalyot-space-7: 3rem;             /* 48 / 54px   */
	--dalyot-space-8: 4rem;             /* 64 / 72px   */
	/* Fluid section rhythm (390px → 1440px) */
	--dalyot-band-min: clamp(2rem, 1.5rem + 1.5vw, 2.667rem);     /* coloured band, min: 32 → 48px */
	--dalyot-band-y: clamp(2.5rem, 1.75rem + 2.5vw, 4rem);        /* coloured band: 40 → 72px */
	--dalyot-band-max: clamp(3rem, 2rem + 3vw, 4.5rem);           /* cap for any section: 48 → 81px */
	--dalyot-hero-min: clamp(2rem, 1rem + 4vw, 3.5rem);           /* hero band, min: 32 → 63px */
	--dalyot-hero-max: clamp(3rem, 2rem + 4vw, 6rem);             /* hero band, max: 48 → 94px */
	--dalyot-after-band: clamp(1.5rem, 1rem + 1.5vw, 2.5rem);     /* plain section next to a band: 24 → 40px */
	--dalyot-heading-above: var(--dalyot-space-5);                /* extra space above a heading that follows content */
	--dalyot-flow: 1em;                                           /* paragraph / list spacing */
	--dalyot-grid-gap: clamp(1rem, 0.6rem + 1.2vw, 1.75rem);      /* card grids: 16 → 31px */
	--dalyot-fs-lead: clamp(1.125rem, 1rem + 0.35vw, 1.222rem);   /* intro paragraphs: 18 → 22px */
}

@media (max-width: 767px) {
	:root {
		--dalyot-btn-height: 2.875rem;  /* 46px */
		--dalyot-btn-pad-inline: 1.25em;
	}
}

/* ==========================================================================
   1. Base text
   ========================================================================== */

body {
	line-height: var(--dalyot-lh-body);
	-webkit-text-size-adjust: 100%;
	text-rendering: optimizeLegibility;
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :is(small, .small) {
	font-size: var(--dalyot-fs-small);
}

/* ==========================================================================
   2. Headings — one scale for the whole site
   Applies to content areas only (header, menus, footer widgets, product/post
   grid titles and LearnDash lists keep their own UI sizes). The first
   section that holds the page h1 on a coloured/photo background is the hero
   (class set by the helper script): its h1 gets the display size and its
   other headings keep their Elementor styling.
   ========================================================================== */

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :is(h1, h2, h3, h4, h5, h6):not(.widget-title, .wd-entities-title, .woocommerce-loop-product__title, .elementor-post__title, .wd-el-title, .ld-item-title, .wprevpro *, .ld-item-list *, .ld-focus-sidebar *, .ld-course-status *, .cart-widget-side *, .wd-sub-menu *, .elementor-location-popup *) {
	font-family: var(--dalyot-font);
	text-wrap: balance;
	letter-spacing: 0;
}

/* Rich-text headings (not Elementor heading widgets, whose spacing is the widget gap). */
:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :is(.elementor-widget-text-editor, .entry-content, .wd-single-post-content, .woocommerce-Tabs-panel) :is(h1, h2, h3, h4, h5, h6):not(.elementor-heading-title) {
	margin-block: 0 0.5em;
}

/* The size/line-height/weight rules carry the id-boost so they beat per-widget Elementor CSS. */
:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) h1:not(.dalyot-hero *):not(.widget-title, .wd-entities-title, .wprevpro *, .ld-item-list *, .ld-focus-sidebar *, .cart-widget-side *, .elementor-location-popup *):not(#_) {
	font-size: var(--dalyot-fs-h1);
	line-height: var(--dalyot-lh-h1);
	font-weight: var(--dalyot-fw-heading);
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) h2:not(.dalyot-hero *):not(.widget-title, .wd-entities-title, .elementor-post__title, .wprevpro *, .ld-item-list *, .ld-focus-sidebar *, .cart-widget-side *, .elementor-location-popup *):not(#_) {
	font-size: var(--dalyot-fs-h2);
	line-height: var(--dalyot-lh-h2);
	font-weight: var(--dalyot-fw-heading);
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) h3:not(.dalyot-hero *):not(.widget-title, .wd-entities-title, .woocommerce-loop-product__title, .elementor-post__title, .ld-item-title, .wprevpro *, .ld-item-list *, .ld-focus-sidebar *, .ld-course-status *, .cart-widget-side *, .elementor-location-popup *):not(#_) {
	font-size: var(--dalyot-fs-h3);
	line-height: var(--dalyot-lh-h3);
	font-weight: var(--dalyot-fw-subheading);
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) h4:not(.dalyot-hero *):not(.widget-title, .wd-entities-title, .elementor-post__title, .wprevpro *, .ld-item-list *, .ld-focus-sidebar *, .cart-widget-side *, .elementor-location-popup *):not(#_) {
	font-size: var(--dalyot-fs-h4);
	line-height: var(--dalyot-lh-h4);
	font-weight: var(--dalyot-fw-subheading);
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) h5:not(.dalyot-hero *):not(.widget-title, .wd-entities-title, .wprevpro *, .ld-item-list *, .ld-focus-sidebar *, .cart-widget-side *, .elementor-location-popup *):not(#_) {
	font-size: var(--dalyot-fs-h5);
	line-height: var(--dalyot-lh-h4);
	font-weight: var(--dalyot-fw-subheading);
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) h6:not(.dalyot-hero *):not(.widget-title, .wd-entities-title, .wprevpro *, .ld-item-list *, .ld-focus-sidebar *, .cart-widget-side *, .elementor-location-popup *):not(#_) {
	font-size: var(--dalyot-fs-h6);
	line-height: var(--dalyot-lh-h4);
	font-weight: var(--dalyot-fw-subheading);
}

/* Hero: the page title band — big, but capped (was up to 90px). */
.dalyot-hero h1:not(#_) {
	font-size: var(--dalyot-fs-display);
	line-height: var(--dalyot-lh-display);
	font-weight: var(--dalyot-fw-heading);
	text-wrap: balance;
}

/* Hero sub-headings keep their Elementor size but get sane line-height. */
.dalyot-hero :is(h2, h3, h4, h5, h6):not(#_) {
	line-height: 1.2;
}

/* Rich text: more space above a sub-heading than below it, so it belongs to
   the text it introduces (was the same ~20px on both sides). */
:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :is(.elementor-widget-text-editor, .entry-content, .wd-single-post-content, .woocommerce-Tabs-panel) :is(p, ul, ol, blockquote, table, figure, img, div) + h2 {
	margin-block-start: 1.5em;
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :is(.elementor-widget-text-editor, .entry-content, .wd-single-post-content, .woocommerce-Tabs-panel) :is(p, ul, ol, blockquote, table, figure, img, div) + h3 {
	margin-block-start: 1.35em;
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :is(.elementor-widget-text-editor, .entry-content, .wd-single-post-content, .woocommerce-Tabs-panel) :is(p, ul, ol, blockquote, table, figure, img, div) + :is(h4, h5, h6) {
	margin-block-start: 1.2em;
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :is(.elementor-widget-text-editor, .entry-content, .wd-single-post-content, .woocommerce-Tabs-panel) :is(h3, h4, h5, h6):not(.elementor-heading-title) {
	margin-block-end: 0.4em;
}

:is(.elementor-widget-text-editor, .entry-content) :is(h1, h2, h3, h4, h5, h6):last-child,
:is(.elementor-widget-text-editor, .entry-content) p:last-child {
	margin-block-end: 0;
}

/* A second h2 straight after an h2 in a text block is a lead line, not a
   second title (e.g. the pre-footer "יצירת קשר:" + "אנחנו כאן עבורך…"). */
:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) .elementor-widget-text-editor h2 + h2:not(#_) {
	font-size: var(--dalyot-fs-h4);
	line-height: 1.45;
	font-weight: 500;
}

/* Text-editor widgets that are set as headings with line-height < 1
   (lines collide in Hebrew) and/or oversized. Same element ids repeat across
   the landing pages because they were duplicated. */
:is(.elementor-element-55014a7, .elementor-element-a3fb053, .elementor-element-1359738, .elementor-element-88dff0c, .elementor-element-85e8192):not(#_),
:is(.elementor-element-55014a7, .elementor-element-a3fb053, .elementor-element-1359738, .elementor-element-88dff0c, .elementor-element-85e8192):not(#_) :is(p, strong, span) {
	font-size: var(--dalyot-fs-h2);
	line-height: var(--dalyot-lh-h2);
}

:is(.elementor-element-f114eda, .elementor-element-6a3659e1, .elementor-element-3eb208b8):not(#_),
:is(.elementor-element-f114eda, .elementor-element-6a3659e1, .elementor-element-3eb208b8):not(#_) :is(p, strong, span) {
	line-height: 1.1;
}

:is(.elementor-element-74835a2, .elementor-element-7bde3c4, .elementor-element-2988947):not(#_),
:is(.elementor-element-74835a2, .elementor-element-7bde3c4, .elementor-element-2988947):not(#_) :is(p, span) {
	font-size: clamp(1.25rem, 0.9rem + 0.9vw, 1.778rem);
	line-height: 1.3;
}

/* "תחומי הפעילות…" (home) and the 30px intro paragraphs act as section titles. */
.elementor-element-0da78f6:not(#_) {
	font-size: var(--dalyot-fs-h2);
	line-height: var(--dalyot-lh-h2);
}

:is(.elementor-element-fb2c1d4, .elementor-element-c13f3c7, .elementor-element-8081492):not(#_),
:is(.elementor-element-fb2c1d4, .elementor-element-c13f3c7, .elementor-element-8081492):not(#_) p {
	font-size: var(--dalyot-fs-h4);
	line-height: 1.5;
}

/* ==========================================================================
   3. Buttons
   primary  = filled brand-strong, white label
   secondary = outline brand-strong
   on-color = white fill, brand-strong label (forms/sections on red/dark)
   All: pill radius (1.5em), min-height 46–54px (touch ≥ 44), 600 weight,
   visible focus ring, no underline, no uppercase.
   ========================================================================== */

/* 3.1 Shape + type shared by every button family -------------------------- */
:where(.wd-page-content, .wd-prefooter, body.elementor-template-canvas, .cart-widget-side, .woocommerce-mini-cart__buttons) :where(
	.elementor-button,
	.gform_wrapper .gform_footer :is(input[type="submit"], button, .gform_button),
	.gform_wrapper .gform_page_footer :is(input[type="submit"], input[type="button"], .button),
	.wpcf7-submit,
	.woocommerce .button, .woocommerce-page .button, a.button, button.button, input.button,
	.single_add_to_cart_button, #place_order, .checkout-button,
	.btn.btn-color-primary, .btn.btn-color-default, .btn.btn-style-bordered,
	.learndash-wrapper .ld-button, .learndash-wrapper .btn-join, .learndash-wrapper #btn-join,
	input.learndash_mark_complete_button, .learndash-wrapper .wpProQuiz_button,
	.post-password-form input[type="submit"]
):where(:not(.wd-tools-element *, .quantity *, .remove, .wd-action-btn, .searchsubmit, .wd-skip-links *)):not(#_) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: var(--dalyot-btn-height) !important;          /* landing-page .btn_cta sets 30–40px */
	height: auto;
	padding: var(--dalyot-btn-pad-block) var(--dalyot-btn-pad-inline);
	border-radius: var(--dalyot-btn-radius) !important;      /* legacy: input[type=submit]{border-radius:5px!important} */
	font-family: var(--dalyot-font);
	font-size: var(--dalyot-btn-fs) !important;               /* legacy: 16px!important */
	font-weight: var(--dalyot-btn-fw) !important;             /* legacy: * {font-weight:400!important} in form widgets */
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	text-align: center;
	white-space: normal;
	box-shadow: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
	-webkit-appearance: none;
	appearance: none;
	/* WoodMart button variables, for the elements that read them */
	--btn-brd-radius: var(--dalyot-btn-radius);
	--btn-height: var(--dalyot-btn-height);
	--btn-font-size: var(--dalyot-btn-fs);
	--btn-font-weight: var(--dalyot-btn-fw);
	--btn-transform: none;
	--btn-padding: var(--dalyot-btn-pad-block) var(--dalyot-btn-pad-inline);
}

/* Elementor buttons with a fixed pixel width (e.g. 100px on mobile) squeezed
   the label into 3–4 lines; let them size to the label (full-width/justified
   buttons keep their width). */
.elementor-widget-button:not([class*="align-justify"]) .elementor-button:not(#_) {
	inline-size: auto;
	max-inline-size: 100%;
}

/* Landing-page top bar (first section without the page title): compact one-line button. */
body.elementor-template-canvas > [data-elementor-type] > :first-child:not(.dalyot-hero) .elementor-button:not(#_) {
	--dalyot-btn-pad-inline: 1em;
	font-size: 0.9375rem !important;
	white-space: nowrap;
}

/* Elementor button inner parts: no extra line box, icon spacing via gap. */
.elementor-button .elementor-button-content-wrapper {
	align-items: center;
	gap: 0.5em;
}

.elementor-button .elementor-button-text {
	line-height: inherit;
}

/* 3.2 Primary (filled) ---------------------------------------------------- */
/* !important: Additional CSS forces ".woocommerce button.button.alt{background:red!important}" (4.0:1). */
:where(.wd-page-content, .wd-prefooter, body.elementor-template-canvas, .cart-widget-side) :where(
	.gform_wrapper .gform_footer :is(input[type="submit"], button, .gform_button),
	.gform_wrapper .gform_page_footer :is(input[type="submit"], .gform_next_button),
	.wpcf7-submit,
	.woocommerce .button.alt, .woocommerce-page .button.alt,
	.single_add_to_cart_button, #place_order, .checkout-button, .wc-proceed-to-checkout .button,
	.woocommerce-mini-cart__buttons .checkout,
	.woocommerce-form-login__submit, .woocommerce-form-register__submit, button[name="login"], button[name="register"],
	.woocommerce-Button, .add_to_cart_button, .product_type_simple, .product_type_variable, .product_type_course, .wd-add-btn .button,
	.btn.btn-color-primary:not(.btn-style-bordered):not(.btn-style-link),
	.learndash-wrapper .ld-button:not(.ld-button-transparent):not(.ld-button-reverse):not(.ld-button-alternate),
	.learndash-wrapper .btn-join, .learndash-wrapper #btn-join, input.learndash_mark_complete_button,
	.learndash-wrapper .wpProQuiz_button,
	.post-password-form input[type="submit"]
):where(:not(.wd-tools-element *, .quantity *, .remove, .wd-action-btn)):not(#_) {
	background-color: var(--dalyot-brand-strong) !important;
	border: 2px solid var(--dalyot-brand-strong) !important;
	color: #fff !important;
	--btn-bgcolor: var(--dalyot-brand-strong);
	--btn-bgcolor-hover: var(--dalyot-brand-deep);
	--btn-color: #fff;
	--btn-color-hover: #fff;
	--btn-brd-color: var(--dalyot-brand-strong);
	--btn-box-shadow-hover: none;
}

/* The bare Elementor default (Elementor's default fill is the accent red #f94d56,
   3.4:1 with white) — low specificity on purpose, so buttons the editor
   coloured by hand keep their colours. */
.elementor-widget-button .elementor-button {
	background-color: var(--dalyot-brand-strong);
	color: #fff;
}

.elementor-widget-button .elementor-button:is(:hover, :focus-visible) {
	background-color: var(--dalyot-brand-deep);
	color: #fff;
}

:where(.wd-page-content, .wd-prefooter, body.elementor-template-canvas, .cart-widget-side) :where(
	.gform_wrapper .gform_footer :is(input[type="submit"], button, .gform_button),
	.gform_wrapper .gform_page_footer :is(input[type="submit"], .gform_next_button),
	.wpcf7-submit,
	.woocommerce .button.alt, .woocommerce-page .button.alt,
	.single_add_to_cart_button, #place_order, .checkout-button, .wc-proceed-to-checkout .button,
	.woocommerce-mini-cart__buttons .checkout,
	.woocommerce-form-login__submit, .woocommerce-form-register__submit, button[name="login"], button[name="register"],
	.woocommerce-Button, .add_to_cart_button, .product_type_simple, .product_type_variable, .product_type_course, .wd-add-btn .button,
	.btn.btn-color-primary:not(.btn-style-bordered):not(.btn-style-link),
	.learndash-wrapper .ld-button:not(.ld-button-transparent):not(.ld-button-reverse):not(.ld-button-alternate),
	.learndash-wrapper .btn-join, .learndash-wrapper #btn-join, input.learndash_mark_complete_button,
	.learndash-wrapper .wpProQuiz_button,
	.post-password-form input[type="submit"]
):where(:not(.wd-tools-element *, .quantity *, .remove, .wd-action-btn)):is(:hover, :focus-visible):not(#_) {
	background-color: var(--dalyot-brand-deep) !important;
	border-color: var(--dalyot-brand-deep) !important;
	color: #fff !important;
}

/* Hand-coloured brand-red Elementor buttons (#f94d56 / #f50a37 = 3.4–4.2:1 with
   white). The helper script tags them; fill darkens to the accessible shade. */
.elementor-button.dalyot-fix-fill:not(#_) {
	background-color: var(--dalyot-brand-strong);
	border-color: var(--dalyot-brand-strong);
	color: #fff;
}

.elementor-button.dalyot-fix-fill:is(:hover, :focus-visible):not(#_) {
	background-color: var(--dalyot-brand-deep);
	border-color: var(--dalyot-brand-deep);
	color: #fff;
}

/* White / transparent Elementor buttons with brand-red text (3.4:1) → strong red text. */
.elementor-button.dalyot-fix-text:not(#_) {
	color: var(--dalyot-brand-strong);
	border-color: currentColor;
}

/* 3.3 Secondary (outline) ------------------------------------------------- */
:where(.wd-page-content, .wd-prefooter, body.elementor-template-canvas, .cart-widget-side) :where(
	button[name="apply_coupon"], button[name="update_cart"],
	.woocommerce-mini-cart__buttons .button:not(.checkout),
	.wc-backward, .woocommerce-MyAccount-content .button:not(.alt),
	.btn.btn-style-bordered, .btn.btn-color-default,
	.learndash-wrapper .ld-button.ld-button-transparent, .learndash-wrapper .ld-button.ld-button-reverse, .learndash-wrapper .ld-button.ld-button-alternate,
	.gform_wrapper .gform_page_footer .gform_previous_button
):not(#_) {
	background-color: transparent;
	border: 2px solid var(--dalyot-brand-strong);
	color: var(--dalyot-brand-strong);
	--btn-bgcolor: transparent;
	--btn-bgcolor-hover: var(--dalyot-brand-strong);
	--btn-color: var(--dalyot-brand-strong);
	--btn-color-hover: #fff;
	--btn-brd-width: 2px;
	--btn-brd-color: var(--dalyot-brand-strong);
}

:where(.wd-page-content, .wd-prefooter, body.elementor-template-canvas, .cart-widget-side) :where(
	button[name="apply_coupon"], button[name="update_cart"],
	.woocommerce-mini-cart__buttons .button:not(.checkout),
	.wc-backward, .woocommerce-MyAccount-content .button:not(.alt),
	.btn.btn-style-bordered, .btn.btn-color-default,
	.learndash-wrapper .ld-button.ld-button-transparent, .learndash-wrapper .ld-button.ld-button-reverse, .learndash-wrapper .ld-button.ld-button-alternate,
	.gform_wrapper .gform_page_footer .gform_previous_button
):is(:hover, :focus-visible):not(#_) {
	background-color: var(--dalyot-brand-strong);
	color: #fff;
}

button[name="update_cart"]:disabled:not(#_) {
	opacity: 0.5;
	cursor: not-allowed;
}

/* 3.4 On a coloured surface (red / dark sections) -------------------------- */
.dalyot-on-color .gform_footer :is(input[type="submit"], button, .gform_button):not(#_),
.dalyot-on-color .gform_page_footer :is(input[type="submit"], .button):not(#_),
.dalyot-on-color .wpcf7-submit:not(#_),
.elementor-widget-button.dalyot-on-color .elementor-button:not(.dalyot-keep):not([href*="wa.me"], [href*="whatsapp"], [href^="tel:"]):not(#_) {
	background-color: #fff !important;
	border: 2px solid #fff !important;
	color: var(--dalyot-brand-strong) !important;
}

/* Form submit on red (the look Aviad chose, 2026-11-12): white, no border. */
.dalyot-on-color .gform_footer :is(input[type="submit"], button, .gform_button):not(#_),
.dalyot-on-color .gform_page_footer :is(input[type="submit"], .button):not(#_) {
	border: 0 !important;
}

.dalyot-on-color .gform_footer :is(input[type="submit"], button, .gform_button):is(:hover, :focus-visible):not(#_),
.dalyot-on-color .gform_page_footer :is(input[type="submit"], .button):is(:hover, :focus-visible):not(#_),
.dalyot-on-color .wpcf7-submit:is(:hover, :focus-visible):not(#_),
.elementor-widget-button.dalyot-on-color .elementor-button:not(.dalyot-keep):not([href*="wa.me"], [href*="whatsapp"], [href^="tel:"]):is(:hover, :focus-visible):not(#_) {
	background-color: var(--dalyot-brand-tint) !important;
	border-color: var(--dalyot-brand-tint) !important;
	color: var(--dalyot-brand-deep) !important;
}

/* Without the helper script a red button on a red section still reads: white rim. */
:is(.gform_footer, .gform_page_footer) :is(input[type="submit"], button, .gform_button) {
	outline-offset: 3px;
}

/* 3.5 WhatsApp buttons — keep green, but dark enough for the white label. */
:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) a.elementor-button:is([href*="wa.me"], [href*="whatsapp"], [href*="api.whatsapp"]):not(#_) {
	background-color: var(--dalyot-whatsapp);
	border: 2px solid var(--dalyot-whatsapp);
	color: #fff;
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) a.elementor-button:is([href*="wa.me"], [href*="whatsapp"], [href*="api.whatsapp"]):is(:hover, :focus-visible):not(#_) {
	background-color: var(--dalyot-whatsapp-deep);
	border-color: var(--dalyot-whatsapp-deep);
	color: #fff;
}

/* 3.6 Header "האזור האישי" pill: one line, accessible red. */
.whb-header .btn.btn-color-primary,
.wd-toolbar .btn.btn-color-primary {
	white-space: nowrap;
	--btn-bgcolor: var(--dalyot-brand-strong);
	--btn-bgcolor-hover: var(--dalyot-brand-deep);
	--btn-brd-color: var(--dalyot-brand-strong);
	--btn-brd-color-hover: var(--dalyot-brand-deep);
	--btn-box-shadow-hover: none;
}

/* 3.7 Focus ring for every interactive element (keyboard users only). */
:is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--dalyot-focus);
	outline-offset: 2px;
}

.dalyot-on-color :is(a, button, input, select, textarea):focus-visible,
.dalyot-bleed :is(a, button):focus-visible {
	outline-color: #fff;
}

/* ==========================================================================
   4. Form fields
   ========================================================================== */

:where(.wd-page-content, .wd-prefooter, body.elementor-template-canvas, .woocommerce, .learndash-wrapper) :where(
	input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"],
	input[type="search"], input[type="number"], input[type="date"], select, textarea
):where(:not(.qty, .wd-tools-element *, .searchform input, .wd-search-form *, .select2-search__field)):not(#_) {
	min-height: var(--dalyot-field-height);
	padding-block: 0.6em;
	padding-inline: 1em;
	border: var(--dalyot-field-border);
	border-radius: var(--dalyot-field-radius);
	background-color: var(--dalyot-surface);
	color: var(--dalyot-ink);
	font-family: var(--dalyot-font);
	font-size: max(1rem, 16px);           /* ≥16px: iOS does not zoom on focus */
	line-height: 1.4;
	box-shadow: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas, .woocommerce, .learndash-wrapper) textarea:not(#_) {
	min-height: 7.5rem;
	resize: vertical;
}

:where(.wd-page-content, .wd-prefooter, body.elementor-template-canvas, .woocommerce, .learndash-wrapper) :where(
	input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"],
	input[type="search"], input[type="number"], input[type="date"], select, textarea
):where(:not(.qty, .wd-tools-element *, .searchform input, .wd-search-form *, .select2-search__field)):focus:not(#_) {
	border-color: var(--dalyot-brand-strong);
	box-shadow: 0 0 0 3px rgb(214 47 58 / 0.18);
	outline: none;
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) ::placeholder {
	color: var(--dalyot-muted);
	opacity: 1;
}

/* Phone numbers: typed digits stay LTR, but the box aligns like the other
   fields (was left-aligned in Hebrew, incl. the placeholder). */
html[dir="rtl"] body :is(input[type="tel"], .gform_wrapper .gfield.gf-phone input[type="text"], .gform_wrapper .gfield.gf-phone input[type="tel"], .gform_wrapper .ginput_container_phone input) {
	direction: ltr !important;
	text-align: right !important;
}

html[dir="rtl"] body :is(input[type="email"], input[type="url"]) {
	text-align: right;
}

/* Fields on a coloured surface: solid white so text + placeholder read (was
   white text on translucent pink, ~2:1). Labels/legal text stay white. */
/* !important: the form widgets carry per-widget custom CSS with !important (pink fields). */
.dalyot-on-color :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], select, textarea):not(#_) {
	background-color: #fff !important;
	border-color: transparent !important;
	color: var(--dalyot-ink) !important;
}

.dalyot-on-color :is(input, textarea):not(#_)::placeholder {
	color: var(--dalyot-muted) !important;
	opacity: 1 !important;
}

.dalyot-on-color :is(input, select, textarea):focus:not(#_) {
	border-color: #fff;
	box-shadow: 0 0 0 3px rgb(255 255 255 / 0.55);
}

/* 4.1 Checkboxes + radios: aligned with their labels, brand colour. */
:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas, .woocommerce) :is(input[type="checkbox"], input[type="radio"]) {
	accent-color: var(--dalyot-brand-strong);
	inline-size: 1.15em;
	block-size: 1.15em;
	flex: none;
	vertical-align: middle;
}

.dalyot-on-color :is(input[type="checkbox"], input[type="radio"]) {
	accent-color: #fff;
}

/* Gravity Forms choices (legacy markup; GF's own CSS is switched off on this site). */
.gform_wrapper .gfield:not(.label_big) :is(.gfield_radio, .gfield_checkbox):not(#_) {
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin: 0.35rem 0 0;
	padding: 0;
	list-style: none;
}

.gform_wrapper .gfield:not(.label_big) .gchoice:not(#_) {
	flex: 0 0 auto;
	inline-size: auto !important;     /* widget CSS sets li {width:100%!important} */
	margin: 0 !important;
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin: 0;
	padding: 0;
	min-height: 2.75rem;                 /* 44px touch row */
}

.gform_wrapper .gfield:not(.label_big) .gchoice input:is([type="radio"], [type="checkbox"]):not(#_) {
	position: static;
	opacity: 1;
	margin: 0 !important;
	inset: auto;
	-webkit-appearance: auto;
	appearance: auto;
	inline-size: 1.25em;
	block-size: 1.25em;
}

.gform_wrapper .gfield:not(.label_big) .gchoice .check {
	display: none;
}

body .gform_wrapper .gfield:not(.label_big) .gchoice label:not(#_) {
	margin: 0 !important;
	padding: 0;
	inline-size: auto;
	max-inline-size: none;
	display: inline;
	line-height: 1.4;
	cursor: pointer;
}

/* GF footer / spacing */
.gform_wrapper .gform_footer:not(#_),
.gform_wrapper .gform_page_footer:not(#_) {
	margin-block-start: 1rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

/* Form submit = the page's main call to action: large size of the same button. */
/* Form submit = the page's main call to action (Aviad's chosen look): full
   width, rounded like a pill (24px), big bold label. */
.gform_wrapper .gform_footer :is(input[type="submit"], button, .gform_button):not(#_) {
	inline-size: 100%;
	margin: 0;
	min-height: 50px !important;
	border-radius: 24px !important;
	box-shadow: none !important;
	font-size: 1.375rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
}

.gform_wrapper .gfield_label:not(#_) {
	line-height: 1.4;
	margin-block-end: 0.35em;
}

.gform_wrapper :is(.gfield_description, .gform_description):not(#_) {
	font-size: var(--dalyot-fs-small);
	line-height: 1.5;
}

.gform_wrapper .validation_message:not(#_) {
	font-size: var(--dalyot-fs-small);
	margin-block-start: 0.25em;
}

/* WooCommerce form rows */
.woocommerce form .form-row label {
	line-height: 1.4;
	margin-block-end: 0.35em;
}

.woocommerce-form-login .woocommerce-form-login__rememberme,
.woocommerce form .form-row .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
}

/* ==========================================================================
   5. Layout fixes
   ========================================================================== */

/* 5.1 Never scroll sideways (full-bleed backgrounds below reach the edges). */
.wd-page-wrapper {
	overflow-x: clip;
}

/* 5.2 Elementor "stretched" sections: Elementor's JS sets width + left/right
   per page and in RTL sometimes leaves out the offset (gap on one side, cut on
   the other — e.g. training pages, and the home intro on some phones). The
   same result in CSS, exact and without waiting for JS. */
.elementor-section.elementor-section-stretched:not(#_) {
	width: auto !important;
	max-width: none;
	left: auto !important;
	right: auto !important;
	margin-inline: var(--dalyot-bleed) !important;
}

/* 5.3 Boxed sections with a background inside a boxed page: the background
   runs to both edges, the content stays where it is (class set by the helper
   script: no rounded corners, no shadow, ~full content width). */
.dalyot-bleed {
	position: relative;
	isolation: isolate;
}

.dalyot-bleed::after {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline: var(--dalyot-bleed);
	z-index: -1;
	background: inherit;
	pointer-events: none;
}

.dalyot-bleed > :is(.elementor-background-overlay, .elementor-background-video-container, .elementor-background-slideshow) {
	inset-inline: var(--dalyot-bleed);
	inline-size: auto;
}

/* 5.4 Lead-form sections: less empty red above/below (was 126px each). */
/* (containers with a form are handled in 8.1, where boxed ones get it on .e-con-inner) */
:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) .elementor-top-section:has(.gform_wrapper):not(.elementor-inner-section):not(#_) {
	padding-block: var(--dalyot-band-y);
}

/* 5.5 Product page: the reviews wrapper (pink band, 200px) prints even when
   reviews are off and it is empty. */
.single-product .padding_50.padding-top-50:not(:has(*)) {
	display: none;
}

/* 5.6 404: the "חזרו לעמוד הבית" links are injected by script with
   position:absolute;bottom:-80px and landed under the footer. Put them back
   under the search box. */
.error404 .site-content {
	display: flex;
	flex-direction: column;
}

.error404 .site-content > .pos_abso {
	position: static;
	order: 2;
	margin-block-start: 1.5rem;
}

/* 5.7 Embedded images in text blocks never overflow. */
.elementor-widget-text-editor :is(img, picture, video, iframe) {
	max-inline-size: 100%;
	block-size: auto;
}

/* 5.8 Long e-mail addresses / URLs (footer, contact) wrap instead of overflowing. */
:is(.wd-footer, .wd-prefooter, .wd-page-content) a:is([href^="mailto:"], [href^="http"]) {
	overflow-wrap: anywhere;
}

/* ==========================================================================
   6. Desktop header: the menu wrapped ("English" fell to a second row and the
   "האזור האישי" pill broke into two lines) between 1025 and ~1500px.
   ========================================================================== */
@media (min-width: 1025px) and (max-width: 1500px) {
	.whb-header .wd-header-nav .wd-nav-main {
		--nav-gap: 4px;
	}

	.whb-header .wd-header-nav .wd-nav-main > li {
		margin-inline: 0;
	}

	.whb-header .wd-header-nav .wd-nav-main > li > a {
		padding-inline: 6px;
		font-size: 14px;
	}
}

/* ==========================================================================
   7. Reduced motion
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.elementor-button,
	.button,
	.btn,
	input,
	select,
	textarea {
		transition: none !important;
	}
}

/* ==========================================================================
   Checkout (2026-11-12): two cards, the summary stays in view, room to breathe.
   Scoped to the checkout form only (not the order-received page).
   ========================================================================== */
body.woocommerce-checkout:not(.woocommerce-order-received) .elementor-widget-container > .woocommerce:not(#_) {
	max-width: 1180px;
	margin-inline: auto;
}

body.woocommerce-checkout form.checkout:not(#_) {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 24px 40px;
	align-items: start;
	margin-block-start: 8px;
}
body.woocommerce-checkout form.checkout > *:not(#_) {
	grid-column: 1 / -1;
}
body.woocommerce-checkout form.checkout > p:not(:has(input, select, textarea, button, a, label)):not(#_) {
	display: none;
}
body.woocommerce-checkout form.checkout > .customer-details:not(#_) {
	grid-column: 1;
}
body.woocommerce-checkout form.checkout > .checkout-order-review:not(#_) {
	grid-column: 2;
	position: sticky;
	top: 110px;
}

/* Cards */
body.woocommerce-checkout :is(.customer-details, .checkout-order-review):not(#_) {
	width: auto !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
	padding: 32px !important;
	background: #fff !important;
	border: 1px solid #ECEEF1 !important;
	border-radius: 16px !important;
	box-shadow: 0 4px 24px rgba(27, 25, 25, 0.06) !important;
}
body.woocommerce-checkout .checkout-order-review :is(#order_review, .wd-table-wrapper, #payment):not(#_) {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 0 !important;
}

/* Card headings */
body.woocommerce-checkout :is(.woocommerce-billing-fields > h3, .woocommerce-additional-fields > h3, #order_review_heading):not(#_) {
	margin: 0 0 22px !important;
	padding: 0 0 14px !important;
	border-bottom: 1px solid #ECEEF1;
	font-size: 1.375rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-align: start !important;
}

/* The create-an-account intro: a soft banner above both cards */
body.woocommerce-checkout .checkout-account-intro:not(#_) {
	padding: 18px 22px;
	background: #FFF1F2;
	border-radius: 12px;
}
body.woocommerce-checkout .checkout-account-intro h3:not(#_) {
	margin: 0 0 4px !important;
	font-size: 1.125rem !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
}
body.woocommerce-checkout .checkout-account-intro p:not(#_) {
	margin: 0 !important;
	font-size: 0.9375rem !important;
	line-height: 1.6 !important;
}

/* Fields: first + last name side by side, even rhythm */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper:not(#_) {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 16px;
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > *:not(#_) {
	grid-column: 1 / -1;
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first:not(#_) {
	grid-column: 1;
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last:not(#_) {
	grid-column: 2;
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > p:not(.form-row):not(#_) {
	display: none;
}
body.woocommerce-checkout :is(.woocommerce-account-fields, .woocommerce-additional-fields):not(#_) {
	margin-block-start: 26px;
	padding-block-start: 22px;
	border-top: 1px solid #ECEEF1;
}
body.woocommerce-checkout .create-account .form-row:not(#_),
body.woocommerce-checkout .woocommerce-additional-fields .form-row:not(#_) {
	width: auto !important;
	float: none !important;
	margin: 0 0 18px !important;
	padding: 0 !important;
}
body.woocommerce-checkout form.checkout .form-row > label:not(.checkbox):not(#_) {
	display: block;
	margin: 0 0 6px !important;
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
}
body.woocommerce-checkout form.checkout .form-row .description:not(#_) {
	margin-block-start: 6px;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: #6B6B6B;
}

/* Order table */
body.woocommerce-checkout .woocommerce-checkout-review-order-table:not(#_) {
	margin: 0 0 22px !important;
	border: 0 !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table :is(th, td):not(#_) {
	padding: 14px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid #ECEEF1 !important;
	background: transparent !important;
	font-size: 0.9375rem !important;
	line-height: 1.45 !important;
	vertical-align: top;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th:not(#_) {
	padding-block-start: 0 !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	color: #6B6B6B !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name:not(#_) {
	padding-inline-end: 16px !important;
	font-weight: 500 !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table :is(.product-total, thead th:last-child, tfoot td):not(#_) {
	text-align: end !important;
	white-space: nowrap;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total :is(th, td):not(#_) {
	padding-block-start: 18px !important;
	border-bottom: 0 !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .amount:not(#_) {
	color: var(--dalyot-brand-strong, #D62F3A) !important;
}

/* Coupon (inside the summary): one row, input + button */
body.woocommerce-checkout .checkout-order-review :is(.checkout_coupon, .woocommerce-form-coupon):not(#_) {
	display: flex !important;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
	margin: 0 0 22px !important;
	padding: 16px !important;
	background: #F7F8FA !important;
	border: 1px dashed #D9DCE1 !important;
	border-radius: 12px !important;
}
body.woocommerce-checkout .checkout-order-review :is(.checkout_coupon, .woocommerce-form-coupon) .form-row:not(#_) {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.woocommerce-checkout .checkout-order-review :is(.checkout_coupon, .woocommerce-form-coupon) .form-row-first:not(#_) {
	flex: 1 1 180px;
}
body.woocommerce-checkout .checkout-order-review :is(.checkout_coupon, .woocommerce-form-coupon) .clear:not(#_) {
	display: none;
}
body.woocommerce-checkout .checkout-order-review :is(.checkout_coupon, .woocommerce-form-coupon) button:not(#_) {
	height: 100%;
	min-height: 48px !important;
	white-space: nowrap;
}

/* Terms + place order */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper:not(#_) {
	margin: 0 0 6px !important;
	padding: 0 !important;
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper :is(.form-row, p):not(#_) {
	margin: 0 0 12px !important;
	padding: 0 !important;
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper :is(label, span, p, a):not(#_) {
	font-size: 0.9375rem !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
}
body.woocommerce-checkout #payment input[type="checkbox"]:not(#_) {
	inline-size: 18px;
	block-size: 18px;
	margin-inline-end: 6px;
	accent-color: var(--dalyot-brand-strong, #D62F3A);
	vertical-align: -3px;
}
body.woocommerce-checkout #payment .form-row.place-order:not(#_) {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}
body.woocommerce-checkout #place_order:not(#_) {
	display: flex;
	width: 100% !important;
	min-height: 56px !important;
	margin-block-start: 14px !important;
	border-radius: 28px !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
}

/* Notices above the form */
body.woocommerce-checkout :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) .woocommerce-info:not(#_) {
	margin: 0 0 12px !important;
	padding: 12px 18px !important;
	background: #fff !important;
	border: 1px solid #ECEEF1 !important;
	border-radius: 12px !important;
	font-size: 0.9375rem !important;
}

/* Checkout polish: no zigzag receipt edge, no empty gap, readable checkboxes */
body.woocommerce-checkout .checkout-order-review:not(#_)::before,
body.woocommerce-checkout .checkout-order-review:not(#_)::after {
	display: none !important;
}
body.woocommerce-checkout #coupon-anchor:empty:not(#_) {
	display: none !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr:not(.order-total):not(:has(td *, th *)):not(#_) {
	display: none;
}
body.woocommerce-checkout form.checkout input[type="checkbox"]:not(#_) {
	inline-size: 18px !important;
	block-size: 18px !important;
	margin-inline-end: 6px;
	accent-color: var(--dalyot-brand-strong, #D62F3A);
	vertical-align: -3px;
}

/* Tablets and phones: one column, the summary after the details */
@media (max-width: 1024px) {
	body.woocommerce-checkout form.checkout:not(#_) {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}
	body.woocommerce-checkout form.checkout > :is(.customer-details, .checkout-order-review):not(#_) {
		grid-column: 1;
		position: static;
	}
}
@media (max-width: 600px) {
	body.woocommerce-checkout :is(.customer-details, .checkout-order-review):not(#_) {
		padding: 20px !important;
		border-radius: 14px !important;
	}
	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper:not(#_) {
		grid-template-columns: minmax(0, 1fr);
	}
	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > :is(.form-row-first, .form-row-last):not(#_) {
		grid-column: 1;
	}
}

/* ==========================================================================
   8. Vertical rhythm (round 2, 2026-11-12)
   One spacing scale (--dalyot-space-*, --dalyot-band-*, see :root) applied to
   the top-level sections of page documents, heading spacing, paragraphs,
   lists and card grids. CSS only, so nothing moves after first paint.

   "Band"  = a top-level section with its own background (Elementor writes
             background_background into data-settings).
   "Hero"  = the band that holds the page h1.
   Containers (e-con) keep the editor's padding but clamped into the scale;
   old-style sections can't expose their own value, so only clear cases get
   a fixed step (landing-page bands, the space next to a band).
   ========================================================================== */

/* 8.1 Sections. Containers (e-con) carry their padding on the element when
   full-width and on .e-con-inner when boxed — both are handled. Sections
   that hold only spacers, anchors, scripts or device-only widgets are left alone. */

/* Bands: no more 0px or 165px — clamped to 32–48px … 48–81px. */
:is(.entry-content, .wd-content-layout, body.elementor-template-canvas, .wd-entry-content) > [data-elementor-type] > .e-con-full.e-parent[data-settings*="background_background"]:has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])):not(:has(h1)):not(body.elementor-template-canvas > [data-elementor-type] > :first-child):not(#_),
:is(.entry-content, .wd-content-layout, body.elementor-template-canvas, .wd-entry-content) > [data-elementor-type] > .e-con-boxed.e-parent[data-settings*="background_background"]:has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])):not(:has(h1)):not(body.elementor-template-canvas > [data-elementor-type] > :first-child) > .e-con-inner:not(#_) {
	padding-block-start: clamp(var(--dalyot-band-min), var(--padding-block-start, var(--padding-top, 0px)), var(--dalyot-band-max));
	padding-block-end: clamp(var(--dalyot-band-min), var(--padding-block-end, var(--padding-bottom, 0px)), var(--dalyot-band-max));
}

/* Plain (no background) containers: keep their padding, cap the extremes. */
:is(.entry-content, .wd-content-layout, body.elementor-template-canvas, .wd-entry-content) > [data-elementor-type] > .e-con-full.e-parent:not([data-settings*="background_background"]):has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])):not(#_),
:is(.entry-content, .wd-content-layout, body.elementor-template-canvas, .wd-entry-content) > [data-elementor-type] > .e-con-boxed.e-parent:not([data-settings*="background_background"]):has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])) > .e-con-inner:not(#_) {
	padding-block-start: min(var(--padding-block-start, var(--padding-top, 0px)), var(--dalyot-band-max));
	padding-block-end: min(var(--padding-block-end, var(--padding-bottom, 0px)), var(--dalyot-band-max));
}

/* Hero bands: never cramped on phones (title was 10px from the edge), never huge. */
:is(.entry-content, .wd-content-layout, body.elementor-template-canvas) > [data-elementor-type] > .e-con-full.e-parent[data-settings*="background_background"]:has(h1):not(#_),
:is(.entry-content, .wd-content-layout, body.elementor-template-canvas) > [data-elementor-type] > .e-con-boxed.e-parent[data-settings*="background_background"]:has(h1) > .e-con-inner:not(#_) {
	padding-block-start: clamp(var(--dalyot-hero-min), var(--padding-block-start, var(--padding-top, 0px)), var(--dalyot-hero-max));
	padding-block-end: clamp(var(--dalyot-hero-min), var(--padding-block-end, var(--padding-bottom, 0px)), var(--dalyot-hero-max));
}

/* Landing pages (old-style sections): every band the same rhythm (was 0–165px, often uneven top/bottom). */
body.elementor-template-canvas > [data-elementor-type] > .elementor-top-section[data-settings*="background_background"]:has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])):not(:first-child):not(:has(h1)):not(.elementor-section-height-min-height, .elementor-section-height-full):not(#_) {
	padding-block: var(--dalyot-band-y);
}

/* Content right after a band / hero (was glued to it, ~10px) and right before a band. */
:is(.entry-content, .wd-content-layout, body.elementor-template-canvas) > [data-elementor-type] > :is([data-settings*="background_background"], :has(h1)) + .e-con-full.e-parent:not([data-settings*="background_background"]):has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])):not(#_),
:is(.entry-content, .wd-content-layout, body.elementor-template-canvas) > [data-elementor-type] > :is([data-settings*="background_background"], :has(h1)) + .e-con-boxed.e-parent:not([data-settings*="background_background"]):has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])) > .e-con-inner:not(#_) {
	padding-block-start: max(var(--dalyot-after-band), min(var(--padding-block-start, var(--padding-top, 0px)), var(--dalyot-band-max)));
}

:is(.entry-content, .wd-content-layout, body.elementor-template-canvas) > [data-elementor-type] > .e-con-full.e-parent:not([data-settings*="background_background"]):has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])):has(+ [data-settings*="background_background"]):not(#_),
:is(.entry-content, .wd-content-layout, body.elementor-template-canvas) > [data-elementor-type] > .e-con-boxed.e-parent:not([data-settings*="background_background"]):has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])):has(+ [data-settings*="background_background"]) > .e-con-inner:not(#_) {
	padding-block-end: max(var(--dalyot-after-band), min(var(--padding-block-end, var(--padding-bottom, 0px)), var(--dalyot-band-max)));
}

:is(.entry-content, .wd-content-layout, body.elementor-template-canvas) > [data-elementor-type] > :is([data-settings*="background_background"], :has(h1)) + .elementor-top-section:not([data-settings*="background_background"]):has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])):not(.elementor-section-height-min-height, .elementor-section-height-full):not(#_) {
	padding-block-start: var(--dalyot-after-band);
}

:is(.entry-content, .wd-content-layout, body.elementor-template-canvas) > [data-elementor-type] > .elementor-top-section:not([data-settings*="background_background"]):has(.elementor-widget:not(.elementor-widget-spacer, .elementor-widget-html, .elementor-widget-menu-anchor, [class*="elementor-hidden-"])):has(+ [data-settings*="background_background"]):not(.elementor-section-height-min-height, .elementor-section-height-full):not(#_) {
	padding-block-end: var(--dalyot-after-band);
}

/* 8.2 Headings between widgets: a heading that follows other content gets
   extra room above (20px gap → 44–47px for h2/h3, ~32px for h4–h6) and sits
   closer to the text it introduces (20px → 12px). Specificity stays at the
   Elementor default level, so spacing set by hand on a widget still wins. */
:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :where(.elementor-widget:not(.elementor-widget-heading, .elementor-widget-spacer, .elementor-widget-divider, .elementor-widget-icon, .elementor-widget-image, .elementor-widget-image-box, .elementor-widget-icon-box)) + .elementor-widget.elementor-widget-heading:where(:has(h2, h3)):where(:not(:is(.e-con.e-parent, .elementor-top-section):has(h1) *)) {
	margin-block-start: var(--dalyot-heading-above);
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :where(.elementor-widget:not(.elementor-widget-heading, .elementor-widget-spacer, .elementor-widget-divider, .elementor-widget-icon, .elementor-widget-image, .elementor-widget-image-box, .elementor-widget-icon-box)) + .elementor-widget.elementor-widget-heading:where(:has(h4, h5, h6)):where(:not(:is(.e-con.e-parent, .elementor-top-section):has(h1) *)) {
	margin-block-start: var(--dalyot-space-3);
}

/* (0,3,0): Elementor prints its widget CSS late on some pages, so equal specificity is not enough */
.elementor-element.elementor-widget.elementor-widget-heading:where(:has(+ .elementor-widget-text-editor)) {
	margin-block-end: calc(var(--kit-widget-spacing, 20px) - var(--dalyot-space-2));
}

/* 8.3 Rich text: one paragraph size range (14px floor, intro paragraphs
   capped at the lead size 18–22px; were 12–25px), Hebrew-friendly
   line-height (landing pages had 1.1–1.25), one paragraph/list spacing.
   Hero text and display numbers (phones, "1"/"2", names) are left alone. */
:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) .elementor-widget-text-editor:not(:is(.e-con.e-parent, .elementor-top-section):has(h1) *):not(.elementor-element-6803d58, .elementor-element-4ff16cf, .elementor-element-56df8c4, .elementor-element-d0dd4f7, .elementor-element-5d93bab, .elementor-element-58b59fa, .elementor-element-871bb4d) :is(p, li) {
	font-size: clamp(0.875rem, 1em, var(--dalyot-fs-lead));
	line-height: 1.6;
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :is(.elementor-widget-text-editor, .wd-single-post-content, .woocommerce-Tabs-panel) p {
	margin-block: 0 var(--dalyot-flow);
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :is(.elementor-widget-text-editor, .wd-single-post-content, .woocommerce-Tabs-panel) :is(ul, ol) {
	margin-block: 0 var(--dalyot-flow);
	padding-inline-start: 1.25em;
}

:is(.wd-page-content, .wd-prefooter, body.elementor-template-canvas) :is(.elementor-widget-text-editor, .wd-single-post-content, .woocommerce-Tabs-panel) li + li {
	margin-block-start: 0.35em;
}

:is(.elementor-widget-text-editor, .wd-single-post-content, .woocommerce-Tabs-panel) :is(p, ul, ol):last-child {
	margin-block-end: 0;
}

/* 8.4 Card grids: product cards in a row have equal height and their button
   lines up at the bottom (cards were 796–1153px tall in one row). */
.wd-products.wd-grid-g:not(#_) {
	align-items: stretch;
}

.wd-products.wd-grid-g .wd-product.wd-hover-standard > .product-wrapper {
	block-size: 100%;
	flex-direction: column;
}

.wd-products.wd-grid-g .wd-product.wd-hover-standard .product-wrapper > .wd-add-btn {
	margin-block-start: auto;
}
