/* ==========================================================================
   One Click Accessibility (Pojo) — font-resize repair for a vw-based layout
   --------------------------------------------------------------------------
   The plugin only emits two !important rules per step:

     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 ..    { font-size: NN*1.33% !important }

   On this theme that produces:
     - vw headings that never move (a % resolves against the parent, not vw);
     - compounding percentages through the CF7 span nesting
       (p > span.wpcf7-list-item-label > span.wpcf7-form-control-wrap >
        span.wpcf7-checkbox > span.wpcf7-list-item > label > span) —
       measured 10px -> 4096px at step 200, page scrollWidth 18422px @375;
     - frozen elements the plugin cannot select: the submit <input> (a theme
       rule out-specifies it), .wpcf7-response-output (a <div>),
       .cc-root / .cc-btn in the consent banner;
     - a runaway consent banner (.cc-title 16 -> 37px, .cc-body 14 -> 28px)
       because #cc-floater / .cc-root / .cc-modal-wrap live OUTSIDE .elementor.

   RULE A — with no pojo-a11y-resize-font-* class on <body>, and again after
            Reset, this file must contribute ZERO computed differences.
            Every rule below is gated behind
            html body[class*="pojo-a11y-resize-font-"].
   RULE B — #pojo-a11y-toolbar is a SIBLING of .elementor. No generic rule
            reaches it; the only toolbar rule here is the deliberate, gated
            "menu items grow more gently than page text" rule in Section 6.
   ========================================================================== */


/* ==========================================================================
   Section 1 — STEP -> MULTIPLIERS
   --------------------------------------------------------------------------
   Three curves:
     --a11y-scale        body text, headings, lists, privacy modal
                         step 1 +15% ... max +60%
     --a11y-scale-form   inputs, submit, validation + response messages,
                         consent label, banner title/body/buttons.
                         These start from the smallest sizes on the page, so
                         they need a bigger first jump to read as "bigger".
                         step 1 +30% ... max +75%
     --a11y-scale-menu   the accessibility toolbar's own menu items.
                         Deliberately the gentlest curve, so the panel text
                         stays smaller than the page text it controls.
                         step 1 +6% ... max +25%
   ========================================================================== */
:root {
    --a11y-scale: 1;
    --a11y-scale-form: 1;
    --a11y-scale-menu: 1;
    --a11y-scale-error: 1;
}

body.pojo-a11y-resize-font-130 { --a11y-scale: 1.15; --a11y-scale-form: 1.30; --a11y-scale-menu: 1.06; --a11y-scale-error: 1.10; }
body.pojo-a11y-resize-font-140 { --a11y-scale: 1.22; --a11y-scale-form: 1.40; --a11y-scale-menu: 1.09; --a11y-scale-error: 1.14; }
body.pojo-a11y-resize-font-150 { --a11y-scale: 1.28; --a11y-scale-form: 1.48; --a11y-scale-menu: 1.12; --a11y-scale-error: 1.18; }
body.pojo-a11y-resize-font-160 { --a11y-scale: 1.35; --a11y-scale-form: 1.55; --a11y-scale-menu: 1.15; --a11y-scale-error: 1.22; }
body.pojo-a11y-resize-font-170 { --a11y-scale: 1.42; --a11y-scale-form: 1.62; --a11y-scale-menu: 1.18; --a11y-scale-error: 1.26; }
body.pojo-a11y-resize-font-180 { --a11y-scale: 1.48; --a11y-scale-form: 1.68; --a11y-scale-menu: 1.21; --a11y-scale-error: 1.29; }
body.pojo-a11y-resize-font-190 { --a11y-scale: 1.54; --a11y-scale-form: 1.72; --a11y-scale-menu: 1.23; --a11y-scale-error: 1.32; }
body.pojo-a11y-resize-font-200 { --a11y-scale: 1.60; --a11y-scale-form: 1.75; --a11y-scale-menu: 1.25; --a11y-scale-error: 1.35; }


