/* かんたんCMS — 公開サイトの下層ページ(見出し帯・パンくず・お知らせ・記事・固定ページのブロック・お問い合わせ・検索・404・フッター)。3 テーマ共通+テーマごとの差 */
.site{--wrap:1100px;--gutter:max(20px,calc((100% - var(--wrap)) / 2));--strong:var(--heading)}
.site:not(.is-home) .site-main{max-width:none;padding:0 0 88px}
.site .page-body,.site .news-page,.site .post,.site .search-page,.site .not-found{max-width:var(--wrap);margin:0 auto;padding:56px 20px 0}
.site .post{max-width:820px}
.site .page-body{max-width:960px}

/* ---------- 見出し帯 ---------- */
.page-band{position:relative;overflow:hidden;background:var(--hero-soft,var(--card));color:var(--strong);border-bottom:1px solid var(--line)}
.page-band .band-inner{position:relative;z-index:1;max-width:var(--wrap);margin:0 auto;padding:44px 20px 48px}
.page-band.has-photo{color:#fff;border-bottom:0}
.page-band .band-media{position:absolute;inset:0}
.page-band .band-photo{width:100%;height:100%;object-fit:cover}
.page-band .band-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,12,20,.82),rgba(8,12,20,.45) 60%,rgba(8,12,20,.25))}
.page-band .band-art{position:absolute;inset:0;opacity:.55;background:linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/40px 40px,linear-gradient(var(--line) 1px,transparent 1px) 0 0/40px 40px;-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000);mask-image:linear-gradient(90deg,transparent 30%,#000)}
.site .band-title{margin:8px 0 0;font-size:clamp(28px,4vw,44px);line-height:1.3;color:inherit;border:0;padding:0;letter-spacing:.02em}
.band-sub{margin:10px 0 0;opacity:.9;max-width:42em}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 0;font-size:.85em;opacity:.92}
.crumbs li+li::before{content:"/";margin:0 10px;opacity:.6}
.crumbs a{color:inherit}
.page-band.has-photo .crumbs a{color:#fff}

/* ---------- お知らせの一覧(カード) ---------- */
.cat-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.cat-tabs a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:999px;color:var(--fg);text-decoration:none;background:var(--bg);font-size:.93em}
.cat-tabs a[aria-current]{background:var(--accent);border-color:var(--accent);color:#fff}
.cat-tabs .n{font-size:.8em;opacity:.75}
.cat-desc{margin:-12px 0 28px;color:var(--muted)}
.nc-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.nc-link{display:flex;flex-direction:column;height:100%;text-decoration:none;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:var(--card-radius);overflow:hidden;transition:border-color .15s}
.nc-link:hover{border-color:var(--accent)}
.nc-link:hover .nc-title{text-decoration:underline}
.nc-media img,.nc-ph{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.nc-ph{display:grid;place-items:center;background:linear-gradient(135deg,var(--card),var(--line));position:relative;overflow:hidden}
.nc-ph::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(127,127,127,.08) 14px 15px)}
.nc-ph span{position:relative;font-weight:700;letter-spacing:.12em;color:var(--accent-d);font-size:.95em;padding:6px 14px;border:1px solid var(--accent);border-radius:999px;background:var(--bg)}
.nc-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:6px}
.nc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0;font-size:.85em;color:var(--muted)}
.nc-meta time{font-variant-numeric:tabular-nums}
.site .news-cat{display:inline-block;font-size:.78em;background:var(--accent);color:#fff;border-radius:3px;padding:1px 8px;text-decoration:none;line-height:1.6}
.site h3.nc-title{margin:0;font-size:1.08em;line-height:1.55;color:var(--strong)}
.nc-ex{margin:0;color:var(--muted);font-size:.9em;line-height:1.7}
.pager{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:40px 0 0}
.pager a,.pager .pg{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:var(--btn-radius,6px);text-decoration:none}
.pager .pg.cur{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ---------- 記事 ---------- */
.post-head{margin-bottom:24px}
.site h2.post-title{font-size:clamp(24px,3.2vw,34px);border:0;padding:0;margin:10px 0 0;line-height:1.45}
.post-featured{margin:0 0 32px}.post-featured img{width:100%;height:auto;border-radius:var(--card-radius)}
.site .entry-content{font-size:1.04em;line-height:2}
.site .entry-content>*:first-child{margin-top:0}
.site .entry-content h2{font-size:1.45em;margin:2em 0 .8em;padding:0 0 .35em;border-bottom:var(--h2-border)}
.site .entry-content h3{font-size:1.18em;margin:1.6em 0 .6em}
.site .entry-content p{margin:0 0 1.3em}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:48px 0 0;padding-top:24px;border-top:1px solid var(--line)}
.post-nav a{display:flex;flex-direction:column;gap:4px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--card-radius);text-decoration:none;color:var(--fg);min-height:44px}
.post-nav a span{font-size:.8em;color:var(--muted)}
.post-nav .pn-next{text-align:right}
.related{margin:56px 0 0}.related h2{font-size:1.3em;border:0;padding:0}
.back-link{margin:40px 0 0}

