/* ── 全活動ページ共通リセット ── */
h1, h2, h3, h4 {
  all: unset;
  display: block;
  font-size: 1em;
  font-weight: normal;
  margin: 0;
  padding: 0;
  color: inherit;
}
.random_img { display: none; }
h3 { display: none; }

/* ── 事務局 (activity01) ── */
.office-modern { font-family: 'Noto Sans JP', sans-serif; color: #333; line-height: 1.8; max-width: 1000px; margin: auto; padding: 0 1rem 2rem; }
.office-hero   { text-align: center; padding: 3rem 1rem; background: linear-gradient(135deg, #80cbc4, #4db6ac); border-radius: 12px; margin-bottom: 2rem; box-shadow: 0 8px 20px rgba(0,0,0,0.05); }
.office-hero h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); color: #004d40; font-weight: 700; margin-bottom: .5rem; }
.office-catch   { font-size: 1.1rem; color: #00695c; opacity: .9; }
.office-desc    { font-size: 1rem; color: #444; max-width: 700px; margin: 1rem auto 0; line-height: 1.7; }
.office-block h2 { font-size: 1.5rem; color: #004d40; border-left: 6px solid #4db6ac; padding-left: .5rem; margin-bottom: 1.2rem; }
.office-grid   { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.office-card   { background: #fff; padding: 1.5rem; border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.06); transition: transform .25s ease, box-shadow .25s ease; }
.office-card:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.08); }
.office-card-title { font-size: 1.2rem; font-weight: 700; color: #004d40; margin-bottom: .5rem; }
.office-contact { text-align: center; margin-top: 3rem; }

/* ── 環境部 (activity02) ── */
.env-modern { font-family: 'Noto Sans JP', sans-serif; color: #333; line-height: 1.8; max-width: 1000px; margin: auto; padding: 0rem 1rem 2rem 1rem; }
.env-hero   { text-align: center; padding: 3rem 1rem; background: linear-gradient(135deg, #a8e6cf, #dcedc1); border-radius: 12px; margin-bottom: 2rem; box-shadow: 0 8px 20px rgba(0,0,0,0.05); }
.env-hero h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); color: #2e7d32; font-weight: 700; margin-bottom: .5rem; }
.env-catch   { font-size: 1.1rem; color: #388e3c; opacity: .9; }
.env-block h2 { font-size: 1.5rem; color: #2e7d32; border-left: 6px solid #81c784; padding-left: .5rem; margin-bottom: 1.2rem; margin-top: 2rem; }
.env-grid  { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.env-card  { background: #fff; padding: 1.5rem; border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.06); transition: transform .25s ease, box-shadow .25s ease; }
.env-card:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.08); }
.env-card-title { font-size: 1.2rem; font-weight: 700; color: #1b5e20; margin-bottom: .5rem; }
.env-list  { background: #f5f5f5; border-radius: 8px; padding: 1rem 1.5rem; }
.env-list li { margin-bottom: .5rem; }
.env-contact { text-align: center; margin-top: 3rem; }

/* ── 福祉健康部 (activity03) ── */
.welfare-modern { font-family: 'Noto Sans JP', sans-serif; color: #333; line-height: 1.8; max-width: 1000px; margin: auto; padding: 0 1rem 2rem; }
.welfare-hero   { text-align: center; padding: 3rem 1rem; background: linear-gradient(135deg, #c5e1a5, #aed581); border-radius: 12px; margin-bottom: 2rem; box-shadow: 0 8px 20px rgba(0,0,0,0.05); }
.welfare-hero h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); color: #33691e; font-weight: 700; margin-bottom: .5rem; }
.welfare-catch   { font-size: 1.1rem; color: #558b2f; opacity: .9; }
.welfare-desc    { font-size: 1rem; color: #444; max-width: 700px; margin: 1rem auto 0; line-height: 1.7; }
.welfare-block h2 { font-size: 1.5rem; color: #33691e; border-left: 6px solid #9ccc65; padding-left: .5rem; margin-bottom: 1.2rem; }
.welfare-grid  { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.welfare-card  { background: #fff; padding: 1.5rem; border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.06); transition: transform .25s ease, box-shadow .25s ease; }
.welfare-card:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.08); }
.welfare-card-title { font-size: 1.2rem; font-weight: 700; color: #1b5e20; margin-bottom: .5rem; }
.welfare-contact { text-align: center; margin-top: 3rem; }

/* ── 建築緑地協定部 (activity04) ── */
.arch-modern { font-family: 'Noto Sans JP', sans-serif; color: #333; line-height: 1.8; max-width: 1000px; margin: auto; padding: 0 1rem 2rem; }
.arch-hero   { text-align: center; padding: 3rem 1rem; background: linear-gradient(135deg, #a5d6a7, #81c784); border-radius: 12px; margin-bottom: 2rem; box-shadow: 0 8px 20px rgba(0,0,0,0.05); }
.arch-hero h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); color: #1b5e20; font-weight: 700; margin-bottom: .5rem; }
.arch-catch   { font-size: 1.1rem; color: #2e7d32; opacity: .9; }
.arch-desc    { font-size: 1rem; color: #444; max-width: 700px; margin: 1rem auto 0; line-height: 1.7; }
.arch-block h2 { font-size: 1.5rem; color: #1b5e20; border-left: 6px solid #81c784; padding-left: .5rem; margin-bottom: 1.2rem; }
.arch-grid  { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.arch-card  { background: #fff; padding: 1.5rem; border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.06); transition: transform .25s ease, box-shadow .25s ease; }
.arch-card:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.08); }
.arch-card-title { font-size: 1.2rem; font-weight: 700; color: #1b5e20; margin-bottom: .5rem; }
.arch-contact { text-align: center; margin-top: 3rem; }
.clean-button {
  all: unset;
  display: inline-block;
  padding: 0.75em 1.5em;
  background-color: #c18e00;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  cursor: pointer;
  text-decoration: none;
  margin-bottom: 1.5em;
  transition: background-color 0.3s ease, transform 0.2s ease;
}
.arch-modern a, .arch-modern a:visited { color: #fff; }
.arch-modern a:hover { color: #FF6600; }
.clean-button:hover, .clean-button:focus { background-color: #ebbb35; transform: translateY(-2px); outline: none; }

/* ── 事業・こども部 (activity05) ── */
.biz-modern { font-family: 'Noto Sans JP', sans-serif; color: #333; line-height: 1.8; max-width: 1000px; margin: auto; padding: 0 1rem 2rem; }
.biz-hero   { text-align: center; padding: 3rem 1rem; background: linear-gradient(135deg, #90caf9, #64b5f6); border-radius: 12px; margin-bottom: 2rem; box-shadow: 0 8px 20px rgba(0,0,0,0.05); }
.biz-hero h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); color: #0d47a1; font-weight: 700; margin-bottom: .5rem; }
.biz-catch   { font-size: 1.1rem; color: #1565c0; opacity: .9; }
.biz-desc    { font-size: 1rem; color: #444; max-width: 700px; margin: 1rem auto 0; line-height: 1.7; }
.biz-block h2 { font-size: 1.5rem; color: #0d47a1; border-left: 6px solid #64b5f6; padding-left: .5rem; margin-bottom: 1.2rem; }
.biz-grid  { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.biz-card  { background: #fff; padding: 1.5rem; border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.06); transition: transform .25s ease, box-shadow .25s ease; }
.biz-card:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.08); }
.biz-card-title { font-size: 1.2rem; font-weight: 700; color: #0d47a1; margin-bottom: .5rem; }
.biz-contact { text-align: center; margin-top: 3rem; }

/* ── 防犯部 (activity06) ── */
.security-modern { font-family: 'Noto Sans JP', sans-serif; color: #333; line-height: 1.8; max-width: 1000px; margin: auto; padding: 0 1rem 2rem; }
.security-hero   { text-align: center; padding: 3rem 1rem; background: linear-gradient(135deg, #ffe082, #ffca28); border-radius: 12px; margin-bottom: 2rem; box-shadow: 0 8px 20px rgba(0,0,0,0.05); }
.security-hero h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); color: #e65100; font-weight: 700; margin-bottom: .5rem; }
.security-catch   { font-size: 1.1rem; color: #ef6c00; opacity: .9; }
.security-desc    { font-size: 1rem; color: #444; max-width: 700px; margin: 1rem auto 0; line-height: 1.7; }
.security-block h2 { font-size: 1.5rem; color: #e65100; border-left: 6px solid #ffca28; padding-left: .5rem; margin-bottom: 1.2rem; }
.security-grid  { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.security-card  { background: #fff; padding: 1.5rem; border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.06); transition: transform .25s ease, box-shadow .25s ease; }
.security-card:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.08); }
.security-card-title { font-size: 1.2rem; font-weight: 700; color: #bf360c; margin-bottom: .5rem; }
.security-contact { text-align: center; margin-top: 3rem; }

/* ── 防災部 (activity07) ── */
.disaster-modern { font-family: 'Noto Sans JP', sans-serif; color: #333; line-height: 1.8; max-width: 1000px; margin: auto; padding: 0 1rem 2rem; }
.disaster-hero   { text-align: center; padding: 3rem 1rem; background: linear-gradient(135deg, #ffe082, #ffcc80); border-radius: 12px; margin-bottom: 2rem; box-shadow: 0 8px 20px rgba(0,0,0,0.05); }
.disaster-hero h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); color: #e65100; font-weight: 700; margin-bottom: .5rem; }
.disaster-catch   { font-size: 1.1rem; color: #ef6c00; opacity: .9; }
.disaster-desc    { font-size: 1rem; color: #444; max-width: 700px; margin: 1rem auto 0; line-height: 1.7; }
.disaster-block h2 { font-size: 1.5rem; color: #e65100; border-left: 6px solid #ffcc80; padding-left: .5rem; margin-bottom: 1.2rem; }
.disaster-grid  { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.disaster-card  { background: #fff; padding: 1.5rem; border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.06); transition: transform .25s ease, box-shadow .25s ease; }
.disaster-card:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.08); }
.disaster-card-title { font-size: 1.2rem; font-weight: 700; color: #bf360c; margin-bottom: .5rem; }
.disaster-contact { text-align: center; margin-top: 3rem; }

/* ── 広報部 (activity09) ── */
.pr-modern { font-family: 'Noto Sans JP', sans-serif; color: #333; line-height: 1.8; max-width: 1000px; margin: auto; padding: 0 1rem 2rem; }
.pr-hero   { text-align: center; padding: 3rem 1rem; background: linear-gradient(135deg, #b39ddb, #9575cd); border-radius: 12px; margin-bottom: 2rem; box-shadow: 0 8px 20px rgba(0,0,0,0.05); }
.pr-hero h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); color: #4527a0; font-weight: 700; margin-bottom: .5rem; }
.pr-catch   { font-size: 1.1rem; color: #5e35b1; opacity: .9; }
.pr-desc    { font-size: 1rem; color: #444; max-width: 700px; margin: 1rem auto 0; line-height: 1.7; }
.pr-block h2 { font-size: 1.5rem; color: #4527a0; border-left: 6px solid #9575cd; padding-left: .5rem; margin-bottom: 1.2rem; }
.pr-grid  { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.pr-card  { background: #fff; padding: 1.5rem; border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.06); transition: transform .25s ease, box-shadow .25s ease; }
.pr-card:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.08); }
.pr-card-title { font-size: 1.2rem; font-weight: 700; color: #311b92; margin-bottom: .5rem; }
.pr-contact { text-align: center; margin-top: 3rem; }