/* ==========================================================================
   Section 2 — BASE PIN on <body>
   --------------------------------------------------------------------------
   Measured baseline is 18px (assets/css/style.css: body{font-size:18px}),
   NOT 16px. calc(), never a flat px, so everything that inherits from <body>
   keeps growing with the step.
   Deliberately not scoped: #pojo-a11y-toolbar sets its own font-size
   (0.9vw / 14px) so it does not inherit from here.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"] {
    font-size: calc(18px * var(--a11y-scale)) !important;
}


/* ==========================================================================
   Section 3 — Kill the compounding percentages inside the content root
   --------------------------------------------------------------------------
   .elementor (.elementor-2) is the ONLY content root on this site — the page
   is an Elementor full-width template and the sitemap contains exactly one
   published URL. input/select/textarea are excluded here and pinned in
   Section 4 instead.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"] .elementor p,
html body[class*="pojo-a11y-resize-font-"] .elementor li,
html body[class*="pojo-a11y-resize-font-"] .elementor span,
html body[class*="pojo-a11y-resize-font-"] .elementor label,
html body[class*="pojo-a11y-resize-font-"] .elementor blockquote,
html body[class*="pojo-a11y-resize-font-"] .elementor legend,
html body[class*="pojo-a11y-resize-font-"] .elementor code,
html body[class*="pojo-a11y-resize-font-"] .elementor pre,
html body[class*="pojo-a11y-resize-font-"] .elementor dd,
html body[class*="pojo-a11y-resize-font-"] .elementor dt {
    font-size: inherit !important;
}


/* ==========================================================================
   Section 4 — FORM CONTROLS + response / validation messages
   --------------------------------------------------------------------------
   Values mirror the theme 1:1, per breakpoint, px/vw only (never em — the CF7
   span nesting compounds it; never rem — it shrinks below the design size on
   wide screens).

   READABILITY FLOOR: this design is authored in vw for ~1920 and only carries
   a 600px mobile override, so between 601px and ~1200px every control renders
   far below a legible size with accessibility OFF (measured at 900px:
   input 7.2px, response-output 6.3px, consent label 5.4px). Each value below
   is therefore calc(max(<floor>, <themeValue>) * var(--a11y-scale-form)).
   The floor lives INSIDE the gate, so the default render is untouched.

   Line-heights are forced UNITLESS: the theme writes them in vh (2vh) or
   leaves them inherited from body (26px), neither of which grows with the
   font.
   ========================================================================== */

/* --- text inputs -------------------------------------------------------- */
html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout input[type="text"],
html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout input[type="tel"],
html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout input[type="email"] {
    font-size: calc(max(14px, 0.8vw) * var(--a11y-scale-form)) !important;
    line-height: 1.3 !important;
    /* the theme sizes these with height:3vh + padding:2vh (border-box), which
       leaves a 2px content box; without this the scaled text is clipped. */
    height: auto !important;
    padding-top: calc(max(14px, 0.8vw) * var(--a11y-scale-form) * 0.45) !important;
    padding-bottom: calc(max(14px, 0.8vw) * var(--a11y-scale-form) * 0.45) !important;
    /* full width once scaled — see the .cf7-vertical-layout rule below */
    width: 100% !important;
    margin-left: 0 !important;
}

/* --- FIELD ALIGNMENT WHEN ONLY SOME FIELDS HAVE AN ERROR -----------------
   .cf7-vertical-layout is `display:flex; align-items:center` above 600px, so
   each field is centred on the cross axis. The moment one field shows a
   .wpcf7-not-valid-tip its column gets taller (37.2px -> 54.8px) and every
   field WITHOUT a tip is re-centred against that taller row — measured 8.8px
   lower than its neighbours at 1200px.

   Aligning to the top of the row instead keeps all three input boxes on one
   line whatever mix of errors is showing.

   NOTE ON GATING: this is the one rule in the file that is NOT behind
   body[class*="pojo-a11y-resize-font-"], because the misalignment exists at
   rest, with no accessibility option selected. It is gated on
   :has(.wpcf7-not-valid-tip) instead, so it can only ever apply while a
   validation message is on screen — with no error showing the file still
   contributes zero computed differences. Engines without :has() simply keep
   today's behaviour.
   ------------------------------------------------------------------------ */
html body .cf7-vertical-layout:has(.wpcf7-not-valid-tip) {
    align-items: flex-start !important;
}

/* --- FORM-LEVEL RESPONSE MESSAGE: top spacing + centred text -------------
   The inline theme block pins .wpcf7-response-output to `margin: 0 !important`
   and `text-align: right`, so the success / failure box sits flush against the
   consent text above it and its message hugs the right edge of its own frame.

   Same gating note as the rule above: this is not behind the font gate,
   because it applies at rest too. Instead it is scoped to
   .wpcf7-form:not(.init) — Contact Form 7 only drops the `init` class once it
   has a status to show, and the box is display:none until then, so on a fresh
   page load this rule matches nothing.

   The margin is written with the form curve so the gap grows with the message
   when a font step is active; at rest the variable is 1 and it is a flat
   ~19.6px. Only margin-top is set, so the theme's `margin: 0` still holds on
   the other three sides. */
html body .wpcf7-form:not(.init) .wpcf7-response-output,
html body .wpcf7 form:not(.init) .wpcf7-response-output {
    margin-top: calc(max(14px, 0.7vw) * var(--a11y-scale-form) * 1.4) !important;
    text-align: center !important;
}

