/* 下層ページの上部（PageIntro）。サービス内容のページから切り出した共通部品（2026-10-21） */
.sv-intro { position: relative; overflow: hidden; background: #fff; border-bottom: 1px solid var(--line); padding-block: 64px 72px; scroll-margin-top: 80px; }
.sv-intro__grid { position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 56px 56px; background-position: -1px -1px; opacity: .55;
  -webkit-mask-image: radial-gradient(ellipse 85% 70% at 30% 30%, #000 25%, transparent 78%); mask-image: radial-gradient(ellipse 85% 70% at 30% 30%, #000 25%, transparent 78%); }
.sv-intro .container { position: relative; }
.sv-split { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 40px 64px; align-items: end; }
.sv-kicker { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-family: "Inter", sans-serif; font-weight: 700; font-size: 13px; letter-spacing: .14em; color: var(--accent-3); }
.sv-kicker::before { content: ""; width: 10px; height: 10px; background: var(--accent-2); }
.sv-title { margin: 14px 0 0; font-family: var(--font-head); font-size: clamp(32px, 4.2vw, 46px); font-weight: 700; line-height: 1.3; color: var(--ink); }
.sv-title:first-child { margin-top: 0; }
.sv-docs { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 18px 0 0; padding: 0; }
.sv-docs li { font-size: 14px; font-weight: 500; color: var(--accent-3); background: var(--accent-soft); padding: 3px 10px; }
.sv-split__lead { margin: 24px 0 0; font-size: clamp(18px, 1.6vw, 20px); line-height: 1.95; color: var(--ink); }
.sv-split__lead .mk { font-weight: 700; background: linear-gradient(transparent 62%, var(--accent-line) 62%); }
.sv-toc { margin-top: 0; margin-bottom: 0.45em; background: var(--accent-3); color: #fff; padding: 22px 24px 16px; box-shadow: 0 18px 40px -26px rgba(6, 95, 70, .6); }
.sv-toc__label { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .12em; color: var(--accent-line); }
.sv-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: n; }
.sv-toc a { display: flex; gap: 10px; align-items: baseline; padding: 8px 0; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .14); font-weight: 600; font-size: 15px; }
.sv-toc li:last-child a { border-bottom: none; }
.sv-toc a::before { counter-increment: n; content: "0" counter(n); font-family: "Inter", sans-serif; font-size: 12px; color: var(--accent-line); }
.sv-toc a:hover { color: var(--accent-line); }
@media (max-width: 860px) { .sv-split { grid-template-columns: 1fr; } .sv-toc { margin-top: 0; } .sv-intro { padding-block: 40px 48px; } }
/* 説明文が短いページは目次を上揃えにする（料金など） */
.sv-split--top { align-items: start; }
.sv-split--top .sv-toc { margin-top: 8px; }
.sv-split__lead a { color: var(--accent-3); text-decoration: underline; text-underline-offset: 3px; }
/* 目次を置かないページ（よくある質問など）は1列 */
.sv-split--solo { grid-template-columns: minmax(0, 1fr); }
.sv-split--solo .sv-split__lead { max-width: 46em; }
.sv-split__lead--sub { margin-top: 14px; }
/* ページ内リンクの着地点が固定ヘッダーに隠れないようにする */
section[id] { scroll-margin-top: 96px; }
.sv-title--long { font-size: clamp(26px, 3vw, 36px); line-height: 1.45; }
@media (max-width: 860px) { .sv-title .nb { white-space: normal; } }
/* 上部の説明文の下に置く控えめなリンク */
.sv-intro__more { margin: 18px 0 0; font-size: var(--text-body); font-weight: 600; }
.sv-intro__more a { color: var(--accent-3); text-decoration: underline; text-underline-offset: 4px; }
.sv-intro__more a::after { content: " →"; }
