/* =========================================================
 * proposal.html 専用スタイル
 * 既存のデザイントークン（common.css の :root 変数）を継承
 * ========================================================= */

/* ---------- proposal hero（3行コピー） ---------- */
.prop-hero{
  min-height:calc(100vh - 64px);
  min-height:calc(100svh - 64px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding-block:clamp(40px,6vw,80px);
  position:relative;
}
.prop-hero__eyebrow{
  font-family:var(--font-en);
  font-size:12px;
  letter-spacing:.3em;
  color:var(--color-mute);
  text-transform:uppercase;
  margin-bottom:32px;
  opacity:0;
  transform:translateY(8px);
  transition:opacity 1s ease .2s,transform 1s ease .2s;
}
.prop-hero__copy{
  font-size:clamp(26px,4.8vw,56px);
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.55;
  margin-bottom:40px;
  opacity:0;
  transform:translateY(16px);
  filter:blur(6px);
  transition:opacity 1.4s cubic-bezier(.22,1,.36,1),
             transform 1.4s cubic-bezier(.22,1,.36,1),
             filter 1.4s cubic-bezier(.22,1,.36,1);
}
.prop-hero__copy span{display:block}
.prop-hero__sub{
  color:var(--color-sub);
  font-size:clamp(13px,1.3vw,15px);
  letter-spacing:.18em;
  margin-bottom:52px;
  opacity:0;
  transform:translateY(8px);
  transition:opacity 1s ease .5s,transform 1s ease .5s;
  font-variant-numeric:tabular-nums;
}
.prop-hero__cta{
  opacity:0;
  transform:translateY(8px);
  transition:opacity .9s ease .8s,transform .9s ease .8s;
  padding:14px 36px;
  font-size:13px;
  letter-spacing:.24em;
  font-family:var(--font-en);
  font-weight:500;
  text-transform:uppercase;
}
.prop-hero--revealed .prop-hero__eyebrow,
.prop-hero--revealed .prop-hero__sub,
.prop-hero--revealed .prop-hero__cta{opacity:1;transform:translateY(0)}
.prop-hero--revealed .prop-hero__copy{opacity:1;transform:translateY(0);filter:blur(0)}
@media(prefers-reduced-motion:reduce){
  .prop-hero__eyebrow,.prop-hero__copy,.prop-hero__sub,.prop-hero__cta{
    opacity:1;transform:none;filter:none;transition:none;
  }
}

/* ---------- セクション2：このページでわかること ---------- */
.what-you-get{
  max-width:720px;
  margin:0 auto;
  padding:clamp(32px,4vw,48px);
  border:1px solid var(--color-line);
  border-radius:var(--radius);
  background:#fff;
}
.what-you-get ul{
  display:grid;
  gap:16px;
  grid-template-columns:1fr;
}
@media(min-width:640px){
  .what-you-get ul{grid-template-columns:1fr 1fr}
}
.what-you-get li{
  padding:14px 8px 14px 32px;
  position:relative;
  font-size:14px;
  line-height:1.75;
  letter-spacing:.03em;
  color:var(--color-sub);
  border-bottom:1px solid var(--color-line);
}
.what-you-get li::before{
  content:"";
  position:absolute;
  left:2px;
  top:20px;
  width:14px;
  height:7px;
  border-left:1.5px solid var(--color-ink);
  border-bottom:1.5px solid var(--color-ink);
  transform:rotate(-45deg);
}
.what-you-get__note{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--color-line);
  text-align:center;
  font-size:12px;
  letter-spacing:.18em;
  color:var(--color-mute);
}

/* ---------- セクション3：問題提起 ---------- */
.problems{
  display:grid;
  gap:20px;
  grid-template-columns:1fr;
  max-width:960px;
  margin:0 auto 48px;
}
@media(min-width:760px){
  .problems{grid-template-columns:repeat(3,1fr)}
}
.problems li{
  border:1px solid var(--color-line);
  border-radius:var(--radius);
  padding:32px 24px;
  color:var(--color-sub);
  font-size:14px;
  line-height:1.9;
  letter-spacing:.03em;
  position:relative;
}
.problems li::before{
  content:"";
  display:block;
  width:12px;
  height:12px;
  border:1.5px solid var(--color-ink);
  transform:rotate(45deg);
  margin-bottom:20px;
}
.problems__closing{
  text-align:center;
  max-width:40em;
  margin:0 auto;
  padding-top:48px;
  border-top:1px solid var(--color-line);
  font-size:clamp(15px,1.6vw,18px);
  line-height:1.95;
  letter-spacing:.08em;
  color:var(--color-ink);
}