/* --- SCALED FORM LAYOUT -------------------------------------------------
   At rest the three fields sit in one flex row (.cf7-vertical-layout is
   display:flex above 600px) and each input is 96% of its third. Once the text
   grows, three columns cannot hold it: the fields stack full width instead,
   exactly as the theme already does below 600px.
   ------------------------------------------------------------------------ */
html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout {
    display: block !important;
}
html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout .field-wrapper-placeholder {
    width: 100% !important;
    max-width: 100% !important;
    /* stacked, the three fields would otherwise sit edge to edge — the theme
       only gives them a gap below 600px (margin-bottom:10px on the input). */
    margin-bottom: calc(max(14px, 0.8vw) * var(--a11y-scale-form) * 0.7) !important;
}
html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout .field-wrapper-placeholder:last-child {
    margin-bottom: 0 !important;
}
html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout .wpcf7-form-control-wrap {
    display: block !important;
    width: 100% !important;
}

/* The consent row is a flex row holding [submit][consent label]. Once scaled,
   let it wrap so the consent block gets the full width instead of a narrow
   column beside the button. */
html body[class*="pojo-a11y-resize-font-"] .checkbox-row-vertical > p {
    flex-wrap: wrap !important;
    align-items: flex-start !important;
}
html body[class*="pojo-a11y-resize-font-"] .checkbox-row-vertical > p > span.wpcf7-list-item-label {
    flex: 1 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
}
html body[class*="pojo-a11y-resize-font-"] .checkbox-row-vertical .wpcf7-form-control-wrap,
html body[class*="pojo-a11y-resize-font-"] .checkbox-row-vertical .wpcf7-checkbox,
html body[class*="pojo-a11y-resize-font-"] .checkbox-row-vertical .wpcf7-list-item {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}
html body[class*="pojo-a11y-resize-font-"] .checkbox-row-vertical .wpcf7-list-item > label {
    width: 100% !important;
}
html body[class*="pojo-a11y-resize-font-"] .checkbox-row-vertical .wpcf7-list-item > label > span.wpcf7-list-item-label {
    flex: 1 1 auto !important;
    max-width: none !important;
}

/* --- submit ------------------------------------------------------------- */
html body[class*="pojo-a11y-resize-font-"] .checkbox-row-vertical .wpcf7-submit,
html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout .wpcf7-submit,
html body[class*="pojo-a11y-resize-font-"] .wpcf7-submit {
    font-size: calc(max(16px, 1vw) * var(--a11y-scale-form)) !important;
    line-height: 1.4 !important;
    height: auto !important;
    padding-top: calc(max(16px, 1vw) * var(--a11y-scale-form) * 0.3) !important;
    padding-bottom: calc(max(16px, 1vw) * var(--a11y-scale-form) * 0.3) !important;
    /* the row (.checkbox-row-vertical > p) is display:flex, so the button is a
       flex item: without this it shrinks below its own label and the text
       stacks one word per line as the consent label beside it grows. */
    flex-shrink: 0 !important;
    /* the same flex row stretches it to the height of the consent label
       (191px at step 200 @1440) unless it is centred on the cross axis. */
    align-self: center !important;
    /* the theme's 14.5vw is only 91px at 628px wide, which clips a 28px label.
       Size to the label instead, never below the design width. Safe now that
       the row wraps and the button has a line to itself. */
    width: auto !important;
    min-width: 14.5vw !important;
    padding-left: calc(max(16px, 1vw) * var(--a11y-scale-form) * 0.7) !important;
    padding-right: calc(max(16px, 1vw) * var(--a11y-scale-form) * 0.7) !important;
}

/* --- theme buttons (present in assets/css/style.css, used by other LPs) -- */
html body[class*="pojo-a11y-resize-font-"] .global-btn {
    font-size: calc(24px * var(--a11y-scale-form)) !important;
    line-height: 1.2 !important;
}
html body[class*="pojo-a11y-resize-font-"] .submit-btn input {
    font-size: calc(max(16px, 1.2vw) * var(--a11y-scale-form)) !important;
    line-height: 1.4 !important;
}

/* --- messages: response output + validation tip ------------------------- */
html body[class*="pojo-a11y-resize-font-"] .wpcf7 form .wpcf7-response-output,
html body[class*="pojo-a11y-resize-font-"] .wpcf7-response-output {
    font-size: calc(max(14px, 0.7vw) * var(--a11y-scale-form)) !important;
    line-height: 1.5 !important;
}
/* The red field error rides --a11y-scale-error, the gentlest of the text
   curves, so it stays visibly smaller than the field and label it belongs to
   instead of competing with them. */
