@charset "UTF-8";
/* =========================================================================
   スクラム・コモンズ LP  Ver5
   Figma「20260925」(node 203:8030 / 1440×16929) をもとに実装
   - 設計は SP ファースト。PC は min-width:768px で上書きする
   - 外部ドメインの読み込みは一切なし（金融機関サイトの納品要件）
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. フォント
   Gen Interface JP Display … SIL OFL 1.1 / https://gen.typesetting.jp/
   Noto Serif JP            … SIL OFL 1.1（游明朝が無い環境向けのフォールバック）
   いずれも本ページで使う文字だけにサブセット化済み（tools/subset-fonts.py）
   ------------------------------------------------------------------------- */
@font-face{
  font-family:"Gen Interface JP Display";
  src:url("../fonts/GenInterfaceJPDisplay-Regular.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Gen Interface JP Display";
  src:url("../fonts/GenInterfaceJPDisplay-Medium.woff2") format("woff2");
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Gen Interface JP Display";
  /* 700 も SemiBold を使う。Figma に Bold の指定が無く、合成ボールドを避けるため */
  src:url("../fonts/GenInterfaceJPDisplay-SemiBold.woff2") format("woff2");
  font-weight:600 700; font-style:normal; font-display:swap;
}
@font-face{
  /* Figma の指定は Futura PT Heavy（有償・自己ホスト不可）。
     SIL OFL の Futura リバイバルである Jost で代替している */
  font-family:"Jost Subset";
  src:url("../fonts/Jost-Heavy.woff2") format("woff2");
  font-weight:800; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Noto Serif JP Subset";
  src:url("../fonts/NotoSerifJP-SemiBold.woff2") format("woff2");
  font-weight:600 700; font-style:normal; font-display:swap;
}

/* -------------------------------------------------------------------------
   2. デザイントークン（Figma variables の実測値）
   ------------------------------------------------------------------------- */
:root{
  --primary:#C71C3A;
  --primary-dp:#DC1538;
  --primary-pale:#FBEFF1;
  --black:#202020;
  --text:#424242;
  --gray:#606060;
  --contact-gray:#ABABAB;
  --line-gray:#E9E9E9;
  --bg:#FCFCFC;
  --bg-white:#FCFCFC;
  /* 白いカードの上に乗る小さなチップの下地。--bg と同値にすると消えるため分離 */
  --chip:#FAF7F2;
  --white:#FFFFFF;
  --bg-60:rgba(255,255,255,.6);

  --shadow:0 0 24px 0 rgba(236,229,217,.4);
  --shadow-card:0 0 24px 4px rgba(201,201,201,.1);
  --shadow-cta:0 4px 20px 4px rgba(37,37,37,.2);
  --shadow-pill:0 0 24px 0 rgba(236,229,217,.2);

  --sans:"Gen Interface JP Display",system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif;
  /* 見出しの明朝。Figma は游明朝 Demibold 指定＝OS標準フォントのため、
     游明朝の無い環境（Android 等）は自己ホストの Noto Serif JP に落ちる */
  --mincho:"Yu Mincho",YuMincho,"YuMincho","Hiragino Mincho ProN","Noto Serif JP Subset",serif;
  --jost:"Jost Subset",var(--sans);

  --gut:20px;          /* SP の左右余白 */
  --header-h:60px;
}

/* -------------------------------------------------------------------------
   3. ベース
   ------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg-white);
  color:var(--text);
  font-family:var(--sans);
  font-size:15px;
  font-weight:500;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{max-width:100%; height:auto; display:block;}
a{color:inherit;}
ul,ol,dl,dd{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4,p,figure{margin:0;}
button{font:inherit; color:inherit; background:none; border:0; cursor:pointer;}
:focus-visible{outline:3px solid var(--primary); outline-offset:2px; border-radius:2px;}

.wrap{width:100%; max-width:calc(1152px + var(--gut)*2); margin-inline:auto; padding-inline:var(--gut);}
.wrap--narrow{max-width:calc(872px + var(--gut)*2);}
.wrap--mid{max-width:calc(1008px + var(--gut)*2);}
.wrap--wide{max-width:calc(1344px + var(--gut)*2);}
/* SP でだけ効かせたい改行 */
br.br-sp{display:none;}
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* 見出しの型 */
.mincho{font-family:var(--mincho); font-weight:600; line-height:1.4;}
.sec-title{font-size:22px; color:var(--black); text-align:center;}
.sec-title--red{color:var(--primary);}
.sec-lead{
  margin-top:20px; font-size:14px; line-height:1.9;
  color:var(--text); text-align:center;
}
/* 本文中の外部リンク。STEP 図・GOB 本文と同じ赤＋下線で揃える。
   nowrap は、行末で固有名詞が割れて下線が分断されるのを防ぐため */
.sec-lead a,.merit__body a{color:var(--primary); font-weight:600; text-decoration:underline;}
.sec-lead a,.merit__body a,.gob__body a{white-space:nowrap;}
.sec-lead a:hover,.merit__body a:hover,
.steps__label a:hover,.steps-tx a:hover,.gob__body a:hover{opacity:.7;}
.sec{padding-block:64px;}
.sec--bg{background:var(--bg);}
.sec--white{background:var(--bg-white);}

/* Figma の <br> は 1440px 前提の字送り。SP では無効にして自然に折り返す
   （日付バッジや図版内など、SP でも意味のある改行は対象外） */
@media (max-width:767.98px){
  /* class="br-sp" を付けた改行だけは SP でも残す。
     課題提起カード・セクション見出し・共同創業者の注記は、
     PC の改行位置がそのまま SP でも成立するのでリストから外している */
  .fv__title br:not(.br-sp), .fv__lead br:not(.br-sp),
  .sec-lead br:not(.br-sp),
  .worry__title br:not(.br-sp),
  .shift p br:not(.br-sp),
  .merit__body br:not(.br-sp), .gob__body br:not(.br-sp), .risk__body br:not(.br-sp),
  .record__body br:not(.br-sp), .record__closing br:not(.br-sp),
  .ctablock__lead br:not(.br-sp), .entry__lead br:not(.br-sp), .amb__lead br:not(.br-sp),
  .timeline__body br:not(.br-sp),
  br.br-pc{
    display:none;
  }
  br.br-sp{display:inline;}
}

/* スクロール連動フェードイン */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1; transform:none;}

/* -------------------------------------------------------------------------
   4. 共通ボタン（二重ピル）
   外側の半透明ピルの内側に、本体のピルが乗る Figma の構造をそのまま再現
   ------------------------------------------------------------------------- */
