/* AutoSync Studio LP — 生成物です。直接編集しないでください（tools/build_lp.py） */
:root{
  --bg:#121214; --card:#1c1c1f; --line:#2e2e32;
  --ink:#f2f2f4; --ink-soft:#9a9aa0; --ink-dim:#6e6e73;
  --acc:#0a84ff; --acc-hi:#3395ff; --acc-bg:rgba(10,132,255,.14);
  --r:12px; --shadow:0 8px 24px rgba(0,0,0,.35);
  --maxw:1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic Medium",
    "Yu Gothic",Meiryo,system-ui,sans-serif;
  font-size:17px; line-height:1.8; letter-spacing:0;
  -webkit-font-smoothing:antialiased;
}
img,video{max-width:100%; height:auto; display:block}
a{color:var(--acc); text-decoration:none}
a:hover{color:var(--acc-hi); text-decoration:underline}
b,strong{font-weight:700}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 40px}
.sec{padding:120px 0}
.sec + .sec{padding-top:120px}
h1,h2,h3{margin:0; font-weight:700}
h1{font-size:56px; line-height:1.35; letter-spacing:-.02em; text-wrap:balance}
h2{font-size:36px; line-height:1.4; letter-spacing:-.01em; margin-bottom:24px}
h3{font-size:20px; line-height:1.5; margin-bottom:8px}
p{margin:0 0 16px}
.cap{font-size:13px; line-height:1.7; color:var(--ink-soft)}

/* ヘッダー */
.hd{position:sticky; top:0; z-index:20; height:64px; display:flex; align-items:center;
    background:transparent; transition:background .2s}
.hd-in{max-width:var(--maxw); margin:0 auto; padding:0 40px; width:100%;
       display:flex; align-items:center; gap:32px}
.hd-logo{font-weight:700; font-size:18px; color:var(--ink); letter-spacing:-.01em}
.hd-logo:hover{text-decoration:none}
.hd-nav{display:flex; gap:24px; margin-left:auto}
.hd-nav a{color:var(--ink-soft); font-size:15px}
.hd-nav a:hover{color:var(--ink); text-decoration:none}
.hd-cta{margin-left:24px}

/* ボタン */
.btn{display:inline-flex; align-items:center; justify-content:center; height:56px;
     padding:0 32px; border-radius:var(--r); font-size:17px; font-weight:700;
     border:1px solid transparent; cursor:pointer; white-space:nowrap}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--acc); color:#fff}
