:root{--game-footer-height:44px}body{padding-bottom:calc(var(--game-footer-height) + env(safe-area-inset-bottom))}.site-header{position:relative;top:auto}.progress-reset{font:inherit;font-size:11px;white-space:nowrap;border:1px solid #d6dedc;border-radius:5px;background:white;color:#526760;padding:8px;cursor:pointer}.game-footer{position:fixed;inset:auto 0 0;z-index:55;display:grid;grid-template-columns:90px 1fr 90px;align-items:center;height:calc(var(--game-footer-height) + env(safe-area-inset-bottom));padding:0 16px env(safe-area-inset-bottom);background:#fff;border-top:1px solid #dce3e0;color:#53635e}.game-footer button{display:flex;align-items:center;justify-content:center;gap:6px;height:var(--game-footer-height);border:0;background:none;color:#315e55;font:inherit;font-size:12px;cursor:pointer}.game-footer small{display:flex;justify-content:center;gap:12px;font-size:11px;line-height:1.4;text-align:center}.game-footer .fiction{border-left:1px solid #dce3e0;padding-left:12px}.page-archive{width:min(520px,calc(100% - 32px));padding:24px;border:1px solid #dce3e0;border-radius:12px;max-height:80dvh;color:#30483f}.page-archive::backdrop{background:#152d2540}.archive-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.archive-heading h2{font-size:18px;margin:0}.archive-heading button{border:0;background:none;font-size:26px;min-width:44px;min-height:44px}.page-archive ol{list-style:none;padding:0}.page-archive li>*{display:block;padding:14px 8px;border-bottom:1px solid #e5ebe7}.page-archive a{color:#1d6756}.page-archive [aria-current]{font-weight:bold}.page-archive li>span{color:#7d8984}#rime-launcher{display:none!important}#rime-panel{bottom:calc(var(--game-footer-height) + env(safe-area-inset-bottom) + 8px);height:min(700px,calc(100dvh - var(--game-footer-height) - env(safe-area-inset-bottom) - 24px))}@media(max-width:600px){:root{--game-footer-height:48px}.game-footer{grid-template-columns:64px 1fr 64px;padding-inline:8px}.game-footer small{display:block;font-size:10px}.game-footer small span{display:block}.game-footer .fiction{border:0;padding:0}.game-footer button{font-size:11px;gap:3px}.game-footer button span{display:none}.header-inner{flex-wrap:wrap}.progress-reset{margin-left:auto}.page-archive{padding:16px}#rime-panel{height:min(720px,calc(85dvh - var(--game-footer-height) - env(safe-area-inset-bottom)))}}
#rime-root #rime-panel{left:24px;right:auto;bottom:calc(var(--game-footer-height) + env(safe-area-inset-bottom) + 8px);height:min(700px,calc(100dvh - var(--game-footer-height) - env(safe-area-inset-bottom) - 24px));transform-origin:bottom left}.game-footer [hidden]{display:none!important}.game-footer>[data-rime-open]{grid-column:1;border-radius:6px}.game-footer>[data-rime-open].is-active{background:#edf7f6;color:#155d60}.game-footer>small{grid-column:2}.game-footer>#page-archive-open{grid-column:3}@media(max-width:600px){#rime-root #rime-panel{left:8px;right:auto;bottom:calc(var(--game-footer-height) + env(safe-area-inset-bottom) + 8px);height:min(720px,calc(85dvh - var(--game-footer-height) - env(safe-area-inset-bottom)))}}
.site-display-fault{transition:none!important;animation:none!important}.site-display-fault-shift{position:relative;left:2px;top:-1px}.site-display-fault-spacing{letter-spacing:.16em!important}.site-display-fault-text{font-kerning:none}.site-display-fault-image-invert{filter:invert(.92) hue-rotate(145deg) saturate(1.45)!important}.site-display-fault-image-host{position:relative!important;overflow:hidden!important}.site-display-fault-image-host:after{content:"";position:absolute;z-index:4;left:-7px;right:-7px;top:45%;height:11%;background-image:var(--site-fault-image);background-size:cover;background-position:center 50%;filter:hue-rotate(35deg) contrast(1.25);transform:translateX(10px);pointer-events:none}.site-display-fault-image-host:before{content:"";position:absolute;z-index:5;left:0;right:0;top:44.5%;height:2px;background:#effff6aa;pointer-events:none}.site-recovery-notice{display:grid;grid-template-columns:88px minmax(0,1fr);gap:22px;margin-top:28px;margin-bottom:8px;padding:22px 25px;border:1px solid #cbdad5;border-left:5px solid #16715f;background:#f1f7f5;color:#23483f}.site-recovery-notice>span{align-self:start;padding:4px 8px;border-radius:3px;background:#16715f;color:#fff;font-size:.72rem;font-weight:700;text-align:center}.site-recovery-notice h2{margin:0 0 7px;font-size:1rem}.site-recovery-notice p{margin:0;color:#4f6660;font-size:.82rem;line-height:1.8}@media(max-width:600px){.site-recovery-notice{grid-template-columns:1fr;gap:11px;margin-top:18px;padding:18px}.site-recovery-notice>span{justify-self:start}}
/* City-site photographs stay secondary to public information. Story documents,
   archive thumbnails and image dialogs intentionally keep their original scale. */
body:not(.rebuild-fund-page) .hero {
  height: 340px !important;
}

body:not(.rebuild-fund-page) .service-hero {
  height: min(310px, 34vw) !important;
  min-height: 230px !important;
}

body:not(.rebuild-fund-page) .service-photo-strip figure {
  height: 180px !important;
}

body:not(.rebuild-fund-page) .safety-hero {
  max-height: 390px !important;
}

body:not(.rebuild-fund-page) .safety-hero > img {
  height: 390px !important;
  aspect-ratio: auto !important;
}

.progress-reset-dialog {
  width: min(460px, calc(100% - 32px));
  padding: 0;
  border: 1px solid #bfd3cd;
  border-radius: 14px;
  color: #0b4650;
  background: #fff;
  box-shadow: 0 24px 70px rgba(8, 54, 58, .22);
}

.progress-reset-dialog::backdrop {
  background: rgba(3, 30, 34, .48);
}

.progress-reset-dialog form {
  padding: 30px;
}

.progress-reset-dialog form > span {
  display: block;
  margin-bottom: 8px;
  color: #00806e;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
}

.progress-reset-dialog h2 {
  margin: 0 0 14px;
  font-size: clamp(22px, 4vw, 28px);
}

.progress-reset-dialog p {
  margin: 0;
  color: #4e6e70;
  line-height: 1.8;
}

.progress-reset-dialog form > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 26px;
}

.progress-reset-dialog button {
  min-height: 48px;
  border: 1px solid #9dbab4;
  border-radius: 7px;
  background: #fff;
  color: #0b4650;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.progress-reset-dialog .progress-reset-confirm {
  border-color: #007d68;
  background: #007d68;
  color: #fff;
}

body:not(.rebuild-fund-page) .prepare-inner {
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr) !important;
}

