/* =====================================================================
   Knowledge Base・新しいページ群（/faq/ /size/ /howto/ /knowledge-base/ /how-to-buy/ /our-story/ /sustainability/）
   の本国 formthotics.com/nz_en 風の部品（Issue #5・2026-11-05）。
   共通の部品は nz.css、sg- の部品（表・手順・注記・CTA パネル）は size.css。ここはページ固有のものだけで、
   すべてページの id（#faq / #size-guide / #howto-guide / #knowledge-base-page / #how-to-buy-page /
   #our-story-page / #sustainability-page）の下に置く。
   ===================================================================== */

/* size.css の「:is(...) img { height: auto }」が nz.css の写真の敷き詰め（height: 100%）に勝ってしまうので、sg- のページで戻す */
:is(#knowledge-base-page, #how-to-buy-page, #our-story-page, #sustainability-page) .nz-panel__media:not(.nz-panel__media--contain) img,
:is(#knowledge-base-page, #how-to-buy-page, #our-story-page, #sustainability-page) .nz-card__media:not(.nz-card__media--product):not(.nz-card__media--render) img { height: 100%; }

/* ---------------------------------------------------------------- /size/ */
#size-guide .sz-video-title { margin-bottom: 16px; font-size: clamp(22px, 2.4vw, 28px); }
#size-guide .sz-sports { margin: 24px 0 0; font-size: 15px; line-height: 1.9; }
#size-guide .sz-sports a { color: var(--nz-blue); text-decoration: underline; }

/* ---------------------------------------------------------------- /faq/（本国の FAQs: 細めの本文の列＋開閉式の質問） */
#faq .faq-body .nz-wrap {
  display: grid;
  grid-template-columns: 220px minmax(0, 820px);
  justify-content: space-between;
  gap: 0 64px;
}
#faq .faq-toc { grid-row: 1 / span 20; }
#faq .faq-toc ul { position: sticky; top: 24px; margin: 0; padding: 0; list-style: none; border-left: 1px solid var(--nz-line); }
#faq .faq-toc a { display: block; margin-left: -1px; padding: 8px 0 8px 18px; border-left: 2px solid transparent; font-size: 14px; line-height: 1.5; text-decoration: none; }
#faq .faq-toc a:hover { border-left-color: var(--nz-orange); }
#faq .faq-group { grid-column: 2; scroll-margin-top: 24px; }
#faq .faq-group + .faq-group { margin-top: 64px; }
#faq .faq-group .nz-h2 { margin-bottom: 24px; font-size: clamp(26px, 2.6vw, 36px); }
#faq .faq-body .nz-note { grid-column: 2; margin-top: 48px; }
#faq .nz-faq__a ul { margin: 10px 0; padding: 0; list-style: none; }
#faq .nz-faq__a li { position: relative; margin: 6px 0; padding-left: 24px; }
#faq .nz-faq__a li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.8em;
  width: 13px; height: 5px;
  border-radius: 5px 2px;
  background: var(--nz-orange);
  transform: skewX(-20deg);
}
#faq .nz-faq__a b { font-weight: 500; }
#faq .nz-faq__a a { color: var(--nz-blue); }
#faq .faq-help .nz-panel__body { padding-top: 64px; padding-bottom: 64px; }
#faq .faq-help__art { min-height: 0; background: url("../img/nz/graphic-02.png") no-repeat right center / cover; opacity: 0.6; }
@media (max-width: 900px) {
  #faq .faq-body .nz-wrap { display: block; }
  #faq .faq-toc { margin: 0 0 40px; }
  #faq .faq-toc ul { position: static; display: flex; flex-wrap: wrap; gap: 8px; border: 0; }
  #faq .faq-toc a { margin: 0; padding: 6px 14px; border: 1px solid var(--nz-line); border-radius: 16px 5px; font-size: 13px; }
  #faq .faq-group + .faq-group { margin-top: 48px; }
  #faq .faq-help__art { display: none; }
}

