/* =========================================================
   MyiD（マイディ）サイト共通スタイル
   ・外部フォント／外部ファイルの読み込みなし
   ・JavaScriptなし
   ・色はチラシ（教育機関版＝緑、企業版＝紺）に合わせています
   ========================================================= */

:root {
  --ink: #333333;          /* 本文・見出し */
  --ink-soft: #5c5c5c;     /* 補足テキスト */
  --line: #dde1dd;         /* 罫線 */
  --paper: #ffffff;        /* 背景 */
  --mist: #f3f6f4;         /* セクション背景 */

  --accent: #1e6b3a;       /* ボタン・リンク（チラシの緑） */
  --accent-deep: #17552e;  /* ボタンのホバー */
  --accent-soft: #e6f0ea;  /* 薄い緑 */

  /* 身分証ごとの色（チラシと同じ） */
  --id-student: #1e6b3a;
  --id-alumni: #2c7b4a;
  --id-parent: #3b8b5a;
  --id-staff: #5a8a36;
  --id-employee: #2b5fa8;
  --id-family: #2f7aa6;
  --id-member: #c96a14;

  --font: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN",
          "Yu Gothic Medium", "YuGothic", "Meiryo", sans-serif;

  --wrap: 1080px;
  --gutter: 20px;
  color-scheme: light;
}

/* 企業向けページ：チラシの紺 */
.theme-biz {
  --accent: #1e3d6b;
  --accent-deep: #152d52;
  --accent-soft: #e7ecf4;
  --mist: #f3f5f8;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
  font-size: 1rem;
  line-height: 1.85;
  letter-spacing: 0.02em;
}

img { display: block; max-width: 100%; height: auto; }
svg { display: block; }

a { color: var(--accent); text-underline-offset: 0.2em; }
a:hover { color: var(--accent-deep); }

:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}

h1, h2, h3 { margin: 0; line-height: 1.4; letter-spacing: 0.04em; font-weight: 700; }
p { margin: 0; }

.wrap {
  width: 100%;
  max-width: calc(var(--wrap) + var(--gutter) * 2);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.narrow { max-width: calc(760px + var(--gutter) * 2); }

.skip {
  position: absolute;
  left: 12px;
  top: -60px;
  padding: 8px 14px;
  background: var(--ink);
  color: #fff;
  z-index: 10;
}
.skip:focus { top: 12px; color: #fff; }

/* ---------- ボタン ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 28px;
  border: 2px solid var(--accent);
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.06em;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.btn:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: #fff; }

.btn-outline { background: #fff; color: var(--accent); }
.btn-outline:hover { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }

.btn-biz { --accent: #1e3d6b; --accent-deep: #152d52; --accent-soft: #e7ecf4; }

.btn-small { min-height: 40px; padding: 0 18px; font-size: 0.875rem; }

.btn-light { background: #fff; border-color: #fff; color: var(--ink); }
.btn-light:hover { background: var(--mist); border-color: var(--mist); color: var(--ink); }

/* ---------- ヘッダー ---------- */
.site-header { border-bottom: 1px solid var(--line); background: var(--paper); }

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 72px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  text-decoration: none;
}
.brand:hover { color: var(--ink); }
.brand-logo { height: 36px; width: auto; }

.site-nav {
  display: flex;
  align-items: center;
  gap: 28px;
  font-size: 0.9375rem;
}
.site-nav a:not(.btn) { color: var(--ink); text-decoration: none; }
.site-nav a:not(.btn):hover { color: var(--accent); text-decoration: underline; }
.site-nav a[aria-current="page"]:not(.btn) { color: var(--accent); font-weight: 700; }

/* ---------- トップのヒーロー（チラシと同じ中央揃え） ---------- */
.top-hero { padding: 64px 0 24px; text-align: center; }

.pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 18px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.06em;
}
.pill svg { width: 18px; height: 18px; }

.top-hero h1 {
  margin-top: 24px;
  font-size: clamp(2.25rem, 6.4vw, 4.25rem);
  line-height: 1.25;
  letter-spacing: 0.06em;
  color: var(--accent);
}

.top-lead {
  margin-top: 20px;
  font-size: clamp(1.0625rem, 2.2vw, 1.375rem);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.top-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 16px;
  margin-top: 32px;
}

.top-visual { margin: 40px auto 0; max-width: 1180px; padding: 0 var(--gutter); }

/* ---------- 下層ページのヒーロー ---------- */
.hero { padding: 64px 0 56px; }

.hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  align-items: center;
  gap: 48px;
}

.hero-label { font-size: 0.9375rem; font-weight: 700; color: var(--accent); letter-spacing: 0.08em; }

.hero h1 {
  margin-top: 12px;
  font-size: clamp(2.125rem, 5.2vw, 3.5rem);
  line-height: 1.3;
  letter-spacing: 0.06em;
}

.lead { margin-top: 24px; max-width: 34em; font-size: 1.0625rem; }

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  margin-top: 36px;
}

.text-link { font-weight: 700; }

.hero-visual { margin: 0; justify-self: center; width: min(300px, 100%); }
.hero-visual figcaption { margin-top: 8px; text-align: center; font-size: 0.75rem; color: var(--ink-soft); }

/* ---------- セクション共通 ---------- */
.section { padding: 88px 0; }
.section-mist { background: var(--mist); }

.section h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
.section-lead { margin-top: 16px; max-width: 40em; }
.center { text-align: center; }
.center .section-lead { margin-left: auto; margin-right: auto; }

/* ---------- 対応する身分証（トップ） ---------- */
.id-groups {
  list-style: none;
  margin: 40px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.id-group {
  display: flex;
  flex-direction: column;
  gap: 14px;
  height: 100%;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}

.id-group h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.25rem;
}
.id-group h3::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--dot, var(--accent));
}
.group-edu    { --dot: var(--id-student); }
.group-biz    { --dot: var(--id-employee); }
.group-member { --dot: var(--id-member); }

.id-group-other { border-style: dashed; background: transparent; }
.id-group-other h3::before { content: "＋"; width: auto; height: auto; background: none; color: var(--ink-soft); }

.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.chip {
  padding: 4px 14px;
  border-radius: 6px;
  color: #fff;
  font-weight: 700;
  font-size: 0.9375rem;
  letter-spacing: 0.08em;
  background: var(--chip, var(--accent));
}
.chip-student  { --chip: var(--id-student); }
.chip-alumni   { --chip: var(--id-alumni); }
.chip-parent   { --chip: var(--id-parent); }
.chip-staff    { --chip: var(--id-staff); }
.chip-employee { --chip: var(--id-employee); }
.chip-family   { --chip: var(--id-family); }
.chip-member   { --chip: var(--id-member); }
.chip-other    { background: transparent; color: var(--ink); border: 1px solid var(--line); }

.id-group .group-link { margin-top: auto; padding-top: 6px; font-weight: 700; }
.group-biz .group-link { color: #1e3d6b; }

/* ---------- 便利と安心（4つの特長） ---------- */
.benefits {
  list-style: none;
  margin: 48px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px 24px;
}
.benefits-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 900px; margin-left: auto; margin-right: auto; }

.benefit { text-align: center; }
.benefit img { width: 200px; max-width: 100%; margin: 0 auto; }
.benefit h3 { margin-top: 14px; font-size: 1.125rem; line-height: 1.5; }
.benefit p { margin-top: 6px; font-size: 0.9375rem; color: var(--ink-soft); }

.benefit-group {
  display: inline-block;
  margin-bottom: 4px;
  padding: 0 12px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.2em;
}

/* ---------- 導入実績 ---------- */
.stat {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 16px 40px;
}
.stat-number {
  font-size: clamp(3.5rem, 9vw, 5.5rem);
  font-weight: 700;
  line-height: 1;
  color: var(--accent);
  letter-spacing: 0.02em;
}
.stat-number small { font-size: 0.35em; margin-left: 6px; color: var(--ink); }
.stat-text h2 { font-size: clamp(1.375rem, 2.6vw, 1.75rem); }
.stat-text p { margin-top: 8px; color: var(--ink-soft); font-size: 0.9375rem; }

/* ---------- 想い ---------- */
.mission {
  padding-left: 24px;
  border-left: 4px solid var(--accent);
  font-size: clamp(1.0625rem, 2.2vw, 1.375rem);
  line-height: 1.9;
}
.mission strong { display: block; font-size: 1.1em; }

/* ---------- 身分証の種類（下層ページ） ---------- */
.ids {
  display: grid;
  grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
  margin-top: 40px;
}
.ids-image { border-radius: 12px; }

.id-list { margin: 0; border-top: 2px solid var(--ink); }
.id-item {
  display: grid;
  grid-template-columns: 9em minmax(0, 1fr);
  gap: 8px 24px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.id-item dt { display: flex; align-items: flex-start; }
.id-item dd { margin: 0; }

/* ---------- 特長のリスト（企業向け） ---------- */
.points {
  list-style: none;
  margin: 40px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 40px;
}
.points li { padding: 22px 0; border-top: 1px solid var(--line); }
.points h3 { font-size: 1.0625rem; }
.points p { margin-top: 6px; }

/* ---------- 料金の考え方 ---------- */
.formula { display: flex; align-items: stretch; gap: 12px; margin-top: 40px; }

.term {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 96px;
  padding: 16px;
  border: 2px solid var(--ink);
  border-radius: 12px;
  background: #fff;
  text-align: center;
  font-weight: 700;
  font-size: 1.0625rem;
  line-height: 1.5;
}
.term-result { background: var(--accent); border-color: var(--accent); color: #fff; }

.op { display: flex; align-items: center; font-size: 2rem; color: var(--ink-soft); }

.plan-parts {
  list-style: none;
  margin: 40px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 40px;
}
.plan-parts li { padding: 22px 0; border-top: 1px solid var(--line); }
.plan-parts h3 { font-size: 1.0625rem; }
.plan-parts p { margin-top: 6px; }

.terms-notes {
  margin: 32px 0 0;
  padding: 20px 24px 20px 44px;
  border-radius: 12px;
  background: #fff;
  font-size: 0.9375rem;
}
.terms-notes li + li { margin-top: 4px; }

.note { margin-top: 20px; font-size: 0.9375rem; color: var(--ink-soft); }

.tag {
  display: inline-block;
  margin: 0 2px;
  padding: 0 8px;
  border: 1px solid var(--ink-soft);
  border-radius: 4px;
  font-size: 0.75rem;
  line-height: 1.6;
  color: var(--ink-soft);
  vertical-align: 0.1em;
}

/* ---------- お問い合わせへの誘導 ---------- */
.cta { padding: 80px 0; background: var(--accent); color: #fff; }
.cta-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px 48px;
}
.cta h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
.cta p { margin-top: 12px; max-width: 34em; color: rgba(255, 255, 255, 0.88); }

/* ---------- フッター ---------- */
.site-footer {
  padding: 48px 0;
  border-top: 1px solid var(--line);
  font-size: 0.875rem;
  color: var(--ink-soft);
}
.footer-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px 40px;
}
.footer-brand { display: flex; align-items: center; gap: 10px; color: var(--ink); }
.footer-brand img { height: 24px; width: auto; }
.footer-nav { display: flex; flex-wrap: wrap; gap: 8px 20px; max-width: 640px; }
.footer-nav a { color: var(--ink-soft); }
.copyright { width: 100%; }

/* ---------- 文書ページ（規約・ポリシー・SLA・会社概要） ---------- */
.page { padding: 56px 0 96px; }
.page-title { font-size: clamp(1.75rem, 4vw, 2.5rem); letter-spacing: 0.06em; }
.page .lead { margin-top: 20px; }

.doc { margin-top: 40px; }
.doc h2 {
  margin-top: 48px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--ink);
  font-size: 1.375rem;
}
.doc h2:first-child { margin-top: 0; }
.doc h3 { margin-top: 32px; font-size: 1.0625rem; }
.doc p { margin-top: 10px; }
.doc ol, .doc ul { margin: 10px 0 0; padding-left: 1.6em; }
.doc li + li { margin-top: 4px; }
.doc ol.paren { list-style: none; padding-left: 0; }
.doc ol.paren > li { padding-left: 2.6em; text-indent: -2.6em; }
.doc ol.num { list-style: none; padding-left: 0; }
.doc ol.num > li { padding-left: 1.4em; text-indent: -1.4em; }
.doc .supplement { margin-top: 40px; color: var(--ink-soft); }

