/* 要素の既定（リセット＋本文組版）。 */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--jn-color-white);
  color: var(--jn-color-text);
  font-family: var(--jn-font-base);
  font-size: var(--jn-fs-body);
  font-weight: 400;
  line-height: 1.7;
  /* 04-frontend §1: 日本語の不自然な改行を避ける */
  word-break: keep-all;
  overflow-wrap: anywhere;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg, video { display: block; max-width: 100%; height: auto; }
/* hidden 属性はクラスの display 指定より常に優先する（キープの星の切替・エラー帯など） */
[hidden] { display: none !important; }
/* 帯の「日本語 / English」の英語を別の行に（jobnary_bilingual_html） */
.c-en-line { display: block; }
a { color: inherit; text-decoration: none; transition: opacity var(--jn-duration-hover), color var(--jn-duration-hover); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
hr { border: 0; }

:focus-visible {
  outline: 3px solid var(--jn-color-focus);
  outline-offset: 2px;
}
/* マウス・タップでモーダルを開いた時の初期フォーカス（main.js が付け、キー操作・blur で外す）。部品別の枠より強く当てる */
.is-pointer-focus.is-pointer-focus:focus-visible,
.is-pointer-focus.is-pointer-focus:focus-visible + .jn-check__box { outline: none; }

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  top: -100px;
  left: 8px;
  z-index: 1000;
  padding: 8px 16px;
  background: var(--jn-color-navy);
  color: var(--jn-color-white);
  border-radius: var(--jn-radius-sm);
}
.skip-link:focus { top: 8px; }

.site-main:focus { outline: none; }

/* 長い地の文は keep-all だと句読点でしか折れず行が大きく欠けるので、通常の折返しに戻す
   （Figma のフッター説明文も文字単位で折れている）。見出し・ボタン・ラベルは keep-all のまま */
.u-prose,
.site-footer__text,
.c-entry p,
.c-entry li,
.c-mf__help,
.p-login__lead,
.p-keeps-empty__line,
.p-keeps__notes li,
.p-keeps-empty__notes li,
.p-guide-intro__text,
.p-guide-step__text,
.p-guide .q {
  word-break: normal;
  line-break: strict;
  text-wrap: pretty; /* 「す。」だけの最終行を避ける（未対応ブラウザは通常の折返し） */
}

/* 手動改行: PC のみ / SP のみ（04-frontend §1） */
.u-br-sp { display: inline; }
.u-br-pc { display: none; }
@media (min-width: 768px) {
  .u-br-sp { display: none; }
  .u-br-pc { display: inline; }
}

.jn-icon { flex: none; }

html.is-modal-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
