@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css');

*, *::before, *::after { box-sizing: border-box; }
body, div, span, p, a, ul, li, h1, h2, h3, h4 {
  font-family: 'Pretendard Variable', Pretendard, -apple-system, 'Apple SD Gothic Neo', sans-serif;
  -webkit-font-smoothing: antialiased;
  word-break: keep-all;
}
body { margin: 0; background: #fff; color: #1A1A1A; font-size: 15px; line-height: 1.8; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 10px; }

/* ── layout ── */
.page { max-width: 720px; margin: 0 auto; padding: 56px 24px 100px; }

/* ── hero title ── */
.hero-title-wrap {
  padding-bottom: 32px;
  margin-bottom: 48px;
  border-bottom: 1px solid #EBEBEB;
}
.hero-title {
  font-size: 32px; font-weight: 800; letter-spacing: -0.035em;
  line-height: 1.25; margin: 0 0 14px; color: #1A1A1A;
}
.intro-body {
  margin-top: 14px;
  padding: 14px 18px;
  border-left: 3px solid #EBEBEB;
  font-size: 15px; font-weight: 500; color: #1A1A1A;
  line-height: 1.75;
}

/* ── section ── */
.section { margin-bottom: 64px; }
.section + .section { border-top: 1px solid #EBEBEB; padding-top: 56px; }

.section-eyebrow {
  font-size: 11px; font-weight: 700; color: #FB4B3F;
  letter-spacing: .1em; text-transform: uppercase; margin-bottom: 10px;
}
.section-title {
  font-size: 26px; font-weight: 700; letter-spacing: -0.025em;
  line-height: 1.3; margin: 0 0 16px;
}

/* ── callout ── */
.callout {
  background: #F7F6F3; border-radius: 10px;
  padding: 24px 28px; margin: 20px 0;
}
.callout-head { font-size: 14px; font-weight: 700; margin-bottom: 14px; }
.callout-quote {
  border-left: 2.5px solid #FB4B3F; padding: 6px 0 6px 16px;
  margin: 8px 0; font-size: 14px; color: #2A2A2A;
}
.callout-source { font-size: 12px; color: #777; margin-top: 3px; }
.callout-body { margin-top: 18px; font-size: 14px; line-height: 1.8; }
.callout-projects { list-style: none; padding: 0; margin: 14px 0 0; }
.callout-projects li {
  font-size: 14px; padding: 7px 0 7px 16px; position: relative;
  border-bottom: 1px solid #EEEDE9; color: #333;
}
.callout-projects li::before { content: '→'; position: absolute; left: 0; color: #FB4B3F; font-size: 12px; top: 9px; }
.callout-projects li a { color: #1A1A1A; text-decoration: underline; text-decoration-color: #ddd; text-underline-offset: 3px; transition: color .15s, font-weight .15s; }
.callout-projects li a:hover { color: #FB4B3F; text-decoration-color: #FB4B3F; font-weight: 700; }
.callout-bottom { margin-top: 18px; padding-top: 14px; border-top: 1px solid #DEDCD8; font-size: 14px; font-weight: 700; color: #FB4B3F; }

/* ── steps ── */
.step-list { display: flex; flex-direction: column; gap: 32px; margin-top: 8px; }
.step { display: flex; gap: 20px; }
.step-marker {
  display: flex; flex-direction: column; align-items: center; gap: 0; flex-shrink: 0;
}
.step-circle {
  width: 32px; height: 32px; border-radius: 50%;
  background: #1A1A1A; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; flex-shrink: 0;
}
.step-line { width: 1px; flex: 1; background: #E0DEDA; margin-top: 6px; min-height: 40px; }
.step:last-child .step-line { display: none; }
.step-body { padding-top: 4px; }
.step-body h3 { font-size: 15px; font-weight: 700; margin: 0 0 6px; }
.step-body p { font-size: 14px; color: #333; margin: 0; }

.guide-note {
  margin-top: 24px; background: #F0EFF9; border-radius: 8px;
  padding: 14px 18px; font-size: 14px; color: #4A47A3;
  display: flex; gap: 8px;
}

/* ── benefits ── */
.benefit-block { margin-bottom: 32px; padding-bottom: 32px; border-bottom: 1px solid #F2F1EF; }
.benefit-block:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.benefit-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.benefit-title { font-size: 16px; font-weight: 700; }
.benefit-tag {
  font-size: 11px; font-weight: 700; border-radius: 4px;
  padding: 3px 9px; white-space: nowrap;
}
.benefit-tag--red { background: rgba(251,75,63,.10); color: #C83D1A; }
.benefit-tag--gray { background: #EEEDE9; color: #666; }
.benefit-body { font-size: 14px; color: #2A2A2A; line-height: 1.8; }

.benefit-table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 12px 0; }
.benefit-table th { background: #F5F5F2; text-align: left; padding: 9px 14px; font-weight: 600; border-bottom: 1px solid #EBEBEB; font-size: 13px; }
.benefit-table td { padding: 9px 14px; border-bottom: 1px solid #F2F2F0; color: #333; }

.benefit-notice {
  margin-top: 10px; padding: 12px 16px; background: #FFFAF9;
  border: 1px solid #FAC8BC; border-radius: 6px;
  font-size: 13px; color: #555; line-height: 1.7;
}
.benefit-notice p { margin: 2px 0; }
.benefit-notice p::before { content: '⚠️ '; }

.benefit-list { list-style: none; padding: 0; margin: 8px 0 0; }
.benefit-list li { font-size: 14px; color: #2A2A2A; padding: 5px 0 5px 14px; position: relative; border-bottom: 1px solid #F2F2F0; }
.benefit-list li::before { content: '•'; position: absolute; left: 0; color: #888; }
.benefit-list li:last-child { border-bottom: none; }

/* launch badge */
.launch-badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 700;
  background: #FFF0EE; border: 1px solid #FAC8BC;
  color: #C83D1A; border-radius: 20px; padding: 4px 12px;
  margin-bottom: 20px;
}

/* ── target ── */
.target-list { display: flex; flex-direction: column; gap: 0; margin-top: 4px; }
.target-item { padding: 18px 0; border-bottom: 1px solid #EBEBEB; }
.target-item:last-of-type { border-bottom: none; }
.target-label {
  display: inline-block; font-size: 12px; font-weight: 700;
  border-radius: 4px; padding: 3px 10px; margin-bottom: 8px;
}
.target-label--a { background: rgba(132,154,248,.15); color: #3B3BA0; }
.target-label--b { background: rgba(251,75,63,.10); color: #C83D1A; }
.target-desc { font-size: 15px; color: #1A1A1A; margin-bottom: 4px; }
.target-sub { font-size: 13px; color: #555; }
.target-common { margin-top: 16px; background: #F7F6F3; border-radius: 8px; padding: 14px 18px; font-size: 14px; color: #333; }

/* ── faq ── */
.faq-item { padding: 18px 0; border-bottom: 1px solid #EBEBEB; }
.faq-item:last-child { border-bottom: none; }
.faq-q { font-size: 15px; font-weight: 700; margin-bottom: 8px; display: flex; gap: 8px; }
.faq-q::before { content: 'Q.'; color: #FB4B3F; flex-shrink: 0; }
.faq-a { font-size: 14px; color: #333; line-height: 1.8; padding-left: 24px; }
.faq-a ul { list-style: none; padding: 0; margin: 0; }
.faq-a li { padding: 2px 0 2px 12px; position: relative; }
.faq-a li::before { content: '·'; position: absolute; left: 0; color: #666; }

/* ── notice ── */
.notice-list { list-style: none; padding: 0; margin-top: 4px; }
.notice-list li { font-size: 14px; color: #333; line-height: 1.75; padding: 7px 0 7px 14px; border-bottom: 1px solid #F2F2F0; position: relative; }
.notice-list li::before { content: '•'; position: absolute; left: 0; color: #666; }
.notice-list li:last-child { border-bottom: none; }

/* ── contact ── */
.contact-box { background: #F7F6F3; border-radius: 10px; padding: 22px 28px; margin-top: 4px; }
.contact-box p { font-size: 14px; color: #333; margin: 0 0 10px; }
.contact-email { font-size: 16px; font-weight: 700; color: #1A1A1A; display: flex; align-items: center; gap: 6px; }

@media (max-width: 540px) {
  .page { padding: 36px 18px 72px; }
  .section-title { font-size: 22px; }
}

.page { padding-bottom: 88px; }
