/* CMS内の本文だけに適用する基本値。法人ヘッダー／フッターには適用しない。 */
#jtb-space {
  display: block;
  position: relative;
  isolation: isolate;
  min-width: 0;
  width: 100%;
  font-size: 16px;
  font-style: normal;
  letter-spacing: normal;
  text-align: start;
  color: #f5f5f5;
  background: #000;
}
#jtb-space :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li, a, button, summary, details, span) {
  font: inherit;
  letter-spacing: inherit;
  text-align: inherit;
}
#jtb-space :where(h1, h2, h3, h4, h5, h6, p, ul, ol) {
  margin: 0;
  padding: 0;
}
/* 共通設定：フォント、トークン、リセット、共通ユーティリティ */

/* JTB × SPACE BUSINESS — framework-free, local assets only */
@font-face {
  font-family: "JTB Space Manrope";
  src: url("/files/user/space/assets/fonts/manrope-variable.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "JTB Space Inter";
  src: url("/files/user/space/assets/fonts/inter-variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "JTB Space Noto Sans JP";
  src: url("/files/user/space/assets/fonts/noto-sans-jp-variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "JTB Space Zen Old Mincho";
  src: url("/files/user/space/assets/fonts/zen-old-mincho-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "JTB Space Zen Old Mincho";
  src: url("/files/user/space/assets/fonts/zen-old-mincho-bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
#jtb-space {
  --jtb-space-color-bg: #000;
  --jtb-space-color-text: #f5f5f5;
  --jtb-space-color-primary: #c91f31;
  --jtb-space-color-muted: #8a8a93;
  --jtb-space-color-line: #26262b;
  --jtb-space-container-width: 1192px;
  --jtb-space-gutter: clamp(24px, 5vw, 80px);
  --jtb-space-space-section: clamp(80px, 8vw, 120px);
  --jtb-space-font-body: "JTB Space Noto Sans JP", sans-serif;
  --jtb-space-font-latin: "JTB Space Manrope", "JTB Space Noto Sans JP", sans-serif;
  --jtb-space-font-corporate: "JTB Space Noto Sans JP", sans-serif;
  --jtb-space-radius-card: 14px;
  /* バーの伸縮でシーンの進捗・文字位置を変えない。写真は別途100lvhで覆う。 */
  --jtb-space-screen-height: 100vh;
  --jtb-space-screen-height: 100svh;
  --jtb-space-safe-top: env(safe-area-inset-top, 0px);
  --jtb-space-safe-bottom: env(safe-area-inset-bottom, 0px);
  --jtb-space-header-height: calc(112px + var(--jtb-space-safe-top));
  --jtb-space-page-nav-height: 64px;
  --jtb-space-fixed-height: calc(var(--jtb-space-header-height) + var(--jtb-space-page-nav-height));
  --jtb-space-altitude-content-center: calc(50% + 88px);
  --jtb-space-vision-line-height: clamp(
    40px,
    calc((100svh - var(--jtb-space-fixed-height) - 123px) / 10),
    70px
  );
}
#jtb-space * {
  box-sizing: border-box;
}
#jtb-space {
  scroll-behavior: smooth;
  background: var(--jtb-space-color-bg);
  color: var(--jtb-space-color-text);
}
#jtb-space {
  margin: 0;
  font-family: var(--jtb-space-font-body);
  font-weight: 700;
  line-height: 1.8;
  overflow-wrap: anywhere;
}
#jtb-space h1,
#jtb-space h2,
#jtb-space h3,
#jtb-space p,
#jtb-space ul {
  margin: 0;
}
#jtb-space h1,
#jtb-space h2,
#jtb-space h3 {
  font-size: inherit;
}
#jtb-space ul {
  padding: 0;
  list-style: none;
}
#jtb-space img {
  display: block;
  max-width: 100%;
  height: auto;
}
#jtb-space button,
#jtb-space a {
  -webkit-tap-highlight-color: transparent;
}
#jtb-space button {
  font: inherit;
  color: inherit;
  cursor: pointer;
}
#jtb-space button {
  border: 0;
}
#jtb-space a {
  color: inherit;
  text-decoration: none;
}
#jtb-space button:focus-visible,
#jtb-space a:focus-visible,
#jtb-space summary:focus-visible,
#jtb-space [tabindex]:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 5px;
}
/* ページ内移動の着地点に、画面幅いっぱいのフォーカス枠を出さない。
   リンク・ボタン等の操作要素のフォーカス表示は上のルールで維持する。 */
#jtb-space .jtb-space-main section[tabindex="-1"]:focus {
  outline: none;
}
#jtb-space .container {
  width: min(var(--jtb-space-container-width), calc(100% - 2 * var(--jtb-space-gutter)));
  margin-inline: auto;
}
#jtb-space .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
#jtb-space .skip-link {
  position: absolute;
  z-index: 100;
  top: 12px;
  left: 16px;
  transform: translateY(-200%);
  padding: 10px 16px;
  background: #fff;
  color: #001c7b;
}
#jtb-space .skip-link:focus {
  transform: none;
}
#jtb-space .sp-break {
  display: none;
}

/* 画面幅別の共通設定 */
@media (max-width: 1199px) {
  #jtb-space {
    --jtb-space-header-height: calc(72px + var(--jtb-space-safe-top));
    --jtb-space-altitude-content-center: calc(50% + 68px);
  }
}

@media (max-width: 767px) {
  #jtb-space {
    --jtb-space-gutter: 24px;
    --jtb-space-space-section: 80px;
    --jtb-space-page-nav-height: 56px;
    --jtb-space-altitude-content-center: calc(50% + 64px);
  }
  #jtb-space .sp-break {
    display: block;
  }
}

/* 動きを減らす設定では共通のスクロール演出を停止する。 */
@media (prefers-reduced-motion: reduce) {
  #jtb-space {
    scroll-behavior: auto;
  }
}
