/* ---------- shared ---------- */
  section.block{padding-block:76px 8px}
  .sec-head{max-width:660px; margin-bottom:34px}
  .sec-kicker{color:var(--red); font-weight:700; font-size:13px; letter-spacing:.16em; text-transform:uppercase; display:flex; align-items:center; gap:10px}
  .sec-kicker .jp{letter-spacing:.2em; font-size:14px}
  .sec-head h2{font-size:clamp(29px,4vw,40px); margin:10px 0 12px}
  .sec-head p{color:var(--soft); margin:0}
  .page-head{padding-block:52px 4px; max-width:760px}
  .page-head h1{font-size:clamp(36px,5.4vw,56px); font-weight:800; margin:14px 0 16px; letter-spacing:-.01em}
  .page-head h1 em{font-style:normal; color:var(--red)}
  .page-head p.lede{font-size:18.5px; color:var(--soft); margin:0}
  .page-head p.lede strong{color:var(--ink)}
  .prose{max-width:720px}
  .prose p{color:var(--soft); margin:0 0 16px}
  .prose p strong{color:var(--ink)}
  .text-link{font-weight:700}
  .chips{display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 22px}
  .chip{border:1px solid var(--line); background:var(--bg); border-radius:999px; padding:6px 14px; font-size:13.5px; font-weight:500; color:var(--soft)}
  .chip b{color:var(--red); font-weight:700}
  .price-note{color:var(--soft); margin-top:22px}
  .price-note strong{color:var(--ink)}

  /* how it works */
  .steps{list-style:none; margin:0; padding:0; position:relative}
  .steps::before{content:""; position:absolute; left:23px; top:14px; bottom:14px; width:2px; background:var(--line)}
  .step{display:grid; grid-template-columns:48px 1fr; gap:22px; padding:16px 0; position:relative}
  .step-dot{width:48px; height:48px; border-radius:50%; background:var(--bg); border:2px solid var(--red); color:var(--red); display:grid; place-items:center; font-family:"Shippori Mincho B1",serif; font-weight:800; font-size:18px; position:relative; z-index:1}
  .step.optional .step-dot{border-style:dashed; background:var(--tint)}
  .step h3{font-size:20px; margin:2px 0 6px; display:flex; flex-wrap:wrap; align-items:center; gap:10px}
  .step p{margin:0; color:var(--soft); max-width:52em}
  .badge-optional{font-family:"Zen Kaku Gothic New",sans-serif; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--red-deep); background:var(--tint); border:1px dashed var(--red); border-radius:999px; padding:3px 11px}

  /* testimonial quote + lesson */
  .big-quote{font-family:"Shippori Mincho B1",serif; font-size:clamp(23px,3.4vw,32px); font-weight:600; line-height:1.55; margin:0 0 14px; max-width:24em}
  .big-quote::before{content:"“"; color:var(--red)}
  .attribution{color:var(--faint); font-size:14.5px; margin-bottom:30px}
  .lesson{background:var(--tint); border-radius:14px; padding:24px 26px; display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:start; margin-bottom:40px}
  .lesson .mark{font-family:"Shippori Mincho B1",serif; font-weight:800; color:var(--red); font-size:22px; border:2px solid var(--red); border-radius:50%; width:44px; height:44px; display:grid; place-items:center}
  .lesson h3{margin:2px 0 6px; font-size:19px}
  .lesson p{margin:0; color:var(--soft)}
  @media (max-width:600px){ .lesson{grid-template-columns:1fr} }

  /* about */
  .do-dont{border-top:1px solid var(--line); margin-top:8px}
  .do-dont .row{display:grid; grid-template-columns:170px 1fr; gap:24px; padding:24px 0; border-bottom:1px solid var(--line); align-items:baseline}
  .do-dont .row h3{font-size:20px; margin:0}
  .do-dont .row h3 .no{color:var(--red)}
  .do-dont .row p{margin:0; color:var(--soft)}
  .do-dont .row p strong{color:var(--ink)}
  @media (max-width:700px){ .do-dont .row{grid-template-columns:1fr; gap:6px} }
  .see-work{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:6px}
  .see-work a{border:1px solid var(--line); border-radius:14px; padding:22px; text-decoration:none; color:var(--ink); display:block}
  .see-work a:hover{border-color:var(--red)}
  .see-work a b{font-family:"Shippori Mincho B1",serif; font-size:18px; display:block; margin-bottom:6px}
  .see-work a span{color:var(--soft); font-size:14.5px; line-height:1.6; display:block}
  .see-work a .go{color:var(--red); font-weight:700; margin-top:10px}
  @media (max-width:820px){ .see-work{grid-template-columns:1fr} }

  /* cta band */
  .cta-band{margin:76px 0 0; background:var(--red); color:#FFF3E4; border-radius:22px; padding:48px 46px; position:relative; overflow:hidden}
  .cta-band h2{color:#FFF8EC; font-size:clamp(28px,4vw,38px); margin:0 0 12px}
  .cta-band p{color:#FFDFC9; max-width:44em; margin:0 0 24px}
  @media (max-width:700px){ .cta-band{padding:36px 24px} }
  @media (max-width:430px){
    .page-head{padding-block-start:40px}
    .page-head h1{font-size:34px}
    section.block{padding-block:60px 8px}
    .cta-band{padding:34px 18px}
  }
