@charset "utf-8";
/* 共通のページ表示設定 */
html[data-size="small"] { font-size:.8em }
html[data-size="normal"] { font-size:1em }
html[data-size="large"] { font-size:1.3em }
html[data-size="large"] .header-inner { height:auto;min-height:170px;flex-wrap:wrap;gap:18px;padding-block:20px }
.page_control { display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-shrink:0 }
.display-preferences { display:flex;align-items:center;flex-wrap:wrap;gap:16px;font-size:.88889em }
.language-link { display:inline-flex;align-items:center;gap:5px;white-space:nowrap }
.language-link svg { width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.5 }
.expanded-menu .language-link::after { content:none;display:none }
.UD { display:flex;align-items:flex-start;gap:4px }
.UD details { position:relative }
.UD summary { display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;border:1px solid currentColor;border-radius:4px;list-style:none;cursor:pointer;background:#fff;color:#333;font-weight:500 }
.UD summary::-webkit-details-marker { display:none }
.control-small-a { font-size:.7em }
.contrast-symbol { display:block;width:22px;height:22px;border:1px solid currentColor;border-radius:50%;background:linear-gradient(90deg,currentColor 50%,transparent 50%) }
.control-options { position:absolute;right:0;top:calc(100% + 6px);z-index:5;display:flex;gap:4px;padding:6px;background:#fff;color:#333;border:1px solid #75caa0;border-radius:5px;box-shadow:0 2px 6px #0002 }
.control-options button { min-width:44px;min-height:44px;padding:4px;border:1px solid #777;border-radius:3px;background:#fff;color:#333;font:inherit;white-space:nowrap;cursor:pointer }
.control-options button[aria-pressed="true"] { outline:2px solid #168046;outline-offset:-3px;font-weight:700 }
.display-preferences :focus-visible { outline:2px solid #168046;outline-offset:3px }
html[data-contrast="high"] { --display-bg:#000;--display-fg:#ffff00;--display-link:#80ffff }
html[data-contrast="low"] { --display-bg:#c0c0c0;--display-fg:#000;--display-link:#000080 }
html[data-contrast="high"] body,html[data-contrast="low"] body { background:var(--display-bg) !important;color:var(--display-fg) !important }
html[data-contrast="high"] body :not(img):not(svg):not(svg *),html[data-contrast="low"] body :not(img):not(svg):not(svg *) { background-color:var(--display-bg) !important;background-image:none !important;color:var(--display-fg) !important;border-color:var(--display-fg) !important;box-shadow:none !important }
html[data-contrast="high"] body a,html[data-contrast="low"] body a { color:var(--display-link) !important;text-decoration:underline }
html[data-contrast="high"] .site-header::before,html[data-contrast="low"] .site-header::before { display:none }
html[data-contrast="high"] .control-options button[aria-pressed="true"],html[data-contrast="low"] .control-options button[aria-pressed="true"] { outline-color:var(--display-fg) }
html[data-contrast="high"] .menu-lines,html[data-contrast="high"] .menu-lines::before,html[data-contrast="high"] .menu-lines::after,html[data-contrast="low"] .menu-lines,html[data-contrast="low"] .menu-lines::before,html[data-contrast="low"] .menu-lines::after { background:var(--display-fg) !important }
@media(max-width:1100px) {
  .menu-dialog-heading .display-preferences { margin:0 0 24px;padding-right:40px;gap:12px }
  .UD .control-options { position:static;margin-top:6px;flex-wrap:wrap;max-width:160px }
}
/* 共通レイアウト。背景は全幅、内容のみXDの1160px幅に制限する。 */
:root { --ink:#282828;--green:#319e75;--mint:#d1f1dd;--cream:#fff8df;--orange:#ff7c27;--line:#88ccca }
* { box-sizing:border-box }
html { scroll-behavior:smooth }
body { margin:0;color:var(--ink);background:#fff;font-family:"Noto Sans JP",sans-serif;font-weight:400;font-size:1.125em;line-height:1.6 }
img { max-width:100%;height:auto;vertical-align:middle }
a { color:inherit;text-decoration:none }
a:hover { text-decoration:underline }
button,input { font:inherit }
button,a,input { -webkit-tap-highlight-color:transparent }
button { cursor:pointer }
button { color:inherit }
button:disabled { cursor:default }
button:hover { filter:brightness(.96) }
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid #15785c;outline-offset:4px }
[hidden] { display:none!important }
h1,h2,h3,p,ul,dl { margin-top:0 }
.wrap { width:calc(100% - 64px);max-width:1160px;margin-inline:auto }
.icon { width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0 }
.visually-hidden,#jump a { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap }
#jump a:focus { position:fixed;top:8px;left:8px;z-index:100;width:auto;height:auto;padding:12px;background:#fff;clip-path:none }
.pill { display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:6px 22px;border:1px solid #75caa0;border-radius:40px;background:#fff;font-size:1em;line-height:1.4 }
.pill>.icon:last-child { color:var(--green);width:19px;height:19px }
/* ヘッダーの背景・装飾はビューポート全体を覆う。 */
.site-header { position:relative;background-color:var(--mint);background-image:url('../img/cloud-left.png'),url('../img/cloud-middle.png'),url('../img/cloud-right.png'),repeating-linear-gradient(45deg,transparent 0 5px,#ffffff91 5px 8px);background-size:116px 66px,175px 62px,210px 92px,145px 100px;background-position:calc(50% - 610px) 52px,calc(50% + 277px) 67px,calc(50% + 529px) 26px,left top;background-repeat:no-repeat }
.site-header:before { content:"";position:absolute;right:0;top:0;width:24%;height:90px;border-radius:0 0 50% 70%;background:#ffffff80;pointer-events:none }
.header-inner { height:170px;display:flex;justify-content:space-between;align-items:center;position:relative }
.brand { display:flex;align-items:center;gap:15px;line-height:1.25 }
.brand img { width:132px }
.brand-text { font-size:2.22222em;font-weight:400;white-space:nowrap;letter-spacing:2px;color:#080c09 }
.brand-text small { display:block;font-family:"Noto Sans JP",sans-serif;font-size:0.77778em;letter-spacing:2.2px;text-align:center }
.brand:hover,.footer-brand:hover { text-decoration:none }
.menu-toggle { width:90px;height:90px;background:#fff;border:3px solid var(--line);border-radius:3px;display:grid;place-content:center;gap:8px;font-size:0.77778em;letter-spacing:2px;line-height:1.2 }
.menu-lines { display:block;width:43px;height:30px;border-top:3px solid;border-bottom:3px solid;position:relative }
.menu-lines:after { content:"";height:3px;background:currentColor;position:absolute;left:0;right:0;top:11px }
.primary-nav { height:99px;display:flex;align-items:center }
.primary-nav ul { display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:0;list-style:none;margin:0 }
.primary-nav a { display:flex;min-height:68px;align-items:center;justify-content:center;padding:12px 27px;font-size:1.22222em;white-space:nowrap;border:3px solid transparent;border-radius:60px;line-height:1.3 }
.primary-nav .nav-highlight,.primary-nav a:hover { background:#fff;border-color:var(--line);text-decoration:none }
.expanded-menu { padding-block:16px 30px }
.expanded-menu ul { list-style:none;margin:0;padding:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;background:#fff;border-radius:16px }
.expanded-menu a { display:block;padding:8px;border-bottom:1px solid #d1f1dd }
/* 共通フッター。画像は最小1400px、以降は画面幅に合わせて拡大。 */
.site-footer { position:relative;width:100%;min-height:559px;background-color:#cdece0;background-image:linear-gradient(to bottom,#cfefe0 0%,#cfefe000 50%),url('../img/footer.png');background-repeat:no-repeat;background-position:center top,center bottom;background-size:100% 100%,max(1400px,100%) auto }
.footer-inner { display:flex;justify-content:space-between;gap:24px;padding-top:39px }
.footer-brand { display:flex;align-items:center;gap:9px;line-height:1.3;margin-bottom:18px }
.footer-brand .brand-text { font-size:2em }
.footer-brand>img:first-child { width:66px;height:91px;object-fit:contain }
.footer-brand>img:last-child { width:46px;height:61px;align-self:flex-end }
.footer-brand small { font-size:0.77778em;letter-spacing:1.5px }
.site-footer address { font-style:normal;font-size:0.94444em;line-height:1.5;margin-left:21px }
.footer-links { align-self:flex-start;padding-top:90px;text-align:right }
.footer-links .pill { min-width:200px;border:0 }
.copyright { font-size:0.77778em;letter-spacing:.6px;margin-top:24px;white-space:nowrap }
.back-top { position:absolute;right:14px;bottom:72px;width:160px;height:178px }
.back-top>span { display:block;background:#fff;border:2px solid var(--line);border-radius:50%;width:134px;height:109px;margin-left:auto;text-align:center;line-height:1.2;padding-top:6px;font-size:1em }
.back-top>span:first-line { font-size:1.61111em;color:var(--green) }
.back-top>img { position:absolute;width:87px;left:0;bottom:0 }
.back-top>img:last-child { width:52px;left:66px;bottom:0 }
/* 下層テンプレート。本文の部品スタイルは既存detail.cssを利用する。 */
.page .locus { background:var(--cream) }
.page p.locus { font-size:0.88889em;padding:17px 0;margin:0 }
.page .inside { padding:48px 0 70px }
.page article { width:100%;min-width:0 }
.page article>h1 { font-size:1.88889em;border-bottom:3px solid #a9dfc6;padding-bottom:20px;font-weight:500 }
.page .txtbox { overflow-wrap:anywhere;line-height:1.8 }
.page .txtbox h2,.page .section_wrap>h2 { font-size:1.55556em;background:#e1f4e9;border-left:6px solid var(--green);padding:15px 20px;margin:40px 0 24px }
.page .txtbox h3 { font-size:1.38889em;border-bottom:2px solid #a6dcca;padding:10px 0 }
.page .txtbox h4 { font-size:1.22222em;border-left:4px solid #ffcc7f;padding-left:14px }
.page .txtbox h5,.page .txtbox h6 { font-size:1.11111em }
.page .txtbox a,.page .link_list a,.page .file_list a { color:#186e54;text-decoration:underline }
.page .txtbox table { border-collapse:collapse;max-width:100%;margin:20px 0 }
.page .txtbox th,.page .txtbox td { border:1px solid #b6cec4;padding:12px }
.page .txtbox th { background:#e9f5ee }
.page .txtbox table p { margin:0 }
.page .table-scroll { max-width:100%;overflow-x:auto }
.page .txtbox .widetable { min-width:760px }
.page .acrobat_wrap { display:flex;align-items:center;gap:24px;margin-top:32px }
.page .acrobat_icon { flex:0 0 160px }
.page .acrobat_comment { font-size:0.88889em }
.update-date{text-align:right;}
@media(min-width:1600px) {
  .site-footer { min-height:40vw }
  .site-header { background-position:3% 52px,67% 67px,93% 26px,left top }
}
@media(max-width:1100px) {
  .brand-text { font-size:1.77778em }
  .primary-nav a { font-size:1em;padding:12px 16px }
  .footer-inner { flex-wrap:wrap }
  .footer-links { padding-top:0;text-align:left }
  .copyright { white-space:normal }
  .site-footer { min-height:600px }
  .footer-brand .brand-text { font-size:1.77778em }
}
@media(max-width:767px) {
  body { font-size:1em }
  .wrap { width:calc(100% - 36px) }
  .site-header { background-size:90px auto,120px auto,130px auto,65px 65px;background-position:left top,60% 20px,right top,left top }
  .header-inner { height:112px;gap:12px }
  .brand { gap:7px }
  .brand img { width:68px }
  .brand-text { font-size:1.25em;letter-spacing:.3px }
  .brand-text small { font-size:0.5em;letter-spacing:.7px }
  .menu-toggle { width:55px;height:58px;flex-shrink:0;border-width:2px;font-size:0.55556em;gap:5px }
  .menu-lines { width:28px;height:21px;border-width:2px }
  .menu-lines:after { height:2px;top:8px }
  .primary-nav { display:none }
  .expanded-menu ul { grid-template-columns:1fr 1fr;padding:16px;gap:6px }
  .expanded-menu a { font-size:0.83333em }
  .pill { font-size:0.88889em;padding:7px 17px }
  .site-footer { min-height:540px;background-size:100% 100%,auto 430px }
  .footer-inner { padding-top:26px;gap:20px }
  .footer-brand { gap:4px }
  .footer-brand .brand-text { font-size:1.27778em;letter-spacing:.4px }
  .footer-brand small { font-size:0.5em;letter-spacing:.5px }
  .footer-brand>img:first-child { width:43px;height:64px }
  .footer-brand>img:last-child { width:29px;height:42px }
  .site-footer address { margin-left:0;font-size:0.77778em }
  .footer-links .pill { min-width:170px; margin-bottom: 1em;}
  .copyright { font-size:0.61111em;max-width:330px;margin-top:14px }
  .back-top { transform:scale(.7);transform-origin:bottom right;right:8px;bottom:28px }
  .page .inside { padding-top:25px }
  .page article>h1 { font-size:1.5em }
  .page .txtbox h2 { font-size:1.33333em }
  .page .acrobat_wrap { display:block }
  .page .txtbox .box-image li { max-width:100% }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  *,*:before,*:after { transition:none!important }
}
@media(max-width:767px) {
  .page .acrobat_comment { width:auto;margin:16px 0 0 }
}

.brand-text { font-weight:500 }
.brand-text small { font-size:.35em;font-weight:400 }
.footer-brand small { font-size:.38889em;font-weight:400 }
.primary-nav a { font-weight:500 }
.pill { font-weight:500 }
.menu-is-open { overflow:hidden }
.expanded-menu { position:fixed;inset:0 0 auto;width:100%;max-width:none;max-height:100dvh;margin:0;border:0;padding:0;color:var(--ink);background:#d1f1dd;box-shadow:0 4px 16px #0002;overflow-y:auto;font-size:1em }
.expanded-menu::backdrop { background:#0003 }
.expanded-menu[open] { animation:menu-reveal .25s ease-out }
.menu-dialog-inner { position:relative;width:calc(100% - 64px);max-width:1160px;margin:auto;padding:120px 0 64px;display:grid;grid-template-columns:1fr 1fr;gap:70px }
.menu-dialog-heading>span { font-size:2.22222em;font-weight:500;letter-spacing:.04em }
.menu-dialog-heading>span small { display:block;font-size:.35em;letter-spacing:.15em;font-weight:400 }
.menu-close { position:fixed;right:max(24px,calc((100vw - 1160px)/2));top:16px;width:80px;height:80px;background:#fff;border:2px solid var(--line);border-radius:6px;font-size:2.44444em;line-height:1 }
.menu-close small { display:block;font-size:.31818em;line-height:1.5 }
.expanded-menu ul { display:block;padding:14px 24px;margin:0;border-radius:12px;background:#fff;list-style:none }
.expanded-menu li+li { border-top:1px dashed #758d80 }
.expanded-menu a { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 12px;border:0;font-size:1.11111em;font-weight:500 }
.expanded-menu a:after { content:'›';border:1px solid var(--green);color:var(--green);border-radius:50%;width:29px;height:29px;text-align:center;line-height:1.2;flex-shrink:0 }
.menu-search { margin-top:155px;font-size:1.11111em }
.menu-search label { display:block;margin-bottom:16px }
.menu-search>div { display:flex;gap:12px }
.menu-search input { min-width:0;width:100%;background:#fff;border:1px solid #777;border-radius:4px;padding:12px;font-size:1em }
.menu-search button { font-size:1em;white-space:nowrap;border:0;border-radius:4px;background:#333;color:#fff;padding:10px 22px }
.menu-search [role=status] { font-size:.8em;margin-top:12px }
@keyframes menu-reveal {
  from { transform:translateY(-30px);opacity:0 }
  to { transform:translateY(0);opacity:1 }
}
@media(max-width:1100px) {
  .brand-text small { font-size:.4375em }
  .footer-brand small { font-size:.4375em }
}
@media(max-width:767px) {
  .brand-text small { font-size:.4em }
  .footer-brand small { font-size:.3913em }
  .menu-dialog-inner { width:calc(100% - 36px);padding:90px 0 28px;display:block }
  .menu-dialog-heading>span { font-size:1.5em }
  .menu-dialog-heading>span small { font-size:.45em }
  .menu-close { top:14px;right:18px;width:56px;height:60px;font-size:2em }
  .menu-search { margin:24px 0;font-size:1em }
  .expanded-menu a { font-size:1em;padding:14px 0 }
  .expanded-menu ul { padding:8px 20px }
}
@media(prefers-reduced-motion:reduce) {
  .expanded-menu[open] { animation:none }
}

ul li { list-style: none; }
.page .txtbox table { display: block; width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.page .txtbox .widetable { min-width: 0; }
.page .txtbox .fade_image { opacity: 1; }
.brand-heading { margin: 0; min-width: 0; font-size: 1em; font-weight: inherit; }
.txtbox ul > li::before {top: 0.3em;background: var(--green);bottom: 0;margin: auto;left: 12px;}
.site-header { background-image: url('../img/cloud-left.png'), url('../img/cloud-middle.png'), url('../img/cloud-right.png'), url('../img/header-stripes.svg'); background-size: 116px 66px, 175px 62px, 210px 92px, 159px 230px; background-position: calc(50% - 610px) 52px, calc(50% + 277px) 67px, calc(50% + 529px) 26px, left top; }
.site-header::before { width: 348px; max-width: 100%; height: 100px; border-radius: 0; background: url('../img/header-shape.svg') right top / 348px 100px no-repeat; }
.expanded-menu { max-height: 100vh; max-height: 100dvh; overscroll-behavior: contain; }
.menu-search input { -webkit-appearance: none; appearance: none; }
.page .txtbox.sitemap h2{padding: 6px 20px;margin: 1em 0 0.5em 0;font-size: 1.1em;}
.page .txtbox.sitemap h2 a{text-decoration:none;background: #e1f4e9;display:block;}
.page .txtbox.sitemap h2 a:hover{opacity:0.8;text-decoration:underline;}
.page .txtbox.sitemap hr{border:2px solid var(--green);margin:2em 0 2em;}
.archive-list{padding-left:0;}
.archive-list li{margin-bottom:1em;border-bottom:1px dotted #999;padding-bottom:0.5em;}
.archive-list li span{margin-right:1em;}
.important .archive-list li span{display:inline-block;}
.update-panel.important li a{padding: 6px 12px;}

@media (min-width: 1600px) {
  .site-header { background-position: 3% 52px, 67% 67px, 93% 26px, left top; }
}
@media (max-width: 767px) {
  .site-header { background-size: 90px auto, 120px auto, 130px auto, 95px auto; background-position: left top, 60% 20px, right top, left top; }
  .site-header::before { width: 209px; height: 60px; background-size: 209px 60px; }
  .header-inner { min-width: 0; }
  .brand-heading { flex: 1 1 auto; }
  .brand { min-width: 0; }
  .menu-toggle { flex: 0 0 55px; }
  .menu-search input { font-size: 1em; }
  .update-panel.important {padding:16px;}
  .important .archive-list li span,
  .archive-list li span{display:block;margin-bottom: 0.5em;}
}