.pill{
  display:inline-flex; align-items:center; justify-content:center;
  padding:4px; border-radius:128px;
  background:var(--bg-60); box-shadow:var(--shadow-pill);
  text-decoration:none;
}
.pill__body{
  display:flex; align-items:center; justify-content:center;
  width:100%; border-radius:128px;
  background:var(--primary); color:var(--white);
  font-weight:600; line-height:1; text-align:center;
  transition:background-color .2s ease;
}
.pill:hover .pill__body{background:#A81530;}
.pill--lg{width:100%; max-width:332px;}
.pill--lg .pill__body{min-height:64px; padding:0 20px; font-size:17px;}
.pill--sm .pill__body{min-height:44px; padding:0 22px; font-size:14px;}
/* 白抜き（赤背景のCTAブロック用） */
.pill--invert{background:rgba(255,255,255,.25);}
.pill--invert .pill__body{background:var(--white); color:var(--primary);}
.pill--invert:hover .pill__body{background:#F6E7EA;}

/* ＼ 入力無料・所要時間30秒 ／ */
.pill-note{
  display:flex; align-items:center; justify-content:center; gap:10px;
  margin-bottom:12px; font-size:13px; font-weight:500; color:var(--black);
}
.pill-note::before,.pill-note::after{
  content:""; width:2px; height:15px; background:currentColor; border-radius:2px;
}
.pill-note::before{transform:rotate(-20deg);}
.pill-note::after{transform:rotate(20deg);}
.pill-note--invert{color:var(--white);}

/* -------------------------------------------------------------------------
   5. ヘッダー
   ------------------------------------------------------------------------- */
.hd{
  position:fixed; inset:0 0 auto; z-index:50;
  height:var(--header-h);
  display:flex; align-items:center;
  transition:background-color .25s ease, box-shadow .25s ease;
}
.hd.is-solid{background:rgba(255,255,255,.95); box-shadow:0 1px 0 rgba(0,0,0,.06); backdrop-filter:blur(8px);}
.hd__inner{display:flex; align-items:center; justify-content:flex-end; gap:24px; width:100%;}
.hd__nav{display:none;}
.hd__nav a{
  font-size:16px; font-weight:500; color:var(--black); text-decoration:none;
  white-space:nowrap;
}
.hd__nav a:hover{color:var(--primary);}
.hd .pill--sm{flex:none;}

/* -------------------------------------------------------------------------
   6. ファーストビュー
   ------------------------------------------------------------------------- */
.fv{position:relative; overflow:hidden; background:var(--bg-white);}
.fv__inner{position:relative; z-index:2; padding-top:calc(var(--header-h) + 28px); padding-bottom:40px; text-align:center;}
.fv__title{font-size:36px; color:var(--primary); letter-spacing:.02em; line-height:1.35;}
/* 375px では「はじめなくていい。」が 330px、入る幅が 335px しかない。
   それより狭い端末は3行に割れるので、幅に追随させる */
@media (max-width:374.98px){
  .fv__title{font-size:9.4vw;}
}
.fv__sub{margin-top:14px; font-size:21px; color:var(--primary); line-height:1.4;}
.fv__lead{margin-top:18px; font-size:14px; line-height:1.9; color:var(--black);}
.fv__brand{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; margin-top:26px;}
.fv__brand-name{font-size:16px; font-weight:600; color:var(--primary); line-height:1.4;}
.fv__brand-tag{
  padding:6px 14px; border-radius:6px;
  background:var(--primary); color:var(--white);
  font-size:15px; font-weight:600; line-height:1.4;
}
.fv__cta{margin-top:34px; text-align:center;}
/* 背景の波形と等高線 */
.fv__wave,.fv__contour{position:absolute; z-index:1; pointer-events:none;}
/* 装飾オブジェクトは PC のみ。SP は出さない */
.fv__deco{display:none;}
.fv__wave{right:-30%; bottom:0; width:150%; max-width:none;}
.fv__contour{left:0; top:0; width:70%; opacity:.9;}

/* -------------------------------------------------------------------------
   7. 募集概要ストリップ
   ------------------------------------------------------------------------- */
.facts{position:relative; z-index:3; margin-top:-20px; padding-bottom:56px; background:transparent;}
.facts__grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px;}
.facts__card{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  padding:18px 10px 20px;
  background:var(--white); border-radius:10px; box-shadow:var(--shadow);
}
.facts__icon{width:48px; height:48px; margin-bottom:2px;}
.facts__label{font-size:14px; font-weight:600; color:var(--black); line-height:1;}
.facts__value{
  display:flex; align-items:baseline; justify-content:center; gap:1px;
  color:var(--black); font-weight:600; line-height:1;
}
.facts__num{font-size:30px; letter-spacing:-.01em;}
.facts__unit{font-size:15px;}
.facts__tags{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:4px; margin-top:4px;}
.facts__tag{
  padding:5px 8px 4px; border-radius:4px; background:var(--chip);
  font-size:11px; font-weight:500; color:var(--black); line-height:1;
}
.facts__plus{font-size:13px; font-weight:500; color:var(--black); line-height:1;}

/* -------------------------------------------------------------------------
   8. 課題提起（こんなことで、困っていませんか？）
   ------------------------------------------------------------------------- */
.worry{position:relative; padding-bottom:0; background:var(--bg);}
/* 見出しの左右に添えるドット。装飾なので擬似要素で置き、DOM には出さない */
.worry::before,.worry::after,
.field::before,.field::after{
  content:""; position:absolute; top:22px; z-index:0;
  background-repeat:no-repeat; background-size:contain;
  pointer-events:none;
}
.worry::before{left:12px;  width:84px; height:38px; background-image:url("../img/dots-5x3.png");}
.worry::after {right:12px; width:38px; height:84px; background-image:url("../img/dots-3x5.png");}
.field::before{left:12px;  width:38px; height:84px; background-image:url("../img/dots-3x5.png");}
.field::after {right:12px; width:73px; height:38px; background-image:url("../img/dots-4x3.png");}
/* 本文はドットより前面に */
.worry > .wrap,.field > .wrap{position:relative; z-index:1;}
/* SP は見出しの脇に余地がないので、セクション上部の余白（64px）に収まる
   横型2つに差し替える。縦型（3×5）は PC だけで使う */
@media (max-width:767.98px){
  .worry::before,.field::before{
    left:10px; top:18px; width:66px; height:30px;
    background-image:url("../img/dots-5x3.png");
  }
  .worry::after,.field::after{
    right:10px; top:18px; width:57px; height:30px;
    background-image:url("../img/dots-4x3.png");
  }
}
/* 見出しの上のターゲットアイコン。Figma は 71px・見出しとの間隔 20px */
.worry__icon{display:block; width:48px; height:48px; margin:0 auto 14px;}
.worry__title{font-size:22px; color:var(--black); text-align:center; line-height:1.5;}
.worry__cards{
  display:flex; flex-wrap:wrap; justify-content:center; gap:32px;
  margin-top:40px;
}
.worry__card{width:100%;}
.worry__card{text-align:center;}
.worry__card img{width:200px; margin-inline:auto;}
.worry__card p{margin-top:8px; font-size:14px; font-weight:500; color:var(--text); line-height:1.7;}
.worry__card strong{font-weight:600; color:var(--black);}

/* 吹き出し群
   SP：左列に4つ・右列に2つ。右列を2段で止めて、右下に立つ人物に被らせない
   PC：Figma どおりイラストへの重ね配置 */
.bubbles{
  position:relative;
  display:grid; grid-template-columns:1fr 1fr;
  gap:10px 8px; align-items:start;
  /* 375px 基準の組み。これより広い端末では拡大せず中央に置く。
     イラストは高さがこの箱の下端に張り付くため、上限を外すと
     イラストだけが伸びて人物が吹き出しの下に潜り込む */
  max-width:335px; margin:40px auto 0; padding-bottom:28px;
}
/* イラストは背面に敷く。吹き出しと重なってよい */
.bubbles__art{
  position:absolute; left:50%; bottom:0; z-index:0;
  width:86%; margin:0; transform:translateX(-50%);
}
.bubbles__item{
  position:relative; z-index:1;
  padding:12px 14px; border-radius:12px;
  background:var(--white); box-shadow:var(--shadow-card);
  font-size:14px; font-weight:600; color:var(--black); line-height:1.5;
}
.bubbles__item::after{
  content:""; position:absolute; left:20px; bottom:-8px;
  border:8px solid transparent; border-top-color:var(--white); border-bottom:0;
}
/* SP だけの配置。左列に4つ、右列は2段で打ち止めにして右下を人物に空ける。
   左列を 1・4・5・6 にしているのは、同じ「検証資金がない」を縦に並べないため。
   ずらしは右上の1つだけ。右列の2段目に掛けると人物の頭に触れる */
@media (max-width:767.98px){
  .bubbles__item:nth-of-type(1){grid-area:1 / 1;}
  .bubbles__item:nth-of-type(2){grid-area:1 / 2; margin-top:14px;}
  .bubbles__item:nth-of-type(3){grid-area:2 / 2;}
  .bubbles__item:nth-of-type(4){grid-area:2 / 1;}
  .bubbles__item:nth-of-type(5){grid-area:3 / 1;}
  .bubbles__item:nth-of-type(6){grid-area:4 / 1;}
}

/* -------------------------------------------------------------------------
   9. 「事業化前は一人でつくる」という常識を変える。
   ------------------------------------------------------------------------- */
.shift{padding-block:72px; background:var(--bg); text-align:center;}
/* Figma は2行それぞれに黒帯を文字幅ぴったりで敷き、文字は白。
   帯は 626x72 / 528x72（48px の文字・行送り1.5）で左右の余白はほぼゼロ */
.shift p{
  display:block; width:fit-content; margin-inline:auto;
  padding:0 4px;
  background:var(--black); color:var(--white);
  font-size:22px; line-height:1.5;
}
.shift p + p{margin-top:12px;}

/* -------------------------------------------------------------------------
   10. 秋田銀行が、共同創業者になる。
   ------------------------------------------------------------------------- */
.cofounder{position:relative; background:var(--bg);}
.cofounder__photo{position:relative; height:248px; overflow:hidden;}
/* 写真は上寄せ。中央基準だと人物の顔が切れるため */
.cofounder__photo picture img{width:100%; height:100%; object-fit:cover; object-position:center 22%;}
.cofounder__photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(32,32,32,.54) 26.7%,rgba(32,32,32,.24) 96.7%);
}
/* 上辺中央の V 字の切り欠き（Figma の実アセット） */
.cofounder__notch{
  position:absolute; left:50%; top:0; z-index:2;
  width:160px; height:auto; max-width:none; transform:translateX(-50%);
}
.cofounder__title{
  position:absolute; left:50%; top:70%; z-index:2;
  transform:translate(-50%,-50%);
  width:100%; padding:8px 12px; background:var(--primary); color:var(--white);
  font-size:23px; text-align:center; white-space:nowrap; line-height:1.4;
}

