/* Site language controls and script-aware typography.
   The English page keeps its authored type and line composition. Localized
   copies may wrap naturally. Iframe documents keep their own styles. */
html[data-site-locale] {
  --site-locale-font: "Inter", system-ui, -apple-system, sans-serif;
}
html[data-site-locale][lang="he"] {
  --site-locale-font: "SKARR Noto Sans Hebrew", "Inter", Arial, sans-serif;
}
html[data-site-locale][lang="ja"] {
  --site-locale-font: "SKARR Noto Sans JP", "Inter", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}
html[data-site-locale][lang="ko"] {
  --site-locale-font: "SKARR Noto Sans KR", "Inter", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

.site-language {
  position: fixed;
  left: max(16px, env(safe-area-inset-left));
  bottom: calc(80px + env(safe-area-inset-bottom));
  z-index: 125;
  width: max-content;
  max-width: calc(100vw - 32px);
  color: #0d1015;
  font-family: var(--site-locale-font, "Inter", sans-serif);
  direction: ltr;
  -webkit-tap-highlight-color: transparent;
}
.site-language details { position: relative; }
.site-language-trigger {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 76px;
  height: 48px;
  margin: 0;
  padding: 0 16px;
  border: 1px solid #0d1015;
  border-radius: 999px;
  background: var(--plate, #e4e5e6);
  color: #0d1015;
  font: 600 13px/20px "Inter", sans-serif;
  letter-spacing: .035em;
  list-style: none;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  transition: background-color 160ms ease-out, color 160ms ease-out, box-shadow 160ms ease-out;
}
.site-language-trigger::-webkit-details-marker { display: none; }
.site-language-trigger::marker { content: ""; }
.site-language-trigger > svg { display: block; flex: 0 0 19px; width: 19px; height: 19px; }
.site-language-label { display: none; }
/* The outline belongs to focus, so the keyline of the dark fill is two inset
   shadows: the gap in the fill colour, then the line (Alexa, 26.10.2026). */
.site-language-trigger:hover,
.site-language-trigger:active,
.site-language details[open] > .site-language-trigger {
  background: #0d1015;
  color: var(--ww, #ecedee);
  box-shadow: inset 0 0 0 var(--btn-keyline-gap, 2px) #0d1015,
              inset 0 0 0 calc(var(--btn-keyline-gap, 2px) + var(--btn-keyline-w, 1px)) var(--ww, #ecedee);
}
.site-language-trigger:focus-visible { outline: 2px solid #ecedee; outline-offset: 3px; }
.site-language-panel {
  position: absolute;
  bottom: calc(100% + 10px);
  left: 0;
  width: min(288px, calc(100vw - 32px));
  max-height: calc(100vh - 160px - env(safe-area-inset-bottom));
  max-height: calc(100dvh - 160px - env(safe-area-inset-bottom));
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 8px;
  border-radius: 16px;
  background: #ecedee;
  color: #0d1015;
  box-shadow: 0 12px 36px rgb(0 0 0 / 24%);
  scrollbar-width: thin;
  scrollbar-color: #9ca1a6 transparent;
}
.site-language-heading {
  margin: 0;
  padding: 10px 12px 12px;
  color: #535a61;
  font: 500 13px/20px var(--site-locale-font, "Inter", sans-serif);
  text-align: start;
}
.site-language-panel nav { display: grid; gap: 2px; }
.site-language-panel a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 10px;
  color: #0d1015;
  font: 400 15px/22px "Inter", sans-serif;
  text-decoration: none;
  text-align: start;
  overflow-wrap: anywhere;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
}
.site-language-panel a:hover,
.site-language-panel a:active,
.site-language-panel a[aria-current="true"] { background: #d9dcdf; }
.site-language-panel a[aria-current="true"] { font-weight: 600; }
.site-language-panel a:focus-visible { outline: 2px solid #0d1015; outline-offset: -2px; }
.site-language-panel a > svg { flex: 0 0 18px; width: 18px; height: 18px; }
.site-language-panel a:not([aria-current="true"]) > svg { visibility: hidden; }
/* Every name starts at the left edge, Hebrew too; the word itself still reads
   right to left (Alexa, 31.10.2026). */
.site-language-panel a[dir="rtl"] { direction: ltr; }
.site-language-panel a[dir="rtl"] > span { direction: rtl; unicode-bidi: isolate; }

/* Existing component font shorthands explicitly name Inter. Supply a script
   face to those text nodes only; native application documents are not touched. */
html[data-site-locale]:is([lang="he"], [lang="ja"], [lang="ko"]) body,
html[data-site-locale]:is([lang="he"], [lang="ja"], [lang="ko"]) :is(
  h1, h2, h3, h4, h5, h6, p, li, dt, dd, label, input, textarea, select,
  button, a, summary, small, figcaption, legend, th, td, span, strong, em
):not(.site-language *):not(dialog[lang] *) {
  font-family: var(--site-locale-font);
}
html[data-site-locale] .site-language-panel a[lang="he"] {
  font-family: "SKARR Noto Sans Hebrew", "Inter", Arial, sans-serif;
}
html[data-site-locale] .site-language-panel a[lang="ja"] {
  font-family: "SKARR Noto Sans JP", "Inter", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}
html[data-site-locale] .site-language-panel a[lang="ko"] {
  font-family: "SKARR Noto Sans KR", "Inter", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

/* Authored English no-wrap lines are not transferable to another language. */
html[data-site-locale]:not([lang="en"]) :is(
  .hero-title, .hero-line, .hero-sub-row, .sps-title, .sp-head h1,
  .wp-h1, .wp-h2, .wp-h3, .ha-title, .ha-demo-title, .nxt-title,
  .ltk-title, .ltk-card-title, .lab-h2
) { overflow-wrap: break-word; }
html[data-site-locale]:not([lang="en"]) .hero-line {
  flex-wrap: wrap;
  white-space: normal;
  text-wrap: balance;
}
html[data-site-locale]:not([lang="en"]) .hero-title > .hero-line:not(.hero-line--split) { display: block; }
html[data-site-locale]:not([lang="en"]) .hero-title .hero-closing-end { display: inline; }
html[data-site-locale]:not([lang="en"]) .lab--home .hero-sub {
  max-inline-size: min(100%, 64ch);
  margin-inline: auto;
  text-wrap: pretty;
}
html[data-site-locale]:not([lang="en"]) .lab--home .hero-sub-variant { display: none; }
html[data-site-locale]:not([lang="en"]) .lab--home .hero-sub-variant--wide { display: inline; }
html[data-site-locale]:not([lang="en"]) .lab--home .hero-sub-row { display: inline; white-space: normal; }
html[data-site-locale]:not([lang="en"]) :is(.wp-nw, .home-text-nowrap, .pc-nw, .wp-local .ls-phrase) { white-space: normal; }
html[data-site-locale][lang="he"] .wp-local .ls-hero h1 br { display: none; }
html[data-site-locale]:not([lang="en"]) .ls-project { min-inline-size: 0; }
html[data-site-locale]:not([lang="en"]) :is(.hdr-menu, .hdr-left, .hdr-right, .sps-copy, .sps-head, .ha-heading) { min-width: 0; }
html[data-site-locale]:not([lang="en"]) .mini-action {
  width: auto;
  min-width: var(--mini-width, 174px);
  max-width: calc(100vw - 76px);
}
html[data-site-locale]:not([lang="en"]) .mini-action .hdr-cta { width: auto; min-width: 100%; }
html[data-site-locale]:not([lang="en"]) .dock-route { padding-block: 10px; text-align: start; }
html[data-site-locale]:not([lang="en"]) .cse-nda-name { min-inline-size: 0; overflow-wrap: break-word; }

/* The form's offscreen spam trap must not enlarge an RTL scroll canvas.
   It stays present and fillable for bots, but has no visual or focus footprint. */
html[data-site-locale] input[name="company_website"][aria-hidden="true"] {
  left: auto !important;
  right: auto !important;
  inset-inline-start: 0 !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap;
}

/* CJK needs natural script line breaking and more vertical room. */
html[data-site-locale][lang="ja"] body { line-break: strict; word-break: normal; }
html[data-site-locale][lang="ko"] body { word-break: keep-all; overflow-wrap: break-word; }
html[data-site-locale]:is([lang="ja"], [lang="ko"]) :is(
  h1, h2, h3, h4, p, li, dt, dd, label, button, summary,
  .hero-title, .sps-title, .wp-h1, .wp-h2, .wp-h3, .ha-title,
  .lab-h2, .ha-demo-title, .nxt-title, .ltk-title, .ltk-card-title
):not(dialog[lang] *) { letter-spacing: 0; text-transform: none; }
html[data-site-locale]:is([lang="ja"], [lang="ko"]) :is(
  .hero-title, .sps-title, .wp-h1, .wp-h2, .wp-h3, .ha-title,
  .lab-h2, .ha-demo-title, .nxt-title, .ltk-title, .ltk-card-title,
  .ls-hero h1, .ls-h2, .sd h2
) { line-height: 1.28; }
html[data-site-locale][lang="ja"] .sd-hero h2 { word-break: keep-all; overflow-wrap: break-word; }
html[data-site-locale][lang="ja"]:has(.sd--product) .sp-title { text-wrap: balance; }
html[data-site-locale]:is([lang="ja"], [lang="ko"]) :is(
  .hero-sub, .lab-lead, .sps-lead, .sps-support, .wp-lead, .wp-body,
  .ha-lead, .ha-benefit-copy, .ltk-card-sub, .ltk-row-desc
) { line-height: 1.65; }

/* Hebrew follows reading order. Product names, URLs and phone screens retain
   their own LTR direction; the dock keeps its established physical corner. */
html[data-site-locale][lang="he"] :is(h1, h2, h3, h4, p, label, button, summary, .hdr-cta-label, .ltk-row-action, .footer-legal a):not(dialog[lang] *) {
  letter-spacing: 0;
  text-transform: none;
}
html[data-site-locale][lang="he"] :is(.hero-title, .wp-h1, .wp-h2, .sps-title, .ltk-title, .ltk-card-title, .ls-hero h1) { line-height: 1.2; }
html[data-site-locale][lang="he"] :is(.ha-status, .pcv-status) { direction: ltr; }
/* Alexa 26.10.2026: in Hebrew the logo mirrors as a whole. The circle takes
   the right-hand corner and the wordmark follows it towards the centre; the
   wordmark image itself is not mirrored. Edge fields swap sides with it. */
html[data-site-locale][lang="he"] :is(.hdr-logo, .mini) { direction: rtl; }
html[data-site-locale][lang="he"] .hdr-left { padding-right: 2px; padding-left: 8px; }
html[data-site-locale][lang="he"] .hdr-logo { padding-right: 0; padding-left: 8px; }
html[data-site-locale][lang="he"] .mini { padding: 2px 2px 2px 14px; }
html[data-site-locale][lang="he"] .site-language-heading { direction: rtl; }
/* The first section title shares the fold with the physical right-hand dock.
   Keep its Hebrew reading order while placing this one label on the left. */
html[data-site-locale][lang="he"] .lab--home #services > .lab-sechead {
  align-items: flex-end;
  text-align: left;
}
html[data-site-locale][lang="he"] .mini { left: auto; right: var(--g, 24px); }
html[data-site-locale][lang="he"] .mini-action { right: auto; left: var(--g, 24px); }
html[data-site-locale][lang="he"] .hdr-cta { margin-left: 2px; margin-right: auto; }
html[data-site-locale][lang="he"] .hdr-offers .offers-links { left: auto; right: 0; }
html[data-site-locale][lang="he"] .site-offers .offers-chevron { margin-left: 0; margin-inline-start: auto; }
html[data-site-locale][lang="he"] :is(.dock-count, .wp-brief-row-action) { margin-left: 0; margin-inline-start: auto; }
html[data-site-locale][lang="he"] :is(.dock-route, .dock-item, .wp-input, .ltk-input, .offer-project-field) { text-align: start; }
html[data-site-locale][lang="he"] .ltk-field-icon { left: auto; right: var(--ltk-field-pad); }
html[data-site-locale][lang="he"] .ltk-field input {
  padding-left: var(--ltk-field-pad);
  padding-right: calc(var(--ltk-field-pad) * 2 + var(--ltk-field-icon));
  text-align: start;
}
html[data-site-locale][lang="he"] input:is([type="email"], [type="tel"], [type="url"]):not(dialog[lang] *) { direction: ltr; text-align: left; }
html[data-site-locale][lang="he"] input:is([type="email"], [type="tel"], [type="url"]):placeholder-shown:not(dialog[lang] *) { direction: rtl; text-align: right; }
html[data-site-locale][lang="he"] .ltk-channel-address { direction: ltr; unicode-bidi: isolate; }
html[data-site-locale][lang="he"] :is(.ltk-arrow, .ltk-send-arrow, .wp-brief-arrow, .wp-case-arrow) { scale: -1 1; }
html[data-site-locale][lang="he"] .ha-bank-open { padding-left: 0; padding-right: 18px; border-radius: 0 999px 999px 0; }
/* The phone composition uses physical offsets. Keep its frame LTR while
   Hebrew scenarios retain their own reading order and leading marker. */
html[data-site-locale][lang="he"] #digital-products .product-demo { direction: ltr; }
html[data-site-locale][lang="he"] .product-demo-scenarios { direction: rtl; text-align: start; }
html[data-site-locale][lang="he"] .product-demo-scenario { text-align: start; padding-inline: 16px 4px; }
html[data-site-locale][lang="he"] .product-demo-scenario::before { left: auto; right: 2px; }

@media (min-width: 720px) and (max-width: 1279.98px) {
  /* The full capsule remains; long translated navigation uses its dock copy. */
  html[data-site-locale]:not([lang="en"]) .hdr-menu { gap: 4px; }
  html[data-site-locale]:not([lang="en"]) .hdr-menu-item { padding-inline: 12px; }
}
@media (max-width: 1023.98px) {
  /* Longer NDA labels keep their blur row; the project title gets its own
     readable row instead of a narrow remainder beside a translated pill. */
  html[data-site-locale]:not([lang="en"]) .cse-title--nda {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 12px 0;
  }
  html[data-site-locale]:not([lang="en"]) .cse-redacted {
    grid-area: 1 / 1;
    max-inline-size: 100%;
    overflow-wrap: break-word;
  }
  html[data-site-locale]:not([lang="en"]) .cse-nda-label {
    grid-area: 1 / 1;
    justify-self: start;
    max-inline-size: 100%;
    height: auto;
    min-height: 26px;
    padding-block: 5px;
  }
  html[data-site-locale]:not([lang="en"]) .cse-nda-name { grid-area: 2 / 1; }
}
@media (max-width: 719.98px) {
  .site-language-trigger { min-width: 72px; height: 44px; padding-inline: 14px; }
  html[data-site-locale]:not([lang="en"]) .mini-action { min-width: 0; }
  html[data-site-locale]:not([lang="en"]) .hero-title > .hero-line { white-space: normal; }
  html[data-site-locale]:not([lang="en"]) :is(.hero-actions, .cse-foot, .sd-faq-more, .csp-actions) .lab-btn {
    min-inline-size: 0;
    max-inline-size: 100%;
    height: auto;
    min-height: 56px;
    max-height: none;
    padding-block: 16px;
    white-space: normal;
    text-align: center;
    text-wrap: balance;
  }
  html[data-site-locale]:not([lang="en"]) :is(.sd-actions, .sd-case-copy) .wp-btn {
    min-inline-size: 0;
    max-inline-size: 100%;
    height: auto;
    max-height: none;
    padding-block: 14px;
    white-space: normal;
    text-align: center;
    text-wrap: balance;
  }
  html[data-site-locale]:not([lang="en"]) .sps-card { min-inline-size: 0; }
  html[data-site-locale]:not([lang="en"]) .sps-tags .svc-chip {
    min-inline-size: 0;
    max-inline-size: 100%;
    height: auto;
    min-height: 34px;
    white-space: normal;
    text-wrap: balance;
  }
  html[data-site-locale]:not([lang="en"]) .ha-choices { min-inline-size: 0; }
  html[data-site-locale]:not([lang="en"]) .ha-coming {
    min-inline-size: 0;
  }
  html[data-site-locale]:not([lang="en"]) .ha-coming span { white-space: normal; }
  html[data-site-locale][lang="pt"] .pd-hero-copy { min-inline-size: 0; }
  html[data-site-locale][lang="pt"] .pd-hero-copy h1 {
    overflow-wrap: break-word;
    hyphens: auto;
    hyphenate-limit-chars: 8 4 4;
  }
  html[data-site-locale][lang="ja"] .hero-title :is(.hero-seg, .hero-closing-end) {
    display: inline-block;
    white-space: nowrap;
  }
  html[data-site-locale][lang="he"] :is(.hdr[data-cta="always"], .hdr:not([data-cta="always"]) .hdr-bar:not(:has(.hdr-right))) .hdr-left {
    padding-right: 2px;
    padding-left: calc(var(--hdr-control) / 2 + 2px);
  }
  html[data-site-locale][lang="he"] :is(.hdr[data-cta="always"], .hdr:not([data-cta="always"]) .hdr-bar:not(:has(.hdr-right))) .hdr-logo { padding-left: 0; }
  html[data-site-locale][lang="he"] .mini { padding-left: 2px; }
  html[data-site-locale][lang="he"] .sd-hero h2 {
    line-height: 1.2;
  }
  html[data-site-locale][lang="he"] .sd-hero h2 > span { display: block; text-wrap: balance; }
}
@media (max-width: 374.98px) {
  /* The English action also exceeds its card by 5px at 320px. Preserve its
     type size and let the same mobile content-button geometry wrap it. */
  html[data-site-locale][lang="en"] .sd-faq-more .lab-btn {
    min-inline-size: 0;
    max-inline-size: 100%;
    height: auto;
    min-height: 56px;
    max-height: none;
    padding-block: 16px;
    white-space: normal;
    text-align: center;
    text-wrap: balance;
  }
  /* Leistungen and the German close label cannot share the 320px fold row.
     Keep the hero composition, then reveal the section after a short scroll. */
  html[data-site-locale][lang="de"] .lab--home .hero--center {
    min-height: 100vh;
    min-height: 100svh;
    min-height: 100dvh;
    padding-bottom: calc(17.92px + var(--hero-fold-reserve));
  }
}
@media (max-width: 325.98px) {
  /* Below 326px the first authored English row is wider than its measure.
     Keep the 32px side margins and all other authored rows. */
  html[data-site-locale][lang="en"] .lab--home .hero-sub-variant--compact .hero-sub-row:first-child {
    white-space: normal;
    text-wrap: balance;
  }
}
/* Translated content actions must fit their actual column at every width,
   including narrow columns on desktop. Keep the authored type and let the
   button grow when its label needs another line. */
html[data-site-locale]:not([lang="en"]) .lab-btn:not(.product-demo-reset) {
  min-inline-size: 0;
  max-inline-size: 100%;
  height: auto;
  max-height: none;
  padding-block: 16px;
  white-space: normal;
  text-align: center;
  text-wrap: balance;
}
html[data-site-locale]:not([lang="en"]) .sps-buy-item > .lab-btn { flex: 1; }
/* A stretched grid row must not derive the cover's width from its height. */
html[data-site-locale]:not([lang="en"]) .cse-media--classified { width: 100%; }
/* The four demo steps keep complete labels even on a narrow phone. */
@media (max-width: 719.98px) {
  html[data-site-locale]:not([lang="en"]) .ims-focus-controls {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 600px) and (max-width: 899.98px) {
  /* Portuguese picture captions need the full two-card row on small tablets. */
  html[data-site-locale][lang="pt"] .pd-hero-product { grid-row: 1; }
  html[data-site-locale][lang="pt"] .pd-hero-notes { grid-column: 1 / -1; grid-row: 2; }
}
/* Give long Cyrillic comparison labels a readable tablet column. */
@media (min-width: 720px) and (max-width: 1023.98px) {
  html[data-site-locale]:is([lang="ru"], [lang="uk"]) .cmp-table :is(th[scope="row"], .cmp-corner) { width: 25%; }
}

/* One control follows the existing header / compact CTA / Menu states.
   The unmounted control remains a functional no-JavaScript / 404 fallback. */
.site-language-actions { display: contents; }
.site-language:is([data-placement="header"], [data-placement="compact"], [data-placement="menu"]) {
  position: relative;
  inset: auto;
  z-index: auto;
  flex: none;
  max-width: 100%;
}
.site-language:is([data-placement="header"], [data-placement="compact"]) .site-language-panel {
  top: calc(100% + 10px);
  bottom: auto;
  left: auto;
  right: 0;
  max-height: calc(100dvh - 116px);
}
html[lang="he"] .site-language:is([data-placement="header"], [data-placement="compact"]) .site-language-panel {
  left: 0;
  right: auto;
}
.site-language[data-placement="menu"] {
  width: 100%;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgb(236 237 238 / 16%);
  direction: inherit;
}
.site-language[data-placement="menu"] .site-language-trigger {
  justify-content: flex-start;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  height: auto;
  padding: 12px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--ww, #ecedee);
  font: 500 15px/20px var(--site-locale-font, "Inter", sans-serif);
  letter-spacing: 0;
}
.site-language[data-placement="menu"] .site-language-label { display: block; flex: 1; text-align: start; }
.site-language[data-placement="menu"] .site-language-trigger > span[dir="ltr"] { font: 600 13px/20px "Inter", sans-serif; }
.site-language[data-placement="menu"] .site-language-trigger:hover,
.site-language[data-placement="menu"] .site-language-trigger:active,
.site-language[data-placement="menu"] details[open] > .site-language-trigger { background: rgb(236 237 238 / 10%); box-shadow: none; }
.site-language[data-placement="menu"] .site-language-panel {
  position: static;
  width: auto;
  max-height: none;
  margin-top: 4px;
  padding: 4px;
  overflow: visible;
  border-radius: 12px;
  box-shadow: none;
  direction: ltr;
}
.site-language[data-placement="menu"] .site-language-heading { display: none; }
.site-language[data-placement="menu"] .site-language-trigger:focus-visible { outline-offset: -2px; }
/* In the dark Menu the open list is an opened section, not a white card
   (Alexa, 31.10.2026): the row and its list share the open row's existing
   10% light; names are Menu items — light text, the plate sweeps in on hover,
   the current language keeps its check and weight instead of a second fill. */
.site-language[data-placement="menu"] details[open] { border-radius: 12px; background: rgb(236 237 238 / 10%); }
.site-language[data-placement="menu"] details[open] > .site-language-trigger:not(:hover, :active, :focus-visible) { background: transparent; }
.site-language[data-placement="menu"] .site-language-panel { margin-top: 0; background: transparent; color: var(--ww, #ecedee); }
.site-language[data-placement="menu"] .site-language-panel a {
  position: relative;
  isolation: isolate;
  color: var(--ww, #ecedee);
  transition: color var(--lab-out, 240ms) linear;
}
.site-language[data-placement="menu"] .site-language-panel a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: var(--plate, #e4e5e6);
  clip-path: inset(0 100% 0 0 round 10px);
  transition: clip-path var(--lab-out, 240ms) var(--lab-ease, ease);
}
.site-language[data-placement="menu"] .site-language-panel a:is(:hover, :active, :focus-visible)::after { clip-path: inset(0 round 10px); transition-duration: var(--lab-in, 300ms); }
.site-language[data-placement="menu"] .site-language-panel a:is(:hover, :active, :focus-visible) { color: #171719; transition-duration: var(--lab-in, 300ms); }
.site-language[data-placement="menu"] .site-language-panel a:is(:hover, :active, [aria-current="true"]) { background: transparent; }
.site-language[data-placement="menu"] .site-language-panel a:focus-visible { outline-color: var(--ww, #ecedee); }
@media (min-width: 1024px) {
  /* Balance the Japanese product phrase as its own line group. */
  html[data-site-locale][lang="ja"] .sd--product #sd-title > span {
    display: block;
    word-break: normal;
    text-wrap: balance;
  }
  .site-language-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: none;
    margin: 0 2px 0 auto;
    direction: ltr;
  }
  html[data-site-locale] .site-language-actions > .hdr-cta { margin: 0; }
  /* Hebrew mirrors the pair too (Alexa 26.10.2026): the project action holds
     the left-hand corner, the language control follows it towards the centre. */
  html[data-site-locale][lang="he"] .site-language-actions { margin: 0 auto 0 2px; flex-direction: row-reverse; }
  html[data-site-locale][lang="he"] .site-language-actions > .hdr-cta { direction: rtl; }
  .site-language[data-placement="header"] .site-language-trigger { height: 48px; }
  html[data-site-locale] .mini-action[data-mini-action]:has(> .site-language) {
    width: auto;
    min-width: 0;
    gap: 8px;
    direction: ltr;
  }
  html[data-site-locale] .mini-action[data-mini-action]:has(> .site-language) > .hdr-cta { width: auto; min-width: 0; margin: 0; }
  html[data-site-locale][lang="he"] .mini-action[data-mini-action]:has(> .site-language) { flex-direction: row-reverse; }
  html[data-site-locale][lang="he"] .mini-action:has(> .site-language) > .hdr-cta { direction: rtl; }
  .site-language[data-placement="compact"] .site-language-trigger { height: 40px; min-width: 72px; padding-inline: 12px; }
}
@media (min-width: 1024px) and (max-width: 1279.98px) {
  /* The existing compact navigation leaves room for every translated CTA. */
  .hdr:has(.site-language-actions) .hdr-menu .hdr-offers,
  .hdr:has(.site-language-actions) .hdr-menu > .hdr-menu-item { display: none; }
  .hdr:has(.site-language-actions) .hdr-menu > a[href$="/cases/"] { display: flex; }
}
@media (min-width: 1280px) and (max-width: 1399.98px) {
  /* Keep the established compact spacing until long translated labels fit
     alongside the language control; font sizes and all menu items stay. */
  .hdr:has(.site-language-actions) .hdr-menu { gap: 4px; }
  .hdr:has(.site-language-actions) .hdr-menu-item { padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-language-trigger { transition: none; }
}
@media (forced-colors: active) {
  .site-language-trigger, .site-language-panel { border: 1px solid ButtonText; }
  .site-language-trigger:focus-visible, .site-language-panel a:focus-visible { outline-color: Highlight; }
  .site-language-panel a[aria-current="true"] { outline: 1px solid Highlight; outline-offset: -2px; }
}
@media print {
  .site-language { display: none; }
}

/* Translated hero: the open tile never re-wraps its line (law #070).
   js measures, at rest, the free space left in the tile's own flex row and
   the caption's natural width; the open tile takes no more than its rest
   width plus that space. The caption shows what fits: name + link, name
   only, or nothing (the whole tile is the link). English is untouched:
   the script does not run there and these rules are scoped away from it. */
html[data-site-locale]:not([lang="en"]) .hero-title .hero-frag.is-open[data-open-max] {
  width: min(max(4.2em, 288px, var(--frag-cap-full, 0px)), var(--frag-open-max));
}
html[data-site-locale]:not([lang="en"]) .hero-title .hero-frag[data-cap="name"] .hero-frag-cap em { display: none; }
html[data-site-locale]:not([lang="en"]) .hero-title .hero-frag[data-cap="none"] .hero-frag-cap { display: none; }

/* Card chips keep the phone's 34px geometry up to 1024px, so long translated
   chips wrap the same way there instead of leaving the screen (RU/UK Dealer
   at 720 measured 737/724 px). A chip that fits stays on one line. */
@media (min-width: 720px) and (max-width: 1024.98px) {
  html[data-site-locale]:not([lang="en"]) .sps-card { min-inline-size: 0; }
  html[data-site-locale]:not([lang="en"]) .sps-tags .svc-chip {
    min-inline-size: 0;
    max-inline-size: 100%;
    height: auto;
    min-height: 34px;
    white-space: normal;
    text-wrap: balance;
  }
}
