/* V34 -- typography, controls and spacing (docs/V34/PB_V34_051807Z/PB_V34_THURSDAY_MORNING/SPEC/V34/MASTER_HE.md §טיפוגרפיה,
   §צבעים ומראה, §כפתורים וריווח, §שדות; UX corrections U03 / U10 / U14; findings F06 / F19). Linked LAST by _Layout, so it wins
   over the legacy layers without rewriting them. Values come from the V34 block of pb-tokens.css; colours only from the theme
   blocks there (light / system / dark / black). Explicit font-size / line-height / font-weight -- never the font shorthand (U14).
   Nothing here hides overflow globally, disables zoom or uses 100vw inside the sidebar content. */

/* ---- fonts: the existing LOCAL variable files (Content/v20, weights 100-900, swap) re-declared here so they win over the static
   ttf fallback faces of pb-tokens.css for the scripts they cover; no CDN, no new file. No synthetic bold / italic. ---- */
@font-face { font-family: "Heebo"; src: url("../v20/heebo-hebrew.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; }
@font-face { font-family: "Heebo"; src: url("../v20/heebo-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; src: url("../v20/inter-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122, U+2212; }

html { font-synthesis: none; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
    font-family: var(--pb-font-family);
    font-size: var(--pb-text-body, 16px);
    line-height: var(--pb-lh-body, 26px);
    font-weight: var(--pb-weight-regular, 400);
    font-synthesis: none;
}
/* no artificial letter-spacing on Hebrew text (inherited tracking from legacy display classes is reset) */
html[lang="he"] body :not(.pb-brand__name) { letter-spacing: normal !important; }
[lang="he"] :not(.pb-brand__name) { letter-spacing: normal !important; }

/* ---- headings: H1 24/32 mobile, 28/38 tablet, 32/42 desktop (tokens), H2 20/28, H3 17/25 ---- */
h1, .pb-h1 { font-size: var(--pb-text-h1); line-height: var(--pb-lh-h1); font-weight: var(--pb-weight-h1, 700); }
h2, .pb-h2 { font-size: var(--pb-text-h2); line-height: var(--pb-lh-h2); font-weight: var(--pb-weight-h2, 700); }
h3, .pb-h3 { font-size: var(--pb-text-h3); line-height: var(--pb-lh-h3); font-weight: var(--pb-weight-h3, 600); }
h1, h2, h3 { overflow-wrap: anywhere; }   /* essential text wraps, never clipped */
h1[data-pb-v34-heading]:focus { outline: none; }   /* programmatic focus target of a view change (pb-v30-shell.js) */
/* V45-UI-001: no heading frame in focus-visible; shared guard in pb-v42-header.css. */

/* ---- label / nav 16/24, meta 14/22 ---- */
label, legend, .pb-form-group label, .pb-label {
    font-size: var(--pb-text-label, 16px);
    line-height: var(--pb-lh-label, 24px);
}
legend, .pb-label, .pb-form-group label:not(:has(input, select, textarea)), label:not(:has(input, select, textarea)) {
    font-weight: var(--pb-weight-label, 600);
}
.pb-v32-link, .pb-space-link, .pb-browse-link, .pb-topnav a, .pb-v32-me-nav a {
    font-size: var(--pb-text-nav, 16px);
    line-height: var(--pb-lh-nav, 24px);
    font-weight: var(--pb-weight-nav, 500);
}
.pb-v32-link[aria-current] { font-weight: var(--pb-weight-semibold, 600); }
small, .pb-meta, .pb-tiny, .pb-muted.pb-tiny, .pb-help-text, .field-validation-error, .pb-field-help {
    font-size: var(--pb-text-meta, 14px);
    line-height: var(--pb-lh-meta, 22px);
}

/* ---- controls: border = the CONTROL token (not the divider line); radius 8; native controls follow light / dark (U10) ---- */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="color"]),
select, textarea, .pb-input, .pb-select, .pb-textarea {
    border-color: var(--pb-control-border);
    border-radius: var(--pb-radius-control, 8px);
    min-height: var(--pb-touch-target, 48px);
    font-size: var(--pb-text-body, 16px);   /* 16px: no zoom-on-focus on mobile */
    line-height: var(--pb-lh-label, 24px);
}
textarea { min-height: calc(var(--pb-touch-target, 48px) * 2); }
input, select, textarea, button { color-scheme: inherit; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--pb-action-primary); }
select[data-pb-options="unavailable"] { color: var(--pb-text-secondary); }

