body.nf-special-page{background:#f7f9f6;color:#243b2b}.nf-special-page *{box-sizing:border-box}.nf-special-wrap{width:calc(100% - 40px);max-width:1180px;margin:32px auto;container-type:inline-size}.nf-special-wrap nav{font-size:14px;margin-bottom:24px;overflow-wrap:anywhere}.nf-special-wrap h1{font-size:clamp(26px,4vw,42px);line-height:1.4;margin:28px 0;overflow-wrap:anywhere}.nf-special-wrap h2{font-size:clamp(22px,3vw,30px);line-height:1.5;margin:16px 0;overflow-wrap:anywhere}.nf-special-wrap a{color:var(--nf-accent-dark,#333)}.nf-special-hero,.nf-special-section-image{display:block;width:100%;height:auto;border-radius:14px}.nf-special-copy{font-size:17px;line-height:1.95;margin:24px 0;overflow-wrap:anywhere}.nf-special-copy img,.nf-special-copy iframe{max-width:100%}.nf-special-copy table{display:block;max-width:100%;overflow-x:auto}.nf-special-section{margin:36px 0;scroll-margin-top:180px}.nf-special-filter{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:18px;border:1px solid #dce4de;border-radius:12px;background:#fff}.nf-special-filter label{flex:1 1 145px;min-width:0;font-size:14px;font-weight:600}.nf-special-filter select,.nf-special-filter input{display:block;width:100%;min-width:0;max-width:100%;min-height:44px;margin-top:6px;border:1px solid #bdcdbd;border-radius:6px;background:#fff;color:#243b2b;padding:8px;font-size:16px}.nf-special-filter button{min-height:44px;padding:10px 16px;background:var(--nf-accent-dark,#333);color:#fff;border:0;border-radius:6px;cursor:pointer}.nf-special-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:28px 0}.nf-special-tile{display:block;background:#fff;border:1px solid #e0e6df;border-radius:14px;overflow:hidden;text-decoration:none!important}.nf-special-tile img{width:100%;aspect-ratio:1.82;object-fit:cover;display:block}.nf-special-tile h2{font-size:22px}.nf-special-tile h2,.nf-special-tile p,.nf-special-tile span{margin:16px;display:block}.nf-special-tile p{font-size:15px}.nf-special-pagination{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.nf-special-pagination a,.nf-special-pagination span{padding:10px 16px;background:#fff;border:1px solid #ccc;border-radius:6px}.nf-special-footer{text-align:center;padding:28px}.nf-special-preview{position:relative;z-index:5;background:#fff4cf;padding:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.nf-special-preview button{padding:10px;cursor:pointer}.nf-special-page .nf-catalog-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important}.nf-special-page .nf-catalog-card{min-width:0}.nf-special-wrap.is-mobile-preview{max-width:390px;background:#fff;padding:12px}.nf-special-wrap.is-mobile-preview .nf-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.nf-special-wrap.is-mobile-preview .nf-special-filter label{flex-basis:100%}.nf-special-wrap.is-mobile-preview h1{font-size:26px}.nf-special-wrap.is-mobile-preview h2{font-size:22px}.nf-special-wrap.is-mobile-preview .nf-catalog-card-title{font-size:15px}@media(max-width:900px){.nf-special-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.nf-special-page .nf-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media(max-width:600px){.nf-special-wrap{width:calc(100% - 24px);margin:20px auto}.nf-special-tiles{grid-template-columns:1fr;gap:18px}.nf-special-page .nf-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.nf-special-filter{padding:12px}.nf-special-filter label{flex-basis:calc(50% - 12px)}.nf-special-filter button{width:100%}.nf-special-copy{font-size:16px}.nf-special-section{margin:28px 0}}
body.nf-special-page{font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif}body.nf-special-page .nf-furusato-header-search button{padding:0 14px;min-width:58px;white-space:nowrap;background:var(--nf-accent,#333);color:#fff;border:0;line-height:1.3}body.nf-special-page .nf-furusato-header-search input{border:1px solid #ccd6cc;padding:10px;font-size:16px}body.nf-special-page .nf-furusato-menu-button{background:#fff;padding:8px;border:1px solid #ccd6cc}body.nf-special-page .nf-special-filter button{background:var(--nf-accent-dark,#333);color:#fff;padding:10px 16px;border:0}body.nf-special-page .nf-discovery-actions button{background:#fff;color:var(--nf-accent-dark,#333);padding:8px;border:1px solid #cad6cc}body.nf-special-page .nf-discovery-actions button[aria-pressed=true]{background:var(--nf-accent-soft,#f5f5f5);border-color:var(--nf-accent,#333)}
body.nf-special-page .nf-furusato-header-search button,body.nf-special-page .nf-special-filter button{background:var(--nf-accent-dark,#333)!important;color:#fff!important;white-space:nowrap!important}body.nf-special-page .nf-furusato-menu-button{background:#fff!important;color:#243b2b!important}body.nf-special-page .nf-special-filter input{border:1px solid #bdcdbd!important;border-radius:6px!important}body.nf-special-page .nf-discovery-actions button{background:#fff!important;color:var(--nf-accent-dark,#333)!important}body.nf-special-page .nf-discovery-actions button[aria-pressed=true]{background:var(--nf-accent-soft,#f5f5f5)!important}

/* Standalone special pages must reserve the sticky header's admin-bar inset.
   The header is already in normal flow: do not add its full height again. */
body.nf-special-page.nf-furusato-shell {--nf-special-header-inset:0px}
body.nf-special-page.nf-furusato-shell.admin-bar {--nf-special-header-inset:32px}
body.nf-special-page.nf-furusato-shell .nf-special-wrap:not(.is-mobile-preview) {
 margin-top:calc(16px + var(--nf-special-header-inset));
 padding-top:0;
 display:flow-root;
}
body.nf-special-page .nf-special-wrap>nav {line-height:1.7;margin:0 0 16px}
body.nf-special-page .nf-special-tile__body {padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}
body.nf-special-page .nf-special-wrap .nf-special-tile__body>h2,
body.nf-special-page .nf-special-wrap .nf-special-tile__body>p,
body.nf-special-page .nf-special-wrap .nf-special-tile__body>span {margin:0;overflow-wrap:anywhere}
body.nf-special-page .nf-special-tile__title {line-height:1.5}
body.nf-special-page .nf-special-tile:focus-visible {outline:3px solid var(--nf-accent-dark,#333);outline-offset:3px}
@media (max-width:640px) {
 body.nf-special-page.nf-furusato-shell.admin-bar {--nf-special-header-inset:46px}
 body.nf-special-page .nf-special-tile__body {padding:16px;gap:12px}
}

/* Keep every pagination control intact. The generic nav rule above permits
   Japanese text and multi-digit page numbers to wrap anywhere. */
body.nf-special-page nav.nf-special-pagination {
 display:flex!important;
 align-items:center;
 justify-content:center;
 flex-wrap:wrap;
 gap:8px;
 width:100%;
 margin:24px 0;
 overflow:visible;
 overflow-wrap:normal;
}
body.nf-special-page nav.nf-special-pagination>.page-numbers,
body.nf-special-page nav.nf-special-pagination ul.page-numbers>li>.page-numbers {
 display:inline-flex!important;
 align-items:center;
 justify-content:center;
 flex:0 0 auto!important;
 width:auto!important;
 max-width:none!important;
 min-width:44px;
 min-height:44px;
 height:auto!important;
 margin:0!important;
 padding:8px 12px!important;
 float:none!important;
 line-height:1.4!important;
 white-space:nowrap!important;
 overflow-wrap:normal!important;
 word-break:keep-all!important;
 writing-mode:horizontal-tb!important;
 box-sizing:border-box;
 text-align:center;
}
body.nf-special-page nav.nf-special-pagination>.page-numbers.current,
body.nf-special-page nav.nf-special-pagination ul.page-numbers>li>.page-numbers.current {
 color:#fff;
 background:var(--nf-accent-dark,#333);
 border-color:var(--nf-accent-dark,#333);
}
body.nf-special-page nav.nf-special-pagination>.page-numbers.dots,
body.nf-special-page nav.nf-special-pagination ul.page-numbers>li>.page-numbers.dots {
 min-width:auto;
 padding-inline:4px!important;
 border-color:transparent;
 background:transparent;
}
body.nf-special-page nav.nf-special-pagination ul.page-numbers {
 display:flex;
 align-items:center;
 justify-content:center;
 flex-wrap:wrap;
 gap:8px;
 width:100%;
 margin:0;
 padding:0;
 list-style:none;
}
body.nf-special-page nav.nf-special-pagination ul.page-numbers>li {
 flex:0 0 auto;
 margin:0;
 padding:0;
 list-style:none;
}
@media (max-width:600px) {
 body.nf-special-page nav.nf-special-pagination,
 body.nf-special-page nav.nf-special-pagination ul.page-numbers {
  justify-content:flex-start;
  flex-wrap:nowrap;
 }
 body.nf-special-page nav.nf-special-pagination {
  overflow-x:auto;
  overflow-y:hidden;
  padding:0 0 6px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
 }
}
