/* ---------- tokens ---------- */
:root{
  --shiro:#FFFFFF;
  --gofun:#F6F4EF;
  --sumi:#1A1A1A;
  --usuzumi:#595551;
  --kei:#E3E0DA;
  --nori:#121212;
  --kogane:#8A6B28;           /* ロゴの金茶（実測 #94742C を小さな文字でも読める濃度に調整）。差し色はこの一系統のみ */
  --kogane-nama:#94742C;      /* 原色の金茶：暗地・罫・大きな数字用 */
  --serif:"Shippori Mincho B1","Yu Mincho","Hiragino Mincho ProN",serif;
  --sans:"Zen Kaku Gothic New","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  --max:1060px;
  --pad:24px;
  /* 間隔スケール（8px基準）：セクション=sp6 / 大きな塊=sp4 / 見出し下=sp3 */
  --sp-1:8px;
  --sp-2:16px;
  --sp-3:24px;
  --sp-4:40px;
  --sp-5:64px;
  --sp-6:96px;
}

/* ---------- base ---------- */
*{margin:0;padding:0;box-sizing:border-box}
body{
  font-family:var(--sans);
  color:var(--sumi);
  background:var(--shiro);
  font-size:17px;
  line-height:2;
  letter-spacing:.02em;
  line-break:strict;
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
}
a{color:var(--sumi);text-decoration:none}
a:hover{color:var(--usuzumi)}
:focus-visible{outline:2px solid var(--sumi);outline-offset:3px}
img,svg{display:block;max-width:100%}
p{text-wrap:pretty}
h1,h2{font-feature-settings:"palt";text-spacing-trim:trim-start;text-wrap:balance}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.skip{position:fixed;top:12px;left:12px;z-index:100;background:var(--sumi);color:#fff;
  padding:12px 18px;font-size:12.5px;letter-spacing:.08em;transform:translateY(-260%)}
.skip:focus{transform:none}
#main:focus{outline:none}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--kei);
}
.h-inner{max-width:var(--max);margin:0 auto;padding:0 var(--pad);
  display:flex;align-items:center;gap:20px;height:64px}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.brand img{height:40px;width:auto}
.brand .name{font-family:var(--serif);font-weight:700;font-size:16px;letter-spacing:.06em;line-height:1.3}
.brand .name small{display:block;font-family:var(--sans);font-weight:500;font-size:9px;letter-spacing:.28em;color:var(--usuzumi)}
header nav{margin-left:auto;display:flex;align-items:center;gap:26px;overflow-x:auto;scrollbar-width:none}
header nav::-webkit-scrollbar{display:none}
header nav a{font-size:13px;font-weight:500;letter-spacing:.1em;white-space:nowrap;padding:6px 0;border-bottom:2px solid transparent}
header nav a.on{border-bottom-color:var(--kogane-nama)}
.h-cta{flex-shrink:0;font-size:12.5px;font-weight:700;letter-spacing:.12em;
  border:1px solid var(--sumi);padding:9px 18px;border-radius:2px;white-space:nowrap}