html body[class*="pojo-a11y-resize-font-"] .wpcf7-not-valid-tip,
html body[class*="pojo-a11y-resize-font-"] .elementor .wpcf7-not-valid-tip {
    font-size: calc(max(12px, 0.7vw) * var(--a11y-scale-error)) !important;
    line-height: 1.35 !important;
}

/* --- consent / checkbox label ------------------------------------------- */
/* Two nested spans carry this class; an absolute value on both means the
   outer one cannot compound into the inner one. */
html body[class*="pojo-a11y-resize-font-"] .elementor .wpcf7-list-item-label,
html body[class*="pojo-a11y-resize-font-"] .wpcf7-list-item-label {
    font-size: calc(max(13px, 0.6vw) * var(--a11y-scale-form)) !important;
    line-height: 1.4 !important;
}

/* The check glyph is an ::after on a fixed-size box (1.3vw / 19px), so it must
   NOT ride the scale — pinned here purely so it can never inherit a blown-up
   size from the input. See Section 7 for its colour in the contrast modes. */
/* --- checkbox box: size and first-line alignment -------------------------
   The label is `display:flex; align-items:start`, so the box aligns to the TOP
   of the text block, not to the middle of its first line. At rest that reads
   fine (10px text / 14px line vs a 19px box). Once the text is scaled the line
   box grows past the checkbox and the box floats above the first line
   (measured: 19px box against a 27px line at step 200).

   Fix: grow the box with the label and push it down by half the leftover, so
   its centre lands on the centre of the first line — the same relationship the
   default layout has.
       box        = max(<themeBox>, labelFS * 1.15)
       margin-top = (labelFS * 1.4  -  box) / 2
   ------------------------------------------------------------------------ */
html body[class*="pojo-a11y-resize-font-"] .wpcf7-checkbox input[type="checkbox"],
html body[class*="pojo-a11y-resize-font-"] .elementor .wpcf7-checkbox input[type="checkbox"] {
    --a11y-cb-label: calc(max(13px, 0.6vw) * var(--a11y-scale-form));
    --a11y-cb-size: max(1.3vw, calc(var(--a11y-cb-label) * 1.15));
    font-size: calc(var(--a11y-cb-label) * 0.72) !important;
    line-height: 1 !important;
    width: var(--a11y-cb-size) !important;
    min-width: var(--a11y-cb-size) !important;
    height: var(--a11y-cb-size) !important;
    margin-top: calc((var(--a11y-cb-label) * 1.4 - var(--a11y-cb-size)) / 2) !important;
    align-self: flex-start !important;
    flex: 0 0 auto !important;
}
/* The tick glyph tracks the box, so it is always centred inside it at every
   step. `.elementor` is in the selector purely to out-specify the per-mode
   geometry rule in Section 7, which must not win when a step is also active. */
html body[class*="pojo-a11y-resize-font-"] .elementor .wpcf7-checkbox input[type="checkbox"]:checked::after {
    font-size: calc(var(--a11y-cb-label) * 0.72) !important;
    line-height: 1 !important;
}


