:root {
  --u: calc(100vw / 1728);
  --bg: #F7F4F3;
  --ink: #231815;
  --aka: #B7282E;
  --aka-d: #A3222A;
  --line: #C3686B;
  --gold: #C9A045;
  --rule: #DCD3D1;
  --ease: cubic-bezier(.4, 1, .7, 1);
  --jp: "IBM Plex Sans JP", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", sans-serif;
  --en: "Outfit", "IBM Plex Sans JP", sans-serif;

}
@media (max-width: 1024px) {
  :root {
    --u: min(calc(100vw / 393), 1.6px);
    --hu: min(calc(100svh / 852), calc(100vw / 393), 1.6px);
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--jp);
  font-weight: 500;
  line-height: 1.8;
  overflow-x: clip;
}
img { display: block; max-width: 100%; height: auto; }
p, dd, li, figcaption { text-wrap: pretty; word-break: auto-phrase; }
figure, p, h1, h2, h3, dl, dd, ol, ul { margin: 0; padding: 0; }
ol, ul { list-style: none; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.sp { display: none; }
@media (max-width: 1024px) {
  .pc { display: none; }
  .sp { display: block; }
}

/* ---------- 現れ方（参考サイトと同じ：下から切り抜きで出る） ---------- */
@keyframes fade { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
.fade-in { clip-path: inset(100% 0 0 0); }
.fade-in.is-active { animation: fade .6s var(--ease) forwards; }
.fade-in-lines span, .fade-in-lines > p > span { display: block; clip-path: inset(100% 0 0 0); }
.fade-in-lines.is-active span { animation: fade .6s var(--ease) forwards; }

/* ---------- 節見出し（英字大＋和文ラベル） ---------- */
.ttl { position: relative; z-index: 2; text-align: center; }
.ttl__en {
  font-family: var(--en); font-weight: 500;
  font-size: calc(var(--u) * 80); letter-spacing: .12em; line-height: 1;
  padding-left: .12em;
}
.ttl__ja {
  margin-top: calc(var(--u) * 25);
  font-size: calc(var(--u) * 24); font-weight: 700; letter-spacing: .12em; line-height: 1.4;
}
.ttl__ja small { display: block; margin-top: .6em; font-size: .62em; font-weight: 500; color: var(--aka); letter-spacing: .08em; }
.ttl--left { text-align: left; }
.ttl--left .ttl__en { padding-left: 0; }
.ttl:not(.ttl--white) .ttl__en { color: var(--aka); }
.ttl--white { color: #fff; }
@media (max-width: 1024px) {
  .ttl__en { font-size: calc(var(--u) * 38); }
  .ttl__ja { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 16); }
}

/* ---------- メニュー（PCは上中央、スマホは下中央） ---------- */
.menu {
  position: fixed; top: calc(var(--u) * 38); left: 50%; z-index: 90;
  width: calc(var(--u) * 225); translate: -50% 0;
  border-radius: 12px; background: #fff; box-shadow: 0 12px 12px #5148480a;
  display: flex; flex-direction: column;
}
.menu__btn {
  display: flex; justify-content: center; align-items: center; gap: calc(var(--u) * 12);
  padding: calc(var(--u) * 25) calc(var(--u) * 40);
}
.menu__ham { display: flex; flex-direction: column; gap: 2px; width: calc(var(--u) * 20); }
.menu__ham i { display: block; height: 2px; background: var(--aka); transition: .4s var(--ease); }
.menu__txt { font-family: var(--en); font-size: calc(var(--u) * 24); letter-spacing: .12em; line-height: 1; color: var(--aka); }
.menu__txt--close { display: none; }
.menu.is-on .menu__txt--open { display: none; }
.menu.is-on .menu__txt--close { display: inline; }
.menu.is-on .menu__ham i:nth-child(1) { transform: translateY(4px) rotate(20deg); }
.menu.is-on .menu__ham i:nth-child(2) { opacity: 0; }
.menu.is-on .menu__ham i:nth-child(3) { transform: translateY(-4px) rotate(-20deg); }
.menu__body { height: 0; overflow: clip; transition: height .4s var(--ease); }
.menu__links { display: flex; flex-direction: column; align-items: center; gap: calc(var(--u) * 30); padding: calc(var(--u) * 10) 0 calc(var(--u) * 36); }
.menu__links a { font-size: max(13px, calc(var(--u) * 16)); font-weight: 700; letter-spacing: .08em; text-decoration: none; line-height: 1; }
.menu__links a:hover { color: var(--aka); }
@media (max-width: 1024px) {
  .menu { top: auto; bottom: calc(var(--hu) * 6); width: calc(var(--hu) * 155); border-radius: calc(var(--hu) * 8); flex-direction: column-reverse; }
  .menu__btn { padding: calc(var(--hu) * 12) calc(var(--hu) * 24); gap: calc(var(--hu) * 12); }
  .menu__ham { width: calc(var(--hu) * 20); }
  .menu__txt { font-size: calc(var(--hu) * 16); }
  .menu__links { gap: calc(var(--hu) * 22); padding: calc(var(--hu) * 24) 0 calc(var(--hu) * 10); }
  .menu__links a { font-size: max(13px, calc(var(--hu) * 14)); }
}

/* ---------- 表紙 ---------- */
.hero { position: relative; z-index: 1; height: 100vh; height: 100lvh; min-height: 560px; overflow: clip; }
.hero__bg, .hero__win, .hero__pat, .hero__noise { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hero__bg { z-index: 1; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.86) contrast(.94) brightness(1.04); }
.hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(247, 244, 243, .18) url(img/noise.png); mix-blend-mode: screen; opacity: .16; }
.hero__win { z-index: 2; }
.hero__noise { z-index: 4; background: url(img/noise.png); opacity: .035; mix-blend-mode: difference; }
.hero__pat { z-index: 5; }
.hero.is-gone .hero__bg, .hero.is-gone .hero__win, .hero.is-gone .hero__pat, .hero.is-gone .hero__noise { visibility: hidden; }

.hero__logo {
  position: absolute; z-index: 10; left: 50%; top: 50%;
  width: min(calc(var(--u) * 900), 96vh); translate: -50% -52%;
}
.hero__logoimg { display: block; width: 100%; height: auto; }
.hero__sub2 { position: absolute; z-index: 10; right: calc(var(--u) * 150); top: 50%; translate: 0 -50%; writing-mode: vertical-rl; }
.hero__sub2 p {
  writing-mode: vertical-rl;
  font-size: max(15px, calc(var(--u) * 26)); font-weight: 700; letter-spacing: .16em; line-height: 1.1;
  text-shadow: 0 0 10px var(--bg), 0 0 4px var(--bg), 0 0 2px var(--bg);
}
.hero__sub2 span { display: block; padding-left: calc(var(--u) * 12); }

/* 表紙の出方 */
.hero__logoimg { clip-path: inset(100% 0 0 0); }
.hero__sub2 p { clip-path: inset(0 0 100% 0); }
.is-ready .hero__logoimg { animation: fade 1.1s var(--ease) .15s forwards; }
.is-ready .hero__sub2 p { animation: wipeD 1s var(--ease) .9s forwards; }
@keyframes wipeD { to { clip-path: inset(0 0 0 0); } }

.hero__ttl { position: absolute; z-index: 10; left: calc(var(--u) * 137); bottom: calc(var(--u) * 32); }
.hero__ttl h1 {
  writing-mode: vertical-rl; width: fit-content;
  font-size: calc(var(--u) * 32); font-weight: 700; letter-spacing: .12em; line-height: 1.1;
}
.hero__ttl h1 span { display: block; padding-left: calc(var(--u) * 7); }
.hero__ttl h1 { text-shadow: 0 0 10px var(--bg), 0 0 4px var(--bg), 0 0 2px var(--bg); }
.hero__scroll {
  position: absolute; z-index: 10; right: calc(var(--u) * 96); bottom: calc(var(--u) * 45);
  display: flex; align-items: center; gap: calc(var(--u) * 14); overflow: clip;
}
.hero__scroll p { font-family: var(--en); font-size: calc(var(--u) * 14); letter-spacing: .04em; line-height: 1; }
.hero__scroll i { display: block; width: 1px; height: calc(var(--u) * 22); background: var(--ink); animation: fvScroll 1.6s var(--ease) infinite; }
@keyframes fvScroll { 0% { translate: 0 -120%; } 50% { translate: 0 0; } 100% { translate: 0 120%; } }

@media (max-width: 1024px) {
  .hero__logo { top: calc(var(--hu) * 400); translate: -50% 0; width: calc(var(--hu) * 330); }
  .hero__sub2 { right: calc(var(--hu) * 30); top: calc(var(--hu) * 100); translate: none; }
  .hero__sub2 p { font-size: calc(var(--hu) * 16); letter-spacing: .12em; }
  .hero__sub2 span { padding-left: calc(var(--hu) * 8); }
  .hero__ttl { left: calc(var(--hu) * 30); bottom: auto; top: calc(var(--hu) * 100); }
  .hero__ttl h1 { font-size: calc(var(--hu) * 28); }
  .hero__ttl h1 span { padding-left: calc(var(--hu) * 9); }
  .hero__scroll { right: calc(var(--hu) * 16); bottom: calc(var(--hu) * 18); flex-direction: column; align-items: flex-end; gap: calc(var(--hu) * 6); }
  .hero__scroll p { writing-mode: vertical-rl; font-size: calc(var(--hu) * 11); }
}

/* ---------- 私たちの想い（枠の箱） ---------- */
.wish { position: relative; z-index: 2; padding: calc(var(--u) * 256) 0 calc(var(--u) * 220); overflow: clip; }
.wish__bg i {
  position: absolute; border-radius: 50%;
  background: url(img/shippo.svg) 0 0 / calc(var(--u) * 46) calc(var(--u) * 46);
  opacity: .55;
  -webkit-mask: radial-gradient(closest-side, #000 82%, transparent 100%);
          mask: radial-gradient(closest-side, #000 82%, transparent 100%);
}
.wish__bg i:nth-child(1) { width: calc(var(--u) * 900); height: calc(var(--u) * 900); left: calc(var(--u) * -380); top: calc(var(--u) * 60); }
.wish__bg i:nth-child(2) { width: calc(var(--u) * 300); height: calc(var(--u) * 300); left: calc(var(--u) * 260); top: calc(var(--u) * 1160); }
.wish__bg i:nth-child(3) { width: calc(var(--u) * 520); height: calc(var(--u) * 520); right: calc(var(--u) * 140); top: calc(var(--u) * 700); }
.wish__bg i:nth-child(4) { width: calc(var(--u) * 340); height: calc(var(--u) * 340); right: calc(var(--u) * -60); top: calc(var(--u) * 140); }

.wish__box { position: relative; width: calc(var(--u) * 815); margin: 0 auto; background: rgba(247, 244, 243, .9); }
.wish__frame, .wish__frame::after { position: absolute; pointer-events: none; }
.wish__frame { inset: 0; z-index: 3; border: calc(var(--u) * 14) solid var(--ink); }
.wish__frame::after { content: ""; inset: calc(var(--u) * 6); border: calc(var(--u) * 3) solid var(--ink); }
.wish__frame {
  --g: calc(var(--u) * 6);
  -webkit-mask:
    linear-gradient(to right, #000 calc(33.3% - var(--g)), transparent 0 calc(33.3% + var(--g)), #000 0 calc(66.6% - var(--g)), transparent 0 calc(66.6% + var(--g)), #000 0),
    linear-gradient(to bottom, #000 calc(33.3% - var(--g)), transparent 0 calc(33.3% + var(--g)), #000 0 calc(66.6% - var(--g)), transparent 0 calc(66.6% + var(--g)), #000 0);
  -webkit-mask-composite: source-in;
          mask:
    linear-gradient(to right, #000 calc(33.3% - var(--g)), transparent 0 calc(33.3% + var(--g)), #000 0 calc(66.6% - var(--g)), transparent 0 calc(66.6% + var(--g)), #000 0),
    linear-gradient(to bottom, #000 calc(33.3% - var(--g)), transparent 0 calc(33.3% + var(--g)), #000 0 calc(66.6% - var(--g)), transparent 0 calc(66.6% + var(--g)), #000 0);
          mask-composite: intersect;
}
.wish__cnt { position: relative; z-index: 4; width: calc(var(--u) * 640); margin: 0 auto; padding: calc(var(--u) * 115) 0 calc(var(--u) * 121); text-align: center; }
.wish__eye { font-family: var(--en); font-size: calc(var(--u) * 24); letter-spacing: .12em; line-height: 1; color: var(--aka); }
.wish__ttl { margin-top: calc(var(--u) * 25); font-size: calc(var(--u) * 54); font-weight: 700; letter-spacing: .12em; line-height: 1.25; white-space: nowrap; padding-left: .12em; }
.wish__img { width: calc(var(--u) * 420); margin: calc(var(--u) * 76) auto 0; }
.wish__img img { width: 100%; aspect-ratio: 163 / 102; object-fit: cover; }
.wish__img figcaption { margin-top: calc(var(--u) * 20); font-family: var(--en); font-size: calc(var(--u) * 16); letter-spacing: .08em; line-height: 1; }
.wish__txt { margin-top: calc(var(--u) * 57); }
.wish__txt p { font-size: max(14px, calc(var(--u) * 20)); letter-spacing: .12em; line-height: 2.6; }
.wish__txt .gap { margin-top: .9em; }
.wish__ask { position: relative; z-index: 4; margin-top: calc(var(--u) * 170); text-align: center; }
.wish__ask span { display: block; }
.wish__ask-s { font-size: max(15px, calc(var(--u) * 24)); letter-spacing: .14em; line-height: 2.1; }
.wish__ask-l { margin-top: calc(var(--u) * 48); font-size: calc(var(--u) * 60); font-weight: 700; letter-spacing: .12em; line-height: 1.6; padding-left: .12em; }

/* 代表のあゆみ */
.ayumi { position: relative; z-index: 2; display: grid; grid-template-columns: calc(var(--u) * 400) minmax(0, 1fr); width: calc(var(--u) * 1440); margin: calc(var(--u) * 240) auto 0; }
.ayumi__lead { padding-bottom: calc(var(--u) * 32); border-bottom: 2px solid var(--rule); }
.ayumi__name { font-size: max(12px, calc(var(--u) * 15)); letter-spacing: .14em; line-height: 1; }
.ayumi__name span { margin-left: 1em; font-size: 1.5em; font-weight: 700; }
.ayumi__name small { margin-left: 1em; font-size: .92em; color: #6b5f5c; letter-spacing: .12em; }
.ayumi__ttl { margin-top: calc(var(--u) * 48); font-size: calc(var(--u) * 38); font-weight: 700; letter-spacing: .08em; line-height: 1.6; }
.ayumi__ttl span { display: block; }
.ayumi__story { margin-top: calc(var(--u) * 36); }
.ayumi__story p { font-size: max(14px, calc(var(--u) * 18)); letter-spacing: .06em; line-height: 2.1; word-break: auto-phrase; }
.ayumi__story p + p { margin-top: 1em; }
.nb { white-space: nowrap; }
.aka { font-style: normal; color: var(--aka); }
.ayumi__story .ayumi__key { margin: 1.6em 0; padding: calc(var(--u) * 26) calc(var(--u) * 32); background: #fff; border-left: calc(var(--u) * 5) solid var(--aka); font-size: max(15px, calc(var(--u) * 21)); line-height: 1.9; }
.ayumi__story p, .acts dd { min-width: 0; overflow-wrap: anywhere; }
.note { margin-top: calc(var(--u) * 18); font-size: max(12px, calc(var(--u) * 14)); color: #6b5f5c; letter-spacing: .06em; }

@media (max-width: 1024px) {
  .wish { padding: calc(var(--u) * 120) 0 calc(var(--u) * 120); }
  .wish__bg i { background-size: calc(var(--u) * 28) calc(var(--u) * 28); }
  .wish__bg i:nth-child(1) { width: calc(var(--u) * 360); height: calc(var(--u) * 360); left: calc(var(--u) * -200); top: calc(var(--u) * 20); }
  .wish__bg i:nth-child(2) { width: calc(var(--u) * 160); height: calc(var(--u) * 160); left: calc(var(--u) * -40); top: calc(var(--u) * 760); }
  .wish__bg i:nth-child(3) { width: calc(var(--u) * 260); height: calc(var(--u) * 260); right: calc(var(--u) * -140); top: calc(var(--u) * 420); }
  .wish__bg i:nth-child(4) { display: none; }
  .wish__box { width: calc(var(--u) * 337); }
  .wish__frame { border-width: calc(var(--u) * 6); }
  .wish__frame::after { inset: calc(var(--u) * 3); border-width: calc(var(--u) * 1.5); }
  .wish__frame { --g: calc(var(--u) * 3); }
  .wish__cnt { width: 100%; padding: calc(var(--u) * 64) calc(var(--u) * 16) calc(var(--u) * 60); }
  .wish__eye { font-size: calc(var(--u) * 12); }
  .wish__ttl { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 25); }
  .wish__img { width: calc(var(--u) * 220); margin-top: calc(var(--u) * 36); }
  .wish__img figcaption { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 12); }
  .wish__txt { margin-top: calc(var(--u) * 36); }
  .wish__txt p { font-size: calc(var(--u) * 14); line-height: 2.2; letter-spacing: .1em; }
  .wish__ask { margin-top: calc(var(--u) * 80); }
  .wish__ask-s { font-size: calc(var(--u) * 15); letter-spacing: .1em; }
  .wish__ask-l { margin-top: calc(var(--u) * 24); font-size: calc(var(--u) * 25); letter-spacing: .08em; }
  .ayumi { grid-template-columns: minmax(0, 1fr); width: calc(var(--u) * 345); margin-top: calc(var(--u) * 110); gap: calc(var(--u) * 30); }
  .ayumi__lead { padding-bottom: calc(var(--u) * 20); }
  .ayumi__name { font-size: calc(var(--u) * 12); }
  .ayumi__ttl { margin-top: calc(var(--u) * 24); font-size: calc(var(--u) * 19); letter-spacing: .04em; }
  .ayumi__story { margin-top: calc(var(--u) * 18); }
  .ayumi__story p { font-size: calc(var(--u) * 14); line-height: 1.95; letter-spacing: .04em; }
  .ayumi__story .ayumi__key { padding: calc(var(--u) * 14) calc(var(--u) * 16); border-left-width: 3px; font-size: calc(var(--u) * 15); }
}

/* ---------- 志と社会課題（赤の節） ---------- */
.mission { position: relative; z-index: 2; background: var(--aka); color: #fff; padding: calc(var(--u) * 200) 0 calc(var(--u) * 210); overflow: clip; }
.mission__bg { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.mission__bg svg { position: absolute; left: calc(var(--u) * -260); top: calc(var(--u) * -40); width: calc(var(--u) * 2250); height: auto; }
.mission__lead { position: relative; z-index: 2; margin-top: calc(var(--u) * 64); text-align: center; font-size: calc(var(--u) * 44); font-weight: 700; letter-spacing: .12em; line-height: 1.7; }
.mission__rows { position: relative; z-index: 2; margin-top: calc(var(--u) * 110); }
.mission__row { display: flex; justify-content: space-between; align-items: flex-end; width: calc(var(--u) * 1440); margin: 0 auto; }
.mission__row + .mission__row { margin-top: calc(var(--u) * 115); }
.mission__row--rev { flex-direction: row-reverse; }
.mission__txt { width: calc(var(--u) * 456); }
.mission__txt li { position: relative; padding-top: calc(var(--u) * 36); }
.mission__txt li + li { margin-top: calc(var(--u) * 64); }
.mission__txt li::before { content: ""; position: absolute; top: 0; left: 0; width: calc(var(--u) * 153); height: calc(var(--u) * 3); background: var(--line); }
.mission__no { display: block; }
.mission__no { font-family: var(--en); font-size: calc(var(--u) * 18); letter-spacing: .14em; line-height: 1; color: #fff; }
.mission__txt h3 { margin-top: calc(var(--u) * 16); font-size: calc(var(--u) * 34); font-weight: 700; letter-spacing: .08em; line-height: 1.55; }
.mission__pic { flex-shrink: 0; width: calc(var(--u) * 900); }
.mission__pic img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }


@media (max-width: 1024px) {
  .mission { padding: calc(var(--u) * 100) 0 calc(var(--u) * 110); }
  .mission__bg svg { left: calc(var(--u) * -260); top: calc(var(--u) * 20); width: calc(var(--u) * 900); }
  .mission__lead { margin-top: calc(var(--u) * 30); font-size: calc(var(--u) * 21); line-height: 1.7; letter-spacing: .08em; }
  .mission__rows { margin-top: calc(var(--u) * 56); }
  .mission__row, .mission__row--rev { flex-direction: column-reverse; align-items: flex-start; gap: calc(var(--u) * 24); width: calc(var(--u) * 345); }
  .mission__row + .mission__row { margin-top: calc(var(--u) * 72); }
  .mission__txt { width: 100%; }
  .mission__no { font-size: calc(var(--u) * 12); }
  .mission__txt h3 { margin-top: calc(var(--u) * 8); font-size: calc(var(--u) * 20); }
  .mission__txt li { padding-top: calc(var(--u) * 18); }
  .mission__txt li + li { margin-top: calc(var(--u) * 28); }
  .mission__txt li::before { width: calc(var(--u) * 72); height: 2px; }
  .mission__pic { width: 100%; }
}

/* ---------- 4〜24節の共通部品 ---------- */
.sec { position: relative; z-index: 2; padding: calc(var(--u) * 200) 0; background: var(--bg); }
.sec--paper, .about, .chie, .ame, .mirai, .plan, .kyosan { background: #ECE8E4; }
.wrap { position: relative; z-index: 2; width: calc(var(--u) * 1440); margin: 0 auto; }
.catch { position: relative; z-index: 2; margin-top: calc(var(--u) * 56); text-align: center; font-size: calc(var(--u) * 44); font-weight: 700; letter-spacing: .12em; line-height: 1.7; }
.catch--left { text-align: left; }
.prose { margin-top: calc(var(--u) * 32); font-size: max(14px, calc(var(--u) * 20)); letter-spacing: .1em; line-height: 2.3; }
.prose p + p { margin-top: 1em; }
.prose--c { text-align: center; }
.note--c { text-align: center; }
.note--r { text-align: right; }
.btn {
  display: inline-flex; justify-content: center; align-items: center;
  min-width: calc(var(--u) * 420); min-height: calc(var(--u) * 80); padding: 0 calc(var(--u) * 48);
  border-radius: 999px; background: var(--aka); border: 2px solid var(--aka); color: #fff;
  font-size: max(14px, calc(var(--u) * 19)); font-weight: 700; letter-spacing: .1em; text-decoration: none;
  transition: background .3s var(--ease), color .3s var(--ease);
}
.btn:hover { background: #fff; color: var(--aka); }
.btn--line { background: transparent; color: var(--aka); }
.btn--line:hover { background: var(--aka); color: #fff; }
.btn--off { background: #D9D2CF; border-color: #D9D2CF; color: #5d5250; cursor: default; }
.btn--off:hover { background: #D9D2CF; color: #5d5250; }
@media (max-width: 1024px) {
  .sec { padding: calc(var(--u) * 96) 0; }
  .wrap { width: calc(var(--u) * 345); }
  .catch { margin-top: calc(var(--u) * 26); font-size: calc(var(--u) * 21); letter-spacing: .08em; }
  .prose { margin-top: calc(var(--u) * 18); font-size: calc(var(--u) * 14); line-height: 2; letter-spacing: .06em; }
  .prose--c { text-align: left; }
  .btn { min-width: calc(var(--u) * 280); min-height: calc(var(--u) * 56); padding: 0 calc(var(--u) * 24); font-size: calc(var(--u) * 15); white-space: nowrap; }
}

/* 白いカードの数字（現状・実績） */
.genjo { z-index: 3; border-radius: 0 0 calc(var(--u) * 120) calc(var(--u) * 120); }
.nums { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--u) * 30); margin-top: calc(var(--u) * 70); }
.nums li { background: #fff; padding: calc(var(--u) * 56) calc(var(--u) * 44) calc(var(--u) * 50); }
.nums__pic { display: grid; place-items: center; height: calc(var(--u) * 220); margin-bottom: calc(var(--u) * 30); }
.nums__pic img { max-height: calc(var(--u) * 210); max-width: 82%; width: auto; }
.nums__n { font-family: var(--en); font-size: calc(var(--u) * 28); color: var(--aka); line-height: 1; text-align: center; }
.nums__n b { font-size: calc(var(--u) * 110); font-weight: 500; letter-spacing: -.01em; margin: 0 .04em; }
.nums__l { margin-top: calc(var(--u) * 26); font-size: max(14px, calc(var(--u) * 18)); letter-spacing: .06em; line-height: 1.9; }
.nums--sm .nums__n b { font-size: calc(var(--u) * 88); }
.nums--sm .nums__l { text-align: center; }
@media (max-width: 1024px) {
  .genjo { border-radius: 0 0 calc(var(--u) * 40) calc(var(--u) * 40); }
  .nums { grid-template-columns: 1fr; gap: calc(var(--u) * 14); margin-top: calc(var(--u) * 32); }
  .nums li { padding: calc(var(--u) * 26) calc(var(--u) * 22); }
  .nums__pic { height: calc(var(--u) * 130); margin-bottom: calc(var(--u) * 16); }
  .nums__pic img { max-height: calc(var(--u) * 122); }
  .nums__n { font-size: calc(var(--u) * 16); }
  .nums__n b, .nums--sm .nums__n b { font-size: calc(var(--u) * 54); }
  .nums__l { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 13); }
}

.genjo__close em { font-style: normal; color: var(--aka); }

/* 6 募集：紙と生成りにまたがる赤枠の箱 */
.boshu { margin-top: calc(var(--u) * -120); padding-top: calc(var(--u) * 240); background: #ECE8E4; }
.boshu__box { width: calc(var(--u) * 1200); margin: 0 auto; background: #fff; border: calc(var(--u) * 4) solid var(--aka); border-radius: calc(var(--u) * 30); padding: calc(var(--u) * 90) calc(var(--u) * 80); text-align: center; }
.boshu__eye { font-family: var(--en); font-size: calc(var(--u) * 24); letter-spacing: .12em; color: var(--aka); line-height: 1; }
.boshu__ttl { margin-top: calc(var(--u) * 24); font-size: calc(var(--u) * 52); font-weight: 700; letter-spacing: .12em; line-height: 1.5; }
.boshu__nums { display: flex; justify-content: center; gap: calc(var(--u) * 90); margin-top: calc(var(--u) * 50); }
.boshu__nums p { display: flex; flex-direction: column; align-items: center; }
.boshu__nums span { font-size: max(13px, calc(var(--u) * 18)); font-weight: 700; letter-spacing: .1em; }
.boshu__nums b { font-family: var(--en); font-weight: 500; font-size: calc(var(--u) * 150); line-height: 1.05; color: var(--aka); letter-spacing: .02em; }
.boshu__nums em { font-style: normal; font-size: max(14px, calc(var(--u) * 22)); font-weight: 700; letter-spacing: .1em; }
.boshu__pic { width: calc(var(--u) * 680); margin: calc(var(--u) * 36) auto 0; }
.boshu__pic img { display: block; width: 100%; height: auto; }
.boshu__step { margin-top: calc(var(--u) * 48); font-size: max(15px, calc(var(--u) * 26)); font-weight: 700; letter-spacing: .08em; line-height: 1.8; }
.boshu__txt { margin-top: calc(var(--u) * 44); padding-top: calc(var(--u) * 44); border-top: 2px solid var(--rule); font-size: max(14px, calc(var(--u) * 20)); letter-spacing: .08em; line-height: 2; }
.boshu__txt span { display: block; word-break: auto-phrase; }
.boshu__txt .gap { margin-top: .8em; }
@media (max-width: 1024px) {
  .boshu { margin-top: calc(var(--u) * -40); padding-top: calc(var(--u) * 136); }
  .boshu__box { width: 100%; padding: calc(var(--u) * 44) calc(var(--u) * 20); border-width: 3px; border-radius: calc(var(--u) * 16); }
  .boshu__eye { font-size: calc(var(--u) * 13); }
  .boshu__ttl { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 24); letter-spacing: .08em; }
  .boshu__nums { flex-direction: column; gap: calc(var(--u) * 20); margin-top: calc(var(--u) * 26); }
  .boshu__nums span { font-size: calc(var(--u) * 12); }
  .boshu__nums b { font-size: calc(var(--u) * 76); }
  .boshu__nums em { font-size: calc(var(--u) * 15); }
  .boshu__pic { width: 100%; margin-top: calc(var(--u) * 18); }
  .boshu__step { margin-top: calc(var(--u) * 24); font-size: calc(var(--u) * 15); letter-spacing: .04em; }
  .boshu__txt { margin-top: calc(var(--u) * 24); padding-top: calc(var(--u) * 22); font-size: calc(var(--u) * 14); letter-spacing: .04em; line-height: 1.95; }
}

/* 7 ちえのわとは */
.about__in { display: grid; grid-template-columns: 1fr calc(var(--u) * 540); gap: calc(var(--u) * 120); align-items: center; }
.about__pic img { width: 100%; aspect-ratio: 540 / 640; object-fit: cover; border-radius: calc(var(--u) * 270) calc(var(--u) * 270) 0 0; }
.about__list { margin-top: calc(var(--u) * 36); border-top: 2px solid var(--rule); }
.about__list li { display: grid; grid-template-columns: calc(var(--u) * 64) 1fr; align-items: baseline; padding: calc(var(--u) * 22) 0; border-bottom: 2px solid var(--rule); font-size: max(15px, calc(var(--u) * 20)); font-weight: 700; letter-spacing: .08em; line-height: 1.7; }
.about__end span { display: block; }
.about__end span + span { margin-top: .4em; }
.about__list span, .uses span { font-family: var(--en); font-weight: 500; color: var(--aka); letter-spacing: .04em; }
@media (max-width: 1024px) {
  .about__in { grid-template-columns: 1fr; gap: calc(var(--u) * 36); }
  .about__pic { order: -1; width: calc(var(--u) * 260); margin: 0 auto; }
  .about__pic img { border-radius: calc(var(--u) * 130) calc(var(--u) * 130) 0 0; }
  .about__list { margin-top: calc(var(--u) * 20); }
  .about__list li { grid-template-columns: calc(var(--u) * 36) 1fr; padding: calc(var(--u) * 14) 0; font-size: calc(var(--u) * 14); }
}

/* 8b アメージングカレッジとの連携 */
.ame__in { display: grid; grid-template-columns: calc(var(--u) * 620) minmax(0, 1fr); gap: calc(var(--u) * 90); align-items: center; margin-top: calc(var(--u) * 70); }
.ame__pic img { width: 100%; aspect-ratio: 760 / 428; object-fit: cover; border-radius: calc(var(--u) * 20); }
.ame__txt .catch { margin-top: 0; }
.ame__txt .prose, .nakama__lead p { word-break: auto-phrase; }
.ame__link { margin-top: calc(var(--u) * 30); font-size: max(14px, calc(var(--u) * 18)); font-weight: 700; letter-spacing: .08em; }
.ame__link a { color: var(--aka); text-underline-offset: .3em; }
.ame__link a::after { content: " ↗"; }
@media (max-width: 1024px) {
  .ame__in { grid-template-columns: minmax(0, 1fr); gap: calc(var(--u) * 26); margin-top: calc(var(--u) * 30); }
  .ame__link { margin-top: calc(var(--u) * 18); font-size: calc(var(--u) * 14); }
}

/* 9 活動内容：4本柱のカード */
.pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(var(--u) * 28); margin-top: calc(var(--u) * 70); }
.pillar { background: #fff; padding: calc(var(--u) * 30) calc(var(--u) * 30) calc(var(--u) * 44); }
.pillar__pic, .chie__pic, .road__pic, .flow__pic { display: grid; place-items: center; background: var(--bg); }
.pillar__pic { height: calc(var(--u) * 300); }
.pillar__pic img { max-height: calc(var(--u) * 262); max-width: 88%; width: auto; }
.pillar__no, .flow__no { margin-top: calc(var(--u) * 26); font-family: var(--en); font-size: calc(var(--u) * 18); letter-spacing: .12em; color: var(--aka); line-height: 1; }
.pillar h3 { margin-top: calc(var(--u) * 10); font-size: calc(var(--u) * 34); font-weight: 700; letter-spacing: .1em; line-height: 1.4; }
.pillar p:last-child, .flow__item p:last-child { margin-top: calc(var(--u) * 12); font-size: max(13px, calc(var(--u) * 17)); letter-spacing: .06em; line-height: 1.9; }
@media (max-width: 1024px) {
  .pillars { grid-template-columns: 1fr 1fr; gap: calc(var(--u) * 10); margin-top: calc(var(--u) * 30); }
  .pillar { padding: calc(var(--u) * 12) calc(var(--u) * 12) calc(var(--u) * 18); }
  .pillar__pic { height: calc(var(--u) * 140); }
  .pillar__pic img { max-height: calc(var(--u) * 124); }
  .pillar__no, .flow__no { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 11); }
  .pillar h3 { margin-top: calc(var(--u) * 4); font-size: calc(var(--u) * 18); }
  .pillar p:last-child, .flow__item p:last-child { margin-top: calc(var(--u) * 6); font-size: calc(var(--u) * 12.5); line-height: 1.8; letter-spacing: .02em; }
}

/* 10 章：ワザワザ（赤の節） */
.chap-red { background: var(--aka); color: #fff; overflow: clip; }
.chap-red__bg { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.chap-red__bg svg { position: absolute; left: calc(var(--u) * -300); top: calc(var(--u) * 40); width: calc(var(--u) * 2300); height: auto; }
.wstage { position: relative; z-index: 2; height: calc(var(--u) * 820); }
.wstage__ttl { position: absolute; left: 50%; top: 44%; translate: -50% -50%; width: max-content; text-align: center; }
.wstage__eye { font-size: max(13px, calc(var(--u) * 20)); font-weight: 700; letter-spacing: .14em; line-height: 1.4; }
.wstage__en { margin-top: calc(var(--u) * 14); font-family: var(--en); font-weight: 500; font-size: calc(var(--u) * 150); letter-spacing: .04em; line-height: 1; padding-left: .04em; }
.wstage__catch { margin-top: calc(var(--u) * 28); font-size: calc(var(--u) * 30); font-weight: 700; letter-spacing: .12em; line-height: 1.7; }
.wstage__catch span { display: block; }
.wstage__kid { position: absolute; height: auto; }
.wstage__kid--1 { left: calc(var(--u) * -10); top: calc(var(--u) * -10); width: calc(var(--u) * 310); rotate: -4deg; }
.wstage__kid--2 { left: calc(var(--u) * 30); bottom: calc(var(--u) * -10); width: calc(var(--u) * 280); rotate: 3deg; }
.wstage__kid--3 { right: calc(var(--u) * -10); top: calc(var(--u) * -10); width: calc(var(--u) * 320); rotate: 4deg; }
.wstage__kid--4 { right: calc(var(--u) * 30); bottom: calc(var(--u) * -10); width: calc(var(--u) * 270); rotate: -3deg; }
.wstage__kid--5 { left: calc(var(--u) * 360); bottom: calc(var(--u) * -40); width: calc(var(--u) * 220); rotate: 5deg; }
.wstage__kid--6 { right: calc(var(--u) * 370); bottom: calc(var(--u) * -40); width: calc(var(--u) * 220); rotate: -5deg; }
/* ワザワザの節（白い地・支給の絵の郷土玩具とロゴ） */
.waza-sec { background: #fff; overflow: clip; }
.wworld__eye { text-align: center; font-size: max(13px, calc(var(--u) * 20)); font-weight: 700; letter-spacing: .14em; color: var(--aka); }
.wworld { position: relative; width: calc(var(--u) * 1440); aspect-ratio: 1983 / 793; margin: calc(var(--u) * 30) auto 0; }
.wworld img { position: absolute; left: var(--x); top: var(--y); width: var(--w); height: auto; }
.wworld__toy { animation: toyBob var(--t) ease-in-out var(--d) infinite; }
@keyframes toyBob { 0%, 100% { translate: 0 0; rotate: 0deg; } 50% { translate: 0 calc(var(--u) * -10); rotate: 2deg; } }
.wworld__catch { margin-top: calc(var(--u) * 40); text-align: center; font-size: calc(var(--u) * 34); font-weight: 700; letter-spacing: .12em; line-height: 1.7; }
.wworld__catch span { display: block; }
.waza-sec .wnaze { border-color: var(--aka); }
.waza-sec .wnaze__t { color: var(--aka); }
.waza-sec .waza__steps li { background: var(--aka); color: #fff; }
.waza-sec .waza__steps li + li::before { border-color: var(--aka); }
.wnaze { position: relative; z-index: 2; width: calc(var(--u) * 1000); margin: calc(var(--u) * 110) auto 0; padding: calc(var(--u) * 70) calc(var(--u) * 90) calc(var(--u) * 76); border: 2px solid rgba(255, 255, 255, .7); border-radius: calc(var(--u) * 30); text-align: center; }
.wnaze__t { font-size: calc(var(--u) * 38); font-weight: 700; letter-spacing: .1em; line-height: 1.5; }
.wnaze p { margin-top: calc(var(--u) * 22); font-size: max(14px, calc(var(--u) * 20)); letter-spacing: .08em; line-height: 2; word-break: auto-phrase; }
.wnaze__t + p { margin-top: calc(var(--u) * 36); }
.wnaze .wnaze__key { margin-top: calc(var(--u) * 40); font-size: calc(var(--u) * 28); font-weight: 700; line-height: 1.7; }
.waza { display: grid; grid-template-columns: 1fr calc(var(--u) * 560); gap: calc(var(--u) * 110); align-items: center; margin-top: calc(var(--u) * 80); }
.waza__catch { font-size: calc(var(--u) * 42); font-weight: 700; letter-spacing: .1em; line-height: 1.6; }
.waza__txt > p:not(.waza__catch) { margin-top: calc(var(--u) * 24); font-size: max(14px, calc(var(--u) * 20)); letter-spacing: .08em; line-height: 2.1; }
.waza__catch + p { margin-top: calc(var(--u) * 36) !important; }
.waza__steps { display: flex; flex-wrap: wrap; align-items: center; gap: calc(var(--u) * 40); margin-top: calc(var(--u) * 36); }
.waza__steps li { position: relative; background: #fff; color: var(--aka); border-radius: 999px; padding: calc(var(--u) * 14) calc(var(--u) * 28); font-size: max(14px, calc(var(--u) * 19)); font-weight: 700; letter-spacing: .08em; line-height: 1.3; }
.waza__steps li + li::before { content: ""; position: absolute; left: calc(var(--u) * -30); top: 50%; width: calc(var(--u) * 16); height: calc(var(--u) * 16); border-top: 2px solid #fff; border-right: 2px solid #fff; transform: translateY(-50%) rotate(45deg); }
.waza__txt > p.waza__end { margin-top: calc(var(--u) * 36); font-size: calc(var(--u) * 26); font-weight: 700; }
.waza__pic { display: grid; place-items: center; aspect-ratio: 560 / 720; background: var(--bg); border-radius: 50% / 36%; }
.waza__pic img { max-height: 76%; max-width: 76%; width: auto; }
@media (max-width: 1024px) {
  .wstage { height: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--u) * 14) calc(var(--u) * 10); align-items: center; }
  .wstage__ttl { position: static; translate: none; grid-column: 1 / -1; width: auto; margin-bottom: calc(var(--u) * 16); }
  .wstage__eye { font-size: calc(var(--u) * 12); }
  .wstage__en { margin-top: calc(var(--u) * 8); font-size: calc(var(--u) * 54); }
  .wstage__catch { margin-top: calc(var(--u) * 14); font-size: calc(var(--u) * 16); letter-spacing: .08em; }
  .wstage__kid { position: static; width: 100% !important; }
  .wstage__kid:nth-of-type(3n+2) { margin-top: calc(var(--u) * 24); }
  .wworld { width: 100%; aspect-ratio: auto; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: calc(var(--u) * 10) calc(var(--u) * 6); align-items: center; justify-items: center; margin-top: calc(var(--u) * 18); }
  .wworld img { position: static; width: 100%; height: calc(var(--u) * 62); object-fit: contain; }
  .wworld .wworld__logo { grid-column: 1 / -1; grid-row: 2; width: 62%; height: auto; margin: calc(var(--u) * 12) 0; }
  .wworld__eye { font-size: calc(var(--u) * 12); }
  .wworld__catch { margin-top: calc(var(--u) * 22); font-size: calc(var(--u) * 17); letter-spacing: .06em; }
  .wnaze { width: 100%; margin-top: calc(var(--u) * 50); padding: calc(var(--u) * 36) calc(var(--u) * 20) calc(var(--u) * 40); border-radius: calc(var(--u) * 16); text-align: left; }
  .wnaze__t { font-size: calc(var(--u) * 20); text-align: center; }
  .wnaze p { margin-top: calc(var(--u) * 14); font-size: calc(var(--u) * 14); line-height: 1.95; letter-spacing: .04em; }
  .wnaze__t + p { margin-top: calc(var(--u) * 22); }
  .wnaze .wnaze__key { margin-top: calc(var(--u) * 22); font-size: calc(var(--u) * 16); text-align: center; }
  .waza { grid-template-columns: 1fr; gap: calc(var(--u) * 36); margin-top: calc(var(--u) * 36); }
  .waza__catch { font-size: calc(var(--u) * 21); }
  .waza__txt > p:not(.waza__catch) { margin-top: calc(var(--u) * 14); font-size: calc(var(--u) * 14); line-height: 2; }
  .waza__steps { flex-wrap: nowrap; gap: calc(var(--u) * 20); margin-top: calc(var(--u) * 20); }
  .waza__steps li { padding: calc(var(--u) * 8) calc(var(--u) * 10); font-size: calc(var(--u) * 12); letter-spacing: .02em; white-space: nowrap; }
  .waza__steps li + li::before { left: calc(var(--u) * -15); width: calc(var(--u) * 8); height: calc(var(--u) * 8); }
  .waza__txt > p.waza__end { font-size: calc(var(--u) * 16); }
  .waza__pic { width: calc(var(--u) * 240); margin: 0 auto; }
}

/* 11 章：5つの知恵 */
.chie__bg i { position: absolute; border-radius: 50%; background: url(img/shippo.svg) 0 0 / calc(var(--u) * 46) calc(var(--u) * 46); opacity: .55; -webkit-mask: radial-gradient(closest-side, #000 82%, transparent 100%); mask: radial-gradient(closest-side, #000 82%, transparent 100%); }
.chie { overflow: clip; }
.chie__bg i:nth-child(1) { width: calc(var(--u) * 640); height: calc(var(--u) * 640); right: calc(var(--u) * -200); top: calc(var(--u) * 40); }
.chie__bg i:nth-child(2) { width: calc(var(--u) * 360); height: calc(var(--u) * 360); left: calc(var(--u) * -100); bottom: calc(var(--u) * 60); }
.chie__list { display: grid; grid-template-columns: repeat(5, 1fr); gap: calc(var(--u) * 22); margin-top: calc(var(--u) * 70); }
.chie__item { background: #fff; padding: calc(var(--u) * 24) calc(var(--u) * 22) calc(var(--u) * 34); text-align: center; }
.chie__pic { height: calc(var(--u) * 220); }
.chie__pic img { max-height: calc(var(--u) * 186); max-width: 86%; width: auto; }
.chie__item h3 { margin-top: calc(var(--u) * 20); font-size: calc(var(--u) * 34); font-weight: 700; letter-spacing: .12em; line-height: 1.3; padding-left: .12em; }
.chie__item p { margin-top: calc(var(--u) * 12); font-size: max(13px, calc(var(--u) * 17)); letter-spacing: .04em; line-height: 1.85; text-align: left; }
.chie .prose { margin-top: calc(var(--u) * 56); }
@media (max-width: 1024px) {
  .chie__bg i { background-size: calc(var(--u) * 28) calc(var(--u) * 28); }
  .chie__list { grid-template-columns: 1fr; gap: calc(var(--u) * 10); margin-top: calc(var(--u) * 30); }
  .chie__item { display: grid; grid-template-columns: calc(var(--u) * 110) 1fr; gap: 0 calc(var(--u) * 16); align-items: center; padding: calc(var(--u) * 12); text-align: left; }
  .chie__pic { grid-row: 1 / span 2; height: calc(var(--u) * 100); }
  .chie__pic img { max-height: calc(var(--u) * 88); }
  .chie__item h3 { margin-top: 0; font-size: calc(var(--u) * 20); align-self: end; padding-left: 0; }
  .chie__item p { margin-top: calc(var(--u) * 4); font-size: calc(var(--u) * 13); align-self: start; }
  .chie .prose { margin-top: calc(var(--u) * 28); }
}

/* 13 ロードマップ */
.road__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--u) * 30); margin-top: calc(var(--u) * 70); counter-reset: r; }
.road__item { background: #fff; padding: calc(var(--u) * 28) calc(var(--u) * 30) calc(var(--u) * 40); }
.road__pic { height: calc(var(--u) * 260); background: var(--bg); }
.road__pic img { max-height: calc(var(--u) * 226); max-width: 86%; width: auto; }
.road__y { margin-top: calc(var(--u) * 22); font-family: var(--en); font-size: calc(var(--u) * 56); color: var(--aka); line-height: 1; letter-spacing: .02em; }
.road__y + p { margin-top: calc(var(--u) * 14); font-size: max(14px, calc(var(--u) * 19)); font-weight: 700; letter-spacing: .06em; line-height: 1.75; }
@media (max-width: 1024px) {
  .road__list { grid-template-columns: 1fr; gap: calc(var(--u) * 10); margin-top: calc(var(--u) * 30); }
  .road__item { display: grid; grid-template-columns: calc(var(--u) * 110) 1fr; gap: 0 calc(var(--u) * 16); align-items: center; padding: calc(var(--u) * 12); }
  .road__pic { grid-row: 1 / span 2; height: calc(var(--u) * 100); }
  .road__pic img { max-height: calc(var(--u) * 88); }
  .road__y { margin-top: 0; font-size: calc(var(--u) * 28); align-self: end; }
  .road__y + p { margin-top: calc(var(--u) * 4); font-size: calc(var(--u) * 13.5); align-self: start; }
}

/* 14 未来：枠の箱 */
.mirai__box { position: relative; width: calc(var(--u) * 1100); margin: 0 auto; }
.mirai__in { position: relative; z-index: 4; padding: calc(var(--u) * 110) calc(var(--u) * 90) calc(var(--u) * 116); text-align: center; }
.mirai__ttl { margin-top: calc(var(--u) * 25); font-size: calc(var(--u) * 46); font-weight: 700; letter-spacing: .1em; line-height: 1.6; }
.mirai__lines { margin-top: calc(var(--u) * 50); }
.mirai__lines li { font-size: max(14px, calc(var(--u) * 21)); letter-spacing: .1em; line-height: 2.5; }
.mirai__end { margin-top: calc(var(--u) * 40); font-size: max(15px, calc(var(--u) * 22)); font-weight: 700; letter-spacing: .1em; line-height: 1.9; color: var(--aka); }
@media (max-width: 1024px) {
  .mirai__box { width: calc(var(--u) * 345); }
  .mirai__in { padding: calc(var(--u) * 56) calc(var(--u) * 20) calc(var(--u) * 54); }
  .mirai__ttl { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 20); letter-spacing: .06em; }
  .mirai__lines { margin-top: calc(var(--u) * 26); text-align: center; }
  .mirai__lines li { font-size: calc(var(--u) * 14); line-height: 2; letter-spacing: .04em; }
  .mirai__lines li + li { margin-top: .6em; }
  .mirai__end { margin-top: calc(var(--u) * 22); font-size: calc(var(--u) * 14.5); text-align: center; letter-spacing: .04em; }
}

/* 15 一押し */

/* 16 流れ */
.flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(var(--u) * 28); margin-top: calc(var(--u) * 70); }
.flow__item { background: #fff; padding: calc(var(--u) * 28) calc(var(--u) * 28) calc(var(--u) * 40); }
.flow__pic { height: calc(var(--u) * 240); }
.flow__pic img { max-height: calc(var(--u) * 210); max-width: 86%; width: auto; }
.flow__item h3 { margin-top: calc(var(--u) * 10); font-size: calc(var(--u) * 24); font-weight: 700; letter-spacing: .08em; line-height: 1.5; }
@media (max-width: 1024px) {
  .flow { grid-template-columns: 1fr; gap: calc(var(--u) * 10); margin-top: calc(var(--u) * 30); }
  .flow__item { display: grid; grid-template-columns: calc(var(--u) * 110) 1fr; gap: 0 calc(var(--u) * 16); align-items: center; padding: calc(var(--u) * 12); }
  .flow__pic { grid-row: 1 / span 3; height: calc(var(--u) * 100); }
  .flow__pic img { max-height: calc(var(--u) * 88); }
  .flow__item .flow__no { margin-top: 0; align-self: end; }
  .flow__item h3 { margin-top: calc(var(--u) * 2); font-size: calc(var(--u) * 16); }
  .flow__item p:last-child { align-self: start; }
}

/* 17 参画枠 */
.plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--u) * 30); margin-top: calc(var(--u) * 70); }
.plans__item { background: #fff; border-top: calc(var(--u) * 6) solid var(--aka); padding: calc(var(--u) * 44) calc(var(--u) * 36) calc(var(--u) * 48); text-align: center; }
.plans--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(var(--u) * 22); }
.plans__pic { display: grid; place-items: center; height: calc(var(--u) * 200); margin-bottom: calc(var(--u) * 24); background: var(--bg); }
.plans__pic img { max-height: calc(var(--u) * 170); max-width: 80%; width: auto; }
.plans__k { font-size: max(15px, calc(var(--u) * 22)); font-weight: 700; letter-spacing: .1em; line-height: 1.4; }
.plans__k small { display: block; margin-top: calc(var(--u) * 6); font-size: max(12px, calc(var(--u) * 13)); font-weight: 500; color: #6b5f5c; }
.plans__p { margin-top: calc(var(--u) * 26); font-size: max(14px, calc(var(--u) * 22)); font-weight: 700; letter-spacing: .06em; }
.plans__p b { font-family: var(--en); font-weight: 500; font-size: calc(var(--u) * 104); line-height: 1; color: var(--aka); margin-right: .08em; }
.plans__y { margin-top: calc(var(--u) * 10); font-size: max(13px, calc(var(--u) * 16)); color: #6b5f5c; letter-spacing: .06em; }
.plans__base { margin-top: calc(var(--u) * 32); font-size: max(13px, calc(var(--u) * 17)); font-weight: 700; letter-spacing: .08em; color: var(--aka); }
.plans__list { margin-top: calc(var(--u) * 32); border-top: 2px solid var(--rule); text-align: left; }
.plans__base + .plans__list { margin-top: calc(var(--u) * 12); }
.plans__list li { padding: calc(var(--u) * 18) 0; border-bottom: 2px solid var(--rule); }
.plans__list b { display: block; position: relative; padding-left: 1.1em; font-size: max(14px, calc(var(--u) * 19)); letter-spacing: .06em; line-height: 1.6; }
.plans__list b::before { content: ""; position: absolute; left: 0; top: .55em; width: .5em; height: .5em; border-radius: 50%; background: var(--aka); }
.plans__list small { display: block; margin-top: calc(var(--u) * 8); word-break: auto-phrase; text-wrap: pretty; font-size: max(13px, calc(var(--u) * 15)); letter-spacing: .04em; line-height: 1.85; color: #4a3f3c; }
@media (max-width: 1024px) {
  .plans, .plans--4 { grid-template-columns: 1fr; gap: calc(var(--u) * 12); margin-top: calc(var(--u) * 30); }
  .plans__item { padding: calc(var(--u) * 24) calc(var(--u) * 20); border-top-width: 4px; }
  .plans__pic { height: calc(var(--u) * 130); margin-bottom: calc(var(--u) * 14); }
  .plans__pic img { max-height: calc(var(--u) * 112); }
  .plans__k { font-size: calc(var(--u) * 15); }
  .plans__p { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 15); }
  .plans__p b { font-size: calc(var(--u) * 60); }
  .plans__base { margin-top: calc(var(--u) * 18); font-size: calc(var(--u) * 13); }
  .plans__list { margin-top: calc(var(--u) * 18); }
  .plans__list li { padding: calc(var(--u) * 12) 0; }
  .plans__list b { font-size: calc(var(--u) * 15); }
  .plans__list small { font-size: calc(var(--u) * 13); }
}

/* 18 仲間一覧：111の席 */
.nakama__lead { margin-top: calc(var(--u) * 40); text-align: center; }
.nakama__lead p { font-size: max(14px, calc(var(--u) * 19)); letter-spacing: .08em; line-height: 2.1; }
.nakama__lead p + p { margin-top: 1.1em; }
.nakama__lead .nakama__key { margin-top: 1.6em; font-size: max(16px, calc(var(--u) * 28)); font-weight: 700; letter-spacing: .1em; line-height: 1.7; }
.nakama__in { display: grid; grid-template-columns: 1fr calc(var(--u) * 380); gap: calc(var(--u) * 90); align-items: center; margin-top: calc(var(--u) * 70); }
.dots { display: grid; grid-template-columns: repeat(15, 1fr); gap: calc(var(--u) * 14); }
.dots i { aspect-ratio: 1; border-radius: 50%; background: #fff; border: 2px solid #D9CFCC; }
.dots i:first-child { background: var(--aka); border-color: var(--aka); }
.nakama__card { background: #fff; padding: calc(var(--u) * 40) calc(var(--u) * 36); text-align: center; }
.nakama__k { display: inline-block; font-size: max(12px, calc(var(--u) * 14)); font-weight: 700; letter-spacing: .1em; color: var(--aka); border: 1.5px solid var(--aka); border-radius: 999px; padding: .2em 1em; }
.nakama__face { width: calc(var(--u) * 120); height: calc(var(--u) * 120); margin: calc(var(--u) * 24) auto 0; border-radius: 50%; background: var(--bg); border: 2px dashed #D9CFCC; }
.nakama__n { margin-top: calc(var(--u) * 18); font-size: max(16px, calc(var(--u) * 24)); font-weight: 700; letter-spacing: .1em; }
.nakama__o { margin-top: calc(var(--u) * 4); font-size: max(13px, calc(var(--u) * 15)); color: #6b5f5c; }
.nakama__c { margin-top: calc(var(--u) * 14); padding-top: calc(var(--u) * 14); border-top: 2px solid var(--rule); font-size: max(13px, calc(var(--u) * 16)); }
@media (max-width: 1024px) {
  .nakama__lead { margin-top: calc(var(--u) * 20); text-align: center; }
  .nakama__lead p { font-size: calc(var(--u) * 14); line-height: 2; letter-spacing: .04em; }
  .nakama__lead .nakama__key { font-size: calc(var(--u) * 17); }
  .nakama__in { grid-template-columns: 1fr; gap: calc(var(--u) * 30); margin-top: calc(var(--u) * 30); }
  .dots { grid-template-columns: repeat(11, 1fr); gap: calc(var(--u) * 7); }
  .dots i { border-width: 1.5px; }
  .nakama__card { padding: calc(var(--u) * 24) calc(var(--u) * 20); }
  .nakama__face { width: calc(var(--u) * 80); height: calc(var(--u) * 80); }
}

/* 19 資金の使い道（赤の節）＋会計（共通） */
.okane { background: var(--aka); color: #fff; }
.okane .note { color: #fff; }
.uses { display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--u) * 24); margin-top: calc(var(--u) * 70); }
.uses li { display: grid; grid-template-columns: calc(var(--u) * 70) 1fr; align-items: center; background: #fff; color: var(--ink); padding: calc(var(--u) * 34) calc(var(--u) * 40); font-size: max(15px, calc(var(--u) * 22)); font-weight: 700; letter-spacing: .06em; line-height: 1.6; }
.uses span { font-size: 1.6em; }
.acct { margin-top: calc(var(--u) * 70); background: #fff; color: var(--ink); padding: calc(var(--u) * 50) calc(var(--u) * 60); }
.acct__t { font-size: max(16px, calc(var(--u) * 24)); font-weight: 700; letter-spacing: .08em; }
.acct__dl { margin-top: calc(var(--u) * 20); }
.acct__dl div { display: grid; grid-template-columns: calc(var(--u) * 170) 1fr; gap: calc(var(--u) * 24); padding: calc(var(--u) * 18) 0; border-top: 2px solid var(--rule); }
.acct__dl dt { font-size: max(13px, calc(var(--u) * 16)); font-weight: 700; }
.acct__dl dd { font-size: max(14px, calc(var(--u) * 17)); line-height: 1.9; letter-spacing: .04em; }
.acct__dl dd b { display: block; font-size: 1.3em; color: var(--aka); }
.acct__dl dd span { display: block; font-size: .85em; color: #6b5f5c; }
.acct .small { margin-top: calc(var(--u) * 14); font-size: max(12px, calc(var(--u) * 13)); color: #6b5f5c; line-height: 1.8; }
@media (max-width: 1024px) {
  .uses { grid-template-columns: 1fr; gap: calc(var(--u) * 10); margin-top: calc(var(--u) * 30); }
  .uses li { grid-template-columns: calc(var(--u) * 40) 1fr; padding: calc(var(--u) * 16) calc(var(--u) * 18); font-size: calc(var(--u) * 14.5); }
  .acct { margin-top: calc(var(--u) * 36); padding: calc(var(--u) * 26) calc(var(--u) * 18); }
  .acct__t { font-size: calc(var(--u) * 16.5); }
  .acct__dl div { grid-template-columns: 1fr; gap: calc(var(--u) * 6); }
}

/* 20 実績 */
.acts { margin-top: calc(var(--u) * 70); border-top: 2px solid var(--rule); }
.acts div { display: grid; grid-template-columns: calc(var(--u) * 200) 1fr; gap: calc(var(--u) * 24); padding: calc(var(--u) * 28) 0; border-bottom: 2px solid var(--rule); }
.acts dt { font-size: max(13px, calc(var(--u) * 17)); font-weight: 700; color: var(--aka); letter-spacing: .08em; }
.acts dd { font-size: max(15px, calc(var(--u) * 20)); font-weight: 700; letter-spacing: .06em; line-height: 1.7; }
.acts dd small { display: block; margin-top: calc(var(--u) * 6); font-size: max(13px, calc(var(--u) * 16)); font-weight: 500; line-height: 1.9; }
@media (max-width: 1024px) {
  .acts { margin-top: calc(var(--u) * 32); }
  .acts div { grid-template-columns: 1fr; gap: calc(var(--u) * 4); padding: calc(var(--u) * 16) 0; }
  .acts dd { font-size: calc(var(--u) * 15); }
  .acts dd small { font-size: calc(var(--u) * 13); }
}

/* 21 協賛・連携 */
.kyo { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(var(--u) * 24); margin-top: calc(var(--u) * 60); }
.kyo li { background: #fff; padding: calc(var(--u) * 36) calc(var(--u) * 32); min-height: calc(var(--u) * 200); }
.kyo h3 { font-size: max(15px, calc(var(--u) * 20)); font-weight: 700; letter-spacing: .08em; }
.kyo p { margin-top: calc(var(--u) * 14); font-size: max(14px, calc(var(--u) * 18)); }
@media (max-width: 1024px) {
  .kyo { grid-template-columns: 1fr 1fr; gap: calc(var(--u) * 10); margin-top: calc(var(--u) * 30); }
  .kyo li { padding: calc(var(--u) * 18) calc(var(--u) * 14); min-height: calc(var(--u) * 100); }
  .kyo h3 { font-size: calc(var(--u) * 13.5); }
}

/* 22 OSUSO（中身は _共通 から） */
.osuso { display: grid; grid-template-columns: calc(var(--u) * 440) 1fr; gap: calc(var(--u) * 100); align-items: center; }
.osuso__logo img { width: 100%; }
.osuso .catch { margin-top: calc(var(--u) * 28); font-size: calc(var(--u) * 36); }
.ostats { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: calc(var(--u) * 70); border-top: 2px solid var(--rule); border-bottom: 2px solid var(--rule); }
.ostat { padding: calc(var(--u) * 32) calc(var(--u) * 20); text-align: center; border-right: 2px solid var(--rule); }
.ostat:last-child { border-right: 0; }
.ostat__l { font-size: max(13px, calc(var(--u) * 15)); font-weight: 700; letter-spacing: .06em; }
.ostat__n { margin-top: calc(var(--u) * 8); font-family: var(--en); font-weight: 500; font-size: calc(var(--u) * 72); line-height: 1.1; color: var(--aka); }
.ostat__n em { font-style: normal; font-family: var(--jp); font-size: .32em; font-weight: 700; color: var(--ink); margin-left: .15em; }
.subh { margin: calc(var(--u) * 100) 0 calc(var(--u) * 30); font-size: max(17px, calc(var(--u) * 28)); font-weight: 700; letter-spacing: .1em; line-height: 1.5; }
.l100 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--u) * 24); }
.lc { display: flex; flex-direction: column; min-width: 0; background: #fff; }
.lc__v { aspect-ratio: 16 / 9; overflow: hidden; background: #eee; }
.lc__v img { width: 100%; height: 100%; object-fit: cover; }
.lc__b { display: flex; flex-direction: column; gap: calc(var(--u) * 12); flex: 1; padding: calc(var(--u) * 24) calc(var(--u) * 26) calc(var(--u) * 28); }
.lc__name { font-size: max(15px, calc(var(--u) * 20)); font-weight: 700; letter-spacing: .06em; line-height: 1.5; }
.lc__hd { display: grid; grid-template-columns: calc(var(--u) * 52) minmax(0, 1fr) auto; gap: calc(var(--u) * 12); align-items: center; }
.lc__face { width: calc(var(--u) * 52); height: calc(var(--u) * 52); min-width: 40px; min-height: 40px; border-radius: 50%; object-fit: cover; }
.lc__person { font-size: max(12px, calc(var(--u) * 15)); font-weight: 700; line-height: 1.5; }
.lc__org { margin-top: 2px; font-size: max(12px, calc(var(--u) * 13)); color: #6b5f5c; line-height: 1.5; }
.lc__logo { max-width: calc(var(--u) * 70); max-height: calc(var(--u) * 40); object-fit: contain; }
.lc__lead { font-size: max(13px, calc(var(--u) * 15)); line-height: 1.9; }
.lc__tags { margin-top: auto; display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: max(12px, calc(var(--u) * 13)); color: #6b5f5c; }
.omem { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: calc(var(--u) * 36) calc(var(--u) * 24); }
.omem__ph { aspect-ratio: 1; overflow: hidden; border-radius: 50%; background: #e8e3e1; }
.omem__ph img { width: 100%; height: 100%; object-fit: cover; }
.omem__nick { margin-top: calc(var(--u) * 14); font-size: max(12px, calc(var(--u) * 14)); font-weight: 700; color: var(--aka); line-height: 1.4; }
.omem__n { margin-top: 2px; font-size: max(14px, calc(var(--u) * 18)); font-weight: 700; line-height: 1.5; }
.omem__r { margin-top: 2px; font-size: max(12px, calc(var(--u) * 13)); color: #6b5f5c; line-height: 1.5; }
.omem li { min-width: 0; overflow-wrap: anywhere; }
.omem__c { margin-top: calc(var(--u) * 8); font-size: max(12px, calc(var(--u) * 13)); line-height: 1.8; color: #4a3f3c; }
.osuso__link { margin-top: calc(var(--u) * 70); text-align: center; }
@media (max-width: 1024px) {
  .osuso { grid-template-columns: 1fr; gap: calc(var(--u) * 26); }
  .osuso__logo { width: calc(var(--u) * 220); margin: 0 auto; }
  .osuso .catch { font-size: calc(var(--u) * 19); }
  .ostats { grid-template-columns: 1fr; margin-top: calc(var(--u) * 32); }
  .ostat { border-right: 0; border-bottom: 2px solid var(--rule); padding: calc(var(--u) * 16); }
  .ostat:last-child { border-bottom: 0; }
  .ostat__n { font-size: calc(var(--u) * 44); }
  .subh { margin: calc(var(--u) * 56) 0 calc(var(--u) * 18); font-size: calc(var(--u) * 17); }
  .l100 { grid-template-columns: minmax(0, 1fr); gap: calc(var(--u) * 14); }
  .lc__b { padding: calc(var(--u) * 16) calc(var(--u) * 16) calc(var(--u) * 20); }
  .omem { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--u) * 22) calc(var(--u) * 12); }
  .osuso__link { margin-top: calc(var(--u) * 40); }
}

/* 23 最後のひとこと（赤・文字だけ） */
.cta { background: var(--aka); color: #fff; text-align: center; padding: calc(var(--u) * 220) 0 calc(var(--u) * 360); }
.cta__logo img { display: block; width: calc(var(--u) * 620); height: auto; margin: 0 auto; }
.cta__ttl { margin-top: calc(var(--u) * 44); font-size: calc(var(--u) * 52); font-weight: 700; letter-spacing: .14em; line-height: 1.6; padding-left: .14em; }
@media (max-width: 1024px) {
  .cta { padding: calc(var(--u) * 100) 0 calc(var(--u) * 170); }
  .cta__logo img { width: calc(var(--u) * 280); }
  .cta__ttl { margin-top: calc(var(--u) * 22); font-size: calc(var(--u) * 24); letter-spacing: .1em; }
}

/* 24 お申し込み：赤から生成りにまたがる赤枠の箱 */
.join { padding-top: 0; background: linear-gradient(var(--aka) 0 calc(var(--u) * 200), var(--bg) 0); }
.join .wrap { margin-top: calc(var(--u) * -140); }
.join__box { width: calc(var(--u) * 1200); margin: 0 auto; background: var(--bg); border: calc(var(--u) * 4) solid var(--aka); border-radius: calc(var(--u) * 30); padding: calc(var(--u) * 84) calc(var(--u) * 110) calc(var(--u) * 90); }
.join__q { margin-top: calc(var(--u) * 40); border-top: 2px solid var(--rule); }
.join__q li { position: relative; padding: calc(var(--u) * 20) 0 calc(var(--u) * 20) calc(var(--u) * 44); border-bottom: 2px solid var(--rule); font-size: max(14px, calc(var(--u) * 20)); font-weight: 700; letter-spacing: .06em; line-height: 1.7; }
.join__q li::before { content: ""; position: absolute; left: 0; top: calc(var(--u) * 20 + .45em); width: calc(var(--u) * 22); height: calc(var(--u) * 22); border-radius: 50%; border: 2px solid var(--aka); background: url(img/shippo.svg) center / 14px; }
.join__lead { margin-top: calc(var(--u) * 30); font-size: max(14px, calc(var(--u) * 20)); letter-spacing: .08em; line-height: 1.9; text-align: center; }
.join__btn { margin-top: calc(var(--u) * 36); text-align: center; }
.qr__note { margin-top: calc(var(--u) * 40); border-top: 2px solid var(--rule); }
.qr__note li { position: relative; padding: calc(var(--u) * 14) 0 calc(var(--u) * 14) calc(var(--u) * 22); border-bottom: 2px solid var(--rule); font-size: max(12px, calc(var(--u) * 14)); color: #6b5f5c; line-height: 1.7; }
.qr__note li::before { content: ""; position: absolute; left: 0; top: calc(var(--u) * 14 + .8em); width: 8px; height: 2px; background: var(--aka); }
.join__go { display: flex; align-items: center; justify-content: center; gap: calc(var(--u) * 64); margin-top: calc(var(--u) * 44); }
.join__qr { width: calc(var(--u) * 176); margin: 0; text-align: center; }
.join__qr img { display: block; width: 100%; height: auto; padding: calc(var(--u) * 12); background: #fff; border: 2px solid var(--rule); border-radius: calc(var(--u) * 12); }
.join__qr figcaption { margin-top: calc(var(--u) * 10); font-size: max(12px, calc(var(--u) * 13)); color: #6b5f5c; line-height: 1.6; letter-spacing: .06em; }
.join__act { text-align: center; }
.join__act-t { margin-bottom: calc(var(--u) * 22); font-size: max(15px, calc(var(--u) * 22)); font-weight: 700; letter-spacing: .08em; line-height: 1.6; }
@media (max-width: 1024px) {
  .join__go { flex-direction: column-reverse; gap: calc(var(--u) * 28); margin-top: calc(var(--u) * 28); }
  .join__qr { width: calc(var(--u) * 140); }
  .join__act-t { margin-bottom: calc(var(--u) * 16); font-size: calc(var(--u) * 16); }
}
@media (max-width: 1024px) {
  .join { background: linear-gradient(var(--aka) 0 calc(var(--u) * 80), var(--bg) 0); }
  .join .wrap { margin-top: calc(var(--u) * -60); }
  .join__box { width: 100%; padding: calc(var(--u) * 40) calc(var(--u) * 20) calc(var(--u) * 44); border-width: 3px; border-radius: calc(var(--u) * 16); }
  .join__q { margin-top: calc(var(--u) * 22); }
  .join__q li { padding: calc(var(--u) * 14) 0 calc(var(--u) * 14) calc(var(--u) * 30); font-size: calc(var(--u) * 14); }
  .join__q li::before { top: calc(var(--u) * 14 + .4em); width: calc(var(--u) * 18); height: calc(var(--u) * 18); }
  .join__lead { font-size: calc(var(--u) * 14); }
}


/* 2b 代表のあゆみ（独立した節） */
.ayumi-sec .ayumi { margin-top: 0; }
.ayumi__photo { width: calc(var(--u) * 300); margin-top: calc(var(--u) * 48); }
.ayumi__photo img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 50% 50% 0 0 / 37.5% 37.5% 0 0; }
@media (max-width: 1024px) {
  .ayumi__photo { width: calc(var(--u) * 180); margin-top: calc(var(--u) * 22); }
}

/* 4 現状の締めの一文（大きく強調） */
.genjo__close { margin-top: calc(var(--u) * 110); text-align: center; font-size: calc(var(--u) * 44); font-weight: 700; letter-spacing: .1em; line-height: 1.75; }
.genjo__close .gap { margin-top: .8em; }
@media (max-width: 1024px) {
  .genjo__close { margin-top: calc(var(--u) * 56); font-size: calc(var(--u) * 20); letter-spacing: .04em; }
}

/* 12b 体験プログラムの例 */
.taiken__card { display: grid; grid-template-columns: calc(var(--u) * 560) minmax(0, 1fr); gap: calc(var(--u) * 80); align-items: center; margin-top: calc(var(--u) * 70); background: #fff; padding: calc(var(--u) * 60); }
.taiken__card + .taiken__card { margin-top: calc(var(--u) * 30); }
.taiken__card--rev { grid-template-columns: minmax(0, 1fr) calc(var(--u) * 560); }
.taiken__card--rev .taiken__pic { order: 2; }
.taiken__pic { display: grid; place-items: center; aspect-ratio: 1; background: var(--bg); border-radius: 50%; }
.taiken__pic img { max-width: 70%; max-height: 70%; width: auto; }
.taiken__tag { display: inline-block; font-size: max(12px, calc(var(--u) * 15)); font-weight: 700; letter-spacing: .12em; color: var(--aka); border: 1.5px solid var(--aka); border-radius: 999px; padding: .3em 1.1em; line-height: 1.5; }
.taiken__txt h3 { margin-top: calc(var(--u) * 22); font-size: calc(var(--u) * 42); font-weight: 700; letter-spacing: .08em; line-height: 1.5; }
.taiken__txt h3 + p { margin-top: calc(var(--u) * 28); }
.taiken__txt p:not(.taiken__tag) { font-size: max(14px, calc(var(--u) * 19)); letter-spacing: .06em; line-height: 2; }
.taiken__txt p + p { margin-top: calc(var(--u) * 10); }
.taiken .note { margin-top: calc(var(--u) * 28); }
.tcats { margin-top: calc(var(--u) * 40); background: #fff; padding: calc(var(--u) * 50) calc(var(--u) * 60); }
.tcats__t { font-size: calc(var(--u) * 26); font-weight: 700; letter-spacing: .1em; line-height: 1.5; text-align: center; }
.tcats__list { margin-top: calc(var(--u) * 26); border-top: 2px solid var(--rule); }
.tcats__list div { display: grid; grid-template-columns: calc(var(--u) * 250) minmax(0, 1fr); gap: calc(var(--u) * 24); align-items: center; padding: calc(var(--u) * 18) 0; border-bottom: 2px solid var(--rule); }
.tcats__list dt { font-size: max(14px, calc(var(--u) * 18)); font-weight: 700; letter-spacing: .08em; line-height: 1.6; }
.tcats__list dd { display: flex; flex-wrap: wrap; gap: calc(var(--u) * 10); }
.tcats__list dd span { background: var(--bg); border-radius: 999px; padding: .35em 1.1em; font-size: max(13px, calc(var(--u) * 16)); font-weight: 700; letter-spacing: .06em; line-height: 1.5; }
@media (max-width: 1024px) {
  .taiken__card { grid-template-columns: minmax(0, 1fr); gap: calc(var(--u) * 24); margin-top: calc(var(--u) * 30); padding: calc(var(--u) * 24) calc(var(--u) * 20) calc(var(--u) * 28); }
  .taiken__pic { width: calc(var(--u) * 220); margin: 0 auto; }
  .taiken__card + .taiken__card { margin-top: calc(var(--u) * 14); }
  .taiken__card--rev { grid-template-columns: minmax(0, 1fr); }
  .taiken__card--rev .taiken__pic { order: 0; }
  .taiken__txt h3 { margin-top: calc(var(--u) * 12); font-size: calc(var(--u) * 21); }
  .taiken__txt h3 + p { margin-top: calc(var(--u) * 14); }
  .taiken__txt p:not(.taiken__tag) { font-size: calc(var(--u) * 14); line-height: 1.9; }
  .tcats { margin-top: calc(var(--u) * 20); padding: calc(var(--u) * 24) calc(var(--u) * 18); }
  .tcats__t { font-size: calc(var(--u) * 17); }
  .tcats__list { margin-top: calc(var(--u) * 14); }
  .tcats__list div { grid-template-columns: minmax(0, 1fr); gap: calc(var(--u) * 8); padding: calc(var(--u) * 14) 0; }
  .tcats__list dt { font-size: calc(var(--u) * 14); }
  .tcats__list dd { gap: calc(var(--u) * 6); }
  .tcats__list dd span { font-size: calc(var(--u) * 12.5); }
}

/* メモ機能（?memo=1）の帯は、固定表示の表紙より上に出す */
.memoall { position: relative; z-index: 3; }

/* ---------- フッター ---------- */
.ft { position: relative; z-index: 2; }
.ft__upper { background: var(--aka); color: #fff; padding: calc(var(--u) * 110) calc(var(--u) * 48) calc(var(--u) * 52); text-align: center; }
.ft__by { display: inline-flex; align-items: center; gap: .8em; font-family: var(--en); font-size: max(13px, calc(var(--u) * 18)); letter-spacing: .12em; }
.ft__by img { width: calc(var(--u) * 60); height: auto; min-width: 40px; }
.ft__credit { margin-top: calc(var(--u) * 40); font-size: max(11px, calc(var(--u) * 13)); letter-spacing: .04em; line-height: 1.8; opacity: .85; }
.ft__copy { margin-top: calc(var(--u) * 14); font-family: var(--en); font-size: max(11px, calc(var(--u) * 12)); letter-spacing: .06em; }
.ft__lower { position: relative; padding: calc(var(--u) * 80) 0 calc(var(--u) * 70); overflow: clip; background: var(--bg) url(img/noise.png); background-blend-mode: multiply; }
.ft__lower::before { content: ""; position: absolute; inset: 0; background: var(--bg); opacity: .94; }
.ft__logo { position: relative; }
.ft__logo img { display: block; width: calc(var(--u) * 1200); height: auto; margin: 0 auto; }
@media (max-width: 1024px) {
  .ft__upper { padding: calc(var(--u) * 60) calc(var(--u) * 20) calc(var(--u) * 90); }
  .ft__lower { padding: calc(var(--u) * 36) 0 calc(var(--u) * 100); }
  .ft__logo img { width: calc(var(--u) * 330); }
}

/* 手描きの郷土玩具の絵（白い地のまま）を置く枠は白に（11/12 新田さんメモ107〜111）。各節の指定より後ろに置く */
.pillar__pic, .chie__pic, .flow__pic, .plans__pic, .taiken__pic { background: #fff; }

/* 追従ボタン（2026-11-13 新田さんSlack「ギラついてる仕様に変更されてたので笑 田んぼ倶楽部みたいなボタンにしたい」）
   田んぼ倶楽部 lp-v2 の .fab と同じ形: 丸・縁に英字がゆっくり回る・中に「ニッポン／伝承家」と矢印・左上からだるまがのぞく。
   表紙を過ぎたら右下に出し、申込の節とフッターが見えている間は隠す（app.js）。SPは MENU の上。前の版は _解剖/style_before_fab_tanbo.css */
.fab { position: fixed; right: 28px; bottom: calc(28px + env(safe-area-inset-bottom)); z-index: 60; display: block; width: 124px; height: 124px; text-decoration: none; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .35s, visibility .35s, transform .35s var(--ease); }
.is-past-fv .fab { opacity: 1; visibility: visible; transform: none; }
.is-past-fv .fab.is-hide { opacity: 0; visibility: hidden; transform: translateY(16px); }
.fab__c { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; border-radius: 50%; background: var(--aka); color: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.22); transition: transform .3s var(--ease); }
@media (hover: hover) { .fab:hover .fab__c { transform: scale(1.06); } }
.fab__ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: fabspin 16s linear infinite; }
.fab__ring text { font-family: var(--en); font-weight: 600; font-size: 9px; fill: #fff; letter-spacing: .08em; }
.fab__t { display: flex; flex-direction: column; align-items: center; font-weight: 700; font-size: 20px; line-height: 1.15; letter-spacing: .06em; }
.fab__t small { margin-bottom: 3px; font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.fab__c i { width: 20px; height: 20px; margin-top: 5px; background: #fff; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z'/%3E%3C/svg%3E") center/14px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z'/%3E%3C/svg%3E") center/14px no-repeat; }
.fab__ch { position: absolute; left: -8px; top: -30px; z-index: -1; width: auto; height: 60px; transform-origin: 50% 100%; animation: fabjitter 2.2s steps(1) infinite; pointer-events: none; }
.memo-on .fab { display: none; }
@keyframes fabspin { to { transform: rotate(360deg); } }
@keyframes fabjitter { 0%, 58%, 100% { transform: translateY(0) rotate(0); } 62% { transform: translateY(-8%) rotate(-8deg); } 68% { transform: translateY(0) rotate(7deg); } 74% { transform: translateY(-5%) rotate(-5deg); } 80% { transform: translateY(0) rotate(3deg); } }
/* 1024px以下は MENU が下中央に来るので、その上へ逃がす（MENU 上端＝下から約46px） */
@media (max-width: 1024px) { .fab { right: 12px; bottom: calc(var(--hu) * 58 + 4px + env(safe-area-inset-bottom)); } }
@media (max-width: 720px) {
  .fab { width: 102px; height: 102px; }
  .fab__t { font-size: 17px; }
  .fab__t small { font-size: 10px; }
  .fab__c i { margin-top: 3px; }
  .fab__ch { left: -8px; top: -24px; height: 50px; }
}