/* -------------------------------------------------------------------------
   11. スクラム図（足りないものは、こちらで用意します。）
   ------------------------------------------------------------------------- */
.scrum{
  background:var(--bg) url("../img/bg-scrum.webp") center top/cover;
}

/* SP：Figma と同じ円配置のまま全体を1画面に収める。
   円の中は見出しだけにし、説明文は図の下のリストへ移す（app.js が移動）。
   Figma 816×717 の実測比率で配置している。 */
.scrum__diagram{
  --s:min(816px, calc(100vw - var(--gut) * 2));
  position:relative; width:100%; max-width:816px; margin:32px auto 0;
  aspect-ratio:816 / 717;
}
.scrum__halo,.scrum__core{position:absolute;}
.scrum__halo{left:16.30%; top:22.32%; width:67.40%;}
.scrum__core{left:21.20%; top:34.59%; width:57.60%;}

.scrum__center{display:contents;}
.scrum__center span{
  position:absolute; top:40.17%; width:19.61%;
  display:flex; align-items:center; justify-content:center;
  aspect-ratio:1; border-radius:50%;
  font-size:12px; font-weight:600; line-height:1.2; text-align:center;
}
.scrum__center .is-founder{left:26.10%; background:var(--white); color:var(--primary);}
.scrum__center .is-bank{left:54.41%; background:var(--primary); color:var(--white);}

