/* ---------- 資料ダウンロード（ステップフォーム） ---------- */
.dl-page{background:linear-gradient(180deg,#fff4e6 0,var(--cream) 420px);min-height:100vh;display:flex;flex-direction:column}
.dl-header{height:76px;border-bottom:1px solid var(--line);background:#fffaf1e6;backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}
.dl-header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.dl-back-top{font-size:13px;font-weight:700;color:var(--muted)}
.dl-back-top:hover{color:var(--orange)}
.dl-main{flex:1;padding:56px 0 80px}
.dl-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start;max-width:1080px}

/* 左：資料紹介 */
.dl-intro{position:sticky;top:110px}
.dl-intro h1{font-size:36px;font-weight:900;letter-spacing:.03em}
.dl-intro-lead{font-size:14px;color:var(--muted);margin-top:14px}
.dl-cover{position:relative;margin:30px 0 26px;width:min(100%,340px);aspect-ratio:1.414/1}
.dl-cover-sheet{position:absolute;inset:0;background:#fff;border-radius:10px;border:1px solid var(--line);box-shadow:0 20px 40px -18px #5834183d;padding:22px 24px;display:flex;flex-direction:column;overflow:hidden}
.dl-cover-sheet.back{transform:translate(14px,12px) rotate(3deg);background:var(--peach);box-shadow:none}
.dl-cover-sheet::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--orange)}
.dl-cover-sheet>img{width:70px}
.dl-cover-sheet b{font-size:19px;font-weight:900;margin-top:10px;line-height:1.3}
.dl-cover-sheet small{font-size:9px;color:var(--muted)}
.dl-cover-art{position:absolute;right:-6px;bottom:-10px;width:62%}
.dl-cover-art img{mix-blend-mode:multiply}
.dl-contents{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px}
.dl-contents b{font-size:13px}
.dl-contents ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.dl-contents li{font-size:13px;padding-left:22px;position:relative}
.dl-contents li::before{content:"✓";position:absolute;left:0;color:var(--orange);font-weight:900}

/* 右：カード */
.dl-card{background:#fff;border-radius:18px;border:1px solid var(--line);box-shadow:0 24px 50px -24px #5834183d;padding:34px 38px 30px;min-height:520px;display:flex;flex-direction:column}
.dl-form{display:flex;flex-direction:column;flex:1}
.dl-progress{padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:30px}
.dl-progress-label{display:flex;align-items:baseline;gap:4px;margin:0 0 12px}
.dl-progress-now{font-size:30px;font-weight:900;color:var(--orange);line-height:1;font-feature-settings:"tnum"}
.dl-progress-total{font-size:14px;font-weight:800;color:var(--muted);margin-right:12px}
.dl-progress-label b{font-size:15px}
.dl-progress-bar{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.dl-progress-bar li{height:7px;border-radius:99px;background:#efe8de;position:relative;overflow:hidden}
.dl-progress-bar li::after{content:"";position:absolute;inset:0;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.dl-progress-bar li.is-done::after{transform:none;opacity:.45}
.dl-progress-bar li.is-active::after{transform:none}

.dl-step{border:0;margin:0;padding:0;min-width:0}
.js .dl-step{display:none}
.js .dl-step.is-current{display:block;animation:dl-in .4s cubic-bezier(.2,.7,.2,1)}
.js .dl-step.is-current.from-back{animation-name:dl-in-back}
@keyframes dl-in{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
@keyframes dl-in-back{from{opacity:0;transform:translateX(-26px)}to{opacity:1;transform:none}}
.dl-q{font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-size:26px;font-weight:900;line-height:1.45;padding:0;color:var(--ink)}
.dl-hint{font-size:12px;color:var(--muted);margin:8px 0 20px}

.dl-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.dl-chip{position:relative;cursor:pointer}
.dl-chip input{position:absolute;opacity:0;pointer-events:none}
.dl-chip span{display:flex;align-items:center;gap:12px;min-height:58px;padding:12px 18px;border:1.5px solid var(--line);border-radius:12px;background:#fffdf9;font-size:15px;font-weight:700;line-height:1.4;transition:border-color .2s,background .2s,box-shadow .2s,transform .15s}
.dl-chip span::before{content:"";flex:none;width:20px;height:20px;border-radius:50%;border:1.5px solid #cbbfb1;background:#fff;transition:border .2s,box-shadow .2s}
.dl-chip:hover span{border-color:#e5a07d;background:#fff}
.dl-chip input:checked+span{border-color:var(--orange);background:#fff3ea;box-shadow:0 0 0 3px #c947121a}
.dl-chip input:checked+span::before{border:6px solid var(--orange)}
.dl-chip input:focus-visible+span{outline:3px solid #c9471259;outline-offset:2px}
.dl-chip:active span{transform:scale(.98)}

.dl-fields{display:grid;gap:18px}
.dl-field{display:grid;gap:7px}
.dl-label{font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px}
.dl-label em{font-style:normal;font-size:10px;font-weight:700;color:#fff;background:var(--orange);border-radius:4px;padding:1px 6px}
.dl-field input{width:100%;height:52px;border:1.5px solid var(--line);border-radius:10px;padding:0 16px;font:inherit;font-size:16px;background:#fffdf9;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.dl-field input::placeholder{color:#b5aaa0}
.dl-field input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px #c947121f;background:#fff}
.dl-error{display:none;font-size:12px;color:#c62828;font-weight:700}
.dl-field.is-invalid input{border-color:#e05353;background:#fff7f7}
.dl-field.is-invalid .dl-error,.dl-agree-error.is-shown{display:block}
.dl-agree{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer;margin-top:4px}
.dl-agree input{width:20px;height:20px;accent-color:var(--orange);flex:none}
.dl-agree a{color:var(--orange);text-decoration:underline;text-underline-offset:3px}

.dl-actions{margin-top:auto;padding-top:32px;display:grid;justify-items:center;gap:14px}
.dl-next{width:min(100%,420px);min-height:60px;border:0;border-radius:999px;background:#db480e;color:#fff;font:inherit;font-size:16px;font-weight:900;letter-spacing:.06em;cursor:pointer;box-shadow:0 5px 0 var(--deep),0 12px 24px -8px #be431d66;transition:background .2s,transform .15s,box-shadow .15s,opacity .2s}
.dl-next:hover:not(:disabled){background:#bd3507}
.dl-next:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 var(--deep)}
.dl-next:disabled{background:#e7ddd2;color:#a99d92;box-shadow:none;cursor:not-allowed}
.dl-next.is-submit{background:var(--orange)}
.dl-prev{background:none;border:0;font:inherit;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:4px;padding:4px}
.dl-prev:hover{color:var(--ink)}
.dl-mock-note{font-size:11px;color:#a99d92;margin:0}

/* 完了画面 */
.dl-done{text-align:center;padding:28px 0 8px;animation:dl-in .5s cubic-bezier(.2,.7,.2,1)}
.dl-done:focus{outline:none}
.dl-done-check{width:68px;height:68px;border-radius:50%;background:#fff3ea;color:var(--orange);display:grid;place-items:center;margin:0 auto 16px;font-size:30px;font-weight:900;box-shadow:0 0 0 8px #c947120f}
.dl-done h2{font-size:26px;font-weight:900}
.dl-done>p{font-size:14px;color:var(--muted);margin-top:10px}
.dl-download{display:flex;align-items:center;justify-content:center;gap:12px;width:min(100%,420px);min-height:62px;margin:26px auto 0;border-radius:999px;background:#db480e;color:#fff;font-weight:900;font-size:16px;box-shadow:0 5px 0 var(--deep)}
.dl-download:hover{background:#bd3507}
.dl-done-next{margin-top:36px;padding-top:26px;border-top:1px dashed var(--line);display:grid;justify-items:center;gap:12px}
.dl-done-next>span{font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--muted)}
.dl-done-next .btn{background:#fff;color:var(--orange);border:1.5px solid var(--orange);box-shadow:none}
.dl-done-next .btn:hover{background:#fff3ea;transform:none}
.dl-done-next .btn .arrow{background:#c9471214}
.dl-textlink{font-size:13px;font-weight:700;color:var(--muted);text-decoration:underline;text-underline-offset:4px}

.dl-footer{padding:26px 0;font-size:11px;color:var(--muted);text-align:center;border-top:1px solid var(--line)}

@media(max-width:900px){
  .dl-main{padding:28px 0 60px}
  .dl-grid{grid-template-columns:1fr;gap:22px}
  .dl-intro{position:static;display:grid;grid-template-columns:1fr 128px;gap:0 18px;align-items:center}
  .dl-intro .eyebrow{grid-column:1/-1}
  .dl-intro h1{font-size:24px}
  .dl-intro-lead{font-size:12px;margin-top:8px;grid-column:1}
  .dl-intro h1{grid-column:1}
  .dl-cover{grid-column:2;grid-row:2/4;margin:0;width:128px}
  .dl-cover-sheet{padding:10px 12px;border-radius:6px}
  .dl-cover-sheet>img{width:38px}
  .dl-cover-sheet b{font-size:10px;margin-top:4px}
  .dl-cover-sheet small{display:none}
  .dl-cover-sheet.back{transform:translate(7px,6px) rotate(3deg)}
  .dl-contents{display:none}
  .pc-only{display:none}
}
@media(max-width:580px){
  .dl-header{height:62px}
  .dl-back-top{font-size:12px}
  .dl-card{padding:24px 18px 22px;border-radius:16px;min-height:0}
  .dl-progress{padding-bottom:18px;margin-bottom:24px}
  .dl-progress-now{font-size:26px}
  .dl-q{font-size:21px}
  .dl-hint{margin-bottom:16px}
  .dl-choices{grid-template-columns:1fr;gap:8px}
  .dl-chip span{min-height:54px;font-size:15px}
  .dl-actions{padding-top:26px}
  .dl-done h2{font-size:22px}
}
@media(prefers-reduced-motion:reduce){.js .dl-step.is-current,.dl-done{animation:none}.dl-progress-bar li::after{transition:none}}
.dl-form[hidden],.dl-done[hidden],.dl-prev[hidden]{display:none}
.dl-intro h1 .nw{display:inline-block}
@media(min-width:901px){.dl-intro h1 .nw{display:block}}
.dl-footer-inner{display:flex;flex-direction:column;align-items:center;gap:10px}
.dl-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;font-size:12px}
.dl-footer-links a:hover{color:var(--orange)}
.dl-progress-bar{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}