/* ---------- セクション4：解決策 ---------- */
.solution-trio{
  display:grid;
  gap:24px;
  grid-template-columns:1fr;
  max-width:880px;
  margin:0 auto 48px;
}
@media(min-width:720px){
  .solution-trio{grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px)}
}
.solution-trio li{
  padding:40px 24px;
  text-align:center;
  border:1px solid var(--color-line);
  border-radius:var(--radius);
  background:#fff;
}
.solution-trio .solution-trio__num{
  display:block;
  font-family:var(--font-en);
  font-size:11px;
  letter-spacing:.3em;
  color:var(--color-mute);
  margin-bottom:20px;
}
.solution-trio strong{
  display:block;
  font-size:clamp(17px,1.9vw,20px);
  font-weight:700;
  letter-spacing:.06em;
  color:var(--color-ink);
  line-height:1.6;
}
.solution-trio__closing{
  text-align:center;
  max-width:42em;
  margin:0 auto;
  padding-top:40px;
  border-top:1px solid var(--color-line);
  font-size:clamp(14px,1.5vw,16px);
  line-height:2;
  letter-spacing:.08em;
  color:var(--color-sub);
}

/* ---------- セクション5：5つの根拠（大きい番号） ---------- */
.reasons{
  display:flex;
  flex-direction:column;
  gap:clamp(48px,7vw,88px);
  max-width:920px;
  margin:56px auto 0;
  list-style:none;
  padding:0;
}
.reason{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  padding-top:32px;
  border-top:1px solid var(--color-ink);
}
@media(min-width:760px){
  .reason{grid-template-columns:180px 1fr;gap:clamp(32px,4vw,56px)}
}
.reason__num{
  font-family:var(--font-en);
  font-size:clamp(56px,8vw,104px);
  font-weight:700;
  letter-spacing:.02em;
  color:var(--color-ink);
  line-height:1;
  font-variant-numeric:tabular-nums;
}
.reason__head{
  font-size:clamp(18px,2.2vw,24px);
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.55;
  margin-bottom:20px;
  color:var(--color-ink);
}
.reason__head small{
  display:block;
  font-family:var(--font-en);
  font-size:12px;
  font-weight:500;
  letter-spacing:.28em;
  color:var(--color-mute);
  text-transform:uppercase;
  margin-bottom:12px;
}
.reason__body{
  color:var(--color-sub);
  font-size:15px;
  line-height:2;
  letter-spacing:.04em;
}
.reason__body p + p{margin-top:1em}
.reason__body ul{
  margin:1em 0 0;
  padding:0;
  list-style:none;
}
.reason__body li{
  padding:6px 0 6px 20px;
  position:relative;
  font-size:14px;
  line-height:1.9;
}
.reason__body li::before{
  content:"";
  position:absolute;
  left:0;
  top:18px;
  width:10px;
  height:1.5px;
  background:var(--color-ink);
}