/* ==========================================================================
   Section 4b — elements carrying an intentional size of their own
   --------------------------------------------------------------------------
   Section 3 would otherwise flatten these to the inherited body size.
   NOTE: the theme writes the privacy modal rule as
       .privacy-wrapper .privacy-content :where(p, li, a)
   :where() has ZERO specificity, so that rule is (0,2,0) and loses to
   Section 3's (0,2,3). It is restated explicitly below.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"] .privacy-wrapper .privacy-content p,
html body[class*="pojo-a11y-resize-font-"] .privacy-wrapper .privacy-content li,
html body[class*="pojo-a11y-resize-font-"] .privacy-wrapper .privacy-content a {
    font-size: calc(max(13px, 0.8vw) * var(--a11y-scale)) !important;
    line-height: 1.6 !important;
}
html body[class*="pojo-a11y-resize-font-"] .privacy-wrapper .privacy-content h2 {
    font-size: calc(max(18px, 1.4vw) * var(--a11y-scale)) !important;
    line-height: 1.3 !important;
}


/* ==========================================================================
   Section 4c — Consent banner (#cc-floater / .cc-root / .cc-modal-wrap)
   --------------------------------------------------------------------------
   All three are direct children of <body>, OUTSIDE .elementor, so Section 3
   cannot reach them. Measured with this file removed:
       .cc-title 16 -> 24.2 -> 37.2px      (runaway: it is an <h2>)
       .cc-body  14 -> 18.2 -> 28.0px      (runaway: it is a <p>)
       .cc-root  14 -> 14 -> 14px          (frozen)
       .cc-btn   14 -> 14 -> 14px          (frozen: its own rule is font:inherit)

   Generic inherit rule FIRST, then explicit pins. Every pin gets a bare AND a
   root-scoped selector so it wins wherever the element sits:
       html body[attr] .cc-root .cc-body = (0,3,2)  BEATS
       html body[attr] .cc-root p        = (0,2,3)
   (the class column is compared before the element column).
   EVERY pin is calc(<px> * var(--a11y-scale…)) — never a flat px, or the
   banner freezes instead of running away.
   .cc-title and .cc-btn use the FORM curve with bumped baselines
   (16 -> 18, 14 -> 15) so the very first click is a visible jump.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"] .cc-root p,
html body[class*="pojo-a11y-resize-font-"] .cc-root li,
html body[class*="pojo-a11y-resize-font-"] .cc-root span,
html body[class*="pojo-a11y-resize-font-"] .cc-root label,
html body[class*="pojo-a11y-resize-font-"] .cc-root a,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap p,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap li,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap span,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap label,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap a {
    font-size: inherit !important;
}

html body[class*="pojo-a11y-resize-font-"] .cc-root,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-modal {
    font-size: calc(14px * var(--a11y-scale)) !important;
    line-height: 1.5 !important;
}

html body[class*="pojo-a11y-resize-font-"] .cc-title,
html body[class*="pojo-a11y-resize-font-"] .cc-root .cc-title,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-title {
    font-size: calc(18px * var(--a11y-scale-form)) !important;
    line-height: 1.3 !important;
}

html body[class*="pojo-a11y-resize-font-"] .cc-body,
html body[class*="pojo-a11y-resize-font-"] .cc-root .cc-body,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-body {
    font-size: calc(14px * var(--a11y-scale-form)) !important;
    line-height: 1.5 !important;
}

html body[class*="pojo-a11y-resize-font-"] .cc-btn,
html body[class*="pojo-a11y-resize-font-"] .cc-root .cc-btn,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-btn {
    font-size: calc(15px * var(--a11y-scale-form)) !important;
    line-height: 1.4 !important;
}
html body[class*="pojo-a11y-resize-font-"] .cc-btn.cc-btn-text,
html body[class*="pojo-a11y-resize-font-"] .cc-root .cc-btn.cc-btn-text,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-btn.cc-btn-text {
    font-size: calc(15px * var(--a11y-scale-form)) !important;
}

html body[class*="pojo-a11y-resize-font-"] .cc-lang-toggle,
html body[class*="pojo-a11y-resize-font-"] .cc-root .cc-lang-toggle,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-lang-toggle {
    font-size: calc(12px * var(--a11y-scale)) !important;
}

html body[class*="pojo-a11y-resize-font-"] .cc-modal-head h2,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-modal-head h2 {
    font-size: calc(18px * var(--a11y-scale)) !important;
    line-height: 1.3 !important;
}
html body[class*="pojo-a11y-resize-font-"] .cc-modal-close,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-modal-close {
    font-size: calc(24px * var(--a11y-scale)) !important;
    line-height: 1 !important;
}
html body[class*="pojo-a11y-resize-font-"] .cc-cat-name,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-cat-name {
    font-size: calc(15px * var(--a11y-scale)) !important;
    line-height: 1.4 !important;
}
html body[class*="pojo-a11y-resize-font-"] .cc-cat-desc,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-cat-desc {
    font-size: calc(13px * var(--a11y-scale)) !important;
    line-height: 1.5 !important;
}
html body[class*="pojo-a11y-resize-font-"] .cc-required-badge,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-required-badge {
    font-size: calc(11px * var(--a11y-scale)) !important;
}
html body[class*="pojo-a11y-resize-font-"] .cc-cookies-list,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-cookies-list {
    font-size: calc(12px * var(--a11y-scale)) !important;
}
html body[class*="pojo-a11y-resize-font-"] .cc-cookies-list th,
html body[class*="pojo-a11y-resize-font-"] .cc-cookies-list td,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-cookies-list th,
html body[class*="pojo-a11y-resize-font-"] .cc-modal-wrap .cc-cookies-list td {
    font-size: calc(12px * var(--a11y-scale)) !important;
}

/* Section 4d — VALIDATION TIP POSITIONING: not required on this site.
   Audited at 375 and 1440, steps none/130/160/200, on the consent row and on
   the plain name/phone/email rows: every .wpcf7-not-valid-tip computes
   position:static / display:block / white-space:normal, so it stays in flow
   and pushes the row instead of being drawn over the label.
   Measured overlap 0px (consent) and -10px clearance (plain fields), spill
   0px, at every step. Nothing to restore. */