.scrum__nodes{display:contents;}
.scrum__node{
  position:absolute;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  aspect-ratio:1; border-radius:50%; padding:6px;
  text-align:center;
  border:3px solid transparent;
  background-image:linear-gradient(var(--white),var(--white)),
                   linear-gradient(140deg,#F3C3CD,var(--primary));
  background-origin:border-box;
  background-clip:padding-box,border-box;
  box-shadow:var(--shadow-card);
}
.scrum__node--company{left:0;       top:7.81%;  width:29.41%;}
.scrum__node--juku   {left:35.29%;  top:0;      width:29.41%;}
.scrum__node--senpai {left:70.59%;  top:7.81%;  width:29.41%;}
.scrum__node--jr     {left:18.63%;  top:69.87%; width:26.47%;}
.scrum__node--mentor {left:54.90%;  top:69.87%; width:26.47%;}

.scrum__node b{
  display:block; font-weight:600; color:var(--primary); line-height:1.3;
  font-size:12px;
}
.scrum__node--jr b,.scrum__node--mentor b{font-size:11px;}
.scrum__node small{
  display:block; margin-top:.4em; font-weight:500; color:var(--text); line-height:1.5;
}
.scrum__stat{
  display:flex; align-items:baseline; justify-content:center; gap:3px;
  margin-top:.4em; color:var(--primary); font-weight:600;
}
.scrum__stat i{font-style:normal;}
.scrum__stat u{text-decoration:none;}
.scrum__src{color:var(--gray); line-height:1.4;}

/* SP：説明は円の外（ポップアップ）に出すので、円の中では隠す */
.scrum__node .scrum__detail{display:none;}

/* 円を覆う透明なボタン。押せることは右下の「＋」で示す */
.scrum__open{
  position:absolute; inset:0; z-index:2;
  width:100%; height:100%; padding:0;
  border-radius:50%; background:none;
}
.scrum__plus{
  position:absolute; right:6%; bottom:6%;
  display:flex; align-items:center; justify-content:center;
  width:20px; height:20px; border-radius:50%;
  background:var(--primary); color:var(--white);
  font-size:11px; font-weight:600; line-height:1;
}
.scrum__open:focus-visible{outline:3px solid var(--primary); outline-offset:3px;}

/* 円の説明のポップアップ */
.scrum__modal{
  position:fixed; inset:0; z-index:100;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  background:rgba(32,32,32,.55);
}
.scrum__modal[hidden]{display:none;}
.scrum__modal-panel{
  position:relative; width:100%; max-width:340px;
  max-height:80vh; overflow-y:auto;
  padding:28px 22px 24px; border-radius:14px;
  background:var(--white); box-shadow:0 12px 40px rgba(0,0,0,.24);
}
.scrum__modal-close{
  position:absolute; right:10px; top:10px;
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  color:var(--gray);
}
.scrum__modal-close:hover{background:var(--chip);}
.scrum__modal-title{
  margin:0; font-size:17px; font-weight:600; color:var(--primary); line-height:1.4;
}
.scrum__modal-body{margin-top:10px;}
.scrum__modal-body small{
  display:block; margin-top:.3em; font-size:13.5px; font-weight:500;
  color:var(--text); line-height:1.8;
}
.scrum__modal-body .scrum__stat{justify-content:flex-start; margin-top:.6em;}
.scrum__modal-body .scrum__stat i{font-size:22px;}
.scrum__modal-body .scrum__stat u{font-size:12px;}
.scrum__modal-body .scrum__src{margin-top:.6em; font-size:11px; color:var(--gray); line-height:1.6;}

/* -------------------------------------------------------------------------
   12. 3つのメリット
   ------------------------------------------------------------------------- */
.merit{background:var(--bg-white);}
.merit__grid{display:grid; grid-template-columns:1fr; gap:48px; margin-top:8px;}
.merit__head{text-align:center;}
.merit__en{
  font-family:var(--jost); font-size:40px; font-weight:800;
  color:var(--primary); letter-spacing:.01em; line-height:1;
}
.merit__sub{margin-top:4px; font-size:14px; font-weight:500; color:var(--text); line-height:1;}
.merit__jp{margin-top:14px; font-size:22px; font-weight:600; color:var(--black); line-height:1.45;}
/* SP（縦1列）は 4:3 の横長。縦長のままだと3枚で画面5つ分の高さになるため */
.merit__photo{margin-top:16px; border-radius:16px; overflow:hidden; aspect-ratio:4 / 3;}
.merit__photo img{width:100%; height:100%; object-fit:cover;}
.merit__body{margin-top:16px; font-size:15px; line-height:1.9; color:var(--text);}
.merit__money{
  margin-top:16px; padding:14px 16px; border-radius:6px;
  background:var(--white); border:1px solid var(--line-gray);
}
.merit__money dl{display:grid; grid-template-columns:auto 1fr; gap:8px 12px; align-items:center;}
.merit__money dt{
  padding:5px 8px 4px; border-radius:4px;
  background:var(--primary); color:var(--white);
  font-size:11px; font-weight:600; line-height:1; text-align:center; white-space:nowrap;
}
.merit__money dd{font-size:13px; font-weight:500; color:var(--black); line-height:1.5;}

/* -------------------------------------------------------------------------
   13. CTA ブロック（赤地）
   ------------------------------------------------------------------------- */
.ctablock{
  position:relative; overflow:hidden; isolation:isolate;
  padding-block:52px; text-align:center;
  background:linear-gradient(135deg,#CA0031 0%,#B40129 40%,#AB012A 100%);
  color:var(--white);
}
/* アンバサダーと同じ理由で multiply。合成後は #B8002D〜#A70029 */
.ctablock::before{
  content:""; position:absolute; inset:0;
  background:url("../img/bg-cta.webp") center/cover;
  mix-blend-mode:multiply;
}
/* 黒の透過。以前ここに敷いていた白い水玉は、テクスチャが見えるようになって
   二重になるため外した */
.ctablock::after{content:""; position:absolute; inset:0; background:rgba(0,0,0,.08);}
.ctablock > *{position:relative; z-index:1;}
.ctablock__title{font-size:22px; letter-spacing:.06em; line-height:1.4;}
.ctablock__lead{margin-top:18px; font-size:14px; line-height:1.9;}
.ctablock__cta{margin-top:30px;}

/* -------------------------------------------------------------------------
   14. LiSH ／ STEP 01-04
   ------------------------------------------------------------------------- */
.field{position:relative; padding-bottom:0; background:var(--bg-white);}
.field__steps{display:none;}          /* PC のみ。SP は下の .steps を使う */
.field__steps-text{display:none;}
.steps{display:grid; grid-template-columns:1fr; gap:14px; margin-top:36px;}
.steps__item{
  position:relative;
  display:flex; align-items:center; gap:14px;
  padding:16px 18px; border:2px solid var(--primary); border-radius:14px;
  background:var(--white);
}
.steps__item:not(:last-child)::after{
  content:""; position:absolute; left:50%; bottom:-14px; z-index:1;
  width:0; height:0; transform:translateX(-50%);
  border:7px solid transparent; border-top:9px solid var(--primary); border-bottom:0;
}
.steps__no{font-size:26px; font-weight:700; color:var(--primary); line-height:1;}
.steps__label{font-size:14px; font-weight:600; color:var(--black); line-height:1.5;}
.steps__label em,.steps__label a{font-style:normal; color:var(--primary); text-decoration:underline;}

/* -------------------------------------------------------------------------
   15. サイクル図 ＋ GOB
   ------------------------------------------------------------------------- */
.cycle{background:var(--bg-white);}
/* Figma：グロー 556px の箱の中に、白円280・赤アーク280・ラベル円136 を同心で配置 */
.cycle__diagram{
  --c:min(556px, calc(100vw - var(--gut) * 2));
  position:relative; width:100%; max-width:556px; margin:36px auto 0;
  aspect-ratio:1;
}
.cycle__glow,.cycle__disc,.cycle__arc,.cycle__goal{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);}
.cycle__glow{width:100%;}
/* Figma の Ellipse 33。赤いアーク（Mask group）の下に敷く白い円 */
.cycle__disc{width:50.36%; aspect-ratio:1; border-radius:50%; background:var(--white);}
.cycle__arc{width:50.36%; z-index:1;}
.cycle__goal{
  display:flex; align-items:center; justify-content:center;
  width:50.36%; aspect-ratio:1;
  color:var(--primary-dp); font-size:calc(var(--c) / 23.2); font-weight:600; line-height:1.25;
  z-index:2;
}
.cycle__node{
  position:absolute; z-index:2;
  display:flex; align-items:center; justify-content:center;
  width:24.46%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.95) 56%, rgba(255,255,255,0) 72%);
  color:#424242; font-size:calc(var(--c) / 30.9); font-weight:600;
  text-align:center; line-height:1.25;
}
.cycle__node--kasetsu{left:37.77%; top:-5.04%;}
.cycle__node--proto  {left:80.58%; top:24.82%;}
.cycle__node--teian  {left:63.67%; top:73.02%;}
.cycle__node--test   {left:11.87%; top:73.02%;}
.cycle__node--kairyo {left:-5.04%; top:24.82%;}
.cycle__illust{display:none;}
.gob{margin-top:40px; text-align:center;}
.gob__title{font-size:19px; font-weight:600; color:var(--black); line-height:1.5;}
.gob__body{margin-top:14px; font-size:14px; line-height:1.9; color:var(--text);}
.gob__body a,.gob__body em{
  font-style:normal; font-weight:600; color:var(--primary); text-decoration:underline;
}

/* -------------------------------------------------------------------------
   16. 写真マーキー
   ------------------------------------------------------------------------- */
