/* Amparo 公式サイト v2 — 「誠実さ × 先端」
   ink   #12202e / #0c1620(帯)  信頼の濃紺
   paper #f6f5f1               温かい紙白
   tonari #0f8577 / #0a5c54    となりの青緑
   warn  #b45309 / #f2b268(暗所) 返還リスクの琥珀
   署名要素: 角の立った「出典 →」根拠タグ。全体は柔らかく、根拠タグだけ角を立てる。 */

:root{
  --ink:#12202e; --ink-soft:#46586c; --ink2:#0c1620; --ink2b:#12233a;
  --paper:#f6f5f1; --card:#ffffff;
  --tonari:#0f8577; --tonari-deep:#0a5c54; --tonari-soft:#e2f0ed;
  --warn:#b45309; --warn-dark:#f2b268; --warn-soft:#fdf3e7;
  --line:#dcd9d0; --line-soft:#e9e7e0;
  --r:14px; --max:1120px;
  --sh-lg:0 30px 80px -24px rgba(12,22,32,.35),0 2px 8px rgba(12,22,32,.06);
  --sh-sm:0 1px 2px rgba(12,22,32,.05),0 8px 24px -12px rgba(12,22,32,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"IBM Plex Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  font-size:15.5px;line-height:1.9;-webkit-font-smoothing:antialiased;font-feature-settings:"palt"}
h1,h2,h3,.display{font-family:"Zen Kaku Gothic New","Hiragino Sans",sans-serif;letter-spacing:.01em}
h1{font-size:clamp(32px,4.8vw,54px);font-weight:900;line-height:1.34;margin:0;word-break:keep-all}
h2{font-size:clamp(24px,3.4vw,34px);font-weight:700;line-height:1.5;margin:0 0 10px}
h3{font-size:17.5px;font-weight:700;margin:0 0 4px}
p{margin:10px 0}
a{color:var(--tonari-deep);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--tonari)}
img{max-width:100%;height:auto;display:block}
strong,b{font-weight:700}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--ink);color:#fff;padding:8px 14px;z-index:99}
.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
.narrow{max-width:820px}