body:not(.rebuild-fund-page) .prepare-inner figure {
  max-width: 470px;
}

body:not(.rebuild-fund-page) .spot-card img {
  height: 175px !important;
}

body:not(.rebuild-fund-page) .heritage-card,
body:not(.rebuild-fund-page) .heritage-card:nth-of-type(even) {
  grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr) !important;
}

body:not(.rebuild-fund-page) .heritage-card img {
  min-height: 250px !important;
}

body:not(.rebuild-fund-page) .story-card summary {
  grid-template-columns: minmax(190px, .48fr) minmax(0, 1.52fr) !important;
  min-height: 175px !important;
}

body:not(.rebuild-fund-page) .story-card summary img {
  min-height: 175px !important;
}

body:not(.rebuild-fund-page) .mayor-message {
  grid-template-columns: 265px minmax(0, 1fr) !important;
  gap: 52px !important;
}

@media (min-width: 1600px) {
  body:not(.rebuild-fund-page) .hero {
    height: 375px !important;
  }
}

@media (max-width: 780px) {
  body:not(.rebuild-fund-page) .heritage-card,
  body:not(.rebuild-fund-page) .heritage-card:nth-of-type(even),
  body:not(.rebuild-fund-page) .story-card summary {
    grid-template-columns: 1fr !important;
  }

  body:not(.rebuild-fund-page) .heritage-card img {
    height: 210px !important;
    min-height: 0 !important;
  }
}

@media (max-width: 760px) {
  body:not(.rebuild-fund-page) .hero {
    height: 300px !important;
  }

  body:not(.rebuild-fund-page) .service-hero {
    height: 245px !important;
    min-height: 0 !important;
  }

  body:not(.rebuild-fund-page) .service-photo-strip figure,
  body:not(.rebuild-fund-page) .spot-card img,
  body:not(.rebuild-fund-page) .story-card summary img {
    height: 180px !important;
    min-height: 0 !important;
  }

  body:not(.rebuild-fund-page) .safety-hero,
  body:not(.rebuild-fund-page) .safety-hero > img {
    height: 300px !important;
    max-height: 300px !important;
  }

  body:not(.rebuild-fund-page) .prepare-inner {
    grid-template-columns: 1fr !important;
  }

  body:not(.rebuild-fund-page) .prepare-inner figure {
    width: min(430px, 100%);
    margin-inline: auto;
  }

  body:not(.rebuild-fund-page) .mayor-message {
    grid-template-columns: 1fr !important;
    gap: 25px !important;
  }

  body:not(.rebuild-fund-page) .mayor-message figure {
    width: min(230px, 76%) !important;
  }
}

/* 市HP共通ヘッダー検索 */
.site-header .header-inner { max-width: 1500px; }
.header-search { display:flex; align-items:center; flex:1; max-width:410px; min-width:240px; height:44px; border:1px solid #b9ccc5; border-radius:6px; background:#fff; overflow:hidden; }
.header-search:focus-within { border-color:var(--green); box-shadow:0 0 0 2px #006b5720; }
.header-search > svg { width:19px; height:19px; margin-left:13px; color:var(--green); }
.header-search input { width:100%; min-width:0; height:100%; padding:8px 10px; border:0; background:transparent; color:var(--ink); font-size:.8rem; outline:0; }
.header-search input:focus-visible,
.search-input-wrap input:focus-visible { outline:0; }
.search-input-wrap:focus-within { border-color:var(--green); box-shadow:0 0 0 2px #006b5720; }
.header-search button { align-self:stretch; padding:0 17px; border:0; background:var(--green); color:#fff; font-size:.78rem; font-weight:700; white-space:nowrap; }
.header-search button:hover { background:#004c3e; }
.header-search-dialog .result-list a { display:block; width:100%; padding:15px 0; border-bottom:1px solid var(--line); color:var(--green); }
.header-search-dialog .result-list small { display:block; color:var(--muted); }
@media (max-width:1100px) {
  .header-search { max-width:360px; }
  .site-header .utility { margin-left:auto; }
}
@media (max-width:760px) {
  .site-header .header-inner { flex-wrap:wrap; }
  .header-search { order:5; flex-basis:100%; max-width:none; height:42px; }
  .header-search input { font-size:.82rem; }
  .header-search button { padding-inline:16px; }
  .site-header .utility { margin-left:auto; }
}