.h-cta:hover{background:var(--sumi);color:#fff}

/* ---------- page ---------- */
.page{display:block}

/* ---------- section / 柱 ---------- */
section{padding:var(--sp-6) 0}
section.tight{padding-top:0}
.sec{max-width:var(--max);margin:0 auto;padding:0 var(--pad);
  display:grid;grid-template-columns:56px 1fr;gap:0 28px}
.hashira{
  writing-mode:vertical-rl;
  font-size:11.5px;font-weight:700;letter-spacing:.5em;color:var(--kogane);
  border-left:1px solid var(--kei);padding-left:14px;height:max-content;
}
.body{min-width:0}
.sec h2{font-family:var(--serif);font-weight:700;font-size:clamp(23px,3.2vw,31px);
  letter-spacing:.06em;line-height:1.65;margin-bottom:var(--sp-3);}
.sec h2.slack{margin-top:var(--sp-4);}
.sec .lead{max-width:640px}
.note{font-size:12px;color:var(--usuzumi);line-height:1.9}
.body>.note{margin-top:14px}
.more{position:relative;display:inline-block;margin-top:var(--sp-3);font-size:13px;font-weight:700;letter-spacing:.14em;
  border-bottom:1px solid var(--sumi);padding-bottom:3px}
.more::after{content:"　→"}
.more::before{content:"";position:absolute;inset:-12px -6px}  /* タップ領域の拡張（不可視） */
.more:hover{color:var(--usuzumi);border-bottom-color:var(--usuzumi)}
.crumb{font-size:11px;letter-spacing:.16em;color:var(--usuzumi);margin-bottom:16px}
.crumb a{color:inherit;border-bottom:1px solid var(--kei)}

/* ---------- hero ---------- */
.hero{padding:104px 0 84px}
.hero h1{font-family:var(--serif);font-weight:700;
  font-size:clamp(30px,5.6vw,52px);line-height:1.7;letter-spacing:.06em}
.hero.sub{padding-bottom:var(--sp-5)}
.hero.sub h1{font-size:clamp(26px,4.4vw,40px)}
.hero .lead{margin-top:28px;max-width:620px}
.cta-row{margin-top:var(--sp-4);display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-block;font-size:13.5px;font-weight:700;letter-spacing:.14em;
  padding:15px 30px;border-radius:2px;border:1px solid var(--sumi);text-align:center}
.btn:hover{color:var(--sumi);background:var(--gofun)}
.btn.fill{background:var(--sumi);color:#fff}
.btn.fill:hover{background:var(--nori);color:#fff}
.rise{opacity:0;transform:translateY(14px);animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards}
.rise.d1{animation-delay:.08s}.rise.d2{animation-delay:.2s}.rise.d3{animation-delay:.34s}
@keyframes rise{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.rise{animation:none;opacity:1;transform:none}}

/* ---------- stats ---------- */
.stats{border-top:1px solid var(--kei);border-bottom:1px solid var(--kei)}
.stats .row{max-width:var(--max);margin:0 auto;padding:0 var(--pad);
  display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:32px 8px;text-align:center}
.stat + .stat{border-left:1px solid var(--kei)}
.stat b{display:block;font-family:var(--serif);font-weight:700;font-size:clamp(26px,4vw,40px);line-height:1.2;letter-spacing:.03em;color:var(--kogane-nama)}
.stat span{display:block;margin-top:8px;font-size:11.5px;letter-spacing:.14em;color:var(--usuzumi);line-height:1.7}
.stats .cap{max-width:var(--max);margin:0 auto;padding:10px var(--pad) 14px;text-align:right;font-size:11px;color:var(--usuzumi)}

/* ---------- photo slot (実素材が届いたら assets/photos に置くだけ) ---------- */
.ph{position:relative;aspect-ratio:16/9;border:1px solid var(--kei);overflow:hidden;
  background:repeating-linear-gradient(45deg,var(--gofun) 0 12px,#EAE7E0 12px 24px)}
.ph>picture{position:absolute;inset:0;display:block;}
.ph img{width:100%;height:100%;object-fit:cover;display:block;opacity:1;transition:opacity .5s ease}
.ph img.loaded{opacity:1}
.ph .cap{position:absolute;left:0;bottom:0;z-index:2;background:var(--shiro);
  font-size:11px;letter-spacing:.1em;color:var(--usuzumi);padding:6px 12px;border-top:1px solid var(--kei);border-right:1px solid var(--kei)}
.ph.is-empty::after{content:"写真準備中";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-size:12px;letter-spacing:.24em;color:var(--usuzumi);opacity:.55}
@media (prefers-reduced-motion:reduce){.ph img{transition:none}}

/* ---------- cards / grids ---------- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--kei);border:1px solid var(--kei)}
.cell{background:var(--shiro);padding:32px 28px}
.cell h2{font-family:var(--serif);font-weight:700;font-size:18.5px;letter-spacing:.06em;margin-bottom:12px;font-feature-settings:"palt"}
.cell h3{font-family:var(--serif);font-weight:700;font-size:18.5px;letter-spacing:.06em;margin-bottom:12px;font-feature-settings:"palt"}
.cell p{font-size:14px;color:var(--usuzumi);line-height:2.05}
.cell .more{margin-top:14px;font-size:12px}

.band{background:var(--gofun);border-top:1px solid var(--kei);border-bottom:1px solid var(--kei)}
.band-dark{background:var(--nori);color:#fff}
.band-dark a{color:#fff}
.band-dark a:hover{color:#C9C5BE}
.band-dark .hashira{color:var(--kogane-nama);border-left-color:#333}
.band-dark h2{color:#fff}
.band-dark .lead{color:#C9C5BE}
.band-dark .more{border-bottom-color:#fff}
.band-dark .more:hover{border-bottom-color:#C9C5BE}
.band-dark :focus-visible{outline-color:#fff}

/* ---------- news ---------- */
.news{border-top:1px solid var(--kei)}
.news li{list-style:none;display:grid;grid-template-columns:110px 1fr;gap:18px;
  padding:14px 4px;border-bottom:1px solid var(--kei);align-items:baseline}
.news time{font-size:12.5px;letter-spacing:.1em;color:var(--usuzumi);font-feature-settings:"tnum"}
.news a{display:inline-block;font-size:15.5px;padding:6px 0}
.news a:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}

/* ---------- tables ---------- */
table{width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.9}
th,td{border:1px solid var(--kei);padding:14px 16px;text-align:left;vertical-align:top}
thead th{background:var(--gofun);font-weight:700;font-size:12.5px;letter-spacing:.08em;white-space:nowrap}
/*thead th:nth-child(1){width:16%}*/
/*thead th:nth-child(2){width:26%}*/
tbody th{background:var(--shiro);font-weight:700}
td .sub{font-size:12px;color:var(--usuzumi)}
.table-scroll{overflow-x:auto}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--kei);border:1px solid var(--kei);counter-reset:step}
.steps.three{grid-template-columns:repeat(3,1fr);padding: 10px;}
#page-kentei .steps{gap:40px;}
.step{background:var(--shiro);padding:26px 22px;counter-increment:step}
.step::before{content:counter(step,decimal-leading-zero);
  font-family:var(--serif);font-size:13px;letter-spacing:.2em;color:var(--kogane);display:block;margin-bottom:10px}
.step h3,.step h4{font-size:15px;font-weight:700;letter-spacing:.06em;margin-bottom:8px}
.step p{font-size:12.5px;color:var(--usuzumi);line-height:1.95}
@media (max-width:760px){
.steps.three{
  grid-template-columns:1fr;
}
#page-kentei .steps{gap:10px;}
#page-kentei .steps.three{grid-template-columns:1fr}
}
.list{
  margin:var(--sp-2) auto;
}

/* ---------- pull quote ---------- */
.pull{border-left:2px solid var(--kogane-nama);padding:6px 0 6px 26px;max-width:620px;margin-top:26px}
.pull p{font-family:var(--serif);font-size:17px;line-height:2.2;letter-spacing:.04em}
.pull cite{display:block;margin-top:10px;font-size:12px;color:var(--usuzumi);font-style:normal;letter-spacing:.1em}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 8px;padding:0;list-style:none}
.chips li{font-size:12px;letter-spacing:.06em;border:1px solid var(--kei);background:#FFFFFF;padding:7px 12px;border-radius:2px}
.chips a{color:inherit;text-decoration:none}
.chips a:hover{text-decoration:underline}
.chips li.active{background:var(--kogane);color:#fff;border-color:var(--kogane)}
.chips li img{
  width:100px;height:auto;
  object-fit:contain;display:block;
}
.chips li span.alt-text{
  text-align:center;display:block;margin-top:6px;font-size:7px;color:var(--usuzumi);line-height:1.5
}

/* ---------- about ---------- */
.pagemenu{
  max-width: var(--max);
  margin: 0 auto;
  padding: var(--pad) 0;
}
.definitionlist{
  margin-bottom:  var(--sp-2);
}
.declarationlist li{
  list-style: none;
}
.charterlist dt{
  font-weight: 700;
}
.charterlist dd{
  margin-bottom: var(--sp-2);
}
#teigi, #definition, #sengen, #declaration, #kensho, #charter {
  scroll-margin-top: 80px;
}


/* ---------- history ---------- */
.details{
  text-align: center;
}
.details button{
  padding: 20px;

  background-color: #fff;
  color:  var(--kogane);
  border: 2px solid var(--kogane);
  box-shadow: none;
  text-decoration:none;
  text-align: center;
  cursor: pointer;
  display: inline-block;
  margin:20px auto 0 auto;

}
.details button:hover{
  background-color:  var(--kogane);
  border:2px solid  var(--kogane);
  color: #fff;
}
.details #membership-details{

  max-width:100%;
  text-align: left;
  padding:20px;


}

.details #membership-details dt{
    font-weight: 700;
}
.details #membership-details dd{
    margin-bottom: var(--sp-2);
}