/* ==========================================================================
   Section 5 — Per-element headings, from every font-size rule in post-2.css
   --------------------------------------------------------------------------
   post-3.css (the Elementor kit) declares no font-size at all.
   post-2.css declares 7 (5 base + 2 at max-width:767px). Note that two of
   these "headings" render as <p class="elementor-heading-title">, so Section 3
   would flatten them — they are restated here at a much higher specificity.
   Elements 9352975 / 66a1b36 are the desktop pair (hidden <=767px) and
   5193ea6 / ff366fd the mobile pair, which is why only the latter carry a
   767px override.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"] .elementor-2 .elementor-element.elementor-element-9352975 .elementor-heading-title,
html body[class*="pojo-a11y-resize-font-"] .elementor-2 .elementor-element.elementor-element-5193ea6 .elementor-heading-title {
    font-size: calc(1vw * var(--a11y-scale)) !important;
    line-height: 1.2 !important;
}
/* 66a1b36 (desktop) / ff366fd (mobile) are the small legal line under the form
   ("מילוי פרטיך ולחיצה על כפתור…"). It belongs with the consent checkbox text,
   so it deliberately does NOT use --a11y-scale: it carries the exact same
   formula as .wpcf7-list-item-label, which makes the two render at identical
   sizes at every step and every width. */
html body[class*="pojo-a11y-resize-font-"] .elementor-2 .elementor-element.elementor-element-66a1b36 .elementor-heading-title,
html body[class*="pojo-a11y-resize-font-"] .elementor-2 .elementor-element.elementor-element-ff366fd .elementor-heading-title {
    font-size: calc(max(13px, 0.6vw) * var(--a11y-scale-form)) !important;
    line-height: 1.4 !important;
}
/* Elementor pins this widget with `elementor-widget__width-initial`
   (width: 71.9%), which cramps the line into a narrow column once the text
   grows. Full width while a step is active. */
html body[class*="pojo-a11y-resize-font-"] .elementor-2 .elementor-element.elementor-element-66a1b36,
html body[class*="pojo-a11y-resize-font-"] .elementor-2 .elementor-element.elementor-element-ff366fd {
    width: 100% !important;
    max-width: 100% !important;
}
/* The slider arrows (.elementor-swiper-button, 4vw in post-2.css) are
   deliberately NOT scaled: they are navigation icons, not text, and the plugin
   never touched them either (they are <div>s). Leaving them out means they
   stay exactly the size the design gives them at every step. */

/* Any Elementor heading without a per-element rule follows the body curve
   instead of the plugin's 133% compounding. */
html body[class*="pojo-a11y-resize-font-"] .elementor h1,
html body[class*="pojo-a11y-resize-font-"] .elementor h2,
html body[class*="pojo-a11y-resize-font-"] .elementor h3,
html body[class*="pojo-a11y-resize-font-"] .elementor h4,
html body[class*="pojo-a11y-resize-font-"] .elementor h5,
html body[class*="pojo-a11y-resize-font-"] .elementor h6 {
    font-size: calc(18px * var(--a11y-scale) * 1.33) !important;
}
html body[class*="pojo-a11y-resize-font-"] .elementor h1 span,
html body[class*="pojo-a11y-resize-font-"] .elementor h2 span,
html body[class*="pojo-a11y-resize-font-"] .elementor h3 span,
html body[class*="pojo-a11y-resize-font-"] .elementor h4 span,
html body[class*="pojo-a11y-resize-font-"] .elementor h5 span,
html body[class*="pojo-a11y-resize-font-"] .elementor h6 span {
    font-size: inherit !important;
}


/* ==========================================================================
   Section 6 — Accessibility toolbar menu items (requested: grow more gently)
   --------------------------------------------------------------------------
   The plugin's generic `span { font-size: NN% }` rule also lands on the
   toolbar's own menu labels, taking them from 13.8px to 27.6px at step 200
   (@1920) — the 180px-wide panel then wraps badly. These ride
   --a11y-scale-menu instead, so the panel text stays visibly smaller than the
   page text it is resizing, while still gaining a legibility floor at the
   mid-range widths where 0.72vw falls under 11px.

   Base is derived from the theme's own values:
       #pojo-a11y-toolbar          0.9vw  (assets/css/style.css)
                                   14px   (assets/css/responsive.css, <=767)
       .pojo-a11y-toolbar-item a   80% of that  ->  0.72vw / 11.2px
   The #id in the selector is what lets this out-specify the plugin.
   The toolbar title and the toggle button are intentionally left alone.
   ========================================================================== */
html body[class*="pojo-a11y-resize-font-"] #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-"] #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a span {
    font-size: calc(max(11.2px, 0.72vw) * var(--a11y-scale-menu)) !important;
    line-height: 1.4 !important;
}


