/* ============================================================
   SokuPass — Legal/support doc pages (teal v2). Pairs with sokupass-v2.css.
   ============================================================ */
.doc-nav-back { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; color: var(--fg-2); }
.doc-nav-back:hover { color: var(--acc1); }
.doc-nav-back svg { width: 15px; height: 15px; }

.doc-hero { padding: 56px 0 30px; border-bottom: 1px solid var(--line); position: relative; }
.doc-hero::before { content: ""; position: absolute; left: 0; top: 0; width: 480px; height: 220px; background: radial-gradient(60% 80% at 20% 0%, rgba(52,197,224,0.08), transparent 70%); pointer-events: none; }
.doc-kicker { font-family: var(--mono); font-size: 13px; color: var(--acc1); margin-bottom: 12px; }
.doc-kicker::before { content: "// "; color: var(--faint); }
.doc-title { font-size: clamp(28px,4vw,40px); font-weight: 760; letter-spacing: -.02em; line-height: 1.12; }
.doc-meta { margin-top: 14px; font-family: var(--mono); font-size: 12.5px; color: var(--dim); display: flex; gap: 16px; flex-wrap: wrap; }
.doc-meta b { color: var(--fg-2); font-weight: 500; }

.doc-wrap { display: grid; grid-template-columns: 230px 1fr; gap: 56px; padding: 44px 0 80px; align-items: start; }
.toc { position: sticky; top: 82px; }
.toc h6 { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--faint); margin-bottom: 12px; }
.toc a { display: block; font-size: 13px; color: var(--fg-2); padding: 6px 0 6px 12px; border-left: 2px solid var(--line); }
.toc a:hover { color: var(--acc1); border-color: var(--acc1); }

.doc-body { max-width: 720px; min-width: 0; }
.doc-body section { margin-bottom: 38px; scroll-margin-top: 82px; }
.doc-body h2 { font-size: 21px; font-weight: 680; letter-spacing: -.01em; margin-bottom: 13px; display: flex; align-items: baseline; gap: 11px; }
.doc-body h2 .no { font-family: var(--mono); font-size: 14px; color: var(--acc1); font-weight: 600; }
.doc-body h3 { font-size: 16px; font-weight: 650; margin: 22px 0 9px; }
.doc-body p { font-size: 15px; color: var(--fg-2); line-height: 1.75; margin-bottom: 13px; }
.doc-body p.lead { font-size: 16px; color: var(--fg); }
.doc-body ul, .doc-body ol { margin: 0 0 14px; padding-left: 4px; list-style: none; }
.doc-body li { font-size: 15px; color: var(--fg-2); line-height: 1.7; padding: 4px 0 4px 24px; position: relative; }
.doc-body ul li::before { content: "▸"; position: absolute; left: 4px; color: var(--acc1); }
.doc-body ol { counter-reset: ol; }
.doc-body ol li::before { counter-increment: ol; content: counter(ol); position: absolute; left: 0; top: 4px; font-family: var(--mono); font-size: 12px; color: var(--acc1); }
.doc-body a.inline { color: var(--acc1); }
.doc-body a.inline:hover { text-decoration: underline; }
.doc-body strong { color: var(--fg); font-weight: 650; }
.doc-body code { font-family: var(--mono); font-size: 13px; background: var(--panel-2); border: 1px solid var(--line); border-radius: 5px; padding: 1px 6px; color: var(--acc1); }

.doc-callout { background: var(--panel); border: 1px solid var(--line-2); border-left: 3px solid var(--acc1); border-radius: 12px; padding: 18px 22px; margin: 0 0 24px; }
.doc-callout.green { border-left-color: var(--green); }
.doc-callout p { margin: 0; color: var(--fg); }
.doc-callout .ttl { font-weight: 650; display: flex; align-items: center; gap: 9px; margin-bottom: 6px; font-size: 15px; }
.doc-callout .ttl svg { width: 17px; height: 17px; color: var(--green); }

.info-table { width: 100%; border-collapse: collapse; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.info-table tr { border-bottom: 1px solid var(--line); }
.info-table tr:last-child { border-bottom: none; }
.info-table th { text-align: left; vertical-align: top; width: 34%; padding: 15px 18px; font-size: 13.5px; font-weight: 600; color: var(--fg); background: var(--panel-2); border-right: 1px solid var(--line); }
.info-table td { padding: 15px 18px; font-size: 14px; color: var(--fg-2); line-height: 1.6; }
.info-table code { font-family: var(--mono); font-size: 12.5px; color: var(--acc1); }

.ph-chip { display: inline-block; font-family: var(--mono); font-size: 12px; color: var(--yellow); background: rgba(236,181,123,0.1); border: 1px dashed rgba(236,181,123,0.4); border-radius: 6px; padding: 1px 8px; }

.faq2 { display: flex; flex-direction: column; }
.faq2-item { border-bottom: 1px solid var(--line); }
.faq2-q { width: 100%; text-align: left; display: flex; align-items: center; gap: 14px; padding: 18px 4px; font-size: 16px; font-weight: 600; color: var(--fg); cursor: pointer; background: none; border: none; font-family: var(--sans); }
.faq2-q .qm { font-family: var(--mono); color: var(--acc1); font-size: 13px; flex-shrink: 0; }
.faq2-q .chev { margin-left: auto; width: 16px; height: 16px; color: var(--dim); transition: transform .2s; flex-shrink: 0; }
.faq2-item.open .faq2-q .chev { transform: rotate(90deg); }
.faq2-a { max-height: 0; overflow: hidden; transition: max-height .28s ease; }
.faq2-item.open .faq2-a { max-height: 420px; }
.faq2-a-in { padding: 0 4px 20px 33px; }
.faq2-a-in p { font-size: 14.5px; color: var(--fg-2); line-height: 1.7; margin: 0 0 10px; }
.faq2-a-in p:last-child { margin-bottom: 0; }

.contact-card { margin-top: 16px; background: var(--panel); border: 1px solid var(--line-2); border-radius: 18px; padding: 28px 30px; display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.contact-card .ci { width: 50px; height: 50px; border-radius: 14px; flex-shrink: 0; display: grid; place-items: center; background: var(--panel-3); color: var(--acc1); }
.contact-card .ci svg { width: 24px; height: 24px; }
.contact-card .cmain { flex: 1; min-width: 200px; }
.contact-card .cmain h4 { font-size: 17px; font-weight: 650; }
.contact-card .cmain p { font-size: 13.5px; color: var(--dim); margin-top: 4px; }
.contact-card .cmail { font-family: var(--mono); font-size: 15px; }

@media (max-width: 820px) { .doc-wrap { grid-template-columns: 1fr; gap: 24px; } .toc { display: none; } .info-table th { width: 40%; } }