/* ---------- セクション6：相場アンカリング ---------- */
.anchor-grid{
  display:grid;
  gap:20px;
  grid-template-columns:1fr;
  max-width:960px;
  margin:0 auto 56px;
}
@media(min-width:760px){
  .anchor-grid{grid-template-columns:repeat(3,1fr)}
}
.anchor-card{
  padding:32px 24px;
  border:1px solid var(--color-line);
  border-radius:var(--radius);
  text-align:center;
  background:#fff;
}
.anchor-card__label{
  display:block;
  font-size:12px;
  letter-spacing:.18em;
  color:var(--color-mute);
  margin-bottom:20px;
  font-family:var(--font-en);
  text-transform:uppercase;
}
.anchor-card__row{
  padding:12px 0;
  border-top:1px solid var(--color-line);
}
.anchor-card__row:first-of-type{border-top:0;padding-top:0}
.anchor-card__row-label{
  display:block;
  font-size:11px;
  letter-spacing:.18em;
  color:var(--color-mute);
  margin-bottom:6px;
}
.anchor-card__row-value{
  display:block;
  font-size:clamp(18px,2.2vw,22px);
  font-weight:700;
  letter-spacing:.03em;
  color:var(--color-sub);
  font-variant-numeric:tabular-nums;
}
.anchor-card__note{
  margin-top:12px;
  font-size:12px;
  letter-spacing:.08em;
  color:var(--color-mute);
  line-height:1.7;
}
.anchor-answer{
  max-width:720px;
  margin:0 auto;
  padding:clamp(40px,5vw,64px) clamp(24px,4vw,48px);
  border:1px solid var(--color-ink);
  border-radius:var(--radius);
  text-align:center;
  background:#fff;
}
.anchor-answer__label{
  display:block;
  font-family:var(--font-en);
  font-size:12px;
  letter-spacing:.3em;
  color:var(--color-mute);
  text-transform:uppercase;
  margin-bottom:24px;
}
.anchor-answer__row{
  display:flex;
  justify-content:center;
  align-items:baseline;
  gap:12px;
  padding:16px 0;
  border-top:1px solid var(--color-line);
}
.anchor-answer__row:first-of-type{border-top:0}
.anchor-answer__row-label{
  font-size:13px;
  letter-spacing:.18em;
  color:var(--color-sub);
}
.anchor-answer__row-value{
  font-size:clamp(28px,4.2vw,44px);
  font-weight:700;
  letter-spacing:.02em;
  color:var(--color-ink);
  font-variant-numeric:tabular-nums;
}
.anchor-answer__row-unit{
  font-size:12px;
  letter-spacing:.16em;
  color:var(--color-sub);
}
.anchor-bridge{
  max-width:36em;
  margin:48px auto 0;
  text-align:center;
  font-size:clamp(13px,1.4vw,15px);
  line-height:2;
  letter-spacing:.1em;
  color:var(--color-sub);
}

/* ---------- セクション7：料金プラン CTA ---------- */
.price-cta{
  display:flex;
  justify-content:center;
  margin-top:40px;
}

/* ---------- セクション8：比較表 ---------- */
.comparison-wrap{
  max-width:var(--max);
  margin:0 auto;
  overflow-x:auto;
}
.comparison{
  width:100%;
  min-width:640px;
  border-collapse:collapse;
  font-variant-numeric:tabular-nums;
}
.comparison th,
.comparison td{
  padding:16px 14px;
  font-weight:400;
  text-align:left;
  border-bottom:1px solid var(--color-line);
  font-size:14px;
  color:var(--color-sub);
  letter-spacing:.03em;
  vertical-align:top;
  line-height:1.65;
}
.comparison thead th{
  font-weight:500;
  font-size:13px;
  color:var(--color-mute);
  letter-spacing:.14em;
  text-transform:uppercase;
  font-family:var(--font-en);
  padding-bottom:20px;
  border-bottom:1px solid var(--color-ink);
  text-align:center;
}
.comparison thead th:first-child{text-align:left}
.comparison tbody th{
  font-weight:500;
  color:var(--color-ink);
  font-size:13.5px;
  letter-spacing:.04em;
  width:22%;
  white-space:nowrap;
}
.comparison td{text-align:center}
.comparison .col-ours{
  background:#FAFAFA;
  border-left:1px solid var(--color-ink);
  border-right:1px solid var(--color-ink);
  color:var(--color-ink);
  font-weight:500;
}
.comparison thead .col-ours{
  background:var(--color-ink);
  color:#fff;
  border-left:1px solid var(--color-ink);
  border-right:1px solid var(--color-ink);
  border-bottom-color:var(--color-ink);
}
.comparison tbody tr:last-child .col-ours{
  border-bottom:1px solid var(--color-ink);
}
.comparison__note{
  margin-top:20px;
  font-size:12px;
  color:var(--color-mute);
  letter-spacing:.06em;
  text-align:right;
}
@media(max-width:760px){
  .comparison__scroll-hint{
    display:block;
    text-align:center;
    font-size:11px;
    letter-spacing:.18em;
    color:var(--color-mute);
    margin-bottom:14px;
    text-transform:uppercase;
    font-family:var(--font-en);
  }
}
@media(min-width:761px){
  .comparison__scroll-hint{display:none}
}