/* ---------- 固定ページのブロック ---------- */
.b-table-wrap{overflow-x:auto;margin:0 0 2em}
.b-table{width:100%;border-collapse:collapse;font-size:.97em}
.b-table th,.b-table td{padding:16px 18px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.8}
.b-table th{width:28%;min-width:7em;color:var(--strong);font-weight:700;background:var(--card)}
.b-cards{list-style:none;margin:0 0 2.2em;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.b-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--card-radius);overflow:hidden}
.b-card-media img{width:100%;aspect-ratio:3/2;object-fit:cover}
.b-card-body{padding:18px 20px 20px}
.site .b-card h3{margin:0 0 6px;font-size:1.06em}
.b-card p{margin:0;font-size:.93em;color:var(--muted);line-height:1.8}
.b-card:not(.has-img){border-top:3px solid var(--accent)}
.b-steps{list-style:none;margin:0 0 2.2em;padding:0;counter-reset:s}
.b-steps li{display:grid;grid-template-columns:48px 1fr;gap:16px;padding:0 0 24px;position:relative}
.b-steps li:not(:last-child)::before{content:"";position:absolute;left:23px;top:52px;bottom:4px;width:2px;background:var(--line)}
.b-step-no{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800}
.site .b-steps h3{margin:10px 0 4px;font-size:1.06em}
.b-steps p{margin:0;color:var(--muted);font-size:.95em;line-height:1.8}
.b-mt{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;margin:0 0 3em}
.b-mt.no-img{grid-template-columns:1fr}
.b-mt.side-right .b-mt-media{order:2}
.b-mt-media{margin:0}.b-mt-media img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--card-radius)}
.site .b-mt-body h2{margin:0 0 .6em;font-size:1.4em;border:0;padding:0}
.b-mt-body p{margin:0}
.b-map{margin:0 0 2em;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:center}
.b-map-art svg{display:block;width:100%;height:auto;border-radius:var(--card-radius)}
.b-map figcaption{display:flex;flex-direction:column;gap:6px;line-height:1.8}
.map-art .map-bg{fill:var(--card)}.map-art .map-water{fill:var(--accent);opacity:.14}.map-art .map-blocks rect{fill:var(--line)}.map-art .map-park{fill:var(--accent);opacity:.22}
.map-art .map-roads path{stroke:var(--bg);stroke-width:12;fill:none}.map-art .map-rail path{stroke:var(--muted);stroke-width:5}.map-art .map-rail-dash{stroke:var(--bg)!important;stroke-dasharray:14 14;stroke-width:3!important}
.map-art .map-pin path{fill:var(--accent)}.map-art .map-pin-dot{fill:#fff}

/* ---------- お問い合わせ ---------- */
.cf{display:grid;gap:32px;margin:0 0 2em}
.cf.has-side{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}
.cf-side{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:24px 26px;font-size:.95em;line-height:1.9}
.site .cf-side h2{margin:0 0 .6em;font-size:1.15em;border:0;padding:0}
.cf-side p{margin:0}
.site .contact-form{max-width:none;background:var(--bg);border:1px solid var(--line);border-radius:var(--card-radius);padding:28px clamp(18px,4vw,36px)}
.site .contact-form label{margin:18px 0 6px;font-weight:700}
.site .contact-form label:first-of-type{margin-top:0}
.site .contact-form input,.site .contact-form select,.site .contact-form textarea{min-height:48px;margin-top:0;font-size:1em}
.site .contact-form .btn-main{margin-top:24px;min-width:200px;cursor:pointer;font:inherit;font-weight:700}

/* ---------- 検索・404 ---------- */
.search-page .search-results li{display:block}
.search-page .search-results a{font-weight:700;font-size:1.05em}
.not-found{text-align:center}
.nf-links{display:flex;justify-content:center;gap:24px}

/* ---------- フッター ---------- */
.site .site-footer{text-align:left;padding:0;font-size:.92em;line-height:1.9}
.foot-grid{max-width:var(--wrap);margin:0 auto;padding:56px 20px 32px;display:grid;grid-template-columns:minmax(0,1.4fr) repeat(auto-fit,minmax(160px,1fr));gap:32px}
.foot-about p{margin:0}.foot-name{font-weight:700;font-size:1.12em;margin-bottom:6px!important}
.foot-h{margin:0 0 8px;font-weight:700;letter-spacing:.06em}
.foot-col ul{list-style:none;margin:0;padding:0}
.foot-col a,.foot-small a{color:inherit;text-decoration:none;display:inline-block;min-height:32px;line-height:32px}
.foot-col a:hover,.foot-small a:hover{text-decoration:underline}
.foot-small{max-width:var(--wrap);margin:0 auto;padding:16px 20px 28px;border-top:1px solid rgba(127,127,127,.25);display:flex;flex-wrap:wrap;gap:6px 24px;align-items:center;font-size:.86em}
.foot-small p{margin:0}
.foot-demo{flex-basis:100%;opacity:.85}
.rss-link{display:inline-flex!important;align-items:center;gap:6px}
.rss-icon{width:14px;height:14px;border-radius:3px;background:radial-gradient(circle at 25% 75%,#fff 2px,transparent 2.5px),radial-gradient(circle at 0 100%,transparent 6px,#fff 6.5px,#fff 8px,transparent 8.5px),radial-gradient(circle at 0 100%,transparent 10px,#fff 10.5px,#fff 12px,transparent 12.5px),#f26522}

/* ---------- テーマごとの差 ---------- */
.site.theme-corporate{--hero-soft:linear-gradient(135deg,#f5f8fc,#e6edf7);--strong:#0f1f3d}
.site.theme-corporate .page-band:not(.has-photo){border-left:0;background-image:linear-gradient(rgba(15,31,61,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(15,31,61,.05) 1px,transparent 1px),linear-gradient(135deg,#f5f8fc,#e6edf7);background-size:32px 32px,32px 32px,auto}
.site.theme-corporate .band-title::after{content:"";display:block;width:48px;height:3px;background:var(--accent);margin-top:14px}
.site.theme-corporate .nc-link,.site.theme-corporate .b-card,.site.theme-corporate .contact-form,.site.theme-corporate .cf-side{border-radius:4px}
.site.theme-natural{--hero-soft:#f3ecdf;--strong:#3b2f25}
.site.theme-natural .band-title,.site.theme-natural h2.post-title,.site.theme-natural .entry-content h2,.site.theme-natural .b-mt-body h2,.site.theme-natural .related h2{font-family:"Hiragino Mincho ProN","Yu Mincho","YuMincho","BIZ UDPMincho","Noto Serif JP",serif;font-weight:600;letter-spacing:.06em}
.site.theme-natural .page-band .band-inner{padding:64px 20px 64px}
.site.theme-natural .page-band.has-photo .band-media{left:auto;width:55%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%);mask-image:linear-gradient(90deg,transparent,#000 40%)}
.site.theme-natural .page-band.has-photo{color:var(--strong);background:#f3ecdf}
.site.theme-natural .page-band.has-photo .band-media::after{display:none}
.site.theme-natural .page-band.has-photo .crumbs a{color:var(--strong)}
.site.theme-natural .nc-link,.site.theme-natural .b-card,.site.theme-natural .contact-form,.site.theme-natural .cf-side{border-radius:20px;border-color:#e3d7c2}
.site.theme-natural .b-table th{background:transparent;border-bottom-style:dashed}
.site.theme-natural .b-step-no{background:transparent;color:var(--accent-d);border:2px solid var(--accent)}
.site.theme-modern{--hero-soft:radial-gradient(700px 300px at 85% 20%,rgba(88,166,255,.2),transparent 60%),#0d1117;--strong:#fff}
.site.theme-modern .page-band{border-bottom-color:#232a33}
.site.theme-modern .band-art{opacity:.25}
.site.theme-modern .nc-link,.site.theme-modern .b-card,.site.theme-modern .contact-form,.site.theme-modern .cf-side,.site.theme-modern .post-nav a{background:#161b22;border-color:#2a313c}
.site.theme-modern .nc-ph{background:linear-gradient(135deg,#161b22,#1f2733)}.site.theme-modern .nc-ph span{background:#0d1117}
.site.theme-modern .b-table th{background:#161b22}
.site.theme-modern .b-step-no{background:transparent;border:1.5px solid var(--accent);color:var(--accent-d);border-radius:12px}
.site.theme-modern .site-footer{border-top:1px solid #232a33}

/* ---------- 小さい画面 ---------- */
@media (max-width:860px){
  .site .page-body,.site .news-page,.site .post,.site .search-page,.site .not-found{padding-top:36px}
  .page-band .band-inner,.site.theme-natural .page-band .band-inner{padding:28px 20px 32px}
  .site.theme-natural .page-band.has-photo .band-media{width:100%;opacity:.35}
  .b-mt,.b-map,.cf.has-side{grid-template-columns:1fr;gap:20px}
  .b-mt.side-right .b-mt-media{order:0}
  .b-table th{width:auto;display:block;border-bottom:0;padding-bottom:4px}.b-table td{display:block;padding-top:4px}.b-table tr{display:block;border-bottom:1px solid var(--line)}
  .post-nav{grid-template-columns:1fr}.post-nav .pn-next{text-align:left}
  .foot-grid{grid-template-columns:1fr 1fr;padding-top:40px}.foot-about{grid-column:1/-1}
}
@media (max-width:420px){.foot-grid{grid-template-columns:1fr}.nc-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.nc-link{transition:none}}
.nc-media img,.b-card-media img,.b-mt-media img{display:block;height:auto}
.b-map figcaption{align-self:center}
/* デモの案内の帯(架空のサイトのデザインとは別のもの) */
.demo-guide{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;align-items:center;padding:6px 12px;background:#1d2327;font:13px/1.4 -apple-system,"Segoe UI","Yu Gothic UI",sans-serif}
.demo-guide form{margin:0}
.demo-guide button,.demo-guide a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.demo-guide button{background:#72aee6;color:#1d2327;border:0}
.demo-guide a{color:#f0f0f1;border:1px solid #8c8f94}
.demo-guide button:focus-visible,.demo-guide a:focus-visible{outline:2px solid #fff;outline-offset:2px}
.b-map-art{position:relative}
.map-sample{position:absolute;left:10px;top:10px;z-index:1;background:rgba(29,35,39,.85);color:#fff;font-size:12px;padding:3px 10px;border-radius:999px}
@media (max-width:600px){
  .demo-guide{flex-wrap:nowrap;gap:6px;padding:5px 8px;font-size:11.5px}
  .demo-guide form,.demo-guide a{flex:1 1 50%}
  .demo-guide button,.demo-guide a{width:100%;justify-content:center;min-height:36px;padding:0 8px;text-align:center;line-height:1.25}
}
/* ロゴのマーク(同梱の SVG・メディアの画像) */
.site .site-logo-img.is-builtin{width:40px;height:40px;border-radius:10px}
.site .foot-logo{width:28px;height:28px;vertical-align:-8px;margin-right:8px;border-radius:7px}
@media (max-width:860px){.site .site-logo-img.is-builtin{width:36px;height:36px}}
