/* =========================================================
 * 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;
}

/* ===== Proposal CRO additions（PDCA 10サイクル磨き上げ） ===== */

/* hero に追加: 日額・月額・年額の心理フレーミング */
.prop-hero__day-rate{
  font-size:14px;
  color:rgba(255,255,255,.7);
  letter-spacing:.04em;
  margin-bottom:32px;
  line-height:1.7;
}
.prop-hero__day-rate strong{color:#fff;font-weight:500}
.prop-hero__ctas{
  display:flex;flex-wrap:wrap;justify-content:center;gap:14px;
  margin-bottom:18px;
}
.prop-hero__cta-line{font-size:15px}
.prop-hero__cta-note{
  font-size:12px;color:rgba(255,255,255,.55);letter-spacing:.06em;
}

/* 1.5 Trust Strip */
.prop-trust{
  background:#fff;
  border-bottom:1px solid var(--color-line);
  padding:20px 0;
}
.prop-trust__list{
  display:flex;flex-wrap:wrap;justify-content:center;gap:32px;
  list-style:none;padding:0;
}
.prop-trust__list li{
  display:flex;flex-direction:column;align-items:center;
  font-size:13px;letter-spacing:.04em;
  list-style:none;
}
.prop-trust__label{
  font-family:var(--font-en);font-size:10px;letter-spacing:.22em;
  color:var(--color-mute);text-transform:uppercase;margin-bottom:4px;
}
.prop-trust__list strong{font-weight:500;color:var(--color-ink)}
@media(max-width:640px){
  .prop-trust__list{gap:18px}
  .prop-trust__list li{font-size:11.5px;flex-basis:calc(50% - 9px);text-align:center}
}

/* 目次 (TOC) */
.prop-toc{
  max-width:680px;margin:32px auto 0;
  padding:20px 24px;
  background:#FAFAFA;border:1px solid var(--color-line);
  border-radius:var(--radius);
}
.prop-toc::before{
  content:"目次";
  display:block;
  font-family:var(--font-en);font-size:11px;letter-spacing:.22em;
  color:var(--color-mute);text-transform:uppercase;
  margin-bottom:10px;
}
.prop-toc ul{
  display:flex;flex-wrap:wrap;gap:8px;
  list-style:none;padding:0;
}
.prop-toc li{list-style:none}
.prop-toc a{
  display:inline-block;padding:6px 12px;
  background:#fff;border:1px solid var(--color-line);border-radius:18px;
  font-size:12px;color:var(--color-sub);transition:.15s;
}
.prop-toc a:hover{border-color:var(--color-ink);color:var(--color-ink)}

/* 中段CTA */
.prop-mid-cta{
  max-width:680px;margin:64px auto 0;
  padding:32px 28px;
  background:#fff;
  border:1px solid var(--color-ink);border-radius:var(--radius);
  text-align:center;
}
.prop-mid-cta__lead{
  font-size:15px;line-height:1.9;letter-spacing:.04em;
  color:var(--color-ink);margin-bottom:20px;
}
.prop-mid-cta__btns{
  display:flex;flex-wrap:wrap;gap:12px;justify-content:center;
}

/* 価格の換算グリッド */
.prop-rate-grid{
  display:grid;gap:12px;grid-template-columns:1fr;
  max-width:760px;margin:32px auto 0;
  list-style:none;padding:0;
}
@media(min-width:640px){.prop-rate-grid{grid-template-columns:repeat(3,1fr)}}
.prop-rate-grid__item{
  text-align:center;padding:20px 16px;
  background:#fff;border:1px solid var(--color-line);border-radius:var(--radius);
  list-style:none;
}
.prop-rate-grid__label{
  display:block;font-family:var(--font-en);font-size:10px;
  letter-spacing:.22em;color:var(--color-mute);
  text-transform:uppercase;margin-bottom:6px;
}
.prop-rate-grid__value{
  display:block;font-size:22px;font-weight:700;
  letter-spacing:.04em;color:var(--color-ink);margin-bottom:4px;
}
.prop-rate-grid__hint{
  display:block;font-size:11px;color:var(--color-mute);
  letter-spacing:.04em;
}

/* 最終CTA 強化 */
.prop-final__refrain{
  font-size:14px;color:var(--color-sub);
  letter-spacing:.06em;line-height:1.9;
  margin-bottom:8px;
}
.prop-final__assurance{
  display:inline-flex;flex-direction:column;gap:6px;
  list-style:none;padding:0;margin:24px auto 32px;
  font-size:13px;color:var(--color-sub);letter-spacing:.04em;
  text-align:left;
}
.prop-final__assurance li{list-style:none}
.prop-final__btns{
  display:flex;flex-wrap:wrap;gap:14px;justify-content:center;
  margin-bottom:18px;
}
.prop-final__capacity{
  display:inline-block;
  margin-top:16px;padding:10px 20px;
  font-size:12px;color:var(--color-sub);letter-spacing:.04em;
  border-top:1px dashed var(--color-line);
}
.prop-final__capacity strong{color:var(--color-ink)}

/* ===== Proposal: ミッション・リフレーム・約束セクション ===== */

/* Mission section */
.prop-mission__body{
  max-width:740px;margin:0 auto;
  font-size:16px;line-height:2;color:var(--color-sub);letter-spacing:.04em;
}
.prop-mission__body p{margin-bottom:20px}
.prop-mission__body strong{color:var(--color-ink);font-weight:500}
.prop-mission__pain{
  list-style:none;padding:24px 28px;margin:24px 0;
  background:#FAFAFA;border-left:3px solid var(--color-ink);
  border-radius:var(--radius);
}
.prop-mission__pain li{
  list-style:none;padding-left:18px;position:relative;
  margin-bottom:10px;font-size:15px;line-height:1.9;
  color:var(--color-ink);
}
.prop-mission__pain li::before{
  content:"・";position:absolute;left:0;
  color:var(--color-mute);
}
.prop-mission__pain li:last-child{margin-bottom:0}

/* Reframe section */
.prop-reframe__body{
  max-width:760px;margin:0 auto;
  font-size:16px;line-height:2;color:var(--color-sub);letter-spacing:.04em;
}
.prop-reframe__lead{
  font-size:18px;text-align:center;color:var(--color-ink);
  margin-bottom:28px;line-height:1.9;
}
.prop-reframe__lead strong{font-weight:700}
.prop-reframe__scope{
  list-style:none;padding:0;margin:32px 0;
}
.prop-reframe__scope li{
  list-style:none;display:flex;flex-direction:column;gap:8px;align-items:flex-start;
  padding:18px 24px;border-bottom:1px solid var(--color-line);
  font-size:15px;color:var(--color-ink);line-height:1.8;
}
@media(min-width:640px){
  .prop-reframe__scope li{flex-direction:row;gap:18px;align-items:flex-start;line-height:1.7}
}
.prop-reframe__scope li:last-child{border-bottom:0}
.prop-reframe__scope-label{
  display:inline-block;flex-shrink:0;
  font-family:var(--font-en);font-size:11px;letter-spacing:.22em;
  color:var(--color-mute);text-transform:uppercase;
  min-width:48px;padding-top:4px;
}
.prop-reframe__rivals{
  margin-top:40px;padding:32px 28px;
  background:#fff;border:1px solid var(--color-ink);border-radius:var(--radius);
}
.prop-reframe__rivals-lead{
  font-size:15px;color:var(--color-ink);
  margin-bottom:16px;letter-spacing:.04em;line-height:1.9;
}
.prop-reframe__rivals-lead strong{font-weight:700}
.prop-reframe__rivals-list{
  list-style:none;padding:0;margin:0 0 18px;
}
.prop-reframe__rivals-list li{
  list-style:none;padding:10px 0;
  border-bottom:1px dashed var(--color-line);
  font-size:14px;color:var(--color-sub);letter-spacing:.04em;
}
.prop-reframe__rivals-list li:last-child{border-bottom:0}
.prop-reframe__rivals-list li::before{
  content:"▸ ";color:var(--color-ink);
}
.prop-reframe__rivals-closing{
  font-size:14px;color:var(--color-sub);letter-spacing:.04em;
  line-height:1.9;margin:0;
}

/* Real comparison note (after vs 大手 table) */
.prop-real-comparison-note{
  max-width:680px;margin:40px auto 0;
  padding:24px 28px;background:#FAFAFA;
  border-radius:var(--radius);text-align:center;
}
.prop-real-comparison-note p{
  font-size:15px;color:var(--color-sub);letter-spacing:.04em;
  line-height:1.9;margin:0;
}
.prop-real-comparison-note strong{color:var(--color-ink);font-weight:500}

/* Promise list */
.prop-promise-list{
  list-style:none;padding:0;
  display:grid;gap:24px;grid-template-columns:1fr;
  max-width:880px;margin:0 auto;
}
@media(min-width:880px){
  .prop-promise-list{grid-template-columns:repeat(3,1fr)}
}
.prop-promise-item{
  list-style:none;
  padding:32px 28px;
  background:#fff;border:1px solid var(--color-line);border-radius:var(--radius);
  transition:.15s;
}
.prop-promise-item:hover{border-color:var(--color-ink)}
.prop-promise-item__num{
  display:block;
  font-family:var(--font-en);font-size:13px;letter-spacing:.24em;
  color:var(--color-mute);text-transform:uppercase;
  margin-bottom:14px;
}
.prop-promise-item__head{
  font-size:18px;font-weight:700;letter-spacing:.04em;
  line-height:1.6;color:var(--color-ink);
  margin-bottom:14px;
}
.prop-promise-item__body{
  font-size:14px;line-height:1.9;color:var(--color-sub);
  letter-spacing:.04em;margin:0;
}
.prop-promise-item__body strong{color:var(--color-ink);font-weight:500}

/* ===== Proposal: 職人技 / 完全オリジナル / 3つの高い / Founder宣誓 ===== */

/* 職人技 - 墨田の文脈、Apple/無印的な間 */
.prop-craft__body{
  max-width:680px;margin:0 auto;
  font-size:16px;line-height:2.1;color:var(--color-sub);
  letter-spacing:.05em;text-align:center;
}
.prop-craft__body p{margin-bottom:28px}
.prop-craft__body p:last-child{margin-bottom:0}
.prop-craft__body strong{color:var(--color-ink);font-weight:500}
@media(max-width:640px){
  .prop-craft__body{font-size:15px;line-height:2;letter-spacing:.04em}
  .prop-craft__body p{margin-bottom:24px}
}

/* 完全オリジナル */
.prop-original__body{
  max-width:680px;margin:0 auto;
  font-size:16px;line-height:2.1;color:var(--color-sub);
  letter-spacing:.05em;text-align:center;
}
.prop-original__body p{margin-bottom:28px}
.prop-original__body p:last-child{margin-bottom:0}
.prop-original__body strong{color:var(--color-ink);font-weight:500}
@media(max-width:640px){
  .prop-original__body{font-size:15px;line-height:2;letter-spacing:.04em}
  .prop-original__body p{margin-bottom:24px}
}

/* 静的HTMLの「3つの高い」 */
.prop-three-highs{
  list-style:none;padding:0;margin:24px 0;
  display:grid;gap:20px;grid-template-columns:1fr;
}
.prop-three-highs li{
  list-style:none;padding:24px 24px 22px;
  background:#fff;border:1px solid var(--color-line);border-radius:var(--radius);
}
.prop-three-highs__num{
  display:inline-block;
  font-family:var(--font-en);font-size:11px;letter-spacing:.24em;
  color:var(--color-mute);text-transform:uppercase;margin-bottom:10px;
}
.prop-three-highs strong{
  display:block;font-size:17px;font-weight:700;letter-spacing:.04em;
  color:var(--color-ink);margin-bottom:10px;line-height:1.6;
}
.prop-three-highs p{
  font-size:14px;line-height:1.9;color:var(--color-sub);
  letter-spacing:.04em;margin:0;
}

/* Founder結びの宣誓 */
.prop-founder-vow{
  margin-top:32px !important;
  padding:18px 24px;
  background:#FAFAFA;border-left:3px solid var(--color-ink);
  font-size:16px;letter-spacing:.04em;line-height:1.9;
  color:var(--color-ink);
}
.prop-founder-vow strong{font-weight:700}

/* PDCA #20: 静的HTML 3つの高い 比較バーチャート */
.prop-tech-radar{
  margin:32px 0;padding:24px;
  background:#FAFAFA;border:1px solid var(--color-line);border-radius:var(--radius);
}
.prop-tech-radar__head{
  display:flex;flex-wrap:wrap;gap:18px;justify-content:center;
  margin-bottom:24px;
}
.prop-tech-radar__legend{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;color:var(--color-sub);letter-spacing:.04em;
}
.prop-tech-radar__sw{
  display:inline-block;width:20px;height:8px;border-radius:2px;
}
.prop-tech-radar__sw--ours{background:var(--color-ink)}
.prop-tech-radar__sw--wp{background:#CCC}

.prop-tech-radar__row{
  display:grid;gap:8px;grid-template-columns:1fr;
  margin-bottom:16px;
}
@media(min-width:640px){
  .prop-tech-radar__row{grid-template-columns:120px 1fr;gap:16px;align-items:center}
}
.prop-tech-radar__axis{font-size:13px;color:var(--color-ink);letter-spacing:.04em;font-weight:500}
.prop-tech-radar__bars{display:flex;flex-direction:column;gap:6px}
.prop-tech-radar__bar{
  height:18px;width:var(--bar-w,0%);border-radius:3px;
  display:flex;align-items:center;padding:0 8px;
  font-size:11px;color:#fff;font-variant-numeric:tabular-nums;
  transition:width 1.4s cubic-bezier(.22,1,.36,1);
  position:relative;
}
.prop-tech-radar__bar span{
  position:absolute;right:8px;
  font-weight:500;
}
.prop-tech-radar__bar--ours{background:var(--color-ink)}
.prop-tech-radar__bar--wp{background:#999;color:#fff}
.prop-tech-radar__note{
  margin:16px 0 0;font-size:11px;color:var(--color-mute);
  letter-spacing:.04em;text-align:center;
}

/* ===== Premium revision: update-rules quiet style ===================== */
.update-rules{
  max-width:680px;margin:0 auto;
}
.update-rules__list{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
  padding:0;margin:0;list-style:none;
}
@media(max-width:540px){
  .update-rules__list{grid-template-columns:1fr}
}
.update-rules__list li{
  display:flex;align-items:flex-start;gap:14px;
  padding:14px 18px;
  border:1px solid var(--color-line-soft);
  border-radius:var(--radius);
  font-size:14.5px;line-height:1.75;color:var(--color-sub);
  letter-spacing:.04em;
}
.update-rules__list li::before{
  content:"";flex-shrink:0;
  width:12px;height:1px;margin-top:11px;
  background:var(--color-ink);
}
.update-rules__note{
  margin:24px 0 0;font-size:13px;line-height:1.85;
  color:var(--color-mute);letter-spacing:.04em;text-align:center;
}
