@charset "UTF-8";
/* 見出し写真のグラデ（Figma の Rectangle 180 と同じ見え方）: CSS は透明側の色を無視して補間するため中間色を足して再現。サービス一覧はデザイン上 中間色の位置が 28.8%（他ページは 57.2%） */
.pageHead::after { background: linear-gradient(to top, rgba(0, 59, 119, .82) 8.65%, rgba(14, 69, 126, .748) 13.68%, rgba(29, 80, 132, .676) 18.71%, rgba(43, 91, 139, .605) 23.73%, rgba(57, 101, 146, .533) 28.76%, rgba(100, 132, 166, .4) 46.57%, rgba(142, 163, 186, .266) 64.38%, rgba(184, 195, 206, .133) 82.19%, rgba(226, 226, 226, 0)); }
.svcAnchor { position: absolute; top: calc(265 / var(--screen-w) * 100vw); right: calc(43 / var(--screen-w) * 100vw); z-index: 1; display: flex; flex-direction: column; gap: calc(6 / var(--screen-w) * 100vw); }
.svcAnchor a { display: flex; align-items: center; gap: calc(7 / var(--screen-w) * 100vw); width: calc(196 / var(--screen-w) * 100vw); min-height: calc(82 / var(--screen-w) * 100vw); padding: 0 calc(40 / var(--screen-w) * 100vw) 0 calc(19 / var(--screen-w) * 100vw); border-radius: calc(6 / var(--screen-w) * 100vw); background: rgba(255, 255, 255, .88) url(../img/service/chev-down.svg) right calc(20 / var(--screen-w) * 100vw) center / calc(12 / var(--screen-w) * 100vw) auto no-repeat; box-shadow: 0 calc(4 / var(--screen-w) * 100vw) calc(12 / var(--screen-w) * 100vw) rgba(0, 0, 0, .12); color: var(--txt2); font-size: calc(15 / var(--fs-w) * 100vw); font-weight: 600; line-height: 1.5; white-space: nowrap; }
.svcAnchor a::before { content: ""; flex-shrink: 0; width: calc(28 / var(--screen-w) * 100vw); height: calc(28 / var(--screen-w) * 100vw); background: url(../img/service/ic-search.svg) center / contain no-repeat; }
.svcAnchor .-list::before { background-image: url(../img/service/ic-list.svg); }

