/* ==========================================================================
   SECTION 0 - Document direction compensation  (UNGATED)
   functions.php now emits <html lang="he" dir="rtl"> so assistive tech,
   browsers and search engines get the correct document language/direction.
   This theme, however, is built LTR-first: the hero, the sidebar and every
   absolutely positioned element are placed with `left:` offsets that assume
   LTR flow, and only individual text elements (h1-h5, p, a, .wpcf7 form,
   .cc-rtl ...) carry their own direction:rtl.
   Measured: setting dir="rtl" without this pin moves 156 of 304 elements -
   the form column jumps from x=1001 to x=0 and the page mirrors completely.
   Pinning the ROOT direction back to ltr keeps the rendered layout - and the
   viewport scrollbar side - byte-identical to before (verified: 0 of 385
   elements changed), while the dir/lang attributes stay correct in the markup.
   Text elements keep their own direction:rtl and are untouched by this.
   Remove this block only together with a real RTL rebuild of the theme.
   ========================================================================== */
html[dir="rtl"],
html[dir="rtl"] > body{
    direction: ltr;
}
/* ==========================================================================
   One Click Accessibility (Pojo) - font-resize repair layer
   Theme: Irhayain Webz  |  Site: irhayain.lp-efficapital.co.il
   --------------------------------------------------------------------------
   WHY THIS FILE EXISTS
   The plugin emits only:
     body.pojo-a11y-resize-font-NN, p, li, label, input, select, textarea,
     legend, code, pre, dd, dt, span, blockquote { font-size: NN% !important }
     body...NN h1..h6, h1 span .. h6 span      { font-size: NN*1.33% !important }
   On this theme that breaks in five ways:
     1. Every heading / label is sized in vw. `%` resolves against the PARENT,
        never against vw, so vw text either freezes or jumps unpredictably
        (measured: .main-heading 52.4px -> 35.9px at step 130 - it SHRINKS).
     2. The percentages COMPOUND through CF7's p > span > span > input nesting.
        Measured at 1440 / step 200: text input 14.4px -> 256px,
        checkbox 10.08px -> 1024px, submit 17.28px -> 128px.
     3. Units change per breakpoint (3.64vw at base, 40px under 600px), so a
        single override destroys the other band. Both are emitted below.
     4. <div> and <button> are not in the plugin's selector list, so
        .wpcf7-response-output (11.52px), .content-description (12.96px),
        .dynamic-info-container and every .cc-* button never move at any step.
     5. #cc-banner-root sits OUTSIDE every content root, so the inherit fix
        cannot reach it: .cc-title/.cc-body run away while .cc-btn
        (font-size:inherit) and .cc-root freeze at 14px.
   RULES OBSERVED
   A. Everything is gated behind body[class*="pojo-a11y-resize-font-"] (or an
      explicit contrast class). With no toolbar selection, and after Reset,
      this file contributes nothing.
   B. #pojo-a11y-toolbar is a SIBLING of the content - every generic rule is
      scoped inside a content root so the toolbar keeps its own behaviour.
      The ONE deliberate exception is section 7, which the client explicitly
      asked for (toolbar menu text must grow LESS than page text).
   SPECIFICITY LADDER (verified against live computed styles)
     plugin  body.pojo-...-NN p:not(...)                        (0,2,2)
     sec. 3  html body[gate] :is(roots) :is(p,span,...)          (0,2,3)  wins
     sec. 4+ html body[gate][class] <selector>                   (0,3,x)  wins
   The redundant [class] on every element rule is what lifts it ONE class
   column above section 3 -- without it a single-class rule such as
   .sub-headline is (0,2,2) and gets flattened to inherit by section 3
   (measured: 19.67px -> 18.4px, i.e. it SHRANK at step 130).
   html body[...] also out-specifies any hand-written accessibility
   overrides that may live in the database.
   ========================================================================== */
/* ==========================================================================
   SECTION 1 - Scale curves
   Page copy uses --a11y-scale. Form controls, messages and the cookie banner
   start from a much smaller baseline, so they ride a steeper curve with a
   bigger first jump (--a11y-scale-form). Validation tips ride a gentle curve
   (--a11y-scale-tip) so they stay on ONE line. The toolbar rides the
   Large DISPLAY text (hero headline block, price/info boxes) rides
   --a11y-scale-display: it is already 20-52px, it sits inside fixed-size art
   (the cream panel, the clip-path boxes), and at the full 1.60 curve it hit
   56px and squeezed a hover sentence into a 7-line column. The toolbar rides
   the smallest curve (--a11y-scale-toolbar) per client request.
   ========================================================================== */
:root{
    --a11y-scale: 1;
    --a11y-scale-form: 1;
    --a11y-scale-tip: 1;
    --a11y-scale-display: 1;
    --a11y-scale-toolbar: 1;
}
body.pojo-a11y-resize-font-130{ --a11y-scale:1.15; --a11y-scale-form:1.30; --a11y-scale-tip:1.12; --a11y-scale-display:1.05; --a11y-scale-toolbar:1.10; }
body.pojo-a11y-resize-font-140{ --a11y-scale:1.22; --a11y-scale-form:1.40; --a11y-scale-tip:1.16; --a11y-scale-display:1.08; --a11y-scale-toolbar:1.14; }
body.pojo-a11y-resize-font-150{ --a11y-scale:1.28; --a11y-scale-form:1.48; --a11y-scale-tip:1.20; --a11y-scale-display:1.11; --a11y-scale-toolbar:1.18; }
body.pojo-a11y-resize-font-160{ --a11y-scale:1.35; --a11y-scale-form:1.55; --a11y-scale-tip:1.24; --a11y-scale-display:1.14; --a11y-scale-toolbar:1.22; }
body.pojo-a11y-resize-font-170{ --a11y-scale:1.42; --a11y-scale-form:1.62; --a11y-scale-tip:1.28; --a11y-scale-display:1.17; --a11y-scale-toolbar:1.26; }
body.pojo-a11y-resize-font-180{ --a11y-scale:1.48; --a11y-scale-form:1.68; --a11y-scale-tip:1.30; --a11y-scale-display:1.19; --a11y-scale-toolbar:1.30; }
body.pojo-a11y-resize-font-190{ --a11y-scale:1.54; --a11y-scale-form:1.72; --a11y-scale-tip:1.32; --a11y-scale-display:1.21; --a11y-scale-toolbar:1.34; }
body.pojo-a11y-resize-font-200{ --a11y-scale:1.60; --a11y-scale-form:1.75; --a11y-scale-tip:1.35; --a11y-scale-display:1.24; --a11y-scale-toolbar:1.38; }
/* ==========================================================================
   SECTION 2 - Base pin on <body>
   Measured body baseline on every template of this site: 16px.
   Deliberately UNSCOPED so the toolbar popup keeps inheriting a live value.
   calc() - never a flat px - or #pojo-a11y-toolbar's 100%/80% chain freezes.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"][class]{
    font-size: calc(16px * var(--a11y-scale)) !important;
}
/* ==========================================================================
   SECTION 3 - Kill the compounding inside every content root
   Content roots enumerated from the live DOM of every template:
     template-home.php : .main-layout-container, .main-layout-container-mobile,
                         .mobile-menu, .privacy-wrapper
     page.php / 404.php / single.php / search.php :
                         .description-section, .gold-card-banner, .breadcrums,
                         .login-banner, .login-section, .home-banner,
                         .users-grid, .website-presentation, .container
     (.elementor / .wpcf7 included for forward compatibility)
   input / select / textarea are deliberately EXCLUDED - section 4 owns them.
   Specificity (0,2,3) beats the plugin's p rule (0,2,2) and h_ span (0,1,3).
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"] :is(
    .main-layout-container, .main-layout-container-mobile, .mobile-menu,
    .privacy-wrapper, .description-section, .gold-card-banner, .breadcrums,
    .login-banner, .login-section, .home-banner, .users-grid,
    .website-presentation, .container, .elementor, .wpcf7
) :is(p, li, span, label, blockquote, legend, code, pre, dd, dt){
    font-size: inherit !important;
}
/* Spans inside headings must not stack the plugin's extra `h_ span`
   multiplier on top of a heading that has already been scaled. */
html body[class*="pojo-a11y-resize-font-"] :is(
    .main-layout-container, .main-layout-container-mobile, .mobile-menu,
    .privacy-wrapper, .description-section, .gold-card-banner, .breadcrums,
    .login-banner, .login-section, .home-banner, .users-grid,
    .website-presentation, .container, .elementor, .wpcf7
) :is(h1,h2,h3,h4,h5,h6) :is(span,b,strong,em,i,a){
    font-size: inherit !important;
}
/* ==========================================================================
   SECTION 4 - Form controls, response + validation messages
   One rule per selector PER BREAKPOINT, mirroring the theme 1:1, in the
   theme's own source order (base -> 1020 -> 767 -> 600).
   px / vw only - never em (CF7 nesting compounds) and never rem.
   READABILITY FLOOR: max(Npx, <themeValue>) - a 0.8vw message renders ~7px on
   a 900px tablet, which has no override in this theme. Gated, so the default
   render is untouched.
   ========================================================================== */
