@charset "UTF-8";

html { line-break: strict; word-break: auto-phrase; scroll-padding-top: 84px; }
body { text-spacing-trim: trim-start; letter-spacing: .02em; }
h1, h2, h3, .cta-band h2 { text-wrap: balance; letter-spacing: .04em; }
main p, main li, main td, main dd, main summary { text-wrap: pretty; }

.hero-h, .philo .pt, .hero-sub { text-wrap: initial; }
.nw { white-space: nowrap; }

@media (max-width: 22.4375em) { .nw { white-space: normal; } h1 .nw, h2 .nw, h3 .nw, .btn-p .nw, .btn-s .nw, .btn-o .nw { white-space: nowrap; } }

main p, main li, main td, main th, main dd, main summary, .card p, .faq-list details p { text-align: left; }
.page-hero .lead { text-align: center; text-wrap: balance; max-width: 30em; margin-inline: auto; }
main .hero-sub { text-align: center; }

:root { --mut: #5b6577; }
main :is(p, li, td, th, dd, dt, summary) { font-size: max(13px, 1em); }
.fstep p, .cert p, .gov-card li, .faq-list details p, .rule p, .card p { font-size: 13px; }
.sec-k, .col-card time, .copy, .foot .addr, .foot-links dt, .cta-band .tel,
.fstep .who, .fstep .fno, .scene-key, .kicker, .philo .pk, .m-band, .microfoot { font-size: 12px; }
.sec-k { letter-spacing: .04em; }
h2 .sub { font-size: 15px; font-weight: 700; }

.cta-band .sub2, .cta-band .tel, .foot, .foot .addr, .foot-links dd a, .copy, .statement .st-note { color: #cbd5e1; }
.cta-band .tel a { color: #fff; }

:root { --maxw: 1040px; }
main > section, main > section.wrap { padding-block: 0; margin-top: 64px; }
main > .page-hero + section, main > .page-hero + section.wrap { margin-top: 0; }
main > section:last-child, main > section.wrap:last-child { margin-bottom: 64px; }
.cta-band { margin-top: 64px; }
.wrap { max-width: 1040px; }
.wrap.narrow { max-width: 820px; }
h3.sub-h3 { font-size: 18px; font-weight: 700; text-align: center; margin: 24px 0 12px; }
h2 + h3.sub-h3 { margin-top: 0; }

.toc-chips a, .m-cta, .nav-cta {
  min-height: 44px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; }

.nav-links a, .mnav a, .m-nav a { display: inline-block; min-height: 44px; box-sizing: border-box; }
.nav-links a, .m-nav a { line-height: 30px; }

.btn-p, .btn-s, .btn-o, .more-link, .foot-links dd a, .microfoot a { display: inline-block; min-height: 44px; line-height: 1.4; box-sizing: border-box; }
.btn-p, .btn-s, .btn-o { padding-top: 13px; padding-bottom: 13px; }
.menu-btn { min-width: 44px; min-height: 44px; }
.nav-links { gap: 8px; } .nav-links a { padding-inline: 8px; }
.foot-links dd { margin-bottom: 8px; }
.toc-chips { gap: 8px; }
.btn-o { font-size: 14px; font-weight: 700; padding: 12px 26px; border-radius: 999px; border: 1.5px solid var(--acc, #2456c4); color: var(--acc, #2456c4); background: transparent; text-decoration: none; }
@media (hover: hover) { .btn-o:hover { background: var(--acc-soft, #e3ebfa); } }

@media (max-width: 767px) {
  table.stack, table.stack tbody, table.stack tr, table.stack th, table.stack td { display: block; width: 100%; box-sizing: border-box; }
  table.stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  table.stack tr { border-bottom: 1px solid rgba(24,32,50,.1); padding: 8px 0; }
  table.stack th { font-weight: 700; padding: 6px 0 2px; border: 0; }
  table.stack td { padding: 2px 0 6px; border: 0; }

  main > section, main > section.wrap { margin-top: 48px; }
  .cta-band { margin-top: 48px; }
  main > section:last-child, main > section.wrap:last-child { margin-bottom: 48px; }

  .foot-links { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; }
  .foot-links dl.full { grid-column: 1 / -1; }
}

.nav-links a[aria-current="page"], .mnav a[aria-current="page"] { font-weight: 700; color: var(--acc, #2456c4); border-color: var(--acc, #2456c4); }
.mnav a[aria-current="page"] { border-bottom: 2px solid var(--acc, #2456c4); }
@media (max-width: 767px) { .foot-links dt.group-h { margin-top: 6px; } }
.copy { justify-content: flex-start; }
.cta-band .tel { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 6px 16px; }
.cta-band .tel .hours { font-size: 12px; }
.cta-band .tel a { font-size: 16px; font-weight: 700; letter-spacing: .02em; }
@media (max-width: 767px) { .cta-band .tel { flex-direction: column; align-items: center; } }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
:focus-visible { outline: 2px solid var(--acc, #2456c4); outline-offset: 2px; }
.cta-band :focus-visible, footer:not(.microfoot) :focus-visible, .statement :focus-visible { outline-color: #fff; }

.rv { opacity: 1 !important; transform: none !important; transition: none !important; }

details > summary { list-style: none; position: relative; padding-right: 36px; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details > summary::after { content: "＋"; content: "＋" / ""; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: var(--acc, #2456c4); font-weight: 700; font-size: 18px; }
details[open] > summary::after { content: "−"; content: "−" / ""; }

a .arrow { margin-left: 4px; }


.nav-links a { min-width: 44px; text-align: center; }
.hitem p, main p.note, #docs .note, #refs .note, #promise .note, #page-note .note { font-size: 13px; }
.rno { font-size: 12px; }
.m-nav { font-size: 12px; }
.rule .rno { font-size: 12px; }
.foot-links dd a { min-width: 44px; }

@media (max-width: 22.4375em) { main summary, main p, main li, main td { overflow-wrap: anywhere; } }

@media (min-width: 768px) { .center-pc, .cta-band p, .statement p { text-align: center; } }
.fstep, .cert, .fstep h3, .fstep h4, .cert h3 { text-align: left; }
.kicker, .philo .pk, .fstep .who, .rno, .foot-links dt { letter-spacing: .04em; }
.btn-s { border-color: rgba(24,32,50,.5); }
.menu-btn { border-color: rgba(24,32,50,.5); }
main p a:not([class]), main li a:not([class]), .faq-list details a, .prose a { text-decoration: underline; text-underline-offset: .2em; }

@media (max-width: 767px) { summary .nw { white-space: normal; } }

main td a:not([class]) { color: var(--acc, #2456c4); text-decoration: underline; text-underline-offset: .2em; }
.faq-list summary:focus-visible, .scene-details summary:focus-visible, details > summary:focus-visible { outline-offset: -3px; }
.mnav { max-height: calc(100vh - 73px); max-height: calc(100svh - 73px); overflow-y: auto; }
.to-top { visibility: hidden; } .to-top.show { visibility: visible; }
.gov-own a, .cert-links a, .foot .addr a, footer .logo, .cta-band .tel a { display: inline-block; min-height: 44px; line-height: 44px; }
.foot .addr { line-height: 2.2; }
.foot .addr a[href^="tel:"] { text-decoration: underline; text-underline-offset: .2em; }

.nav-cta, .m-cta { white-space: nowrap; }
.nav .logo, .m-head .logo { flex-shrink: 0; }
.microfoot a, .foot-links dd a { display: inline-flex; align-items: center; min-height: 44px; line-height: 1.5; }
.foot-links dd { margin-bottom: 8px; }
h3.sub-h3 { margin-top: 48px; }
h2 + h3.sub-h3, .story h3.sub-h3 { margin-top: 0; }

.no-js .menu-btn { display: none !important; }
@media screen and (max-width: 1023px) { .no-js .mnav { display: flex !important; position: static; } }

.nav .logo img, .m-head .logo img { font-size: 12px; line-height: 1.2; overflow: hidden; white-space: nowrap; }

@media print {
  .skip-link, .menu-btn, .mnav, .to-top, .toc-hint, .toc-chips { display: none !important; }
  header, .m-headwrap { position: static !important; backdrop-filter: none; }
  .cta-band, .foot, footer, .statement { background: none !important; color: #182032 !important; border: 1px solid #c9ccd4; }
  .cta-band *, .foot *, footer *, .statement * { color: #182032 !important; }
  footer .logo img { filter: invert(1) brightness(.4); }
  .btn-p, .btn-s, .btn-o { color: #2456c4 !important; background: none !important; border: 1.5px solid #2456c4 !important; box-shadow: none !important; }
  details > summary::after { display: none; }
  a[href^="http"]::after { content: ""; }
}

@media print { .no-js .mnav { display: none !important; } }

main .rule p, main .faq-list details p, main .prose p, main .prose li, main table.stack td, main table.stack th { font-size: 14.5px; line-height: 1.9; }
main .card p, main .fstep p, main .cert p, main .gov-card li { font-size: 14px; }

.cta-band .tel a, .foot .addr a.ext, .microfoot .links a { text-decoration: underline; text-underline-offset: .2em; }
.foot .addr { font-size: 13px; }
.foot .addr a[href^="tel:"] { font-size: 14px; font-weight: 700; }

main[tabindex="-1"]:focus, main section[tabindex="-1"]:focus, main [tabindex="-1"]:focus:not(a):not(button) { outline: none; }

@media (max-height: 500px) { header:not(.m-headwrap) { position: static; } html { scroll-padding-top: 0; } }

main .gov-card p { font-size: 14px; }
main .info-table th, main .info-table td { font-size: 14.5px; line-height: 1.9; }

summary h3 .h-sub, summary h3 .h-sub .nw { white-space: nowrap; }

body { font-family: 'Zen Kaku Gothic New', "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif; }

@media (max-width: 767px) { header:not(.m-headwrap) { backdrop-filter: none; background: rgba(250,251,253,.96); } }

:root { color-scheme: only light; }

@media (forced-colors: active) {
  .menu-btn span, .menu-btn span::before, .menu-btn span::after { forced-color-adjust: none; background: ButtonText; }
  #ai-scene { forced-color-adjust: none; background: #fff !important; }
  .scene-key .k { forced-color-adjust: none; }
  .nav-links a { border-bottom-color: Canvas; }
  .nav-links a[aria-current="page"] { border-bottom-color: Highlight; }
  .btn-p, .nav-cta, .m-cta, .mnav .nav-cta, .mnav .m-cta { border: 2px solid ButtonText; }
  .fstep::after { forced-color-adjust: none; border-color: transparent; border-left-color: CanvasText; }
  .nav .logo img, .m-head .logo img { forced-color-adjust: none; background: #fff; border-radius: 6px; padding: 2px 4px; }
  footer .logo img, .foot .logo img { forced-color-adjust: none; background: #182032; border-radius: 6px; padding: 2px 4px; }
}
@media (forced-colors: active) and (max-width: 1023px) { .fstep::after { border-left-color: transparent; border-top-color: CanvasText; } }

.phr, .phr * { white-space: nowrap !important; }

@media (max-width: 374px) { summary h3 .h-sub { white-space: normal; } summary h3 .h-sub .nw { white-space: nowrap; } }

.phr.off, .phr.off * { white-space: normal !important; }

.wb-n { word-break: normal; }
@media (max-width: 22.4375em) { .wb-n .nw { white-space: nowrap; } }

.toc-hint { text-align: center; font-size: 13px; color: var(--mut, #5b6577); margin: 18px 0 8px; }
.toc-chips { display: flex; flex-wrap: wrap; justify-content: center; max-width: 820px; margin: 0 auto; }
.toc-chips a { padding: 8px 16px; border: 1.5px solid var(--acc, #2456c4); border-radius: 999px; background: #fff; color: var(--acc, #2456c4); font-size: 13px; font-weight: 700; transition: .2s; }
@media (hover: hover) { .toc-chips a:hover { background: #e3ebfa; } }
@media (min-width: 1024px) { .toc-chips { max-width: 1040px; } }
@media (min-width: 768px) and (max-width: 1023px) { .toc-chips { max-width: 34em; } }

.arrow { font-family: "Hiragino Sans", Meiryo, "Segoe UI Symbol", sans-serif; }

@media (max-width: 22.4375em) { .hero-sub .nw, .foot-links dd .nw { white-space: nowrap; } .foot-links { grid-template-columns: 1fr; } }

.gov-own a, .foot .addr a { display: inline; line-height: inherit; position: relative; }
.gov-own a::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 44px; transform: translateY(-50%); }

.foot .addr a[href^="tel:"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 44px; }
.foot .addr a.ext::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 44px; }
.cert-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; }
@media (max-width: 767px) { .cert-links { flex-direction: column; align-items: center; gap: 8px; } .cert-links a { display: inline-flex; align-items: center; min-height: 44px; } }

.chip { display: inline-block; font-size: 13px; font-weight: 700; padding: 8px 16px; border-radius: 6px; background: #e3ebfa; color: #1e3a8a; border: 0; box-shadow: none; }

a, button, summary { -webkit-tap-highlight-color: rgba(36, 86, 196, .15); }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

@media (max-width: 22.75em) { .cta-band { padding-inline: 20px; } .cta-band .btn-p { padding-inline: 20px; max-width: 100%; box-sizing: border-box; } }

@media (max-width: 22.4375em) { .nw.num { white-space: nowrap; } }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0s !important; } .card:hover, .col-card:hover, .btn-p:hover { transform: none !important; } .to-top { transform: none !important; } }

@media (max-width: 767px) { .page-hero { padding: 48px 16px 40px; } }

html:not([lang|="ja"]) .nw:not(.num), html.translated-ltr .nw:not(.num), html.translated-rtl .nw:not(.num) { white-space: normal; }
html:not([lang|="ja"]) .phr, html:not([lang|="ja"]) .phr *, html.translated-ltr .phr, html.translated-ltr .phr *, html.translated-rtl .phr, html.translated-rtl .phr * { white-space: normal !important; }

@media (max-width: 22.4375em) { .page-hero .lead .nw { white-space: nowrap; } }

@media (max-width: 339px) { .nav { padding-inline: 16px; } .nav .logo { flex-shrink: 1; min-width: 0; } .nav .logo img { height: auto; max-width: 100%; max-height: 38px; } }

@media (max-width: 319px) { .btn-o .nw, .btn-p .nw, .btn-s .nw { white-space: normal; } }

@media (max-width: 767px) { .cert-links a { display: inline-block; line-height: 1.6; padding-block: 10px; min-height: 44px; box-sizing: border-box; text-align: center; } }

main .info-table td a { color: var(--acc, #2456c4); font-weight: 700; }

@media (min-width: 768px) and (max-width: 1023px) { .toc-chips.toc-4 { max-width: none; } }
@media (min-width: 768px) and (max-width: 1279px) { .toc-chips.toc-8 { max-width: 40em; } }

@media (max-width: 319px) { .wb-n > .nw { white-space: nowrap; } }

@supports not (word-break: auto-phrase) { .wb-n > .nw { display: inline-block; } }
a .wb-n, a .wb-n > .nw { text-decoration: inherit; }

@media (max-width: 339px) { .m-head .logo { flex-shrink: 1; min-width: 0; } .m-head .logo img { max-width: 100%; height: auto; max-height: clamp(28px, 4.2vh, 40px); } }

@media screen and (max-width: 1023px) { .no-js header:not(.m-headwrap) { position: static; } .no-js .mnav { max-height: none; } }

html:not([lang|="ja"]) .wb-n > .nw, html.translated-ltr .wb-n > .nw, html.translated-rtl .wb-n > .nw { display: inline; }

.sr-only { -webkit-user-select: none; user-select: none; }

@media (max-width: 22.4375em) { main p a > .nw, main li a > .nw { white-space: nowrap; } }

ul.chips { list-style: none; padding: 0; margin: 0; }
ol.history { list-style: none; }

#group p a, #refs li > a:only-child { position: relative; }
#group p a::after, #refs li > a:only-child::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 44px; transform: translateY(-50%); }

.mnav { gap: 8px; }

.mnav { background: #fafbfd; }

.srp { font-feature-settings: "palt"; }

.top .m-nav { font-size: clamp(12px, 1.05vw, 13.5px); }
.top .kicker { font-size: clamp(12px, 1.6vh, 13px); }
.top .m-band { font-size: clamp(12px, min(1.7vh, 1.15vw), 13.5px); }

.rule > summary::after { top: 53px; }

.cta-band .tel a .num { font-size: 21px; font-weight: 800; }

ol.flow { list-style: none; padding: 0; margin-bottom: 0; }

address.addr { font-style: normal; }

.mnav { border-bottom: 1px solid #e3e7ef; box-shadow: 0 8px 16px rgba(24, 32, 50, .08); }

.toc-hint { color: #4f596c; }

details.rule > summary:focus-visible { outline-offset: 6px; }

.to-top { border-color: rgba(24, 32, 50, .5); }
.to-top:focus-visible { outline: 2px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 2px #2456c4; }

main > #page-note { margin-top: 64px; }
@media (max-width: 767px) { main > #page-note { margin-top: 48px; } }

main .info-table td a.map-link { display: inline-block; padding-block: 11.5px; line-height: 1.9; margin-bottom: -11.5px; }

@media (max-width: 1199px) { html { scroll-padding-bottom: 80px; } }

@media print {
  h2, h3, summary, .fno, .rno { break-after: avoid; }
  .fstep, tr, figure, .col-grid li, .faq-list details, footer { break-inside: avoid; }
  .promise-panel { background: none !important; color: #182032 !important; border: 1px solid #c9ccd4; }
  .promise-panel * { color: #182032 !important; }
  .promise-panel th, .promise-panel td { border-color: #c9ccd4 !important; }
  .rno, .fno { background: none !important; color: #2456c4 !important; border: 1px solid #2456c4; }
  .col-card .im-grad { border: 1px solid #c9ccd4; }
  .col-card .im-grad span { color: #182032 !important; }
  main a[href^="http"]:not(.col-card)::after { content: "（" attr(href) "）"; position: static; display: inline; font-size: 10px; font-weight: 400; word-break: break-all; color: #4f596c; }
  .foot-links dd a, .microfoot a { min-height: 0 !important; padding-block: 0 !important; line-height: 1.7 !important; }
  .foot-links dd { margin-bottom: 2px; }
  #group p a::after, #refs li > a:only-child::after { content: "（" attr(href) "）"; position: static; height: auto; transform: none; }
  main a:is(.btn-p, .btn-s, .btn-o)[href^="http"]::after { display: block; text-align: inherit; }
}

:where(span[aria-hidden="true"][hidden]) { display: inline; }
:where(.col-card .im-grad[hidden]) { display: flex; }

@supports not (word-break: auto-phrase) { :is(p, td, li, dd) > .wb-n > .nw { display: inline; } }
/* 幅359px以下：WebKit で text-wrap: pretty と改行禁止の組み合わせがページを落とすため、狭い画面だけ通常の折り返しにする */
@media (max-width: 22.4375em) { main p, main li, main td, main dd, main summary { text-wrap: wrap; } }

/* ===== 動きを止める手段（WCAG 2.2.2） ===== */
.mo-btn { font: inherit; font-size: 13px; font-weight: 700; line-height: 1.4; min-height: 44px; padding: 8px 16px; border: 1.5px solid #5b6577; border-radius: 999px; background: #fff; color: #182032; cursor: pointer; box-sizing: border-box; }
@media (hover: hover) { .mo-btn:hover { border-color: var(--acc, #2456c4); color: var(--acc, #2456c4); } }
html:not(.js) .mo-btn, html:not(.js) #ai-scene .mo-btn { display: none; }

/* サービス：仕組みの図 */
#ai-scene .mo-btn { display: block; margin: 0 16px 8px auto; }
#ai-scene.is-paused *, html:not(.js) #ai-scene * { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) { #ai-scene:not(.is-ready) * { animation-play-state: paused; } }
/* JS無効のとき：12秒周期の9.8秒時点の絵で止める（JSの STOP_MS と同じ時点） */
html:not(.js) #ai-scene * { animation-delay: -9.8s !important; }
html:not(.js) #ai-scene .gd1, html:not(.js) #ai-scene .gd1 .okb { animation-delay: -12.3s !important; }
html:not(.js) #ai-scene .gd2, html:not(.js) #ai-scene .gd2 .okb { animation-delay: -15.3s !important; }
html:not(.js) #ai-scene .gd3, html:not(.js) #ai-scene .gd3 .okb { animation-delay: -18.3s !important; }
html:not(.js) #ai-scene .cmd, html:not(.js) #ai-scene .fd, html:not(.js) #ai-scene .sd, html:not(.js) #ai-scene .sd .okb { animation-delay: -20.8s !important; }
html:not(.js) #ai-scene .pulse { display: none; }

/* トップ：実績帯（PC） */
.m-band { position: relative; }
.mq-set + .mq-set { display: none; }
.mq-btn { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); z-index: 2; }
@media (max-width: 767px) { .mq-btn { display: none; } }
.m-band.mq-on { padding-inline: 0; }
.m-band.mq-on .mq-view { max-width: 1920px; margin-inline: auto; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 calc(100% - 240px), transparent calc(100% - 160px)); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 calc(100% - 240px), transparent calc(100% - 160px)); }
.m-band.mq-on .mq-track { display: flex; width: max-content; animation: mq var(--mq-dur, 40s) linear infinite; will-change: transform; }
.m-band.mq-on .mq-set, .m-band.mq-on .mq-set + .mq-set { display: flex; flex: none; flex-wrap: nowrap; justify-content: flex-start; gap: 0 28px; padding-right: 28px; }
@media (hover: hover) { .mq-view:hover .mq-track { animation-play-state: paused; } } /* タッチ端末でタップ後に止まったままにならないように */
@keyframes mq { from { transform: translateX(0); } to { transform: translateX(-33.333%); } }
/* 止めている間（静止表示）は、ボタンの下に項目が潜らないよう右側を空ける */
@media (min-width: 768px) { html.js .m-band:not(.mq-on) { padding-right: 164px; } }

/* 印刷：動きを止め、画面で止めたときと同じ絵にする */
@media print {
  .mo-btn { display: none !important; }
  #ai-scene * { animation-play-state: paused !important; }
  #ai-scene .pulse { display: none; }
  .mq-set + .mq-set { display: none !important; }
  .m-band .mq-track { animation: none !important; transform: none !important; }
  .m-band.mq-on, html.js .m-band:not(.mq-on) { padding-inline: 16px; }
  .m-band.mq-on .mq-view { max-width: none; overflow: visible; -webkit-mask-image: none; mask-image: none; }
  .m-band.mq-on .mq-track { display: block; width: auto; }
  .m-band.mq-on .mq-set { flex-wrap: wrap; justify-content: center; gap: 6px 28px; padding-right: 0; }
}