/* ---------- セクション9：制作スケジュール ---------- */
.timeline{
  display:grid;
  gap:24px;
  grid-template-columns:1fr;
  max-width:var(--max);
  margin:0 auto 40px;
  counter-reset:tl;
  list-style:none;
  padding:0;
}
@media(min-width:820px){
  .timeline{grid-template-columns:repeat(4,1fr);gap:20px}
}
.timeline li{
  padding:32px 24px;
  border:1px solid var(--color-line);
  border-radius:var(--radius);
  position:relative;
  background:#fff;
}
.timeline li::before{
  counter-increment:tl;
  content:"STEP 0" counter(tl);
  display:block;
  font-family:var(--font-en);
  font-size:11px;
  letter-spacing:.24em;
  color:var(--color-mute);
  margin-bottom:12px;
}
.timeline__week{
  display:inline-block;
  font-family:var(--font-en);
  font-size:12px;
  font-weight:500;
  letter-spacing:.2em;
  color:var(--color-ink);
  padding:4px 10px;
  border:1px solid var(--color-ink);
  border-radius:999px;
  margin-bottom:16px;
}
.timeline h3{
  font-size:16px;
  font-weight:700;
  letter-spacing:.04em;
  margin-bottom:12px;
}
.timeline p{
  font-size:13px;
  color:var(--color-sub);
  line-height:1.8;
  letter-spacing:.02em;
}
.timeline__note{
  max-width:40em;
  margin:0 auto;
  text-align:center;
  font-size:13px;
  color:var(--color-sub);
  letter-spacing:.08em;
  line-height:1.8;
  padding-top:32px;
  border-top:1px solid var(--color-line);
}
.timeline__note em{
  font-style:normal;
  color:var(--color-ink);
  font-weight:500;
  border-bottom:1px solid var(--color-ink);
  padding:0 .15em .05em;
}

/* ---------- セクション10：運用ルール ---------- */
.update-rules{
  max-width:720px;
  margin:0 auto;
}
.update-rules__list{
  display:grid;
  gap:14px;
  grid-template-columns:1fr;
}
@media(min-width:620px){
  .update-rules__list{grid-template-columns:1fr 1fr}
}
.update-rules__list li{
  padding:18px 20px 18px 48px;
  border:1px solid var(--color-line);
  border-radius:var(--radius);
  position:relative;
  font-size:14px;
  line-height:1.75;
  color:var(--color-sub);
  letter-spacing:.03em;
}
.update-rules__list li::before{
  content:"";
  position:absolute;
  left:18px;
  top:24px;
  width:14px;
  height:7px;
  border-left:1.5px solid var(--color-ink);
  border-bottom:1.5px solid var(--color-ink);
  transform:rotate(-45deg);
}
.update-rules__note{
  margin-top:24px;
  padding:20px 24px;
  background:#FAFAFA;
  border-left:2px solid var(--color-ink);
  font-size:13px;
  line-height:1.95;
  color:var(--color-sub);
  letter-spacing:.04em;
}