/* --- text inputs -------------------------------------------------------- */
html body[class*="pojo-a11y-resize-font-"][class] .hebrew-contact-form .form-field,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="text"],
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="email"],
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="tel"],
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="url"],
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="number"],
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 textarea,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 select{
    font-size: calc(max(15px, 1vw) * var(--a11y-scale-form)) !important;
    line-height: 1.25 !important;
}
/* --- submit button ------------------------------------------------------ */
html body[class*="pojo-a11y-resize-font-"][class] .submit-btn,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-submit,
html body[class*="pojo-a11y-resize-font-"][class] .submit-col .global-btn,
html body[class*="pojo-a11y-resize-font-"][class] .global-btn{
    font-size: calc(max(16px, 1.2vw) * var(--a11y-scale-form)) !important;
    line-height: 1.25 !important;
}
/* --- CF7 response output (a <div>: the plugin NEVER touches it) ---------- */
html body[class*="pojo-a11y-"][class] .wpcf7-response-output,
html body[class*="pojo-a11y-"][class] .wpcf7 form .wpcf7-response-output{
    font-size: calc(max(14px, 0.8vw) * var(--a11y-scale-form)) !important;
    line-height: 1.4 !important;   /* theme uses vh elsewhere; vh never grows */
}
/* --- validation tips ---------------------------------------------------- */
html body[class*="pojo-a11y-"][class] .wpcf7-not-valid-tip,
html body[class*="pojo-a11y-"][class] .wpcf7-form-control-wrap .wpcf7-not-valid-tip{
    font-size: calc(max(13px, 0.8vw) * var(--a11y-scale-tip)) !important;
    line-height: 1.3 !important;   /* theme pins 14px - clips once scaled */
    white-space: nowrap !important;/* client requirement: always ONE line    */
}
/* --- consent / checkbox label ------------------------------------------- */
html body[class*="pojo-a11y-"][class] .custom-check span,
html body[class*="pojo-a11y-"][class] .wpcf7-list-item-label,
html body[class*="pojo-a11y-"][class] .custom-check-label,
html body[class*="pojo-a11y-"][class] .privacy-checkbox p{
    font-size: calc(max(12px, 0.7vw) * var(--a11y-scale-form)) !important;
    line-height: 1.45 !important;
}
/* --- field labels ------------------------------------------------------- */
html body[class*="pojo-a11y-"][class] .field-wrapper > p > span,
html body[class*="pojo-a11y-"][class] .form-label{
    font-size: calc(max(13px, 0.8vw) * var(--a11y-scale-form)) !important;
    line-height: 1.35 !important;  /* theme uses 2vh */
}
/* the CF7 control wrapper is also a direct span child - keep it neutral */
html body[class*="pojo-a11y-"][class] .field-wrapper > p > span.wpcf7-form-control-wrap{
    font-size: inherit !important;
}
/* --- success block ------------------------------------------------------ */
html body[class*="pojo-a11y-resize-font-"][class] .success-title{
    font-size: calc(max(18px, 1.5vw) * var(--a11y-scale)) !important;
    line-height: 1.3 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .success-subtitle{
    font-size: calc(max(14px, 1vw) * var(--a11y-scale)) !important;
    line-height: 1.4 !important;
}
/* --- equal control heights on every device (client requirement) ---------
   Inputs and the submit button are driven off one token, so their box
   heights match at every step and at every breakpoint.                    */
html body[class*="pojo-a11y-resize-font-"][class] .hebrew-contact-form .form-field,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="text"],
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="email"],
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="tel"],
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="url"],
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="number"],
html body[class*="pojo-a11y-resize-font-"][class] .submit-btn,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-submit{
    height: calc(34px * var(--a11y-scale-form)) !important;
    min-height: calc(34px * var(--a11y-scale-form)) !important;
    box-sizing: border-box !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .submit-btn,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-submit{
    padding-left: calc(14px * var(--a11y-scale-form)) !important;
    padding-right: calc(14px * var(--a11y-scale-form)) !important;
    width: auto !important;
}
/* --- checkbox box scales with its label --------------------------------- */
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-checkbox input[type="checkbox"]{
    width: calc(max(15px, 1.2vw) * var(--a11y-scale-form)) !important;
    height: calc(max(15px, 1.2vw) * var(--a11y-scale-form)) !important;
    flex: 0 0 auto !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-checkbox input[type="checkbox"]:checked::after{
    font-size: calc(max(11px, 0.85vw) * var(--a11y-scale-form)) !important;
    line-height: 1 !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}
/* ==========================================================================
   SECTION 4a - Layout containment (gated)
   The landing page is a rigid 100vh / overflow:hidden frame, and the submit
   button is absolutely positioned inside a zero-height container, so scaling
   the form alone either clips it away or - if the frame is released - stretches
   the whole page (measured: scrollHeight 900 -> 1053 -> 1270 -> 1448px, with
   ~1100px of empty stretched hero).
   So: KEEP the 100vh frame on desktop and let the sidebar scroll internally.
   The design stays put, the form stays reachable, and the page itself never
   grows a scrollbar it did not have before.
   ========================================================================== */
@media (min-width: 601px){
    html body[class*="pojo-a11y-resize-font-"][class] .main-layout-container{
        height: 100vh !important;
        min-height: 100vh !important;
        max-height: 100vh !important;
        align-items: stretch !important;
        overflow: hidden !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .right-sidebar{
        height: 100vh !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
    /* the one scroll container: the form column, not the document */
    html body[class*="pojo-a11y-resize-font-"][class] .right-sidebar-content{
        height: 100% !important;
        max-height: 100vh !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
        scrollbar-width: thin !important;
    }
    /* ---- hero block ----------------------------------------------------
       .hero-content-container is a stretched flex child, so .text-background-
       image (height:29.08% of it) grows to 421px at step 200 while the text it
       is supposed to sit behind is only 272px tall - that is the runaway cream
       panel. And .headlines-box is anchored at top:16.5vh, a viewport unit that
       cannot track a heading growing in px: measured clearance h1-bottom to
       headlines-box-top falls 54 -> 32 -> 19 -> 3px across the steps and goes
       negative on any viewport shorter than 900px.
       Fix: size the hero block to its content and put the headlines box back
       in flow underneath the heading. */
    html body[class*="pojo-a11y-resize-font-"][class] .hero-section{
        align-items: flex-start !important;
        overflow: hidden !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .hero-content-container{
        height: auto !important;
        max-width: calc(100% - 4vw) !important;
        padding-bottom: 2vh !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .text-background-image{
        top: 0 !important;
        height: 100% !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .headlines-box{
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        margin-left: 9.5vw !important;
        margin-top: 1.5vh !important;
        max-width: 100% !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .main-heading{
        padding-top: 3vh !important;
        padding-bottom: 0 !important;
    }
    /* ---- price / info boxes -------------------------------------------
       .price-box is max-width:14vw and .info-box 7vw. On hover the JS swaps
       a PRICE ("1,930,000") for a whole sentence, so at a larger font the
       text collapses into a ~6-character column. The sidebar content box is
       30.5vw - 4vw padding = 26.5vw, so give the pair all of it: 17 + 8.5 + 1
       gap = 26.5vw exactly, and drop the 2vw nudge that would push it out. */
    html body[class*="pojo-a11y-resize-font-"][class] .content-area{
        gap: 1vw !important;
        margin-left: 0 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .price-box{
        max-width: 17vw !important;
        left: 0 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .info-box{
        max-width: 8.5vw !important;
    }
}
/* form chrome that must stop being pinned at any breakpoint */
html body[class*="pojo-a11y-resize-font-"][class] .custom-check{
    height: auto !important;
    max-width: none !important;
    overflow: visible !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .submit-container{
    height: auto !important;
    position: relative !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .submit-btn{
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .disclaimer-text,
html body[class*="pojo-a11y-resize-font-"][class] .content-area,
html body[class*="pojo-a11y-resize-font-"][class] .price-box,
html body[class*="pojo-a11y-resize-font-"][class] .info-box,
html body[class*="pojo-a11y-resize-font-"][class] .info-button{
    height: auto !important;
    min-height: 0 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .dynamic-info-container{
    position: relative !important;
    max-width: none !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container{
    position: relative !important;
    margin-top: 0 !important;
}
/* ---- mobile hero + info rows -------------------------------------------
   NOTE: on mobile the cream panel behind "10% בחתימה" is baked into
   mobile-feature-images.png, and .headlines-box is absolutely positioned on
   top of it. Taking that box out of flow drops the dark-teal text onto the
   dark-teal page background, where it is invisible - so it STAYS absolute.
   Sampled from the PNG, that cream band is a clean
   rgb(240,224,198) rectangle spanning x 21-78% (57% wide, matching the
   theme's max-width:56%) and y 0-25%. Once scaled the box reaches 29-33%,
   i.e. past the band and onto the photo, so the box is given that exact cream
   as its own background and simply continues the band downwards. */
@media (max-width: 600px){
    html body[class*="pojo-a11y-resize-font-"][class] .main-heading{
        text-align: center !important;   /* wraps to 2 lines once scaled */
    }
    html body[class*="pojo-a11y-resize-font-"][class] .headlines-box{
        width: 57% !important;
        max-width: 57% !important;
        background: rgb(240, 224, 198) !important;
        padding-bottom: 8px !important;
    }
    /* the row is [label] [icon] [description] in RTL. Letting the label
       collapse squeezes it into a 38px column hard against the icon, which
       reads as icon and text running together - keep it proportional and let
       the description take the slack instead. */
    html body[class*="pojo-a11y-resize-font-"][class] .info-button{
        flex-wrap: wrap !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .info-button p{
        flex: 0 0 auto !important;
        min-width: calc(70px * var(--a11y-scale-display)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .info-button .hover-content{
        flex: 1 1 auto !important;
    }
    /* ---- bottom CTA bar ------------------------------------------------
       Each button is clipped to an arrow silhouette:
         .phone-mob  cuts the LEFT edge at 4.24%-13%
         .detail-mob cuts the RIGHT edge at 78%-90.3%
       The label is centred over the FULL box, so at a larger font it runs out
       past the cut (measured at 375px: the .detail-mob label reaches x=355
       while its shape ends at ~320). Give each column an exact 50% basis and
       inset the content by the size of its own cut. */
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .col-6{
        flex: 0 0 calc(50% - 5px) !important;
        max-width: calc(50% - 5px) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .phone-mob a{
        padding-left: 15% !important;
        padding-right: 4% !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .detail-mob a{
        padding-right: 24% !important;
        padding-left: 4% !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .detail-mob span{
        width: auto !important;
    }
}
/* ==========================================================================
   SECTION 4b - Elements carrying an intentional size of their own
   Includes every selector the theme wrote with :where(), which has ZERO
   specificity and would otherwise be flattened by section 3.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"][class] .content-description{      /* div */
    font-size: calc(max(12px, 0.9vw) * var(--a11y-scale)) !important;
    line-height: 1.5 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .dynamic-info-container{   /* div */
    font-size: calc(max(12px, 0.9vw) * var(--a11y-scale-display)) !important;
    line-height: 1.45 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .info-button p,
html body[class*="pojo-a11y-resize-font-"][class] .info-button .yellow-mob-text{
    font-size: calc(max(12px, 0.9vw) * var(--a11y-scale)) !important;
    line-height: 1.4 !important;                 /* theme uses 2.4vh */
    max-width: none !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .hover-price,
html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container .hover-price{
    font-size: calc(max(20px, 1.8vw) * var(--a11y-scale-display)) !important;
    line-height: 1.2 !important;                 /* theme uses 3.8vh */
}
html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container .currency-symbol{
    font-size: calc(max(12px, 1vw) * var(--a11y-scale-display)) !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container .label-bedge{
    white-space: nowrap !important;
    font-size: calc(max(11px, 0.9vw) * var(--a11y-scale-display)) !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .hover-info,
html body[class*="pojo-a11y-resize-font-"][class] #hidden-hover-content .hover-info{
    font-size: calc(max(11px, 0.8vw) * var(--a11y-scale-display)) !important;
}
html body[class*="pojo-a11y-resize-font-"][class] p.hover-headline{
    font-size: calc(max(11px, 0.8vw) * var(--a11y-scale)) !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .checkbox-container label{
    font-size: calc(max(12px, 0.7vw) * var(--a11y-scale-form)) !important;
    line-height: 1.4 !important;
}
/* privacy modal - the theme writes these with :where(), specificity (0,2,0) */
html body[class*="pojo-a11y-resize-font-"][class] .privacy-wrapper .privacy-content h2{
    font-size: calc(max(16px, 1.4vw) * var(--a11y-scale)) !important;
    line-height: 1.3 !important;                 /* theme uses 2.6vh */
}
html body[class*="pojo-a11y-resize-font-"][class] .privacy-wrapper .privacy-content p,
html body[class*="pojo-a11y-resize-font-"][class] .privacy-wrapper .privacy-content li,
html body[class*="pojo-a11y-resize-font-"][class] .privacy-wrapper .privacy-content a{
    font-size: calc(max(12px, 0.8vw) * var(--a11y-scale)) !important;
    line-height: 1.7 !important;                 /* theme uses 2.8vh */
}
html body[class*="pojo-a11y-resize-font-"][class] .privacy-wrapper .privacy-content{
    max-height: none !important;
}
/* ==========================================================================
   SECTION 4c - Cookie banner (#cc-banner-root)
   It is a direct child of <body>, OUTSIDE every content root, so section 3
   cannot reach it. Verified live: .cc-root and .cc-btn are frozen at 14px at
   every step (a div and a `font:inherit` button), while .cc-title (an h2)
   runs 16 -> 24.2 -> 37.2px. Generic inherit rule first, then explicit pins -
   each pin gets a bare AND a .cc-root-scoped selector.
   .cc-title / .cc-btn ride the FORM curve off bumped baselines (16 -> 18,
   14 -> 15) so the first click is a visible jump. EVERY pin is a calc().
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"][class] .cc-root :is(p,li,span,label,a){
    font-size: inherit !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-root{
    font-size: calc(14px * var(--a11y-scale)) !important;
    line-height: 1.5 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-title,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-title{
    font-size: calc(18px * var(--a11y-scale-form)) !important;
    line-height: 1.3 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-body,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-body{
    font-size: calc(14px * var(--a11y-scale-form)) !important;
    line-height: 1.5 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-btn,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-btn,
html body[class*="pojo-a11y-resize-font-"][class] .cc-btn.cc-btn-text,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-btn.cc-btn-text{
    font-size: calc(15px * var(--a11y-scale-form)) !important;
    line-height: 1.25 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-lang-toggle,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-lang-toggle{
    font-size: calc(12px * var(--a11y-scale)) !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-modal-head h2,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-modal-head h2{
    font-size: calc(18px * var(--a11y-scale)) !important;
    line-height: 1.3 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-modal-close,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-modal-close{
    font-size: calc(24px * var(--a11y-scale)) !important;
    line-height: 1 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-cat-desc,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-cat-desc{
    font-size: calc(13px * var(--a11y-scale)) !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-required-badge,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-required-badge{
    font-size: calc(11px * var(--a11y-scale)) !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-cookies-list,
html body[class*="pojo-a11y-resize-font-"][class] .cc-cookies-list th,
html body[class*="pojo-a11y-resize-font-"][class] .cc-cookies-list td,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-cookies-list th,
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-cookies-list td{
    font-size: calc(12px * var(--a11y-scale)) !important;
}
/* the banner must be able to grow instead of clipping */
html body[class*="pojo-a11y-resize-font-"][class] .cc-banner.cc-box{
    max-width: min(92vw, calc(420px * var(--a11y-scale))) !important;
}
/* CookieYes selectors (present in the theme CSS, inactive on this site today -
   kept so the fix survives if the CookieYes banner is switched back on).
   The theme writes them with :where(), so they are restated explicitly. */
html body[class*="pojo-a11y-resize-font-"][class] .cky-notice .cky-notice-group .cky-notice-des > p,
html body[class*="pojo-a11y-resize-font-"][class] .cky-notice .cky-notice-group .cky-notice-des a{
    font-size: calc(max(13px, 0.9vw) * var(--a11y-scale-form)) !important;
    line-height: 1.5 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cky-btn{
    font-size: calc(max(14px, 1vw) * var(--a11y-scale-form)) !important;
    line-height: 1.25 !important;
}
/* ==========================================================================
   SECTION 4d - Validation-tip positioning
   Audited live at 1440 and 375. This theme does NOT use a fixed px `top`;
   it uses `position:absolute; bottom:-15px` on a wrap whose height is the
   input height. Because the anchor is the tip's BOTTOM edge, the tip grows
   UPWARDS as the font scales and lands on top of the field - measured
   overlap at 1440: none 0px, 130 +27px, 200 +55px.
   Fix: re-anchor to `top:100%` and restate `bottom:auto` explicitly so it
   works without :has() support. NEVER position:static - the control wrap is
   only ~30px wide and the text would squeeze into a column.
   ========================================================================== */
html body[class*="pojo-a11y-"][class] .wpcf7-form-control-wrap > .wpcf7-not-valid-tip{
    position: absolute !important;
    top: 100% !important;
    bottom: auto !important;
    right: 0 !important;
    left: auto !important;
    margin-top: 2px !important;
    z-index: 5 !important;
}
/* the consent row keeps the theme's in-flow tip, which tracks automatically */
html body[class*="pojo-a11y-"][class] .custom-check .wpcf7-not-valid-tip,
html body[class*="pojo-a11y-"][class] .checkbox-container .wpcf7-not-valid-tip{
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    right: auto !important;
    display: block !important;
    width: max-content !important;
    max-width: 100% !important;
    margin-top: 4px !important;
}
/* spare room under each field so the re-anchored tip never covers the next row */
html body[class*="pojo-a11y-"][class] .field-wrapper > p{
    padding-bottom: calc(13px * var(--a11y-scale-tip) * 1.5 + 6px) !important;
    margin-bottom: 0 !important;
}
/* ==========================================================================
   SECTION 5 - Every theme font-size rule, gated and scaled
   Base band first; each source @media block is repeated below in the theme's
   own source order (1020 -> 767 -> 600), because overlapping bands resolve by
   order, not by specificity.
   vw at base + px on mobile -> BOTH are emitted.
   ========================================================================== */
/* --- 5.0 BASE (assets/css/style.css, no media query) --------------------- */
html body[class*="pojo-a11y-resize-font-"][class] .main-heading{
    font-size: calc(max(28px, 3.64vw) * var(--a11y-scale-display)) !important;
    line-height: 1.2 !important;                 /* theme uses 5.5vh */
}
html body[class*="pojo-a11y-resize-font-"][class] .main-sub-headline{
    font-size: calc(max(22px, 2.44vw) * var(--a11y-scale-display)) !important;
    line-height: 1.25 !important;                /* theme uses 4vh */
}
html body[class*="pojo-a11y-resize-font-"][class] .sub-headline{
    font-size: calc(max(14px, 1.366vw) * var(--a11y-scale-display)) !important;
    line-height: 1.35 !important;                /* theme uses 2.5vh */
}
html body[class*="pojo-a11y-resize-font-"][class] .absolute-star{
    font-size: calc(max(14px, 1.5vw) * var(--a11y-scale-display)) !important;
    line-height: 1 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .tag-line{
    font-size: calc(max(14px, 1.3vw) * var(--a11y-scale)) !important;
    line-height: 1.3 !important;
}
html body[class*="pojo-a11y-"][class] .city-name{
    font-size: calc(max(11px, 0.8vw) * var(--a11y-scale)) !important;
    line-height: 1.4 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .contact-heading h2{
    font-size: calc(max(14px, 1vw) * var(--a11y-scale)) !important;
    line-height: 1.35 !important;
}
html body[class*="pojo-a11y-"][class] .disclaimer-text p{
    font-size: calc(max(12px, 0.7vw) * var(--a11y-scale)) !important;
    line-height: 1.5 !important;                 /* theme uses 1.9vh */
    max-width: none !important;
}
html body[class*="pojo-a11y-"][class] .legal-text p{
    font-size: calc(max(12px, 0.7vw) * var(--a11y-scale)) !important;
    line-height: 1.5 !important;
    max-width: none !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a{
    font-size: calc(max(14px, 1.1vw) * var(--a11y-scale)) !important;
    line-height: 1.2 !important;
}
/* --- 5.1 @media(max-width:1020px) - assets/css/responsive.css ------------ */
@media (max-width: 1020px){
    html body[class*="pojo-a11y-resize-font-"][class] .tag-line{
        font-size: calc(max(14px, 2vw) * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-"][class] .city-name{
        font-size: calc(max(11px, 1.8vw) * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .content-description{
        font-size: calc(max(12px, 1.2vw) * var(--a11y-scale)) !important;
    }
}
/* --- 5.2 @media(max-width:767px) - inline theme <style> ------------------ */
@media (max-width: 767px){
    html body[class*="pojo-a11y-resize-font-"][class] .success-title{
        font-size: calc(20px * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .hebrew-contact-form .form-field,
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="text"],
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="email"],
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="tel"],
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="url"],
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 input[type="number"],
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 textarea,
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 select{
        font-size: calc(14px * var(--a11y-scale-form)) !important;
    }
    /* tip re-anchor restated inside the band the theme itself used */
    html body[class*="pojo-a11y-"][class] .wpcf7-form-control-wrap > .wpcf7-not-valid-tip{
        top: 100% !important;
        bottom: auto !important;
        margin-top: 2px !important;
    }
}
/* --- 5.3 @media(max-width:600px) - assets/css/responsive.css ------------- */
@media (max-width: 600px){
    html body[class*="pojo-a11y-resize-font-"][class] .main-heading{
        font-size: calc(40px * var(--a11y-scale-display)) !important;
        line-height: 1.15 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .main-sub-headline{
        font-size: calc(32px * var(--a11y-scale-display)) !important;
        line-height: 1.15 !important;            /* theme pins 20px */
    }
    html body[class*="pojo-a11y-resize-font-"][class] .sub-headline{
        font-size: calc(17px * var(--a11y-scale-display)) !important;
        line-height: 1.3 !important;             /* theme pins 13px */
    }
    html body[class*="pojo-a11y-resize-font-"][class] .absolute-star{
        font-size: calc(17px * var(--a11y-scale-display)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .tag-line{
        font-size: calc(18px * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-"][class] .city-name{
        font-size: calc(15px * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .content-description{
        font-size: calc(12px * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .info-button p{
        font-size: calc(12px * var(--a11y-scale)) !important;
        line-height: 1.35 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .yellow-mob-text{
        font-size: calc(16px * var(--a11y-scale)) !important;
        line-height: 1.3 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .contact-heading h2{
        font-size: calc(17px * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-info-container{
        font-size: calc(15px * var(--a11y-scale-display)) !important;
        line-height: 1.35 !important;            /* theme uses 2vh */
    }
    html body[class*="pojo-a11y-resize-font-"][class] .hover-info{
        font-size: calc(24px * var(--a11y-scale-display)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container .currency-symbol{
        font-size: calc(16px * var(--a11y-scale-display)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container .label-bedge{
        font-size: calc(15px * var(--a11y-scale-display)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .hover-price,
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container .hover-price{
        font-size: calc(28px * var(--a11y-scale-display)) !important;
        line-height: 1.1 !important;
    }
    html body[class*="pojo-a11y-"][class] .field-wrapper > p > span,
    html body[class*="pojo-a11y-"][class] .form-label{
        font-size: calc(14px * var(--a11y-scale-form)) !important;
    }
    html body[class*="pojo-a11y-"][class] .custom-check span,
    html body[class*="pojo-a11y-"][class] .wpcf7-list-item-label{
        font-size: calc(12px * var(--a11y-scale-form)) !important;
        line-height: 1.45 !important;            /* theme pins 17px */
    }
    html body[class*="pojo-a11y-resize-font-"][class] .submit-btn,
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-submit{
        font-size: calc(20px * var(--a11y-scale-form)) !important;
    }
    html body[class*="pojo-a11y-"][class] .wpcf7-response-output{
        font-size: calc(14px * var(--a11y-scale-form)) !important;
        line-height: 1.4 !important;
    }
    html body[class*="pojo-a11y-"][class] .wpcf7-not-valid-tip,
    html body[class*="pojo-a11y-"][class] .wpcf7-form-control-wrap .wpcf7-not-valid-tip,
    html body[class*="pojo-a11y-"][class] .custom-check .wpcf7-not-valid-tip{
        font-size: calc(12px * var(--a11y-scale-tip)) !important;
        line-height: 1.3 !important;
    }
    html body[class*="pojo-a11y-"][class] .disclaimer-text p{
        font-size: calc(12px * var(--a11y-scale)) !important;
        line-height: 1.5 !important;
    }
    html body[class*="pojo-a11y-"][class] .legal-text p{
        font-size: calc(12px * var(--a11y-scale)) !important;
        line-height: 1.5 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a{
        font-size: calc(22px * var(--a11y-scale)) !important;
        line-height: 1.2 !important;
        min-height: calc(55px * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .detail-mob span{
        width: auto !important;
        line-height: 1.2 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-checkbox input[type="checkbox"]{
        width: calc(15px * var(--a11y-scale-form)) !important;
        height: calc(15px * var(--a11y-scale-form)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-checkbox input[type="checkbox"]:checked::after{
        font-size: calc(11px * var(--a11y-scale-form)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .privacy-wrapper .privacy-content h2{
        font-size: calc(16px * var(--a11y-scale)) !important;
        line-height: 1.35 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .privacy-wrapper .privacy-content p,
    html body[class*="pojo-a11y-resize-font-"][class] .privacy-wrapper .privacy-content li,
    html body[class*="pojo-a11y-resize-font-"][class] .privacy-wrapper .privacy-content a{
        font-size: calc(12px * var(--a11y-scale)) !important;
        line-height: 1.65 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .cky-notice .cky-notice-group .cky-notice-des > p,
    html body[class*="pojo-a11y-resize-font-"][class] .cky-notice .cky-notice-group .cky-notice-des a{
        font-size: calc(11px * var(--a11y-scale-form)) !important;
        line-height: 1.4 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .cky-btn{
        font-size: calc(12px * var(--a11y-scale-form)) !important;
        line-height: 1.3 !important;
    }
    /* mobile layout relief */
    html body[class*="pojo-a11y-resize-font-"][class] .submit-container{
        height: auto !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .custom-check{
        margin-right: calc(20px * var(--a11y-scale-form)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .custom-check input{
        right: calc(-22px * var(--a11y-scale-form)) !important;
        width: calc(15px * var(--a11y-scale-form)) !important;
    }
}
/* ==========================================================================
   SECTION 6 - Pages with no Elementor wrapper (page.php / 404.php /
   single.php / search.php / category). Content sits in .description-section
   and friends. Measured plugin-only at step 200 in that root:
   <p> 16 -> 64px, blockquote p 16 -> 128px. Section 3 already flattens the
   compounding; these rules give the remaining chrome a sane curve.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"][class] .description-section h1,
html body[class*="pojo-a11y-resize-font-"][class] .description-section h2,
html body[class*="pojo-a11y-resize-font-"][class] .description-section h3,
html body[class*="pojo-a11y-resize-font-"][class] .description-section h4,
html body[class*="pojo-a11y-resize-font-"][class] .description-section h5,
html body[class*="pojo-a11y-resize-font-"][class] .description-section h6,
html body[class*="pojo-a11y-resize-font-"][class] .text-wraper h1,
html body[class*="pojo-a11y-resize-font-"][class] .text-wraper h2,
html body[class*="pojo-a11y-resize-font-"][class] .text-wraper h3,
html body[class*="pojo-a11y-resize-font-"][class] .text-wraper h4,
html body[class*="pojo-a11y-resize-font-"][class] .text-wraper h5,
html body[class*="pojo-a11y-resize-font-"][class] .text-wraper h6{
    line-height: 1.3 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .description-section h3[style]{
    font-size: calc(30px * var(--a11y-scale)) !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .breadcrums,
html body[class*="pojo-a11y-resize-font-"][class] .breadcrums a,
html body[class*="pojo-a11y-resize-font-"][class] .breadcrums span{
    font-size: calc(14px * var(--a11y-scale)) !important;
    line-height: 1.5 !important;
}
/* index.php (the category archive) renders the_content() with NO wrapper, so
   its copy lands as a direct child of <body> where section 3 cannot reach it.
   Direct body children only - p.pojo-a11y-toolbar-title lives inside the NAV,
   so the toolbar is untouched. */
html body[class*="pojo-a11y-resize-font-"][class] > p,
html body[class*="pojo-a11y-resize-font-"][class] > ul,
html body[class*="pojo-a11y-resize-font-"][class] > ol,
html body[class*="pojo-a11y-resize-font-"][class] > blockquote{
    font-size: inherit !important;
    line-height: 1.6 !important;
}
/* ==========================================================================
   SECTION 7 - Accessibility toolbar menu text
   CLIENT REQUEST: the toolbar's own menu items must grow noticeably LESS than
   page copy. Plugin default is 12.8 -> 25.6px (x2.0); this curve gives
   12.8 -> 17.7px (x1.38) while page copy rides x1.60.
   This is the only rule in this file that touches #pojo-a11y-toolbar, it is
   gated, and it changes nothing else about the toolbar.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"][class] #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a,
html body[class*="pojo-a11y-resize-font-"][class] #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a span{
    font-size: calc(12.8px * var(--a11y-scale-toolbar)) !important;
    line-height: 1.2 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay p.pojo-a11y-toolbar-title{
    font-size: calc(14px * var(--a11y-scale-toolbar)) !important;
    line-height: 1.4 !important;
}
/* --- 7b. toolbar panel direction (UNGATED, client request) ----------------
   The plugin ships the nav and the overlay as direction:ltr; only the <a>
   inherits rtl, so the panel's own box, its title and any label that wraps
   at a larger font all lay out left-to-right on this Hebrew site.
   Laying the row out as an RTL flex line keeps the icon on the right and the
   label beside it at every font size, and keeps a wrapped label aligned.
   This is the toolbar's own chrome, not page design - no page rule here. */
#pojo-a11y-toolbar,
#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay,
#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items,
#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay p.pojo-a11y-toolbar-title{
    direction: rtl !important;
    text-align: right !important;
}
#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a{
    direction: rtl !important;
    text-align: right !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
}
#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a .pojo-a11y-toolbar-icon{
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
}
#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a .pojo-a11y-toolbar-text{
    flex: 1 1 auto !important;
    min-width: 0 !important;
    text-align: right !important;
}
/* the gap replaces the plugin's / the database sheet's svg side padding */
#pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a svg{
    padding-right: 0 !important;
    padding-left: 0 !important;
}
/* ==========================================================================
   SECTION 8 - Contrast modes
   Gated on the contrast classes only, so the default palette is untouched.
   SPECIFICITY, THE HARD PART
   The plugin's own contrast rules carry an ID inside :not():
     body.pojo-a11y-light-background :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link)
         { background:#fff !important }                              (1,2,1)
     body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar)
         { background:#000 !important }                              (1,1,1)
   and this install also carries a ~57-rule hand-written stylesheet inline in
   the page (after this file) using the same ID-in-:not() pattern, e.g.
     body.pojo-a11y-light-background *:not(#pojo-a11y-toolbar):not(...) input
         { border:1px solid #000 !important }                        (1,2,2)
   An ID column beats any number of classes, so a plain
   `html body.pojo-a11y-light-background .wpcf7-checkbox input:checked` (0,4,3)
   silently loses - that is exactly why the light-mode tick was invisible:
   the box stayed WHITE (plugin) under a WHITE tick (this file).
   Every rule below therefore mirrors the pattern and carries
   `:not(#pojo-a11y-toolbar)` - which also keeps the toolbar out, per RULE B.
   The cookie banner is a direct child of <body>, so it is addressed by its own
   id (#cc-banner-root) rather than through a descendant :not().
   ========================================================================== */
/* --- 8a. checkbox tick ---------------------------------------------------
   The custom checkbox is appearance:none with a tick drawn by ::after.
   light-background : the plugin paints the box #fff, so a white tick vanishes.
       Box -> #000 when checked, tick stays white.
   high / negative  : the plugin paints the box #000; pin a white tick and a
       white border so neither can inherit the surrounding yellow/green.
   grayscale        : the box desaturates from #ebbd67 to light grey; a WHITE
       tick there is 1.75:1 and disappears, so the tick flips to near-black
       (10.2:1 measured).
   The tick is re-centred and re-sized in every mode, because the plugin blows
   the input's own font-size up (measured 10 -> 1024px at step 200).          */
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"],
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]{
    background: #000 !important;
    border: 2px solid #fff !important;
    border-radius: 3px !important;
}
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked{
    background: #000 !important;
    border-color: #fff !important;
}
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]{
    background: #fff !important;
    border: 2px solid #000 !important;
    border-radius: 3px !important;
}
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked{
    background: #000 !important;
    border-color: #000 !important;
}
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked::after,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked::after,
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked::after{
    content: "\2714" !important;
    color: #fff !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    pointer-events: none !important;
}
html body.pojo-a11y-grayscale :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked::after{
    content: "\2714" !important;
    color: #101820 !important;      /* dark tick: stays legible desaturated */
    font-weight: 700 !important;
    line-height: 1 !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    pointer-events: none !important;
}
/* keep the tick proportional to the box in every mode, resized or not */
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked::after,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked::after,
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked::after,
html body.pojo-a11y-grayscale :not(#pojo-a11y-toolbar) .wpcf7-checkbox input[type="checkbox"]:checked::after{
    font-size: calc(max(11px, 0.85vw) * var(--a11y-scale-form)) !important;
}
/* --- 8b. form controls and messages --------------------------------------
   The submit button is clipped with
   clip-path: polygon(0 0, 100% 0, 100% 75%, 0% 100%), which slices the BOTTOM
   edge off. The theme draws no border there so it never showed - but every
   contrast mode adds one, and the clip ate it. Drop the clip in those modes. */
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .submit-btn,
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .wpcf7-submit,
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .global-btn,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .submit-btn,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .wpcf7-submit,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .global-btn{
    color: #fff !important;
    border: 2px solid #fff !important;
    clip-path: none !important;
}
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .submit-btn,
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .wpcf7-submit,
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .global-btn{
    color: #fff !important;
    background: #000 !important;
    border: 2px solid #000 !important;
    clip-path: none !important;
}
html body.pojo-a11y-grayscale :not(#pojo-a11y-toolbar) .submit-btn,
html body.pojo-a11y-grayscale :not(#pojo-a11y-toolbar) .wpcf7-submit{
    clip-path: none !important;
}
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .hebrew-contact-form .form-field,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .hebrew-contact-form .form-field,
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .hebrew-contact-form .form-field{
    border-bottom: 2px solid currentColor !important;
}
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .wpcf7-not-valid-tip,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .wpcf7-not-valid-tip{
    color: #ff8080 !important;
    background: transparent !important;
}
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .wpcf7-not-valid-tip{
    color: #c00000 !important;
    background: transparent !important;
}
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .wpcf7-response-output,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .wpcf7-response-output{
    color: #fff !important;
    border-color: #fff !important;
}
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .wpcf7-response-output{
    color: #000 !important;
    border-color: #000 !important;
}
/* --- 8c. cookie banner ---------------------------------------------------
   #cc-banner-root is a direct child of <body>, so it is matched by its own id
   (1,x,y) instead of through a descendant :not(#...).                       */
html body.pojo-a11y-high-contrast #cc-banner-root,
html body.pojo-a11y-high-contrast #cc-banner-root .cc-banner,
html body.pojo-a11y-high-contrast #cc-banner-root .cc-body,
html body.pojo-a11y-high-contrast #cc-banner-root .cc-title,
html body.pojo-a11y-negative-contrast #cc-banner-root,
html body.pojo-a11y-negative-contrast #cc-banner-root .cc-banner,
html body.pojo-a11y-negative-contrast #cc-banner-root .cc-body,
html body.pojo-a11y-negative-contrast #cc-banner-root .cc-title{
    color: #fff !important;
}
html body.pojo-a11y-high-contrast #cc-banner-root .cc-body,
html body.pojo-a11y-negative-contrast #cc-banner-root .cc-body,
html body.pojo-a11y-light-background #cc-banner-root .cc-body,
html body.pojo-a11y-grayscale #cc-banner-root .cc-body{
    opacity: 1 !important;          /* banner ships .9 - too dim once flattened */
}
html body.pojo-a11y-high-contrast #cc-banner-root .cc-btn,
html body.pojo-a11y-negative-contrast #cc-banner-root .cc-btn{
    color: #fff !important;
    border: 2px solid #fff !important;
}
html body.pojo-a11y-light-background #cc-banner-root,
html body.pojo-a11y-light-background #cc-banner-root .cc-banner,
html body.pojo-a11y-light-background #cc-banner-root .cc-body,
html body.pojo-a11y-light-background #cc-banner-root .cc-title{
    color: #000 !important;
    background: #fff !important;
}
html body.pojo-a11y-light-background #cc-banner-root .cc-btn{
    color: #fff !important;
    background: #000 !important;
    border: 2px solid #000 !important;
}
/* --- 8d. images and icon affordances -------------------------------------
   In high/negative contrast the plugin puts a mid-grey plate behind every
   <img>. Logos here are white-on-transparent, which lands at ~2.6:1 on that
   plate - force the plate dark so white marks stay legible, and give images a
   light edge so their bounds read on a black page.                          */
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .site-logo img,
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .sabio-img,
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .button-icon-img,
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .bottom-logo-wrapper,
html body.pojo-a11y-high-contrast .mobile-menu img:not(#pojo-a11y-toolbar),
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .site-logo img,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .sabio-img,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .button-icon-img,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .bottom-logo-wrapper,
html body.pojo-a11y-negative-contrast .mobile-menu img:not(#pojo-a11y-toolbar){
    background: #000 !important;
    outline: 1px solid rgba(255,255,255,.35) !important;
}
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .site-logo img,
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .sabio-img,
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .button-icon-img,
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar) .bottom-logo-wrapper,
html body.pojo-a11y-light-background .mobile-menu img:not(#pojo-a11y-toolbar){
    background: #000 !important;
}
/* the mobile call-to-action bar keeps a readable pairing in every mode */
html body.pojo-a11y-high-contrast .mobile-menu a:not(#pojo-a11y-toolbar),
html body.pojo-a11y-negative-contrast .mobile-menu a:not(#pojo-a11y-toolbar){
    color: #fff !important;
    border: 2px solid #fff !important;
    background: #000 !important;
    clip-path: none !important;
}
html body.pojo-a11y-light-background .mobile-menu a:not(#pojo-a11y-toolbar){
    color: #000 !important;
    border: 2px solid #000 !important;
    background: #fff !important;
    clip-path: none !important;
}
/* .arrow-down is drawn with a background-image, which high/negative contrast
   strips (background-image:none !important). Give it a CSS triangle so the
   affordance survives. */
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar) .arrow-down,
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar) .arrow-down{
    background: transparent !important;
    border-left: .45em solid transparent !important;
    border-right: .45em solid transparent !important;
    border-top: .5em solid #fff !important;
    height: 0 !important;
}
/* --- 8e. grayscale ---------------------------------------------------------
   grayscale() preserves luminance, so any pair that was already low-contrast
   stays low-contrast with the hue cue removed. Audited every rendered text
   node in all four modes on both breakpoints; the only genuine failure was the
   cookie banner's primary button: white on #E4BA6D is 1.82:1. Flipped to dark
   ink. The banner sets its colours inline, so !important is required.        */
html body.pojo-a11y-grayscale #cc-banner-root .cc-btn:not(.cc-btn-text){
    color: #101820 !important;
    border: 1px solid #101820 !important;
}
html body.pojo-a11y-grayscale :not(#pojo-a11y-toolbar) .info-box,
html body.pojo-a11y-grayscale :not(#pojo-a11y-toolbar) .info-box .hover-info{
    color: #101820 !important;
}

/* ==========================================================================
   SECTION 9 - Mobile call-to-action bar (follow-up)

   9a. WHY SECTION 8d NEVER RAN ON THIS BAR
   .mobile-menu is a DIRECT CHILD OF <body>. The house pattern in this file is
       html body.<mode> :not(#pojo-a11y-toolbar) <target>
   where the :not() is a descendant STEP - it has to match a real element
   sitting between <body> and the target. For every other target that is true,
   but .mobile-menu has no ancestor except <body> itself, so those selectors
   could never match anything. Audited the whole stylesheet against the live
   page with all four contrast classes applied: 52 selectors use the pattern,
   46 match, and exactly 6 matched nothing - all 6 were the .mobile-menu rules.
   They are now written with the :not() anchored on the TARGET instead, which
   keeps the same ID-column specificity and actually matches.
   That single change is what finally applies the white borders section 8d
   always intended for this bar.

   9b. THE ICON THAT DISAPPEARED
   Sampled off-screen, bottom-call-icon.png averages luminance 98 and
   bottom-arrow-icon.png averages 128 - both are mid-to-dark artwork. In high
   contrast the plugin puts a mid-grey (128,128,128) plate behind every <img>,
   which is the SAME tone as the arrow: it vanished completely, while the
   darker phone icon survived. Section 8d's answer was a black plate, but on
   black both icons sit at roughly 1.5:1.
   A white plate is the correct pairing for dark artwork, and it matches the
   white 2px border the buttons now carry.
   ========================================================================== */
html body.pojo-a11y-high-contrast .mobile-menu img:not(#pojo-a11y-toolbar),
html body.pojo-a11y-negative-contrast .mobile-menu img:not(#pojo-a11y-toolbar){
    background: #fff !important;
    outline: none !important;
    border-radius: 50% !important;
    padding: 2px !important;
    box-sizing: content-box !important;
}
/* In light mode the button is already white, so the icons need no plate at
   all - a black one (8d) made the same dark artwork unreadable. */
html body.pojo-a11y-light-background .mobile-menu img:not(#pojo-a11y-toolbar){
    background: transparent !important;
    outline: none !important;
}

/* 9c. .detail-mob span is width:109px in responsive.css. At the larger steps
   "leave details" no longer fits that fixed box and the second word is
   clipped by the button edge. Gated, so the default bar is untouched. */
html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .detail-mob span,
html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .phone-mob span{
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    line-height: 1.25 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a{
    min-height: 0 !important;
    height: auto !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    line-height: 1.25 !important;
}

/* ==========================================================================
   SECTION 10 - Drop the decorative clip-paths once type is enlarged

   The theme cuts several elements with clip-path polygons:
     .price-box      polygon(0 1%, 100% 0, 99.54% 87.79%, 0 100%)
     .info-box       polygon(0 1%, 100% 0, 99.54% 92.23%, 0 100%)
     .submit-btn     polygon(0 0, 100% 0, 100% 75%, 0 100%)   (90% under 600px)
     .phone-mob a    polygon(100% 0, 100% 51%, 100% 100%, 13% 100%, 4.24% 52%, 14% 0)
     .detail-mob a   polygon(79% 0, 90.3% 54.7%, 78% 100%, 0 100%, 0 50%, 0 0)

   Those angles are fine at the design type size, where the text sits well
   inside the polygon. Enlarged, the copy reaches the diagonal and the polygon
   silently slices it - nothing overflows in the box-model sense (scrollHeight
   equals clientHeight), the glyphs are simply painted away, which is why it
   reads as "cropped" rather than "scrolling".
   Gated, so the decorative shape is untouched at the default size.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"][class] .price-box,
html body[class*="pojo-a11y-resize-font-"][class] .info-box,
html body[class*="pojo-a11y-resize-font-"][class] .info-button,
html body[class*="pojo-a11y-resize-font-"][class] .submit-btn,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-submit,
html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a{
    clip-path: none !important;
    -webkit-clip-path: none !important;
}

/* --- 10b. mobile call-to-action bar layout -------------------------------
   Measured at 375px / step 200: the .detail-mob link renders 198px wide
   inside a 163px column - it overruns its own half of the bar, and the
   polygon above then cuts the right ~20% off, which is exactly where the
   second wrapped line sits. Constrain each link to its column, let the bar
   size to the tallest, and keep the two halves equal. */
@media (max-width: 767px) {
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .row{
        align-items: stretch !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a{
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 6px !important;
        height: 100% !important;
        padding: 7px 6px !important;
        font-size: min(calc(22px * var(--a11y-scale)), 24px) !important;
        text-align: center !important;
        overflow-wrap: normal !important;
        word-break: keep-all !important;
        flex-direction: row !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .detail-mob span,
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .phone-mob span{
        width: auto !important;
        max-width: none !important;
        text-align: center !important;
        line-height: 1.2 !important;
    }
    /* the icons must not be squeezed out by the growing label */
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a img{
        flex: 0 0 auto !important;
    }
}

/* ==========================================================================
   SECTION 11 - Spacing follow-ups (all measured at 375px)
   ========================================================================== */

/* 11a. The CTA bar must not eat the screen.
   Section 10 let the bar grow with its label, and at step 200 that produced a
   199px bar - 25% of a 812px viewport - with "leave details" broken across
   four lines, sitting on top of the page content.
   The label needs 133px at its native 22px but only ~109px is available
   beside the icon, so it is DESIGNED to wrap to two lines; the fault was the
   type, not the wrapping. Capping the bar's own font at 24px and trimming the
   icon to 22px holds it at two lines and 82px (10% of the viewport) at every
   step. The cap lives on the bar only - page copy is unaffected. */
@media (max-width: 767px) {
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a img{
        width: 22px !important;
        height: 22px !important;
    }
}

/* 11b. Space to the left of the consent checkbox.
   The box carries margin:0 on every side (bootstrap resets it and
   responsive.css re-zeroes it), so the label sits hard against it. In this
   RTL form the box comes first and the text follows to its LEFT, which is
   margin-inline-end. Scaled, so the gap keeps pace with the type. */
html body[class*="pojo-a11y-"][class] .wpcf7-checkbox input[type="checkbox"],
html body[class*="pojo-a11y-"][class] .wpcf7-list-item input[type="checkbox"]{
    margin-inline-end: calc(14px * var(--a11y-scale)) !important;
    margin-inline-start: 0 !important;
}

/* 11c. Breathing room above the feature icons.
   .info-button has a flat padding-top:15px and .info-buttons-container a flat
   margin-top:10px - neither tracks the type. Measured, the icon's offset from
   the top of its button FALLS from 28px to 15px as the label grows, so the
   row crowds the paragraph above it exactly when it needs more room. Both are
   now proportional (verified on a clone: 15px -> 24px at step 200). */
html body[class*="pojo-a11y-resize-font-"][class] .info-buttons-container{
    margin-top: calc(10px * var(--a11y-scale)) !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .info-button{
    padding-top: calc(15px * var(--a11y-scale)) !important;
}

/* 11d. Side clearance for the form disclaimer.
   .disclaimer-text runs edge to edge inside .contact-section (padding 0), so
   the enlarged legal copy reaches the container edge with nothing to spare. */
html body[class*="pojo-a11y-resize-font-"][class] .disclaimer-text{
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
}

/* 11e. Tighter gaps between the form fields.
   Each field sits in a <p> whose line-height is inherited, so the wrapper
   grows far faster than the input inside it: the gap between inputs went
   21px -> 48px at step 200. Pinning the wrapper's line-height and trimming
   its margins brings that back to 34px, with the extra height now coming
   from the taller inputs themselves rather than from empty leading. */
html body[class*="pojo-a11y-resize-font-"][class] .contact-form-container p{
    line-height: 1.25 !important;
    margin-top: 2px !important;
    margin-bottom: 2px !important;
}

/* ==========================================================================
   SECTION 12 - Corrections to sections 10/11
   ========================================================================== */

/* 12a. The CTA label was breaking MID-WORD.
   Section 10 set overflow-wrap:break-word on .mobile-menu a. The span is
   narrower than the words it holds, so break-word did exactly what it says -
   it split "hash'iru" across lines, giving three ragged lines instead of two.
   The theme's own behaviour is to let an over-long word simply overflow its
   109px span, which looks fine inside the wider link. Restoring normal
   wrapping plus keep-all gives a clean two-line label ("hash'iru" /
   "pratim") with the phone label on one line, at every step. */
@media (max-width: 767px) {
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a span{
        width: auto !important;
        max-width: 100% !important;
        overflow-wrap: normal !important;
        word-break: keep-all !important;
        line-height: 1.2 !important;
    }
}

/* 12b. Centre the hero headline block on the CREAM BAND, not the viewport.
   Sampled mobile-feature-images.png directly: the cream rectangle starts at
   21.3% of the image width and runs to its right edge, so its centre sits at
   60.6% - NOT at 50%. .headlines-box is positioned left:50%, which put its
   centre at 188px while the band's centre is at 227px: a 39px offset that
   left a 3px gap on one side and 82px on the other. Aligning the box to the
   band's own centre balances it (measured 42px / 43px after). */
@media (max-width: 767px) {
    html body[class*="pojo-a11y-resize-font-"][class] .headlines-box{
        left: 60.6% !important;
    }
}

/* ==========================================================================
   SECTION 13 - Follow-ups (cookie banner, hero clearance, arrows, fields)
   ========================================================================== */

/* 13a. Cookie banner centred.
   #cc-banner-root is .cc-pos-left: inset ... 20px 20px, so it sits hard in
   the bottom-left corner - measured x=20 with a 1000px gap on the right at
   1440. Centring it horizontally keeps its own 420px max-width. */
html body[class*="pojo-a11y-"] #cc-banner-root.cc-root{
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: min(calc(100vw - 24px), 420px) !important;
}

/* 13b. DESKTOP: clearance to the left of the "10% on signing" block.
   .headlines-box sits at margin-left:9.5vw, a fixed offset that does not
   move as the type grows, so the block crept toward the left edge of the
   cream panel. Scaling that offset keeps the gap opening up with the text:
   measured clearance inside the panel 128px -> 148px -> 208px across the
   steps, with 106px still free on the right at step 200. */
/* 13b REVERTED on request: scaling this offset pushed the block too far
   right. The theme value keeps it near-centred on the cream panel. */

/* 13c. The feature label rode the gentle display curve (16px -> 19.2px at
   step 200, barely a fifth bigger) while the copy beside it went to 1.6x.
   It is ordinary UI text, so it belongs on the page curve. */
html body[class*="pojo-a11y-resize-font-"][class] .yellow-mob-text{
    font-size: calc(16px * var(--a11y-scale)) !important;
}

/* 13d. .arrow-down in LIGHT mode.
   The arrow is a 14x11 <div> drawn with a background-image. Light mode
   strips background-image AND paints the div white, so nothing rendered at
   all (measured: background-image none, border-top 0). Section 8d already
   rebuilds it as a CSS triangle for the two dark modes; light mode needs the
   same treatment in a dark ink. */
html body.pojo-a11y-light-background .arrow-down:not(#pojo-a11y-toolbar){
    background: transparent !important;
    background-image: none !important;
    border-left: .45em solid transparent !important;
    border-right: .45em solid transparent !important;
    border-top: .5em solid #003347 !important;
    height: 0 !important;
    width: 0 !important;
}

/* 13e. Space between a feature label and its arrow (margin was 0). */
html body[class*="pojo-a11y-"] .arrow-down:not(#pojo-a11y-toolbar){
    margin-top: calc(6px * var(--a11y-scale)) !important;
}

/* 13f. Form fields keep their underline only, in every contrast mode.
   The plugin draws a full box on inputs (border:1px solid) which turns each
   field into a solid rectangle; the theme's design is a single rule under
   the field. Checkboxes and submit buttons keep their full border - those
   need it to read as controls. Colour is pinned per mode rather than with
   currentColor, which in negative contrast would pick up the yellow the
   plugin uses for text and draw yellow underlines. */
html body.pojo-a11y-high-contrast input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not(#pojo-a11y-toolbar),
html body.pojo-a11y-high-contrast textarea:not(#pojo-a11y-toolbar),
html body.pojo-a11y-high-contrast select:not(#pojo-a11y-toolbar),
html body.pojo-a11y-negative-contrast input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not(#pojo-a11y-toolbar),
html body.pojo-a11y-negative-contrast textarea:not(#pojo-a11y-toolbar),
html body.pojo-a11y-negative-contrast select:not(#pojo-a11y-toolbar){
    border: 0 !important;
    border-bottom: 1px solid #ffffff !important;
    border-radius: 0 !important;
}
html body.pojo-a11y-light-background input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not(#pojo-a11y-toolbar),
html body.pojo-a11y-light-background textarea:not(#pojo-a11y-toolbar),
html body.pojo-a11y-light-background select:not(#pojo-a11y-toolbar){
    border: 0 !important;
    border-bottom: 1px solid #000000 !important;
    border-radius: 0 !important;
}

/* ==========================================================================
   SECTION 14 - The price / info row: scale the type, grow the boxes

   14a. WHAT THE ROW DID BEFORE
   Sections 4a/4b/10 did not scale this row - they REPLACED its geometry with
   different fixed values, and all of it landed on the FIRST step and then
   never moved again. Measured at 1920, default -> step 130:
       gap          2.3vw -> 1vw            margin-left  1vw -> 0
       .price-box   14vw  -> 17vw, left 2vw -> 0
       .info-box    7vw   -> 8.5vw          both heights 8vh/7vh -> auto
       clip-path    angled -> none          both inner containers abs -> rel
   So one click redrew the row: it slid left, both boxes changed proportion,
   the angled corners vanished and the label straightened onto one line.
   That is the jump. From 130 to 200 it then barely moved at all.

   14b. THE HORIZONTAL GEOMETRY IS FIXED, AND IT IS FIXED HARD
   Every horizontal length is the THEME's own value times ONE token
   (--a11y-scale-boxrow), so the row keeps its proportions, its angles and its
   position at every step. The theme's 2.3vw gap is restated as 0.3vw plus a
   1vw offset on both boxes, which renders identically (the theme's `left:2vw`
   on .price-box already ate 2vw of that gap - measured visual gap 5.8px =
   0.3vw) but costs 2vw LESS layout width, which is what buys any room at all.
   Verified at factor 1 the geometry is identical to the theme: the row spans
   1451.5..1860.5 before and after.
   That token is capped at 1.11 because the sidebar's inner right edge is
   x=1882 and the row already reaches x=1878 at 1.11. At 1.20 it reaches 1891
   - past the sidebar, not just past the column - and flex starts shrinking
   the boxes. There is no padding on the right to grow into. So the BOXES
   cannot get wider, full stop.

   14c. SO THE TYPE RIDES ITS OWN CEILING, NOT THE BOX'S
   Tying the type to the box capped it at +11% while the tab captions right
   above it grew +60%, and the identical words ("הסביבה האיכותית") rendered
   27.65px in the caption and 19.18px inside the gold box. Each piece of type
   is therefore on the curve its OWN physics allow:

     .hover-price at rest + currency + label-bedge  -> --a11y-scale-display
         One unbreakable number, so it is WIDTH-bound. Measured row width at
         1920/step 200: 286px inside a 298px box. 1.30 overflows it (300px).
         NOTE: that is only a 12px margin. A longer price string in the ACF
         field than "1,930,000" will need this curve dropped.

     hover sentence + .dynamic-info-container       -> --a11y-scale
         Both can rewrap, so they are HEIGHT-bound, and height is the one
         direction with room (the sidebar scrolls at large steps). They ride
         the same curve as the tab captions, which is what makes the caption
         and the gold-box label finally match: both 27.65px at step 200.

   14d. WHICH MEANS THE BOXES HAVE TO GROW DOWNWARDS
   With the type off the box's curve the content no longer fits a fixed box,
   so both boxes become height:auto over a min-height, and both inner
   containers come back into flow (they were absolute, which is why oversized
   text used to spill out and get sliced by the clip-path instead of pushing
   the box open). Measured worst case at 1920:
       .price-box   82px rest / 82px hover at default
                    92px rest / 224px hover at step 200   (93-char sentence)
       .info-box    72px at default -> 132px at step 200  (3-line label)
   .content-area is pinned to align-items:flex-start so each box keeps its own
   height instead of stretching to the taller one, which is how the theme
   renders (8vh vs 7vh, top-aligned).
   The price box therefore CHANGES HEIGHT on hover at the larger steps. That
   is the deliberate trade: the alternative is a permanently 224px-tall cream
   slab holding a one-line price. The theme's own `transition: all 0.1s` on
   these boxes animates the change rather than snapping it.

   14e. THE HOVER SWAP - what it used to do
   custom.js swaps the price for a whole SENTENCE on .info-button hover and
   drops the inline font-size to 0.8vw to fit it. Section 4b's `!important`
   overrode that inline value, so with the resizer on, hovering an icon blew
   the sentence up to the PRICE size and the box with it: measured at step
   200, 15.36px -> 42.85px and .price-box 82px -> 668px tall.
   The rest state is matched by an ordinary rule; the hover state is matched
   by the inline value custom.js writes ([style*="0.8vw"]), so each keeps its
   own baseline.
   COUPLING: that selector tracks the literal '0.8vw' in custom.js
   updateContent(). If that string ever changes the sentence falls back to the
   rest-state rule - visible but oversized - so the pair must stay in sync.
   (Precedent for matching an inline value: .description-section h3[style] in
   section 6.)
   ========================================================================== */
@media (min-width: 601px){
    html body[class*="pojo-a11y-resize-font-"][class] .content-area{
        /* horizontal token for the whole row - see 14b for the 1.11 cap */
        --a11y-scale-boxrow: min(var(--a11y-scale-display), 1.11);
        display: flex !important;
        justify-content: center !important;
        align-items: flex-start !important;   /* each box keeps its own height */
        gap: calc(0.3vw * var(--a11y-scale-boxrow)) !important;
        margin-left: 1vw !important;
        min-height: calc(8vh * var(--a11y-scale-boxrow)) !important;
        height: auto !important;
    }
    /* ---- the two boxes ---------------------------------------------------
       Width and the angled corners are frozen to the theme's proportions;
       only the height opens up, because that is the only axis with room.
       clip-path is restored: section 10 dropped it to stop the polygon
       slicing oversized copy, but copy can no longer overrun a box that
       grows to fit it. flex-shrink is left at the theme's 1 on purpose - if
       a narrow desktop cannot fit the row, shrinking beats overflowing. */
    html body[class*="pojo-a11y-resize-font-"][class] .price-box{
        flex: 2 !important;
        max-width: calc(14vw * var(--a11y-scale-boxrow)) !important;
        height: auto !important;
        min-height: calc(8vh * var(--a11y-scale-boxrow)) !important;
        padding-top: calc(0.8vh * var(--a11y-scale)) !important;
        padding-bottom: calc(1.6vh * var(--a11y-scale)) !important;  /* clears the bottom cut */
        box-sizing: border-box !important;
        position: relative !important;
        left: 1vw !important;          /* see 14b - unscaled, holds the centre */
        clip-path: polygon(0px 1%, 100% 0px, 99.54% 87.79%, 0% 100%) !important;
        -webkit-clip-path: polygon(0px 1%, 100% 0px, 99.54% 87.79%, 0% 100%) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .info-box{
        flex: 1 !important;
        max-width: calc(7vw * var(--a11y-scale-boxrow)) !important;
        height: auto !important;
        min-height: calc(7vh * var(--a11y-scale-boxrow)) !important;
        padding-top: calc(0.8vh * var(--a11y-scale)) !important;
        padding-bottom: calc(1.2vh * var(--a11y-scale)) !important;
        box-sizing: border-box !important;
        position: relative !important;
        left: 1vw !important;
        clip-path: polygon(0px 1%, 100% 0px, 99.54% 92.23%, 0% 100%) !important;
        -webkit-clip-path: polygon(0px 1%, 100% 0px, 99.54% 92.23%, 0% 100%) !important;
    }
    /* ---- both inner containers back IN FLOW so they can push the box open */
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container{
        position: relative !important;
        margin-top: calc(-1vh * var(--a11y-scale-boxrow)) !important;
        gap: calc(0.1vw * var(--a11y-scale-boxrow)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-info-container{
        position: relative !important;
        max-width: calc(5vw * var(--a11y-scale-boxrow)) !important;
        /* rewraps, so it rides the page curve - see 14c */
        font-size: calc(0.9vw * var(--a11y-scale)) !important;
        line-height: calc(2vh * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .info-box .hover-info{
        font-size: inherit !important;
        line-height: inherit !important;
    }
    /* ---- the price line: WIDTH-bound, so it stops at the display curve --- */
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container .hover-price{
        font-size: calc(1.8vw * var(--a11y-scale-display)) !important;
        line-height: calc(3.8vh * var(--a11y-scale-display)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container .currency-symbol{
        font-size: calc(1vw * var(--a11y-scale-display)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container .label-bedge{
        font-size: calc(0.9vw * var(--a11y-scale-display)) !important;
    }
    /* ---- the hover sentence: rewraps, so it rides the page curve --------- */
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-price-container .hover-price[style*="0.8vw"]{
        font-size: calc(0.8vw * var(--a11y-scale)) !important;
        line-height: calc(1.7vh * var(--a11y-scale)) !important;
    }
}
/* under 600px the row is stacked and full-width, so it never had the desktop
   problem; it only needs the theme's own cap back (section 4a cleared it). */
@media (max-width: 600px){
    html body[class*="pojo-a11y-resize-font-"][class] .dynamic-info-container{
        max-width: calc(100% - 10px) !important;
    }
}

/* ==========================================================================
   SECTION 15 - Three fixed offsets that never tracked the type

   Each of these is the same failure: an ABSOLUTELY POSITIONED element pinned
   with a constant offset, so it stays put while the text beside it grows.

   15a. THE WHITE STRIP DOWN THE SIDEBAR EDGE
   Section 4a gives .right-sidebar-content `overflow-y:auto` so the form stays
   reachable inside the 100vh frame. From the FIRST step the content no longer
   fits (measured at 1920x1031: scrollHeight 1031 -> 1278 at step 130) and a
   real scrollbar appears - 10px wide, with the UA's default light track.
   It lands on the LEFT because that container runs RTL, which puts it right
   on the sidebar's slanted gold edge, reading as a white stripe over the hero.
   The container genuinely has to scroll, so the scrollbar stays - it is just
   given a transparent track and a translucent thumb, so it reads as part of
   the dark panel instead of a white band. scrollbar-color covers Firefox and
   Chrome 121+; the ::-webkit- rules cover older WebKit/Blink.

   15b. THE ARROW UNDER EACH FEATURE LABEL
   .arrow-down is `position:absolute; bottom:0` inside a .info-button that is
   `min-height:14vh` with its contents flex-centred. At the default size the
   label is short and leaves 11.3px of clearance; once the label grows and
   wraps to two lines it walks straight into the arrow - measured gap at 1920:
   11.3px default -> -2.6px at step 200, i.e. the text sits ON the arrow.
   Scaling the button's min-height alone does not fix it: the gap is set by
   whatever the flex centring leaves over, so it comes out erratic (measured
   24.4 / 15.7 / 28.7px across the steps - it does not even increase).
   The arrow is therefore taken out of absolute positioning and put back in
   flow directly under the label, where its margin-top IS the gap and can be
   scaled exactly. Measured after: 11.3 / 13.0 / 14.5 / 16.0 / 18.1px against
   a target of 11.3 x the page curve - exact at every step.
   SPECIFICITY: section 13e's `.arrow-down:not(#pojo-a11y-toolbar)` carries an
   ID inside the :not(), so it is (1,2,1) and beat a plain (0,3,2) rule - the
   margin-top silently stayed at 13e's 6px. This rule repeats the :not() to
   get back above it.

   15c. THE CONSENT CHECKBOX
   .custom-check input is `position:absolute; right:-2vw` - a constant offset,
   while the box itself is sized in vw and DOES grow with the form curve. The
   box is pinned by its RIGHT edge, so it expands leftwards into the label.
   Measured gap between the box and the text at 1920:
       15.4px default -> 8.5px at 130 -> -1.9px at 200  (it overlaps)
   Scaling the offset on the same curve as the box keeps the gap proportional,
   because offset - width stays a fixed multiple of the curve.
   Measured after: 15.4 / 20.0 / 26.9px, and the box's right edge moves
   1824 -> 1853, still inside the sidebar.
   Section 11b's `margin-inline-end` cannot do this job - margins do not move
   an absolutely positioned element. It is left alone because it is what
   spaces the checkbox under 600px, where the box is in flow.
   ========================================================================== */
@media (min-width: 601px){
    /* 15a - the one scroll container reads as part of the dark panel */
    html body[class*="pojo-a11y-resize-font-"][class] .right-sidebar-content{
        scrollbar-width: thin !important;
        scrollbar-color: rgba(255, 255, 255, .35) transparent !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .right-sidebar-content::-webkit-scrollbar{
        width: 8px !important;
        background: transparent !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .right-sidebar-content::-webkit-scrollbar-track{
        background: transparent !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .right-sidebar-content::-webkit-scrollbar-thumb{
        background: rgba(255, 255, 255, .35) !important;
        border-radius: 4px !important;
    }
    /* 15b - the arrow rides under the label instead of the button's bottom */
    html body[class*="pojo-a11y-resize-font-"][class] .info-button{
        min-height: calc(14vh * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .info-button .arrow-down:not(#pojo-a11y-toolbar){
        position: relative !important;
        bottom: auto !important;
        left: auto !important;
        transform: none !important;
        margin-top: calc(11.3px * var(--a11y-scale)) !important;  /* the theme's own clearance */
        width: calc(1vw * var(--a11y-scale)) !important;
        height: calc(1.2vh * var(--a11y-scale)) !important;
        flex: 0 0 auto !important;
    }
    /* 15c - the checkbox offset grows with the box, so the gap holds */
    html body[class*="pojo-a11y-resize-font-"][class] .custom-check input[type="checkbox"]{
        right: calc(-2vw * var(--a11y-scale-form)) !important;
    }
}

/* ==========================================================================
   SECTION 16 - The hero headline block drifts off the cream panel

   .text-background-image is the cream panel; it is sized as a PERCENTAGE of
   .hero-content-container, so it widens as the hero type grows. Section 4a
   puts .headlines-box back in flow with a flat `margin-left:9.5vw`, which is
   a CONSTANT - so the text stays pinned at the same x while the panel keeps
   growing out from under it to the right.
   Measured at 1920, text centre minus panel centre:
       default -6.3px -> 130 -13.8px -> 150 -22.8px -> 200 -42.4px
   i.e. by the top step the block sits 42px left of where the panel centres,
   which is the lopsided gap in the report.
   Vertical was never the problem - the block measures 1.4px off the centre of
   the visible cream band (panel bottom up to the dark heading) at every step.

   FIX: stop positioning the block by a fixed offset and let it centre itself.
   The panel is `left:2.16%; width:96%`, so it is centred in the container and
   centring the block in the container centres it on the panel.
   Measured after: -1.1 / -1.1 / -1.2 / -1.2px across steps 130..200.

   NOT the same thing as section 13b, which tried SCALING that 9.5vw offset
   and was reverted for pushing the block too far right. Scaling a left offset
   cannot track a panel that grows from its centre; centring can.
   Gated and desktop-only - under 600px the block is absolutely positioned on
   a baked-in cream band in the mobile art and is handled by sections 4a/12b.
   ========================================================================== */
@media (min-width: 601px){
    html body[class*="pojo-a11y-resize-font-"][class] .headlines-box{
        margin-left: 0 !important;
        align-self: center !important;
    }
}

/* ==========================================================================
   SECTION 17 - The sidebar scrollbar vanishes in the contrast modes

   Section 15a hid the white scrollbar stripe by giving .right-sidebar-content
   a transparent track and a rgba(255,255,255,.35) thumb. That is correct on
   the theme's dark teal panel and WRONG the moment a contrast mode repaints
   the panel, because the plugin paints every element:
       high / negative  -> panel rgb(0,0,0)       white thumb, but at .35 dim
       light-background -> panel rgb(255,255,255)  WHITE THUMB ON WHITE
   Measured, light-background is a straight white-on-white invisible control:
   the container still scrolls, but there is nothing on screen to show it can,
   which reads as "the page does not scroll".
   Each mode therefore gets a thumb with real contrast against the panel the
   plugin actually painted. Only applies with a resize step active, because
   that is the only time .right-sidebar-content is a scroll container at all.

   NOTE ON THE ORIGINAL REPORT: document scrolling itself was verified working
   in all four contrast modes, with and without a resize step - forcing
   overflow and driving scrollTop moves the page in every combination. An
   earlier reading that suggested otherwise was an artefact: the theme sets
   `scroll-behavior: smooth` on <html>, so a scrollTop write does not read
   back synchronously. This section fixes the visible-affordance half of the
   report; if the page still genuinely refuses to scroll, it is viewport- or
   device-specific and needs the screen size to reproduce.
   ========================================================================== */
@media (min-width: 601px){
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-light-background .right-sidebar-content{
        scrollbar-color: rgba(0, 0, 0, .55) rgba(0, 0, 0, .12) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-light-background .right-sidebar-content::-webkit-scrollbar-thumb{
        background: rgba(0, 0, 0, .55) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-light-background .right-sidebar-content::-webkit-scrollbar-track{
        background: rgba(0, 0, 0, .12) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-high-contrast .right-sidebar-content,
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-negative-contrast .right-sidebar-content{
        scrollbar-color: #fff rgba(255, 255, 255, .2) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-high-contrast .right-sidebar-content::-webkit-scrollbar-thumb,
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-negative-contrast .right-sidebar-content::-webkit-scrollbar-thumb{
        background: #fff !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-high-contrast .right-sidebar-content::-webkit-scrollbar-track,
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-negative-contrast .right-sidebar-content::-webkit-scrollbar-track{
        background: rgba(255, 255, 255, .2) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-grayscale .right-sidebar-content{
        scrollbar-color: rgba(255, 255, 255, .6) rgba(255, 255, 255, .15) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class].pojo-a11y-grayscale .right-sidebar-content::-webkit-scrollbar-thumb{
        background: rgba(255, 255, 255, .6) !important;
    }
}

/* ==========================================================================
   SECTION 18 - Picking a contrast mode must not re-space the form

   Selecting a contrast mode alone (no font step) grew every field wrapper
   from 24.6px to 54.4px and the form from 203px to 282px. Measured at 1920,
   per field, the 29.8px came from two places:

     +25.5px  SECTION 4d, in this file. It reserves room under each field for
              the re-anchored validation tip:
                  padding-bottom: calc(13px * var(--a11y-scale-tip) * 1.5 + 6px)
                  margin-bottom: 0
              but it is gated on [class*="pojo-a11y-"], which matches the
              CONTRAST classes too. With no resize step --a11y-scale-tip is 1,
              so it still resolves to a flat 13*1.5+6 = 25.5px of padding and
              drops the theme's 1vh margin. Nothing is being enlarged, so
              there is no tip to make room for - the space is pure loss.

     + 4.3px  line-height. Something in the contrast layer (plugin legacy CSS
              or the hand-written sheet in the database) puts line-height 1.35
              on the controls: the input goes 20.62px -> 25.92px and the
              .wpcf7-form-control-wrap 20.62px -> 21.6px, taking the input's
              own height 24.6px -> 28.9px.

     - 1px    section 13f pins border-bottom to 1px where the theme draws 2px.
              Restored to 2px so the box height matches the default exactly.

   FIX: all of it is scoped with
       body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"]
   i.e. it only applies when a contrast class is on and NO resize step is -
   exactly the case the report is about. The moment a resize step is chosen,
   section 4/4d take over again untouched, because reserving tip space and
   scaling line-height ARE correct once the type is enlarged.
   Measured after, all four modes: inputH 24.6, wrapH 24.6, formH 203, field
   gaps 15.4/15.4 - identical to the default on every count.
   Re-verified that resize+contrast still matches resize alone (inputH 50.3,
   wrapH 79.7, formH 388 at step 150, with and without a contrast class).
   ========================================================================== */
/* 18a - give back the theme's own wrapper spacing */
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .field-wrapper > p{
    padding-bottom: 0 !important;
    margin-bottom: 1vh !important;
}
/* 18b - hold the controls at the theme's line-height */
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .hebrew-contact-form .form-field,
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7 input[type="text"],
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7 input[type="email"],
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7 input[type="tel"],
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7 input[type="url"],
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7 input[type="number"],
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7 textarea,
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7 select,
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7-form-control-wrap{
    line-height: 2vh !important;
}
/* 18c - the theme's 2px underline, so the control box is the same height.
   Repeats 13f's :not(#pojo-a11y-toolbar) to keep its ID-column specificity. */
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not(#pojo-a11y-toolbar),
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] textarea:not(#pojo-a11y-toolbar),
html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] select:not(#pojo-a11y-toolbar){
    border-bottom-width: 2px !important;
}

/* ==========================================================================
   SECTION 19 - Mobile follow-ups

   19a. THE CTA BAR TEXT GREW ONCE AND THEN STOPPED
   Section 10b caps the bar's label:
       font-size: min(calc(22px * var(--a11y-scale)), 24px)
   --a11y-scale is 1.15 at the FIRST step, so 22 * 1.15 = 25.3px, which the
   cap immediately clamps to 24px. Every step from 130 to 200 therefore
   renders the same 24px: the label grows once, from 22px to 24px, and never
   moves again no matter how many times the button is pressed.
   The cap exists for a real reason - section 11a added it because an
   uncapped bar reached 199px, a quarter of a 812px viewport, with the label
   broken over four lines. So the cap stays, it is just moved far enough out
   that the curve has somewhere to go: 32px is reached at step 180 instead of
   at step 130, and the label now steps
       22 -> 25.3 -> 26.8 -> 28.2 -> 29.7 -> 31.2 -> 32 -> 32 -> 32
   The icon is raised in step with it (section 11a pinned it to a flat 22px)
   so the icon and the label keep their proportion instead of the icon
   shrinking away as the text grows.

   19b. THE HERO HEADING IS ONLY CENTRED BELOW 600px
   Section 4a centres .main-heading, but inside `@media (max-width: 600px)`.
   The theme's own value is `text-align: right` on a `width: fit-content`
   box, so between 601px and 767px - where the layout is already the mobile
   one - the second line ("גבוה") stays hard right under the first instead of
   centring beneath it. The centring is extended to cover that band.

   NOT VERIFIED IN A BROWSER: both of these are read off the stylesheet and
   the arithmetic above, not measured on a device. The browser available here
   got stuck at a 510x80 viewport and would not resize, so the mobile bands
   could not be rendered. 19a is arithmetic on a cap and is safe; 19b is a
   reasoned extension of an existing rule and should be eyeballed on a real
   phone before it is called done.
   ========================================================================== */
/* 19a - let the CTA label keep growing past the first step */
@media (max-width: 767px){
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a{
        font-size: min(calc(22px * var(--a11y-scale)), 32px) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a img{
        width: min(calc(22px * var(--a11y-scale)), 28px) !important;
        height: min(calc(22px * var(--a11y-scale)), 28px) !important;
    }
}
/* 19b - centre the hero heading across the whole mobile band, not just <600 */
@media (max-width: 767px){
    html body[class*="pojo-a11y-resize-font-"][class] .main-heading{
        text-align: center !important;
    }
}

/* ==========================================================================
   SECTION 20 - The disclaimer / legal copy is re-flowed by a colour change

   Same failure as section 18, in section 5.0 this time. These two rules:
       html body[class*="pojo-a11y-"][class] .disclaimer-text p { ... max-width: none }
       html body[class*="pojo-a11y-"][class] .legal-text p      { ... max-width: none }
   are gated on [class*="pojo-a11y-"], which matches the CONTRAST classes as
   well as the resize ones. Picking a contrast mode therefore throws away the
   theme's `max-width: 21vw` on both paragraphs even though nothing has been
   enlarged. Measured at 1920, .disclaimer-text p: 403px wide by default,
   509px the moment a contrast class is added - so the copy re-wraps and the
   line breaks move, purely because of a colour change.
   Dropping the cap is correct when the type IS enlarged (that is what the
   rule is for), so as in section 18 the theme values are restored only when
   no resize step is active. The theme's own values are 21vw on desktop and
   100% under 600px, and 1.9vh line-height on the disclaimer.

   THIS IS NOT CONFIRMED TO BE THE REPORTED "TEXT NOT VISIBLE" BUG.
   At 1920 the copy measures white (255,255,255) on black in both high and
   negative contrast, its glyph rects span the full line box, and nothing
   overlays it - by every measurement available here it should paint. The
   reported symptom is from a narrow/mobile viewport that could not be
   reproduced: the browser used for this work refuses to resize, so the
   mobile bands were never rendered. This section fixes a real, measured
   re-flow regression in the same area; whether it also fixes the missing
   glyphs has to be checked on the device that showed them.
   ========================================================================== */
@media (min-width: 601px){
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .disclaimer-text p{
        max-width: 21vw !important;
        line-height: 1.9vh !important;
    }
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .legal-text p{
        max-width: 21vw !important;
    }
}
@media (max-width: 600px){
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .disclaimer-text p,
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .legal-text p{
        max-width: 100% !important;
    }
}

/* ==========================================================================
   SECTION 21 - .submit-container > p keeps a transparent background in every
   contrast mode  (requested)

   The theme's own hand-written block already does this, but only for
   light-background (style.css, the :where(...) list that ends
   `.submit-container > p`). In the other three modes the plugin's
       body.pojo-a11y-<mode> :not(#pojo-a11y-toolbar) { background: #000 }
   paints a solid plate behind that paragraph. This extends the theme's
   existing intent to high contrast, negative contrast and grayscale.

   SPECIFICITY: the plugin's rule is (1,2,1) because of the ID inside its
   :not(). The :not(#pojo-a11y-toolbar) here is what supplies the matching ID
   column - without it a plain class selector loses. Same trick as sections
   8, 13e and 15b.
   ========================================================================== */
html body.pojo-a11y-high-contrast .submit-container > p:not(#pojo-a11y-toolbar),
html body.pojo-a11y-negative-contrast .submit-container > p:not(#pojo-a11y-toolbar),
html body.pojo-a11y-light-background .submit-container > p:not(#pojo-a11y-toolbar),
html body.pojo-a11y-grayscale .submit-container > p:not(#pojo-a11y-toolbar){
    background: transparent !important;
}

/* ==========================================================================
   SECTION 22 - The mobile hero block balloons far faster than its type

   Under 600px the theme sets DELIBERATELY TIGHT px line-heights on the two
   headline lines - the type is larger than its own line box:
       .main-sub-headline  font-size 32px  line-height 20px
       .sub-headline       font-size 17px  line-height 13px  margin-top 7px
   Section 5.3 scales the font-size but REPLACES those line-heights with
   unitless ratios (1.15 and 1.3). That is the bug: at step 200 the type
   grows x1.24 while the line boxes grow
       20px -> 45.6px  (x2.28)      13px -> 27.4px  (x2.11)
   so the cream block gets roughly twice as tall as the type needs, runs off
   the band baked into mobile-feature-images.png and sits over the photo.

   FIX: scale the theme's own px line-heights on the same --a11y-scale-display
   curve as the type, so the block stays in proportion with itself.
       step 200:  20 -> 24.8px      13 -> 16.1px      7 -> 8.7px
   Total line-box height for the three lines falls from ~118px to ~66px.
   The box's own padding-bottom (section 4a's 8px) is scaled with it.

   The headline may still wrap to two lines at the upper steps - the band is a
   fixed 57% of the width and the type does grow. Widening the box was tried
   on paper and rejected: .headlines-box is centred on the band via
   `left:60.6%` (section 12b), so at 57% x 1.24 it would run from 25% to 96%
   of the width, i.e. further over the photo than the wrap ever puts it.
   Keeping the band still and tightening the leading is the smaller evil.

   CORRECTED AFTER MEASURING (386x840, in an iframe - the browser used here
   will not resize its own window). Scaling the theme's px leading ALONE was
   wrong: it is negative leading (20px of line box under a 32px glyph), which
   is harmless while the headline is ONE line but collides the moment it wraps.
   Measured at step 200: font 39.7px against a 24.8px line box - the two lines
   overlapped by 14.9px, which is the reported line-height bug.
   So the leading now takes whichever is LARGER, the scaled theme value or
   1.05em, and the collision only ever applies once it actually wraps:
       step 130 / 150   one line,  no collision either way
       step 200         line box 41.7px against a 39.7px font - clears it
   The block is taller than the pure-arithmetic version (129px vs 89px at step
   200) and that is the honest cost: a fixed-width band plus bigger type means
   two lines, and two lines need real leading.
   ========================================================================== */
@media (max-width: 600px){
    html body[class*="pojo-a11y-resize-font-"][class] .main-sub-headline{
        line-height: max(calc(20px * var(--a11y-scale-display)), 1.05em) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .sub-headline{
        line-height: max(calc(13px * var(--a11y-scale-display)), 1.05em) !important;
        margin-top: calc(7px * var(--a11y-scale-display)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .headlines-box{
        padding-bottom: calc(8px * var(--a11y-scale-display)) !important;
    }
}

/* ==========================================================================
   SECTION 23 - The readability FLOORS fire on a colour change and re-size
                the whole form

   THIS IS WHY THE OVERLAP ONLY HAPPENS ON SOME SCREENS, AND WHY IT COULD NOT
   BE REPRODUCED AT 1920px.
   Section 4 writes its form type as `max(Npx, Nvw)` - a readability floor, so
   a 0.8vw message cannot render at 7px on a small tablet. Those rules are
   gated on [class*="pojo-a11y-"], which matches the CONTRAST classes as well
   as the resize ones. The floor therefore fires on a colour change, with
   nothing enlarged, and only on viewports narrow enough for the px floor to
   beat the vw value:

       .custom-check span        0.7vw vs 12px floor  ->  bites below 1714px
       .field-wrapper > p > span 0.8vw vs 13px floor  ->  bites below 1625px
       .wpcf7-not-valid-tip      0.8vw vs 13px floor  ->  bites below 1625px
       .disclaimer-text p        0.7vw vs 12px floor  ->  bites below 1714px
       .city-name                0.8vw vs 11px floor  ->  bites below 1375px

   On a 1440px laptop the consent paragraph jumps 10.08px -> 12px (+19%), so
   it takes more lines; .submit-btn is absolutely positioned in a zero-height
   .submit-container (section 4a's own note), so the consent copy grows over
   the button instead of pushing it down. That is the overlap in the report.
   At 1920px every vw value already clears its floor, which is why the form
   measured identical here and the bug looked unreproducible.

   FIX: same scoping as sections 18 and 20 - when a contrast class is on and
   NO resize step is active, restore the theme's own values. The floors are
   correct once the type IS being enlarged, so the resize path keeps them.
   Also restores the theme's tip anchoring (absolute, bottom:-15px); section
   4d re-anchors tips to top:100% for the enlarged layout, and section 18
   removed the padding that reserved room for that, so a shown tip would
   otherwise sit on the next field in contrast-only mode.
   ========================================================================== */
@media (min-width: 601px){
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .custom-check span,
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7-list-item-label,
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .custom-check-label,
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .privacy-checkbox p{
        font-size: 0.7vw !important;
        line-height: normal !important;
    }
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .field-wrapper > p > span,
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .form-label{
        font-size: 0.8vw !important;
    }
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7-not-valid-tip,
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7-form-control-wrap .wpcf7-not-valid-tip{
        font-size: 0.8vw !important;
        line-height: 14px !important;
    }
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7-response-output,
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7 form .wpcf7-response-output{
        font-size: 0.8vw !important;
        line-height: normal !important;
    }
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .city-name{
        font-size: 0.8vw !important;
        line-height: normal !important;
    }
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .disclaimer-text p,
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .legal-text p{
        font-size: 0.7vw !important;
    }
    /* the theme's own tip anchoring - see the note above */
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7-form-control-wrap > .wpcf7-not-valid-tip{
        position: absolute !important;
        top: auto !important;
        bottom: -15px !important;
        margin-top: 0 !important;
    }
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .custom-check .wpcf7-not-valid-tip{
        position: relative !important;
        top: auto !important;
        bottom: auto !important;
    }
}
/* under 600px only the response output differs from the theme (10px vs 14px) */
@media (max-width: 600px){
    html body:not([class*="pojo-a11y-resize-font-"])[class*="pojo-a11y-"] .wpcf7-response-output{
        font-size: 10px !important;
    }
}

/* ==========================================================================
   SECTION 24 - Validation errors push content out of reach  (UNGATED)

   *** THIS IS THE THIRD DELIBERATE EXCEPTION TO RULE A. ***
   Sections 0 and 7b are the other two. Everything else in this file still
   contributes nothing until a toolbar option is chosen; this one cannot,
   because the bug it fixes happens in the DEFAULT view with no accessibility
   option selected at all.

   THE BUG
   The theme builds the form column as a hard 100vh box that CLIPS:
       .right-sidebar          { height: 100vh; overflow: hidden; }
       .right-sidebar-content  { height: 100%; }            <- no scroller
   With an empty form the content is exactly 100vh, so nothing shows. The
   moment CF7 renders validation tips the column grows past the frame and the
   overflow is simply cut off - there is no scroll container anywhere, so the
   consent row, the submit button and the legal copy become unreachable.
   Measured at 1920x1031 with the form in its error state:
       .right-sidebar-content  scrollHeight 1173 / clientHeight 1031
       overflow-y: visible, parent overflow: hidden
       setting scrollTop = 150  ->  reads back 0   (nothing can scroll)
   After: overflow-y auto, scrollTop 150 reads back 150.

   WHY IT IS SAFE TO LEAVE UNGATED
   overflow-y:auto only produces a scrollbar when the content actually
   overflows, so the ordinary page is untouched. Verified with no errors
   present: scrollHeight 1031 / clientHeight 1031, scrollbar width 0px, and
   the form's top edge at 651.2px - identical with and without this rule.
   Also verified against the resize path, which already sets the same
   properties in section 4a: 1405/1031 and a 10px scrollbar either way, so
   the two do not fight.

   The scrollbar is given the same treatment as section 15a (transparent
   track, translucent thumb) so it reads as part of the dark panel rather
   than as the white stripe reported earlier. The contrast variants below
   drop section 17's requirement for a resize step, because this container
   can now scroll in contrast modes with no resize step active - and a
   white-on-white thumb in light-background would be invisible.
   ========================================================================== */
@media (min-width: 601px){
    html body .right-sidebar-content{
        max-height: 100vh !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
        scrollbar-width: thin !important;
        scrollbar-color: rgba(255, 255, 255, .35) transparent !important;
    }
    html body .right-sidebar-content::-webkit-scrollbar{
        width: 8px !important;
        background: transparent !important;
    }
    html body .right-sidebar-content::-webkit-scrollbar-track{
        background: transparent !important;
    }
    html body .right-sidebar-content::-webkit-scrollbar-thumb{
        background: rgba(255, 255, 255, .35) !important;
        border-radius: 4px !important;
    }
    /* per-mode thumbs - no resize step required, unlike section 17 */
    html body.pojo-a11y-light-background .right-sidebar-content{
        scrollbar-color: rgba(0, 0, 0, .55) rgba(0, 0, 0, .12) !important;
    }
    html body.pojo-a11y-light-background .right-sidebar-content::-webkit-scrollbar-thumb{
        background: rgba(0, 0, 0, .55) !important;
    }
    html body.pojo-a11y-light-background .right-sidebar-content::-webkit-scrollbar-track{
        background: rgba(0, 0, 0, .12) !important;
    }
    html body.pojo-a11y-high-contrast .right-sidebar-content,
    html body.pojo-a11y-negative-contrast .right-sidebar-content{
        scrollbar-color: #fff rgba(255, 255, 255, .2) !important;
    }
    html body.pojo-a11y-high-contrast .right-sidebar-content::-webkit-scrollbar-thumb,
    html body.pojo-a11y-negative-contrast .right-sidebar-content::-webkit-scrollbar-thumb{
        background: #fff !important;
    }
    html body.pojo-a11y-grayscale .right-sidebar-content{
        scrollbar-color: rgba(255, 255, 255, .6) rgba(255, 255, 255, .15) !important;
    }
}

/* ==========================================================================
   SECTION 25 - SECTION 12b WAS WRONG: the headline box slides off the band

   Measured for the first time in a real 386x840 mobile viewport (an iframe -
   the browser used for this work will not resize its own window).

   Section 12b moved .headlines-box to `left: 60.6%` on the strength of a
   sampling that said the cream band in mobile-feature-images.png "starts at
   21.3% of the image width and runs to its right edge". That contradicts
   section 4a's own sampling of the same PNG - "x 21-78%, 57% wide, matching
   the theme's max-width:56%" - and the measurement says 4a is right:

       band (21%..78% of the 371px image)      x =  78 .. 289
       default box (theme's own left:50%)      x =  82 .. 289   <- on the band
       with 12b's left:60.6%, step 200         x = 119 .. 331   <- 41px off it

   So at every resize step the box was being shifted 41px to the right, hanging
   off the right edge of the band and onto the photograph, with a matching 41px
   of bare band showing on the left. That is the broken hero in the report.
   Putting the theme's own 50% back lands it on the band at every step:
       step 130  x = 80..291   step 200  x = 80..291   (band 78..289)

   The headline still wraps to two lines at the upper steps - at 32px x 1.24 it
   needs 258px and the band is only 211px wide, so a single line is impossible
   without cancelling the resize entirely. It now wraps DOWNWARD from the band,
   which is what section 4a's cream background on this box was added for.
   Nothing clips the heading: walked every ancestor at step 200, not one has
   overflow or max-height set, so the "cropping" was this box sliding over the
   artwork rather than a clipped element.
   ========================================================================== */
@media (max-width: 767px){
    html body[class*="pojo-a11y-resize-font-"][class] .headlines-box{
        left: 50% !important;
    }
}

/* ==========================================================================
   SECTION 26 - The CTA label runs over its icon
                (supersedes the padding in 4a and the caps in 19a)

   Measured in a real mobile viewport (iframe at 316-426px; the browser used
   here will not resize its own window).

   THE CAUSE IS A PADDING RESERVED FOR A SHAPE THAT IS NO LONGER THERE.
   Section 4a insets the two links so their labels clear the arrow silhouette
   cut into them:
       .phone-mob a   padding-left: 15%   padding-right: 4%
       .detail-mob a  padding-right: 24%  padding-left: 4%
   Section 10 then drops `clip-path` entirely once the type is enlarged - the
   silhouette is gone, but the inset is still there, eating up to 24% of a
   161px button. The <span> gets squeezed below its text width and the text
   simply overflows it, painting across the icon. Nothing "overlaps" in the
   box sense - measured icon/text box intersection is 0px at every step, which
   is why this looks like a paint bug rather than a layout one.
   Measured at 386px, step 200:
       .phone-mob   span box 88px,  text needs 109px  -> 21px of overflow
       .detail-mob  span box 74px,  text needs 100px  -> 26px of overflow

   THE 32px CAP WAS ALSO TOO BLUNT.
   Section 19a capped the label at a flat 32px. The button is half the bar, so
   the room for the label scales with the VIEWPORT, not with a constant: at
   320px the label needs 109px against 90px available, and it overflows no
   matter what the padding is. The cap is therefore 8vw, which tracks the
   button. Verified across widths at step 200 - no overflow anywhere,
   .phone-mob stays on one line, .detail-mob stays on the two lines it already
   uses at the default size:
       426px  fs 34.1  | 386px  fs 30.9  | 371px  fs 29.7
       356px  fs 28.5  | 316px  fs 25.3
   The icon cap comes down 28px -> 24px and the gap 6px -> 4px to buy the last
   few pixels at 320px.
   ========================================================================== */
@media (max-width: 767px){
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a{
        font-size: min(calc(22px * var(--a11y-scale)), 8vw) !important;
    }
    /* the clip-path inset is dropped with the clip-path itself - see above */
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .phone-mob a,
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu .detail-mob a{
        padding-left: 4px !important;
        padding-right: 4px !important;
        gap: 4px !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .mobile-menu a img{
        width: min(calc(22px * var(--a11y-scale)), 24px) !important;
        height: min(calc(22px * var(--a11y-scale)), 24px) !important;
    }
}