/* ==========================================================================
   Section 7 — Checkbox check mark inside its box, in every display mode
   --------------------------------------------------------------------------
   The consent checkbox is appearance:none with a "✔" ::after coloured
   #32010c. Measured with the modes on:

     default           box #fff  / glyph #32010c   -> visible
     high-contrast     box #000  / glyph #32010c   -> INVISIBLE
     negative-contrast box #000  / glyph #32010c   -> INVISIBLE
     light-background  box transparent (the theme forces inputs transparent)
                                  / glyph #32010c  -> no "filled" state at all
     grayscale         box #fff  / glyph dark grey -> visible

   The plugin's rule is
       body.pojo-a11y-negative-contrast *:not(#pojo-a11y-toolbar)
   whose :not(#id) argument gives it an ID-column specificity of (1,1,1), so a
   plain class selector cannot beat it even with !important. Each rule below
   carries its own :not(#pojo-a11y-toolbar) to enter the same column and then
   win on the class column — the same trick the theme already uses for .cc-btn.

   These rules are gated on the contrast classes, not on the font gate, so
   they change nothing in the default display mode.
   ========================================================================== */

/* --- 7a. LIGHT BACKGROUND — the reference treatment ----------------------
   Page goes white/black. The box is filled solid with the text colour and the
   glyph is punched out in the page colour, so "checked" reads as a solid
   marker rather than a tinted outline. Unchecked keeps a 1px solid frame in
   the same text colour so the empty box is never invisible. */
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"] {
    background: transparent !important;
    background-color: transparent !important;
    border: 1px solid #000 !important;
    border-color: #000 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    opacity: 1 !important;
}
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"]:checked {
    background: #000 !important;
    background-color: #000 !important;
    border: 1px solid #000 !important;
    border-color: #000 !important;
}
html body.pojo-a11y-light-background :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"]:checked::after {
    color: #fff !important;
    background: transparent !important;
    opacity: 1 !important;
}

/* --- 7b. HIGH CONTRAST — same treatment, inverted palette ----------------
   The plugin drives this mode to a black ground with white text, so the pair
   is simply swapped: solid white box, black glyph, white frame when empty.
   Property-for-property identical to 7a. */
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"] {
    background: transparent !important;
    background-color: transparent !important;
    border: 1px solid #fff !important;
    border-color: #fff !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    opacity: 1 !important;
}
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"]:checked {
    background: #fff !important;
    background-color: #fff !important;
    border: 1px solid #fff !important;
    border-color: #fff !important;
}
html body.pojo-a11y-high-contrast :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"]:checked::after {
    color: #000 !important;
    background: transparent !important;
    opacity: 1 !important;
}

/* --- 7c. NEGATIVE CONTRAST — same treatment, inverted palette ------------ */
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"] {
    background: transparent !important;
    background-color: transparent !important;
    border: 1px solid #fff !important;
    border-color: #fff !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    opacity: 1 !important;
}
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"]:checked {
    background: #fff !important;
    background-color: #fff !important;
    border: 1px solid #fff !important;
    border-color: #fff !important;
}
html body.pojo-a11y-negative-contrast :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"]:checked::after {
    color: #000 !important;
    background: transparent !important;
    opacity: 1 !important;
}

/* --- 7d. GRAYSCALE — site palette, only the glyph is darkened so it
   survives the grayscale() filter on the white box. Same shape as 7a. */
html body.pojo-a11y-grayscale :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"]:checked {
    background: #fff !important;
    background-color: #fff !important;
    border: 1px solid #fff !important;
    border-color: #fff !important;
}
html body.pojo-a11y-grayscale :not(#pojo-a11y-toolbar):not(.pojo-a11y-toolbar-link) .wpcf7-checkbox input[type="checkbox"]:checked::after {
    color: #111 !important;
    background: transparent !important;
    opacity: 1 !important;
}

/* Geometry: keep the glyph optically centred and always inside the box in
   every mode. The box is 1.3vw x 2.5vh (19px x 19px <=600px); the glyph is
   sized from the box, never from the surrounding text, so a font step can
   never push it outside. */
html body.pojo-a11y-high-contrast .wpcf7-checkbox input[type="checkbox"]:checked::after,
html body.pojo-a11y-negative-contrast .wpcf7-checkbox input[type="checkbox"]:checked::after,
html body.pojo-a11y-light-background .wpcf7-checkbox input[type="checkbox"]:checked::after,
html body.pojo-a11y-grayscale .wpcf7-checkbox input[type="checkbox"]:checked::after {
    /* no font-size here on purpose: at rest the theme's own 0.8vw / 11px rule
       applies, and once a step is active the gated rule in Section 4 (which
       carries `.elementor` to out-specify this one) sizes the glyph from the
       box instead. */
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: auto !important;
    height: auto !important;
    display: block !important;
    visibility: visible !important;
}