/* ---------------------------------------------------------------- /knowledge-base/ */
#knowledge-base-page .tr-card .nz-card__tag { margin-top: 0; }
#knowledge-base-page .tr-card .nz-card__more { display: inline-flex; align-items: center; }
#knowledge-base-page .tr-reads .nz-card__body { padding: 24px 20px 16px; }
#knowledge-base-page .tr-reads .nz-card__more { padding: 0 20px 22px; }
#knowledge-base-page .tr-diff .nz-panel__media--contain img { max-height: 320px; }
#knowledge-base-page .tr-footnote { margin: 24px 0 32px; }
@media (max-width: 900px) {
  #knowledge-base-page .tr-reads { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  #knowledge-base-page .tr-reads { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------- /how-to-buy/ */
#how-to-buy-page .hb-intro { padding-bottom: 24px; }
#how-to-buy-page .hb-intro .nz-section__head { margin-bottom: 0; }
#how-to-buy-page .hb-way .nz-list { margin-top: 20px; }
#how-to-buy-page .hb-step-link { display: inline-block; margin-top: 12px; font-size: 12px; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; }
#how-to-buy-page .hb-step-link::after { content: "→"; margin-left: 8px; color: var(--nz-orange); }
#how-to-buy-page .hb-sports { margin: 48px 0 0; }
#how-to-buy-page .hb-sports img { border-radius: var(--nz-radius); }
#how-to-buy-page .hb-sports small { display: block; margin-top: 2px; font-size: 13px; color: var(--nz-muted); }
#how-to-buy-page .hb-eyebrow--medical::before { background: var(--nz-sky); }
#how-to-buy-page #medical .sg-note { margin-top: 16px; }
#how-to-buy-page #business .nz-actions { margin: 0 0 32px; }

/* ---------------------------------------------------------------- /our-story/（本国の Our Story: 細めの本文の列・白いカードの Our Values） */
#our-story-page .os-narrow { max-width: 800px; margin: 0 auto; }
#our-story-page .os-prose { margin-top: 8px; }
#our-story-page .os-prose p { margin: 0 0 16px; font-size: 16px; line-height: 1.85; }
#our-story-page .os-prose .nz-h3 { margin: 32px 0 10px; font-size: 22px; font-weight: 400 !important; }
#our-story-page .os-facts { max-width: 800px; margin: 40px auto 0; }
#our-story-page .os-fact { padding: 24px 20px 28px; border-radius: var(--nz-radius); background: var(--nz-neutral-bg); }
#our-story-page .os-fact p:last-child { font-size: 14px; line-height: 1.7; }
#our-story-page .os-fact .nz-card__tag { margin-top: 0; }
#our-story-page .os-made { background: var(--nz-neutral-bg); }
#our-story-page .os-made .nz-lead a { color: var(--nz-blue); text-decoration: underline; }
#our-story-page .os-fern { width: 96px; height: auto; margin: 8px 0 20px; }
#our-story-page .os-timeline { margin: 40px 0 0; padding: 0; list-style: none; }
#our-story-page .os-timeline li { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 24px; padding: 24px 0; border-top: 1px solid var(--nz-line); }
#our-story-page .os-timeline li:last-child { border-bottom: 1px solid var(--nz-line); }
#our-story-page .os-year { margin: 0; font-size: 36px; font-weight: 300; line-height: 1; letter-spacing: -0.02em; color: var(--nz-blue); }
#our-story-page .os-timeline p:not(.os-year) { margin: 0; font-size: 15px; line-height: 1.8; }
#our-story-page .os-value { padding: 24px 20px 28px; border-radius: var(--nz-radius); background: #fff; }
#our-story-page .os-value__ic { display: block; width: 32px; height: 32px; margin-bottom: 18px; color: var(--nz-sky); }
#our-story-page .os-value p { margin: 0; font-size: 14px; line-height: 1.75; }
#our-story-page .os-links .nz-card__body p:last-child { font-size: 14px; }
@media (max-width: 900px) {
  #our-story-page .os-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  #our-story-page .os-timeline li { grid-template-columns: 1fr; gap: 8px; }
  #our-story-page .os-year { font-size: 30px; }
  #our-story-page .os-links { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------- /sustainability/ */
#sustainability-page .su-nowrap { display: inline-block; }
#sustainability-page .su-card { padding: clamp(24px, 3.4vw, 40px); border-radius: var(--nz-radius); background: var(--nz-neutral-bg); }
#sustainability-page .su-ic { display: block; width: 34px; height: 34px; margin-bottom: 18px; color: var(--nz-sky); }
#sustainability-page .su-card .nz-card__tag { margin-top: 0; }
#sustainability-page .su-card p:last-child { margin: 0; font-size: 15px; line-height: 1.8; }
#sustainability-page .su-narrow { max-width: 800px; margin: 0 auto; }
#sustainability-page .su-body { margin-top: 8px; }
#sustainability-page .su-body p { margin: 0 0 16px; font-size: 16px; line-height: 1.85; }
#sustainability-page .su-narrow .sg-tip { margin-top: 32px; }

/* ================================================================ SEO 修正計画 P1-4・P1-6（2026-11-05）で足したページ */

/* ---------------------------------------------------------------- /medical/find-a-clinic/（取扱認定院を探す・how-to-buy と同じ sg- の組み） */
/* 冒頭の「size.css の img { height: auto } を戻す」と同じ理由（このページも sg- のページ） */
#find-a-clinic-page .nz-panel__media:not(.nz-panel__media--contain) img { height: 100%; }
#find-a-clinic-page .fac-about .nz-list { margin-top: 20px; }
#find-a-clinic-page .fac-eyebrow--medical::before { background: var(--nz-sky); }
#find-a-clinic-page .fac-search-action { margin-top: 32px; }
#find-a-clinic-page .fac-faq { max-width: 820px; }
#find-a-clinic-page .fac-faq .nz-faq__a a { color: var(--nz-blue); }

/* ---------------------------------------------------------------- 本文をテーマに持つ読みもの（/hiking-insole/ /ski-insole/）
   hiking-insole.php・ski-insole.php が共通で使う（ページごとに接頭辞を分けると同じ規則が 2 組になるので 1 組にした）。
   ほかの読みもの（.wk-body / .rn-body など）は WP の本文の <style> に同じ基本の組みを持っている。それと同じ詳細度
   （クラス 1 つ）で置くので、色や余白は nz-brand.css の .nz-article .nz-prose [class$="-body"] の上書きがそのまま勝つ */
.guide-body { max-width: 100%; }
.guide-body h2 { font-size: 1.5rem; font-weight: 600; line-height: 1.4; margin: 3rem 0 1rem; padding-bottom: .6rem; border-bottom: 2px solid #0aa; }
.guide-body h3 { font-size: 1.15rem; font-weight: 600; margin: 2rem 0 .75rem; color: #0a7; }
.guide-body p { margin: 1em 0; line-height: 1.9; text-align: justify; text-justify: inter-character; }
.guide-body ul, .guide-body ol { margin: 1em 0 1.5em; padding-left: 1.5em; }
.guide-body li { margin: .5em 0; line-height: 1.8; }
.guide-body ol.guide-steps { list-style: none; counter-reset: s; padding-left: 0; }
.guide-body ol.guide-steps > li { counter-increment: s; position: relative; padding: 0 0 0 3rem; margin: 1.25em 0; }
.guide-body ol.guide-steps > li::before { content: counter(s, decimal-leading-zero); position: absolute; left: 0; top: .1em; font-weight: 700; color: #0aa; font-size: 1.1rem; letter-spacing: .02em; }
.guide-body ol.guide-steps > li b { display: block; font-size: 1.05rem; margin-bottom: .2em; }
.guide-body table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: .95rem; }
.guide-body th, .guide-body td { border: 1px solid #ddd; padding: .7em .8em; text-align: left; vertical-align: top; }
.guide-body th { background: #f4fafa; font-weight: 600; white-space: nowrap; }
.guide-body .guide-note { background: #fff8e6; border-left: 4px solid #e8a400; padding: 1em 1.2em; margin: 1.5em 0; line-height: 1.8; }
.guide-body .guide-cta { background: #f4fafa; border: 1px solid #cce8e8; border-radius: 8px; padding: 1.4em 1.5em; margin: 2.5em 0; }
.guide-body .guide-cta p { margin: .4em 0; }
.guide-body .guide-disc { font-size: .88rem; color: #666; border-top: 1px solid #eee; margin-top: 3rem; padding-top: 1.2rem; line-height: 1.8; }
.guide-body .guide-buy { display: flex; flex-wrap: wrap; gap: .8em; margin: 1em 0 .4em; }
.guide-body .guide-buy a { display: inline-block; padding: .75em 1.3em; background: #ff9900; color: #111; border-radius: 999px; font-weight: 700; text-decoration: none !important; line-height: 1.3; }
.guide-body .guide-buy a:hover { background: #ffad33; }
.guide-body .guide-buy a small { display: block; font-size: .78rem; font-weight: 400; }
.guide-body .guide-cta a { color: #00777a; text-decoration: underline; }
@media (max-width: 768px) {
  .guide-body h2 { font-size: 1.3rem; }
  .guide-body table { font-size: .88rem; }
  .guide-body th, .guide-body td { padding: .5em .6em; }
}