.svcTtl { display: flex; align-items: center; justify-content: center; gap: calc(5 / var(--screen-w) * 100vw); font-size: calc(32 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.25; letter-spacing: .06em; }
.svcTtl::before { content: ""; flex-shrink: 0; width: calc(46.4 / var(--screen-w) * 100vw); height: calc(46.4 / var(--screen-w) * 100vw); background: url(../img/service/ic-search.svg) center / contain no-repeat; }
.svcTtl.-check::before { background-image: url(../img/service/ic-check.svg); }

/* ===== 検索 ===== */
.svcSearch { margin: calc(60.6 / var(--screen-w) * 100vw) calc(229 / var(--screen-w) * 100vw) 0; padding: calc(51.3 / var(--screen-w) * 100vw) 0 calc(37.4 / var(--screen-w) * 100vw); border-radius: calc(70 / var(--screen-w) * 100vw); background: #f3f6fb; }
.svcSearch-tabs { justify-content: center; gap: calc(14 / var(--screen-w) * 100vw); margin-top: calc(40.7 / var(--screen-w) * 100vw); }
.svcSearch-tabs button { position: relative; width: calc(264.6 / var(--screen-w) * 100vw); min-height: calc(73.7 / var(--screen-w) * 100vw); padding: calc(8 / var(--screen-w) * 100vw); border: calc(2 / var(--screen-w) * 100vw) solid var(--btn); border-radius: calc(10 / var(--screen-w) * 100vw); background: #fff; color: var(--btn); font-size: calc(18 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.28; text-align: center; }
.svcSearch-tabs [aria-selected="true"] { background: #2f5fb0; border-color: #2f5fb0; color: #fff; }
.svcSearch-tabs [aria-selected="true"]::after { content: ""; position: absolute; left: 50%; bottom: calc(-13 / var(--screen-w) * 100vw); width: calc(29.5 / var(--screen-w) * 100vw); height: calc(14 / var(--screen-w) * 100vw); background: #2f5fb0; clip-path: polygon(0 0, 100% 0, 50% 100%); transform: translateX(-50%); }
.svcSearch [hidden] { display: none; }
.svcSearch-box { width: calc(1274 / var(--screen-w) * 100vw); margin: calc(23.6 / var(--screen-w) * 100vw) auto 0; padding: calc(31.9 / var(--screen-w) * 100vw) calc(83.3 / var(--screen-w) * 100vw) calc(33.4 / var(--screen-w) * 100vw); border-radius: calc(8 / var(--screen-w) * 100vw); background: #e9edf4; }
.svcSearch-opts { grid-template-columns: repeat(3, 1fr); gap: calc(9.8 / var(--screen-w) * 100vw) calc(13.7 / var(--screen-w) * 100vw); }
.svcSearch-opts label { display: flex; align-items: center; gap: calc(12.3 / var(--screen-w) * 100vw); min-height: calc(65.9 / var(--screen-w) * 100vw); padding: calc(8 / var(--screen-w) * 100vw) calc(12 / var(--screen-w) * 100vw) calc(8 / var(--screen-w) * 100vw) calc(21.4 / var(--screen-w) * 100vw); border: 1px solid #fff; border-radius: calc(2 / var(--screen-w) * 100vw); background: #fff; color: var(--txt2); font-size: calc(18 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.5; cursor: pointer; }
.svcSearch-opts label:has(:checked) { border-color: #2c4f8f; }
.svcSearch-opts input { flex-shrink: 0; width: calc(24 / var(--screen-w) * 100vw); height: calc(24 / var(--screen-w) * 100vw); border: 1px solid #b8b8b8; border-radius: 50%; appearance: none; }
.svcSearch-opts input:checked { background: radial-gradient(circle, var(--btn) calc(7.3 / var(--screen-w) * 100vw), #fff calc(8.3 / var(--screen-w) * 100vw)); }
.svcSearch-word input { width: 100%; min-height: calc(65.9 / var(--screen-w) * 100vw); padding: 0 calc(24 / var(--screen-w) * 100vw); border: 1px solid #c8c8c8; border-radius: calc(2 / var(--screen-w) * 100vw); background: #fff; font-size: calc(18 / var(--fs-w) * 100vw); }
.svcSearch-btn { display: block; width: 100%; min-height: calc(56.2 / var(--screen-w) * 100vw); margin: calc(27.7 / var(--screen-w) * 100vw) 0 0; padding: calc(6 / var(--screen-w) * 100vw) calc(20 / var(--screen-w) * 100vw); border-radius: calc(4 / var(--screen-w) * 100vw); background: #7c7f83; color: #fff; font-size: calc(16 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.5; text-align: center; }

/* ===== 結果 ===== */
.svcResult { margin-top: calc(103.3 / var(--screen-w) * 100vw); }
.svcResult-list { width: calc(1274 / var(--screen-w) * 100vw); margin: calc(45 / var(--screen-w) * 100vw) auto 0; }
.svcResult-list li + li { margin-top: calc(27.7 / var(--screen-w) * 100vw); }
.svcResult-list a { position: relative; display: block; min-height: calc(132.4 / var(--screen-w) * 100vw); padding: calc(30 / var(--screen-w) * 100vw) calc(110 / var(--screen-w) * 100vw) calc(28 / var(--screen-w) * 100vw) calc(36.5 / var(--screen-w) * 100vw); border-left: calc(8.4 / var(--screen-w) * 100vw) solid var(--btn); background: #fff; box-shadow: 0 0 calc(12 / var(--screen-w) * 100vw) rgba(0, 0, 0, .1); color: var(--txt2); }
.svcResult-list a::after { content: ""; position: absolute; top: 50%; right: calc(36.4 / var(--screen-w) * 100vw); width: calc(53.3 / var(--screen-w) * 100vw); height: calc(29.2 / var(--screen-w) * 100vw); border-radius: calc(15 / var(--screen-w) * 100vw); background: #e9e9e9 url(../img/common/chev-dark.svg) center / calc(7 / var(--screen-w) * 100vw) auto no-repeat; transform: translateY(-50%); }
.svcResult-list h3 { font-size: calc(22 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.64; text-decoration: underline; text-underline-offset: .2em; }
.svcResult-list p { margin-top: calc(7 / var(--screen-w) * 100vw); font-size: calc(16 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.5; }

/* ===== 一覧 ===== */
.svcList { margin-top: calc(237.3 / var(--screen-w) * 100vw); padding: 0 calc(90 / var(--screen-w) * 100vw) calc(191.6 / var(--screen-w) * 100vw); }
.svcList h2 { padding-top: calc(39.4 / var(--screen-w) * 100vw); background: linear-gradient(var(--btn), var(--btn)) 0 0 / calc(173 / var(--screen-w) * 100vw) calc(2 / var(--screen-w) * 100vw) no-repeat, linear-gradient(#d4d4d4, #d4d4d4) calc(192 / var(--screen-w) * 100vw) 0 / calc(1548 / var(--screen-w) * 100vw) calc(2 / var(--screen-w) * 100vw) no-repeat; font-size: calc(28 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.43; }
.svcList-cols { width: calc(1381.8 / var(--screen-w) * 100vw); margin: calc(26.8 / var(--screen-w) * 100vw) 0 0 calc(341 / var(--screen-w) * 100vw); }
.svcList-col { width: calc(646 / var(--screen-w) * 100vw); }
.svcList-ttl { display: flex; align-items: center; gap: calc(10.9 / var(--screen-w) * 100vw); font-size: calc(28 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.5; }
.svcList-ttl::before { content: ""; flex-shrink: 0; width: calc(46.3 / var(--screen-w) * 100vw); height: calc(46.3 / var(--screen-w) * 100vw); background: url(../img/service/ic-corp.svg) center / contain no-repeat; }
.svcList-ttl.-pub::before { background-image: url(../img/service/ic-flag.svg); }
.svcList-ttl.-other { margin: calc(94 / var(--screen-w) * 100vw) 0 0 calc(341 / var(--screen-w) * 100vw); }
.svcList-ttl.-other::before { background-image: url(../img/service/ic-other.svg); }
.svcList ol { margin-top: calc(32.5 / var(--screen-w) * 100vw); border-bottom: calc(2 / var(--screen-w) * 100vw) solid #e0e0e0; }
.svcList ol li { border-top: calc(2 / var(--screen-w) * 100vw) solid #e0e0e0; }
.svcList ol a { display: flex; align-items: center; min-height: calc(69.6 / var(--screen-w) * 100vw); padding: calc(8 / var(--screen-w) * 100vw) calc(50 / var(--screen-w) * 100vw) calc(8 / var(--screen-w) * 100vw) 0; background: url(../img/common/chev-dark.svg) right calc(21 / var(--screen-w) * 100vw) center / calc(6 / var(--screen-w) * 100vw) auto no-repeat; color: var(--txt2); font-size: calc(18 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.5; }
.svcList ol a::before { content: attr(data-no); /* 各サービスページの Service 番号 */ flex-shrink: 0; width: calc(70.8 / var(--screen-w) * 100vw); font-size: calc(14 / var(--fs-w) * 100vw); }
.svcOther { grid-template-columns: calc(664 / var(--screen-w) * 100vw) calc(670.8 / var(--screen-w) * 100vw); gap: calc(39.8 / var(--screen-w) * 100vw); margin: calc(44.6 / var(--screen-w) * 100vw) 0 0 calc(323 / var(--screen-w) * 100vw); }
.svcOther-card { position: relative; min-height: calc(424 / var(--screen-w) * 100vw); padding: calc(71.6 / var(--screen-w) * 100vw) 0 calc(110 / var(--screen-w) * 100vw) calc(40.4 / var(--screen-w) * 100vw); border: 1px solid #b2b2b2; border-radius: calc(4 / var(--screen-w) * 100vw); }
.svcOther-card.-proc { padding: calc(61.1 / var(--screen-w) * 100vw) 0 calc(110 / var(--screen-w) * 100vw) calc(59.2 / var(--screen-w) * 100vw); }
.svcOther h4 img { width: calc(220 / var(--screen-w) * 100vw); margin-left: calc(-3.8 / var(--screen-w) * 100vw); }
.svcOther .-proc h4 img { width: calc(204 / var(--screen-w) * 100vw); margin: 0; }
.svcOther p { width: calc(237.4 / var(--screen-w) * 100vw); margin-top: calc(45.5 / var(--screen-w) * 100vw); color: var(--txt2); font-size: calc(16 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.76; letter-spacing: -.03em; }
.svcOther .-proc p { margin-top: calc(35 / var(--screen-w) * 100vw); }
.svcOther-img { position: absolute; top: calc(99.6 / var(--screen-w) * 100vw); left: calc(299 / var(--screen-w) * 100vw); width: calc(351.6 / var(--screen-w) * 100vw); }
.-proc .svcOther-img { left: calc(315.2 / var(--screen-w) * 100vw); }
.svcOther-links { position: absolute; left: calc(40.4 / var(--screen-w) * 100vw); bottom: calc(57.3 / var(--screen-w) * 100vw); gap: calc(10 / var(--screen-w) * 100vw) calc(43 / var(--screen-w) * 100vw); }
.-proc .svcOther-links { left: calc(60.8 / var(--screen-w) * 100vw); }
.svcOther-links a { padding-right: calc(40.2 / var(--screen-w) * 100vw); background: url(../img/common/pill-blue.svg) right center / calc(28.2 / var(--screen-w) * 100vw) auto no-repeat; color: var(--txt); font-size: calc(16 / var(--fs-w) * 100vw); font-weight: 600; line-height: 1.5; white-space: nowrap; }

@media (max-width: 1280px) {
  /* その他サービスのカード: 文字が相対的に大きくなり本文の列が細長くなるので、本文→画像→リンクの縦並びにする */
  .svcOther { grid-template-columns: 1fr 1fr; }
  .svcOther-card, .svcOther-card.-proc { padding: calc(60 / var(--screen-w) * 100vw) calc(50 / var(--screen-w) * 100vw) calc(60 / var(--screen-w) * 100vw); }
  .svcOther p { width: auto; margin-top: calc(40 / var(--screen-w) * 100vw); }
  .svcOther-img, .-proc .svcOther-img { position: static; display: block; margin: calc(40 / var(--screen-w) * 100vw) auto 0; }
  .svcOther-links, .-proc .svcOther-links { position: static; margin-top: calc(40 / var(--screen-w) * 100vw); }
  .svcSearch-tabs button { width: calc(310 / var(--screen-w) * 100vw); }
}
@media (max-width: 1080px) {
  .svcSearch { margin-inline: calc(90 / var(--screen-w) * 100vw); }
  .svcSearch-tabs button { width: calc(340 / var(--screen-w) * 100vw); }
  .svcSearch-box { width: calc(1500 / var(--screen-w) * 100vw); }
  .svcSearch-opts { grid-template-columns: repeat(2, 1fr); }
  .svcResult-list { width: calc(1500 / var(--screen-w) * 100vw); }
  .svcList-cols { width: auto; margin-left: calc(160 / var(--screen-w) * 100vw); gap: calc(80 / var(--screen-w) * 100vw); }
  .svcList-col { flex: 1; }
  .svcList-ttl.-other { margin-left: calc(160 / var(--screen-w) * 100vw); }
  .svcOther { grid-template-columns: 1fr 1fr; margin-left: calc(160 / var(--screen-w) * 100vw); }
  .svcOther-card, .svcOther-card.-proc { padding: calc(60 / var(--screen-w) * 100vw) calc(50 / var(--screen-w) * 100vw) calc(60 / var(--screen-w) * 100vw); }
  .svcOther p { width: auto; margin-top: calc(40 / var(--screen-w) * 100vw); }
  .svcOther-img, .-proc .svcOther-img { position: static; display: block; margin: calc(40 / var(--screen-w) * 100vw) auto 0; }
  .svcOther-links, .-proc .svcOther-links { position: static; margin-top: calc(40 / var(--screen-w) * 100vw); }
}

@media (max-width: 900px) {
  .svcAnchor { display: none; }
  .svcTtl { font-size: calc(20 / var(--fs-w) * 100vw); }
  .svcTtl::before { width: calc(32 / var(--screen-w) * 100vw); height: calc(32 / var(--screen-w) * 100vw); }
  .svcSearch { margin: calc(40 / var(--screen-w) * 100vw) calc(16 / var(--screen-w) * 100vw) 0; padding: calc(40 / var(--screen-w) * 100vw) calc(16 / var(--screen-w) * 100vw); border-radius: calc(24 / var(--screen-w) * 100vw); }
  .svcSearch-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: calc(8 / var(--screen-w) * 100vw); margin-top: calc(28 / var(--screen-w) * 100vw); }
  .svcSearch-tabs button { width: auto; min-height: calc(56 / var(--screen-w) * 100vw); padding: calc(6 / var(--screen-w) * 100vw) calc(4 / var(--screen-w) * 100vw); border-radius: calc(8 / var(--screen-w) * 100vw); font-size: calc(12 / var(--fs-w) * 100vw); }
  .svcSearch-tabs [aria-selected="true"]::after { bottom: calc(-9 / var(--screen-w) * 100vw); width: calc(18 / var(--screen-w) * 100vw); height: calc(9 / var(--screen-w) * 100vw); }
  .svcSearch-box { width: auto; margin-top: calc(20 / var(--screen-w) * 100vw); padding: calc(20 / var(--screen-w) * 100vw) calc(12 / var(--screen-w) * 100vw); }
  .svcSearch-opts { grid-template-columns: 1fr; gap: calc(8 / var(--screen-w) * 100vw); }
  .svcSearch-opts label { gap: calc(10 / var(--screen-w) * 100vw); min-height: calc(52 / var(--screen-w) * 100vw); padding-left: calc(14 / var(--screen-w) * 100vw); font-size: calc(14 / var(--fs-w) * 100vw); }
  .svcSearch-opts input { width: calc(20 / var(--screen-w) * 100vw); height: calc(20 / var(--screen-w) * 100vw); }
  .svcSearch-opts input:checked { background: radial-gradient(circle, var(--btn) calc(6 / var(--screen-w) * 100vw), #fff calc(7 / var(--screen-w) * 100vw)); }
  .svcSearch-word input { min-height: calc(52 / var(--screen-w) * 100vw); padding: 0 calc(14 / var(--screen-w) * 100vw); font-size: calc(16 / var(--fs-w) * 100vw); }
  .svcSearch-btn { min-height: calc(46 / var(--screen-w) * 100vw); margin-top: calc(16 / var(--screen-w) * 100vw); font-size: calc(15 / var(--fs-w) * 100vw); }
  .svcResult { margin-top: calc(56 / var(--screen-w) * 100vw); padding: 0 calc(16 / var(--screen-w) * 100vw); }
  .svcResult-list { width: auto; margin-top: calc(24 / var(--screen-w) * 100vw); }
  .svcResult-list li + li { margin-top: calc(14 / var(--screen-w) * 100vw); }
  .svcResult-list a { min-height: 0; padding: calc(18 / var(--screen-w) * 100vw) calc(68 / var(--screen-w) * 100vw) calc(18 / var(--screen-w) * 100vw) calc(18 / var(--screen-w) * 100vw); border-left-width: calc(5 / var(--screen-w) * 100vw); }
  .svcResult-list a::after { right: calc(14 / var(--screen-w) * 100vw); width: calc(40 / var(--screen-w) * 100vw); height: calc(24 / var(--screen-w) * 100vw); background-size: calc(6 / var(--screen-w) * 100vw) auto; }
  .svcResult-list h3 { font-size: calc(16 / var(--fs-w) * 100vw); line-height: 1.5; }
  .svcResult-list p { margin-top: calc(4 / var(--screen-w) * 100vw); font-size: calc(13 / var(--fs-w) * 100vw); }
  .svcList { margin-top: calc(72 / var(--screen-w) * 100vw); padding: 0 calc(16 / var(--screen-w) * 100vw) calc(80 / var(--screen-w) * 100vw); }
  .svcList h2 { padding-top: calc(20 / var(--screen-w) * 100vw); background-size: calc(80 / var(--screen-w) * 100vw) calc(2 / var(--screen-w) * 100vw), calc(268 / var(--screen-w) * 100vw) calc(2 / var(--screen-w) * 100vw); background-position: 0 0, calc(90 / var(--screen-w) * 100vw) 0; font-size: calc(22 / var(--fs-w) * 100vw); }
  .svcList-cols { flex-direction: column; gap: calc(40 / var(--screen-w) * 100vw); margin: calc(28 / var(--screen-w) * 100vw) 0 0; }
  .svcList-col { width: auto; }
  .svcList-ttl { gap: calc(10 / var(--screen-w) * 100vw); font-size: calc(19 / var(--fs-w) * 100vw); }
  .svcList-ttl::before { width: calc(36 / var(--screen-w) * 100vw); height: calc(36 / var(--screen-w) * 100vw); }
  .svcList ol { margin-top: calc(16 / var(--screen-w) * 100vw); }
  .svcList ol a { min-height: calc(56 / var(--screen-w) * 100vw); padding-right: calc(28 / var(--screen-w) * 100vw); background-position: right calc(8 / var(--screen-w) * 100vw) center; font-size: calc(14 / var(--fs-w) * 100vw); }
  .svcList ol a::before { width: calc(36 / var(--screen-w) * 100vw); font-size: calc(12 / var(--fs-w) * 100vw); }
  .svcList-ttl.-other { margin: calc(48 / var(--screen-w) * 100vw) 0 0; }
  .svcOther { grid-template-columns: 1fr; gap: calc(16 / var(--screen-w) * 100vw); margin: calc(20 / var(--screen-w) * 100vw) 0 0; }
  .svcOther-card, .svcOther-card.-proc { min-height: 0; padding: calc(28 / var(--screen-w) * 100vw) calc(20 / var(--screen-w) * 100vw); }
  .svcOther h4 img { width: calc(180 / var(--screen-w) * 100vw); margin: 0; }
  .svcOther .-proc h4 img { width: calc(170 / var(--screen-w) * 100vw); }
  .svcOther p, .svcOther .-proc p { margin-top: calc(16 / var(--screen-w) * 100vw); font-size: calc(14 / var(--fs-w) * 100vw); }
  .svcOther-img, .-proc .svcOther-img { width: calc(300 / var(--screen-w) * 100vw); margin-top: calc(20 / var(--screen-w) * 100vw); }
  .svcOther-links, .-proc .svcOther-links { gap: calc(10 / var(--screen-w) * 100vw) calc(24 / var(--screen-w) * 100vw); margin-top: calc(20 / var(--screen-w) * 100vw); }
  .svcOther-links a { padding-right: calc(36 / var(--screen-w) * 100vw); background-size: calc(26 / var(--screen-w) * 100vw) auto; font-size: calc(14 / var(--fs-w) * 100vw); }
}

/* 改行位置: 語句の途中で切らない */
.svcSearch-tabs span, .svcSearch-opts label span span { display: inline-block; }
