:root{
  --bg:#FFFFFF;
  --bg-soft:#F1F4F8;
  --navy:#122A4E;
  --navy-soft:#1F3E6B;
  --red:#AD2B31;
  --line:#D6DCE3;
  --text:#1C2530;
  --text-soft:#4B5563;
  --maxw:1040px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Noto Sans JP', sans-serif;
  line-height:1.8;
  font-size:15px;
}
h1,h2,h3,.heading{
  font-family:'BIZ UDPGothic', 'Noto Sans JP', sans-serif;
  color:var(--navy);
  margin:0;
  font-weight:700;
}
a{color:var(--navy-soft);}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}

/* ---------- 最上部の運営者バー(公的機関ではないことを明示) ---------- */
.top-bar{
  background:var(--navy);
  color:#D9E2EF;
  font-size:12px;
}
.top-bar .wrap{
  display:flex; justify-content:space-between; align-items:center;
  padding:6px 24px; flex-wrap:wrap; gap:6px;
}
.top-bar a{color:#D9E2EF; text-decoration:underline;}

/* ---------- ヘッダー ---------- */
header.site{
  border-bottom:3px solid var(--navy);
  background:#fff;
}
.site-inner{
  max-width:var(--maxw); margin:0 auto; padding:20px 24px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px;
}
.brand{display:flex; align-items:center; gap:14px;}
.badge{
  width:46px; height:46px; border-radius:50%;
  background:var(--navy); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:'BIZ UDPGothic', sans-serif; font-weight:700; font-size:15px;
  flex-shrink:0;
}
.logo{font-size:21px; font-weight:700; color:var(--navy); letter-spacing:.02em;}
.logo small{display:block; font-family:'Noto Sans JP',sans-serif; font-size:11.5px; color:var(--text-soft); font-weight:400; margin-top:2px;}

nav.site{display:flex; flex-wrap:wrap; gap:0; border-top:1px solid var(--line);}
nav.site .wrap{display:flex; flex-wrap:wrap;}
nav.site a{
  font-size:13.5px; color:var(--text); text-decoration:none; padding:12px 18px;
  border-right:1px solid var(--line);
}
nav.site a:hover, nav.site a.active{background:var(--bg-soft); color:var(--navy);}

/* ---------- パンくず ---------- */
.breadcrumb{font-size:12px; color:var(--text-soft); padding:14px 0;}
.breadcrumb a{color:var(--navy-soft); text-decoration:none;}
.breadcrumb a:hover{text-decoration:underline;}

/* ---------- ページ見出し ---------- */
.page-head{padding:28px 0 22px; border-bottom:1px solid var(--line);}
.page-head h1{font-size:24px;}
.page-head p{font-size:13.5px; color:var(--text-soft); margin-top:10px; max-width:640px;}

/* ---------- お知らせ一覧(テーブル形式) ---------- */
.notice-table{width:100%; border-collapse:collapse; margin-top:18px;}
.notice-table td, .notice-table th{
  border-bottom:1px solid var(--line); padding:14px 10px; vertical-align:top; font-size:13.5px;
  text-align:left;
}
.notice-table .col-date{width:100px; color:var(--text-soft); white-space:nowrap; font-variant-numeric:tabular-nums;}
.notice-table .col-tag{width:150px;}
.notice-table tr:hover td{background:var(--bg-soft);}
.notice-table .body-text{margin-top:6px; font-size:13px; color:var(--text-soft);}
.notice-table .meta-row{margin-top:8px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; font-size:12px;}
.notice-table a.src-link{color:var(--navy-soft); text-decoration:underline;}
.tag-badge{
  display:inline-block; font-size:11px; color:var(--navy-soft); border:1px solid var(--navy-soft);
  padding:2px 8px; margin-right:4px; margin-bottom:4px;
}

.share-links{display:flex; gap:8px; margin-left:auto;}
.share-links a{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; font-size:11px; font-weight:700;
  border:1px solid var(--line); color:var(--text-soft); text-decoration:none;
}
.share-links a:hover{background:var(--navy); color:#fff; border-color:var(--navy);}

/* ---------- タグ絞り込み ---------- */
.tag-filter{display:flex; gap:8px; flex-wrap:wrap; margin-top:18px;}
.tag-pill{
  font-size:12px; padding:5px 12px; border:1px solid var(--line); color:var(--text-soft);
  background:#fff; cursor:pointer;
}
.tag-pill.active{background:var(--navy); color:#fff; border-color:var(--navy);}

/* ---------- カレンダー(期限)行 ---------- */
.deadline-row{display:grid; grid-template-columns:150px 1fr; gap:20px; padding:18px 10px; border-bottom:1px solid var(--line);}
@media (max-width:600px){ .deadline-row{grid-template-columns:1fr;} }
.deadline-row .date-block{font-size:13px; font-weight:700; color:var(--red);}
.deadline-row .days-left{display:block; font-size:11px; color:var(--text-soft); font-weight:400; margin-top:2px;}
.deadline-row h3{font-size:15.5px;}
.deadline-row p{font-size:13px; margin-top:6px; color:var(--text-soft);}
.deadline-row a{font-size:12px; text-decoration:underline;}

/* ---------- 助成金カード ---------- */
.subsidy-row{padding:20px 10px; border-bottom:1px solid var(--line);}
.subsidy-row h3{font-size:15.5px;}
.subsidy-row .target{font-size:12px; color:var(--navy-soft); margin-top:6px;}
.subsidy-row p{font-size:13px; margin-top:8px; color:var(--text-soft);}
.subsidy-row a{font-size:12px; text-decoration:underline;}

/* ---------- トップページ専用ブロック ---------- */
.notice-banner{
  background:var(--bg-soft); border:1px solid var(--line); padding:14px 18px;
  font-size:13px; margin-top:16px; color:var(--text-soft);
}
.hero{padding:40px 0 8px;}
.hero h1{font-size:clamp(22px,3.4vw,30px); line-height:1.6; max-width:680px;}
.hero p.lede{margin-top:14px; max-width:600px; font-size:14px; color:var(--text-soft);}

.trust-strip{
  display:flex; gap:0; margin-top:22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.trust-strip .item{
  flex:1; padding:16px 18px; border-right:1px solid var(--line); font-size:12.5px; color:var(--text-soft);
}
.trust-strip .item:last-child{border-right:none;}
.trust-strip .item strong{display:block; font-size:20px; color:var(--navy); font-family:'BIZ UDPGothic',sans-serif;}
.trust-strip a{font-size:12px;}

.home-grid{display:grid; grid-template-columns:2fr 1fr; gap:32px; padding:32px 0; border-top:1px solid var(--line); margin-top:24px;}
@media (max-width:800px){ .home-grid{grid-template-columns:1fr;} }
.home-panel h2{font-size:17px; padding-bottom:10px; border-bottom:2px solid var(--navy); margin-bottom:6px;}
.side-panel{background:var(--bg-soft); border:1px solid var(--line); padding:18px;}
.side-panel h2{font-size:15px; padding-bottom:8px; border-bottom:2px solid var(--navy); margin-bottom:10px;}
.side-panel .side-item{font-size:12.5px; padding:8px 0; border-bottom:1px solid var(--line);}
.side-panel .side-item .date{color:var(--text-soft); margin-right:6px;}
.side-panel .more-link{display:block; margin-top:10px; font-size:12.5px; text-align:right;}

/* ---------- 原則(3つの約束) ---------- */
.principles{padding:36px 0; border-top:1px solid var(--line);}
.principles-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:20px;}
@media (max-width:720px){ .principles-grid{grid-template-columns:1fr;} }
.principle{border:1px solid var(--line); padding:20px;}
.principle .num{font-family:'BIZ UDPGothic',sans-serif; font-size:12px; color:var(--navy-soft); font-weight:700;}
.principle h3{font-size:15px; margin-top:8px;}
.principle p{font-size:12.5px; margin-top:8px; color:var(--text-soft);}

/* ---------- 配信登録 ---------- */
.subscribe{padding:36px 0; border-top:1px solid var(--line); background:var(--bg-soft);}
.subscribe-box{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.subscribe-box h2{font-size:17px;}
.subscribe-box p{font-size:12.5px; color:var(--text-soft); margin-top:6px;}
form.subscribe-form{display:flex; gap:10px; flex-wrap:wrap;}
form.subscribe-form input[type=email]{
  padding:11px 14px; border:1px solid var(--line); font-size:14px; min-width:240px;
  font-family:inherit; background:#fff;
}
form.subscribe-form button{
  padding:11px 20px; background:var(--navy); color:#fff; border:none; font-size:14px;
  cursor:pointer; font-family:inherit; letter-spacing:.02em;
}
form.subscribe-form button:hover{background:var(--navy-soft);}
.subscribe-note{font-size:12px; color:var(--text-soft); margin-top:6px;}
.subscribe-preview{margin-top:22px; padding-top:18px; border-top:1px dashed var(--line);}
.subscribe-preview-label{font-size:11px; color:var(--navy-soft); font-weight:700; letter-spacing:.03em;}
#subscribe-preview-body{font-size:13px; margin-top:10px; color:var(--text-soft);}
#subscribe-preview-body .preview-item{margin-bottom:8px;}
#subscribe-preview-body .preview-item .date{color:var(--text-soft); margin-right:8px;}

/* ---------- 運営者について ---------- */
.about-box{max-width:680px; margin-top:18px;}
.about-box p{font-size:14px; margin-bottom:14px;}
.cta-box{margin-top:22px; padding:22px; background:var(--bg-soft); border:1px solid var(--line);}
.cta-lede{font-size:14px; margin-bottom:14px;}
.cta-button{
  display:inline-block; padding:11px 22px; background:var(--navy); color:#fff;
  text-decoration:none; font-size:14px; letter-spacing:.02em;
}
.cta-button:hover{background:var(--navy-soft);}
.info-table{width:100%; border-collapse:collapse; margin-top:20px; max-width:680px;}
.info-table th, .info-table td{border:1px solid var(--line); padding:10px 14px; font-size:13px; text-align:left;}
.info-table th{background:var(--bg-soft); width:140px; color:var(--text-soft); font-weight:500;}

.loading-note{font-size:13px; color:var(--text-soft); padding:16px 0;}

/* ---------- 免責 ---------- */
.disclaimer{
  font-size:12px; color:var(--text-soft); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:20px 0; max-width:var(--maxw); margin:32px auto 0;
}
.disclaimer strong{color:var(--red);}

/* ---------- フッター ---------- */
footer{padding:28px 0; font-size:12px; color:var(--text-soft); background:var(--navy); color:#C9D3E0;}
footer a{color:#C9D3E0;}
footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}