.marquee{overflow:hidden; background:var(--bg-white);}
.marquee__track{display:flex; width:max-content; animation:marquee 40s linear infinite;}
.marquee__track img{
  width:auto; height:200px; flex:none; object-fit:cover;
}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* -------------------------------------------------------------------------
   17. RISK
   ------------------------------------------------------------------------- */
.risk{background:var(--bg);}
.risk__list{display:grid; gap:16px; margin-top:36px;}
.risk__item{
  position:relative; padding:22px 20px 22px 20px;
  background:#F6F6F6; border-radius:12px;
}
.risk__icon{position:absolute; left:16px; top:-2px; width:44px;}
.risk__title{padding-left:56px; font-size:16px; font-weight:600; color:var(--black); line-height:1.5;}
.risk__body{margin-top:10px; font-size:13.5px; line-height:1.85; color:var(--text);}
.risk__note{margin-top:8px; font-size:12px; line-height:1.7; color:var(--gray);}

/* -------------------------------------------------------------------------
   18. 実績
   ------------------------------------------------------------------------- */
.record{position:relative; background:var(--bg-white) url("../img/texture-diagonal.webp") center/cover;}
.record > .wrap{position:relative;}
.record__body{margin-top:24px; font-size:14px; line-height:2; color:var(--text);}
.record__body + .record__body{margin-top:20px;}
.record__mark{font-weight:600; color:var(--primary); text-decoration:underline;}
.record__stats{display:grid; grid-template-columns:1fr; gap:12px; margin-top:32px;}
.record__stat{
  padding:20px 16px; border-radius:10px; background:var(--white);
  box-shadow:var(--shadow-card); text-align:center;
}
.record__stat dt{font-size:14px; font-weight:600; color:var(--black); line-height:1;}
.record__stat dd{margin-top:10px;}
.record__value{
  display:flex; align-items:baseline; justify-content:center; gap:2px;
  color:var(--black); font-weight:600; line-height:1;
}
.record__value i{font-style:normal; font-size:30px;}
.record__value u{text-decoration:none; font-size:14px;}
.record__cap{display:block; margin-top:8px; font-size:12px; font-weight:500; color:var(--text); line-height:1.5;}
.record__src{margin-top:16px; font-size:11.5px; color:var(--gray); text-align:center;}
.record__closing{
  margin-top:44px; font-size:22px; color:var(--black); line-height:1.7; text-align:center;
}
.record__closing em{font-style:normal; color:var(--primary);}
.record__illust{width:240px; margin:28px auto 0;}

/* -------------------------------------------------------------------------
   19. アンバサダー
   ------------------------------------------------------------------------- */
.amb{
  position:relative; overflow:hidden; isolation:isolate;
  padding-block:56px; color:var(--white);
  background:linear-gradient(155deg,#D20034 0%,#B2002C 60%);
}
/* overlay だと白い画像を重ねるほど赤が明るくなり、画像の面も赤に埋もれる。
   multiply なら画像の暗い面がそのまま陰影として出て、赤も締まる。
   合成後は #C30030〜#B2002C（Figma の実描画 #CA0031〜#A20027 とほぼ一致） */
.amb::before{
  content:""; position:absolute; inset:0;
  background:url("../img/bg-amb.webp") center/cover;
  mix-blend-mode:multiply;
}
/* 黒の透過をひと枚重ねて暗さを足す */
.amb::after{content:""; position:absolute; inset:0; background:rgba(0,0,0,.06);}
.amb > *{position:relative; z-index:1;}
.amb__title{font-size:22px; text-align:center; line-height:1.4;}
.amb__lead{margin-top:18px; font-size:14px; line-height:1.9; text-align:center;}
.amb__dummy{
  margin:18px auto 0; padding:8px 14px; max-width:max-content; border-radius:6px;
  background:rgba(0,0,0,.24); font-size:12px; line-height:1.6; text-align:center;
}
.amb__viewport{margin-top:28px;}
.carousel{
  display:flex; gap:16px; padding-inline:var(--gut); overflow-x:auto;
  scroll-snap-type:x mandatory; scrollbar-width:none; -ms-overflow-style:none;
}
.carousel::-webkit-scrollbar{display:none;}
.carousel > *{scroll-snap-align:start;}
.carousel.is-dragging{scroll-snap-type:none; cursor:grabbing; user-select:none;}
/* アンバサダー：写真＋名前＋会社名のみのシンプルなカード */
/* SP は1画面に 2.5 枚ほど映る幅 */
.amb__card{width:130px; flex:none;}
.amb__photo{
  position:relative;
  aspect-ratio:1; border-radius:12px; overflow:hidden;
  background:rgba(255,255,255,.14);
}
.amb__photo img{width:100%; height:100%; object-fit:cover; display:block;}
.amb__badge{
  position:absolute; left:6px; top:6px;
  padding:3px 6px 2px; border-radius:4px;
  background:rgba(32,32,32,.78); color:var(--white);
  font-size:9.5px; font-weight:600; line-height:1; letter-spacing:.04em;
}
.amb__name{margin-top:10px; font-size:13px; font-weight:600; line-height:1.4;}
.amb__company{margin-top:4px; font-size:10.5px; font-weight:500; line-height:1.5; opacity:.85;}
.amb__ctrl{display:flex; justify-content:center; gap:12px; margin-top:22px;}
.amb__ctrl button{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.18); color:var(--white);
}
.amb__ctrl button:hover{background:rgba(255,255,255,.3);}

/* -------------------------------------------------------------------------
   20. スケジュール
   ------------------------------------------------------------------------- */
.schedule{background:var(--bg);}
.timeline{position:relative; margin-top:40px; padding-left:52px;}
.timeline::before{
  content:""; position:absolute; left:19px; top:12px; bottom:12px;
  width:10px; border-radius:6px;
  background:linear-gradient(180deg,#F37C75 0%,#EF6660 50%,#EA5652 75%,#E24749 88%,#D63E45 100%);
}
.timeline__item{position:relative;}
.timeline__item + .timeline__item{margin-top:20px;}
.timeline__no{
  position:absolute; left:-52px; top:8px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:50%;
  background:var(--white); border:1px solid var(--line-gray);
  color:var(--black); line-height:1;
}
.timeline__no small{font-size:8px; font-weight:500; letter-spacing:.04em;}
.timeline__no b{font-size:17px; font-weight:600;}
.timeline__card{padding:20px 18px; border-radius:12px; background:var(--bg-white); box-shadow:var(--shadow-card);}
.timeline__head{display:flex; flex-wrap:wrap; align-items:center; gap:10px;}
.badge{
  padding:5px 10px 4px; border-radius:4px; background:var(--chip);
  font-size:11.5px; font-weight:500; color:var(--black); line-height:1; white-space:nowrap;
}
.timeline__title{font-size:17px; font-weight:600; color:var(--black); line-height:1.4;}
.timeline__body{margin-top:12px; font-size:13.5px; line-height:1.85; color:var(--text);}
.timeline__body em{font-style:normal; font-weight:600; color:var(--black); text-decoration:underline;}
.timeline__pitch{margin-top:16px;}
.timeline__pitch-head{
  padding:8px 12px; border-radius:4px;
  background:var(--primary); color:var(--white);
  font-size:13px; font-weight:600; text-align:center; line-height:1.5;
}
.timeline__dates{display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:12px;}
.timeline__date{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--black);}
.timeline__date .badge{background:var(--chip); color:var(--primary); font-weight:600;}