.btn-primary:hover{background:var(--acc-hi); color:#fff}
.btn-secondary{background:transparent; color:var(--ink); border-color:var(--line)}
.btn-secondary:hover{color:var(--ink); border-color:var(--ink-dim)}
.btn-sm{height:40px; padding:0 20px; font-size:15px}
.btn-off{background:var(--card); color:var(--ink-dim); border-color:var(--line); cursor:default}
.btn-off:hover{background:var(--card); color:var(--ink-dim)}

/* ヒーロー */
.hero{padding:64px 0 72px}
.hero p{color:var(--ink-soft); margin:24px 0 0; max-width:620px}
.hero .cap{max-width:620px}
.hero .btns{display:flex; gap:16px; margin:32px 0 20px; flex-wrap:wrap}
.hero-fig{margin:56px 0 0; padding:28px 32px 24px; border:1px solid var(--line);
  border-radius:var(--r); background:linear-gradient(180deg,#1c1c1f 0%,#161618 100%);
  box-shadow:var(--shadow)}

/* Before / After のタイムライン図（設計書 5-4） */
.wf{width:100%; height:auto; display:block; overflow:visible}
.tl-tick{stroke:var(--line); stroke-width:1}
.tl-tick-l{stroke:var(--ink-dim); opacity:.6}
.tl-clip{fill:rgba(255,255,255,.03); stroke:var(--line); stroke-width:1}
.tl-frame{fill:var(--ink-soft)}
.tl-wave{fill:var(--ink-soft); opacity:.42}
.tl-clip-a{fill:rgba(10,132,255,.10); stroke:rgba(10,132,255,.55); stroke-width:1}
.tl-frame-a{fill:url(#wfg)}
.tl-wave-a{fill:url(#wfg)}
.tl-icon{fill:none; stroke:var(--ink-dim); stroke-width:1.5; stroke-linejoin:round;
  stroke-linecap:round}
.tl-icon-a{stroke:var(--acc)}
.tl-gline{stroke:var(--ink-dim); stroke-width:1; stroke-dasharray:3 5; opacity:.7}
.tl-play{stroke:var(--acc); stroke-width:2}
.tl-head{fill:var(--acc); stroke:none}
.wf-after{filter:drop-shadow(0 0 18px rgba(10,132,255,.4))}
.wf-lb,.wf-la{font-size:12px; font-weight:700; letter-spacing:.16em; fill:var(--ink-dim);
  font-family:"Inter",system-ui,sans-serif}
.wf-la{fill:var(--acc)}
.wf-arrow{fill:none; stroke:var(--acc); stroke-width:2.5; stroke-linecap:round;
  stroke-linejoin:round; opacity:.8}

/* デモ動画（S4） */
.demo{margin-top:48px}
.demo video,.demo img{border-radius:var(--r); box-shadow:var(--shadow); width:100%}
.demo-poster{display:none}
.demo .cap{margin-top:12px}

/* カード */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:32px}
.card p{color:var(--ink-soft); margin:0}
.card .sub{display:block; margin-top:12px; font-size:13px; color:var(--ink-dim); line-height:1.7}

/* S3 */
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:24px 48px}
.grid2 .t{font-weight:700; margin-bottom:4px}
.grid2 .d{color:var(--ink-soft); margin:0}

/* S4 */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.step .no{font-size:13px; font-weight:700; color:var(--acc); letter-spacing:.08em; margin-bottom:8px}
.step p{color:var(--ink-soft); margin:0}

/* 比較表 */
.cmp{width:100%; border-collapse:collapse; margin-top:32px; font-size:16px}
.cmp th,.cmp td{padding:16px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top}
.cmp thead th{font-size:14px; color:var(--ink-soft); font-weight:400; border-bottom:1px solid var(--line)}
.cmp td:nth-child(2){color:var(--ink-dim)}
.cmp th:nth-child(3),.cmp td:nth-child(3){background:var(--card); border-left:2px solid var(--acc)}
.cmp thead th:nth-child(3){color:var(--ink); font-weight:700}
.cmp-wrap{overflow-x:auto}

/* S5b */
.box{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:32px}
.box p{margin:0; color:var(--ink-soft)}

/* S6 */
.env{display:grid; grid-template-columns:180px 1fr; gap:16px 24px; margin-top:8px}
.env dt{color:var(--ink-soft); font-size:15px}
.env dd{margin:0}

/* S7（明色面） */
.sec-light{background:#f5f5f7; color:#1d1d1f}
.sec-light h2{color:#1d1d1f}
.sec-light .lead{color:#6e6e73; margin-bottom:40px}
.prices{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:start}
.price{background:#fff; border:1px solid #e2e2e6; border-radius:var(--r); padding:32px;
       display:flex; flex-direction:column; min-height:100%}
.price.reco{border-color:#007aff; transform:translateY(-8px)}
.price .badge{display:inline-block; background:rgba(0,122,255,.08); color:#007aff;
              font-size:13px; font-weight:700; border-radius:999px; padding:4px 12px; margin-bottom:12px}
.price .name{font-weight:700; font-size:20px; margin-bottom:8px}
.price .amt{font-weight:700; font-size:48px; line-height:1.1; letter-spacing:-.02em}
.price .amt .u{font-size:17px; font-weight:400; letter-spacing:0}
.price .tax{font-size:13px; color:#6e6e73; margin-bottom:20px}
.price ul{list-style:none; padding:0; margin:0 0 24px; font-size:16px}
.price li{padding-left:20px; position:relative; margin-bottom:8px; line-height:1.7}
.price li::before{content:"・"; position:absolute; left:0; color:#6e6e73}
.price .btn{margin-top:auto; width:100%}
.sec-light .btn-secondary{color:#1d1d1f; border-color:#d0d0d5}
.sec-light .btn-primary{background:#007aff}
.sec-light .btn-off{background:#f5f5f7; color:#8e8e93; border-color:#e2e2e6}
.notes{margin-top:32px; font-size:13px; line-height:1.9; color:#6e6e73}
.notes p{margin:0}

/* S8 */
.points{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.points .t{font-weight:700; margin-bottom:8px}
.points p{color:var(--ink-soft); margin:0}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none; cursor:pointer; padding:20px 40px 20px 0; position:relative;
             font-weight:700; font-size:17px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋"; position:absolute; right:0; top:20px; color:var(--ink-soft);
                    font-weight:400}
.faq details[open] summary::after{content:"－"}
.faq .a{color:var(--ink-soft); padding:0 40px 20px 0; margin:0}

/* S10 */
.cta{text-align:center}
.cta p{color:var(--ink-soft)}
.cta .btn{margin:8px 0 16px}
.cross{margin-top:48px; padding-top:32px; border-top:1px solid var(--line);
       font-size:15px; color:var(--ink-soft); display:flex; gap:24px; justify-content:center;
       flex-wrap:wrap}

/* フッター */
.ft{border-top:1px solid var(--line); padding:64px 0 80px; font-size:15px; color:var(--ink-soft)}
.ft-links{display:flex; gap:24px; flex-wrap:wrap; margin-bottom:32px}
.ft-name{font-weight:700; color:var(--ink); margin-bottom:16px}
.ft-info{margin-bottom:32px; line-height:1.9}
.ft-tm{font-size:13px; line-height:1.9; color:var(--ink-dim)}
.ft-cr{margin-top:32px; font-size:13px; color:var(--ink-dim)}

/* 法務ページ */
.doc{padding:64px 0 96px}
.doc h1{font-size:36px; margin-bottom:40px}
.doc h2{font-size:22px; margin:48px 0 16px}
.doc h3{font-size:18px; margin:32px 0 12px}
.doc p,.doc li{color:var(--ink-soft)}
.doc ol,.doc ul{padding-left:1.4em; margin:0 0 16px}
.doc li{margin-bottom:8px}
.doc table{width:100%; border-collapse:collapse; margin:16px 0 24px; font-size:16px}
.doc th,.doc td{border:1px solid var(--line); padding:12px 16px; text-align:left; vertical-align:top}
.doc th{background:var(--card); color:var(--ink); font-weight:700; white-space:nowrap}
.doc td{color:var(--ink-soft)}
.doc .note{background:var(--card); border:1px solid var(--line); border-left:2px solid var(--acc);
           border-radius:var(--r); padding:20px 24px; margin:16px 0 24px}
.doc .note p:last-child{margin-bottom:0}
.doc hr{border:0; border-top:1px solid var(--line); margin:48px 0}
.todo{background:rgba(240,180,81,.14); color:#f0b451; border-radius:4px; padding:2px 6px}
.doc-back{margin-top:64px}

/* タブレット */
@media (max-width:1080px){
  .wrap,.hd-in{padding:0 32px}
  .sec{padding:96px 0}
  h1{font-size:44px}
  h2{font-size:32px}
  .cards,.steps,.points{grid-template-columns:repeat(2,1fr); gap:20px}
  .prices{grid-template-columns:repeat(2,1fr); gap:20px}
  .price.reco{transform:none}
  .price-free{grid-column:1 / -1}
}
/* モバイル */
@media (max-width:720px){
  body{font-size:16px}
  .wrap,.hd-in{padding:0 20px}
  .sec{padding:72px 0}
  h1{font-size:28px}
  h2{font-size:26px; margin-bottom:20px}
  h3{font-size:18px}
  .hd-nav{display:none}
  .hd-cta{margin-left:auto}
  .hero{padding:40px 0 64px}
  .hero .btns{flex-direction:column; gap:12px}
  .hero .btns .btn{width:100%}
  .hero-fig{margin-top:40px; padding:16px 16px 12px}
  .demo video{display:none}
  .demo-poster{display:block}
  .cards,.steps,.points,.grid2,.prices{grid-template-columns:1fr; gap:16px}
  .card,.box,.price{padding:24px}
  .env{grid-template-columns:1fr; gap:4px 0}
  .env dd{margin-bottom:12px}
  .cta .btn{width:100%}
  .price-free{grid-column:auto}
  .doc h1{font-size:28px}
  .doc th{white-space:normal}
}
