:root{
  --ink:#1f2933;--muted:#667085;--green:#0f6b57;--green-dark:#0b4f41;--green-pale:#edf7f4;
  --blue:#315b78;--blue-pale:#eef5f9;--line:#dce3e7;--surface:#f7f9fa;--white:#fff;--max:1180px;
  --shadow:0 10px 28px rgba(15,43,35,.08);--radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic Medium","Yu Gothic","Meiryo",sans-serif;line-height:1.78;font-size:16px}
a{color:var(--green-dark);text-decoration-thickness:1px;text-underline-offset:3px}
img{max-width:100%;display:block}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.header-inner{max-width:var(--max);margin:auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{font-weight:750;color:#163c33;text-decoration:none;line-height:1.3}
.nav{display:flex;gap:20px;align-items:center;font-size:.94rem;flex-wrap:wrap;justify-content:flex-end}
.nav a{text-decoration:none;color:#344054}.nav a:hover{color:var(--green)}
.container{max-width:var(--max);margin:auto;padding-left:24px;padding-right:24px}
.hero{background:linear-gradient(135deg,#eff8f5 0%,#fff 60%,#eef5f9 100%);border-bottom:1px solid var(--line)}
.hero-inner{max-width:var(--max);margin:auto;padding:76px 24px 66px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:48px;align-items:center}
.eyebrow{display:inline-block;font-size:.84rem;font-weight:750;letter-spacing:.08em;color:var(--green);background:#fff;border:1px solid #cfe4dd;border-radius:999px;padding:5px 11px;margin-bottom:18px}
.hero h1{font-size:clamp(2.25rem,4.8vw,4.3rem);line-height:1.17;letter-spacing:-.035em;margin:0 0 22px;color:#153c33}
.hero p.lead{font-size:1.15rem;line-height:1.8;color:#475467;max-width:760px;margin:0 0 26px}
.hero-meta{font-size:.95rem;color:#475467;margin-top:18px}
.hero-art{min-height:330px;border-radius:30px;background:linear-gradient(145deg,#0f6b57 0%,#164c5a 100%);position:relative;overflow:hidden;box-shadow:var(--shadow)}
.hero-art:before,.hero-art:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.32)}
.hero-art:before{width:250px;height:250px;right:-55px;top:-45px}.hero-art:after{width:190px;height:190px;left:-35px;bottom:-65px}
.hero-art .ring{position:absolute;width:150px;height:150px;border:22px solid rgba(255,255,255,.9);border-left-color:rgba(255,255,255,.15);border-radius:50%;left:50%;top:48%;transform:translate(-50%,-50%) rotate(-22deg)}
.hero-art .dot{position:absolute;width:14px;height:14px;background:#fff;border-radius:50%;box-shadow:0 0 0 12px rgba(255,255,255,.12)}
.hero-art .dot.d1{left:26%;top:28%}.hero-art .dot.d2{right:24%;bottom:30%}.hero-art .label{position:absolute;left:26px;bottom:24px;color:#fff;font-size:.92rem;letter-spacing:.04em}
.btn-row{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border-radius:10px;text-decoration:none;font-weight:700;border:1px solid var(--green)}
.btn.primary{background:var(--green);color:#fff}.btn.secondary{background:#fff;color:var(--green)}
.section{padding:72px 0;border-bottom:1px solid #eef1f3}.section.compact{padding:52px 0}
.section-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:28px}.section-head>div{max-width:none;width:100%}
h2{font-size:clamp(1.75rem,2.8vw,2.5rem);line-height:1.35;color:#173d34;margin:0 0 10px;letter-spacing:-.02em}
h3{font-size:1.25rem;line-height:1.45;color:#24463e;margin:0 0 12px}
h4{font-size:1.02rem;margin:22px 0 8px;color:#344054}
p{margin:9px 0 14px}.muted{color:var(--muted)}
.notice{background:#f6faf9;border:1px solid #d9e9e4;border-left:4px solid var(--green);padding:16px 18px;border-radius:10px}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.summary-item{border:1px solid var(--line);border-radius:14px;padding:18px;background:#fff}.summary-item .k{font-size:.78rem;color:var(--muted);font-weight:700;margin-bottom:5px}.summary-item .v{font-weight:750;color:#243c35}
.news-list{border-top:1px solid var(--line)}.news-item{display:grid;grid-template-columns:170px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.news-date{color:var(--muted);font-size:.94rem}
.card-grid{display:grid;gap:20px}.card-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:26px;box-shadow:0 3px 12px rgba(25,49,41,.035)}
.card.theme{display:flex;flex-direction:column;min-height:100%;padding:0;overflow:hidden}
.theme-visual{height:155px;position:relative;overflow:hidden}
.theme-visual.one{background:linear-gradient(135deg,#dbeee7,#f6fbf9)}
.theme-visual.two{background:linear-gradient(135deg,#dceaf2,#f7fafc)}
.theme-visual.one:before{content:"";position:absolute;width:170px;height:170px;border:24px solid rgba(15,107,87,.78);border-right-color:rgba(15,107,87,.18);border-radius:50%;left:42px;top:28px;transform:rotate(18deg)}
.theme-visual.one:after{content:"";position:absolute;width:85px;height:85px;border-radius:16px;background:rgba(255,255,255,.82);right:38px;top:35px;box-shadow:0 16px 30px rgba(15,107,87,.16)}
.theme-visual.two:before{content:"";position:absolute;left:34px;right:34px;top:38px;height:78px;border:2px solid rgba(49,91,120,.6);border-radius:14px;background:linear-gradient(90deg,rgba(49,91,120,.12) 1px,transparent 1px),linear-gradient(rgba(49,91,120,.12) 1px,transparent 1px);background-size:24px 24px}
.theme-visual.two:after{content:"";position:absolute;width:18px;height:18px;background:#315b78;border-radius:50%;left:74px;top:67px;box-shadow:74px 18px 0 #315b78,155px -4px 0 #315b78,217px 28px 0 #315b78}
.card-body{padding:25px;display:flex;flex-direction:column;flex:1}.card-body p{color:#475467}.card .tag{display:inline-block;color:var(--green);font-weight:800;font-size:.82rem;margin-bottom:10px}.card.theme.two-theme .tag{color:var(--blue)}
.card-link{margin-top:auto;padding-top:12px;font-weight:750;text-decoration:none}.card-link:after{content:" →"}
.icon-badge{width:44px;height:44px;border-radius:12px;background:var(--green-pale);display:grid;place-items:center;margin-bottom:16px;font-weight:800;color:var(--green)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fff}
table{width:100%;border-collapse:collapse;font-size:.94rem}th,td{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}th{background:#f3f7f5;color:#25473f;white-space:nowrap}th:last-child,td:last-child{border-right:0}tr:last-child td{border-bottom:0}
ul{padding-left:1.3em;margin:10px 0 18px}li{margin:5px 0}
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.step{position:relative;border:1px solid var(--line);border-radius:14px;padding:18px;background:#fff}.step .date{font-size:.8rem;color:var(--muted);font-weight:700}.step strong{display:block;margin:5px 0;color:#23483e}
.chips{display:flex;gap:9px;flex-wrap:wrap}.chip{background:#f4f7f6;border:1px solid #dce6e2;border-radius:999px;padding:5px 10px;font-size:.88rem;color:#3f5f56}
.detail-hero{background:linear-gradient(180deg,#f5faf8,#fff);border-bottom:1px solid var(--line)}.detail-hero .container{padding-top:58px;padding-bottom:50px}.breadcrumb{font-size:.9rem;color:var(--muted);margin-bottom:20px}.detail-hero h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.28;color:#153c33;margin:0 0 18px;letter-spacing:-.025em}.detail-hero p{font-size:1.08rem;color:#475467;max-width:850px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:22px}.split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px;align-items:start}.sidebox{background:var(--surface);border:1px solid var(--line);padding:22px;border-radius:14px}
.footer{background:#163c33;color:#fff;padding:42px 0}.footer a{color:#fff}.footer-inner{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end}.footer small{color:rgba(255,255,255,.72)}
@media(max-width:960px){.summary-grid{grid-template-columns:repeat(2,1fr)}.timeline{grid-template-columns:repeat(2,1fr)}.hero-inner{grid-template-columns:1fr}.hero-art{min-height:240px}.card-grid.three{grid-template-columns:1fr}.split{grid-template-columns:1fr}}
@media(max-width:720px){body{font-size:15px}.header-inner{padding:12px 16px}.nav{display:none}.container{padding-left:16px;padding-right:16px}.hero-inner{padding:52px 16px 46px}.section{padding:52px 0}.summary-grid,.card-grid.two,.two-col,.timeline{grid-template-columns:1fr}.news-item{grid-template-columns:1fr;gap:3px}.section-head{display:block}.footer-inner{grid-template-columns:1fr}.theme-visual{height:130px}.card{padding:20px}}

/* ---- image treatment (2026-09) ---- */
.hero-art{
  min-height:330px;
  background-image:linear-gradient(135deg,rgba(8,70,55,.18),rgba(7,43,37,.58)),url("assets/background-web.jpg");
  background-size:cover;
  background-position:center;
}
.hero-art:before{inset:0;width:auto;height:auto;right:0;top:0;border:0;border-radius:0;background:linear-gradient(90deg,rgba(7,56,47,.04),rgba(7,56,47,.34));}
.hero-art:after{display:none}
.hero-art .ring,.hero-art .dot{display:none}
.hero-art .label{left:28px;bottom:24px;font-weight:750;letter-spacing:.12em;text-shadow:0 1px 12px rgba(0,0,0,.28)}

.theme-visual{height:220px;background-size:cover!important;background-repeat:no-repeat!important}
.theme-visual.one{background-image:linear-gradient(180deg,rgba(10,40,31,.02),rgba(10,40,31,.22)),url("assets/theme1-web.jpg");background-position:center 55%}
.theme-visual.two{background-image:linear-gradient(180deg,rgba(5,35,55,.02),rgba(5,35,55,.22)),url("assets/theme2-web.jpg");background-position:center 43%}
.theme-visual.one:before,.theme-visual.one:after,.theme-visual.two:before,.theme-visual.two:after{display:none}

.collab-band{
  background-image:linear-gradient(rgba(247,251,249,.94),rgba(247,251,249,.94)),url("assets/background-web.jpg");
  background-size:cover;
  background-position:center;
}
.collab-band .card{box-shadow:0 10px 26px rgba(21,60,51,.07)}

.detail-hero{background:linear-gradient(180deg,#f5faf8,#fff)}
.detail-hero.detail-hero-blue{background:linear-gradient(180deg,#f2f7fb,#fff)}
.detail-hero .container{padding-top:46px;padding-bottom:46px}
.detail-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:46px;align-items:center}
.detail-copy{min-width:0}
.detail-photo{margin:0;height:390px;border-radius:24px;overflow:hidden;box-shadow:0 18px 42px rgba(22,48,40,.15);background:#e9efed}
.detail-photo img{width:100%;height:100%;object-fit:cover}
.theme1-photo img{object-position:center 58%}
.theme2-photo img{object-position:center 44%}

@media(max-width:960px){
  .detail-hero-grid{grid-template-columns:1fr;gap:28px}
  .detail-photo{height:320px}
  .detail-hero .container{padding-top:38px;padding-bottom:38px}
}
@media(max-width:720px){
  .hero-art{min-height:210px}
  .theme-visual{height:185px}
  .detail-photo{height:250px;border-radius:18px}
  .theme1-photo img{object-position:center 58%}
  .theme2-photo img{object-position:center 44%}
}

/* ---- 共通部品（2026-09-25 登偉：ヘッダー・ナビ・フッターの統一、スキップリンク、フォーカス表示） ---- */
.skip-link{position:absolute;left:12px;top:-80px;z-index:100;background:#0b4f41;color:#fff;padding:10px 16px;border-radius:8px;font-weight:700;text-decoration:none}
.skip-link:focus{top:12px}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand-logo{flex-shrink:0;display:block}
.brand-logo img{height:32px;width:auto}
.brand-name{font-weight:750;color:#163c33;text-decoration:none;line-height:1.3;font-size:.95rem;border-left:1px solid var(--line);padding-left:14px}
.brand-name span{display:block;white-space:nowrap}
/* 事業名は語の切れ目（<wbr>）でのみ、収まらないときだけ折り返す。文字を拡大したときに横へはみ出さないため（2026-10-08 登偉、確認⑨） */
.brand-name span{white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
.nav-toggle{display:none}
/* ページ内リンクで移動したとき、固定ヘッダーが見出しに被らないよう、ヘッダーの高さ＋16pxだけ上に余白を取る。
   --header-h の既定値は幅ごとの実測値（JavaScript有効時は site.js が実際の高さで上書きする） */
html{--header-h:69px;scroll-padding-top:calc(var(--header-h) + 16px)}
@media(max-width:1080px){html{--header-h:75px}}
@media(max-width:720px){html{--header-h:70px}}
/* 移動先がセクション・フッターのときは、上の余白（padding-top）ぶん戻し、見出しの上端をヘッダーの高さ＋16pxに揃える */
.section[id]{scroll-margin-top:-72px}.section.compact[id]{scroll-margin-top:-52px}.footer[id]{scroll-margin-top:-42px}
@media(max-width:720px){.section[id]{scroll-margin-top:-52px}}
:focus-visible{outline:3px solid #0b4f41;outline-offset:3px}
.hero :focus-visible,.footer :focus-visible{outline-color:#fff}

.footer h2{color:#fff;font-size:1.4rem;margin:0 0 10px}
.footer-inner{align-items:start}
.footer-contact p{margin:0}
.footer-org{text-align:right}
.footer-org p{margin:4px 0}
.footer-logo{display:inline-block;background:#fff;border-radius:10px;padding:10px 14px}
.footer-logo img{height:28px;width:auto}
.footer-bottom{margin-top:28px;padding-top:18px;border-top:1px solid rgba(255,255,255,.24);display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap}
.footer-nav{display:flex;gap:8px 22px;flex-wrap:wrap}
.footer-nav a{color:#fff;text-decoration:underline}
.copyright{margin:0;color:rgba(255,255,255,.8)}

@media(max-width:1080px){
  .header-inner{flex-wrap:wrap;gap:10px}
  .js .nav-toggle{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid var(--green);border-radius:10px;background:#fff;color:var(--green-dark);font:inherit;font-weight:700;cursor:pointer}
  .nav{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;font-size:1rem}
  .js .nav{display:none}
  .js .nav.is-open{display:flex}
  .nav a{padding:12px 4px;border-top:1px solid var(--line)}
}
@media(max-width:720px){
  .brand{gap:10px}
  .brand-logo img{height:22px}
  .brand-name{font-size:.8rem;padding-left:10px}
  .footer-org{text-align:left}
}

/* ---- 段階3（2026-09-25 登偉）：見出しの折り返し・日程表示・ヒーローのコントラスト・表 ---- */
/* 見出しは語句の切れ目（<wbr>）でのみ折り返す。はみ出す場合の保険として overflow-wrap を指定 */
h1.phrase,h2.phrase{word-break:keep-all;overflow-wrap:anywhere;text-wrap:balance}
/* 公募概要の日程：横並びの箱をやめ、時系列の縦の一覧にする */
.schedule{margin:0;max-width:820px;border-left:3px solid var(--green);padding-left:0}
.schedule-item{display:grid;grid-template-columns:10em 1fr;gap:4px 20px;padding:14px 0 14px 22px;border-bottom:1px solid var(--line);position:relative}
.schedule-item:before{content:"";position:absolute;left:-8px;top:22px;width:13px;height:13px;border-radius:50%;background:#fff;border:3px solid var(--green)}
.schedule-item dt{font-weight:700;color:var(--green-dark)}
.schedule-item dd{margin:0;font-weight:700;color:#243c35}
@media(max-width:720px){.schedule-item{grid-template-columns:1fr;padding-left:18px}}
/* 画面には表示せず、読み上げソフトには伝える（表の題名など） */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* 助成金の表：「区分」列が細かく折り返さないよう最小幅を確保 */
.table-costs td:first-child{min-width:9em}
/* ---- 2026-09-30 登偉：自己レビューの修正 ---- */
/* PCでは「区分」列を折り返さない（スマホは画面幅が足りないため折り返しを許す） */
@media(min-width:721px){.table-costs td:first-child{white-space:nowrap}}
/* 番地・電話番号・組織名などを途中で改行しない。ただし文字を拡大して1行に収まらないときは、はみ出さないよう中で折り返す（2026-10-08 登偉） */
.nowrap{display:inline-block;max-width:100%;overflow-wrap:anywhere}
/* 見出しの中は、ふだんは従来どおり改行しない（語句の切れ目は <wbr> で制御）。
   文字を拡大して収まらないときだけ中で折り返す。左右の余白に14pxまではみ出してよい（320px幅のトップ「（参考）…」の見出しが従来どおり1行に収まる幅）（2026-10-08 登偉、確認⑨） */
h1.phrase .nowrap,h2.phrase .nowrap{display:inline-block;white-space:normal;width:max-content;max-width:calc(100% + 14px)}

/* ---- 段階4（2026-09-25 登偉）：アクセシビリティ方針・サイトマップ ---- */
.prose>*{max-width:860px}
.prose h2{font-size:1.4rem;margin:32px 0 8px}
.sitemap{padding-left:1.2em}
.sitemap>li{margin:10px 0;font-weight:700}
.sitemap ul{font-weight:400;margin:6px 0 10px}

/* 実機確認（2026/10/02 確認③）を受けた見やすさの調整 */
/* 並んだボタンは幅をそろえる（広いほうに合わせる）。カード内と狭い画面では縦に並べる */
.btn-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px;width:fit-content;max-width:100%}
.btn-row .btn{text-align:center}
.card .btn-row{grid-auto-flow:row}
@media(max-width:359px){.btn-row{grid-auto-flow:row}}
/* 「詳細を見る」はリンクと分かるよう下線を付ける（矢印には付けない） */
.card-link{text-decoration:underline}
.card-link:hover{color:var(--green);text-decoration-thickness:2px}
.card-link:after{content:"→";display:inline-block;margin-left:.3em}
/* ヘッダーのメニュー・ロゴ・事業名は、マウスを乗せたときに変化を付ける */
.nav a:hover{text-decoration:underline;text-underline-offset:4px}
.brand-logo:hover img{opacity:.7}
.brand-name:hover{color:var(--green)}
/* フッター：問合せ先と公社の表示の間を空ける。1080px以下は縦に並べ、区切り線を入れる */
.footer-inner{column-gap:48px}
@media(max-width:1080px){.footer-inner{grid-template-columns:1fr}.footer-org{text-align:left;border-top:1px solid rgba(255,255,255,.24);padding-top:20px;margin-top:4px}}
/* 320px幅でヘッダーの事業名が横にはみ出すため、359px以下はロゴと区切りの間隔を詰める */
@media(max-width:359px){.brand{gap:8px}.brand-logo img{height:20px}.brand-name{padding-left:8px}}
/* 320px幅で事業名が1px足りず折り返すため、間隔を2px詰める（2026-10-08 登偉） */
@media(max-width:359px){.brand{gap:6px}}