.doc table {
  width: 100%;
  margin-top: 16px;
  border-collapse: collapse;
  font-size: 0.9375rem;
}
.doc th, .doc td {
  padding: 12px 14px;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.doc th { background: var(--mist); font-weight: 700; white-space: nowrap; }
.doc .table-narrow { max-width: 420px; }

.member-list { list-style: none; padding: 0; margin: 0; }
.member-list li + li { margin-top: 2px; }

/* SLA の保証範囲の図 */
.scope {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: 8px;
  margin-top: 16px;
}
.scope-box {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 16px;
  border-radius: 12px;
  border: 2px dashed var(--line);
  text-align: center;
  font-weight: 700;
  line-height: 1.5;
}
.scope-box small { display: block; margin-top: 6px; font-weight: 400; font-size: 0.8125rem; color: var(--ink-soft); }
.scope-in { border: 2px solid var(--accent); background: var(--accent-soft); }
.scope-arrow { display: flex; align-items: center; color: var(--ink-soft); }

/* お問い合わせ */
.form-area { margin-top: 40px; }
.form-placeholder {
  padding: 48px 24px;
  border: 2px dashed var(--line);
  border-radius: 12px;
  text-align: center;
  color: var(--ink-soft);
}
.form-placeholder p + p { margin-top: 8px; }
.form-frame {
  display: block;
  width: 100%;
  height: 1200px;
  border: 0;
  border-radius: 12px;
  background: var(--mist);
}
.form-fallback { margin-top: 12px; font-size: 0.875rem; color: var(--ink-soft); }

.privacy {
  margin-top: 56px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  font-size: 0.875rem;
  color: var(--ink-soft);
}
.privacy h2 { font-size: 1rem; color: var(--ink); }
.privacy p { margin-top: 10px; }

.page-actions { display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; margin-top: 36px; }

/* ---------- スマートフォン ---------- */
@media (max-width: 900px) {
  .benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .hero { padding: 40px 0 56px; }
  .hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .hero-visual { width: min(260px, 80%); }
  .id-groups { grid-template-columns: 1fr; }
  .ids { grid-template-columns: 1fr; gap: 32px; }
  .ids-image { width: min(260px, 80%); margin: 0 auto; }
  .cta-inner { grid-template-columns: 1fr; }
  .stat { grid-template-columns: 1fr; }
  .scope { grid-template-columns: 1fr; }
  .scope-arrow { justify-content: center; transform: rotate(90deg); }
}

@media (max-width: 640px) {
  :root { --gutter: 16px; }
  .header-inner { min-height: 64px; }
  .brand-logo { height: 30px; }
  .site-nav a:not(.btn) { display: none; }
  .top-hero { padding-top: 40px; }
  .section { padding: 64px 0; }
  .benefits, .benefits-3 { grid-template-columns: 1fr; }
  .benefit img { width: 180px; }
  .points, .plan-parts { grid-template-columns: 1fr; }
  .id-item { grid-template-columns: 1fr; }
  .formula { flex-direction: column; gap: 4px; }
  .term { min-height: 64px; }
  .op { justify-content: center; font-size: 1.5rem; line-height: 1.2; }
  .btn { width: 100%; }
  .site-nav .btn { width: auto; }
  .doc th { white-space: normal; }
  .doc table, .doc tbody, .doc tr, .doc th, .doc td { display: block; width: 100%; }
  .doc th { border-bottom: 0; }
  .doc .sla-table, .doc .sla-table tbody { display: table; }
  .doc .sla-table tr { display: table-row; }
  .doc .sla-table th, .doc .sla-table td { display: table-cell; width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}

/* ---------- 調整 ---------- */
.terms-notes { background: var(--mist); }
.section-mist .terms-notes { background: #fff; }
.doc ol.num li ul > li, .doc ol.num li ol > li { text-indent: 0; }
.doc ol.num li ol.paren > li { text-indent: -2.6em; }
.doc ol.num li > ul, .doc ol.num li > ol { margin-top: 6px; }
.footer-nav { max-width: 780px; }
.note { max-width: 48em; }

/* ご利用開始までの流れ（3ステップ） */
.steps {
  list-style: none;
  margin: 40px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 32px;
}
.steps li { padding: 22px 0; border-top: 3px solid var(--accent); }
.steps h3 { font-size: 1.0625rem; }
.steps p { margin-top: 6px; }
@media (max-width: 640px) { .steps { grid-template-columns: 1fr; } }

/* 日本語の改行を文節の区切りで行う（対応ブラウザのみ） */
h1, h2, h3, .top-lead, .lead, .section-lead, .mission { word-break: auto-phrase; }
.top-hero h1 { font-size: clamp(1.75rem, 8.4vw, 4.25rem); }
.nb { display: inline-block; }

/* ---------- フッター（カテゴリ別のメニュー） ---------- */
.footer-about { display: flex; flex-direction: column; gap: 10px; }
.provider a { color: var(--ink-soft); }
.footer-nav {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: 16px 56px;
  max-width: none;
}
.footer-col-title { font-weight: 700; color: var(--ink); font-size: 0.8125rem; letter-spacing: 0.06em; }
.footer-col ul { list-style: none; margin: 8px 0 0; padding: 0; }
.footer-col li + li { margin-top: 4px; }
@media (max-width: 640px) {
  .footer-nav { grid-template-columns: 1fr 1fr; gap: 20px 24px; width: 100%; }
}

/* ---------- ヘッダーの「規約・ポリシー」プルダウン（JavaScriptなし） ---------- */
.nav-menu { position: relative; }
.nav-menu summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
}
.nav-menu summary::-webkit-details-marker { display: none; }
.nav-menu summary::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .15s ease;
}
.nav-menu[open] summary::after { transform: translateY(2px) rotate(-135deg); }
.nav-menu summary:hover,
.nav-menu[open] summary,
.nav-menu.is-current summary { color: var(--accent); }
.nav-menu.is-current summary { font-weight: 700; }

.nav-menu-list {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  z-index: 20;
  min-width: 220px;
  margin: 0;
  padding: 8px;
  list-style: none;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}
.site-nav .nav-menu-list a {
  display: block;
  padding: 8px 12px;
  border-radius: 8px;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
}
.site-nav .nav-menu-list a:hover { background: var(--mist); color: var(--accent); text-decoration: none; }
.site-nav .nav-menu-list a[aria-current="page"] { color: var(--accent); font-weight: 700; }

.site-nav a:not(.btn) { white-space: nowrap; }
@media (max-width: 960px) { .site-nav { gap: 20px; } }
@media (max-width: 640px) { .nav-menu { display: none; } }
@media (max-width: 900px) { .site-nav .nav-anchor { display: none; } }
@media (max-width: 760px) { .site-nav a:not(.btn), .site-nav .nav-menu { display: none; } }
.hero h1 { font-size: clamp(1.75rem, 8.4vw, 3.5rem); }
@media (max-width: 860px) { .hero-inner { grid-template-columns: minmax(0, 1fr); } }

/* ---------- PCの画面の高さに収まるようにする ---------- */
/* 身分証カード：1枚ずつ説明の横に並べる */
.id-cards {
  list-style: none;
  margin: 40px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 48px;
}
.id-card-item {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}
.id-card-item img {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}
.id-card-item h3 { font-size: 1.125rem; }
.id-card-item p { margin-top: 6px; }

/* スマホ画面のイラスト：画面の高さに合わせて縮む */
.hero { padding-top: 48px; }
.hero-visual { width: auto; }
.hero-visual img {
  height: clamp(340px, calc(100vh - 220px), 560px);
  width: auto;
  max-width: 100%;
  margin: 0 auto;
}

/* トップのイラスト：画面の高さに収める */
.top-visual img {
  width: auto;
  max-width: 100%;
  max-height: max(400px, calc(100vh - 120px));
  margin: 0 auto;
}

@media (max-width: 1000px) {
  .id-card-item { grid-template-columns: 180px minmax(0, 1fr); gap: 18px; }
}
@media (max-width: 860px) {
  .id-cards { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .hero-visual img { height: auto; width: min(260px, 80vw); }
}
@media (max-width: 480px) {
  .id-card-item { grid-template-columns: 128px minmax(0, 1fr); gap: 14px; }
  .id-card-item h3 { font-size: 1rem; }
  .id-card-item p { font-size: 0.9375rem; }
}

/* ---------- トップの最初の画面：左に文字、右にイラスト（PCでは1画面に収める） ---------- */
.top-hero { padding: 32px 0 48px; text-align: left; }
.top-hero-inner {
  width: 100%;
  max-width: calc(1240px + var(--gutter) * 2);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  align-items: center;
  gap: 40px;
}
.top-hero h1 { margin-top: 20px; }
.top-actions { justify-content: flex-start; }
.top-visual { margin: 0; padding: 0; max-width: none; }
.top-visual img {
  width: auto;
  max-width: 100%;
  max-height: max(360px, calc(100vh - 150px));
  margin: 0 0 0 auto;
}

@media (min-width: 901px) {
  .top-hero h1 { font-size: clamp(2rem, 3.7vw, 3.25rem); }
  .top-lead { font-size: clamp(1rem, 1.35vw, 1.25rem); }
}

@media (max-width: 900px) {
  .top-hero { padding: 40px 0 32px; }
  .top-hero-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .top-visual img { max-height: none; margin: 0 auto; }
}
@media (min-width: 901px) {
  .top-hero h1 { font-size: clamp(1.75rem, 3.2vw, 2.875rem); }
}
@media (max-width: 900px) { .top-hero h1 { font-size: clamp(1.5rem, 8.4vw, 3.5rem); } }
/* ロゴと左端を揃える（ヘッダーと同じ幅） */
.top-hero-inner {
  max-width: calc(var(--wrap) + var(--gutter) * 2);
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
}
@media (min-width: 901px) {
  .top-hero h1 { font-size: clamp(1.75rem, 3vw, 2.4rem); }
}
@media (max-width: 900px) {
  .top-hero-inner { grid-template-columns: minmax(0, 1fr); }
  .top-hero h1 { font-size: clamp(1.5rem, 8vw, 3.5rem); }
}

/* ---------- ヘッダーを薄く、トップのイラストを大きく ---------- */
:root { --wrap: 1200px; }
.header-inner { min-height: 56px; }
.brand-logo { height: 30px; }
.site-nav .btn-small { min-height: 36px; }
.nav-menu-list { top: calc(100% + 10px); }

.top-hero { padding: 24px 0 40px; }
.top-hero-inner {
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  gap: 32px;
}
.top-visual img { max-height: max(360px, calc(100vh - 100px)); }
@media (min-width: 901px) {
  .top-hero h1 { font-size: clamp(1.5rem, 2.9vw, 2.4rem); }
}
@media (max-width: 900px) {
  .top-hero-inner { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .header-inner { min-height: 56px; }
  .brand-logo { height: 26px; }
}

/* ---------- ボタンの色：お問い合わせだけ別の色（チラシのオレンジを濃くしたもの） ---------- */
:root {
  --contact: #b5590c;
  --contact-deep: #9a4a08;
  --contact-soft: #fbf0e6;
}
.btn-contact { background: var(--contact); border-color: var(--contact); color: #fff; }
.btn-contact:hover { background: var(--contact-deep); border-color: var(--contact-deep); color: #fff; }
.btn-contact:focus-visible { outline-color: var(--contact); }

/* ページ下部の「導入のご相談・資料請求」：オレンジのボタンが引き立つ薄いオレンジの帯 */
.cta { background: var(--contact-soft); color: var(--ink); }
.cta p { color: var(--ink-soft); }

/* ---------- 左右の余白：PCでは画面幅に応じて広げる ---------- */
:root { --gutter: clamp(20px, 5vw, 64px); }
@media (max-width: 640px) { :root { --gutter: 16px; } }
@media (min-width: 901px) {
  .top-hero h1 { font-size: clamp(1.5rem, 2.7vw, 2.4rem); }
}

/* ---------- 見出しの傍点（「入り口」の上に●●●） ---------- */
/* 1文字ずつ上に●を置く（文字のすぐ上に付き、行の間隔は変わらない） */
.em-dots > span { position: relative; }
.em-dots > span::before {
  content: "";
  position: absolute;
  top: -0.02em;
  left: 50%;
  width: 0.2em;
  height: 0.2em;
  margin-left: -0.1em;
  border-radius: 50%;
  background: currentColor;
}
/* 傍点が上の行に近づきすぎないよう、行の間隔を少し広げる */
.top-hero h1 { line-height: 1.55; }

/* ---------- スマートフォン用メニュー（JavaScriptなし） ---------- */
.site-header { position: relative; z-index: 30; }
.sp-menu { display: none; }
.sp-menu summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
}
.sp-menu summary::-webkit-details-marker { display: none; }
.sp-menu-icon,
.sp-menu-icon::before,
.sp-menu-icon::after {
  display: block;
  width: 14px;
  height: 2px;
  border-radius: 1px;
  background: currentColor;
}
.sp-menu-icon { position: relative; }
.sp-menu-icon::before,
.sp-menu-icon::after { content: ""; position: absolute; left: 0; }
.sp-menu-icon::before { top: -5px; }
.sp-menu-icon::after { top: 5px; }
.sp-menu[open] .sp-menu-icon { background: transparent; }
.sp-menu[open] .sp-menu-icon::before { top: 0; transform: rotate(45deg); }
.sp-menu[open] .sp-menu-icon::after { top: 0; transform: rotate(-45deg); }

.sp-menu-panel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  display: grid;
  padding: 8px var(--gutter) 16px;
  background: #fff;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
}
.sp-menu-panel a {
  display: block;
  padding: 14px 4px;
  border-bottom: 1px solid var(--mist);
  color: var(--ink);
  font-weight: 700;
  text-decoration: none;
}
.sp-menu-panel a:last-child { border-bottom: 0; }
.sp-menu-panel a[aria-current="page"] { color: var(--accent); }

@media (max-width: 760px) {
  .sp-menu { display: block; }
  .header-inner { gap: 10px; }
  .brand-area { margin-right: auto; }
}
@media (max-width: 360px) {
  .sp-menu summary { padding: 0 10px; }
  .site-nav .btn-small { padding: 0 12px; }
}
.btn { white-space: nowrap; }
.site-nav { flex-shrink: 0; }
@media (max-width: 760px) {
  .site-nav .btn-small { padding: 0 14px; }
}
/* 小さいスマホでは「メニュー」の文字を隠してアイコンだけにする（読み上げでは「メニュー」と読まれる） */
@media (max-width: 400px) {
  .sp-menu summary { padding: 0 11px; gap: 0; }
  .sp-menu-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
}

/* ---------- ロゴ横のキーワード（トップ＝デジタル身分証、教育機関＝デジタル学生証、企業＝デジタル社員証） ---------- */
.brand-area { display: flex; align-items: center; gap: 14px; min-width: 0; }
.brand { flex-shrink: 0; }
.brand-tagline {
  padding-left: 14px;
  border-left: 1px solid var(--line);
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.06em;
  color: var(--accent);
  white-space: nowrap;
}
/* スマートフォン：ロゴの下に小さく表示する（ヘッダーの高さは変えない） */
@media (max-width: 560px) {
  .brand-area { flex-direction: column; align-items: flex-start; gap: 1px; }
  .brand-tagline { padding-left: 0; border-left: 0; font-size: 0.6875rem; line-height: 1.3; letter-spacing: 0.04em; }
}
.footer-tagline { font-size: 0.8125rem; }

/* ---------- 文字フォント：Noto Sans JP（サイト内に置いたファイルを使用。ライセンスは fonts/OFL.txt） ---------- */
/* よく使う文字（英数字・かな・記号・JIS第1水準の漢字・サイト内の全文字） */
@font-face {
  font-family: "Noto Sans JP";
  src: url("fonts/NotoSansJP-core.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
/* JIS第2水準の漢字：ページにその文字があるときだけ読み込まれる */
@font-face {
  font-family: "Noto Sans JP";
  src: url("fonts/NotoSansJP-extra.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+4E10,U+4E15,U+4E17,U+4E2A,U+4E31,U+4E36,U+4E3C,U+4E3F,U+4E42,U+4E55-4E56,U+4E58,U+4E62,U+4E82,U+4E85,U+4E8A,U+4E8E,U+4E9E-4EA0,U+4EA2,U+4EB0,U+4EB3,U+4EB6,U+4EC2,U+4EC4,U+4EC6,U+4ECD-4ECE,U+4ED7,U+4EDE-4EDF,U+4EED,U+4EF7,U+4F09,U+4F1C,U+4F30,U+4F47,U+4F57,U+4F5A-4F5B,U+4F5D-4F5E,U+4F69,U+4F6F-4F70,U+4F76,U+4F7B,U+4F86,U+4F88,U+4F8F,U+4F91,U+4F96,U+4F98,U+4FAB,U+4FCE,U+4FD0-4FD1,U+4FD4,U+4FD8,U+4FDA-4FDB,U+4FDF,U+4FE4-4FE5,U+4FEF,U+4FF6,U+4FFE,U+5005-5006,U+500F,U+5011,U+5014,U+501A,U+5021,U+5025,U+5028-502A,U+502C,U+5043,U+5047-5048,U+5050,U+5055-5056,U+505A,U+506C,U+5078,U+5080,U+5085,U+509A,U+50B2-50B4,U+50C2,U+50C9-50CA,U+50D6,U+50DE,U+50E3,U+50E5,U+50ED-50EE,U+50F5,U+50F9,U+5101-5102,U+5109,U+5114-5116,U+5118,U+511A,U+5121,U+5137,U+513A-513C,U+513F-5140,U+514C,U+5152,U+5154,U+5162,U+5169-516A,U+516E,U+5180,U+5182,U+5189,U+518C,U+518F-5191,U+5193,U+5195-5196,U+51A2,U+51A4,U+51A6,U+51A9-51AB,U+51B0-51B3,U+51B5,U+51BD,U+51C5,U+51C9,U+51D6,U+51DB-51DC,U+51E0,U+51E9,U+51ED,U+51F0,U+51F5,U+51FE,U+5204,U+520B,U+520E,U+5214,U+5227,U+522A,U+522E,U+5233,U+5239,U+5244,U+524B-524C,U+524F,U+5254,U+525E,U+5269-526A,U+5271,U+5273-5274,U+527D,U+527F,U+5288,U+528D,U+5291-5292,U+5294,U+52AC-52AD,U+52B5,U+52BC,U+52C1,U+52CD,U+52D2,U+52D7,U+52DE,U+52E0,U+52E3,U+52E6,U+52F3,U+52F5,U+52F8-52F9,U+5306,U+5308,U+530D,U+530F-5310,U+5315,U+531A,U+5323,U+532F,U+5331,U+5333,U+5338,U+5340,U+5345-5346,U+5349,U+534D,U+535E,U+5369,U+536E,U+5377,U+537B,U+5382,U+5396,U+53A0,U+53A5-53A6,U+53AE,U+53B0,U+53B6,U+53C3,U+53DF,U+53E8,U+53ED-53EE,U+53FA,U+5401,U+541D,U+5429,U+542C-542E,U+5436,U+543C-543D,U+5440,U+544E,U+545F,U+5470-5471,U+5475-5477,U+547B,U+5480,U+5484,U+5486,U+548E-5490,U+5492,U+54A2,U+54A4-54A5,U+54A8,U+54AB-54AC,U+54AF,U+54B8,U+54BC,U+54BE,U+54C2,U+54C4,U+54C7-54C8,U+54D8,U+54E2,U+54E5-54E6,U+54ED-54EE,U+54FA,U+54FD,U+550F,U+5514,U+552E,U+5533,U+5538-5539,U+5540,U+5545,U+554C,U+5556-5557,U+555C-555D,U+5563,U+557B-557C,U+557E,U+5580,U+5583,U+5587,U+558A,U+5598-5599,U+559E-559F,U+55A8-55A9,U+55AE,U+55C4-55C5,U+55C7,U+55D4,U+55DA,U+55DC,U+55DF,U+55E4,U+55F7,U+55F9,U+55FD-55FE,U+5614,U+5616,U+561B,U+562F,U+5632,U+5634,U+5636,U+5638,U+564E,U+5650,U+5664,U+566A-566C,U+5680,U+5686,U+568A,U+568F,U+5694,U+56A0,U+56A5,U+56AE,U+56B4,U+56B6,U+56BC,U+56C0-56C3,U+56C8,U+56CE,U+56D1,U+56D3,U+56D7-56D8,U+56EE,U+56F9,U+56FF-5700,U+5704,U+5708-5709,U+570B,U+570D,U+5713,U+5716,U+5718,U+571C,U+5726,U+5737-5738,U+573B,U+5740,U+574E-574F,U+5761,U+5769,U+577F,U+5788-5789,U+5793,U+57A0,U+57A4,U+57AA,U+57B0,U+57B3,U+57C0,U+57C3,U+57C6,U+57D2-57D4,U+57D6,U+57E3,U+580A-580B,U+5819,U+581D,U+5821,U+582F,U+583D,U+584B,U+5852,U+5862,U+5870,U+5872,U+5879,U+5885,U+589F,U+58AB,U+58AE,U+58B8-58BB,U+58C5,U+58D1,U+58D3,U+58D7-58D9,U+58DC,U+58DE-58DF,U+58E4-58E5,U+58EF,U+58F9-58FD,U+5902,U+590A,U+5910,U+5918,U+591B,U+5925,U+592C-592D,U+5932,U+5938,U+593E,U+594E,U+5950,U+5955,U+5958,U+595A,U+5960,U+5962,U+5967,U+5969,U+596C,U+5978,U+5981,U+598D,U+599B,U+599D,U+59A3,U+59B2,U+59C6,U+59D9-59DA,U+59DC,U+59E8,U+5A09,U+5A11,U+5A1A,U+5A1C,U+5A1F,U+5A25,U+5A35-5A36,U+5A40,U+5A49,U+5A62,U+5A6A,U+5A6C,U+5A9A,U+5ABC-5ABE,U+5AC2,U+5ACB,U+5AD0,U+5AD6-5AD7,U+5AE3,U+5AE6,U+5AE9,U+5AFA-5AFB,U+5B0B-5B0C,U+5B16,U+5B2A,U+5B32,U+5B36,U+5B3E,U+5B40,U+5B43,U+5B45,U+5B51,U+5B55,U+5B5A-5B5B,U+5B65,U+5B69,U+5B70-5B71,U+5B73,U+5B75,U+5B78,U+5B7A,U+5B80,U+5B83,U+5BA6,U+5BB8,U+5BC3,U+5BC7,U+5BC9,U+5BD0,U+5BD4,U+5BDE,U+5BE2,U+5BE4-5BE6,U+5BE8,U+5BEB,U+5BF0,U+5BF3,U+5BF6,U+5C05,U+5C07-5C08,U+5C0D,U+5C13,U+5C20,U+5C22,U+5C28,U+5C38-5C39,U+5C41,U+5C46,U+5C4E-5C50,U+5C53,U+5C6C,U+5C6E,U+5C76,U+5C79,U+5C8C,U+5C91,U+5C94,U+5CAB,U+5CB6-5CB7,U+5CBB-5CBC,U+5CBE,U+5CC5,U+5CC7,U+5CD9,U+5CE9-5CEA,U+5CED,U+5CFA,U+5CFD,U+5D0B,U+5D11,U+5D14-5D15,U+5D17-5D1B,U+5D1F,U+5D22,U+5D4B-5D4C,U+5D4E,U+5D52,U+5D5C,U+5D6C,U+5D73,U+5D76,U+5D82,U+5D84,U+5D87,U+5D8C,U+5D90,U+5D9D,U+5DA2,U+5DAC,U+5DAE,U+5DB7,U+5DBC-5DBD,U+5DC9,U+5DCD,U+5DD2-5DD3,U+5DD6,U+5DDB,U+5DEB,U+5DF2,U+5DF5,U+5E0B,U+5E11,U+5E19-5E1B,U+5E36-5E37,U+5E40,U+5E43-5E44,U+5E47,U+5E4E,U+5E54,U+5E57,U+5E5F,U+5E62,U+5E64,U+5E75-5E76,U+5E7A,U+5E7F,U+5EA0,U+5EC1-5EC2,U+5EC8,U+5ECF-5ED0,U+5ED6,U+5EDA-5EDB,U+5EDD,U+5EE1-5EE3,U+5EE8-5EE9,U+5EEC,U+5EF0-5EF1,U+5EF3-5EF4,U+5EF8,U+5EFE,U+5F03,U+5F09,U+5F0B-5F0D,U+5F11,U+5F16,U+5F29,U+5F2D,U+5F2F,U+5F38,U+5F41,U+5F48,U+5F4C,U+5F4E,U+5F51,U+5F56-5F57,U+5F59,U+5F5C-5F5D,U+5F61,U+5F6D,U+5F73,U+5F77,U+5F7F,U+5F82-5F83,U+5F87-5F88,U+5F8A,U+5F91,U+5F98-5F99,U+5F9E,U+5FA0,U+5FA8,U+5FAD,U+5FBC,U+5FD6,U+5FDD,U+5FE4,U+5FF0-5FF1,U+5FF8,U+5FFB,U+5FFF,U+600E-6010,U+6015,U+6019,U+601B,U+6021,U+6026,U+6029,U+602B,U+6031,U+603A,U+6041-6043,U+6046,U+604A,U+604D,U+6059-605A,U+605F-6060,U+6063-6064,U+606A-606C,U+6077,U+6081,U+6083-6084,U+608B,U+608D,U+6092,U+6096-6097,U+609A-609B,U+60A7,U+60B3-60B5,U+60B8,U+60BD,U+60C6,U+60D3,U+60D8,U+60E0-60E1,U+60E7,U+60F1,U+60F4,U+60F6-60F7,U+60FA-60FB,U+6100,U+6103,U+6106,U+610D-610E,U+6115,U+6121,U+6127-6128,U+612C,U+6134,U+613C-613F,U+6142,U+6144,U+6147,U+614A,U+614D,U+6153,U+6158-615A,U+615D,U+615F,U+6165,U+616B,U+616F,U+6171,U+6173-6175,U+6177,U+6187,U+618A,U+6191,U+6194,U+6196,U+6199-619A,U+61AB-61AC,U+61AE,U+61BA,U+61C3,U+61C6,U+61C8-61CD,U+61E3,U+61E6,U+61F4,U+61F6-61F7,U+61FA,U+61FC-6200,U+6208-6209,U+620C-620D,U+6214,U+621B,U+621D-621E,U+6221,U+622A,U+622E,U+6230,U+6232-6233,U+6241,U+6248,U+624E,U+625B,U+625E,U+6260,U+6263,U+6268,U+627C,U+627E,U+6282-6283,U+6289,U+6292-6294,U+6296,U+629B,U+62AC,U+62BB,U+62C2,U+62C6-62CA,U+62CC,U+62CF,U+62D1,U+62D4,U+62D7,U+62DC,U+62EE-62EF,U+62F1,U+62F5,U+62FF,U+6302,U+6308,U+630C,U+6327,U+633E,U+634D,U+634F-6350,U+6369,U+636B,U+6376,U+6380,U+6389,U+638E-638F,U+6396,U+639F,U+63A3,U+63AB,U+63B5,U+63BE,U+63C0,U+63C4,U+63C6,U+63C9,U+63D2,U+63E3,U+63E9,U+63F6,U+6406,U+640F,U+6413,U+6416-6417,U+641C,U+6426,U+6428,U+6434,U+6436,U+644E,U+6467,U+646F,U+6476,U+6488,U+6493,U+6495,U+64A5,U+64A9,U+64BB-64BC,U+64C2,U+64C5,U+64C7,U+64D2,U+64D4,U+64D8,U+64DA,U+64E0-64E1,U+64E3,U+64E7,U+64EF,U+64F1-64F2,U+64F4,U+64F6,U+64FA,U+64FD,U+6500,U+6505,U+6518,U+651C-651D,U+6523-6524,U+652A-652C,U+6534-6538,U+6548,U+654D,U+6555-6556,U+6558,U+655D-655E,U+6572,U+6578,U+6582-6583,U+6588,U+659B,U+659F,U+65AB,U+65B7,U+65C1,U+65C3-65C4,U+65C6,U+65CC,U+65D2,U+65D9,U+65DB,U+65E0-65E1,U+65F1,U+65FB,U+6603,U+660A,U+661C,U+6634-6636,U+663F,U+6641,U+6644,U+6649,U+664F,U+665D-665F,U+6662,U+6664,U+6667-6668,U+6670,U+6683-6684,U+6688-6689,U+668E,U+6698,U+669D,U+66B8-66B9,U+66BC,U+66BE,U+66C1,U+66C4,U+66C9,U+66D6,U+66DA,U+66E0,U+66E6,U+66E9,U+66F0,U+66F5,U+66F7,U+66FC,U+6703,U+670F,U+6716,U+671E,U+6726-6727,U+672E,U+6736-6738,U+673F,U+6741,U+6746,U+6759,U+675E,U+6760,U+6763-6764,U+676A,U+6770,U+6772-6773,U+677C,U+6785,U+6789,U+678B-678C,U+67A1,U+67A6,U+67A9,U+67B3-67B4,U+67B7-67B9,U+67C6,U+67CE,U+67DD-67DE,U+67E2,U+67E4,U+67E7,U+67E9,U+67EC,U+67EE-67EF,U+681E,U+6829,U+682B,U+6832,U+6840,U+6846,U+684D-684E,U+6859,U+6863,U+6874,U+6877,U+687E-687F,U+6883,U+688D,U+688F,U+6894,U+689B,U+689D,U+689F-68A0,U+68A6,U+68AD,U+68B3,U+68B5,U+68B9-68BA,U+68C6,U+68CA,U+68CD,U+68D4-68D5,U+68D7-68D8,U+68E0-68E1,U+68E3,U+68E7,U+68EF,U+68F9,U+6901,U+6904,U+6908,U+690C,U+690F,U+6912,U+691A,U+6921-6923,U+6925-6926,U+6928,U+692A,U+6930,U+6936,U+6939,U+693D,U+6954,U+6959,U+695C-695E,U+6961,U+696A-696B,U+696E,U+6974,U+6977-6979,U+697E,U+6981,U+6991,U+6995,U+699C,U+69A0,U+69A7,U+69AE,U+69B1-69B2,U+69B4,U+69BB,U+69BE-69BF,U+69C1,U+69C3,U+69C7,U+69CA,U+69CE,U+69D0,U+69D3,U+69DD-69DE,U+69E7-69E8,U+69EB,U+69ED,U+69F2,U+69F9,U+69FF,U+6A02,U+6A05,U+6A0A,U+6A0C,U+6A12-6A14,U+6A1B,U+6A1E,U+6A22-6A23,U+6A2E,U+6A36,U+6A38,U+6A44,U+6A47-6A48,U+6A59,U+6A62,U+6A66,U+6A72,U+6A78,U+6A84,U+6A8D,U+6A90,U+6A97,U+6A9C,U+6AA0,U+6AA2-6AA3,U+6AAA,U+6AAC,U+6AAE,U+6AB3,U+6AB8,U+6ABB,U+6AC1-6AC3,U+6AD1,U+6ADA,U+6ADE-6ADF,U+6AEA,U+6AFA-6AFB,U+6B05,U+6B0A,U+6B12,U+6B16,U+6B1F,U+6B37-6B39,U+6B43,U+6B47,U+6B49,U+6B50,U+6B54,U+6B59,U+6B5B,U+6B5F,U+6B61,U+6B78-6B79,U+6B7F-6B80,U+6B83-6B84,U+6B8D,U+6B95,U+6B98,U+6B9E,U+6BA4,U+6BAA-6BAB,U+6BAF,U+6BB1-6BB3,U+6BB7,U+6BBC,U+6BC0,U+6BC6,U+6BCB,U+6BD3,U+6BDF,U+6BEB-6BEC,U+6BEF,U+6BF3,U+6C08,U+6C13-6C14,U+6C1B,U+6C23-6C24,U+6C55,U+6C5E,U+6C62,U+6C68,U+6C6A,U+6C73,U+6C7E,U+6C81-6C82,U+6C8D,U+6C90,U+6C92,U+6C9A-6C9B,U+6CAE,U+6CB1,U+6CBA,U+6CBD-6CBE,U+6CC4-6CC5,U+6CD3,U+6CD7,U+6CD9,U+6CDB,U+6CDD,U+6CEA,U+6CEF,U+6CF1,U+6D0C,U+6D12,U+6D19,U+6D1F,U+6D2B,U+6D33,U+6D35-6D36,U+6D38,U+6D3D,U+6D59-6D5A,U+6D63-6D64,U+6D79,U+6D85,U+6D8E,U+6D93,U+6D95,U+6DB5,U+6DB8,U+6DC5-6DC7,U+6DCC,U+6DD2,U+6DD5,U+6DD9,U+6DDE,U+6DE4,U+6DE6,U+6DE8,U+6DEA,U+6DEC,U+6DEE,U+6DF9-6DFA,U+6E0A,U+6E15,U+6E19,U+6E1D,U+6E1F,U+6E23-6E24,U+6E2B,U+6E2D-6E2E,U+6E38,U+6E3A,U+6E3E,U+6E43,U+6E4D-6E4E,U+6E5F,U+6E6B,U+6E6E,U+6E72,U+6E76,U+6E82,U+6E8F,U+6E98,U+6E9F,U+6EA5,U+6EAA,U+6EAF,U+6EB2,U+6EB7,U+6EBD,U+6EC2,U+6EC4,U+6EC9,U+6ECC,U+6ED3-6ED5,U+6EEC,U+6EEF,U+6EF2,U+6EF7-6EF8,U+6EFE-6EFF,U+6F11,U+6F13,U+6F31-6F32,U+6F3E-6F3F,U+6F41,U+6F58,U+6F5B,U+6F66,U+6F6D,U+6F6F,U+6F74,U+6F78,U+6F7A,U+6F7C,U+6F80-6F82,U+6F86,U+6F8E,U+6F91,U+6FA1,U+6FA3-6FA4,U+6FAA,U+6FB3,U+6FB9,U+6FC2,U+6FC6,U+6FD4-6FD5,U+6FD8,U+6FDB,U+6FDF,U+6FE4,U+6FEC,U+6FEE,U+6FF1,U+6FF3,U+6FF6,U+6FFA,U+6FFE,U+7001,U+7009,U+700B,U+700F,U+7011,U+7018,U+701A-701B,U+701D,U+701F,U+7030,U+7032,U+703E,U+704C,U+7051,U+7063,U+7092,U+7099,U+70AC,U+70AE-70AF,U+70B3,U+70B8,U+70CB,U+70D9,U+70DD,U+70DF,U+70F1,U+70FD,U+7109,U+7119,U+711C,U+714C,U+7155-7156,U+7162,U+7165-7166,U+716C,U+7184,U+7188,U+718F,U+7195,U+7199,U+71A8,U+71AC,U+71B9,U+71BE,U+71C9,U+71CE,U+71D2,U+71D4,U+71D7,U+71DF-71E0,U+71E7,U+71EC,U+71EE,U+71F5,U+71F9,U+71FB-71FC,U+71FF,U+720D,U+7210,U+721B,U+7228,U+722C-722D,U+7230,U+7232,U+723B-723C,U+723F-7240,U+7246,U+724B,U+7258,U+7274,U+727E,U+7281-7282,U+7287,U+7292,U+7296,U+72A2,U+72A7,U+72B2,U+72B9,U+72C3-72C4,U+72C6,U+72CE,U+72D2,U+72E0-72E2,U+72F7,U+72F9,U+730A,U+7316-7317,U+731C-731D,U+7325,U+7329,U+732F,U+7334,U+733E,U+734E-734F,U+7357,U+7368,U+736A,U+7370,U+7375,U+7378,U+737A-737B,U+73B3,U+73BB,U+73C0,U+73C8,U+73CE,U+73DE,U+73E5,U+73EE,U+73F1,U+73F8,U+7405,U+7425,U+7432,U+743A,U+743F,U+7441,U+7455,U+7459,U+745C,U+745F,U+7463-7464,U+7469-746A,U+746F-7470,U+7476,U+747E,U+748B,U+749E,U+74A2,U+74A7,U+74CA,U+74CF,U+74D4,U+74E0,U+74E3,U+74E7,U+74E9,U+74EE,U+74F0-74F2,U+74F7-74F8,U+7503-7505,U+750C-750E,U+7513,U+7515,U+751E,U+7526,U+752C,U+7538,U+753C,U+7544,U+7546,U+7549-754B,U+754D,U+755A-755B,U+7564,U+7567,U+7569,U+756B,U+756D,U+7574,U+7576,U+7578,U+7582,U+7586-7587,U+7589-758A,U+7594,U+759A,U+759D,U+75A3,U+75A5,U+75B1,U+75B3,U+75B5,U+75B8,U+75BC-75BD,U+75C2-75C3,U+75CA,U+75CD,U+75D2,U+75D9,U+75DE,U+75E3,U+75F0,U+75F2-75F3,U+75FA,U+75FC,U+75FE-75FF,U+7601,U+7609,U+760B,U+760D,U+761F-7622,U+7624,U+7627,U+7630,U+7634,U+763B,U+7646-7648,U+7658,U+765C,U+7661-7662,U+7667-766A,U+766C,U+7670,U+7672,U+7676,U+7678,U+767C,U+7680,U+7683,U+7688,U+768B,U+768E,U+7693,U+7696,U+7699-769A,U+76B0,U+76B4,U+76B7-76BA,U+76C2,U+76CD,U+76D2,U+76D6,U+76DC,U+76DE,U+76E1,U+76E5,U+76E7,U+76EA,U+76FB,U+7704,U+7707-7708,U+771B,U+771E,U+7724-7726,U+7729,U+7737-7738,U+7747,U+775A-775B,U+7765,U+7768,U+776B,U+7779,U+777E-777F,U+778B,U+778E,U+7791,U+779E,U+77A0,U+77B0,U+77B6,U+77B9,U+77BB-77BD,U+77BF,U+77C7,U+77CD,U+77D7,U+77DA,U+77DC,U+77E3,U+77EE,U+77FC,U+780C,U+7812,U+7820,U+7845,U+7874,U+787C,U+7886,U+788C,U+788E,U+789A,U+78A3,U+78AA,U+78AF,U+78B5,U+78BC,U+78BE,U+78C5-78C6,U+78CA-78CB,U+78D1,U+78D4,U+78DA,U+78E7,U+78EC,U+78F4,U+78FD,U+7907,U+7911-7912,U+7919,U+7926,U+792A-792C,U+7940,U+7953,U+7955,U+7957,U+795A,U+795F-7960,U+797A,U+797F-7980,U+798A,U+799D,U+79A7,U+79AA,U+79AE,U+79B3,U+79B9-79BA,U+79C9,U+79D5,U+79E1,U+79E3,U+79E7,U+79EC,U+7A08,U+7A0D,U+7A18-7A19,U+7A1F-7A20,U+7A31,U+7A37,U+7A3B,U+7A3E,U+7A43,U+7A49,U+7A57,U+7A61-7A62,U+7A69,U+7A70,U+7A79,U+7A7D,U+7A88,U+7A95-7A98,U+7AA9,U+7AB0,U+7AB6,U+7ABF,U+7AC4-7AC5,U+7AC7-7AC8,U+7ACA,U+7ACD,U+7ACF,U+7AD2-7AD3,U+7AD5,U+7AD9-7ADA,U+7ADD,U+7ADF,U+7AE1-7AE2,U+7AE6,U+7AED,U+7AF0,U+7AF8,U+7B02,U+7B04,U+7B06,U+7B0A-7B0B,U+7B0F,U+7B18-7B19,U+7B1E,U+7B28,U+7B33,U+7B35-7B36,U+7B45,U+7B4C-7B4D,U+7B50,U+7B5D,U+7B65,U+7B67,U+7B6C,U+7B6E,U+7B70-7B71,U+7B74-7B75,U+7B7A,U+7B8B,U+7B8D,U+7B8F,U+7B92,U+7B98-7B9A,U+7B9C-7B9D,U+7B9F,U+7BB4,U+7BC1,U+7BC6,U+7BCB-7BCC,U+7BCF,U+7BDD,U+7BE5-7BE6,U+7BE9,U+7BF3,U+7BF6-7BF7,U+7C00,U+7C07,U+7C0D,U+7C11-7C14,U+7C17,U+7C1F,U+7C23,U+7C27,U+7C2A-7C2B,U+7C37,U+7C3D,U+7C40,U+7C43,U+7C4C,U+7C4F-7C50,U+7C54,U+7C56,U+7C58,U+7C5F-7C60,U+7C64-7C65,U+7C6C,U+7C75,U+7C83,U+7C90,U+7CA1-7CA2,U+7CA4,U+7CA8,U+7CAB,U+7CAD-7CAE,U+7CB1-7CB3,U+7CB9,U+7CBD,U+7CC0,U+7CC2,U+7CC5,U+7CD2,U+7CD8,U+7CDC,U+7CE2,U+7CEF,U+7CF2,U+7CF4,U+7CF6,U+7CFA,U+7D02,U+7D06,U+7D0A,U+7D15,U+7D1C,U+7D2E,U+7D32,U+7D35,U+7D3F,U+7D45-7D46,U+7D4B,U+7D4E-7D4F,U+7D56,U+7D5B,U+7D63,U+7D68,U+7D6E,U+7D72-7D73,U+7D7D,U+7D89,U+7D8F,U+7D93,U+7D9B,U+7D9F,U+7DA2-7DA3,U+7DAB,U+7DAE-7DB0,U+7DB5,U+7DB8,U+7DBA,U+7DBD,U+7DC7,U+7DD5,U+7DD8,U+7DDC-7DDE,U+7DE1,U+7DE4,U+7DF2,U+7DFB,U+7E05,U+7E09-7E0B,U+7E12,U+7E1F,U+7E21-7E23,U+7E31-7E32,U+7E35,U+7E37,U+7E39-7E3B,U+7E3D,U+7E43,U+7E46,U+7E56,U+7E59-7E5A,U+7E5D-7E5E,U+7E66-7E67,U+7E69-7E6A,U+7E79,U+7E7B-7E7D,U+7E7F,U+7E83,U+7E88-7E89,U+7E8C,U+7E8E,U+7E90,U+7E92-7E94,U+7E96,U+7E9B-7E9C,U+7F38,U+7F3A,U+7F45,U+7F4C-7F4E,U+7F50-7F51,U+7F54-7F55,U+7F58,U+7F5F-7F60,U+7F67-7F69,U+7F78-7F79,U+7F82-7F83,U+7F86-7F88,U+7F8C,U+7F94,U+7F9A,U+7F9D-7F9E,U+7FA3,U+7FAE-7FAF,U+7FB2,U+7FB6,U+7FB8-7FB9,U+7FC5-7FC6,U+7FCA,U+7FD4-7FD5,U+7FE1,U+7FE6,U+7FE9,U+7FF3,U+7FF9,U+8004,U+8006,U+800B,U+8012,U+8018-8019,U+801C,U+8021,U+8028,U+803B,U+803F,U+8046,U+804A,U+8052,U+8058,U+805A,U+805F,U+8062,U+8068,U+8070,U+8072-8073,U+8076,U+8079,U+807D,U+807F,U+8084-8086,U+8093,U+809A-809B,U+80AC-80AD,U+80C4,U+80D6,U+80D9-80DB,U+80DD,U+80E5,U+80EF,U+80F1,U+80FC,U+8109,U+811B,U+8123,U+8129,U+812F,U+813E,U+8146,U+814B,U+8151,U+8153,U+815F,U+8165-8166,U+816E,U+8171,U+8174,U+8180,U+8182-8183,U+8188,U+818A,U+8193,U+8195,U+81A0,U+81A3-81A4,U+81A9,U+81B0,U+81B5,U+81B8,U+81BA,U+81BD-81BE,U+81C0,U+81C2,U+81C8-81C9,U+81CD,U+81D1,U+81D8-81DA,U+81DF-81E0,U+81E7,U+81FA-81FB,U+81FE,U+8201-8202,U+8205,U+8207,U+8209-820A,U+820D,U+8210,U+8212,U+8216,U+8229,U+822B,U+822E,U+8233,U+8238,U+8240,U+8258-825A,U+825D,U+825F,U+8262,U+8264,U+8268,U+826A-826B,U+8271,U+8277-8278,U+827E,U+828D,U+8292,U+829F,U+82AB-82AC,U+82BB,U+82D2,U+82D9,U+82DC,U+82DE-82DF,U+82E1,U+82E3,U+82F3-82F4,U+82F9-82FB,U+8303,U+8306,U+8309,U+8316-8318,U+8323,U+832B,U+832F,U+8331-8332,U+8334-8335,U+8339,U+8340,U+8345,U+8350,U+8373,U+8375,U+837C,U+8385,U+8387,U+8389-838A,U+838E,U+8393,U+8396,U+839A,U+839F-83A0,U+83A2,U+83A8,U+83AA,U+83B5,U+83BD,U+83C1,U+83CE,U+83D8,U+83E0,U+83EB,U+83F2,U+83F4,U+83F7,U+83FB,U+83FD,U+8403,U+8407,U+840B,U+840D,U+8413,U+8420,U+8422,U+842A,U+842C,U+8435,U+8438,U+843C,U+8446,U+8462,U+8469,U+846B,U+846D-846F,U+8477,U+8479,U+8482,U+8484,U+849F,U+84A1,U+84AD,U+84B9,U+84BB,U+84BF,U+84C1,U+84C6,U+84CA,U+84CD,U+84D0,U+84D6,U+84D9-84DA,U+84F4,U+84FC,U+84FF,U+8506,U+8514-8515,U+8517-8518,U+851F,U+8521,U+852C,U+8540-8541,U+8548,U+854B,U+8555,U+8558,U+855A,U+8563,U+856D,U+8577,U+857E,U+8580,U+8587-8588,U+858A,U+8590-8591,U+8594,U+859B-859C,U+85A4,U+85A8,U+85B9-85BA,U+85C9,U+85CF-85D0,U+85D5,U+85DC-85DD,U+85E5,U+85EA,U+85F9-85FA,U+85FE,U+8602,U+8606,U+860A-860B,U+8613,U+8616-8617,U+861A,U+8622,U+862F-8630,U+863F,U+864D,U+8654-8655,U+865F,U+8667,U+8671,U+868B-868C,U+8693,U+86A3,U+86A9-86AB,U+86AF-86B0,U+86B6,U+86C4,U+86C6,U+86C9,U+86D4,U+86DB,U+86DE-86DF,U+86E9,U+86EC,U+86EF,U+86F9,U+86FB,U+8700,U+8703,U+8706,U+8708-870A,U+870D,U+8711-8712,U+871A,U+8725,U+8729,U+8734,U+8737,U+873B,U+873F,U+874C,U+874E,U+8753,U+8757,U+8759,U+875F-8760,U+8763,U+8768,U+876A,U+876E,U+8774,U+8778,U+8782,U+879F,U+87A2,U+87AB,U+87AF,U+87B3,U+87BB,U+87BD,U+87C0,U+87C4,U+87C6-87C7,U+87CB,U+87D0,U+87D2,U+87E0,U+87EF,U+87F2,U+87F6-87F7,U+87FE,U+8805,U+880D-880F,U+8811,U+8815-8816,U+8821-8823,U+8827,U+8831,U+8836,U+8839,U+883B,U+8842,U+8844,U+884D,U+8852,U+8859,U+885E,U+8862,U+886B,U+8872,U+8875,U+887D-887E,U+8881-8882,U+888D,U+8892,U+8897,U+8899,U+889E,U+88A2,U+88A4,U+88AE,U+88B0-88B1,U+88B5,U+88BF,U+88C3-88C4,U+88D4,U+88D8-88D9,U+88DD,U+88E8,U+88F2,U+88F4,U+88F9,U+88FC,U+8902,U+8904,U+890A,U+890C,U+8913,U+891D-891E,U+8925,U+892A-892B,U+8936,U+8938,U+893B,U+8941,U+8943-8944,U+894C-894D,U+895E,U+8960,U+8964,U+8966,U+896A,U+896D,U+896F,U+8974,U+8977,U+897E,U+8983,U+8988,U+898A,U+8993,U+8998,U+89A1,U+89A6,U+89A9,U+89AC,U+89AF,U+89B2,U+89BA,U+89BD,U+89BF-89C0,U+89DA,U+89DC-89DD,U+89E7,U+89F4,U+89F8,U+8A03,U+8A0C,U+8A10,U+8A16,U+8A1B,U+8A1D,U+8A25,U+8A36,U+8A41,U+8A46,U+8A48,U+8A52,U+8A5B,U+8A62,U+8A6C-8A6D,U+8A7C,U+8A82,U+8A84-8A85,U+8A91,U+8A9A,U+8AA1,U+8AA3,U+8AA5-8AA6,U+8AA8,U+8AC2,U+8AC4,U+8ACD,U+8ADA-8ADB,U+8ADE,U+8AE0-8AE2,U+8AE4,U+8AE7,U+8AEB,U+8AF1,U+8AF3,U+8AF7,U+8B07,U+8B0C,U+8B10,U+8B14,U+8B16-8B17,U+8B1A,U+8B20,U+8B26,U+8B28,U+8B2B,U+8B33,U+8B3E,U+8B41,U+8B49,U+8B4C,U+8B4E-8B4F,U+8B56,U+8B5A-8B5B,U+8B5F,U+8B6B-8B6C,U+8B6F,U+8B71,U+8B74,U+8B7D,U+8B80,U+8B8A,U+8B8C,U+8B8E,U+8B92-8B93,U+8B96,U+8B99-8B9A,U+8C3A,U+8C3F,U+8C41,U+8C48,U+8C4C,U+8C4E,U+8C50,U+8C55,U+8C62,U+8C6B-8C6C,U+8C78,U+8C7A,U+8C7C,U+8C82,U+8C85,U+8C89-8C8A,U+8C8D-8C8E,U+8C94,U+8C98,U+8CAA,U+8CAD-8CAE,U+8CB2-8CB3,U+8CB6,U+8CBD,U+8CC1,U+8CC8,U+8CCD,U+8CDA,U+8CE3-8CE4,U+8CFA-8CFB,U+8CFD,U+8D04-8D05,U+8D07,U+8D0A,U+8D0D,U+8D0F-8D10,U+8D13-8D14,U+8D16,U+8D67,U+8D6D,U+8D71,U+8D73,U+8D81,U+8D99,U+8DBA,U+8DBE,U+8DC2,U+8DCB-8DCC,U+8DCF,U+8DD6,U+8DDA-8DDB,U+8DDF,U+8DE3,U+8DEA-8DEB,U+8DFC,U+8DFF,U+8E08-8E09,U+8E10,U+8E1D-8E1F,U+8E2A,U+8E30,U+8E34-8E35,U+8E42,U+8E47-8E4A,U+8E4C,U+8E50,U+8E55,U+8E59,U+8E60,U+8E63-8E64,U+8E72,U+8E76,U+8E7C,U+8E81,U+8E84-8E85,U+8E87,U+8E8A-8E8B,U+8E91,U+8E93-8E94,U+8E99,U+8EA1,U+8EAA,U+8EAC,U+8EB0-8EB1,U+8EBE,U+8EC5-8EC6,U+8EC8,U+8ECB,U+8EDB,U+8EE3,U+8EEB,U+8EFB-8EFC,U+8EFE,U+8F05,U+8F0A,U+8F0C,U+8F12-8F13,U+8F15,U+8F19,U+8F1B-8F1C,U+8F1F,U+8F26,U+8F33,U+8F39,U+8F3B,U+8F3E,U+8F42,U+8F45-8F46,U+8F49,U+8F4C,U+8F4E,U+8F57,U+8F5C,U+8F62-8F64,U+8F9C,U+8F9F,U+8FA3,U+8FA7-8FA8,U+8FAD-8FAF,U+8FB7,U+8FDA,U+8FE2,U+8FE5,U+8FEA,U+8FEF,U+8FF4,U+8FF8-8FFA,U+9005,U+900B,U+900D-900E,U+9011,U+9015-9016,U+901E,U+9021,U+9027,U+9035-9036,U+9039,U+903E,U+9049,U+904F-9052,U+9056,U+9058-9059,U+905E,U+9068,U+906F,U+9072,U+9076,U+907D,U+9080-9083,U+9087,U+9089-908A,U+908F,U+90A8,U+90AF,U+90B1,U+90B5,U+90DB,U+90E2,U+90E4,U+9102,U+9112,U+9119,U+9130,U+9132,U+914A,U+9156,U+9158,U+9163,U+9165,U+9169,U+9172-9173,U+9182,U+9189,U+918B,U+91A2,U+91AA-91AB,U+91AF,U+91B4-91B5,U+91BA,U+91C0-91C1,U+91C9,U+91CB,U+91D0,U+91D6,U+91DB,U+91DF,U+91E1,U+91F5-91F6,U+91FC,U+91FF,U+9211,U+9214-9215,U+921E,U+9229,U+922C,U+923F,U+9245,U+9248-9249,U+924B,U+9250,U+9257,U+925A,U+925E,U+9264,U+9293,U+9295-9296,U+929B-929C,U+92B7,U+92B9,U+92CF,U+92E9,U+92FA,U+930F,U+9319-931A,U+9322-9323,U+932E,U+9335,U+933A-933B,U+9344,U+9356,U+935C,U+9360,U+936E,U+937C,U+9394,U+93AC-93AD,U+93B0,U+93B9,U+93C3,U+93C8,U+93D0,U+93D6-93D8,U+93DD,U+93E4-93E5,U+93E8,U+9403,U+9407,U+9410,U+9413-9414,U+941A,U+9421,U+942B,U+9435-9436,U+943A,U+9441,U+9444,U+9452,U+945A-945B,U+945E,U+9460,U+9462,U+946A,U+9470,U+9475,U+9477,U+947C-947F,U+9481,U+9582,U+9587,U+958A,U+9594,U+9596,U+9598-9599,U+95A0,U+95A7-95A8,U+95AD,U+95B9,U+95BB-95BC,U+95BE,U+95C3,U+95CA,U+95CC-95CD,U+95D4-95D6,U+95DC,U+95E1-95E2,U+95E5,U+9621,U+9628,U+962E-962F,U+9642,U+964B-964C,U+964F,U+965C-965F,U+9666,U+966C,U+9672,U+9677,U+968B,U+968D,U+9695,U+9697-9698,U+96A7-96A8,U+96AA,U+96B0-96B2,U+96B4,U+96B6,U+96B8-96B9,U+96C9,U+96CB,U+96CD-96CE,U+96D5-96D6,U+96D9,U+96DC,U+96F9,U+9704,U+9706,U+9708,U+970D-970F,U+9711,U+9713,U+9716,U+9719,U+9724,U+972A,U+9730,U+9738-9739,U+973D-973E,U+9742,U+9744,U+9746,U+9748-9749,U+975C,U+9760-9761,U+9764,U+9766,U+9768,U+976B,U+9771,U+9779-977A,U+977C,U+9781,U+9785-9786,U+978B,U+978F-9790,U+979C,U+97A3,U+97A6,U+97A8,U+97AB,U+97B3-97B4,U+97C3,U+97C6,U+97C8,U+97CB,U+97DC,U+97ED,U+97F2,U+97F5-97F6,U+980C,U+980F,U+9821,U+9824,U+9837-9838,U+983D,U+9846,U+984B,U+984F,U+986B,U+986F-9871,U+9873-9874,U+98AA,U+98AF,U+98B1,U+98B6,U+98C3-98C4,U+98C6,U+98DC,U+98E9,U+98EB,U+98ED-98EE,U+9903,U+9909,U+9912,U+9914,U+9918,U+991D-991E,U+9920-9921,U+9924,U+992C,U+992E,U+993D-993E,U+9942,U+9945,U+9949,U+994B-994C,U+9950-9952,U+9955,U+9997-9998,U+99A5,U+99AD-99AE,U+99BC,U+99D1,U+99D8,U+99DB,U+99DD,U+99DF,U+99E2,U+99ED-99EE,U+99F1-99F2,U+99F8,U+99FB,U+9A01,U+9A05,U+9A0F,U+9A19,U+9A2B,U+9A37,U+9A3E,U+9A40,U+9A42-9A43,U+9A45,U+9A4D,U+9A55,U+9A57,U+9A5B,U+9A5F,U+9A62,U+9A64-9A65,U+9A69-9A6B,U+9AAD,U+9AB0,U+9ABC,U+9AC0,U+9ACF,U+9AD1,U+9AD3-9AD4,U+9ADE-9ADF,U+9AE2-9AE3,U+9AE6,U+9AEB,U+9AEE-9AEF,U+9AF1,U+9AF4,U+9AF7,U+9AFB,U+9B06,U+9B18,U+9B1A,U+9B1F,U+9B22-9B23,U+9B25,U+9B27-9B2A,U+9B2E-9B2F,U+9B31-9B32,U+9B3B,U+9B43-9B44,U+9B4D-9B4F,U+9B51,U+9B58,U+9B74,U+9B83,U+9B91,U+9B93,U+9B96-9B97,U+9B9F-9BA0,U+9BA8,U+9BB4,U+9BB9,U+9BC0,U+9BC6,U+9BCA,U+9BCF,U+9BD1-9BD2,U+9BD4,U+9BE1-9BE4,U+9BF0-9BF2,U+9C04,U+9C06,U+9C08-9C0A,U+9C0C,U+9C12-9C15,U+9C1B,U+9C21,U+9C24-9C25,U+9C2E,U+9C30,U+9C32,U+9C3A,U+9C3E,U+9C46-9C47,U+9C5A,U+9C60,U+9C67,U+9C76,U+9C78,U+9CE7,U+9CEB-9CEC,U+9CF0,U+9D03,U+9D06,U+9D08-9D09,U+9D12,U+9D15,U+9D1F,U+9D23,U+9D26,U+9D2A,U+9D3E-9D3F,U+9D41,U+9D44,U+9D46,U+9D48,U+9D50-9D51,U+9D59,U+9D5D-9D5E,U+9D64,U+9D6F,U+9D72,U+9D7A,U+9D87,U+9D89,U+9D9A,U+9DA4,U+9DA9,U+9DAB,U+9DAF,U+9DB2,U+9DB8,U+9DBA-9DBB,U+9DC1-9DC2,U+9DC4,U+9DC6,U+9DCF,U+9DD3,U+9DD9,U+9DE6,U+9DED,U+9DEF,U+9DF8,U+9DFD,U+9E1A-9E1B,U+9E1E,U+9E75,U+9E79,U+9E7D,U+9E81,U+9E88,U+9E8B-9E8C,U+9E91-9E92,U+9E95,U+9E9D,U+9EA5,U+9EA9-9EAA,U+9EAD,U+9EB8,U+9EBC,U+9EBE,U+9ECC,U+9ECE-9ED0,U+9ED4,U+9ED8,U+9EDC-9EDE,U+9EE0,U+9EE5,U+9EE8,U+9EEF,U+9EF4,U+9EF6-9EF7,U+9EF9,U+9EFB-9EFD,U+9F07-9F08,U+9F15,U+9F21,U+9F2C,U+9F3E,U+9F4A-9F4B,U+9F4E-9F4F,U+9F52,U+9F54,U+9F5F-9F61,U+9F63,U+9F66-9F67,U+9F6A,U+9F6C,U+9F72,U+9F76-9F77,U+9F95,U+9F9C-9F9D,U+9FA0;
}

/* ---------- 教育機関＝緑、企業＝青（ヘッダーのメニューもボタンと同じ色） ---------- */
.nav-edu { --accent: #1e6b3a; }
.nav-biz { --accent: #1e3d6b; }
.site-nav a.nav-edu:not(.btn), .site-nav a.nav-biz:not(.btn),
.sp-menu-panel a.nav-edu, .sp-menu-panel a.nav-biz { color: var(--accent); }

/* トップの身分証の種類（見出しなし）：上の余白を詰める */
.ids-only .id-groups { margin-top: 0; }

/* ---------- フッター：デジタル身分証＋サブタイトル ---------- */
.footer-tagline { font-size: 0.875rem; font-weight: 700; color: var(--ink); letter-spacing: 0.06em; }
.footer-sub { margin-top: -4px; font-size: 0.8125rem; color: var(--ink-soft); }

/* お問い合わせのリード文：1文ずつ改行（幅が足りないときは自然に折り返す） */
.lead-lines { max-width: none; }

/* =========================================================
   UIの調整（参考サイトの雰囲気：濃い文字色、淡いグレーの背景、
   丸いボタンと矢印、中央そろえの見出し、白いカード）
   ========================================================= */
:root {
  --ink: #23221f;
  --ink-soft: #5b5a56;
  --line: #e1e6e3;
  --mist: #f4f7f6;
  --card-radius: 16px;
  /* 白い丸の中の矢印（矢印の部分は透けて、ボタンの色が見える） */
  --arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 0a12 12 0 1 1 0 24a12 12 0 1 1 0-24zM10.2 7.1 9 8.3 12.7 12 9 15.7l1.2 1.2 4.9-4.9z'/%3E%3C/svg%3E");
}
.theme-biz { --mist: #f4f6f9; }

/* 見出し：中央そろえ。上に小さなラベル */
.section > .wrap > h2,
.section > .wrap > .section-lead,
.section-eyebrow { text-align: center; }
.section > .wrap > .section-lead { margin-left: auto; margin-right: auto; }
.section h2 { font-size: clamp(1.375rem, 2.6vw, 2rem); line-height: 1.5; }
.section-eyebrow {
  margin-bottom: 10px;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--accent);
}

/* ボタン：右に丸い矢印 */
.btn:not(.btn-small) { gap: 14px; min-height: 56px; padding: 0 12px 0 28px; }
.btn:not(.btn-small)::after {
  content: "";
  flex: none;
  width: 26px;
  height: 26px;
  background-color: #fff;
  -webkit-mask: var(--arrow-mask) center / contain no-repeat;
  mask: var(--arrow-mask) center / contain no-repeat;
}
/* 白いボタン（サービス紹介を見る など） */
.btn-ghost {
  background: #fff;
  border: 1px solid var(--line);
  color: var(--ink);
  box-shadow: 0 2px 8px rgba(35, 34, 31, 0.08);
}
.btn-ghost:hover { background: var(--mist); border-color: var(--line); color: var(--ink); }
.btn.btn-ghost::after { background-color: var(--accent); }

/* ---------- 教育機関・企業ページのヒーロー：スマホを淡い色のパネルにのせる ---------- */
.hero-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 56px); }
.hero-visual { justify-self: stretch; width: auto; }
.hero-panel {
  display: grid;
  place-items: center;
  padding: clamp(20px, 3vw, 36px);
  border-radius: 24px;
  background: var(--accent-soft);
}
.hero-panel img { height: clamp(320px, calc(100vh - 300px), 500px); width: auto; max-width: 100%; }
.hero-visual figcaption { margin-top: 10px; }
@media (max-width: 860px) {
  .hero-inner { grid-template-columns: minmax(0, 1fr); }
  .hero-panel img { height: auto; width: min(230px, 62vw); }
}

/* ---------- 企業向け：サービス紹介（01〜06） ---------- */
.svcs {
  list-style: none;
  margin: 48px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.svc {
  display: flex;
  flex-direction: column;
  padding: 28px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--card-radius);
}
.svc-head { display: flex; align-items: center; gap: 14px; }
.svc-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--accent);
}
.svc-icon img { width: 26px; height: 26px; }
.svc-num { font-size: 0.8125rem; font-weight: 700; line-height: 1.2; letter-spacing: 0.1em; color: var(--accent); }
.svc h3 { font-size: 1.375rem; line-height: 1.4; }
.svc-catch { margin-top: 18px; font-size: 1.0625rem; font-weight: 700; }
.svc-points { margin: 8px 0 0; padding-left: 1.2em; }
.svc-points li::marker { color: var(--accent); }
.svc-points b { display: inline-block; min-width: 5.5em; color: var(--accent); }
.svc-tags { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.svc-tags li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 14px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 0.8125rem;
  font-weight: 700;
}
.svc-tags li::before {
  content: "";
  width: 9px;
  height: 5px;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(-45deg);
}
.svc-note { margin-top: 12px; font-size: 0.75rem; line-height: 1.7; color: var(--ink-soft); }
.svc-visual { margin: auto 0 0; padding-top: 20px; }
.svc-visual img { width: 100%; height: auto; border-radius: 12px; }
.svc-visual figcaption { margin-top: 8px; text-align: center; font-size: 0.8125rem; color: var(--ink-soft); }
.svc-foot { margin-top: 24px; font-size: 0.75rem; color: var(--ink-soft); }
@media (max-width: 900px) {
  .svcs { grid-template-columns: minmax(0, 1fr); }
  .svc-visual img { max-width: 520px; margin: 0 auto; }
}
@media (max-width: 480px) {
  .svc { padding: 22px 18px; }
  .svc h3 { font-size: 1.1875rem; }
}

/* ---------- 教育機関向け：サービス紹介（大きなサービス3つ＋利用者） ---------- */
.big-svcs {
  list-style: none;
  margin: 48px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.big-svc { padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: var(--card-radius); }
.big-svc-num {
  display: inline-grid;
  place-items: center;
  min-width: 44px;
  height: 30px;
  padding: 0 10px;
  border-radius: 8px;
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.big-svc h3 { margin-top: 16px; font-size: 1.25rem; line-height: 1.5; }
.big-svc p:not(.big-svc-num) { margin-top: 10px; color: var(--ink-soft); }
.users { margin-top: 32px; padding: 32px; border-radius: var(--card-radius); background: var(--mist); }
.users-title { text-align: center; font-size: 1.125rem; }
.users-list {
  list-style: none;
  margin: 20px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}
.users-list li { padding: 18px 16px; background: #fff; border-radius: 12px; }
.users-list h4 { margin: 0; font-size: 1rem; color: var(--accent); }
.users-list p { margin-top: 6px; font-size: 0.875rem; line-height: 1.7; color: var(--ink-soft); }
@media (max-width: 1000px) {
  .big-svcs { grid-template-columns: minmax(0, 1fr); }
  .users-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .users { padding: 24px 16px; }
  .users-list { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- お問い合わせ：送信前の個人情報の確認（必須） ---------- */
.privacy-before {
  margin-top: 32px;
  padding: 24px 28px;
  border: 1px solid var(--line);
  border-radius: var(--card-radius);
  background: #fff;
  color: var(--ink);
  font-size: 0.9375rem;
}
.privacy-before h2 { display: flex; align-items: center; gap: 10px; font-size: 1.0625rem; }
.req {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 4px;
  background: #c8161d;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.6;
}
.policy-links { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; }
.policy-links a { font-weight: 700; }
.ext { display: inline-block; width: 0.95em; height: 0.95em; margin-left: 4px; vertical-align: -0.1em; }
.privacy-before .privacy-small { margin-top: 14px; font-size: 0.8125rem; color: var(--ink-soft); }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.privacy-before + .form-area { margin-top: 24px; }
@media (max-width: 480px) { .privacy-before { padding: 20px 18px; } }

/* ---------- ボタンの大きさをそろえる（トップの2つ、教育機関・企業ページの2つ） ---------- */
.top-actions .btn { min-width: 13em; }
.hero-actions .btn { min-width: 16em; }

/* ---------- ヘッダーの「教育機関の方」「企業の方」：黒い文字に、緑・青の囲み ---------- */
.nav-edu { --accent-soft: #e6f0ea; }
.nav-biz { --accent-soft: #e7ecf4; }
.site-nav a.nav-edu:not(.btn),
.site-nav a.nav-biz:not(.btn) {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 16px;
  border: 1.5px solid var(--accent);
  border-radius: 999px;
  color: var(--ink);
  font-weight: 700;
  text-decoration: none;
}
.site-nav a.nav-edu:not(.btn):hover,
.site-nav a.nav-biz:not(.btn):hover,
.site-nav a.nav-edu[aria-current="page"]:not(.btn),
.site-nav a.nav-biz[aria-current="page"]:not(.btn) { background: var(--accent-soft); color: var(--ink); }
.site-nav { gap: 12px; }
.site-nav .nav-menu, .site-nav .btn-contact { margin-left: 12px; }
/* タブレット幅では、ヘッダーのメニューを「メニュー」ボタンにまとめる */
@media (max-width: 940px) {
  .site-nav a:not(.btn),
  .site-nav a.nav-edu:not(.btn),
  .site-nav a.nav-biz:not(.btn),
  .site-nav .nav-menu { display: none; }
  .site-nav .btn-contact { margin-left: 0; }
  .sp-menu { display: block; }
  .header-inner { gap: 10px; }
  .brand-area { margin-right: auto; }
}
/* スマートフォンのメニュー：黒い文字に、緑・青の丸 */
.sp-menu-panel a.nav-edu,
.sp-menu-panel a.nav-biz { display: flex; align-items: center; gap: 10px; color: var(--ink); }
.sp-menu-panel a.nav-edu::before,
.sp-menu-panel a.nav-biz::before {
  content: "";
  width: 10px;
  height: 10px;
  border: 2px solid var(--accent);
  border-radius: 50%;
}
/* 「教育機関の方」「企業の方」を同じ大きさに */
.site-nav a.nav-edu:not(.btn),
.site-nav a.nav-biz:not(.btn) { justify-content: center; min-width: 8.5em; }
/* トップの教育機関・企業のカード：「入り口」のひとこと */
.id-group .group-catch { font-size: 1.0625rem; font-weight: 700; color: var(--ink); }
.id-group .group-catch + p { margin-top: 4px; }

/* ---------- 企業向けサービス紹介：1つずつ横長に。文章が左、図が右 ---------- */
.svcs { grid-template-columns: minmax(0, 1fr); gap: 24px; }
.svc {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
  align-items: center;
  gap: 24px 48px;
  padding: 36px 40px;
}
.svc-body { min-width: 0; }
.svc-visual { margin: 0; padding-top: 0; }
.svc-visual img { max-width: 520px; margin: 0 auto; }
@media (max-width: 900px) {
  .svc { grid-template-columns: minmax(0, 1fr); padding: 28px; }
}
@media (max-width: 480px) {
  .svc { padding: 22px 18px; }
}

/* ---------- ヒーローのパネル：グラデーション、ドット模様、白い円、機能のラベル ---------- */
.hero-panel {
  --panel-a: #dcefe3;
  --panel-b: #f6fbf8;
  --panel-dot: rgba(30, 107, 58, 0.16);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  container-type: inline-size;
  background: linear-gradient(150deg, var(--panel-a) 0%, var(--panel-b) 72%);
}
.theme-biz .hero-panel {
  --panel-a: #dbe4f2;
  --panel-b: #f6f8fc;
  --panel-dot: rgba(30, 61, 107, 0.16);
}
/* 右上から広がるドット模様 */
.hero-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: radial-gradient(var(--panel-dot) 1.5px, transparent 2px);
  background-size: 18px 18px;
  -webkit-mask-image: radial-gradient(circle at 100% 0%, #000 0%, transparent 60%);
  mask-image: radial-gradient(circle at 100% 0%, #000 0%, transparent 60%);
}
/* スマホの後ろの白い円 */
.hero-panel::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 52%;
  z-index: -1;
  width: min(86%, 440px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.6) 62%, rgba(255, 255, 255, 0) 71%);
  transform: translate(-50%, -50%);
}
.hero-panel img { position: relative; filter: drop-shadow(0 18px 28px rgba(35, 34, 31, 0.16)); }
/* スマホのまわりの機能ラベル */
.hero-chips { list-style: none; margin: 0; padding: 0; }
.hero-chips li {
  position: absolute;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px 7px 8px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(35, 34, 31, 0.12);
  color: var(--ink);
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}
.hero-chips li::before {
  content: "";
  flex: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.3l3 3 6-6.3' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat;
}
.hero-chips .chip-1 { left: 5%; top: 16%; }
.hero-chips .chip-2 { right: 5%; top: 34%; }
.hero-chips .chip-3 { left: 4%; bottom: 30%; }
.hero-chips .chip-4 { right: 6%; bottom: 13%; }
/* パネルが狭いとき（スマホなど）はラベルを出さない */
@container (max-width: 500px) {
  .hero-chips { display: none; }
}

/* ---------- ヒーローのパネルをもう少し華やかに（輪、色のにじみ、ラベルを狭い幅でも表示） ---------- */
.hero-panel { --panel-rgb: 30, 107, 58; }
.theme-biz .hero-panel { --panel-rgb: 30, 61, 107; }
.hero-panel {
  background:
    radial-gradient(circle at 10% 92%, rgba(var(--panel-rgb), 0.18) 0%, rgba(var(--panel-rgb), 0) 34%),
    radial-gradient(circle at 92% 8%, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0) 30%),
    radial-gradient(circle at 8% 14%, transparent 0 46px, rgba(var(--panel-rgb), 0.22) 47px 49px, transparent 50px),
    radial-gradient(circle at 94% 80%, transparent 0 74px, rgba(var(--panel-rgb), 0.16) 75px 77px, transparent 78px),
    radial-gradient(circle at 94% 80%, transparent 0 104px, rgba(var(--panel-rgb), 0.10) 105px 107px, transparent 108px),
    linear-gradient(150deg, var(--panel-a) 0%, var(--panel-b) 78%);
}
.hero-panel::before { --panel-dot: rgba(var(--panel-rgb), 0.24); }
@container (max-width: 500px) {
  .hero-chips { display: block; }
  .hero-chips li { gap: 6px; padding: 5px 10px 5px 6px; font-size: 0.75rem; }
  .hero-chips li::before { width: 16px; height: 16px; }
  .hero-chips .chip-1 { left: 2%; top: 14%; }
  .hero-chips .chip-2 { right: 2%; top: 33%; }
  .hero-chips .chip-3 { left: 2%; bottom: 30%; }
  .hero-chips .chip-4 { right: 3%; bottom: 12%; }
}
@container (max-width: 340px) {
  .hero-chips { display: none; }
}

/* 企業向けサービス紹介：02・04・06は図を左、文章を右に（交互に並べる） */
@media (min-width: 901px) {
  .svc:nth-child(even) { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1fr); }
  .svc:nth-child(even) .svc-visual { order: -1; }
}

/* =========================================================
   ヒーロー：スマホの横に「同じアプリで使える身分証」を並べる（機能ラベルは廃止）
   ========================================================= */
.hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  align-items: center;
  place-items: initial;
  gap: clamp(14px, 2.4vw, 28px);
  background:
    radial-gradient(circle at 85% 10%, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 38%),
    linear-gradient(150deg, var(--panel-a) 0%, var(--panel-b) 80%);
}
.hero-panel::before,
.hero-panel::after { display: none; }
.hero-phone { display: grid; place-items: center; }
.hero-panel .hero-phone img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: clamp(300px, calc(100vh - 300px), 480px);
}
.hero-ids { min-width: 0; }
.hero-ids-title { margin-bottom: 10px; font-size: 0.8125rem; font-weight: 700; color: var(--accent); letter-spacing: 0.06em; }
.hero-ids ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.hero-panel .hero-ids img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  border-radius: 10px;
  filter: none;
  box-shadow: 0 8px 20px rgba(35, 34, 31, 0.12);
}
.hero-ids-more {
  padding: 12px 10px;
  border: 2px dashed rgba(var(--panel-rgb), 0.35);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.6);
  color: var(--ink);
  font-size: 0.875rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.5;
}
.hero-ids-more small { display: block; margin-top: 2px; font-size: 0.75rem; font-weight: 400; color: var(--ink-soft); }
@container (max-width: 340px) {
  .hero-ids-title { font-size: 0.75rem; }
  .hero-ids ul { gap: 8px; }
  .hero-ids-more { font-size: 0.75rem; padding: 8px 6px; }
  .hero-ids-more small { display: none; }
}

/* ---------- 企業向けサービス紹介：「便利」「安心」のまとまり ---------- */
.svc-group { margin-top: 48px; }
.svc-group-title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: clamp(1.125rem, 2vw, 1.375rem);
}
.svc-cat {
  flex: none;
  padding: 2px 14px;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  font-size: 0.875rem;
  letter-spacing: 0.08em;
}
.svc-group .svcs { margin-top: 20px; }
.svc h4 { margin: 0; font-size: 1.375rem; line-height: 1.4; font-weight: 700; letter-spacing: 0.04em; }
@media (max-width: 480px) { .svc h4 { font-size: 1.1875rem; } }

/* ---------- フッター：MyiDの目指すこと ---------- */
.footer-mission { margin-top: 6px; padding-left: 14px; border-left: 3px solid #1e6b3a; }
.footer-mission p { font-size: 0.8125rem; line-height: 1.7; color: var(--ink-soft); }
.footer-mission .footer-mission-main { margin-top: 2px; font-size: 0.9375rem; font-weight: 700; color: var(--ink); }

/* ---------- 教育機関向けサービス紹介：図のないカードを3つずつ ---------- */
.svcs.svcs-text { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.svcs-text .svc { display: flex; flex-direction: column; padding: 28px; }
.svcs-text .svc h4 { font-size: 1.25rem; }
@media (min-width: 901px) {
  .svcs-text .svc:nth-child(even) { grid-template-columns: none; }
}
@media (max-width: 1000px) {
  .svcs.svcs-text { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- プライバシーポリシー：お問い合わせフォームに戻る ---------- */
.return-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin-top: 48px;
  padding: 24px 28px;
  border-radius: var(--card-radius);
  background: var(--mist);
}
.return-box p { font-size: 0.9375rem; }
.svcs-text .svc { align-items: stretch; }
.svcs-text .svc-note { margin-top: auto; padding-top: 12px; }
/* ページ下部の「導入のご相談」：1文ずつ改行 */
.cta p { max-width: none; }
.benefit p { word-break: auto-phrase; }

/* ボタンの矢印は右端にそろえる（文字は中央） */
.btn:not(.btn-small) { position: relative; padding: 0 52px; }
.btn:not(.btn-small)::after { position: absolute; right: 13px; top: 50%; margin-top: -13px; }
.top-actions .btn { min-width: 14.5em; }
.hero-actions .btn { min-width: 18em; }

/* ---------- フッター：MyiDの説明は左、メニューは右 ---------- */
.footer-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 32px 48px;
}
.footer-about { max-width: 30em; }
@media (max-width: 860px) {
  .footer-inner { grid-template-columns: minmax(0, 1fr); }
}
.footer-about { max-width: 36em; }
.footer-mission p, .footer-sub { word-break: auto-phrase; }

/* ---------- ヒーロー：身分証の画面とメニューの画面を並べる ---------- */
.hero-panel.hero-two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(10px, 2vw, 24px); }
.hero-two .hero-phone img { max-height: clamp(280px, calc(100vh - 300px), 460px); }
/* 教育機関・企業ページの2つのボタン：PCでは横に並ぶ幅に */
.hero-actions { gap: 12px; }
.hero-actions .btn { min-width: 17.4em; }
/* 目指すことの一文は1行で（スマホでは「仕組みづくりを…」の前で折り返す） */
.footer-about { max-width: none; }
.footer-mission .footer-mission-main { white-space: nowrap; }
@media (max-width: 1000px) {
  .footer-inner { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .footer-mission .footer-mission-main { white-space: normal; }
}
/* 特許取得済みのラベル */
.svc-tags li.tag-patent { background: #fdf0e1; color: #9a4a08; box-shadow: inset 0 0 0 1px #efc79a; }

/* ---------- お問い合わせ：Microsoft Forms の埋め込み ----------
   幅は100%。高さは、フォームの中身（実測）＋入力漏れの注意書きの分（約320px）。
   実測（2026年10月）：フォームの幅760px＝3406px、680px＝3424px、568px＝3515px、382px＝3675px、343px＝3811px、320px＝3911px */
.form-frame {
  display: block;
  width: 100%;
  height: 3740px;
  border: 0;
  background: #fff;
}
@media (max-width: 850px) { .form-frame { height: 3840px; } }
@media (max-width: 640px) { .form-frame { height: 3950px; } }
@media (max-width: 480px) { .form-frame { height: 4050px; } }
@media (max-width: 400px) { .form-frame { height: 4200px; } }
@media (max-width: 359px) { .form-frame { height: 4350px; } }

/* サービス紹介：図の左右は、ページ全体で交互に（02・04・06が図を左に） */
@media (min-width: 901px) {
  .svc:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr); }
  .svc:nth-child(even) .svc-visual { order: 0; }
  .svc.svc-flip { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1fr); }
  .svc.svc-flip .svc-visual { order: -1; }
}

/* ---------- ヒーローのパネル：濃い色のグラデーションに、光の円と細いドット ---------- */
.hero-panel {
  --hp-1: #165a30;
  --hp-2: #1e6b3a;
  --hp-3: #3f9a62;
  background:
    radial-gradient(circle at 88% 12%, rgba(255, 255, 255, 0.28) 0%, rgba(255, 255, 255, 0) 32%),
    radial-gradient(circle at 8% 96%, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0) 38%),
    radial-gradient(circle at 50% 50%, transparent 0 58%, rgba(255, 255, 255, 0.10) 58.3% 58.9%, transparent 59.2%),
    radial-gradient(circle at 50% 50%, transparent 0 74%, rgba(255, 255, 255, 0.07) 74.3% 74.9%, transparent 75.2%),
    linear-gradient(140deg, var(--hp-1) 0%, var(--hp-2) 45%, var(--hp-3) 100%);
}
.theme-biz .hero-panel { --hp-1: #13284a; --hp-2: #1e3d6b; --hp-3: #4a72aa; }
.hero-panel::before {
  display: block;
  --panel-dot: rgba(255, 255, 255, 0.22);
  background-image: radial-gradient(var(--panel-dot) 1.2px, transparent 1.7px);
  background-size: 16px 16px;
  -webkit-mask-image: linear-gradient(200deg, #000 0%, transparent 45%);
  mask-image: linear-gradient(200deg, #000 0%, transparent 45%);
}
.hero-panel .hero-phone img { filter: drop-shadow(0 22px 30px rgba(0, 0, 0, 0.32)); }

/* ---------- ヘッダーを画面の上に固定（スクロールしても「お問い合わせ」がいつも押せる） ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.96);
  -webkit-backdrop-filter: saturate(160%) blur(8px);
  backdrop-filter: saturate(160%) blur(8px);
}
/* ページ内リンクで移動したとき、見出しがヘッダーに隠れないように */
[id] { scroll-margin-top: 76px; }

/* ---------- スマホ画面の「拡大」（JavaScriptなし：チェックボックスで開閉） ---------- */
.hero-phone { position: relative; }
.zoom-toggle { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.zoom-btn {
  position: absolute;
  right: 6px;
  bottom: 6px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 11px 5px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
  color: var(--ink);
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
}
.zoom-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.zoom-btn:hover { background: #fff; color: var(--accent); }
.zoom-toggle:focus-visible + .zoom-btn { outline: 3px solid #fff; outline-offset: 2px; }
.zoom-overlay { display: none; }
.zoom-toggle:checked ~ .zoom-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 24px 16px;
}
.zoom-bg { position: absolute; inset: 0; background: rgba(20, 24, 22, 0.78); cursor: zoom-out; }
.zoom-box { position: relative; display: grid; justify-items: center; gap: 14px; }
.hero-panel .zoom-box img {
  width: auto;
  height: auto;
  max-width: 92vw;
  max-height: calc(100vh - 110px);
  filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.45));
}
.zoom-close {
  padding: 8px 20px;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-size: 0.875rem;
  font-weight: 700;
  cursor: pointer;
}

/* ---------- ヒーローと次のセクションの間を詰める ---------- */
.hero { padding-bottom: 24px; }
.hero + .section { padding-top: 56px; }

/* ---------- 「毎日に、便利と安心を。」：便利・安心の見出しの下に2つずつ、区切り線つき ---------- */
.benefits.benefits-grouped {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 24px;
  margin-top: 40px;
}
.bgroup-label {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 24px;
}
.bgroup-label::before,
.bgroup-label::after { content: ""; flex: 1; height: 1px; background: #cdd6d1; }
.bgroup-label span {
  padding: 3px 18px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.2em;
}
.bgroup-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.bgroup-list .benefit { padding: 0 12px; }
.bgroup-list .benefit + .benefit { border-left: 1px solid #dde4e0; }
.bgroup + .bgroup .bgroup-list .benefit:first-child { border-left: 1px solid #dde4e0; margin-left: -12px; padding-left: 24px; }
.benefits-grouped .benefit h3 { margin-top: 14px; }
@media (max-width: 860px) {
  .benefits.benefits-grouped { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .bgroup + .bgroup .bgroup-list .benefit:first-child { border-left: 0; margin-left: 0; padding-left: 12px; }
}
@media (max-width: 420px) {
  .bgroup-list .benefit { padding: 0 6px; }
  .benefits-grouped .benefit img { width: 140px; }
  .benefits-grouped .benefit h3 { font-size: 1rem; }
}

/* ---------- トップ：最初の画面と次のカードの間を詰める ---------- */
.top-hero { padding-bottom: 16px; }
.top-hero + .section { padding-top: 40px; }

/* ---------- ヒーローのパネル：淡い色に、トップと同じネットワークの模様 ---------- */
.hero-panel {
  container-type: normal;
  background: url("img/network-edu.svg") center / cover no-repeat, linear-gradient(160deg, #f8fcf9 0%, #ecf5ef 100%);
}
.theme-biz .hero-panel {
  background: url("img/network-biz.svg") center / cover no-repeat, linear-gradient(160deg, #f8fafd 0%, #ebf0f7 100%);
}
.hero-panel::before { display: none; }
.hero-panel .hero-phone img { filter: drop-shadow(0 16px 24px rgba(35, 34, 31, 0.18)); }

/* ---------- 拡大表示：画面全体に（パネルの外に置き、隣のチェックボックスで開閉） ---------- */
.zoom-toggle:checked ~ .zoom-overlay { display: none; }
.zoom-toggle:checked + .zoom-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 20px 16px;
}
.zoom-box img {
  display: block;
  width: auto;
  height: auto;
  max-width: 92vw;
  max-height: calc(100vh - 100px);
  max-height: calc(100dvh - 100px);
  filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.45));
}

/* 傍点（●）の色：ページの色（企業ページは青） */
.em-dots > span::before { background: var(--dot, var(--accent)); }
.theme-biz { --dot: #2b5fa8; }

/* ---------- サービス紹介：サービス名（デジタル社員証など）をいちばん目立たせる ---------- */
.svc-head { gap: 16px; padding-bottom: 16px; border-bottom: 2px solid var(--accent-soft); }
.svc-icon { width: 60px; height: 60px; }
.svc-icon img { width: 30px; height: 30px; }
.svc-num {
  display: inline-block;
  margin-bottom: 4px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  font-size: 0.75rem;
  line-height: 1.7;
}
.svc h4, .svcs-text .svc h4 { font-size: clamp(1.5rem, 2.4vw, 1.875rem); line-height: 1.35; letter-spacing: 0.05em; }
.svc-catch { margin-top: 16px; font-size: 1rem; color: var(--accent); }
@media (max-width: 480px) {
  .svc h4 { font-size: 1.375rem; }
  .svc-icon { width: 50px; height: 50px; }
  .svc-icon img { width: 26px; height: 26px; }
}

/* ---------- カードの枠：少し太く、少し濃く（境目をはっきり） ---------- */
:root { --card-line: #cfd9d3; }
.theme-biz { --card-line: #cdd6e3; }
.svc, .id-group:not(.id-group-other) {
  border: 2px solid var(--card-line);
  box-shadow: 0 2px 10px rgba(35, 34, 31, 0.04);
}
.svc-head { border-bottom-color: var(--card-line); }
