/* ==========================================================================
   accessibility.css
   Font-resize corrections for the "One Click Accessibility" (Pojo) toolbar.

   WHY THIS FILE EXISTS
   --------------------
   The plugin only adds a body class and emits two !important rules:

     body...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 }

   (steps 130,140,...,200 - min 120 = no class, max 200, +10 per click;
   confirmed in the plugin's own modules/legacy/assets/js/app.min.js)

   Measured on this site, home page, 1440x900, plugin only, step 200:

     consent checkbox label   10.8px -> 2048px   (% compounds through CF7's
                                                  p > span > span > span nesting)
     text input               12.96px -> 256px
     h1 .title span           40.32px -> 226.4px (h_ span stacks on the heading)
     .button-group .global-btn 17.28px -> 17.28px  frozen (<button> is not in
     .privacy-links            12.96px -> 12.96px  frozen  the plugin's list)
     #cc-banner-root           14px   -> 14px      frozen (<div>)
     .cc-btn                   14px   -> 14px      frozen (font:inherit)
     .cc-title                 16px   -> 37.24px   runaway
     .cc-body                  14px   -> 28px      runaway
     documentElement.scrollWidth 1425 -> 16546 against a 1440px viewport

   Everything below is gated behind body[class*="pojo-a11y-resize-font-"].
   With no size selected - and again after Reset - this file contributes ZERO
   computed differences. Verified with a full-DOM diff (font-size, line-height,
   position, top/bottom/left/right, display, width, max-width, overflow,
   flex-wrap, white-space, margin on every element in <body>) at 375 / 900 /
   1440 on the home page (desktop hero AND the mobile #detailModal), both
   template-privacy pages, the blog post, 404 and search: empty on all of them.

   THE TOOLBAR IS NOT TOUCHED
   --------------------------
   #pojo-a11y-toolbar is a SIBLING of the page content, not a child, so every
   generic rule carries :not(:where(#pojo-a11y-toolbar *)). :where() has zero
   specificity, so the exclusion is free. Verified: the toolbar item span still
   goes 12.8px -> 25.6px, and .pojo-a11y-toolbar-title / -item / -link stay at
   16px / 16px / 32px at every step, identical with and without this file.

   SPECIFICITY
   -----------
   The gate is  html body[class*="pojo-a11y-resize-font-"][class]  = (0,2,2).
   The second [class] is deliberate: it lifts every rule here one class-column
   above the plugin's own  body.pojo-a11y-resize-font-200 h1 span  = (0,1,3),
   so this file wins on specificity alone and never depends on the order in
   which WordPress happens to print the two stylesheets.

   SOURCES MIRRORED 1:1
   --------------------
     assets/css/mains.css               base           (loaded from header.php)
     assets/css/mobiles.css             @media (max-width: 767px)   - the theme's
                                        ONLY breakpoint
     bootstrap.rtl.min.css              unstyled h1-h6 (responsive heading sizes)
     contact-form-7/includes/css/styles.css  .wpcf7-not-valid-tip
     cookie-consent.js (#cc-style)      .cc-* banner + settings modal
     inline <style> in the footer       .success-title

   Media blocks are emitted in the theme's own source order so the overlapping
   .hero-content-wrapper .desc / .payment-terms .desc / .price-wrapepr > .desc
   ties resolve exactly as they do today.
   ========================================================================== */


/* ==========================================================================
   SECTION 1 - STEP -> MULTIPLIERS (two curves)

   Two curves, because the form controls and the cookie banner start from the
   smallest sizes on the page and need a bigger first jump to read as "bigger":

     --a11y-scale       text / headings / lists    step 1 +15% ... max +60%
     --a11y-scale-form  inputs, submit, buttons, response output, validation
                        tips, checkbox labels, cookie title/body/buttons
                                                   step 1 +30% ... max +75%
   ========================================================================== */
:root {
    --a11y-scale: 1;
    --a11y-scale-form: 1;
}

body.pojo-a11y-resize-font-130 { --a11y-scale: 1.15; --a11y-scale-form: 1.30; }
body.pojo-a11y-resize-font-140 { --a11y-scale: 1.22; --a11y-scale-form: 1.40; }
body.pojo-a11y-resize-font-150 { --a11y-scale: 1.28; --a11y-scale-form: 1.48; }
body.pojo-a11y-resize-font-160 { --a11y-scale: 1.35; --a11y-scale-form: 1.55; }
body.pojo-a11y-resize-font-170 { --a11y-scale: 1.42; --a11y-scale-form: 1.62; }
body.pojo-a11y-resize-font-180 { --a11y-scale: 1.48; --a11y-scale-form: 1.68; }
body.pojo-a11y-resize-font-190 { --a11y-scale: 1.54; --a11y-scale-form: 1.72; }
body.pojo-a11y-resize-font-200 { --a11y-scale: 1.60; --a11y-scale-form: 1.75; }