/* ---------- セクション11：サブスク解約の不安解消 ---------- */
.plan-promise{
  display:grid;
  gap:32px;
  grid-template-columns:1fr;
  max-width:920px;
  margin:0 auto 48px;
}
@media(min-width:820px){
  .plan-promise{grid-template-columns:1fr 1fr;gap:40px}
}
.plan-promise__block{
  padding:clamp(28px,3.5vw,40px);
  border-radius:var(--radius);
  background:#fff;
}
.plan-promise__block--bad{
  border:1px solid var(--color-line);
}
.plan-promise__block--good{
  border:1px solid var(--color-ink);
}
.plan-promise__label{
  display:block;
  font-family:var(--font-en);
  font-size:11px;
  letter-spacing:.3em;
  color:var(--color-mute);
  text-transform:uppercase;
  margin-bottom:16px;
}
.plan-promise__title{
  font-size:clamp(16px,1.8vw,19px);
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.55;
  margin-bottom:24px;
  color:var(--color-ink);
}
.plan-promise__list{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin:0;
  padding:0;
  list-style:none;
}
.plan-promise__list li{
  padding:12px 4px 12px 32px;
  position:relative;
  font-size:14px;
  line-height:1.75;
  color:var(--color-sub);
  letter-spacing:.03em;
  border-bottom:1px solid var(--color-line);
}
.plan-promise__list li:last-child{border-bottom:0}
.plan-promise__list--bad li::before{
  content:"";
  position:absolute;
  left:4px;
  top:17px;
  width:14px;
  height:14px;
  background:
    linear-gradient(var(--color-mute),var(--color-mute)),
    linear-gradient(var(--color-mute),var(--color-mute));
  background-size:14px 1.5px,1.5px 14px;
  background-position:center;
  background-repeat:no-repeat;
  transform:rotate(45deg);
}
.plan-promise__list--good li::before{
  content:"";
  position:absolute;
  left:4px;
  top:15px;
  width:14px;
  height:14px;
  border:1.5px solid var(--color-ink);
  border-radius:50%;
}
.plan-promise__closing{
  text-align:center;
  max-width:34em;
  margin:0 auto;
  padding-top:48px;
  border-top:1px solid var(--color-line);
  font-size:clamp(17px,2vw,22px);
  font-weight:700;
  line-height:1.7;
  letter-spacing:.08em;
  color:var(--color-ink);
}

/* ---------- セクション12：向き / 不向き ---------- */
.fit-grid{
  display:grid;
  gap:24px;
  grid-template-columns:1fr;
  max-width:880px;
  margin:0 auto 40px;
}
@media(min-width:760px){
  .fit-grid{grid-template-columns:1fr 1fr;gap:32px}
}
.fit-card{
  padding:clamp(28px,3.5vw,40px);
  border:1px solid var(--color-line);
  border-radius:var(--radius);
  background:#fff;
}
.fit-card__label{
  display:block;
  font-family:var(--font-en);
  font-size:11px;
  letter-spacing:.3em;
  color:var(--color-mute);
  text-transform:uppercase;
  margin-bottom:8px;
}
.fit-card__head{
  font-size:clamp(16px,1.8vw,19px);
  font-weight:700;
  letter-spacing:.06em;
  margin-bottom:24px;
  color:var(--color-ink);
}
.fit-card ul{
  display:flex;
  flex-direction:column;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
}
.fit-card li{
  padding:14px 4px 14px 32px;
  position:relative;
  font-size:14px;
  line-height:1.75;
  color:var(--color-sub);
  letter-spacing:.03em;
  border-bottom:1px solid var(--color-line);
}
.fit-card li:last-child{border-bottom:0}
.fit-card--yes li::before{
  content:"";
  position:absolute;
  left:4px;
  top:17px;
  width:14px;
  height:14px;
  border:1.5px solid var(--color-ink);
  border-radius:50%;
}
.fit-card--no li::before{
  content:"";
  position:absolute;
  left:4px;
  top:17px;
  width:14px;
  height:14px;
  background:
    linear-gradient(var(--color-mute),var(--color-mute)),
    linear-gradient(var(--color-mute),var(--color-mute));
  background-size:14px 1.5px,1.5px 14px;
  background-position:center;
  background-repeat:no-repeat;
  transform:rotate(45deg);
}
.fit-closing{
  text-align:center;
  max-width:40em;
  margin:0 auto;
  font-size:13px;
  line-height:1.95;
  color:var(--color-sub);
  letter-spacing:.06em;
}