/* ==========================================================================
   Section 8 — BREAKPOINT BLOCKS
   --------------------------------------------------------------------------
   Emitted in the theme's own source order: 767px (responsive.css, the inline
   accessibility block, post-2.css) before 600px (the inline contact-form
   block), so the narrower band still wins inside 600px exactly as it does in
   the theme today.
   ========================================================================== */

@media (max-width: 767px) {

    /* --- Section 5 mobile heading pair (post-2.css) --- */
    html body[class*="pojo-a11y-resize-font-"] .elementor-2 .elementor-element.elementor-element-5193ea6 .elementor-heading-title {
        font-size: calc(16px * var(--a11y-scale)) !important;
    }
    /* ff366fd is intentionally NOT reset to the theme's 8px here: it has to
       stay the same size as the consent label, whose base formula
       (max(13px, 0.6vw) * form-curve) applies from 601px up. The matching
       mobile value is set in the 600px block below. */

    /* --- Section 4b privacy modal (responsive.css) --- */
    html body[class*="pojo-a11y-resize-font-"] .privacy-wrapper .privacy-content h2 {
        font-size: calc(16px * var(--a11y-scale)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"] .privacy-wrapper .privacy-content p,
    html body[class*="pojo-a11y-resize-font-"] .privacy-wrapper .privacy-content li,
    html body[class*="pojo-a11y-resize-font-"] .privacy-wrapper .privacy-content a {
        font-size: calc(12px * var(--a11y-scale)) !important;
    }

    /* --- Section 6 toolbar menu items (responsive.css: toolbar = 14px) --- */
    html body[class*="pojo-a11y-resize-font-"] #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-"] #pojo-a11y-toolbar .pojo-a11y-toolbar-overlay ul.pojo-a11y-toolbar-items li.pojo-a11y-toolbar-item a span {
        font-size: calc(11.2px * var(--a11y-scale-menu)) !important;
    }
}

@media (max-width: 600px) {

    /* --- Section 4 form controls (inline contact-form block) --- */
    html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout input[type="text"],
    html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout input[type="tel"],
    html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout input[type="email"] {
        font-size: calc(14px * var(--a11y-scale-form)) !important;
        padding-top: calc(14px * var(--a11y-scale-form) * 0.35) !important;
        padding-bottom: calc(14px * var(--a11y-scale-form) * 0.35) !important;
        padding-right: 10px !important;
    }
    html body[class*="pojo-a11y-resize-font-"] .checkbox-row-vertical .wpcf7-submit,
    html body[class*="pojo-a11y-resize-font-"] .cf7-vertical-layout .wpcf7-submit,
    html body[class*="pojo-a11y-resize-font-"] .wpcf7-submit {
        font-size: calc(16px * var(--a11y-scale-form)) !important;
        padding-top: calc(16px * var(--a11y-scale-form) * 0.3) !important;
        padding-bottom: calc(16px * var(--a11y-scale-form) * 0.3) !important;
        flex-shrink: 0 !important;
        width: auto !important;
        min-width: 53% !important;
        padding-left: calc(16px * var(--a11y-scale-form) * 0.7) !important;
        padding-right: calc(16px * var(--a11y-scale-form) * 0.7) !important;
    }
    html body[class*="pojo-a11y-resize-font-"] .elementor .wpcf7-list-item-label,
    html body[class*="pojo-a11y-resize-font-"] .wpcf7-list-item-label,
    html body[class*="pojo-a11y-resize-font-"] .elementor-2 .elementor-element.elementor-element-66a1b36 .elementor-heading-title,
    html body[class*="pojo-a11y-resize-font-"] .elementor-2 .elementor-element.elementor-element-ff366fd .elementor-heading-title {
        font-size: calc(11px * var(--a11y-scale-form)) !important;
        line-height: 1.4 !important;
    }
    html body[class*="pojo-a11y-resize-font-"] .wpcf7 form .wpcf7-response-output,
    html body[class*="pojo-a11y-resize-font-"] .wpcf7-response-output {
        font-size: calc(12px * var(--a11y-scale-form)) !important;
    }
    html body[class*="pojo-a11y-resize-font-"] .wpcf7-not-valid-tip,
    html body[class*="pojo-a11y-resize-font-"] .elementor .wpcf7-not-valid-tip {
        font-size: calc(11px * var(--a11y-scale-error)) !important;
    }

    /* Checkbox box + first-line alignment at the mobile label size (11px)
       and mobile box (19px). Same formula as the base rule in Section 4. */
    html body[class*="pojo-a11y-resize-font-"] .wpcf7-checkbox input[type="checkbox"],
    html body[class*="pojo-a11y-resize-font-"] .elementor .wpcf7-checkbox input[type="checkbox"] {
        --a11y-cb-label: calc(11px * var(--a11y-scale-form));
        --a11y-cb-size: max(19px, calc(var(--a11y-cb-label) * 1.15));
    }
}