/* -------------------------------------------------------------------------
   21. イベント・拠点
   ------------------------------------------------------------------------- */
.events{background:var(--white);}
.events__layout{display:grid; grid-template-columns:1fr; gap:32px; margin-top:40px;}
.events__cards{display:grid; gap:16px;}
.events__card{padding:20px 18px; border-radius:12px; background:var(--bg-white); border:1px solid var(--line-gray);}
.events__head{display:flex; align-items:center; gap:12px;}
.events__tag{
  padding:6px 12px 5px; border-radius:4px;
  background:var(--primary); color:var(--white);
  font-size:12px; font-weight:600; line-height:1; white-space:nowrap;
}
.events__tag--place{background:var(--black);}
.events__name{font-size:17px; font-weight:600; color:var(--black); line-height:1.4;}
.events__body{margin-top:12px; font-size:13.5px; line-height:1.85; color:var(--text);}
.events__body em{font-style:normal; font-weight:600; color:var(--black); text-decoration:underline;}
.events__dates{display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:12px;}
.events__map{max-width:300px; margin-inline:auto;}

/* -------------------------------------------------------------------------
   22. クロージング ＋ フォーム
   ------------------------------------------------------------------------- */
.entry{padding-block:48px 72px; background:var(--bg);}
.entry__title{font-size:22px; color:var(--primary); text-align:center; line-height:1.4;}
.entry__lead{margin-top:18px; font-size:14px; line-height:1.9; text-align:center;}

.form{margin-top:36px;}
.field-row + .field-row{margin-top:26px;}
.field-row__label{display:flex; align-items:center; gap:8px; margin-bottom:10px;}
.field-row__label > span:first-child{font-size:15px; font-weight:600; color:var(--black); line-height:1.4;}
.tag-req,.tag-opt,.tag-multi{
  padding:4px 7px 3px; border-radius:4px;
  font-size:10.5px; font-weight:600; line-height:1; white-space:nowrap;
}
.tag-req{background:var(--primary); color:var(--white);}
.tag-opt{background:var(--gray); color:var(--white);}
.tag-multi{background:var(--gray); color:var(--white);}
.input,.textarea{
  width:100%; padding:16px; border:1px solid var(--line-gray); border-radius:6px;
  background:var(--bg-white); color:var(--black);
  font-family:inherit; font-size:15px; font-weight:500; line-height:1.6;
}
.textarea{min-height:120px; resize:vertical;}
.input::placeholder,.textarea::placeholder{color:var(--contact-gray);}
.field-note{margin-top:8px; font-size:11.5px; line-height:1.6; color:var(--gray);}
.field-note--caution{color:var(--primary); font-weight:600;}

/* ラジオ・チェックボックス
   ※ 未選択ラベルの文字色 #ABABAB は Figma の指定どおり。
      WCAG AA（4.5:1）未達のため DIFF-REPORT.md に記載している */