/* ヘッダー */
header.site{position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(220,217,208,.7);
  background:rgba(246,245,241,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
header.site .bar{display:flex;align-items:center;gap:22px;min-height:64px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:20px;letter-spacing:.02em}
.logo svg{width:27px;height:27px}
nav.global{margin-left:auto;display:flex;gap:4px 20px;flex-wrap:wrap;font-size:13.5px;align-items:center}
nav.global a{color:var(--ink-soft);text-decoration:none;padding:6px 2px;border-bottom:2px solid transparent}
nav.global a:hover,nav.global a[aria-current="page"]{color:var(--tonari-deep);border-bottom-color:var(--tonari)}
nav.global a.cta{color:#fff;background:var(--tonari);padding:9px 18px;border-radius:999px;border-bottom:none;font-weight:700;transition:background .2s,transform .2s}
nav.global a.cta:hover{background:var(--tonari-deep);transform:translateY(-1px)}
@media(max-width:820px){
  header.site{position:static}
  header.site .bar{flex-wrap:wrap;padding:10px 0}
  nav.global{width:100%;margin-left:0;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:none}
  nav.global::-webkit-scrollbar{display:none}
  nav.global a{white-space:nowrap;flex:0 0 auto}
}
@media(max-width:760px){
  .grid.c2,.grid.c3{grid-template-columns:minmax(0,1fr)}
  .card{padding:20px}
  .hero-band{padding:56px 0 64px}
}

/* 署名要素: 根拠タグ（ここだけ角を立てる） */
.src{display:inline-flex;align-items:baseline;gap:5px;font-size:11.5px;font-weight:600;letter-spacing:.02em;
  color:var(--tonari-deep);text-decoration:none;border:1px solid rgba(15,133,119,.5);
  background:rgba(226,240,237,.6);padding:3px 10px;vertical-align:2px;white-space:nowrap;transition:background .2s,border-color .2s}
.src::after{content:"→";font-size:10.5px}
.src:hover{border-color:var(--tonari);background:var(--tonari-soft)}

/* 濃紺のヒーロー帯 */
.hero-band{background:
  radial-gradient(900px 460px at 12% -10%,rgba(15,133,119,.30),transparent 60%),
  radial-gradient(700px 420px at 95% 8%,rgba(23,58,90,.5),transparent 60%),
  linear-gradient(180deg,var(--ink2) 0%,var(--ink2b) 100%);
  color:#eef3f2;padding:84px 0 92px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:52px;align-items:center}
@media(max-width:960px){.hero-grid{grid-template-columns:1fr;gap:40px}}
.hero-band .who{font-size:13px;letter-spacing:.12em;color:#9fb3ae;margin-bottom:18px}
.hero-band h1{color:#fff}
.hero-band .warnline{color:var(--warn-dark)}
.hero-band .sub{font-size:16.5px;color:#c2d0cc;margin-top:20px;max-width:560px;line-height:2}
.hero-band .src{color:#bfe3dc;border-color:rgba(191,227,220,.45);background:rgba(255,255,255,.06)}
.hero-band .src:hover{background:rgba(255,255,255,.12);border-color:#bfe3dc}
.hero-band .mini{color:#9fb3ae}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.chip{font-size:12.5px;font-weight:600;color:#cfe7e1;border:1px solid rgba(191,227,220,.35);
  background:rgba(255,255,255,.05);padding:6px 14px;border-radius:999px}

/* 通常ヒーロー（下層） */
.hero{padding:64px 0 44px;border-bottom:1px solid var(--line-soft)}
.hero .who{font-size:13px;letter-spacing:.1em;color:var(--ink-soft);margin-bottom:16px}
.hero h1{font-size:clamp(28px,4.4vw,46px)}
.hero .warnline{color:var(--warn)}
.hero .sub{font-size:16px;color:var(--ink-soft);margin-top:16px;max-width:680px}

/* ボタン */
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:14.5px;
  padding:13px 26px;border-radius:12px;border:1.5px solid var(--tonari);transition:transform .2s,box-shadow .2s,background .2s}
.btn.primary{background:var(--tonari);color:#fff;box-shadow:0 10px 26px -12px rgba(15,133,119,.7)}
.btn.primary:hover{background:var(--tonari-deep);border-color:var(--tonari-deep);color:#fff;transform:translateY(-2px)}
.btn.primary::after{content:"→";transition:transform .2s}
.btn.primary:hover::after{transform:translateX(3px)}
.btn.ghost{color:var(--tonari-deep);background:#fff}
.btn.ghost:hover{background:var(--tonari-soft);transform:translateY(-2px)}
.btn.plain{border-color:var(--line);color:var(--ink-soft);background:transparent}
.btn.plain:hover{border-color:var(--ink-soft);transform:translateY(-2px)}
.hero-band .btn.ghost{background:transparent;color:#eaf4f1;border-color:rgba(234,244,241,.55)}
.hero-band .btn.ghost:hover{background:rgba(255,255,255,.1);border-color:#eaf4f1}
.hero-band .btn.plain{color:#b9c8c4;border-color:rgba(185,200,196,.4)}
.hero-band .btn.plain:hover{color:#eaf4f1;border-color:#b9c8c4}

/* ブラウザ風フレームのスクリーンショット */
.shotfig{margin:0}
.shot{background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid rgba(12,22,32,.1);box-shadow:var(--sh-lg)}
.shot .barx{display:flex;gap:7px;align-items:center;padding:11px 14px;background:#eef1ef;border-bottom:1px solid #e2e6e3}
.shot .barx i{width:10px;height:10px;border-radius:50%;background:#d3d9d6}
.shot .barx span{font-size:11px;color:#7d8c88;background:#fff;border-radius:7px;padding:2px 12px;margin-left:8px;letter-spacing:.03em}
.shotfig figcaption{font-size:12.5px;color:var(--ink-soft);padding:12px 6px 0}
.hero-band .shotfig figcaption{color:#9fb3ae}
.hero-shot .shot{transform:translateY(0);transition:transform .5s}
.hero-shot:hover .shot{transform:translateY(-4px)}

/* セクション */
section.block{padding:88px 0 14px}
.kicker{font-size:12.5px;font-weight:700;letter-spacing:.16em;color:var(--tonari-deep);border-left:3px solid var(--tonari);padding-left:12px;margin-bottom:14px}
.lead{font-size:17px;color:var(--ink-soft)}
.mini{font-size:12.5px;color:var(--ink-soft)}

/* カード */
.card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r);padding:26px 28px;box-shadow:var(--sh-sm);transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-3px);box-shadow:0 3px 6px rgba(12,22,32,.05),0 20px 44px -18px rgba(12,22,32,.16)}
.grid{display:grid;gap:16px}
.grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.c3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}

/* 数字の帯（深い青緑） */
.stats-band{background:
  radial-gradient(800px 400px at 85% 120%,rgba(255,255,255,.10),transparent 60%),
  linear-gradient(120deg,#0a5c54,#0e7264);
  color:#eaf4f1;padding:78px 0 84px;margin-top:88px}
.stats-band .kicker{color:#cfe7e1;border-left-color:#cfe7e1}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:26px 20px;margin-top:30px}
.stat .num{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:900;font-size:clamp(46px,6vw,72px);line-height:1;color:#fff;font-feature-settings:"tnum"}
.stat .num small{font-size:.42em;font-weight:700;margin-left:4px;color:#bfe3dc}
.stat .label{font-size:13.5px;color:#cfe7e1;margin:10px 0 10px;line-height:1.7}
.stats-band .src{color:#eaf4f1;border-color:rgba(234,244,241,.4);background:rgba(255,255,255,.07)}
.stats-band .src:hover{background:rgba(255,255,255,.14);border-color:#eaf4f1}
.stats-band .mini{color:#b9d8d2}

/* 締めのCTA帯（濃紺） */
.cta-band{background:
  radial-gradient(700px 380px at 50% -30%,rgba(15,133,119,.35),transparent 65%),
  linear-gradient(180deg,var(--ink2b),var(--ink2));
  color:#eef3f2;text-align:center;padding:88px 0 96px;margin-top:96px}
.cta-band h2{color:#fff;font-size:clamp(26px,3.8vw,38px)}
.cta-band .mini{color:#aabcb7;max-width:560px;margin:10px auto 0}
.cta-band .btns{justify-content:center;margin-top:30px}
.cta-band .btn.ghost{background:transparent;color:#eaf4f1;border-color:rgba(234,244,241,.55)}
.cta-band .btn.ghost:hover{background:rgba(255,255,255,.1)}

/* 表 */
.table-scroll{overflow-x:auto;border-radius:var(--r);box-shadow:var(--sh-sm)}
table.plain{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r);overflow:hidden}
table.plain th,table.plain td{border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);padding:11px 14px;text-align:left;vertical-align:top;line-height:1.75}
table.plain tr>*:last-child{border-right:none}
table.plain tr:last-child>*{border-bottom:none}
table.plain thead th{background:var(--ink);color:#fff;font-size:12.5px;letter-spacing:.03em;border-color:rgba(255,255,255,.12)}
table.plain tbody tr:hover td,table.plain tbody tr:hover th{background:#fbfaf7}
table.plain td.me{background:rgba(226,240,237,.55)!important;font-weight:500}
.note{font-size:12.5px;color:var(--ink-soft);background:var(--warn-soft);border-left:3px solid var(--warn);border-radius:0 10px 10px 0;padding:12px 16px;margin-top:16px}

/* リスト・ステップ・FAQ */
ul.tick{list-style:none;padding:0;margin:10px 0}
ul.tick li{padding-left:26px;position:relative;margin:8px 0}
ul.tick li::before{content:"✓";position:absolute;left:2px;color:var(--tonari);font-weight:700}
ol.steps{counter-reset:s;list-style:none;padding:0;margin:18px 0;position:relative}
ol.steps::before{content:"";position:absolute;left:17px;top:14px;bottom:14px;width:2px;background:var(--line)}
ol.steps li{counter-increment:s;position:relative;padding:14px 0 14px 56px}
ol.steps li::before{content:counter(s);position:absolute;left:2px;top:12px;width:32px;height:32px;display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:10px;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:14px;box-shadow:var(--sh-sm)}
dl.faq dt{font-weight:700;margin-top:20px;padding-left:24px;position:relative;font-size:15.5px}
dl.faq dt::before{content:"Q";position:absolute;left:0;color:var(--tonari);font-family:"Zen Kaku Gothic New",sans-serif;font-weight:900}
dl.faq dd{margin:5px 0 0 24px;color:var(--ink-soft)}

/* 更新の脈 */
ul.updates{list-style:none;padding:0;margin:14px 0}
ul.updates li{display:flex;gap:14px;align-items:baseline;padding:12px 2px;border-bottom:1px solid var(--line-soft)}
ul.updates time{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:12.5px;color:var(--tonari-deep);white-space:nowrap}

/* 旧figure（下層用） */
.figure{border:1px solid var(--line-soft);background:#fff;border-radius:var(--r);padding:10px;box-shadow:var(--sh-sm)}
.figure img{border-radius:8px}
.figure figcaption{font-size:12px;color:var(--ink-soft);padding:10px 4px 2px}

/* フッター */
footer.site{margin-top:0;border-top:1px solid var(--line);background:#fff;font-size:13px;color:var(--ink-soft)}
footer.site .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:24px;padding:44px 0}
footer.site a{color:var(--ink-soft);text-decoration:none}
footer.site a:hover{color:var(--tonari-deep);text-decoration:underline}
footer.site .legal{border-top:1px solid var(--line-soft);padding:16px 0 30px;font-size:12px}
@media(max-width:760px){footer.site .cols{grid-template-columns:1fr}}

/* スクロール登場モーション */
.rv{opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
}

/* 包含スタック図（上位互換の説明） */
.stackfig{margin:22px 0 8px;max-width:820px}
.stackfig .layer{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 20px;margin-top:10px;box-shadow:var(--sh-sm)}
.stackfig .layer b{display:block;font-family:"Zen Kaku Gothic New",sans-serif;font-size:14.5px}
.stackfig .layer span{display:block;font-size:12.5px;color:var(--ink-soft);margin-top:3px;line-height:1.8}
.stackfig .layer.top{background:linear-gradient(120deg,#0a5c54,#0f8577);border-color:transparent;color:#fff;box-shadow:0 18px 44px -18px rgba(15,133,119,.55);position:relative}
.stackfig .layer.top b{color:#fff;font-size:16px}
.stackfig .layer.top span{color:#d6ece7}
.stackfig .layer.top::after{content:"ここが差";position:absolute;top:-11px;right:18px;background:var(--warn);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:2px 12px;letter-spacing:.06em}
.stackfig .layer.base{background:#fbfaf7}
.stackfig .stackcap{font-size:12px;color:var(--ink-soft);margin-top:10px;padding-left:2px}

/* 代表者の写真枠（未配置でも崩れない） */
.profile-grid{display:grid;grid-template-columns:180px 1fr;gap:26px;align-items:start}
.portrait{aspect-ratio:1;border-radius:var(--r);background:var(--tonari-soft);display:grid;place-items:center;overflow:hidden;border:1px solid var(--line-soft)}
.portrait svg{width:56px;height:56px;opacity:.5}
.portrait img{width:100%;height:100%;object-fit:cover}
@media(max-width:640px){.profile-grid{grid-template-columns:1fr}.portrait{max-width:200px}}