/* ---- buttons: target 48x48, primary 52 (#BD006E / #A50061 / #880050 with white, from the theme tokens) ---- */
.pb-btn { min-height: var(--pb-h-button-secondary, 48px); min-width: var(--pb-touch-target, 48px); border-radius: var(--pb-radius-control, 8px); }
.pb-btn:not(.pb-btn-outline):not(.pb-btn-ghost):not(.pb-btn-sm):not(.pb-btn-secondary):not(.pb-btn-link):not(.pb-btn-danger) { min-height: var(--pb-h-button-primary, 52px); }
.pb-btn.pb-btn-sm, .pb-btn-icon, .pb-v30-toggle, .pb-v32-menu, .pb-v32-close, .pb-v32-disclose { min-height: var(--pb-touch-target, 48px); min-width: var(--pb-touch-target, 48px); }
.pb-card, .pb-r920-card { border-radius: var(--pb-radius-card, 16px); }

/* ---- page gutters 32 desktop / 24 tablet / 16 mobile; inner forms <= 640; nothing 100vw inside the sidebar content ---- */
body.pb-v32 .pb-v32-main { padding: var(--pb-gutter, 32px); }
.pb-form, .pb-form-narrow, .pb-shell--focus main form.pb-form-inner { max-width: var(--pb-form-max, 640px); }
.pb-sb-page [style*="100vw"] { width: 100% !important; max-width: 100% !important; }

/* ---- focus / legal process header (F02 / F15): title + Back + Help (+ Cancel when the source has one) ---- */
.pb-v34-process-title {
    margin: 0;
    min-width: 0;
    flex: 1 1 auto;
    font-size: var(--pb-text-label, 16px);
    line-height: var(--pb-lh-label, 24px);
    font-weight: var(--pb-weight-semibold, 600);
    color: var(--pb-text-primary);
    overflow-wrap: anywhere;
}
.pb-shell-focus .pb-back-link, .pb-shell-focus .pb-shell-help, .pb-shell-focus .pb-v34-cancel-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: var(--pb-touch-target, 48px);
    min-width: var(--pb-touch-target, 48px);
    padding-inline: 8px;
    font-size: var(--pb-text-nav, 16px);
    line-height: var(--pb-lh-nav, 24px);
    font-weight: var(--pb-weight-nav, 500);
}
.pb-shell-focus .pb-v34-cancel-link { color: var(--pb-text-secondary); }
@media (max-width: 767.98px) {
    /* the page's own H1 names the process on a phone; the header keeps Back / Help / Cancel only */
    .pb-v34-process-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
}

/* ---- header at 320px (U03 / F19): the brand stays a home link with its logo; the wordmark gives way; controls keep 48 ---- */
.pb-header .pb-brand { min-height: var(--pb-touch-target, 48px); min-width: var(--pb-touch-target, 48px); }
@media (max-width: 479.98px) {
    .pb-header .pb-brand__name { display: none; }
    .pb-header .pb-brand--r4 { gap: 0; }
    .pb-header-row { gap: 4px; }
    .pb-header-end { gap: 4px; min-width: 0; }
    .pb-header-end > a, .pb-header-end > button, .pb-header-end .pb-btn, .pb-header-end .pb-btn-icon { min-height: var(--pb-touch-target, 48px); min-width: var(--pb-touch-target, 48px); flex-shrink: 0; }
}
@media (min-width: 480px) and (max-width: 767.98px) {
    .pb-header .pb-brand__name { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
}

/* ---- forced colours + reduced motion keep the information (state is never colour-only) ---- */
@media (forced-colors: active) {
    .pb-v32-link[aria-current] { forced-color-adjust: none; outline: 2px solid Highlight; outline-offset: -2px; background: Canvas; color: CanvasText; }
    input, select, textarea { border: 1px solid ButtonText; }
    select[data-pb-options="unavailable"] { color: GrayText; }
    .pb-btn { border: 1px solid ButtonText; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