.choice-grid{display:grid; grid-template-columns:1fr; gap:10px;}
fieldset{margin:0; padding:0; border:0;}
legend{padding:0;}
.choice{
  display:flex; align-items:center; gap:10px;
  padding:14px 16px; border:1px solid var(--line-gray); border-radius:6px;
  background:var(--bg-white); cursor:pointer;
  font-size:14px; font-weight:500; color:var(--contact-gray); line-height:1.5;
  transition:border-color .15s ease, color .15s ease, background-color .15s ease;
}
.choice input{
  appearance:none; -webkit-appearance:none;
  flex:none; width:18px; height:18px; margin:0;
  border:1.5px solid var(--contact-gray); border-radius:50%;
  background:var(--white); cursor:pointer;
}
.choice input:checked{border-color:var(--primary); border-width:5px;}
.choice:has(input:checked){border-color:var(--primary); color:var(--black); background:var(--white);}
.choice:hover{border-color:#CFCFCF;}
.choice input:focus-visible{outline:3px solid var(--primary); outline-offset:2px;}

.form__submit{margin-top:36px; text-align:center;}
/* 送信ボタン。formrun がテキストを書き換えても崩れないよう、
   入れ子の span ではなく button 自身に見た目を持たせている */
.btn-submit{
  display:inline-flex; align-items:center; justify-content:center;
  width:100%; max-width:640px; min-height:66px; padding:0 20px;
  border-radius:128px;
  background:var(--primary); color:var(--white);
  font-size:17px; font-weight:600; line-height:1.4; text-align:center;
  box-shadow:var(--shadow-cta);
  transition:background-color .2s ease;
}
.btn-submit:hover{background:#A81530;}
.btn-submit[disabled]{opacity:.6; cursor:default;}
.form__privacy{margin-top:18px; font-size:12px; line-height:1.8; color:var(--text); text-align:center;}
.form__privacy a{color:var(--text); text-decoration:underline;}

.field-error{border-color:var(--primary) !important; background:var(--primary-pale);}
/* formrun が該当項目のエラー時に inline style で表示する。既定は非表示 */
.error-msg{display:none; margin-top:8px; font-size:12.5px; font-weight:600; color:var(--primary);}
.error-msg.is-shown{display:block;}
/* formrun のボット投稿よけ。画面外に逃がす */
._formrun_gotcha{position:absolute !important; width:1px; height:1px; overflow:hidden;}

/* 個人情報の取り扱い */
.privacy{margin-top:28px; font-size:13px; line-height:1.9; color:var(--text);}
.privacy__list{margin:6px 0; padding:0;}
.privacy__list li{position:relative; padding-left:14px;}
.privacy__list li::before{
  content:""; position:absolute; left:2px; top:.75em;
  width:5px; height:5px; border-radius:50%; background:var(--primary);
}
.privacy__link a{color:var(--primary); font-weight:600;}
.consent{margin-top:20px;}
.choice--consent{justify-content:center; color:var(--black); font-weight:600;}

/* サンクス画面（Figma には無い。Ver4 の仕様を踏襲） */
.thanks{padding:32px 20px; border-radius:12px; background:var(--white); box-shadow:var(--shadow-card); text-align:center;}
.thanks__title{font-size:22px; color:var(--black); line-height:1.5;}
.thanks__body{margin-top:16px; font-size:14px; line-height:1.9;}

/* 完了ページ（thanks.html）。サンクスの中身は上の .thanks を共用する */
.thanks-page{
  padding:calc(var(--header-h) + 40px) 0 56px;
  background:var(--bg);
  min-height:60vh;
}
.thanks-page__back{margin-top:28px; font-size:14px; text-align:center;}
.thanks-page__back a{color:var(--text); text-decoration:underline;}
.thanks-page__back a:hover{color:var(--primary);}

/* -------------------------------------------------------------------------
   23. フッター
   ------------------------------------------------------------------------- */
.ft{
  padding-block:44px;
  background:linear-gradient(104deg,#323232 30%,#202020 100%);
  color:var(--white); text-align:center;
}
.ft__nav{display:flex; flex-wrap:wrap; justify-content:center; gap:12px 20px;}
.ft__nav a{font-size:14px; font-weight:500; text-decoration:none; line-height:1.5;}
.ft__nav a:hover{text-decoration:underline;}
.ft__copy{margin-top:36px; font-size:12px; font-weight:400; line-height:1.5;}

/* -------------------------------------------------------------------------
   24. SP 固定 CTA バー（Figma には無い。ワイヤーフレーム v4 の指定）
   ------------------------------------------------------------------------- */
.sticky-cta{
  position:fixed; inset:auto 0 0; z-index:40;
  padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94); box-shadow:0 -1px 12px rgba(0,0,0,.1);
  backdrop-filter:blur(8px);
  transform:translateY(100%); transition:transform .3s ease;
}
.sticky-cta.is-shown{transform:translateY(0);}
.sticky-cta .pill{width:100%; max-width:none;}
.sticky-cta .pill__body{min-height:52px; font-size:15px;}

/* =========================================================================
   PC（768px 以上）
   ========================================================================= */
@media (min-width:768px){
  :root{--gut:40px; --header-h:104px;}
  body{font-size:16px;}

  .sec{padding-block:104px;}
  .sec-title{font-size:48px;}
  .sec-lead{margin-top:28px; font-size:16px;}

  .pill--lg{max-width:624px;}
  .pill--lg .pill__body{min-height:88px; font-size:24px;}
  .pill--sm .pill__body{min-height:56px; padding:0 28px; font-size:16px;}
  .pill-note{margin-bottom:16px; font-size:16px;}
  .pill-note::before,.pill-note::after{height:19px;}

  /* ヘッダー */
  .hd__nav{display:flex; align-items:center; gap:16px;}
  .hd__nav a{font-size:18px;}
  .hd__inner{gap:40px;}
  .hd .pill--sm{width:260px;}

  /* FV */
  .fv__inner{min-height:800px; padding-top:134px; padding-bottom:208px;}
  .fv__title{font-size:64px; letter-spacing:.05em;}
  .fv__sub{margin-top:18px; font-size:48px;}
  .fv__lead{margin-top:26px; font-size:16px;}
  .fv__brand{gap:16px; margin-top:40px;}
  .fv__brand-name{font-size:28px;}
  .fv__brand-tag{padding:8px 24px; font-size:25px;}
  .fv__cta{margin-top:56px;}
  .fv__wave{right:0; bottom:0; width:100%;}
  .fv__contour{left:0; top:0; width:700px;}

  /* 装飾オブジェクト。左右は中央（50%）からの固定オフセットで、1440px の
     デザイン座標そのまま。上下は実装側の組みに合わせて微調整している */
  .fv__deco{display:block; position:absolute; z-index:1; pointer-events:none;}
  .fv__deco--circle-lg{left:calc(50% - 648px); top:245px; width:160px;}
  .fv__deco--circle-md{left:calc(50% + 533px); top:202px; width:65px;}
  .fv__deco--circle-sm{left:calc(50% - 468px); top:560px; width:50px;}
  .fv__deco--dots-tr  {left:calc(50% + 612px); top:122px; width:86px;}
  .fv__deco--dots-bl  {left:calc(50% - 641px); top:626px; width:158px;}

  /* 募集概要 */
  .facts{margin-top:-160px; padding-bottom:88px;}
  .facts__grid{grid-template-columns:repeat(4,1fr); gap:24px;}
  .facts__card{padding:24px 12px 28px; gap:6px;}
  .facts__icon{width:64px; height:64px;}
  .facts__label{font-size:16px;}
  .facts__num{font-size:40px;}
  .facts__unit{font-size:20px;}
  .facts__tag{font-size:13px;}

  /* 課題提起 */
  .worry{padding-bottom:0;}
  .worry__icon{width:71px; height:71px; margin-bottom:20px;}
  .worry__title{font-size:48px;}
  /* 3列。下段が2枚になっても flex の中央揃えで自然に中央へ寄る */
  .worry__cards{gap:40px 24px; margin-top:64px;}
  .worry__card{width:calc((100% - 48px) / 3);}
  .worry__card img{width:260px;}
  .worry__card p{margin-top:12px; font-size:16px;}

  /* 吹き出し：PC は Figma の重ね配置（原寸 928×598） */
  .bubbles{
    display:block; position:relative;
    width:928px; max-width:100%; margin:96px auto 0;
    aspect-ratio:928 / 598;
  }
  .bubbles__art{position:absolute; left:50%; bottom:0; width:67%; margin:0; transform:translateX(-50%);}
  .bubbles__item{
    position:absolute; white-space:nowrap;
    padding:18px 24px; font-size:20px; margin-top:0;
  }
  .bubbles__item::after{left:24px;}
  .bubbles__item--nowhite{white-space:normal; max-width:220px;}
  .bubbles__item:nth-of-type(1){left:0;   top:38%;}   /* 事業の創り方がわからない */
  .bubbles__item:nth-of-type(2){left:29%; top:36%;}   /* 時間がない */
  .bubbles__item:nth-of-type(3){left:48%; top:4%;}    /* 検証資金がない（上） */
  .bubbles__item:nth-of-type(4){left:70%; top:10%;}   /* 顧客との接点がない */
  .bubbles__item:nth-of-type(5){left:53%; top:25%;}   /* 仲間がいない */
  .bubbles__item:nth-of-type(6){left:19%; top:57%;}   /* 検証資金がない（下） */

  /* 常識を変える */
  .shift{padding-block:120px;}
  .shift p{font-size:48px; padding:0 6px;}
  .shift p + p{margin-top:20px;}

  /* 共同創業者：FV に次ぐ主張ポイントとして帯を高く・見出しを大きく */
  .cofounder__photo{height:496px;}
  .cofounder__photo picture img{object-position:center 24%;}
  .cofounder__notch{width:320px;}
  .cofounder__title{
    top:70%; width:856px; padding:12px 24px; font-size:56px; letter-spacing:.03em;
  }

  /* スクラム図：PC は説明文も円の中に入る。文字は図の実寸に比例させる */
  .scrum__diagram{margin-top:64px;}
  .scrum__node .scrum__detail{display:contents;}
  .scrum__open{display:none;}
  .scrum__modal{display:none !important;}
  .scrum__center span{font-size:calc(var(--s) / 40.8);}   /* 816px のとき 20px */
  /* padding を % にすると「図全体の幅」が基準になり、円の内側が潰れて
     縦に伸びてしまう（地域企業が 240×291 の楕円になっていた）。
     図の実寸に比例させて、円に対する比率を一定に保つ */
  .scrum__node{border-width:calc(var(--s) / 136); padding:calc(var(--s) / 40);}
  .scrum__node b{font-size:calc(var(--s) / 51);}          /* 16px */
  .scrum__node--jr b,
  .scrum__node--mentor b{font-size:calc(var(--s) / 56.7); white-space:nowrap;}
  .scrum__node small{font-size:calc(var(--s) / 68);}      /* 12px */
  .scrum__node--jr small,
  .scrum__node--mentor small{font-size:calc(var(--s) / 75.6);}
  .scrum__stat i{font-size:calc(var(--s) / 40.8);}
  .scrum__stat u{font-size:calc(var(--s) / 68);}
  .scrum__src{font-size:calc(var(--s) / 90.7);}

  /* 3つのメリット */
  .merit__grid{grid-template-columns:repeat(3,1fr); gap:32px; margin-top:24px;}
  .merit__en{font-size:64px;}
  .merit__sub{margin-top:4px; font-size:20px;}
  .merit__jp{margin-top:16px; font-size:36px;}
  .merit__photo{margin-top:24px; aspect-ratio:416 / 560;}
  .merit__body{margin-top:20px; font-size:18px;}
  .merit__money dt{font-size:12px;}
  .merit__money dd{font-size:14px;}

  /* CTA ブロック */
  .ctablock{padding-block:88px;}
  .ctablock__title{font-size:48px; letter-spacing:.12em;}
  .ctablock__lead{margin-top:26px; font-size:16px;}
  .ctablock__cta{margin-top:44px;}

  .field{padding-bottom:0;}

  /* STEP 01-04：Figma の枠・矢印は SVG（4分割）、文字は HTML で重ねる。原寸 1152×280 */
  .field__steps{
    --s:min(1152px, calc(100vw - var(--gut) * 2));
    display:block; position:relative; margin-top:64px;
    width:100%; max-width:1152px; margin-inline:auto;
    aspect-ratio:1152 / 280;
  }
  .step-box{position:absolute; top:0; height:100%;}
  .step-box--1{left:0;       width:27.60%;}
  .step-box--2{left:26.04%;  width:27.69%;}
  .step-box--3{left:52.17%;  width:27.60%;}
  .step-box--4{left:78.21%;  width:21.79%;}
  .field__steps-text{display:block;}
  .field__steps-text > *{position:absolute; text-align:center; line-height:1;}
  .steps-no{
    top:22.86%; color:var(--primary); font-weight:700;
    font-size:calc(var(--s) / 28.8);        /* 1152px のとき 40px */
  }
  .steps-no--1{left:8.85%;  width:3.91%;}
  .steps-no--2{left:34.90%; width:4.17%;}
  .steps-no--3{left:60.94%; width:4.17%;}
  .steps-no--4{left:86.98%; width:4.25%;}
  .steps-tx{
    color:var(--black); font-weight:600; line-height:1.5;
    font-size:calc(var(--s) / 57.6);        /* 1152px のとき 20px */
  }
  .steps-tx em,.steps-tx a{font-style:normal; color:var(--primary); text-decoration:underline;}
  .steps-tx--1{left:4.34%;  width:13.02%; top:52.50%;}
  .steps-tx--2{left:28.56%; width:16.75%; top:47.14%;}
  .steps-tx--3{left:54.51%; width:17.27%; top:47.14%;}
  .steps-tx--4{left:83.51%; width:11.28%; top:52.50%;}
  .steps{display:none;}

  /* サイクル図 */
  .cycle__diagram{margin-top:56px;}
  .cycle__illust{display:block; position:absolute;}
  .cycle__illust--puzzle{left:97.7%;  top:0%;     width:56.1%;}
  .cycle__illust--bulb  {right:97.7%; top:68%;    width:36.7%;}
  .gob{margin-top:72px;}
  .gob__title{font-size:24px;}
  .gob__body{font-size:16px;}

  /* マーキー */
  .marquee__track img{height:480px;}

  /* RISK */
  .risk__list{gap:24px; margin-top:56px;}
  .risk__item{padding:26px 32px 28px;}
  .risk__icon{left:26px; width:56px;}
  .risk__title{padding-left:76px; font-size:20px;}
  .risk__body{margin-top:12px; font-size:15px;}

  /* 実績 */
  .record__body{margin-top:36px; font-size:16px;}
  .record__stats{grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px;}
  .record__stat{padding:26px 20px;}
  .record__value i{font-size:40px;}
  .record__value u{font-size:16px;}
  .record__closing{margin-top:72px; font-size:40px; line-height:1.55;}
  /* 見出しは PC では左寄せ（Figma もこの組み） */
  .record .sec-title{text-align:left;}
  .record__closing{text-align:left;}
  .record__illust{width:398px; margin-top:40px;}

  /* アンバサダー */
  .amb{padding-block:88px;}
  .amb__title{font-size:48px;}
  .amb__lead{margin-top:26px; font-size:16px;}
  .amb__viewport{margin-top:44px;}
  .carousel{gap:24px; padding-inline:max(var(--gut),calc((100% - 1200px)/2));}
  .amb__card{width:240px;}
  .amb__name{margin-top:14px; font-size:17px;}
  .amb__company{font-size:12.5px;}

  /* スケジュール */
  .timeline{margin-top:64px; padding-left:96px;}
  .timeline::before{left:30px; width:16px;}
  .timeline__item + .timeline__item{margin-top:32px;}
  .timeline__no{left:-96px; top:14px; width:76px; height:76px;}
  .timeline__no small{font-size:11px;}
  .timeline__no b{font-size:26px;}
  .timeline__card{padding:28px 32px;}
  .timeline__title{font-size:22px;}
  .timeline__body{margin-top:14px; font-size:15px;}

  /* イベント */
  .events__layout{
    grid-template-columns:504px 440px; gap:32px; justify-content:center;
    align-items:start; margin-top:64px;
  }
  .events__card{padding:24px 28px;}
  .events__name{font-size:22px;}
  .events__body{font-size:15px;}
  .events__map{max-width:none;}

  /* クロージング・フォーム */
  .entry{padding-block:64px 120px;}
  .entry__title{font-size:48px;}
  .entry__lead{margin-top:26px; font-size:16px;}
  .form{max-width:864px; margin:56px auto 0;}
  .field-row + .field-row{margin-top:36px;}
  .field-row__label > span:first-child{font-size:16px;}
  .choice-grid{grid-template-columns:repeat(3,1fr); gap:12px;}
  .choice-grid--full{grid-template-columns:1fr; gap:12px;}
  .choice{padding:16px 20px; font-size:15px;}
  .btn-submit{min-height:80px; font-size:22px;}

  /* 完了ページ */
  .thanks-page{padding:calc(var(--header-h) + 72px) 0 96px;}
  .thanks-page__back{margin-top:36px; font-size:16px;}

  /* フッター */
  .ft{padding-block:72px;}
  .ft__nav{gap:24px;}
  .ft__nav a{font-size:18px;}
  .ft__copy{margin-top:110px; font-size:14px;}

  /* SP 固定バーは PC では出さない */
  .sticky-cta{display:none;}
}

/* =========================================================================
   アニメーションを控える設定
   ========================================================================= */
/* 実績セクションのイラストを右上の余白に置く。本文の横に 398px を確保できる
   幅（＝ラップがほぼ最大化する 1200px 以上）でのみ絶対配置にする */
@media (min-width:1200px){
  .record__illust{position:absolute; right:0; top:72px; width:398px; margin:0;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1; transform:none; transition:none;}
  .marquee__track{animation:none;}
  .pill__body,.sticky-cta,.hd{transition:none;}
}

/* 印刷 */
@media print{
  .hd,.sticky-cta,.amb__ctrl,.marquee{display:none;}
  body{background:#fff;}
}