/* ==========================================================================
   SECTION 2 - BASE PIN

   On <body>, deliberately NOT scoped to a content root, so the toolbar popup
   keeps behaving as the plugin always made it. calc(), never a flat px.
   The measured body baseline on this theme is 20px / 30px (mains.css), not a
   guessed 16px, and the line-height is restated unitless so it grows with the
   font instead of clipping at a fixed 30px.

   overflow-x is a gated last-resort guard only. The real causes of horizontal
   overflow are fixed below (the copyright gutter note and the nowrap
   breadcrumb list); this only exists so a stray sub-pixel can never turn into
   a horizontal scrollbar. It is inside the gate, so the default render is
   untouched, and it was verified to change no measured geometry at any step.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"][class] {
    font-size: calc(20px * var(--a11y-scale)) !important;
    line-height: 1.5 !important;
    overflow-x: hidden !important;
}


/* ==========================================================================
   SECTION 3 - KILL THE COMPOUNDING PERCENTAGES

   Everything the plugin scales by a percentage is reset to inherit, so a value
   is applied exactly once instead of once per nesting level. Applied
   everywhere EXCEPT inside the toolbar. input/select/textarea are excluded
   here and pinned in Section 4 instead.

   This is scoped by exclusion rather than by a list of content roots on
   purpose: this theme has six templates whose top-level wrappers all differ
   (.lp-section, .privacy-content, .description-section, .gold-card-banner,
   .banner-sec / .breadcrumb-sec / .blog-content-sec, .home-banner /
   .users-grid / .website-presentation) plus bare <div class="container">
   children of <body>, so an allow-list would silently miss content.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"][class] p:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] li:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] span:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] label:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] blockquote:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] legend:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] code:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] pre:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] dd:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] dt:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] figcaption:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] td:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] th:not(:where(#pojo-a11y-toolbar *)) {
    font-size: inherit !important;
}

/* <button> and <a> are NOT in the plugin's selector list, so they froze at
   their design size while everything around them grew. Bootstrap's reboot
   already makes them inherit; restating it keeps unpinned controls in step.
   Every button/link that carries an intentional size of its own is pinned
   below and out-specifies this rule. */