/* ---------- contact cards ---------- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--kei);border:1px solid var(--kei)}
.grid3 .cell{padding:26px 24px}
.grid3 .cell h3{font-size:15.5px;font-family:var(--sans);font-weight:700;font-feature-settings:normal}
.mailline{margin-top:34px;padding:26px 30px;border:1px solid var(--sumi);display:flex;flex-wrap:wrap;gap:8px 26px;align-items:baseline}
.mailline b{font-family:var(--serif);font-size:19px;letter-spacing:.04em;overflow-wrap:anywhere}

/* ---------- EN page ---------- */
.en p,.en li{line-height:1.95;letter-spacing:.01em}
.en .sec h2{letter-spacing:.02em}
.en .hero h1{font-size:clamp(30px,5.2vw,50px);line-height:1.5;letter-spacing:.01em}

/* ---------- footer ---------- */
footer{background:var(--nori);color:#C9C5BE}
footer .wrap{padding:56px var(--pad) 40px}
footer .f-brand{display:flex;align-items:center;gap:11px;margin-bottom:22px}
footer .f-brand img{height:30px;width:auto}
footer .f-brand .name{font-family:var(--serif);color:#fff;font-size:15px;letter-spacing:.08em}
footer p{font-size:12px;line-height:2.1}
footer a{color:#fff;font-size:13.5px;letter-spacing:.1em}
footer a:hover{color:#C9C5BE}
footer :focus-visible{outline-color:#fff}
.f-cols{display:flex;flex-wrap:wrap;gap:0 32px;margin:12px 0 18px}
.f-cols a{display:inline-block;padding:10px 0}
.f-warn{border-top:1px solid #2C2C2C;padding-top:18px;font-size:11px;color:#8F8B84}
.copyright{margin-top:14px;font-size:11px;color:#8F8B84;letter-spacing:.1em}

/* ---------- responsive ---------- */
@media (max-width:760px){
  :root{--pad:20px;--sp-4:32px;--sp-5:44px;--sp-6:64px}
  .hero{padding:64px 0 48px}
  .sec{grid-template-columns:1fr;gap:16px 0}
  .hashira{font-size:10.5px;letter-spacing:.34em;padding-left:10px}  /* 縦書きのまま高さを抑える */
  .stats .row{grid-template-columns:1fr 1fr}
  .stat{padding:26px 8px;border-top:1px solid var(--kei)}
  .stat:nth-child(3){border-left:none}
  .stat:nth-child(1),.stat:nth-child(2){border-top:none}
  .grid2,.grid3,.steps{grid-template-columns:1fr;}
  .cell{padding:26px 20px}
  .h-inner{height:56px;gap:14px}
  .brand .name{font-size:13.5px}
  .brand img{height:34px}
  .brand .name small{display:none}
  header nav{gap:16px}
  header nav a{padding:12px 4px}
  .h-cta{font-size:11.5px;letter-spacing:.08em;padding:12px 14px;position:absolute;top:5px;right:60px;}
  .news li{grid-template-columns:1fr;gap:0;padding:12px 2px}
  .ph{aspect-ratio:16/9}
  .table-scroll{margin:0 calc(var(--pad)*-1);padding:0 var(--pad)}
  .table-scroll table{min-width:640px}
  .mailline{padding:20px;gap:6px 20px}
  .mailline b{font-size:16px}
}

/* ---------- form embed slot（公開時にフォームサービスの埋め込みコードを差し込む） ---------- */
.form-embed{margin-top:var(--sp-4);border:1px solid var(--kei);background:var(--gofun);
  min-height:200px;display:flex;align-items:center;justify-content:center;padding:32px 24px}
.form-embed__note{font-size:13px;color:var(--usuzumi);letter-spacing:.06em;text-align:center;line-height:2}
.form-embed iframe{width:100%;border:0}

/* ---------- 会員ロゴグリッド ---------- */
.lg-h{font-size:15px;letter-spacing:.14em;font-weight:700;margin:36px 0 14px}
.logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px;padding:0;margin:0 0 6px;list-style:none}
.logos li{border:1px solid var(--kei);background:var(--shiro,#FFFFFF);display:flex;align-items:center;justify-content:center;text-align:center;padding:8px}
.logos li span,.logos li a{font-size:10.5px;letter-spacing:.06em;line-height:1.55;color:var(--usuzumi);text-decoration:none}
.logos li a:hover{color:var(--sumi);text-decoration:underline}
.logos img{width:auto;max-height:70%;object-fit:contain}
.logos span.alt-text{
  text-align:center;display:block;margin-top:6px;font-size:7px;color:var(--usuzumi);line-height:1.5;
}

#personal-supporter, #documents, #members {
  scroll-margin-top: 80px;
}



/* ---------- 認定ショーケース ---------- */
.certgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:26px 0 8px}
.cert .ph{aspect-ratio:4/3}
.cert h3{font-family:var(--serif,"Shippori Mincho B1"),serif;font-size:17px;letter-spacing:.08em;margin:12px 0 4px}
.cert p{font-size:12.5px;letter-spacing:.05em;color:var(--usuzumi)}
@media (max-width:760px){.certgrid{grid-template-columns:1fr}}

/* ---------- お問い合わせフォーム ---------- */
.cform{margin-top:34px;max-width:640px}
.frow{margin-bottom:18px}
.frow label{display:block;font-size:12px;letter-spacing:.14em;color:var(--usuzumi);margin-bottom:8px}
.cform input,.cform select,.cform textarea{width:100%;font:inherit;font-size:15px;padding:12px 14px;border:1px solid var(--kei);background:var(--shiro,#FFFFFF);color:var(--sumi);border-radius:0}
.cform textarea{resize:vertical;line-height:1.8}
.cform select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--usuzumi) 50%),linear-gradient(135deg,var(--usuzumi) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.agree{display:block;font-size:13px;letter-spacing:.04em;margin:4px 0 22px}
.agree input{width:auto}
button.btn{appearance:none;cursor:pointer;font:inherit}

/* ---------- 応援団 ---------- */
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px;margin-top:26px}
.person{border:1px solid var(--kei);background:var(--shiro,#FFFFFF);padding:22px}
.p-photo{aspect-ratio:1;border:none;border-radius:50%;background:var(--gofun);
         display:flex;align-items:center;justify-content:center;overflow:hidden;width: 50%;height: auto;margin: 0 auto;}
.p-photo img{width:88%;height:88%;object-fit:contain}
.p-field{display:inline-block;font-size:10.5px;letter-spacing:.2em;color:var(--kogane,#94742C);border:1px solid currentColor;padding:3px 10px;margin-bottom:10px}
.person h3{font-family:var(--serif,"Shippori Mincho B1"),serif;font-size:18px;letter-spacing:.1em;margin:0 0 4px}
.p-org{font-size:12px;letter-spacing:.06em;color:var(--usuzumi);margin:0 0 10px}
.p-org a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.p-fav{font-size:12px;line-height:1.9;color:var(--sumi);margin:0 0 8px}
.p-note{font-size:12.5px;line-height:2;color:var(--sumi);margin:0}
/* ---------- 認定一覧 ---------- */
.clist{display:grid;gap:26px;margin-top:24px}
.citem{display:grid;grid-template-columns:180px 1fr;gap:22px;border:1px solid var(--kei);background:var(--shiro,#FFFFFF);padding:22px}
.c-photo{aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden}
.c-photo img{max-width:100%;max-height:100%;object-fit:contain}
.c-cat{display:inline-block;font-size:10.5px;letter-spacing:.18em;color:var(--kogane,#94742C);border:1px solid currentColor;padding:3px 10px;margin-bottom:10px}
.citem h3{font-family:var(--serif,"Shippori Mincho B1"),serif;font-size:18px;letter-spacing:.06em;margin:0 0 4px}
.citem h3 a{color:inherit;text-decoration:none}
.citem h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.c-co{font-size:12px;color:var(--usuzumi);margin:0 0 10px}
.c-body p{font-size:13.5px;line-height:2}
.c-meta{font-size:11.5px;letter-spacing:.08em;color:var(--usuzumi);margin-top:10px}
.citem.past{opacity:.75}
.relation{
  margin-top:20px;
}
.relation li{
  list-style: none;
}


@media (max-width:640px){.citem{grid-template-columns:1fr}.c-photo{max-height:220px;margin: 0 auto;}}

.certgrid.five{grid-template-columns:repeat(5,1fr)}
.certgrid .ph.sq{aspect-ratio:1;background:var(--shiro,#fff);border:1px solid var(--kei);display:flex;align-items:center;justify-content:center}
.certgrid .ph.sq img{max-width:86%;max-height:86%;object-fit:contain}
@media (max-width:900px){.certgrid.five{grid-template-columns:repeat(2,1fr)}}

/* ---------- ハンバーガーメニュー（760px以下） ---------- */
.nav-toggle{display:none}
.gnav-overlay[hidden]{display:none}
@media (max-width:1024px){
  .h-inner{gap:10px}
  header nav{display:block;}
  header nav[aria-label="主要メニュー"]{display:none}
  .brand img{width:32px;height:auto}
  .brand .name{font-size:11px;letter-spacing:.14em}
  .brand .name small{display:none}
  .h-cta{padding:8px 10px;font-size:11px;letter-spacing:.12em;white-space:nowrap;position: absolute;top: 5px;right: 60px;}
  .nav-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;min-width:44px;background:transparent;border:1px solid var(--kei);cursor:pointer;padding:0;position:absolute;top:5px;right:10px;z-index:1001;}
  .nav-toggle span{display:block;width:18px;height:1.5px;background:var(--sumi);transition:transform .25s ease,opacity .2s ease}
  body.nav-open .nav-toggle{position:fixed;top:5px;right:10px;z-index:1001;background:var(--gofun)}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  .gnav-overlay{position:fixed;inset:0;z-index:1000;background:var(--gofun);padding:86px 26px 40px;overflow:auto;-webkit-overflow-scrolling:touch;height:100dvh;}
  .gnav-list a{display:block;width:100%;padding:17px 4px;border-bottom:1px solid var(--kei);font-family:var(--serif,"Shippori Mincho B1"),serif;font-size:17px;letter-spacing:.16em;color:var(--sumi);text-decoration:none}
  .gnav-list a.on{color:var(--kogane,#94742C);border-bottom: 1px solid var(--kei);}
  .gnav-list .g-cta{display:block;margin-top:30px;border:1px solid var(--sumi);text-align:center;font-family:var(--sans,"Zen Kaku Gothic New"),sans-serif;font-size:13px;letter-spacing:.2em;padding:15px 4px;color:var(--sumi);text-decoration:none}
  body.nav-open{overflow:hidden}
}
@media (max-width:374px){
  .brand .name{
    font-size:10px;letter-spacing:.12em;
  }
  .h-cta{
    padding:6px 8px;font-size:10px;letter-spacing:.1em;margin: 4px 0 0 0;
  }
}
@media (max-width:345px){
  .h-cta{
    display:none;
  }
}
@media (min-width:1025px){.gnav-overlay{display:none!important}}



/* ---------- ページング ---------- */
#pagenavi{
  display:block;
  padding: 20px 0;
}
#pagenavi:after{
  content: "";
  visibility: hidden;
  display: block;
  height: 0;
  clear: both;
}
#pagenavi .prev{
  float:left;
}
#pagenavi .next{
  float:right;
}

/* ---------- single ---------- */
#page-news [itemprop="text"]{
  padding:40px 0;
}
#page-news [itemprop="text"] p,
#page-news [itemprop="text"] dl{
  margin-bottom:16px;
}
#page-news [itemprop="text"] dt{
  font-weight:700;
}
#page-news [itemprop="text"] a{
  text-decoration:underline dotted 1px  var(--usuzumi);
}

/* Onigiri Society full-page refresh | 2026-09-07 | load AFTER existing style.css */
:root{--ink:#202422;--paper:#fff;--accent:#806021;--line:#dedfd9;--max:1180px;--pad:clamp(18px,3vw,40px);--refresh-muted:#56605a;--refresh-wash:#f6f5f0}
html{scroll-padding-top:110px}
body{font-size:17px;line-height:1.95;background:#fff;color:var(--ink)}
.rise{opacity:1!important;transform:none!important;animation:none!important}
*,*::before,*::after{box-sizing:border-box}
body>header{background:rgba(255,255,255,.98);border-bottom:1px solid var(--line)}
body>header .h-inner{max-width:1360px;min-height:86px;padding:14px var(--pad);gap:22px}
body>header .brand{flex-shrink:0;gap:11px}
body>header .brand img{width:46px;height:46px;object-fit:contain}
body>header .brand .name{font-size:15px;line-height:1.5;white-space:nowrap}
body>header .brand small{font-size:10px;letter-spacing:.13em;margin-top:2px}
body>header nav[aria-label="主要メニュー"]{gap:22px}
body>header nav[aria-label="主要メニュー"] a{font-size:14px;padding:10px 0;white-space:nowrap}
body>header .h-cta{font-size:14px;padding:11px 17px;border:1px solid var(--ink);background:var(--ink);color:#fff;white-space:nowrap}
#main{overflow:clip}
#main :is(h1,h2,h3,h4,p,li,td,th,a){overflow-wrap:anywhere;word-break:normal}
#main :is(h1,h2,h3,h4){text-wrap:pretty;line-height:1.55}
#main h1{font-size:clamp(30px,3.3vw,46px);letter-spacing:.03em}
#main h1,#main h2{font-family:"Shippori Mincho B1","Yu Mincho","Hiragino Mincho ProN",serif}
#main h2{font-size:clamp(23px,2.1vw,30px)}
#main h3{font-size:20px}
#main p{max-width:100%;font-size:17px}
#main .lead{font-size:18px;line-height:1.95}
#main section{padding-block:76px}
#main section.tight{padding-block:48px}
#main .hero.sub{padding-block:64px 48px;background:linear-gradient(180deg,var(--refresh-wash),#fff)}
#main .sec{grid-template-columns:44px minmax(0,1fr);gap:28px}
#main .hashira{font-size:13px;letter-spacing:.14em;color:var(--accent)}
#main .body,#main .wrap,#main .cell,#main .person,#main .citem{min-width:0}
#main .grid2{gap:1px}
#main .cell{padding:28px 0;border-top:1px solid var(--line);padding:20px;}
#main .cell h3{margin:0 0 10px}
#main .cell p{font-size:16px;line-height:1.95;margin:0}
#main .band{background:var(--refresh-wash)}
#main :is(.note,.cap,.facts,.meta,.eyebrow){font-size:14px;line-height:1.8;color:var(--refresh-muted)}
#main :is(.note,.cap) a{color:inherit;text-decoration:underline}
#main .btn{font-size:16px;line-height:1.7;min-height:48px;padding:12px 23px;white-space:normal}
#main .btn.fill{background:var(--accent);border-color:var(--accent);color:#fff}
#main .more{font-size:16px;line-height:1.8;padding-block:10px}
#main .ph{aspect-ratio:auto;min-height:0;background:var(--refresh-wash);margin:0}
#main .ph>picture{position:static;display:block;width:100%;height:auto}
#main .ph img{position:static;display:block;width:100%;height:auto;max-height:none;object-fit:contain;opacity:1}
#main .ph.is-empty::before,#main .ph.is-empty::after{display:none}
#main .ph figcaption.cap{position:static;background:none;color:var(--refresh-muted);padding:12px 16px;font-size:13px}
#main .ph .cap::before{display:none}
#main .citem{grid-template-columns:210px minmax(0,1fr);gap:32px;padding-block:30px}
#main .citem img{object-fit:contain;height:auto;max-height:230px}
#main .cert{gap:30px}
#main .cert .pic{background:#f7f7f3;aspect-ratio:4/3}
#main .cert img{object-fit:contain;max-height:190px}
#main .cert .name{font-size:17px;line-height:1.7}
#main .cert .desc{font-size:15px;line-height:1.8}
#main .logos{grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:18px}
#main .logos li{min-width:0;background:#fff;border:1px solid var(--line);padding:15px 9px}
#main .logos li a{display:flex;align-items:center;flex-direction:column;width:100%;height:100%;text-align:center}
#main .logos img{object-fit:contain;height:66px;width:100%;max-width:115px;margin:0 auto}
#main :is(.logos,.chips) .alt-text{display:block;font-size:12px;line-height:1.6;color:#3b423d;margin-top:10px;white-space:normal}
#main .people{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:40px}
#main .person p{font-size:16px}
#main .person img{object-fit:contain;height:auto;max-height:320px}
#main .tline p{font-size:16px}
#main .table-scroll{overflow:auto;max-width:100%;margin:24px 0;border:1px solid var(--line)}
#main table{font-size:16px;line-height:1.75;border-collapse:collapse;width:100%;margin:0}
#main th,#main td{padding:17px 18px;vertical-align:top}
#main th{background:var(--refresh-wash);font-weight:700}
#main td:last-child{font-variant-numeric:tabular-nums}
#main .table-scroll table{min-width:680px}
#main #personal-supporter table{min-width:0}
#main #personal-supporter th:first-child{width:32%}
#main .table-scroll::after{display:none}
#main #documents .list{margin-block:24px}
#main #documents h3{margin:28px 0 12px;border-bottom:1px solid var(--line);padding-bottom:12px}
#main #documents .pdf{padding:15px 0;border-bottom:1px solid var(--line);font-size:16px}
#main #documents .pdf a{text-decoration:underline;text-underline-offset:.2em}
#main .details{margin-block:24px}
#main .details button{font:inherit;font-size:17px;padding:15px 18px;min-height:48px;border:1px solid var(--accent);color:var(--accent);background:#fff;cursor:pointer;max-width:100%;white-space:normal;text-align:left}
#main .details>div{padding:24px 0}
#main .details p,#main .details li{font-size:16px}
#main .local-intro{margin-top:42px;padding-top:36px;border-top:1px solid var(--line)}
#main :is(input,textarea,select){font:inherit;font-size:16px;max-width:100%;border:1px solid #858d85;border-radius:0}
#main input[type=submit],#main button[type=submit]{min-height:48px}
#main .news a{line-height:1.8}
#main .news time{font-size:14px;white-space:nowrap;color:var(--refresh-muted)}
#main .news .ttl{font-size:17px;white-space:normal;overflow:visible;text-overflow:clip;display:block;-webkit-line-clamp:unset}
#main .news li{padding-block:18px}
#page-news [itemprop=text] img{max-width:100%;height:auto;object-fit:contain}
#page-news [itemprop=text] iframe{max-width:100%;aspect-ratio:16/9;height:auto}
body>footer{padding-block:56px 30px;border-top:1px solid var(--line);background:var(--refresh-wash);color:var(--refresh-muted)}
body>footer p,body>footer a{font-size:14px;line-height:1.9}
footer .f-brand .name{color:var(--refresh-muted);}
body>footer .f-cols{gap:12px 26px}
body>footer .f-cols a{color:var(--refresh-muted)}
body>footer .f-warn{font-size:13px;max-width:70em}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #806021;outline-offset:4px}
.skip-link{position:fixed;left:16px;top:-100px;z-index:10000;background:#fff;color:#202422;padding:12px 18px;border:2px solid #806021}
.skip-link:focus{top:12px}
[hidden]{display:none!important}
/* Full home template: exact current content, only placement is changed. */
#page-home .refresh-hero{padding:58px 0 50px;background:var(--refresh-wash)}
#page-home .hero-layout{max-width:var(--max);padding-inline:var(--pad);margin-inline:auto;display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
#page-home .hero-copy .hashira{writing-mode:horizontal-tb;margin-bottom:18px}
#page-home .hero-copy h1{font-size:clamp(32px,3.2vw,48px);line-height:1.6;margin:0 0 20px}
#page-home .hero-copy p.lead{font-size:17px;margin-bottom:23px}
#page-home .hero-photo{margin:0}
#page-home .hero-photo img{display:block;width:100%;height:auto;object-fit:contain}
#page-home .hero-photo .cap{display:block;font-size:12px;margin:10px 0 0;color:var(--refresh-muted)}
#page-home .stats{background:#fff;border-block:1px solid var(--line);padding:26px 0}
#page-home .stats .row{max-width:var(--max);padding:0 var(--pad);gap:0}
#page-home .stats .row>div{border-right:1px solid var(--line)}
#page-home .stats .row>div:last-child{border-right:none}
#page-home .stats b{font-size:34px;color:var(--accent)}
#page-home .stats span{font-size:14px}
#page-home .audience-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:32px auto 12px;max-width:var(--max);padding:0 var(--pad)}
#page-home .audience-links a{padding:23px 20px;border:1px solid var(--line);font-size:17px;background:#fff;display:flex;justify-content:space-between;gap:14px}
#page-home .audience-links a::after{content:'↗';color:var(--accent)}
#page-home .numbered-business{counter-reset:business}
#page-home .numbered-business>.cell::before{counter-increment:business;content:counter(business,decimal-leading-zero);font-size:13px;letter-spacing:.12em;color:var(--accent);display:block;margin-bottom:13px}
/* Historical articles remain full text; no title truncation. */
.refresh-post{max-width:900px;margin:auto;padding:56px var(--pad) 80px}
#main .refresh-post>header{position:static;background:none;border:0;box-shadow:none;padding:0 0 32px}
#main .refresh-post>header h1{font-size:clamp(26px,2.7vw,38px);line-height:1.65}
.refresh-post .post-content{font-size:17px;line-height:2}
.refresh-post .post-content img{display:block;max-width:100%;height:auto;object-fit:contain}
.refresh-post .post-content iframe{max-width:100%;aspect-ratio:16/9;height:auto}
.refresh-post .post-content :is(ul,ol){padding-left:1.5em}
.refresh-post .post-content table{display:block;overflow:auto}
.refresh-post .source-links{border-block:1px solid var(--line);padding-block:20px;margin-block:24px}
.refresh-post .source-links a{display:block;text-decoration:underline;padding:8px 0}
.refresh-post .post-nav{display:flex;gap:20px;justify-content:space-between;margin-top:48px;padding-top:22px;border-top:1px solid var(--line)}
.refresh-post .post-nav a{max-width:48%;font-size:15px;line-height:1.7}
.refresh-archive{max-width:1000px;margin:auto;padding:55px var(--pad) 80px}
.refresh-archive .archive-list{list-style:none;padding:0}
.refresh-archive .archive-list>li{padding:23px 0;border-bottom:1px solid var(--line)}
.refresh-archive h2{font-family:inherit;font-size:20px!important;margin:5px 0 0}
.refresh-archive .archive-list time{font-size:14px;color:var(--refresh-muted)}
.refresh-archive .pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:36px}
.refresh-archive .pagination a,.refresh-archive .pagination span{border:1px solid var(--line);padding:8px 14px;min-width:44px;text-align:center}
.refresh-archive .pagination [aria-current]{background:var(--ink);color:#fff}
.preview-notice{font:14px/1.7 system-ui,sans-serif;padding:12px 24px;border-block:1px solid #d1d5cc;background:#f1f3ed;color:#353d32}
.preview-notice a{text-decoration:underline}
/* Legacy archive's illustrations and shop names must not crop. */
#main #genki{width:100%;max-width:1080px;margin:auto;overflow-wrap:anywhere}
#main #genki img{max-width:100%;height:auto}
@media(min-width:1101px){body>header .nav-toggle{display:none}body>header nav[aria-label="主要メニュー"]{display:flex}}
@media(max-width:1100px){body>header nav[aria-label="主要メニュー"]{display:none}body>header .h-inner{min-height:78px;padding-right:76px}body>header .nav-toggle{display:flex;right:18px;top:17px;width:44px;height:44px}body>header .h-cta{margin-left:auto;position:static}body>header .gnav-overlay{top:78px}.gnav-overlay .gnav-list{padding:24px;display:flex;flex-direction:column;gap:0}.gnav-overlay a{display:block;font-size:17px;padding:13px 5px}#page-home .hero-layout{gap:32px}}
@media(max-width:760px){body{font-size:16px}#main section{padding-block:48px}#main section.tight{padding-block:32px}#main .sec{display:block}#main .hashira{writing-mode:horizontal-tb;margin-bottom:13px}#main .hero.sub{padding-block:38px 28px}#main .grid2{grid-template-columns:1fr}#main .lead{font-size:17px}#main p{font-size:16px}#main .cell p{font-size:16px}#main .table-scroll{margin-inline:0}#main .logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}#main .logos li{padding:13px 7px}#main .logos img{height:55px}#main .citem{grid-template-columns:1fr;gap:16px}#main .citem>div:first-child{max-width:240px}#page-home .hero-layout{grid-template-columns:1fr;gap:30px}#page-home .refresh-hero{padding-block:34px}#page-home .hero-copy h1{font-size:32px}#page-home .stats .row{display:grid;grid-template-columns:1fr 1fr;gap:20px 0}#page-home .stats .row>div:nth-child(2){border-right:0}#page-home .audience-links{grid-template-columns:1fr;gap:8px;margin-top:24px}#page-home .audience-links a{padding:15px 18px}#main .news a{display:block}#main .news time{display:block;margin-bottom:5px}#main .btn{font-size:15px;padding:11px 18px}body>footer .f-cols{grid-template-columns:1fr 1fr;gap:12px 20px}}
@media(max-width:520px){body>header .h-inner{min-height:74px;gap:9px;padding:12px 68px 12px 14px}body>header .brand img{width:34px;height:34px}body>header .brand{gap:7px}body>header .brand .name{font-size:11px}body>header .brand small{font-size:8px}body>header .h-cta{font-size:11px;padding:9px 8px}body>header .nav-toggle{right:14px;top:15px}body>header .gnav-overlay{top:74px}#main .logos{grid-template-columns:repeat(2,minmax(0,1fr))}#main .cert{grid-template-columns:1fr 1fr;gap:24px 18px}#main .cert .name{font-size:16px}#main .cert .desc{font-size:14px}#main .hero h1{font-size:30px}#main .cta-row{flex-wrap:wrap;gap:10px}#main .details button{width:100%}#main .details>div{padding-top:18px}}
@media(max-width:374px){body>header .h-cta{display:none}body>header .brand .name{font-size:12px}#main .btn{width:100%;text-align:center}#page-home .hero-copy h1{font-size:29px}}
@media(max-width:760px){#main .table-scroll::before{content:'表は左右にスクロールできます';display:block;font-size:12px;color:var(--refresh-muted);padding:8px 12px;position:sticky;left:0}#main #personal-supporter .table-scroll::before{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* 商品認定の相談・申請導線 2026-09-07 v2 */
#page-certify .cert-entry-links{display:flex;flex-wrap:wrap;margin-top:1.5rem;gap:.75rem}
#page-certify #certification-application{scroll-margin-top:7rem}
#page-certify .cert-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 2rem;list-style:none;padding:0;margin:2rem 0;counter-reset:cert-step}
#page-certify .cert-steps>li{position:relative;border-top:1px solid var(--line,#d8d8d8);padding-top:1.1rem;min-width:0;counter-increment:cert-step}
#page-certify .cert-steps>li::before{content:"0" counter(cert-step);display:block;color:var(--red,#a62c2b);font-size:1rem;font-weight:700;margin-bottom:.4rem}
#page-certify .cert-steps h3{margin:0 0 .55rem;font-size:1.18rem}
#page-certify .cert-steps p{margin:0}
#page-certify .cert-download{border-top:2px solid var(--ink,#242424);border-bottom:1px solid var(--line,#d8d8d8);padding:1.5rem 0;margin:2rem 0}
#page-certify .cert-download h3{margin:0 0 .75rem}
#page-certify .cert-actions{display:flex;align-items:stretch;flex-wrap:wrap;gap:.75rem;margin:1.2rem 0}
#page-certify .cert-actions .btn,#page-certify .cert-entry-links .btn{white-space:normal;max-width:100%;height:auto;text-align:center;overflow-wrap:anywhere;line-height:1.6;padding:.8rem 1.1rem;min-height:48px}
#page-certify .cert-note{font-size:.875rem;line-height:1.85}
#page-certify .cert-actions a:focus-visible,#page-certify .cert-entry-links a:focus-visible{outline:3px solid #1a5e9a;outline-offset:4px}
@media(max-width:640px){#page-certify .cert-steps{grid-template-columns:1fr;gap:1.25rem}#page-certify .cert-actions{flex-direction:column}#page-certify .cert-actions .btn{width:100%}}

/* 原稿と導線の整理 2026-09-07 v3 */
#page-home .numbered-business>a.cell{display:flex;flex-direction:column;color:inherit;text-decoration:none;min-width:0;transition:background-color .15s,border-color .15s}
#page-home .numbered-business>a.cell p{flex-grow:1}
#page-home .numbered-business .card-link-label{display:block;align-self:flex-start;margin-top:1rem;padding:.3rem 0;color:var(--accent,#a62c2b);font-size:1rem;line-height:1.7;text-decoration:underline;text-underline-offset:.22em}
#page-home .numbered-business>a.cell:hover{border-top-color:var(--accent,#a62c2b);background-color:#f6f6f6}
#page-home .numbered-business>a.cell:focus-visible{outline:3px solid #1a5e9a;outline-offset:5px}
#page-home .numbered-business .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#main .intro-follow{margin-top:1rem;font-size:1rem;line-height:1.9}
#main :is(.municipal-membership,.membership-common-conditions){margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--line,#ddd);scroll-margin-top:7rem}
#main .membership-common-conditions dl{margin:1rem 0}
#main .membership-common-conditions dt{font-weight:700;margin-top:1.2rem}
#main .membership-common-conditions dd{margin:.35rem 0 0;font-size:1rem;line-height:1.9}
#main .municipal-membership p{font-size:1rem;line-height:1.9}
#page-press .usage-notes p+p{margin-top:1rem}
@media(prefers-reduced-motion:reduce){#page-home .numbered-business>a.cell{transition:none}}
