/* Esta folha só é ligada pelas páginas montadas por idioma. */
@font-face {
  font-family: 'Brainiall JP';
  src: url(/h/c/vendor/fonts/noto-sans-jp-q03.woff2?v=0fc36802) format('woff2');
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+3000-30FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

:root:lang(ja) {
  --font-display: 'Big Shoulders Display', 'Brainiall JP', -apple-system, sans-serif;
  --font-body: 'Work Sans', 'Brainiall JP', -apple-system, sans-serif;
  --font-mono: 'Azeret Mono', 'Brainiall JP', monospace;
  --font-sans: 'Work Sans', 'Brainiall JP', -apple-system, sans-serif;
  --bs-font-sans: var(--font-body);
  --bs-font-mono: var(--font-mono);
}

/* Invariante também nos estados fixados e nas regras móveis mais específicas. */
:lang(ja) {
  letter-spacing: 0 !important;
}

body:lang(ja) {
  line-break: strict;
  word-break: normal;
  line-height: 1.7;
}

p:lang(ja),
li:lang(ja),
dd:lang(ja),
blockquote:lang(ja),
.sec-lead-copy:lang(ja),
.hero-subhead:lang(ja),
.quadrant-desc:lang(ja),
.stage-body:lang(ja),
.sensor-body:lang(ja),
.case-badge-detail:lang(ja),
.bs-hud-phrase:lang(ja),
.ba-operator-hint:lang(ja) {
  line-break: strict;
  word-break: normal;
  overflow-wrap: anywhere;
  line-height: 1.7 !important;
}

/* Só frases curtas recebem keep-all; o montador insere wbr entre frases. */
.hero-title:lang(ja),
.sec-monumental-title:lang(ja),
h1:lang(ja),
h2:lang(ja),
h3:lang(ja),
h4:lang(ja),
button:lang(ja),
label:lang(ja),
dt:lang(ja),
[role="button"]:lang(ja),
.btn:lang(ja),
[class^="btn-"]:lang(ja),
[class*=" btn-"]:lang(ja),
.topbar-link:lang(ja),
.meta-tag:lang(ja),
.eyebrow:lang(ja),
[class^="badge-"]:lang(ja),
[class*=" badge-"]:lang(ja),
[class*="-kicker"]:lang(ja),
[class*="-label"]:lang(ja),
.hero-scale-badge:lang(ja),
.hud-scale-tag:lang(ja),
.hud-coords:lang(ja),
.sector-pill:lang(ja),
.prod-step-tag:lang(ja),
.stage-scale:lang(ja),
.stage-number:lang(ja),
.telem-lbl:lang(ja),
.telem-simulated:lang(ja),
.cc-badge:lang(ja),
.calc-badge:lang(ja),
.calc-result-lead:lang(ja),
.net-proof-chip:lang(ja),
.ruler-tooltip:lang(ja),
.tick-exp:lang(ja),
.case-index-sector:lang(ja),
.case-index-status:lang(ja),
.case-step:lang(ja),
.case-asof:lang(ja),
.case-badge-title:lang(ja),
.fs-proof-chip:lang(ja),
.ba-scroll-hint:lang(ja),
.ba-scene-tag:lang(ja),
.ba-tag-text:lang(ja),
.ba-loop-node:lang(ja),
.ba-step-txt:lang(ja),
.ba-act-badge:lang(ja),
.ba-chip-ore:lang(ja),
.ba-gauge-name:lang(ja),
.ba-gauge-sub-fixed:lang(ja),
.ba-gauge-sub-ap:lang(ja),
.ba-duel-title:lang(ja),
.ba-sim-seal:lang(ja),
.ba-sim-badge:lang(ja),
.ba-evidence-lead:lang(ja),
.ba-evidence-link:lang(ja),
.ba-rm-step:lang(ja),
.ba-rm-title:lang(ja),
.bs-hud-sector:lang(ja),
.bs-hud-name:lang(ja),
.bs-tag-step:lang(ja),
.bs-toast-text:lang(ja),
.bs-footnote-tag:lang(ja),
.bs-hint-pill:lang(ja) {
  word-break: keep-all;
  overflow-wrap: anywhere;
  white-space: normal;
  line-height: 1.15 !important;
  letter-spacing: 0;
}

/* Painel da vitrine 3D: abas e botões são pílulas de uma linha numa faixa que rola na horizontal. Com a quebra geral
   acima (overflow-wrap: anywhere), o mínimo de cada aba caía para um caractere e «蒸気タービン» virava uma coluna,
   o painel crescia e cobria a dica de arrastar. */
.bs-tab-btn:lang(ja),
.bs-action-btn:lang(ja) {
  white-space: nowrap;
  overflow-wrap: normal;
}

/* A demo tem famílias literais no CSS original; aqui elas usam as mesmas pilhas. */
[data-brainiall-autopilot]:lang(ja),
.ba-step-txt:lang(ja) {
  font-family: var(--font-body);
}

.ba-act-title:lang(ja),
.ba-evidence-lead:lang(ja),
.ba-rm-title:lang(ja) {
  font-family: var(--font-display);
}

.ba-scroll-hint:lang(ja),
.ba-act-btn:lang(ja),
.ba-scene-tag:lang(ja),
.ba-chip-ore:lang(ja),
.ba-loop-node:lang(ja),
.ba-sim-seal:lang(ja),
.ba-duel-title:lang(ja),
.ba-duel-label:lang(ja),
.ba-duel-disclaimer:lang(ja),
.ba-evidence-bridge:lang(ja),
.ba-act-badge:lang(ja),
.ba-evidence-link:lang(ja),
.ba-gauge-name:lang(ja),
.ba-gauge-sub-fixed:lang(ja),
.ba-gauge-sub-ap:lang(ja),
.ba-sim-badge:lang(ja),
.ba-ctrl-label:lang(ja),
.ba-ctrl-btn:lang(ja),
.ba-btn-operator:lang(ja),
.ba-rm-step:lang(ja) {
  font-family: var(--font-mono);
}

p:lang(de),
li:lang(de),
dd:lang(de),
blockquote:lang(de),
p:lang(fr),
li:lang(fr),
dd:lang(fr),
blockquote:lang(fr) {
  hyphens: auto;
}

.hero-title:lang(de),
.sec-monumental-title:lang(de),
h1:lang(de),
h2:lang(de),
h3:lang(de),
h4:lang(de),
.ba-evidence-lead:lang(de),
.ba-rm-title:lang(de),
.bs-hud-name:lang(de),
.hero-title:lang(fr),
.sec-monumental-title:lang(fr),
h1:lang(fr),
h2:lang(fr),
h3:lang(fr),
h4:lang(fr),
.ba-evidence-lead:lang(fr),
.ba-rm-title:lang(fr),
.bs-hud-name:lang(fr) {
  hyphens: manual;
  overflow-wrap: break-word;
}

/* Idiomas latinos: os rótulos da régua são mais longos que os ingleses («Investigación», «Fallstudien», «Études de
   cas») e cortavam a 80 px. A régua ganha 24 px (o conteúdo se desloca pela mesma variável) e o rótulo quebra entre
   palavras. */
:root:lang(es),
:root:lang(fr),
:root:lang(de),
:root:lang(pt) {
  --ruler-width: 104px;
}

.tick-exp:lang(es),
.tick-exp:lang(fr),
.tick-exp:lang(de),
.tick-exp:lang(pt) {
  font-size: 11px;
  white-space: normal;
  overflow-wrap: normal;
  hyphens: manual;
}

/* Atlas, gôndola eólica: a 18 % o cartão «Sensores» em espanhol, francês e português quebra em 6–7 linhas e desce sobre a
   carcaça (medido de 960 a 1440 px). A 21 % cabe em 5; a borda esquerda, onde a linha-guia encosta, não muda e sobram
   2,5 % até o cartão «Objetivo». O !important vence a largura inline; abaixo de 901 px os cartões ficam empilhados. */
@media (min-width: 901px) {
  [data-machine="nacelle"] [data-callout="sensors"]:lang(es),
  [data-machine="nacelle"] [data-callout="sensors"]:lang(fr),
  [data-machine="nacelle"] [data-callout="sensors"]:lang(pt) {
    width: 21% !important;
  }
}

/* Pesquisa, celular estreito: em duas colunas de ~98 px úteis, «Optimización» passava 2,6 px e alargava a página a
   320 px; hifenizar partia quase toda palavra («Arquitec-tura», «tempora-les»). Abaixo de 360 px, uma coluna. */
@media (max-width: 359px) {
  #research .research-areas-grid:lang(es) {
    grid-template-columns: 1fr;
  }
}

/* Rótulos 3D da demo «how-it-works». São absolutos, posicionados por left/top; com quebra de linha ligada, a largura
   «encolhe para caber» até a borda do palco, então um rótulo perto da borda estreitava e quebrava em 3 linhas
   («技術者が/承認した/安全制限» a 360 px) e o placeLabel, que mede offsetWidth, reposicionava em ciclo. A largura passa
   a ser a do conteúdo, limitada ao palco: só quebra se o texto não couber em linha nenhuma.
   Nos idiomas latinos, no celular, o rótulo dos limites seguros (32–37 caracteres) pode quebrar em duas linhas em
   vez de passar da borda do palco, que recorta. */
.ba-scene-tag:lang(ja) {
  width: max-content;
  max-width: calc(100% - 24px);
}

.ba-phone .ba-scene-tag:lang(es),
.ba-phone .ba-scene-tag:lang(fr),
.ba-phone .ba-scene-tag:lang(de),
.ba-phone .ba-scene-tag:lang(pt) {
  white-space: normal;
  width: max-content;
  max-width: calc(100% - 24px);
}