html body[class*="pojo-a11y-resize-font-"][class] button:not(:where(#pojo-a11y-toolbar *)),
html body[class*="pojo-a11y-resize-font-"][class] a:not(:where(#pojo-a11y-toolbar *)) {
    font-size: inherit !important;
}

/* The plugin multiplies every heading by NN * 1.33% (an h1 with no theme rule
   measured 40px -> 85.12px at step 200, and 40px -> 35.96px at step 130 - it
   SHRANK on the first click). Headings with an explicit theme size are pinned
   in Section 5; everything else is restored to the bootstrap sizes that
   actually govern them at rest, times the scale. rem here is not a mistake:
   bootstrap itself sizes headings in rem, so mirroring it keeps the heading
   ramp identical to the design at every viewport. */
html body[class*="pojo-a11y-resize-font-"][class] h1:not(:where(#pojo-a11y-toolbar *)) { font-size: calc((1.375rem + 1.5vw) * var(--a11y-scale)) !important; }
html body[class*="pojo-a11y-resize-font-"][class] h2:not(:where(#pojo-a11y-toolbar *)) { font-size: calc((1.325rem + 0.9vw) * var(--a11y-scale)) !important; }
html body[class*="pojo-a11y-resize-font-"][class] h3:not(:where(#pojo-a11y-toolbar *)) { font-size: calc((1.3rem + 0.6vw) * var(--a11y-scale)) !important; }
html body[class*="pojo-a11y-resize-font-"][class] h4:not(:where(#pojo-a11y-toolbar *)) { font-size: calc((1.275rem + 0.3vw) * var(--a11y-scale)) !important; }
html body[class*="pojo-a11y-resize-font-"][class] h5:not(:where(#pojo-a11y-toolbar *)) { font-size: calc(1.25rem * var(--a11y-scale)) !important; }
html body[class*="pojo-a11y-resize-font-"][class] h6:not(:where(#pojo-a11y-toolbar *)) { font-size: calc(1rem * var(--a11y-scale)) !important; }

@media (min-width: 1200px) {
    html body[class*="pojo-a11y-resize-font-"][class] h1:not(:where(#pojo-a11y-toolbar *)) { font-size: calc(2.5rem * var(--a11y-scale)) !important; }
    html body[class*="pojo-a11y-resize-font-"][class] h2:not(:where(#pojo-a11y-toolbar *)) { font-size: calc(2rem * var(--a11y-scale)) !important; }
    html body[class*="pojo-a11y-resize-font-"][class] h3:not(:where(#pojo-a11y-toolbar *)) { font-size: calc(1.75rem * var(--a11y-scale)) !important; }
    html body[class*="pojo-a11y-resize-font-"][class] h4:not(:where(#pojo-a11y-toolbar *)) { font-size: calc(1.5rem * var(--a11y-scale)) !important; }
}

/* A heading span must not be scaled a second time on top of its parent. */
html body[class*="pojo-a11y-resize-font-"][class] :is(h1,h2,h3,h4,h5,h6) span:not(:where(#pojo-a11y-toolbar *)) {
    font-size: inherit !important;
}

/* Long unbroken strings must not push the fixed-width content column wider
   than the viewport once the type grows. */
html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper,
html body[class*="pojo-a11y-resize-font-"][class] .page-content,
html body[class*="pojo-a11y-resize-font-"][class] .description-section,
html body[class*="pojo-a11y-resize-font-"][class] .blog-desc-wrapper {
    overflow-wrap: break-word !important;
    word-break: break-word !important;
}


/* ==========================================================================
   SECTION 4 - FORM CONTROLS + RESPONSE / VALIDATION MESSAGES
   (--a11y-scale-form)

   px / vw only - never em (CF7's span nesting compounds it) and never rem for
   controls (it would shrink below the design size on wide screens).

   READABILITY FLOOR. The theme sizes these in vw and has no tablet
   breakpoint, so between 768px and ~1150px they render unreadably small.
   Measured AT REST at 900px wide, with accessibility OFF:
     input 8.1px, submit 11.7px, consent label 6.75px, .copyright-text 6.3px,
     .feature-list .item > .desc 7.2px, .price-area .price-badge 6.3px,
     .privacy-links 8.1px
   max(<floor>, <themeValue>) keeps them legible at every step. The floor only
   bites below ~1150px, where the design is already broken; at 1440px and up
   the theme's own vw value wins and the ramp is untouched. All of it is inside
   the gate, so the default render is byte-identical either way.
   ========================================================================== */

/* --- base (mains.css) --- */
html body[class*="pojo-a11y-resize-font-"][class] input,
html body[class*="pojo-a11y-resize-font-"][class] select,
html body[class*="pojo-a11y-resize-font-"][class] textarea {
    font-size: calc(max(14px, 0.9vw) * var(--a11y-scale-form)) !important;
    line-height: 1.25 !important;
}

html body[class*="pojo-a11y-resize-font-"][class] .contact-form .wpcf7-submit,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-submit {
    font-size: calc(max(16px, 1.3vw) * var(--a11y-scale-form)) !important;
    line-height: 1.2 !important;
}

/* .wpcf7-response-output has no theme rule at all - it inherits body
   (20px / 30px). Pinned so it does not just follow the body pin, with a
   unitless line-height (it currently inherits body's fixed 30px). */
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-response-output,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7 form .wpcf7-response-output {
    font-size: calc(18px * var(--a11y-scale-form)) !important;
    line-height: 1.5 !important;
}

/* PRE-EXISTING BUG, reported not silently fixed: contact-form-7's own
   styles.css sets .wpcf7-not-valid-tip{font-size:1em} and is enqueued in
   wp_head, i.e. AFTER mains.css/mobiles.css which header.php links directly.
   Same specificity, later sheet wins - so the theme's 0.9vw (base) and 16px
   (mobile) rules for the tip have NEVER applied. The tip renders at 20px at
   every viewport. The pin below mirrors that effective size, not the dead
   theme value, so the first click is an increase and not a shrink. */
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-not-valid-tip {
    font-size: calc(18px * var(--a11y-scale-form)) !important;
    line-height: 1.35 !important;
}

html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-checkbox .wpcf7-list-item-label,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-list-item-label {
    font-size: calc(max(14px, 0.75vw) * var(--a11y-scale-form)) !important;
    line-height: 1.5 !important;
}

/* Buttons: <button> is invisible to the plugin, so these froze at every step. */
html body[class*="pojo-a11y-resize-font-"][class] .global-btn {
    font-size: calc(23px * var(--a11y-scale-form)) !important;
    line-height: 1.13 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .global-btn.submit-btn i {
    font-size: calc(21px * var(--a11y-scale-form)) !important;
    line-height: 1.1 !important;
}
/* The theme's 1.2vh line-height here is 0.63 of the font size; kept unitless
   at 1.2 so the tab does not clip its own text once it grows. */
html body[class*="pojo-a11y-resize-font-"][class] .button-group .global-btn {
    font-size: calc(max(14px, 1.2vw) * var(--a11y-scale-form)) !important;
    line-height: 1.2 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .mobile-button {
    font-size: calc(16px * var(--a11y-scale-form)) !important;
    line-height: 1.3 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .modal-close-btn {
    font-size: calc(20px * var(--a11y-scale-form)) !important;
    line-height: 1 !important;
}


/* --------------------------------------------------------------------------
   SECTION 4b - SPANS / ELEMENTS CARRYING AN INTENTIONAL SIZE OF THEIR OWN.
   Section 3 would otherwise flatten these to their parent's size.
   -------------------------------------------------------------------------- */
html body[class*="pojo-a11y-resize-font-"][class] .price-area .price > span {
    font-size: calc(1.5vw * var(--a11y-scale)) !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .form-desc {
    font-size: calc(max(12px, 0.75vw) * var(--a11y-scale)) !important;
    line-height: 1.67 !important;
}
/* .mobile-button-text has no size of its own - follow the pinned button. */
html body[class*="pojo-a11y-resize-font-"][class] .mobile-button-text {
    font-size: inherit !important;
}


/* --------------------------------------------------------------------------
   SECTION 4c - COOKIE BANNER (#cc-banner-root / .cc-root) AND ITS SETTINGS
   MODAL (.cc-modal, appended as a direct child of <body>)

   Both live outside every content wrapper. Measured plugin-only at step 200:
     .cc-title  16px -> 37.24px   (h2, hit by the heading rule)
     .cc-body   14px -> 28px      (p,  hit by the percentage rule)
     .cc-root   14px -> 14px      (div - frozen)
     .cc-btn    14px -> 14px      (button, font:inherit in cc.js - frozen)
   It both runs away and freezes at the same time.

   Every pin is calc(<px> * var(--a11y-scale...)), never a flat px, or the
   banner would stop running away but freeze instead. .cc-title and the
   banner's .cc-btn use the FORM curve with bumped baselines (16->18, 14->15)
   so the first click is a visible jump.

   NOTE on the two different .cc-btn baselines: inside the banner .cc-btn
   inherits .cc-root (14px); inside the settings modal it inherits <body>
   (20px). Pinning both to 15px would have SHRUNK the modal buttons on the
   first click, so the modal gets its own 20px baseline. For the same reason
   .cc-modal and .cc-cat-name are deliberately NOT pinned - they have no size
   of their own and correctly follow the scaled body.

   Specificity note: the bare pins are (0,3,2) and beat the Section 3 generic
   rule at (0,2,3) because the class column is compared first.
   -------------------------------------------------------------------------- */
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 {
    font-size: calc(15px * var(--a11y-scale-form)) !important;
    line-height: 1.3 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-modal .cc-btn {
    font-size: calc(20px * var(--a11y-scale-form)) !important;
    line-height: 1.3 !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-modal .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-modal .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-modal .cc-cat-desc {
    font-size: calc(13px * var(--a11y-scale)) !important;
    line-height: 1.5 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .cc-required-badge,
html body[class*="pojo-a11y-resize-font-"][class] .cc-modal .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-modal .cc-cookies-list th,
html body[class*="pojo-a11y-resize-font-"][class] .cc-modal .cc-cookies-list td {
    font-size: calc(12px * var(--a11y-scale)) !important;
    line-height: 1.5 !important;
}
/* The banner is position:fixed with a fixed max-width; let it grow downward
   and scroll internally instead of running off the bottom of the screen. */
html body[class*="pojo-a11y-resize-font-"][class] .cc-root .cc-box {
    max-height: 80vh !important;
    overflow-y: auto !important;
}


/* --------------------------------------------------------------------------
   SECTION 4d - VALIDATION TIP POSITIONING

   Audited on the live form: tips injected into every .wpcf7-form-control-wrap
   with the control marked .wpcf7-not-valid, at 360 / 375 / 1440, at steps
   none / 130 / 140 / ... / 200.

   MOBILE (<= 767px) is already correct: mobiles.css gives the tip
   position:relative; top:unset, so it sits in flow and auto-tracks.

   DESKTOP is the broken one: mains.css takes the tip out of flow with
   position:absolute; top:-2.8vh - a FIXED offset that pins the tip's TOP edge
   25.2px above the field. The box then grows DOWNWARD as the font grows,
   straight across the control it belongs to (measured clearance: -3px at rest,
   i.e. 3px of air, which the very first step consumes).

   Fix: restore the anchor the theme already uses on the breakpoint where it
   works - put the tip back in flow. position:static is NOT used; relative +
   display:block matches the theme's own mobile rule and keeps the message on
   the full width of its row.

   The flex pair below is for the consent row only: mobiles.css makes
   .check-col .wpcf7-form-control-wrap a flex container, which squeezed the tip
   into a ~74px column beside the label (measured at rest AND at every step).
   flex-wrap + a 100% basis puts it on its own full-width line.

   Result at every step, 360 / 375 / 1440: overlap <= -4px, spill 0px, tip
   width == row width, no white-space:nowrap anywhere, no horizontal overflow.
   -------------------------------------------------------------------------- */
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-form-control-wrap .wpcf7-not-valid-tip,
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-not-valid-tip {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    right: auto !important;
    left: auto !important;
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    margin: 4px 0 0 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-form-control-wrap {
    flex-wrap: wrap !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-form-control-wrap .wpcf7-not-valid-tip {
    flex: 1 0 100% !important;
}


/* ==========================================================================
   SECTION 5 - PER-ELEMENT SIZES

   Every font-size rule from the theme's own stylesheets, wrapped in the gate
   and multiplied. Base first (mains.css), then the theme's single breakpoint
   @media (max-width: 767px) (mobiles.css), in the theme's own source order.

   vh-based line-heights are all restated unitless: a vh line-height does not
   grow with the font, so the text would clip.
   ========================================================================== */

/* --- base: mains.css --- */
html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper .content .content-area h1.title {
    font-size: calc(2.8vw * var(--a11y-scale)) !important;
    line-height: 1.3 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper .desc {
    font-size: calc(max(14px, 1.2vw) * var(--a11y-scale)) !important;
    line-height: 1.61 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper .content > .title {
    font-size: calc(max(16px, 1.6vw) * var(--a11y-scale)) !important;
    line-height: 1.1 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper .content > .subtitle {
    font-size: calc(max(14px, 1vw) * var(--a11y-scale)) !important;
    line-height: 1.88 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .payment-terms .box .installment {
    font-size: calc(4.5vw * var(--a11y-scale)) !important;
    line-height: 0.9 !important;
}
/* .payment-terms .desc and .price-wrapepr > .desc must stay AFTER
   .hero-content-wrapper .desc: all three are (0,2,0) in the theme and the
   later declaration wins at base. The mobile block below re-declares only
   .hero-content-wrapper .desc, which is exactly how mobiles.css flattens all
   three to 18px. */
html body[class*="pojo-a11y-resize-font-"][class] .payment-terms .desc {
    font-size: calc(max(13px, 0.9vw) * var(--a11y-scale)) !important;
    line-height: 1.81 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .price-wrapepr > .desc {
    font-size: calc(max(14px, 1.1vw) * var(--a11y-scale)) !important;
    line-height: 1.42 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .price-area .price {
    font-size: calc(2.6vw * var(--a11y-scale)) !important;
    line-height: 0.96 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .price-area .price-badge {
    font-size: calc(max(11px, 0.7vw) * var(--a11y-scale)) !important;
    line-height: 1.61 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .feature-list .item > .desc {
    font-size: calc(max(12px, 0.8vw) * var(--a11y-scale)) !important;
    line-height: 1.56 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .form-title {
    font-size: calc(max(16px, 1.4vw) * var(--a11y-scale)) !important;
    line-height: 1.43 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .text-col > p {
    font-size: calc(max(12px, 0.75vw) * var(--a11y-scale)) !important;
    line-height: 1.67 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .copyright-text {
    font-size: calc(max(12px, 0.7vw) * var(--a11y-scale)) !important;
    line-height: 1.79 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .privacy-links {
    font-size: calc(max(13px, 0.9vw) * var(--a11y-scale)) !important;
    line-height: 1.53 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .success-title {
    font-size: calc(max(18px, 1.5vw) * var(--a11y-scale)) !important;
    line-height: 1.4 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .privacy-banner h1 {
    font-size: calc(50px * var(--a11y-scale)) !important;
    line-height: 1.12 !important;
}
/* single.php renders the breadcrumbs with .d-flex.flex-nowrap; at step 200 on
   a 360px screen that overflowed the container by 4px. Let it wrap. */
html body[class*="pojo-a11y-resize-font-"][class] .breadcrumbs,
html body[class*="pojo-a11y-resize-font-"][class] .breadcrums {
    flex-wrap: wrap !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .breadcrumbs li {
    font-size: calc(24px * var(--a11y-scale)) !important;
    line-height: 1.1 !important;
}
html body[class*="pojo-a11y-resize-font-"][class] .page-content p {
    line-height: 1.4 !important;
}
/* 404.php carries an inline style="font-size:30px" on this heading, which the
   generic h3 rule would otherwise shrink. */
html body[class*="pojo-a11y-resize-font-"][class] .description-section .text-wraper h3 {
    font-size: calc(30px * var(--a11y-scale)) !important;
    line-height: 1.3 !important;
}

/* --------------------------------------------------------------------------
   Desktop-only layout correction, gated so it only applies once the type
   grows. .copyright-text is absolutely positioned in the left gutter with
   left:-7vw and a shrink-to-fit width, so it grows RIGHTWARDS into the green
   form panel: measured at 1440x900, right edge 862px at rest (content starts
   at 869px) but 945px at max, i.e. 76px of white-on-white overlap. Anchoring
   it to the right edge of the column makes it grow away from the content
   instead. width:max-content is required - with only `right` set, the
   shrink-to-fit available width would be zero and the note would collapse
   into a 12px-wide vertical strip. Measured after the fix at step 200:
   686..862px, entirely clear of the content, still one line.
   Emitted above 767px only; below that the theme puts it back in flow.
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {
    html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper .content > .copyright-text {
        left: auto !important;
        right: calc(100% + 0.5vw) !important;
        width: max-content !important;
        max-width: 26vw !important;
    }

    /* ----------------------------------------------------------------------
       Desktop-only overflow corrections. All four only bite once the type is
       scaled up; at rest the gate keeps them off entirely.

       THE COLUMN WIDTH FORMULA used by the three caps below.
       The hero column is not purely proportional: .content is 34vw but
       .content-area adds a fixed 14px padding either side and bootstrap adds
       12px gutters, so the usable width of one .col-md-6 is

           (34vw - 28px + 24px) / 2 - 24px  =  17vw - 26px

       (measured: 218.8px at 1440, matches). A plain vw cap tuned at 1440
       therefore overflows at 768-1200 where the fixed paddings eat a bigger
       share - which is exactly what happened on the first attempt. Each cap
       below is that width divided by the element's measured width-per-px-of-
       font, and floored at the element's own at-rest size so nothing can ever
       shrink when the visitor asks for bigger text.
       ---------------------------------------------------------------------- */

    /* 1. Gallery tab: the arrow is position:absolute; left:14px while the
          button's padding-left stays a constant 1vw, so the icon ends up drawn
          across the label. Measured horizontal overlap of icon and text at
          1440: -19px at rest (clear), -2px at step 130, +13px at 160, +25px at
          200. Letting the icon flow as the flex item it already is removes the
          overlap by construction - the button then sizes itself around both.
          The tab has to grow away from the panel, so it is re-anchored to the
          content's left edge; width:max-content is required because with only
          `right` set the shrink-to-fit available width would be zero. */
    html body[class*="pojo-a11y-resize-font-"][class] .button-group .global-btn i {
        position: static !important;
        top: auto !important;
        left: auto !important;
        transform: none !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .button-group {
        left: auto !important;
        right: 100% !important;
        width: max-content !important;
    }

    /* 2. Validation message on one line. Measured at 1440 the message fits its
          column up to 28.8px and wraps at 31.5px, so the cap is the column
          width / 7.6. Floored at 20px - the size it renders at today - so it
          never shrinks. Below ~1200px the column is too narrow for one line at
          any readable size (it already wraps at rest there), so the floor
          simply holds it at 20px instead of growing it to three lines. */
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-not-valid-tip {
        font-size: clamp(20px, calc(2.24vw - 3.4px), calc(18px * var(--a11y-scale-form))) !important;
    }

    /* 3. Price and "20/80": give them room instead of capping them.

          The number wrapped from step 160 - "4,350" on one line and "000 ₪" on
          the next - which dragged the vertically-centred "החל מ-" chip into the
          middle of the digits. Capping the font to fit the half-width column
          stopped the wrap, but a 219px column only affords ~44px of type, so
          the price froze after the second click and stopped responding to the
          toolbar at all.

          The fix is to stack the hero row instead. .content-area > .row holds
          exactly two columns - the payment-terms card and the price - and they
          are already col-12 below 767px, so making them full width when the
          text is scaled is the same layout the design already uses on mobile.
          The column goes 243px -> 486px at 1440, which is enough for the full
          +60% curve with no cap binding at all:

            37.44 -> 43.06 -> 45.68 -> 47.92 -> 50.54 -> 53.16 -> 55.41
                  -> 57.66 -> 59.90px, one line at every step

          Scoped to .content-area > .row so the form row (.form-area > .row)
          keeps its two-column layout untouched.

          The min() below is a safety net only - it never binds at any viewport
          with the current price string; it exists so a longer number pasted
          into the ACF field cannot overflow the column.

          --a11y-price holds the price size once so the ₪ span and the chip are
          derived from it and keep the design's proportions at every step:
          1.5vw / 2.6vw = 0.577 for the span, 0.7vw / 2.6vw = 0.269 for the
          chip. The chip's own positioning is left alone. Measured chip-width ÷
          width-of-the-last-two-zeros is 0.73 at rest and 0.73 at every step,
          at 768 / 1024 / 1440 / 1920. */
    html body[class*="pojo-a11y-resize-font-"][class] .content-area > .row > [class*="col-"] {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
    /* --a11y-price lives on .content-area rather than on .price-area so the
       spacing rules below - which sit on ancestors of .price-area - can read
       it too. Custom properties inherit downwards only. */
    html body[class*="pojo-a11y-resize-font-"][class] .content-area {
        --a11y-price: min(calc(6.9vw - 15px), calc(2.6vw * var(--a11y-scale)));
    }
    /* Stacking removed the breathing room the side-by-side layout got for
       free. Measured at rest the price sits 43px above the feature list
       (the taller payment-terms column set the row height); stacked it became
       the last element of .content-area, which has padding: 20px 14px 0 - no
       bottom - so the price ended up flush against the feature strip, and the
       two blocks ended up touching each other. Both gaps restored, and the
       bottom one tracks the price so it stays proportional as the type grows:
       35 / 38 / 42px at steps 130 / 160 / 200 against the 43px at rest. */
    html body[class*="pojo-a11y-resize-font-"][class] .content-area {
        padding-bottom: calc(2vh + var(--a11y-price) * 0.4) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .content-area > .row > [class*="col-"] + [class*="col-"] {
        margin-top: 2vh !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .price-area .price {
        font-size: var(--a11y-price) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .price-area .price > span {
        font-size: calc(var(--a11y-price) * 0.577) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .price-area .price-badge {
        font-size: calc(var(--a11y-price) * 0.269) !important;
        line-height: 1.61 !important;
    }

    /* 4. "20/80" broke to "20/8" + "0" from step 160 and spilled out of its
          bordered card. The stacked row above fixes it the same way - the card
          now gets the full 486px instead of 243px - so this too runs the full
          curve, 64.8 -> 103.68px, one line at every step. The min() is again a
          safety net that never binds with the current value.

          The green bar behind the number is .box::before at height:83% - a
          fraction of the WHOLE card, so it creeps upward over the
          "תנאי תשלום ללא הצמדה למדד!" line as the number grows. Measured
          clearance between the bar and that line: -3px at rest, -2 at step
          130, 0 at 160, +3 at 200 (overlapping). Binding the bar's height to
          the number instead of to the card holds it at a constant -5px. */
    html body[class*="pojo-a11y-resize-font-"][class] .payment-terms {
        --a11y-inst: min(calc(13.98vw - 38.7px), calc(4.5vw * var(--a11y-scale)));
    }
    html body[class*="pojo-a11y-resize-font-"][class] .payment-terms .box .installment {
        font-size: var(--a11y-inst) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .payment-terms .box::before {
        height: calc(var(--a11y-inst) * 0.9 + 2vh + 16px) !important;
    }

    /* 5. The PRESALE sticker is absolutely positioned over the top-left corner
          of the content (right:31vw of a 34vw column, so it occupies the
          column's leftmost 3vw) with z-index:99. The h1 is centred, so its
          lines get longer as the type grows and run underneath it. Measured
          horizontal overlap of the title text and the sticker at 1440:
          -28px at rest (clear), -2 at step 130, +21 at 160, +10 at 200.
          Reserving the sticker's own 3vw as padding on the heading keeps the
          text clear of it - measured -8px or better at every step, at
          768 / 1440 / 1920. */
    html body[class*="pojo-a11y-resize-font-"][class] .content-area h1.title {
        padding-left: calc(3vw - 6px) !important;
    }
}

/* --- @media (max-width: 767px): mobiles.css --- */
@media (max-width: 767px) {
    html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper .content .content-area h1.title {
        font-size: calc(30px * var(--a11y-scale)) !important;
        line-height: 1.17 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper .content .content-area h1.title span {
        font-size: calc(42px * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper .desc {
        font-size: calc(18px * var(--a11y-scale)) !important;
        line-height: 1.33 !important;
    }
    /* "20/80" (markup: 20<span>/</span>80) measures a constant 2.432px of
       width per px of font. On a 320px screen the card gives it 247px, so it
       breaks to two lines from step 200 (265px needed). 31vw keeps it inside
       at 320 and never binds at 375 and up, where the uncapped value already
       fits. Floored at the theme's own 70px.

       Same green-bar problem as on desktop, and worse here because the
       "תנאי תשלום ללא הצמדה למדד!" line wraps to two rows from step 180 on a
       375px screen: .box::before at height:83% then covered the second row
       ("למדד!") completely - measured +34px of overlap at step 200. Tying the
       bar's height to the number holds it at a constant -4px. */
    html body[class*="pojo-a11y-resize-font-"][class] .payment-terms {
        --a11y-inst: max(70px, min(31vw, calc(70px * var(--a11y-scale))));
    }
    html body[class*="pojo-a11y-resize-font-"][class] .payment-terms .box .installment {
        font-size: var(--a11y-inst) !important;
        line-height: 0.86 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .payment-terms .box::before {
        height: calc(var(--a11y-inst) * 0.86 + 2vh + 16px) !important;
    }
    /* PRE-EXISTING BUG, reported not silently fixed: mains.css declares
       .price-area .price-badge{font-size:0.7vw !important} and mobiles.css
       overrides it with a plain 13px, so the !important wins and the badge
       renders at 2.625px on a 375px screen with accessibility OFF. Inside the
       gate this rule out-specifies the base one, so from the first click the
       badge is readable again. */
    /* Same treatment as the desktop block: the number has to stay on one line
       or the vertically-centred "החל מ-" chip gets stranded between the two
       lines. Measured at 375 with the plain 46px * scale: the line runs 330px
       against 325px of usable column at step 200, so "0 ₪" dropped to a second
       row. Capped at 17.5vw, floored at the theme's own 46px, with the ₪ span
       and the chip derived from it at the mobile design's ratios
       (20/46 = 0.435, 13/46 = 0.283).
       Measured chip-width / width-of-the-last-two-zeros: 0.85 at rest and
       0.82-0.85 at every step, at 320 / 360 / 375 / 767 - and its right edge
       stays flush with the last zero (R = 0px) exactly as designed. */
    /* On .content-area, not .price-area - see the desktop block. */
    html body[class*="pojo-a11y-resize-font-"][class] .content-area {
        --a11y-price: max(46px, min(17.5vw, calc(46px * var(--a11y-scale))));
    }
    /* mobiles.css gives .price-wrapepr a flat 20px bottom margin, which is
       fine under a 46px price but cramped under a 65px one. Tracks the price
       instead: 26 / 29 / 30px at steps 130 / 160 / 200. */
    html body[class*="pojo-a11y-resize-font-"][class] .price-wrapepr {
        margin-bottom: calc(10px + var(--a11y-price) * 0.3) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .price-area .price {
        font-size: var(--a11y-price) !important;
        line-height: 1 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .price-area .price > span {
        font-size: calc(var(--a11y-price) * 0.435) !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .price-area .price-badge {
        font-size: calc(var(--a11y-price) * 0.283) !important;
        line-height: 1.08 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper .content > .title {
        font-size: calc(24px * var(--a11y-scale)) !important;
        line-height: 1.17 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .hero-content-wrapper .content > .subtitle {
        font-size: calc(18px * var(--a11y-scale)) !important;
        line-height: 1.33 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .financial-terms .title {
        font-size: calc(28px * var(--a11y-scale)) !important;
        line-height: 1.21 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .financial-terms .desc {
        font-size: calc(18px * var(--a11y-scale)) !important;
        line-height: 1.33 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .condition-text {
        font-size: calc(14px * var(--a11y-scale)) !important;
        line-height: 1.29 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .feature-list .item > .desc {
        font-size: calc(15px * var(--a11y-scale)) !important;
        line-height: 1.2 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .button-group .global-btn {
        font-size: calc(18px * var(--a11y-scale-form)) !important;
        line-height: 1.33 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .form-title {
        font-size: calc(18px * var(--a11y-scale)) !important;
        line-height: 1.33 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] input,
    html body[class*="pojo-a11y-resize-font-"][class] select,
    html body[class*="pojo-a11y-resize-font-"][class] textarea {
        font-size: calc(18px * var(--a11y-scale-form)) !important;
        line-height: 1.33 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-checkbox .wpcf7-list-item-label,
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-list-item-label {
        font-size: calc(15px * var(--a11y-scale-form)) !important;
        line-height: 1.33 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .contact-form .wpcf7-submit,
    html body[class*="pojo-a11y-resize-font-"][class] .wpcf7-submit {
        font-size: calc(20px * var(--a11y-scale-form)) !important;
        line-height: 1.15 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .form-desc {
        font-size: calc(15px * var(--a11y-scale)) !important;
        line-height: 1.33 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .text-col > p {
        font-size: calc(15px * var(--a11y-scale)) !important;
        line-height: 1.33 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .copyright-text {
        font-size: calc(15px * var(--a11y-scale)) !important;
        line-height: 1.33 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .modal-close-btn {
        font-size: calc(36px * var(--a11y-scale)) !important;
        line-height: 1 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .privacy-links {
        font-size: calc(16px * var(--a11y-scale)) !important;
        line-height: 1.25 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .privacy-banner h1 {
        font-size: calc(42px * var(--a11y-scale)) !important;
        line-height: 1.14 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .breadcrumbs li {
        font-size: calc(22px * var(--a11y-scale)) !important;
        line-height: 1.1 !important;
    }
    html body[class*="pojo-a11y-resize-font-"][class] .success-title {
        font-size: calc(20px * var(--a11y-scale)) !important;
        line-height: 1.4 !important;
    }
}
