@charset "UTF-8";
/* Shared emergency notice and the standalone download page. */
.app-notice { padding: 0 10vw; }
.app-notice-inner { padding: 32px; border: 2px solid #006932; border-radius: 16px; background: #fff; }
.app-label { margin: 0 0 12px; color: #006932; font-weight: 700; font-size: .875rem; letter-spacing: .04em; }
.app-notice h2 { margin: 0 0 16px; font-size: 1.4rem; line-height: 1.6; color: #173b29; }
.app-notice p { text-align: left; }
.app-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 18px 24px; min-height: 56px; background: #006932; color: #fff; border: 2px solid #006932; border-radius: 10px; font-size: 1rem; font-weight: 700; line-height: 1.6; text-align: center; text-decoration: none; }
.app-button:hover { background: #004d25; border-color: #004d25; color: #fff; text-decoration: none; }
.app-button:focus-visible, .app-notice a:focus-visible, .download-page :focus-visible { outline: 3px solid #a85600; outline-offset: 5px; }
.app-notice-note { margin: 16px 0 0; font-size: .9rem; line-height: 1.8; }
.download-page { margin: 0; color: #253c30; background: #f3f5f0; font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 16px; line-height: 1.85; overflow-wrap: anywhere; }
.download-page *, .download-page *::before, .download-page *::after { box-sizing: border-box; }
.download-page a:not(.app-button) { color: #006932; text-underline-offset: 4px; }
.download-page p { margin: 0 0 16px; }
.download-page p:last-child { margin-bottom: 0; }
.download-page h1, .download-page h2, .download-page h3 { line-height: 1.55; color: #173b29; }
.download-page h1 { margin: 0 0 24px; font-size: clamp(1.65rem, 4vw, 2.6rem); letter-spacing: .02em; }
.download-page h2 { margin: 0 0 20px; font-size: 1.4rem; }
.download-page h3 { margin: 24px 0 12px; font-size: 1.1rem; }
.download-header { max-width: 1000px; margin: auto; padding: 24px 32px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.download-header img { display: block; width: 180px; height: auto; }
.back-link { display: inline-block; padding: 12px 0; font-size: .9rem; }
.download-main { max-width: 880px; padding: 28px 32px 48px; margin: auto; }
.download-intro { margin-bottom: 32px; }
.download-card { margin-bottom: 28px; padding: 32px; background: #fff; border: 1px solid #d8e2d8; border-radius: 16px; }
.audience-primary { padding: 20px; background: #edf6ee; border-left: 4px solid #006932; border-radius: 4px; }
.audience-primary p { margin: 8px 0; font-size: 1.1rem; }
.download-page .audience-other { margin-top: 20px; }
.small-note { font-size: .875rem; color: #516156; }
.data-notice { margin-bottom: 28px; padding: 24px 28px; border-left: 4px solid #ad6a0b; background: #fff5e3; border-radius: 8px; }
.data-notice h2 { color: #754606; font-size: 1.1rem; margin-bottom: 12px; }
.download-panel { text-align: center; border: 2px solid #006932; }
.app-meta { display: flex; justify-content: center; gap: 24px; margin: 24px 0; }
.app-meta dt { color: #516156; font-size: .8rem; }
.app-meta dd { margin: 4px 0 0; font-weight: 700; }
.download-button { display: flex; flex-direction: column; gap: 4px; width: 100%; margin-bottom: 16px; font-size: 1.2rem; }
.download-button span { font-size: .875rem; font-weight: 400; }
.install-section { margin: 48px 0; }
.install-steps { list-style: none; margin: 24px 0 0; padding: 0; }
.install-steps > li { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 16px; padding: 28px; border-radius: 16px; background: #fff; border: 1px solid #d8e2d8; }
.step-number { flex: 0 0 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: #006932; color: #fff; font-weight: 700; font-size: 1.25rem; }
.install-steps h3 { margin-top: 2px; }
.step-tip { padding: 12px 16px; border-radius: 6px; background: #edf6ee; font-size: .9rem; }
.faq-section details { border-top: 1px solid #d8e2d8; padding: 8px 0; }
.faq-section summary { cursor: pointer; padding: 12px 0; font-weight: 700; line-height: 1.7; }
.faq-section details p { padding: 8px 0 12px; }
.support-panel { text-align: center; padding: 32px 24px; margin-bottom: 24px; }
.support-link { display: inline-flex; flex-direction: column; padding: 16px 32px; margin-bottom: 12px; border: 1px solid #006932; border-radius: 10px; background: #fff; font-weight: 700; }
.support-link span { font-size: .9rem; font-weight: 400; }
@font-face { font-family: "download-footer-mplus"; font-weight: 400; src: url("../fonts/mplus-2p-regular.woff2") format("woff2"); }
.download-wrapper { overflow-x: hidden; padding-bottom: 10vw; min-height: 100vh; background-color: #edeeea; }
.download-wrapper::after { position: fixed; bottom: 0; left: 0; font-size: 0; width: 100%; height: 10vw; background: url("../images/common/ill_landscape.svg") no-repeat center bottom / contain; content: ""; pointer-events: none; }
.download-footer { padding: 5rem; text-align: center; }
.download-footer .copyright { color: #212529; font-family: "download-footer-mplus", sans-serif; font-size: .875rem; line-height: 1.5; }
.skip-link { position: absolute; top: -100px; left: 16px; padding: 12px 20px; background: #fff; z-index: 10; }
.skip-link:focus { top: 8px; }
.download-page [id] { scroll-margin-top: 24px; }
@media (max-width: 991.98px) { .app-notice { padding: 0; } .download-wrapper::after { background-size: 125%; } }
@media (max-width: 600px) {
  .app-notice-inner { padding: 24px 20px; }
  .app-notice h2 { font-size: 1.2rem; }
  .app-notice .app-button { width: 100%; padding: 16px; }
  .download-header { padding: 20px; gap: 16px; }
  .download-header img { width: 140px; }
  .download-main { padding: 16px 16px 32px; }
  .download-page h2 { font-size: 1.25rem; }
  .download-card { padding: 24px 20px; }
  .audience-primary { padding: 16px; }
  .data-notice { padding: 20px; }
  .data-notice h2 { font-size: 1.1rem; }
  .app-meta { flex-direction: column; gap: 10px; text-align: left; }
  .app-meta > div { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; flex-wrap: wrap; }
  .app-meta dd { margin: 0; }
  .download-button { font-size: 1rem; padding: 16px 12px; }
  .install-steps > li { padding: 22px 20px; gap: 12px; flex-direction: column; }
  .step-number { flex-basis: auto; width: 36px; height: 36px; }
  .support-panel { padding: 24px 8px; }
}
