@charset "utf-8";
:root{
  --lime:#ACD666;        --orange:#FF8B43;      --pale:#D9E694;        --lime-deep:#52701E;   --orange-deep:#BD4900; --ink:#1F2418;         --sub:#5E6653;         --paper:#F7F8F2;       --white:#FFFFFF;
  --mist:#E7EBDC;        --night:#151A11;       --night-ink:#C9D2C0;   }

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
}
*{ box-sizing:border-box; margin:0; padding:0; }

body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  font-size:16px;
  line-height:1.95;
  font-feature-settings:"palt";
  word-break:keep-all;
  line-break:strict;
  overflow-wrap:break-word;
  hanging-punctuation:allow-end;
  background:var(--paper);
  color:var(--ink);
}

h1,h2,h3,h4{
  word-break:keep-all;
  overflow-wrap:break-word;
  line-height:1.5;
  font-family:"Zen Maru Gothic","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  font-weight:700;
}
p,li,dt,dd,blockquote,cite{ text-wrap:pretty; }
code,pre{ word-break:break-all; }
img{ max-width:100%; height:auto; display:block; }
svg{ max-width:100%; }
a{ color:var(--lime-deep); }
:focus-visible{ outline:3px solid var(--orange-deep); outline-offset:2px; }

@media (max-width:640px){
  h1 wbr,h2 wbr,h3 wbr,h4 wbr{ display:inline !important; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
}

.wrap{ max-width:860px; margin:0 auto; padding:0 20px; }
.pixel{ image-rendering:pixelated; shape-rendering:crispEdges; }

.mark{ width:42px; height:12px; color:var(--lime); display:block; margin-bottom:12px; }

.site-header{
  background:var(--white);
  border-bottom:1px solid var(--mist);
  overflow:hidden;
}
.head-in{
  max-width:860px; margin:0 auto; padding:12px 20px;
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
.site-header .logo{ display:block; min-width:0; }
.site-header .logo img{ width:158px; }
.site-nav ul{ list-style:none; display:flex; gap:2px; flex-wrap:wrap; margin-left:auto; }
.site-nav a{
  display:flex; align-items:center; min-height:44px; padding:4px 10px;
  text-decoration:none; font-size:14px; font-weight:700; color:var(--ink);
  border-radius:6px;
}
.site-nav a:hover{ background:var(--paper); color:var(--lime-deep); }

.hero{ background:var(--paper); padding:40px 0 46px; border-top:6px solid var(--lime); }
.hero h1{ font-size:clamp(24px,5.9vw,38px); }
.hero .vision{
  margin-top:14px; font-size:13px; font-weight:700;
  letter-spacing:0.04em; color:var(--orange-deep);
}
.hero .lead{ margin-top:20px; font-size:16px; max-width:33em; }
.hero .town{ margin-top:30px; color:var(--lime); width:100%; height:42px; display:block; }

.btns{ display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin-top:28px; max-width:520px; }
@media (min-width:560px){ .btns{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.btn{
  display:flex; align-items:center; justify-content:center; gap:8px;
  min-height:52px; padding:10px 18px; min-width:0;
  font-size:15px; font-weight:700; text-decoration:none;
  border-radius:8px; white-space:normal;
}
.btn .tip{ width:13px; height:13px; flex:none; }
.btn.primary{ background:var(--lime-deep); color:var(--white); }
.btn.ghost{ background:var(--white); color:var(--ink); border:2px solid var(--orange); }
.btn.ghost .tip{ color:var(--orange-deep); }

.section{ padding:52px 0; }
.section.alt{ background:var(--white); border-top:1px solid var(--mist); border-bottom:1px solid var(--mist); }
.section h2{ font-size:clamp(21px,4.6vw,29px); }
.section .sec-lead{ margin-top:16px; font-size:15.5px; max-width:33em; }
.section .sec-note{ margin-top:14px; font-size:14px; color:var(--sub); max-width:33em; }

.pillars{ display:grid; grid-template-columns:minmax(0,1fr); gap:16px; margin-top:30px; }
@media (min-width:820px){ .pillars{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.pillar{
  min-width:0; background:var(--paper); border:1px solid var(--mist);
  border-radius:10px; padding:24px 20px 26px;
}
.section.alt .pillar{ background:var(--paper); }
.pillar > *{ min-width:0; }
.pillar .icon{ width:38px; height:38px; color:var(--lime-deep); display:block; }
.pillar h3{ margin-top:14px; }
.pillar h3 .p-name{ display:block; font-size:21px; }
.pillar h3 .p-sub{ display:block; font-size:13.5px; font-weight:700; color:var(--lime-deep); margin-top:2px; }
.pillar p{ font-size:14.5px; margin-top:12px; }
.pillar ul{ list-style:none; margin-top:16px; padding-top:16px; border-top:1px solid var(--mist); }
.pillar li{ font-size:14px; padding-left:20px; position:relative; margin-top:9px; line-height:1.8; }
.pillar li:first-child{ margin-top:0; }
.pillar li::before{
  content:""; position:absolute; left:0; top:0.66em;
  width:9px; height:9px; background:var(--lime); border-radius:2px;
}
.pillar .foot{ font-size:13px; color:var(--sub); margin-top:16px; }

.system{ display:grid; grid-template-columns:minmax(0,1fr); gap:14px; margin-top:26px; }
@media (min-width:700px){ .system{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.org{
  min-width:0; background:var(--white); border:1px solid var(--mist);
  border-radius:10px; padding:20px;
}
.section.alt .org{ background:var(--paper); }
.org > *{ min-width:0; }
.org .role{ font-size:12.5px; font-weight:700; color:var(--orange-deep); }
.org h3{ font-size:16.5px; margin-top:4px; }
.org p{ font-size:14px; color:var(--sub); margin-top:10px; }

.records{ display:grid; grid-template-columns:minmax(0,1fr); gap:26px; margin-top:28px; }
@media (min-width:760px){ .records{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.record{ min-width:0; }
.record > *{ min-width:0; }
.record h3{ font-size:17px; padding-bottom:8px; border-bottom:2px solid var(--pale); }
.record ul{ list-style:none; margin-top:14px; }
.record li{ font-size:14px; line-height:1.85; margin-top:14px; }
.record li:first-child{ margin-top:0; }
.record .who{ display:block; font-size:12.5px; color:var(--sub); margin-top:3px; }
.media-list{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.media-list span{
  display:inline-flex; align-items:center; min-width:0;
  padding:6px 13px; font-size:13px;
  background:var(--white); border:1px solid var(--mist); border-radius:999px;
}
.section.alt .media-list span{ background:var(--paper); }

.profile{ display:grid; grid-template-columns:minmax(0,1fr); gap:24px; margin-top:28px; align-items:start; }
@media (min-width:640px){ .profile{ grid-template-columns:170px minmax(0,1fr); } }
.profile > *{ min-width:0; }
.portrait{
  display:block; width:170px; max-width:60%; height:auto;
  border-radius:10px; background:var(--pale);
}
@media (max-width:639px){ .portrait{ width:150px; max-width:45%; } }
.profile .name{ font-size:20px; font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif; font-weight:700; }
.profile .name .yomi{ font-size:13px; font-weight:400; color:var(--sub); margin-left:8px; }
.profile .post{ font-size:13px; color:var(--sub); margin-top:6px; }
.profile p.bio{ font-size:14.5px; margin-top:16px; }
.career{ list-style:none; margin-top:18px; padding-top:16px; border-top:1px solid var(--mist); }
.career li{ font-size:13.5px; line-height:1.85; display:flex; gap:12px; min-width:0; margin-top:8px; }
.career li:first-child{ margin-top:0; }
.career li > *{ min-width:0; }
.career .y{
  flex:none; width:7em; color:var(--lime-deep); font-weight:700;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
@media (max-width:360px){ .career .y{ width:6.6em; } }

.spec{ margin-top:26px; }
.spec dl{ display:grid; grid-template-columns:minmax(0,1fr); row-gap:2px; }
@media (min-width:620px){ .spec dl{ grid-template-columns:8.5em minmax(0,1fr); column-gap:20px; row-gap:12px; } }
.spec dt{ font-size:13px; font-weight:700; color:var(--lime-deep); margin-top:16px; }
.spec dt:first-of-type{ margin-top:0; }
@media (min-width:620px){ .spec dt{ margin-top:0; } }
.spec dd{ font-size:14.5px; min-width:0; }
.spec dd > *{ min-width:0; }

.contact-ways{ display:grid; grid-template-columns:minmax(0,1fr); gap:12px; margin-top:26px; }
@media (min-width:640px){ .contact-ways{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.way{
  min-width:0; background:var(--white); border:1px solid var(--mist);
  border-radius:10px; padding:20px;
}
.section.alt .way{ background:var(--paper); }
.way > *{ min-width:0; }
.way .label{ font-size:12.5px; color:var(--sub); }
.way .value{
  display:flex; align-items:center; min-height:44px;
  font-size:19px; font-weight:700; color:var(--lime-deep);
  text-decoration:none; margin-top:2px; overflow-wrap:normal;
}
.way .note{ font-size:13px; color:var(--sub); margin-top:4px; }

.site-footer{ background:var(--night); color:var(--night-ink); padding:34px 0 38px; }
.site-footer .f-in{
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  column-gap:clamp(12px,4vw,32px); align-items:start;
}
.site-footer .f-in > *{ min-width:0; }
.site-footer .f-name{ font-size:15.5px; font-weight:700; color:#fff; font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif; }
.site-footer p{ font-size:13.5px; margin-top:10px; }
.site-footer .copy{ font-size:12.5px; margin-top:20px; color:#8E9A82; }
.footer-mark{
  display:inline-block; background:#fff; border-radius:8px; padding:10px; max-width:100%;
}
.footer-mark img{ display:block; width:clamp(104px,25vw,210px); max-width:100%; height:auto; }
@media (max-width:520px){
  .site-footer p{ font-size:12.5px; }
  .footer-mark{ padding:8px; }
}

.page-head{ background:var(--paper); padding:36px 0 32px; border-top:6px solid var(--lime); }
.page-head h1{ font-size:clamp(22px,5.2vw,32px); }
.page-head p{ margin-top:14px; font-size:15px; max-width:33em; }

.news-year{ margin-top:34px; }
.news-year:first-of-type{ margin-top:0; }
.news-year > h2{
  font-size:17px; color:var(--lime-deep);
  padding-bottom:8px; border-bottom:2px solid var(--pale);
  font-variant-numeric:tabular-nums;
}
.news-list{ list-style:none; }
.news-item{
  display:grid; grid-template-columns:minmax(0,1fr); gap:4px;
  padding:18px 0; border-bottom:1px solid var(--mist); min-width:0;
}
@media (min-width:680px){
  .news-item{ grid-template-columns:8.5em minmax(0,1fr); column-gap:20px; gap:0; }
}
.news-item > *{ min-width:0; }
.news-date{
  font-size:13px; font-weight:700; color:var(--sub);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.news-item h3{ font-size:16px; }
.news-item p{ font-size:14px; color:var(--sub); margin-top:6px; }
.by{
  display:inline-block; margin-top:8px; padding:3px 10px;
  font-size:12px; border-radius:999px;
  background:var(--pale); color:#3B4A14;
}
.by.ga{ background:#FFE2CC; color:#7A2E00; }
.award-logo.in-news{ margin-top:10px; }
.src{
  display:inline-flex; align-items:center; min-height:44px; padding:0 12px;
  margin:4px 0; font-size:12.5px; font-weight:700; white-space:nowrap;
  color:var(--lime-deep); background:var(--white); border:1px solid var(--mist);
  border-radius:999px; text-decoration:none; vertical-align:middle;
}
.section.alt .src{ background:var(--paper); }
.src::before{ content:""; width:7px; height:7px; margin-right:7px; background:var(--lime); border-radius:2px; }

.backlink{ margin-top:34px; }
.backlink a{
  display:inline-flex; align-items:center; gap:8px; min-height:44px;
  font-size:14.5px; font-weight:700; text-decoration:none;
}
.backlink svg{ width:12px; height:12px; transform:scaleX(-1); flex:none; }

.certs{ display:grid; grid-template-columns:minmax(0,1fr); gap:12px; margin-top:26px; }
@media (min-width:700px){ .certs{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.cert{
  display:flex; gap:16px; align-items:flex-start; min-width:0;
  background:var(--white); border:1px solid var(--mist);
  border-radius:10px; padding:18px;
}
.section.alt .cert{ background:var(--paper); }
.cert > *{ min-width:0; }
.cert-mark{
  display:inline-block; max-width:100%; margin-top:22px;
  border:1px solid var(--mist); border-radius:8px;
  background:#fff; padding:10px;
}
.cert-mark img{ display:block; width:240px; max-width:100%; height:auto; }
.cert h3{ font-size:15.5px; }
.cert .cert-kind{ font-size:13.5px; font-weight:700; color:var(--lime-deep); margin-top:6px; }
.cert .cert-meta{ font-size:12.5px; color:var(--sub); margin-top:4px; font-variant-numeric:tabular-nums; }
.cert-source{ font-size:12.5px; color:var(--sub); margin-top:16px; }

.award-item{ display:flex; gap:14px; align-items:flex-start; min-width:0; }
.award-item > *{ min-width:0; }
.award-logo{
  width:88px; height:63px; flex:none; display:block;
  border:1px solid var(--mist); border-radius:6px; background:#fff;
}
@media (max-width:400px){ .award-logo{ width:72px; height:52px; } }
