/* プレアデス診断 LP（段2：仕上げ）
   区画の並び・ボタンの位置と色は段1（お手本の写し）のまま。
   大きさは列の幅に対する割合（cqw）で持ち、幅が変わっても形が同じまま縮む。 */
:root {
  --navy: #1d1752;
  --lav: #f4f1ff;
  --green1: #4fdd6b;
  --green2: #12a93a;
  --green3: #067f28;
  --gold-text: linear-gradient(180deg, #fffbe6 0%, #f7d985 36%, #dca136 60%, #a46f14 100%);
  --gold-ink: linear-gradient(180deg, #ecbf63 0%, #b97c1f 55%, #7a4d0b 100%);
  --mincho: "Shippori Mincho B1", "Hiragino Mincho ProN", serif;
  --maru: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  --gothic: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { background: #fbfaff; color: #1a1840; font-family: var(--gothic); overflow-x: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
ol, ul { list-style: none; }
.hero, .cta, .flow, .signs, .words, .dock { font-feature-settings: "palt"; }
/* Google Fonts の明朝は palt が効かず仮名が離れて見えるので、字間を詰める */
.hero__title, .hero__sub, .flow__title, .step__head .t, .flow__done, .signs__lead, .signs__title, .signs__end, .words__a, .words__b { letter-spacing: -.07em; }

/* 地：淡い紫の夜空（白地のままだと PC の左右が間延びする） */
.sky { position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(1px 1px at 12% 18%, #b9b0ff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 82% 12%, #d9c27a 50%, transparent 51%),
    radial-gradient(1px 1px at 70% 46%, #b9b0ff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 22% 64%, #d9c27a 50%, transparent 51%),
    radial-gradient(1px 1px at 90% 78%, #b9b0ff 50%, transparent 51%),
    radial-gradient(1px 1px at 8% 90%, #b9b0ff 50%, transparent 51%),
    radial-gradient(60% 40% at 50% 0%, #ebe6ff 0%, transparent 70%),
    linear-gradient(180deg, #f6f3ff 0%, #fbfaff 40%, #f4f1ff 100%);
  background-size: 340px 340px, 420px 420px, 380px 380px, 460px 460px, 300px 300px, 520px 520px, 100% 100%, 100% 100%; }

.col { width: min(540px, 100% - 20px); margin: 0 auto; padding: 10px 0 0; container-type: inline-size; }

/* ── 1. 最初の画面 ──
   絵（上）と字（下）を別の箱に分ける。字は絵の下の溶けた部分にしか乗らないので、顔に字がかかる形が作れない。 */
.hero { position: relative; overflow: hidden; border-radius: 0 0 3cqw 3cqw; background: #1d1752 radial-gradient(80% 50% at 50% 100%, rgba(120,90,220,.35), transparent 70%); }
.hero__pic { position: relative; aspect-ratio: 1080 / 860; overflow: hidden; }
.hero__img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 34%; animation: drift 18s ease-in-out infinite alternate; transform-origin: 50% 35%; }
@keyframes drift { from { transform: scale(1.0); } to { transform: scale(1.045); } }
.hero__pic::after { /* 絵の下の端を紺に溶かす（顔より下だけ） */
  content: ""; position: absolute; inset: auto 0 -1px 0; height: 28%; z-index: 1;
  background: linear-gradient(180deg, rgba(29,23,82,0) 0%, rgba(29,23,82,.55) 45%, rgba(29,23,82,.92) 78%, #1d1752 100%); }
.hero__exam { position: absolute; top: 3.2cqw; left: 0; right: 0; z-index: 2; text-align: center; }
.hero__exam span { display: inline-flex; align-items: center; gap: .45em; font: 800 4.6cqw/1 var(--mincho); letter-spacing: .14em; padding: .5em 1.1em .48em 1.25em;
  color: #fff6d8; background: linear-gradient(180deg, rgba(141,28,44,.95), rgba(90,15,28,.95)); border: .35cqw solid #f2d384; border-radius: 99em;
  box-shadow: 0 0 0 .5cqw rgba(90,15,28,.35), 0 .6cqw 3cqw rgba(0,0,0,.35), 0 0 3cqw rgba(255,200,110,.45); }
.hero__exam span::before, .hero__exam span::after { content: "✦"; font-size: .7em; color: #f2d384; }
.hero__txt { position: relative; z-index: 2; margin-top: -9cqw; padding: 0 4cqw 6cqw; text-align: center; }
.hero__lead { font: 800 4.5cqw/1.4 var(--mincho); color: #e9e3ff; letter-spacing: .02em; text-shadow: 0 0 .4em rgba(20,10,80,.9); }
.hero__title { margin-top: 1.2cqw; font-family: var(--mincho); font-weight: 800; line-height: 1.02; white-space: nowrap; }
.hero__title .w { display: block; font-size: 10cqw; color: #fff; letter-spacing: .06em; text-shadow: 0 0 .25em rgba(120,110,255,.9), 0 .04em .06em rgba(10,5,60,.95); }
.hero__title .g { display: block; margin-top: .5cqw; font-size: 19cqw; letter-spacing: .02em; background: var(--gold-text); background-size: 100% 220%; -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 .03em .015em rgba(40,20,0,.95)) drop-shadow(0 0 .12em rgba(255,214,130,.7)); animation: goldflow 5s ease-in-out infinite; }
@keyframes goldflow { 0%,100% { background-position: 50% 0%; } 50% { background-position: 50% 100%; } }
.hero__chips { margin-top: 3.4cqw; display: flex; justify-content: center; gap: 1.4cqw; }
.hero__chips li { font: 700 3.3cqw/1 var(--gothic); color: #fff; padding: .7em .85em .7em 2em; border: .25cqw solid rgba(242,211,132,.7); border-radius: 99em;
  background: rgba(255,255,255,.08) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%23e8c56c'/%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' fill='none' stroke='%231d1752' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat .7em 50% / 1.1em; white-space: nowrap; }
.twinkle { position: absolute; z-index: 2; width: 3cqw; aspect-ratio: 1; pointer-events: none;
  background: radial-gradient(circle, #fff 0 12%, rgba(255,240,200,.8) 13% 22%, transparent 60%); animation: tw 3.2s ease-in-out infinite; }
.twinkle::before, .twinkle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 260%; height: 6%; background: linear-gradient(90deg, transparent, #fff, transparent); transform: translate(-50%,-50%); }
.twinkle::after { transform: translate(-50%,-50%) rotate(90deg); }
.t1 { left: 14%; top: 20%; } .t2 { left: 80%; top: 30%; animation-delay: 1.1s; } .t3 { left: 9%; top: 55%; animation-delay: 2s; width: 2.2cqw; } .t4 { left: 88%; top: 62%; animation-delay: .6s; width: 2.4cqw; }
@keyframes tw { 0%,100% { opacity: .15; transform: scale(.6); } 50% { opacity: 1; transform: scale(1); } }

/* ── 2・6. 申込みボタン ── */
.cta { position: relative; display: block; margin: 6cqw 0 0; aspect-ratio: 2508 / 522; border-radius: 999px; text-decoration: none; overflow: hidden; isolation: isolate;
  background: linear-gradient(180deg, var(--green1) 0%, var(--green2) 55%, var(--green3) 100%);
  border: .8cqw solid #eef7ef; box-shadow: 0 0 0 .25cqw #b6cbbb, 0 1.6cqw 2.6cqw rgba(10,90,30,.3), inset 0 .6cqw .7cqw rgba(255,255,255,.5);
  transition: transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s ease; }
.cta.in { animation: breathe 2.6s ease-in-out infinite; }
@keyframes breathe { 0%,100% { transform: scale(1); } 50% { transform: scale(1.018); } }
.cta:hover { animation-play-state: paused; transform: translateY(-.4cqw); box-shadow: 0 0 0 .25cqw #b6cbbb, 0 2.4cqw 3.4cqw rgba(10,90,30,.34), inset 0 .6cqw .7cqw rgba(255,255,255,.5); }
.cta:active { transform: scale(.98); }
.cta:focus-visible { outline: 3px solid #f2c95b; outline-offset: 4px; }
.cta__shine { position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.55) 48%, rgba(255,255,255,0) 58%); transform: translateX(-120%); animation: shine 3.4s ease-in-out infinite; }
@keyframes shine { 0%, 55% { transform: translateX(-120%); } 85%, 100% { transform: translateX(120%); } }
.cta__line { position: absolute; z-index: 2; left: 5.5%; top: 50%; transform: translateY(-58%); width: 11.5cqw; aspect-ratio: 1.15; border-radius: 50%; background: #fff;
  color: var(--green2); font: 900 3.3cqw/1 var(--maru); display: grid; place-items: center; letter-spacing: -.02em; }
.cta__line::after { content: ""; position: absolute; left: 22%; bottom: -12%; border: 1.4cqw solid transparent; border-top-color: #fff; border-left-color: #fff; transform: rotate(8deg); }
.cta__main { position: absolute; z-index: 2; left: 18%; right: 12%; top: 18%; text-align: center; color: #fff; font: 900 5.7cqw/1.1 var(--maru); white-space: nowrap; letter-spacing: -.03em;
  text-shadow: 0 .05em .06em rgba(0,60,10,.55); }
.cta__main b { font-weight: 900; font-size: 1.12em; background: var(--gold-text); -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 .04em .02em rgba(0,60,10,.65)); text-shadow: none; }
.cta__arrow { position: absolute; z-index: 2; right: 4.2%; top: 50%; transform: translateY(-58%); width: 6.6cqw; aspect-ratio: 1; border-radius: 50%; background: #fff; }
.cta__arrow::after { content: ""; position: absolute; left: 32%; top: 32%; width: 32%; height: 32%; border: solid var(--green2); border-width: .9cqw .9cqw 0 0; transform: rotate(45deg); transform-origin: 70% 30%; }
.cta__note { position: absolute; z-index: 2; left: 50%; bottom: 13%; transform: translateX(-50%); background: #fff; color: #10411d; border-radius: 999px; white-space: nowrap;
  font: 700 2.6cqw/1 var(--maru); padding: .42em 1.3em; letter-spacing: .08em; display: flex; align-items: center; gap: .35em; }
.cta__note svg { width: 1.15em; height: 1.15em; }

/* ── 3. 流れの説明 ── */
.flow { margin-top: 10cqw; padding: 6cqw 4cqw 5cqw; border-radius: 3cqw; background: #fff; box-shadow: 0 0 0 .3cqw #ecd79f, 0 2cqw 5cqw rgba(29,23,82,.08); }
.flow__title { text-align: center; font-family: var(--mincho); font-weight: 800; font-size: 7.4cqw; color: var(--navy); white-space: nowrap; }
.flow__title .g { font-size: 1.12em; background: var(--gold-ink); -webkit-background-clip: text; background-clip: text; color: transparent; }
.flow__steps { margin-top: 4cqw; display: grid; gap: 7cqw; counter-reset: st; }
.step { position: relative; display: grid; grid-template-columns: 1fr 44cqw; gap: 4cqw; align-items: center; }
.step + .step::before { content: ""; position: absolute; left: 50%; top: -5.6cqw; transform: translateX(-50%); border: 2.4cqw solid transparent; border-top: 3cqw solid #19b245; border-bottom: 0; }
.step__no { font: 800 3.6cqw/1 var(--gothic); color: #0d8a33; letter-spacing: .08em; }
.step__no b { margin-left: .2em; font: 800 9cqw/1 var(--mincho); background: var(--gold-ink); -webkit-background-clip: text; background-clip: text; color: transparent; }
.step__t { margin-top: 2cqw; font: 800 5cqw/1.4 var(--mincho); color: var(--navy); letter-spacing: -.04em; }
.step__t em { font-style: normal; color: #0d8a33; }
.step__d { margin-top: 2cqw; font: 500 3.6cqw/1.6 var(--gothic); color: #4a4670; }
.phone { border: 1.4cqw solid #1b1b22; border-radius: 5cqw; background: #fff; overflow: hidden; aspect-ratio: 9 / 17.5; display: flex; flex-direction: column; box-shadow: 0 2cqw 5cqw rgba(29,23,82,.22); }
.phone__bar { flex: none; height: 5cqw; display: flex; align-items: center; padding: 0 3cqw; font: 700 2.2cqw/1 var(--gothic); position: relative; background: #fff; }
.phone__bar::after { content: ""; position: absolute; left: 50%; top: 1cqw; transform: translateX(-50%); width: 30%; height: 2.6cqw; background: #1b1b22; border-radius: 99em; }
.ls { flex: 1; display: flex; flex-direction: column; align-items: center; text-align: center; font-family: var(--gothic); color: #111; }
.ls--auth { padding: 1cqw 3cqw 3cqw; gap: 1.4cqw; }
.ls__top { align-self: stretch; padding-bottom: 1.4cqw; border-bottom: 1px solid #eee; font: 900 3cqw/1 var(--maru); color: #06c755; }
.ls__icon { width: 11cqw; aspect-ratio: 1; border-radius: 2.4cqw; object-fit: cover; margin-top: 1cqw; }
.ls__name { font: 700 2.9cqw/1.2 var(--gothic); white-space: nowrap; }
.ls__note { font: 500 2cqw/1.5 var(--gothic); color: #666; }
.ls__row { align-self: stretch; text-align: left; font: 500 2.1cqw/1.3 var(--gothic); padding: 1.3cqw 0; border-bottom: 1px solid #eee; white-space: nowrap; }
.ls__row--chk::before { content: "✓"; display: inline-grid; place-items: center; width: 2.6cqw; height: 2.6cqw; margin-right: .8cqw; border-radius: .5cqw; background: #06c755; color: #fff; font-size: 1.9cqw; vertical-align: -.3cqw; }
.ls__btn { align-self: stretch; margin-top: auto; background: #06c755; color: #fff; border-radius: 1.2cqw; font: 700 3cqw/1 var(--gothic); padding: 2.2cqw 0; position: relative; }
.ls__cancel { font: 500 2.2cqw/1 var(--gothic); color: #888; }
.ls--prof { padding: 0 0 3cqw; gap: 1.2cqw; }
.ls__cover { align-self: stretch; height: 17cqw; background: url(../img/hero.jpg) center 18% / cover; }
.ls__icon--prof { margin-top: -7cqw; width: 13cqw; border-radius: 50%; box-shadow: 0 0 0 .6cqw #fff; }
.ls__sub { font: 500 2cqw/1.3 var(--gothic); color: #666; }
.ls--prof .ls__btn { align-self: center; width: 80%; margin-top: 1.4cqw; }
.ls__menu { margin-top: auto; display: flex; gap: 4cqw; font: 500 2cqw/1 var(--gothic); color: #555; }
.ls--chat { background: #8cabd8; align-items: stretch; text-align: left; gap: 2cqw; padding-bottom: 3cqw; }
.ls__head { background: #fff; padding: 1.6cqw 2cqw; font: 700 2.6cqw/1 var(--gothic); white-space: nowrap; }
.ls__head .bk { margin-right: 1.6cqw; font-size: 1.3em; }
.ls__msg { display: flex; gap: 1.2cqw; padding: 0 2cqw; align-items: flex-start; }
.ls__msg > img { width: 5.6cqw; height: 5.6cqw; border-radius: 50%; object-fit: cover; flex: none; }
.bb { background: #fff; border-radius: 2.4cqw; padding: 1.8cqw 2cqw; font: 500 2.3cqw/1.5 var(--gothic); }
.card { flex: 1; background: #fff; border-radius: 2.4cqw; overflow: hidden; }
.card__img { display: block; height: 15cqw; background: url(../img/hero.jpg) center 22% / cover; }
.card__t { padding: 1.6cqw 2cqw .4cqw; font: 700 2.4cqw/1.3 var(--gothic); }
.card__btn { margin: 1.2cqw 2cqw 2cqw; padding: 1.8cqw 0; text-align: center; border-radius: 1.2cqw; background: #06c755; color: #fff; font: 700 2.5cqw/1 var(--gothic); position: relative; }
.tap::after { content: ""; position: absolute; right: 8%; top: 50%; width: 5cqw; height: 5cqw; margin-top: -2.5cqw; border-radius: 50%; border: .5cqw solid rgba(255,214,120,.95); animation: tap 1.6s ease-out infinite; }
@keyframes tap { 0% { transform: scale(.4); opacity: 1; } 100% { transform: scale(1.6); opacity: 0; } }
.flow__done { margin-top: 6cqw; display: flex; align-items: center; justify-content: center; gap: 1.8cqw; border: .3cqw solid #ecd79f; border-radius: 999px; background: #fff; padding: 2.4cqw 0; font: 800 5cqw/1 var(--mincho); color: var(--navy); }
.flow__done b { font-size: 1.35em; background: var(--gold-ink); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lsq { flex: none; width: 6.4cqw; aspect-ratio: 1; border-radius: 1.4cqw; background: #06c755; color: #fff; font: 900 1.9cqw/1 var(--maru); display: grid; place-items: center; letter-spacing: -.02em; }

/* ── 4. 動画で話したしるし ── */
.signs { margin-top: 9cqw; padding: 6cqw 3cqw 5.5cqw; border-radius: 3cqw; color: #fff; text-align: center; position: relative; overflow: hidden;
  background: radial-gradient(80% 60% at 50% 0%, #4b3fb0 0%, #261d6f 55%, #160f47 100%); box-shadow: 0 2cqw 5cqw rgba(30,20,100,.25); }
.signs::before { content: ""; position: absolute; inset: 0; opacity: .7; pointer-events: none;
  background: radial-gradient(1px 1px at 10% 20%, #fff 50%, transparent 51%), radial-gradient(1.5px 1.5px at 80% 15%, #ffe6a6 50%, transparent 51%),
    radial-gradient(1px 1px at 60% 70%, #fff 50%, transparent 51%), radial-gradient(1.5px 1.5px at 25% 85%, #ffe6a6 50%, transparent 51%), radial-gradient(1px 1px at 92% 60%, #fff 50%, transparent 51%);
  background-size: 160px 160px, 220px 220px, 190px 190px, 240px 240px, 170px 170px; }
.signs__lead { position: relative; font: 800 4.6cqw/1.3 var(--mincho); color: #d9d3ff; }
.signs__title { position: relative; margin-top: 1cqw; font: 800 8cqw/1.25 var(--mincho); white-space: nowrap; }
.signs__title b { font-size: 1.15em; background: var(--gold-text); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 .15em rgba(255,210,120,.5)); }
.signs__list { position: relative; margin-top: 4.5cqw; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2cqw; }
.signs__list li { background: rgba(255,255,255,.08); border: .25cqw solid rgba(242,211,132,.55); border-radius: 2cqw; padding: 1.2cqw 1.2cqw 2.6cqw; }
.signs__list img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 1.4cqw; box-shadow: 0 0 2cqw rgba(242,211,132,.25); }
.signs__list p { margin-top: 1.6cqw; font: 700 3cqw/1.45 var(--gothic); white-space: nowrap; }
.signs__end { position: relative; margin-top: 4.5cqw; font: 800 4.6cqw/1.55 var(--mincho); color: #fff6dc; }

/* ── 5. 殺し文句 ── */
.words { margin-top: 10cqw; text-align: center; font-family: var(--mincho); font-weight: 800; color: var(--navy); }
.words b { font-weight: 800; font-size: 1.14em; background: linear-gradient(180deg, #2a1f7a 0%, #1b134f 55%, #a87a2a 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.words b.big { font-size: 1.4em; }
.words__a { font-size: 7.2cqw; line-height: 1.38; white-space: nowrap; }
.words__rule { width: 46cqw; height: 4cqw; margin: 4cqw auto; position: relative; }
.words__rule::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: .25cqw; background: linear-gradient(90deg, transparent, #d9b45a, transparent); }
.words__rule::after { content: "✦"; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-52%); color: #c9962d; font-size: 3.6cqw; background: #fbfaff; padding: 0 1.4cqw; }
.words__b { font-size: 6.3cqw; line-height: 1.4; white-space: nowrap; }
.words__b b { background: var(--gold-ink); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ── 7・8. 説明文とフッター ── */
.about { margin-top: 10cqw; padding: 26px 18px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px #ebe6ff; text-align: center; font-size: 14px; line-height: 1.8; color: #3a3760; }
.about h2 { font: 800 16px/1.4 var(--mincho); color: var(--navy); margin-bottom: .9em; }
.about__sns { margin-top: 1.1em; display: flex; justify-content: center; gap: 10px; }
.about__sns a { text-decoration: none; font-weight: 700; font-size: 13px; color: var(--navy); border: 1px solid #d8d1ff; border-radius: 999px; padding: .45em 1.3em; transition: background .2s; }
.about__sns a:hover { background: var(--lav); }
.about .note { margin-top: 1.4em; font-size: 12px; text-align: left; color: #6b6890; }
.foot { margin: 40px 0 0; padding-bottom: calc(120px + env(safe-area-inset-bottom)); text-align: center; font-size: 12px; line-height: 2.2; color: #6b6890; }
.foot a { color: #4a4780; }
.foot span { margin: 0 .8em; color: #c9c4ea; }

/* ── 下に付いてくる申込みボタン ── */
.dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); text-decoration: none;
  background: linear-gradient(180deg, rgba(251,250,255,0), rgba(251,250,255,.92) 35%); transform: translateY(110%); transition: transform .35s cubic-bezier(.2,.8,.2,1); }
.dock.on { transform: none; }
.dock__btn { max-width: 520px; margin: 0 auto; display: flex; align-items: center; justify-content: center; gap: 10px; height: 56px; border-radius: 999px; color: #fff;
  font: 900 18px/1 var(--maru); letter-spacing: -.02em; background: linear-gradient(180deg, var(--green1), var(--green2) 55%, var(--green3)); box-shadow: 0 6px 16px rgba(10,90,30,.3), inset 0 2px 3px rgba(255,255,255,.45); }
.dock__btn b { color: #ffe08a; font-weight: 900; }
.dock .lsq { width: 30px; border-radius: 8px; background: #fff; color: var(--green2); font-size: 9px; }

/* ── 出てくる動き（JS が無いときは最初から見せる） ── */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* 完全審査制の札（最初の画面の見出しの上） */
.hero__exam { margin-bottom: 2cqw; }
.hero__exam span { display: inline-block; font: 800 6.4cqw/1 var(--mincho); letter-spacing: .08em; padding: .32em .7em .3em;
  color: #fff6d8; background: linear-gradient(180deg, #8d1c2c, #5a0f1c); border: .45cqw solid #f2d384; border-radius: .25em;
  box-shadow: 0 0 0 .4cqw rgba(90,15,28,.6), 0 0 4cqw rgba(255,200,110,.55); text-shadow: 0 .1em .2em rgba(0,0,0,.45); }

/* ── 足した段（共感・わかること・診断する人・安心・質問）。色と書体は今の決まりのまま ── */
.cta-mic { margin-top: 1.8cqw; text-align: center; font: 500 3.1cqw/1.5 var(--gothic); color: #5a5680; }
.sec-title { text-align: center; font: 800 7cqw/1.3 var(--mincho); color: var(--navy); letter-spacing: -.04em; white-space: nowrap; }
.sec-title b { font-size: 1.1em; background: var(--gold-ink); -webkit-background-clip: text; background-clip: text; color: transparent; }
.worry, .gets, .prof, .safe, .faq { margin-top: 10cqw; }
.worry { padding: 6cqw 5cqw 5.5cqw; border-radius: 3cqw; background: #fff; box-shadow: 0 0 0 .3cqw #ecd79f, 0 2cqw 5cqw rgba(29,23,82,.08); }
.worry__list { margin-top: 4cqw; display: grid; gap: 2cqw; }
.worry__list li { position: relative; padding: 3cqw 3cqw 3cqw 11cqw; border-radius: 2cqw; background: var(--lav); font: 700 4cqw/1.45 var(--gothic); color: #1a1840; }
.worry__list li::before { content: ""; position: absolute; left: 3.4cqw; top: 50%; width: 5cqw; height: 5cqw; transform: translateY(-50%); border-radius: 1cqw;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='%23c9962d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat 50% / 80%; box-shadow: 0 0 0 .3cqw #d9b45a; }
.worry__end { margin-top: 4.5cqw; text-align: center; font: 800 4.8cqw/1.55 var(--mincho); color: var(--navy); letter-spacing: -.05em; white-space: nowrap; }
.worry__end b { background: var(--gold-ink); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: 1.12em; }
.gets__list { margin-top: 4.5cqw; display: grid; gap: 2.4cqw; }
.gets__list li { display: flex; align-items: center; gap: 4cqw; padding: 3.6cqw 4.5cqw; border-radius: 2.4cqw; color: #fff;
  background: linear-gradient(135deg, #2a1f7a, #1d1752); box-shadow: 0 0 0 .3cqw rgba(242,211,132,.6), 0 2cqw 4cqw rgba(29,23,82,.18); }
.gets__list .n { flex: none; font: 800 8cqw/1 var(--mincho); background: var(--gold-text); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gets__list p { font: 700 4.2cqw/1.5 var(--gothic); }
.gets__list p b { color: #f7d985; }
.prof__card { margin-top: 4.5cqw; display: flex; gap: 4.5cqw; align-items: center; padding: 5cqw; border-radius: 3cqw; background: #fff; box-shadow: 0 0 0 .3cqw #ecd79f; }
.prof__img { flex: none; width: 28cqw; height: 28cqw; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 .6cqw #fff, 0 0 0 1.1cqw #e8c56c, 0 0 4cqw rgba(232,197,108,.6); }
.prof__role { font: 700 3.2cqw/1.3 var(--gothic); color: #8a6a22; }
.prof__name { margin-top: .8cqw; font: 800 7cqw/1.2 var(--mincho); color: var(--navy); }
.prof__body { margin-top: 1.6cqw; letter-spacing: -.02em; font: 500 3.5cqw/1.75 var(--gothic); color: #3a3760; }
.safe { padding: 6cqw 5cqw 5cqw; border-radius: 3cqw; background: linear-gradient(180deg, #fff, #f8f5ff); box-shadow: 0 0 0 .3cqw #ecd79f; }
.safe__list { margin-top: 4cqw; display: grid; grid-template-columns: 1fr 1fr; gap: 2.4cqw; }
.safe__list li { padding: 3.6cqw 3cqw; border-radius: 2cqw; background: #fff; box-shadow: 0 0 0 .25cqw #e3dcff; text-align: center; }
.safe__list b { display: block; font: 800 4.2cqw/1.3 var(--mincho); color: var(--navy); }
.safe__list b::before { content: "✦"; display: block; margin-bottom: 1cqw; color: #c9962d; font-size: 3.6cqw; }
.safe__list span { display: block; margin-top: 1.4cqw; font: 500 3.1cqw/1.6 var(--gothic); color: #4a4670; }
.safe__links { margin-top: 3.4cqw; text-align: center; font-size: 3.2cqw; color: #5a5680; }
.faq details { margin-top: 2.4cqw; border-radius: 2cqw; background: #fff; box-shadow: 0 0 0 .25cqw #e3dcff; overflow: hidden; }
.faq details:first-of-type { margin-top: 4.5cqw; }
.faq summary { list-style: none; cursor: pointer; position: relative; padding: 4cqw 11cqw 4cqw 11cqw; font: 700 4cqw/1.45 var(--gothic); color: var(--navy); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before { content: "Q"; position: absolute; left: 4cqw; top: 50%; transform: translateY(-50%); font: 800 5cqw/1 var(--mincho); color: #c9962d; }
.faq summary::after { content: "+"; position: absolute; right: 4.5cqw; top: 50%; transform: translateY(-50%); font: 700 5.4cqw/1 var(--gothic); color: #8a84c0; transition: transform .25s; }
.faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq details p { padding: 0 5cqw 4.2cqw 11cqw; font: 500 3.6cqw/1.75 var(--gothic); color: #3a3760; }

/* 見本の段（build.py --見本 のときだけ残る。本番の public/ には入らない） */
.sample { position: relative; outline: .5cqw dashed #e0527a; outline-offset: 1.2cqw; }
.sample__tag { text-align: center; margin-bottom: 2cqw; font: 700 3cqw/1 var(--gothic); color: #c2185b; }
.proof { margin-top: 6cqw; }
.proof__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2cqw; }
.proof__list li { text-align: center; padding: 3.4cqw 1cqw; border-radius: 2.4cqw; background: #fff; box-shadow: 0 0 0 .3cqw #ecd79f; }
.proof__list .k { display: block; font: 700 3cqw/1.3 var(--gothic); color: #6a6590; }
.proof__list b { display: block; margin-top: 1.2cqw; font: 800 7.4cqw/1 var(--mincho); background: var(--gold-ink); -webkit-background-clip: text; background-clip: text; color: transparent; white-space: nowrap; }
.proof__list small { font-size: .5em; }
.voices { margin-top: 10cqw; }
.voices__list { margin-top: 4.5cqw; display: grid; gap: 2.4cqw; }
.voices__list li { padding: 4cqw 4.5cqw; border-radius: 2.4cqw; background: #fff; box-shadow: 0 0 0 .3cqw #e3dcff; }
.voices__list .who { font: 700 3.3cqw/1 var(--gothic); color: #8a6a22; }
.voices__list .who::before { content: "★★★★★ "; color: #e2b23c; letter-spacing: .05em; }
.voices__list .say { margin-top: 2cqw; font: 500 3.8cqw/1.75 var(--gothic); color: #2a2750; }
.voices__note { margin-top: 2.4cqw; text-align: center; font-size: 3cqw; color: #6a6590; }
.safe .sec-title { font-size: 6.2cqw; }
.safe__list b { font-size: 3.9cqw; white-space: nowrap; letter-spacing: -.04em; }

/* ── スマホで読める大きさ（本文は16px相当以上・注記は13px相当以上） ── */
.signs__list { grid-template-columns: 1fr; gap: 3cqw; }
.signs__list li { display: grid; grid-template-columns: 40cqw 1fr; align-items: center; gap: 4cqw; padding: 2cqw; text-align: left; }
.signs__list p { margin-top: 0; font: 800 5cqw/1.45 var(--mincho); white-space: normal; letter-spacing: -.03em; }
.prof__card { flex-direction: column; text-align: center; padding: 6cqw 5cqw; }
.prof__img { width: 32cqw; height: 32cqw; }
.prof__role { font-size: 3.8cqw; }
.prof__name { font-size: 8.4cqw; }
.prof__body { margin-top: 3cqw; font-size: 4.3cqw; line-height: 1.8; letter-spacing: 0; }
.cta-mic { font-size: 3.5cqw; }
.worry__list li { font-size: 4.4cqw; }
.gets__list p { font-size: 4.6cqw; }
.safe__list span { font-size: 3.6cqw; }
.faq summary { font-size: 4.4cqw; }
.faq details p { font-size: 4.1cqw; }
.voices__list .who { font-size: 3.8cqw; }
.voices__list .say { font-size: 4.3cqw; }
.voices__note, .safe__links { font-size: 3.4cqw; }
.hero__chips li { font-size: 3.5cqw; }
.step__t, .step__d { white-space: nowrap; }
.step__t { font-size: 5.2cqw; }
.phone { aspect-ratio: 9 / 16; }

/* 文節の途中で折らない（build.py が文節の切れ目に <wbr> を入れる） */
body { word-break: keep-all; overflow-wrap: anywhere; line-break: strict; }
.p { display: inline-block; }  /* 文節の箱（build.py が包む） */

/* 完全審査制の札（ボタンの上）。赤地に金の縁で、ボタンの次に目に入る強さにする */
.cta-tag { margin-top: 10cqw; position: relative; text-align: center; padding: 3.4cqw 4cqw 3cqw; border-radius: 3cqw;
  background: linear-gradient(180deg, #9b1f33 0%, #6a1222 100%); box-shadow: 0 0 0 .5cqw #f2d384, 0 0 0 1.1cqw rgba(155,31,51,.25), 0 2cqw 5cqw rgba(106,18,34,.35); }
.cta-tag::after { content: ""; position: absolute; left: 50%; bottom: -3.2cqw; transform: translateX(-50%); border: 2.6cqw solid transparent; border-top: 3cqw solid #6a1222; border-bottom: 0; }
.cta-tag__main { font: 800 9cqw/1.05 var(--mincho); letter-spacing: .12em; background: var(--gold-text); -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 .03em .02em rgba(40,0,0,.8)); }
.cta-tag__main::before, .cta-tag__main::after { content: "✦"; font-size: .5em; vertical-align: .35em; margin: 0 .4em; }
.cta-tag__sub { margin-top: 1.4cqw; font: 700 3.9cqw/1.4 var(--gothic); color: #fff3d6; }
.cta-tag + .cta { margin-top: 5.4cqw; }
.worry .sec-title { font-size: 6.4cqw; }
.proof__list small { font-size: .42em; }
.proof__note { margin-top: 1.6cqw; text-align: right; font-size: 3.2cqw; color: #6a6590; }
.voices__list .say::before { content: "★★★★★"; display: block; margin-bottom: 1.2cqw; color: #e2b23c; font-size: 3.6cqw; letter-spacing: .05em; }