/* ---------- セクション13：よくある誤解 ---------- */
.misconceptions{
  display:flex;
  flex-direction:column;
  gap:clamp(28px,4vw,40px);
  max-width:820px;
  margin:0 auto;
  list-style:none;
  padding:0;
}
.misconception{
  padding:clamp(28px,3.5vw,40px);
  border:1px solid var(--color-line);
  border-radius:var(--radius);
  background:#fff;
}
.misconception__label{
  display:block;
  font-family:var(--font-en);
  font-size:11px;
  letter-spacing:.3em;
  color:var(--color-mute);
  text-transform:uppercase;
  margin-bottom:12px;
}
.misconception__q{
  font-size:clamp(16px,1.8vw,19px);
  font-weight:700;
  letter-spacing:.05em;
  line-height:1.6;
  color:var(--color-ink);
  margin-bottom:20px;
  padding-bottom:20px;
  border-bottom:1px solid var(--color-line);
}
.misconception__a{
  font-size:14px;
  line-height:2;
  color:var(--color-sub);
  letter-spacing:.04em;
}
.misconception__a p + p{margin-top:.8em}

/* ---------- セクション15：制作者紹介（プロフィール調整） ---------- */
.proposal-profile .profile__msg{
  white-space:pre-line;
}
.proposal-profile p{color:var(--color-sub)}
.proposal-profile p + p{margin-top:1em}

/* ---------- セクション16：最終CTA（既存 .cta の拡張） ---------- */
.cta--final .cta__sub{
  color:rgba(255,255,255,.7);
  font-size:14px;
  letter-spacing:.08em;
  line-height:1.95;
  margin:24px auto 8px;
  display:block;
}
.cta__secondary{
  display:inline-block;
  margin-top:24px;
  font-size:12px;
  letter-spacing:.18em;
  color:rgba(255,255,255,.72);
  border-bottom:1px solid rgba(255,255,255,.3);
  padding:4px 2px;
  transition:color .2s,border-color .2s;
}
.cta__secondary:hover{color:#fff;border-bottom-color:#fff}

/* ---------- Floating CTA ---------- */
.floating-cta{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:40;
  opacity:0;
  transform:translateY(16px);
  pointer-events:none;
  transition:opacity .3s ease,transform .3s ease;
}
.floating-cta.visible{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.floating-cta .btn{
  padding:14px 24px;
  font-size:13px;
  letter-spacing:.16em;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
@media(max-width:640px){
  .floating-cta{
    left:16px;
    right:16px;
    bottom:16px;
  }
  .floating-cta .btn{
    width:100%;
    justify-content:center;
    padding:16px 24px;
  }
}
@media print{.floating-cta{display:none}}
@media(prefers-reduced-motion:reduce){
  .floating-cta{transition:opacity .15s}
}

/* ---------- section 2 の「3分で読み終わります」 ---------- */
.center-note{
  text-align:center;
  margin-top:32px;
  font-size:12px;
  letter-spacing:.2em;
  color:var(--color-mute);
  font-family:var(--font-en);
}

/* ---------- simple-ask（「好きを教えてください」の優しい問いかけ） ---------- */
.simple-ask{
  max-width:36em;
  margin:64px auto 0;
  padding-top:56px;
  border-top:1px solid var(--color-line);
  text-align:center;
}
.simple-ask .eyebrow{margin-bottom:24px}
.simple-ask__q{
  font-size:clamp(20px,2.6vw,28px);
  font-weight:700;
  letter-spacing:.08em;
  line-height:1.65;
  color:var(--color-ink);
  margin-bottom:24px;
}
.simple-ask__q em{
  font-style:normal;
  font-weight:700;
  padding:0 .12em .05em;
  border-bottom:2px solid var(--color-ink);
}
.simple-ask__a{
  font-size:clamp(13px,1.45vw,15px);
  line-height:2;
  letter-spacing:.08em;
  color:var(--color-sub);
}

/* ---------- 補助：h2 の上に添える小さなブリッジテキスト ---------- */
.bridge-copy{
  text-align:center;
  max-width:40em;
  margin:40px auto 0;
  padding-top:32px;
  border-top:1px solid var(--color-line);
  font-size:clamp(14px,1.5vw,16px);
  line-height:1.95;
  letter-spacing:.08em;
  color:var(--color-sub);
}
.bridge-copy em{
  font-style:normal;
  color:var(--color-ink);
  font-weight:500;
  border-bottom:1px solid var(--color-ink);
  padding:0 .15em .05em;
}
