@charset "UTF-8";

/* ==========================================================================
   sections.css  ―  下層セクション専用の仕上げ（お悩み〜お問い合わせ）
   --------------------------------------------------------------------------
   ・すべてのルールは .lw（下層セクションに付与したクラス）配下に限定しています。
     ヘッダー・ヒーロー（.site-header / .hero / .hero__*）には一切触れません。
   ・style.css / responsive.css の後に読み込みます（同じ詳細度なら本ファイルが優先）。
   ・新しい書体・画像・アイコン・アニメーションは追加していません。
   ・グリッドは12カラム基準の非対称構成。本文の開始位置は原則「第5カラム」でそろえます。
   ========================================================================== */


/* ==========================================================================
   00. 下層専用のデザイン変数
   ========================================================================== */
.lw {
  /* 余白・グリッド */
  --lw-gap: clamp(1rem, 0.4rem + 1.8vw, 2rem);
  --lw-gutter: var(--gutter);
  --lw-py: clamp(4.5rem, 3rem + 5.5vw, 8rem);
  --lw-col: calc((100% - 11 * var(--lw-gap)) / 12);

  /* 文字サイズ */
  --lw-fs-body: clamp(1rem, 1.1vw, 1.125rem);
  --lw-fs-h2:   clamp(2.1rem, 3.2vw, 3.4rem);
  --lw-fs-h3:   clamp(1.25rem, 1.7vw, 1.7rem);
  --lw-fs-lead: clamp(1.0625rem, 0.95rem + 0.55vw, 1.3125rem);
  --lw-fs-label: 0.8125rem;

  /* 色（既存のブランドカラーの濃淡のみ） */
  --lw-heading: #262b28;
  --lw-text:    #363c38;
  --lw-text-soft: #4a514c;
  --lw-moss:    var(--c-moss);
  --lw-moss-deep: #2f4a3c;
  --lw-sage-text: #62745c;
  --lw-gold:    var(--c-gold);
  --lw-rule:        #d9d3c2;
  --lw-rule-strong: #b7b09b;
  --lw-tint:    #efebdf;
  --lw-field-border: #858f80;

  padding-block: var(--lw-py);
  color: var(--lw-text);
  font-size: var(--lw-fs-body);
  line-height: 1.95;
}

@media (max-width: 767px) {
  .lw { --lw-gutter: 1.5rem; --lw-py: clamp(3.75rem, 3rem + 4vw, 4.75rem); }
}

/* コンテナ：モバイルは1カラム、900px以上は12カラム */
.lw > .l-container {
  width: min(var(--container), 100% - var(--lw-gutter) * 2);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  column-gap: var(--lw-gap);
}
@media (min-width: 900px) {
  .lw > .l-container { grid-template-columns: repeat(12, minmax(0, 1fr)); }
}

/* セクションごとに上下余白へ強弱をつける */
.lw#worries  { --lw-py: clamp(4.5rem, 3rem + 6vw, 8.5rem); }
@media (max-width: 767px) { .lw#worries { padding-top: 5.5rem; } }   /* ヒーロー直後：セクション上端から英字見出しまで約88px */
.lw#about    { --lw-py: clamp(4.5rem, 3rem + 5.5vw, 8rem); }
.lw#profile  { --lw-py: clamp(4rem, 2.8rem + 5vw, 7.5rem); }
.lw#service  { --lw-py: clamp(4.5rem, 3rem + 4.5vw, 7rem); }
.lw#method   { --lw-py: clamp(4rem, 2.8rem + 4.5vw, 6.5rem); }
.lw#flow     { --lw-py: clamp(4.5rem, 3rem + 5vw, 7.5rem); }
.lw.notice-band { --lw-py: clamp(3.75rem, 2.6rem + 4.5vw, 6.5rem); }
.lw#price    { --lw-py: clamp(4.5rem, 3rem + 5.5vw, 8rem); }
.lw#faq      { --lw-py: clamp(4.5rem, 3rem + 5vw, 7.5rem); }
.lw#threads  { --lw-py: clamp(3.75rem, 2.6rem + 4vw, 6rem); }
.lw#contact  { --lw-py: clamp(4.5rem, 3rem + 5.5vw, 8rem); }

/* 行末に1〜2文字だけ残らないようにする */
.lw p, .lw li { text-wrap: pretty; }
.lw .section__title, .lw .notice__title, .lw .inset__title, .lw .strength__title, .lw .worries__closing { text-wrap: balance; }

/* 本文の色（薄くしすぎない） */
.lw .worries__lead p,
.lw .strength__body p,
.lw .profile__text p,
.lw .tool__body p,
.lw .method__body p,
.lw .step__body p,
.lw .notice__body p,
.lw .price-item__desc p,
.lw .faq__a p,
.lw .threads__text p,
.lw .section__head-lead p,
.lw .inset p,
.lw .contact__intro p { color: var(--lw-text-soft); }


/* ==========================================================================
   01. 共通：見出しまわり
   ========================================================================== */
.lw .section__head {
  grid-column: 1 / -1;
  margin-bottom: clamp(2.5rem, 1.8rem + 2.6vw, 4.5rem);
}

.lw .section__eyebrow {
  margin-bottom: 1.1rem;
  color: var(--lw-sage-text);
  font-size: var(--lw-fs-label);
  letter-spacing: 0.2em;
  line-height: 1.6;
}
.lw .section__eyebrow::after {
  width: 2.5rem;
  margin-top: 0.95rem;
  border-top-color: var(--lw-rule-strong);
}

.lw .section__title {
  color: var(--lw-heading);
  font-size: var(--lw-fs-h2);
  line-height: 1.5;
  letter-spacing: 0.06em;
  font-weight: 500;
}

.lw .section__sub {
  margin-top: 1.25rem;
  color: var(--lw-text-soft);
  font-size: var(--lw-fs-lead);
  line-height: 1.9;
}

/* 左カラムに見出しを置くセクション（PC：見出しは追従、本文は第5カラム開始） */
@media (min-width: 900px) {
  .lw#flow .section__head,
  .lw#price .section__head,
  .lw#faq .section__head {
    grid-column: 1 / 5;
    grid-row: 1 / span 6;
    align-self: start;
    margin-bottom: 0;
  }
}
@media (min-width: 1024px) {
  .lw#flow .section__head,
  .lw#price .section__head,
  .lw#faq .section__head {
    position: sticky;
    top: calc(var(--header-h) + 2.5rem);
  }
}

/* リード（見出し下・第5カラム開始） */
.lw .section__head--split { display: block; }
.lw .section__head--split .section__head-lead {
  max-width: 40em;
  margin-top: clamp(1.75rem, 1.2rem + 1.6vw, 2.75rem);
  font-size: var(--lw-fs-body);
}
@media (min-width: 900px) {
  .lw .section__head--split .section__head-lead {
    margin-left: calc(var(--lw-col) * 4 + var(--lw-gap) * 4);
  }
}
.lw .section__head-lead p + p { margin-top: 1.1em; }
.lw .section__head-lead p:first-child {
  color: var(--lw-heading);
  font-family: var(--f-mincho);
  font-size: var(--lw-fs-lead);
  line-height: 2;
  letter-spacing: 0.06em;
}

/* 英字大文字ラベルだけの見出し（PROFILE / CONTACT） */
.lw .section__head--plain .section__title::after { display: none; }


/* ==========================================================================
   02. お悩み
   ========================================================================== */
.lw#worries .section__title { font-size: clamp(1.9rem, 3.1vw, 3.2rem); word-break: keep-all; }
.lw#worries .section__head { margin-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem); }

.lw .worries__lead {
  grid-column: 1 / -1;
  max-width: 40em;
}
@media (min-width: 900px) {
  .lw .worries__lead { grid-column: 5 / 12; max-width: none; }
}
.lw .worries__lead p + p { margin-top: 0.55em; }

.lw .worries__grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(2rem, 0.5rem + 5.5vw, 6rem);
  row-gap: 3rem;
  margin-top: clamp(3.25rem, 2.2rem + 3.6vw, 6rem);
  padding-top: 0;
  border-top: 0;
}
@media (max-width: 599px) {
  .lw .worries__grid { grid-template-columns: minmax(0, 1fr); }
}

.lw .worry-block {
  padding-top: clamp(1.25rem, 1rem + 0.8vw, 1.75rem);
  border-top: 1px solid var(--lw-rule-strong);
}
.lw .worry-block__no {
  margin-bottom: 0.9rem;
  color: var(--lw-gold);
  font-size: clamp(3.25rem, 2.3rem + 3.8vw, 6rem);
  font-variant-numeric: lining-nums;
  letter-spacing: 0.02em;
  line-height: 1;
}
.lw .worry-block__title {
  margin-bottom: 1.35rem;
  padding: 0;
  border: 0;
  color: var(--lw-moss-deep);
  font-size: var(--lw-fs-h3);
  font-weight: 600;
  line-height: 1.6;
}

.lw .leaf-list > li {
  padding: 0.7rem 0 0.7rem 1.75rem;
  border-bottom: 1px solid var(--c-line-soft);
  line-height: 1.7;
}
.lw .leaf-list > li + li { margin-top: 0; }
.lw .leaf-list > li:first-child { border-top: 1px solid var(--c-line-soft); }
.lw .leaf-list > li::before {
  top: 1.5em;
  width: 0.9rem;
  background-color: var(--lw-moss);
}

.lw .worries__closing {
  grid-column: 1 / -1;
  max-width: 40em;
  margin-top: clamp(4rem, 2.5rem + 6vw, 8rem);
  color: var(--lw-heading);
  font-family: var(--f-mincho);
  font-size: clamp(1.1875rem, 1.02rem + 0.75vw, 1.625rem);
  line-height: 2.1;
  letter-spacing: 0.08em;
}
.lw .worries__closing::before {
  content: "";
  display: block;
  width: 3rem;
  margin-bottom: 1.75rem;
  border-top: 1px solid var(--lw-moss);
}
@media (min-width: 900px) {
  .lw .worries__closing { grid-column: 5 / 13; max-width: none; }
}

/* --------------------------------------------------------------------------
   02-b. お悩み：導入文〜結びの文だけに敷く、動く背景（静かな白い空間の中で、光量と色の重心だけがゆっくり変わる）
   --------------------------------------------------------------------------
   ・範囲：グリッドの1行目（CONCERNS・大見出し）〜4行目（「お話を伺いながら、一つずつ整理していきます。」）の下端まで。
     前のヒーロー・次のセクションには入らない。上下は縦方向のマスク（上12%・下88%）で既存の背景へ溶かす。
   ・構成（背景は3層だけ。丸い光や色の塊は作らない）。役割を分けている
       本体      ：温かい生成りの不透明なベタ（土台）
       ::after  ：本文の可読性を守る、1枚の大きな白いヴェール（静止）。輪郭が見えない大きさ・ぼかし。小さくすると本文の背面へ生成りが入るので、大きさは変えない
       ::before ：動きを見せる、1枚の非常に広いグラデーション（左：ごく淡いセージ → 広い温かい白 → 淡い生成り → 右：ごく淡いゴールド）。
                  色ではなく、広い明度の勾配が横へ移ることで見せる。ヴェールの上に重ねる（白は本文の背面を明るくするだけ）
   ・動き：::before のグラデーションを、要素より横に広い背景サイズ（PC 180%・スマホ 150%）にして、
           background-position だけを ease の往復（alternate）で動かす。transform・要素の拡張は使わない。
           背景は常に要素を覆っており（no-repeat）、端・継ぎ目・位置の瞬間的な戻しがないので、縦線やループ時のジャンプは出ない。
           文字・カード・罫線は動かない。
           PC：片道8秒・位置 20%→80%。スマホ：片道11秒・位置 42%→58%（距離を小さくして、穏やかに呼吸する程度）。
   ・色は既存の系統のみ：温かい白／生成り（--c-ivory に近い）／ごく淡いセージ（--c-sage-pale）／ごく淡いゴールド（--c-gold）。
   ・本文より背面（コンテナを isolate、背景は z-index:-1）。JS・画像・Canvas は使わない。 */
.lw#worries > .l-container { position: relative; isolation: isolate; }
.worries-flow {
  /* 色（RGB。--c-* の既存色に対応） */
  --wf-white: 255, 254, 251;   /* 白（#FFFEFB） */
  --wf-base:  242, 237, 226;   /* 土台の生成り（#F2EDE2。--c-ivory より一段だけ濃く、白との明度差を約5%つくる） */
  --wf-sage:  195, 204, 190;   /* --c-sage-pale */
  --wf-gold:  160, 138, 84;    /* --c-gold */
  /* 動き（::before）：片道の時間、緩急 */
  --wf-time: 8s;
  --wf-ease: cubic-bezier(0.45, 0.05, 0.55, 0.95);   /* 端で止まって見えにくい、ゆるやかな緩急 */
  --wf-angle: 112deg;          /* 明度勾配の向き（ほぼ横。わずかに斜めにして、縦の帯に見えないようにする） */
  --wf-veil-bleed: 6vw;        /* 白いヴェールを表示領域より左右へ広げる量（静止。大きさ・位置を決める） */
  position: absolute;
  grid-column: 1 / -1;
  grid-row: 1 / 5;             /* CONCERNS ラベルの上端 〜 結びの文の下端 */
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;                /* 左右は画面幅いっぱい（html / body の overflow-x:hidden でスクロールは出ない） */
  margin-left: -50vw;
  overflow: hidden;
  z-index: -1;
  pointer-events: none;
  background-color: rgb(var(--wf-base));
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
.worries-flow::before,
.worries-flow::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  background-repeat: no-repeat;
}
/* 動く明度の勾配：左のごく淡いセージ → 広い温かい白（中央やや左） → 淡い生成り → 右のごく淡いゴールド */
.worries-flow::before {
  z-index: 1;                             /* ヴェールの上。白は本文の背面を明るくするだけで、可読性は下がらない */
  left: 0;
  right: 0;
  background-image: linear-gradient(
    var(--wf-angle),
    rgba(var(--wf-sage), 0.34) 0%,
    rgba(var(--wf-base), 0.05) 22%,
    rgba(var(--wf-white), 0.98) 42%,
    rgba(var(--wf-white), 0.65) 60%,
    rgba(var(--wf-gold), 0.20) 100%
  );
  background-size: 180% 100%;             /* 要素より横に広い（位置 20%〜80% のどこでも要素全体を覆う） */
  background-position: 50% 50%;           /* 静止時（動きを減らす設定）は移動の中央 */
  animation-name: worries-flow-pan;
  animation-duration: var(--wf-time);
  animation-timing-function: var(--wf-ease);
  animation-iteration-count: infinite;
  animation-direction: alternate;
}
/* 可読性を守る白いヴェール（静止）：画面の大半を覆う大きさ。重心は中央から少し左上。周囲へ輪郭なく溶ける */
.worries-flow::after {
  left: calc(var(--wf-veil-bleed) * -1);
  right: calc(var(--wf-veil-bleed) * -1);
  background-image: radial-gradient(
    ellipse 130% 100% at 46% 48%,
    rgba(var(--wf-white), 0.94) 0%,
    rgba(var(--wf-white), 0.80) 30%,
    rgba(var(--wf-white), 0.42) 62%,
    rgba(var(--wf-white), 0) 100%
  );
  transform: none;
  will-change: auto;
}
@keyframes worries-flow-pan {
  from { background-position: 20% 50%; }
  to   { background-position: 80% 50%; }
}
/* スマホ：背景サイズ 150%・位置 42%→58% の小さな範囲で、片道11秒（スマホ専用のキーフレーム） */
@keyframes worries-flow-pan-sp {
  from { background-position: 42% 50%; }
  to   { background-position: 58% 50%; }
}
@media (max-width: 767px) {
  .worries-flow {
    --wf-time: 11s;
    --wf-angle: 98deg;
    --wf-veil-bleed: 1.5vw;
  }
  .worries-flow::before {
    background-size: 150% 100%;
    animation-name: worries-flow-pan-sp;
  }
}
/* 動きを減らす設定：停止し、移動の中央の状態を静止表示する（ヴェールは常に静止） */
@media (prefers-reduced-motion: reduce) {
  .worries-flow::before { animation: none; }
}


/* ==========================================================================
   03. 私の鑑定について
   ========================================================================== */
.lw .strengths {
  grid-column: 1 / -1;
  margin-top: clamp(0.5rem, 0.5rem + 1vw, 1.5rem);
  border-top: 1px solid var(--lw-rule-strong);
}

.lw .strength {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding-block: clamp(2.25rem, 1.6rem + 2.4vw, 4rem);
  border-bottom: 1px solid var(--lw-rule);
}
@media (min-width: 900px) {
  .lw .strength {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--lw-gap);
  }
  .lw .strength__no   { grid-column: 1 / 5; }
  .lw .strength__body { grid-column: 5 / 12; }
}

.lw .strength__no {
  margin-bottom: 0.9rem;
  color: var(--lw-gold);
  font-size: clamp(3rem, 2rem + 3.6vw, 5.5rem);
  font-variant-numeric: lining-nums;
  line-height: 0.95;
  letter-spacing: 0.02em;
}
@media (min-width: 900px) { .lw .strength__no { margin-bottom: 0; } }

.lw .strength__title {
  margin-bottom: 1.4rem;
  color: var(--lw-heading);
  font-size: var(--lw-fs-h3);
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.lw .strength__body { max-width: 40em; }
.lw .strength__body p:first-of-type {
  margin-bottom: 1.1rem;
  color: var(--lw-heading);
  font-family: var(--f-mincho);
  font-size: clamp(1.0625rem, 0.96rem + 0.45vw, 1.25rem);
  line-height: 2;
  letter-spacing: 0.05em;
}
.lw .strength__body p + p { margin-top: 0.9em; }

/* 鑑定で大切にしていること：引用のように静かに読ませる広い面 */
.lw .inset {
  grid-column: 1 / -1;
  margin-top: clamp(3.5rem, 2.2rem + 5vw, 6.5rem);
  padding: clamp(2.25rem, 1.5rem + 3.2vw, 4.75rem) clamp(1.75rem, 1rem + 3.6vw, 4.5rem);
  background-color: var(--rose-soft);   /* 下層で唯一の色面：ブランドメッセージ */
  border-left: 2px solid var(--lw-moss);
  border-radius: 0;
  box-shadow: none;
}
@media (min-width: 900px) {
  .lw .inset { margin-left: calc(var(--lw-col) * 2 + var(--lw-gap) * 2); }
}
.lw .brand-message-mark {
  display: block;
  height: 2.4rem;
  width: auto;
  aspect-ratio: 1145 / 1374;   /* 画像そのものの縦横比を維持（引き伸ばし・トリミングをしない） */
  object-fit: contain;
  margin-bottom: 1.25rem;
  opacity: 0.9;
}
@media (max-width: 767px) { .lw .brand-message-mark { height: 2rem; margin-bottom: 1rem; } }
.lw .inset__title {
  margin-bottom: 1.9rem;
  color: var(--lw-heading);
  font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.15rem);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.08em;
}
.lw .inset p { max-width: 40em; }
.lw .inset p:first-of-type {
  margin-bottom: 1.25rem;
  color: var(--lw-heading);
  font-family: var(--f-mincho);
  font-size: var(--lw-fs-lead);
  line-height: 2;
  letter-spacing: 0.06em;
}
.lw .inset p + p { margin-top: 1em; }


/* ==========================================================================
   04. プロフィール
   ========================================================================== */
.lw .profile {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.5rem, 2rem + 2vw, 3.5rem);
  align-items: start;
}
@media (min-width: 900px) {
  .lw .profile {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--lw-gap);
  }
  .lw .profile__visual { grid-column: 1 / 6; position: sticky; top: calc(var(--header-h) + 2.5rem); }
  .lw .profile__body   { grid-column: 7 / 13; }
}

/* 写真の仮スペース：無地・細枠のみ。写真を入れた場合は img が枠いっぱいにトリミングされる */
.lw .figure--profile {
  aspect-ratio: 4 / 5;
  margin: 0;
  overflow: visible;           /* 影を切らない（枠・境界線・角丸は内側の picture に持たせる。17章参照） */
}
.lw .figure--profile img { display: block; width: 100%; max-width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; }
@media (max-width: 899px) {
  .lw .figure--profile { max-width: 26rem; }
}

.lw .profile__body .section__head { margin-bottom: 1.25rem; }
.lw .profile__body .section__title--en {
  color: var(--rose-ink);   /* くすみピンク（THREADS のラベルと同じ色・濃度） */
  font-size: var(--lw-fs-label);
  letter-spacing: 0.22em;
  line-height: 1.6;
}
.lw .profile__body .section__title--en::after {
  display: block;
  content: "";
  width: 2.5rem;
  margin-top: 0.95rem;
  border-top: 1px solid var(--rose-line);
}

.lw .profile__name {
  margin-bottom: 1.5rem;
  color: var(--lw-heading);
  font-size: clamp(2.25rem, 1.5rem + 2.6vw, 3.6rem);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.16em;
}

.lw .profile__text p { color: var(--lw-text-soft); }
.lw .profile__text p + p { margin-top: 1em; }
.lw .profile__text { max-width: 36em; }
.lw .profile__text .profile__intro {
  margin-bottom: 1.25rem;
  color: var(--lw-sage-text);
  font-family: var(--f-mincho);
  font-size: var(--lw-fs-lead);
  letter-spacing: 0.14em;
}
.lw .profile__text .profile__intro + p { margin-top: 0; }
.lw .profile__text .profile__stance {
  position: relative;
  margin-top: 2.5rem;
  padding-top: 1.9rem;
  color: var(--lw-moss-deep);
  font-family: var(--f-mincho);
  font-size: clamp(1.125rem, 1rem + 0.6vw, 1.4rem);
  line-height: 2.05;
  letter-spacing: 0.06em;
}
.lw .profile__text .profile__stance::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 3rem;
  border-top: 1px solid var(--lw-moss);
}

.lw .profile .def-list { margin-top: clamp(2.5rem, 2rem + 1.6vw, 3.5rem); }
.lw .def-list__row {
  grid-template-columns: 7.5rem minmax(0, 1fr);
  border-top-color: var(--lw-rule);
}
.lw .def-list__row:last-child { border-bottom-color: var(--lw-rule); }
.lw .def-list__term { color: var(--lw-text-soft); font-size: 0.875rem; }
.lw .def-list__desc { font-size: var(--lw-fs-body); }
@media (max-width: 479px) {
  .lw .def-list__row { grid-template-columns: minmax(0, 1fr); gap: 0.15rem; }
}


/* ==========================================================================
   05. 鑑定内容（3段のエディトリアル構成）
   ========================================================================== */
.lw .tool-list {
  grid-column: 1 / -1;
  margin-top: clamp(0.5rem, 0.5rem + 1vw, 1.5rem);
  border-top: 1px solid var(--lw-rule-strong);
}

.lw .tool {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  row-gap: 0.4rem;
  padding-block: clamp(2.25rem, 1.6rem + 2.4vw, 3.75rem);
  border-bottom: 1px solid var(--lw-rule);
}
@media (min-width: 900px) {
  .lw .tool {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--lw-gap);
    row-gap: 0;
  }
  .lw .tool__no    { grid-column: 1 / 2; }
  .lw .tool__title { grid-column: 2 / 5; }
  .lw .tool__body  { grid-column: 5 / 12; }
}

.lw .tool__no {
  color: var(--lw-gold);
  font-size: clamp(2.25rem, 1.7rem + 1.8vw, 3.25rem);
  font-variant-numeric: lining-nums;
  line-height: 1;
  letter-spacing: 0.02em;
}
.lw .tool__title {
  color: var(--lw-heading);
  font-size: var(--lw-fs-h3);
  font-weight: 600;
  line-height: 1.5;
}
.lw .tool__en {
  margin-top: 0.55em;
  color: var(--lw-sage-text);
  font-size: var(--lw-fs-label);
  letter-spacing: 0.2em;
  font-weight: 400;
}
.lw .tool__body { max-width: 38em; padding-top: 0.5rem; }
@media (max-width: 899px) { .lw .tool__body { padding-top: 1rem; } }
.lw .tool__body p:first-child {
  margin-bottom: 1rem;
  color: var(--lw-heading);
  font-family: var(--f-mincho);
  font-size: clamp(1.0625rem, 0.96rem + 0.45vw, 1.25rem);
  line-height: 2;
  letter-spacing: 0.05em;
}
.lw .tool__body p + p { margin-top: 0.8em; }


/* ==========================================================================
   06. 鑑定方法（一つの大きな面を細線で分割）
   ========================================================================== */
.lw .methods {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  background-color: var(--c-paper);
  border: 1px solid var(--lw-rule-strong);
}
@media (min-width: 768px) {
  .lw .methods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.lw .method {
  padding: clamp(2rem, 1.2rem + 3vw, 3.75rem) clamp(1.5rem, 0.8rem + 3.2vw, 3.5rem);
  background: none;
  border: 0;
  border-radius: 0;
}
.lw .method + .method { border-top: 1px solid var(--lw-rule-strong); }
@media (min-width: 768px) {
  .lw .method--lead { grid-column: 1 / -1; }
  .lw .method + .method:nth-child(3) { border-left: 1px solid var(--lw-rule-strong); }
}

/* アイコン＋タイトルのまとまり（対面鑑定ではこの単位を左カラムに配置する） */
.lw .method__head { display: block; }

.lw .method__icon {
  display: block;
  width: 2.25rem;
  height: 2.25rem;
  margin-bottom: 0.9rem;
  fill: none;
  stroke: var(--lw-moss);
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
@media (max-width: 767px) { .lw .method__icon { width: 2rem; height: 2rem; margin-bottom: 0.75rem; } }
/* 対面鑑定アイコンのテーブル天板のみ、面で塗って椅子の線画と視覚的に区別する */
.lw .method__icon-fill { fill: var(--lw-moss); stroke: none; }

.lw .method__title {
  margin-bottom: 1.25rem;
  color: var(--lw-moss-deep);
  font-size: var(--lw-fs-h3);
  font-weight: 600;
  line-height: 1.5;
}
.lw .method__body p + p { margin-top: 0.8em; }

@media (min-width: 900px) {
  .lw .method--lead {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--lw-gap);
    align-items: start;
  }
  .lw .method--lead .method__head { grid-column: 1 / 4; }
  .lw .method--lead .method__title { margin-bottom: 0; }
  .lw .method--lead .method__body  { grid-column: 4 / 12; max-width: 38em; }
}
@media (max-width: 899px) {
  .lw .method--lead { display: block; }
  .lw .method--lead .method__title { margin-bottom: 1.25rem; }
}


/* ==========================================================================
   07. 鑑定の流れ（縦線のタイムライン）
   ========================================================================== */
.lw .steps {
  grid-column: 1 / -1;
  max-width: none;
}
@media (min-width: 900px) {
  .lw .steps { grid-column: 5 / 13; }
}

.lw .step {
  --pad: 2.5rem;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  row-gap: 0.75rem;
  padding: var(--pad) 0 var(--pad) 2.25rem;
}
.lw .step:first-child { --pad: 1.5rem; padding-top: 0.25rem; }
.lw .step:nth-child(2) { --pad: 2.75rem; }
.lw .step:nth-child(3) { --pad: 2.25rem; }
.lw .step:last-child   { --pad: 3rem; padding-bottom: 0; }
@media (min-width: 900px) {
  .lw .step {
    grid-template-columns: 6.5rem minmax(0, 1fr);
    column-gap: clamp(1.5rem, 1rem + 1.6vw, 2.5rem);
    row-gap: 0;
  }
}

/* STEP をつなぐ縦の細線（この点の下から、次の点の中心まで） */
.lw .step:nth-child(1) { --npad: 2.75rem; }
.lw .step:nth-child(2) { --npad: 2.25rem; }
.lw .step:nth-child(3) { --npad: 3rem; }
.lw .step::before {
  content: "";
  position: absolute;
  left: 0.3rem;
  top: calc(var(--pad) + 1rem);
  bottom: calc(-1 * (var(--npad, 0rem) + 0.55rem));
  border-left: 1px solid var(--lw-rule-strong);
}
.lw .step:first-child::before { top: 1.15rem; }
.lw .step:last-child::before { display: none; }

.lw .step__no {
  position: relative;
  padding-left: 0;
  color: var(--lw-sage-text);
  font-size: 0.75rem;
  letter-spacing: 0.22em;
  line-height: 1.6;
}
.lw .step__no::before {
  content: "";
  position: absolute;
  left: -2.25rem;
  top: 0.25rem;
  z-index: 1;
  width: 0.6rem;
  height: 0.6rem;
  border: 1px solid var(--lw-moss);
  border-radius: 50%;
  background-color: var(--c-paper);
}
.lw .step__no .en:first-child { display: block; }
.lw .step__num {
  display: block;
  margin-top: 0.15rem;
  color: var(--rose-ink);   /* 欧文誌面の章番号のように。バッジ化・円形化はしない */
  font-size: clamp(2.25rem, 1.7rem + 1.8vw, 3.25rem);
  font-variant-numeric: lining-nums;
  letter-spacing: 0.04em;
  line-height: 1.05;
}

.lw .step__title {
  margin-bottom: 0.75rem;
  color: var(--lw-heading);
  font-size: var(--lw-fs-h3);
  font-weight: 600;
  line-height: 1.55;
}
.lw .step__body { max-width: 36em; }
.lw .step__body p + p { margin-top: 0.8em; }
@media (max-width: 899px) {
  .lw .step__no { margin-bottom: 0.25rem; }
}


/* ==========================================================================
   08. ご予約日時の変更／鑑定をお受けできない内容
   ========================================================================== */
.lw .notice-band__grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(3rem, 2.5rem + 2vw, 4rem);
}
@media (min-width: 900px) {
  .lw .notice-band__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(3rem, 1rem + 6vw, 7rem);
  }
}

.lw .notice {
  padding-top: 1.75rem;
  border-top: 1px solid var(--lw-moss);
}
.lw .notice__title {
  margin-bottom: 1.6rem;
  color: var(--lw-heading);
  font-size: clamp(1.375rem, 1.1rem + 0.9vw, 1.8rem);
  font-weight: 600;
  line-height: 1.55;
}
.lw .notice__body { max-width: 34em; }
.lw .notice__body p + p { margin-top: 0.95em; }

/* 一覧：白い箱に閉じ込めず、細い罫線で区切るだけの2列リスト */
.lw .decline-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 1.75rem;
  row-gap: 0;
  margin-block: 1.5rem;
  padding: 0;
  background: none;
  border-top: 1px solid var(--lw-rule);
}
@media (max-width: 479px) {
  .lw .decline-list { grid-template-columns: minmax(0, 1fr); }
}
.lw .decline-list > li {
  padding: 0.7rem 0 0.7rem 1.4rem;
  border-bottom: 1px solid var(--lw-rule);
  color: var(--lw-text);
  font-size: var(--lw-fs-body);
  line-height: 1.7;
}
.lw .decline-list > li::before {
  top: 1.5em;
  width: 0.7rem;
  background-color: var(--lw-moss);
}


/* ==========================================================================
   09. 料金
   ========================================================================== */
.lw .price-list {
  grid-column: 1 / -1;
  border-top: 0;
}
.lw .price__action { grid-column: 1 / -1; margin-top: clamp(2.75rem, 2rem + 2.6vw, 4.5rem); }
@media (min-width: 900px) {
  .lw .price-list { grid-column: 5 / 13; }
  .lw .price__action { grid-column: 5 / 13; }
}

.lw .price-item {
  display: block;
  padding-block: clamp(2rem, 1.5rem + 1.8vw, 3rem);
  border-top: 1px solid var(--lw-rule-strong);
  border-bottom: 0;
}
.lw .price-item:first-child {
  padding-top: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem);
  border-top: 2px solid var(--lw-heading);
}
.lw .price-item:last-child { border-bottom: 1px solid var(--lw-rule-strong); }

.lw .price-item__name {
  margin-bottom: 0.9rem;
  color: var(--lw-moss-deep);
  font-size: var(--lw-fs-h3);
  font-weight: 600;
  line-height: 1.5;
}

/* 金額：桁頭を縦にそろえる（前置き文字は固定幅の右寄せ） */
.lw .price-item__amount {
  display: grid;
  grid-template-columns: 6.25rem max-content max-content;
  align-items: baseline;
  margin-bottom: 1.15rem;
  color: var(--lw-heading);
  font-family: var(--f-mincho);
  letter-spacing: 0.04em;
}
.lw .price-item__prefix {
  grid-column: 1;
  white-space: nowrap;
  justify-self: end;
  padding-right: 0.9rem;
  color: var(--lw-text-soft);
  font-family: var(--f-mincho);
  font-size: 1rem;
  letter-spacing: 0.06em;
}
.lw .price-item__figure {
  grid-column: 2;
  color: var(--lw-heading);
  font-size: clamp(2.5rem, 1.9rem + 2.2vw, 3.5rem);
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.lw .price-item__unit {
  grid-column: 3;
  padding-left: 0.3em;
  color: var(--lw-heading);
  font-size: clamp(1.125rem, 1rem + 0.5vw, 1.4rem);
}
.lw .price-item__tax {
  padding-left: 0.35em;
  color: var(--lw-text-soft);
  font-family: var(--f-gothic);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
}
/* 基本鑑定（30分 4,000円／50分 7,000円）：最も強い情報 */
.lw .price-item--main .price-item__prefix {
  color: var(--lw-heading);
  font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.6rem);
}
.lw .price-item--main .price-item__figure {
  font-size: clamp(3.75rem, 2.6rem + 4.6vw, 6rem);
  line-height: 1.05;
}
.lw .price-item--main .price-item__unit { font-size: clamp(1.375rem, 1.1rem + 1vw, 1.9rem); }

.lw .price-item__desc { max-width: 34em; }
.lw .price-item__desc p { font-size: var(--lw-fs-body); }
.lw .price-item__desc p + p { margin-top: 0.7em; }

@media (max-width: 479px) {
  .lw .price-item__amount { grid-template-columns: 5.75rem max-content max-content; }
  .lw .price-item__prefix { padding-right: 0.6rem; font-size: 0.9375rem; white-space: nowrap; }
}


/* ==========================================================================
   10. よくあるご質問
   ========================================================================== */
.lw .faq {
  grid-column: 1 / -1;
  border-top: 1px solid var(--lw-rule-strong);
}
@media (min-width: 900px) { .lw .faq { grid-column: 5 / 13; } }

.lw .faq__item { border-bottom: 1px solid var(--lw-rule); }

.lw .faq__q {
  position: relative;
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0.85rem;
  min-height: 3.5rem;
  padding: 1.5rem 3.25rem 1.5rem 0.75rem;
  color: var(--lw-heading);
  font-size: clamp(1.0625rem, 0.97rem + 0.35vw, 1.25rem);
  line-height: 1.75;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: background-color 0.3s var(--ease), color 0.3s var(--ease);
}
.lw .faq__q:hover { background-color: rgba(69, 87, 63, 0.05); color: var(--lw-moss-deep); }
.lw .faq__q:focus-visible {
  outline: 2px solid var(--lw-moss);
  outline-offset: -2px;
  background-color: rgba(69, 87, 63, 0.05);
}
.lw .faq__item[open]:not(.is-closing) > .faq__q { color: var(--lw-moss-deep); }
/* 開いている項目だけ、ごく薄いくすみピンクの面（左右へ 1rem はみ出させ、文字位置は動かさない） */
.lw .faq__item[open]:not(.is-closing) {
  background-color: var(--rose-soft);
  box-shadow: -1rem 0 0 var(--rose-soft), 1rem 0 0 var(--rose-soft);
}

.lw .faq__q-mark {
  flex: none;
  width: 2rem;
  color: var(--lw-moss);
  font-size: 1.4rem;
  letter-spacing: 0.02em;
  line-height: 1;
}
.lw .faq__q-text { min-width: 0; }

/* 開閉のしるし（機能表示としての＋／−） */
.lw .faq__q::before,
.lw .faq__q::after {
  content: "";
  position: absolute;
  right: 1.1rem;
  top: 2.4rem;
  width: 0.9rem;
  height: 1px;
  margin: 0;
  background: var(--lw-moss);
  transform: translateY(-50%);
  transition: transform 0.35s var(--lw-ease);
}
.lw .faq__q::after { transform: translateY(-50%) rotate(90deg); }
/* 開いたときだけ45度回転して「×」に見せる */
.lw .faq__item[open]:not(.is-closing) > .faq__q::before { transform: translateY(-50%) rotate(45deg); }
.lw .faq__item[open]:not(.is-closing) > .faq__q::after  { transform: translateY(-50%) rotate(135deg); }

.lw .faq__a {
  max-width: 40em;
  padding: 0.25rem 3.25rem 2.25rem 3.6rem;
  line-height: 2;
}
.lw .faq__a p + p { margin-top: 0.75em; }
@media (max-width: 479px) {
  .lw .faq__q { padding-left: 0.25rem; padding-right: 2.75rem; }
  .lw .faq__a { padding: 0.25rem 1rem 2rem 0.25rem; }
  .lw .faq__q::before, .lw .faq__q::after { right: 0.6rem; }
}


/* ==========================================================================
   11. Threads
   ========================================================================== */
.lw .threads {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.5rem, 2rem + 2vw, 3.5rem);
  align-items: start;
}
@media (min-width: 900px) {
  .lw .threads {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--lw-gap);
  }
  .lw .threads__body  { grid-column: 1 / 8; }
  .lw .threads__aside { grid-column: 9 / 13; }
}

.lw#threads .section__title {
  font-size: clamp(1.9rem, 2.7vw, 2.9rem);
  word-break: keep-all;
  text-wrap: balance;
}
.lw#worries .section__eyebrow,
.lw#price .section__eyebrow,
.lw#threads .section__eyebrow { color: var(--rose-ink); }              /* くすみピンクの英字ラベル：PROFILE / THREADS / CONCERNS / PRICE（他セクションのラベルは変えない） */
.lw#worries .section__eyebrow::after,
.lw#price .section__eyebrow::after,
.lw#threads .section__eyebrow::after { border-top-color: var(--rose-line); }
.lw .threads__text { max-width: 34em; margin-top: 1.75rem; color: var(--lw-text-soft); }
.lw .threads__text p + p { margin-top: 1em; }

.lw .threads__aside {
  padding-top: 1.5rem;
  border-top: 1px solid var(--lw-moss);
}
@media (min-width: 900px) { .lw .threads__aside { margin-top: 3.4rem; } }
.lw .def-list--compact .def-list__row { grid-template-columns: 7rem minmax(0, 1fr); padding-block: 0.9rem; }
.lw .def-list--compact .def-list__desc { font-family: var(--f-mincho); font-size: 1.0625rem; letter-spacing: 0.04em; overflow-wrap: anywhere; }
.lw .def-list--compact .def-list__desc.en { font-family: var(--f-serif-en); font-size: 1.1875rem; }
@media (max-width: 479px) {
  .lw .def-list--compact .def-list__row { grid-template-columns: minmax(0, 1fr); gap: 0.1rem; }
}
/* Threads の「表示名」「ユーザーネーム」：左（14px・ゴシック）と右（17〜19px・明朝／欧文）の高さが違うため、
   Grid の初期値（normal＝上寄せ）だと左の字面が上へ寄って見える。2列表示の間だけ、中央にそろえる（縦積みは対象外） */
@media (min-width: 480px) {
  .lw#threads .def-list--compact .def-list__row { align-items: center; }
}
.lw .threads__action { margin-top: 2rem; }
.lw .threads__action .btn {
  width: 100%;
  min-height: 3.5rem;
  border-color: var(--lw-moss);
  color: var(--lw-moss);
  font-size: 0.9375rem;
  letter-spacing: 0.1em;
}
.lw .threads__action .btn {
  transition:
    background-color 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    color 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
/* ホバー：マウスなど、実際にホバーできる端末だけ。深いグリーン → くすみピンク（色だけ。大きさ・位置・影は変えない） */
@media (hover: hover) and (pointer: fine) {
  .lw .threads__action .btn:hover { background-color: var(--rose-ink); border-color: var(--rose-ink); color: var(--c-paper); }
}
/* キーボードフォーカス：同じ色に、既存のフォーカスリング（2px・オフセット3px）を重ねて明確に示す */
.lw .threads__action .btn:focus-visible { background-color: var(--rose-ink); border-color: var(--rose-ink); color: var(--c-paper); }

/* Threads公式ロゴ：文言と横並び・中央揃え。色はボタン文字色に追従（ホバー時のモス→ローズも自動で連動） */
.lw .threads-btn { gap: 0.6rem; }
.lw .threads-btn__icon {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
  fill: currentColor;
}

/* ==========================================================================
   12. お問い合わせ
   ========================================================================== */
.lw#contact .section__head {
  margin-bottom: 1.75rem;
}
.lw#contact .section__title--en {
  color: var(--lw-heading);
  font-size: var(--lw-fs-h2);
  letter-spacing: 0.14em;
  line-height: 1.3;
}
.lw#contact .section__head--plain .section__title::after {
  display: block;
  content: "";
  width: 2.5rem;
  margin-top: 1.25rem;
  border-top: 1px solid var(--rose-line);   /* CONTACT：見出しは墨色のまま、短い装飾線だけくすみピンク */
}

.lw .contact {
  display: contents;
}
.lw .contact__intro {
  grid-column: 1 / -1;
  min-height: 0;
  max-width: 34em;
  color: var(--lw-text-soft);
  font-family: var(--f-mincho);
  font-size: var(--lw-fs-lead);
  line-height: 2.1;
  letter-spacing: 0.06em;
}
.lw .contact__intro p + p { margin-top: 0.9em; }
.lw .contact__intro p:last-child { color: var(--lw-heading); }

.lw .contact__form-wrap {
  grid-column: 1 / -1;
  margin-top: clamp(2.75rem, 2rem + 2.6vw, 4rem);
  padding: clamp(1.75rem, 1.2rem + 2vw, 2.5rem) 0 0;
  background: none;
  border: 0;
  border-top: 1px solid var(--lw-rule-strong);
  border-radius: 0;
  box-shadow: none;
}
@media (min-width: 900px) {
  .lw#contact > .l-container { grid-template-rows: auto 1fr; }
  .lw#contact .section__head { grid-column: 1 / 6; grid-row: 1; }
  .lw .contact__intro { grid-column: 1 / 6; grid-row: 2; align-self: start; }
  .lw .contact__form-wrap {
    grid-column: 6 / 13;
    grid-row: 1 / span 2;
    margin-top: 0;
    padding: 0 0 0 clamp(2rem, 1rem + 3.4vw, 4.5rem);
    border-top: 0;
    border-left: 1px solid var(--lw-rule-strong);
  }
}

.lw .contact__form-title {
  margin-bottom: 2rem;
  padding: 0;
  border: 0;
  color: var(--lw-heading);
  font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
  font-weight: 600;
}

.lw .form__field + .form__field { margin-top: 1.75rem; }
.lw .form__label {
  gap: 0.75em;
  margin-bottom: 0.6rem;
  color: var(--lw-heading);
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.06em;
}

.lw .tag {
  padding: 0.05em 0.65em;
  border-radius: 1px;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  line-height: 1.7;
}
.lw .tag--required { background-color: var(--lw-moss); border-color: var(--lw-moss); color: var(--c-paper); }
.lw .tag--optional { background-color: transparent; border-color: var(--lw-rule-strong); color: var(--lw-text-soft); }

.lw .form__input {
  min-height: 3.25rem;
  padding: 0.8rem 1rem;
  background-color: #fffefb;
  border: 1px solid var(--lw-field-border);
  border-radius: 2px;
  color: var(--lw-heading);
  font-size: 1rem;
  line-height: 1.7;
}
.lw .form__input:hover { border-color: var(--lw-moss); }
.lw .form__input:focus {
  background-color: #fff;
  border-color: var(--lw-moss);
  outline: 2px solid var(--lw-moss);
  outline-offset: 1px;
}
.lw .form__textarea { min-height: 11rem; }

.lw .form__input[aria-invalid="true"] { border-color: #8e3d33; }
.lw .form__error {
  margin-top: 0.55rem;
  color: #8a372d;
  font-size: 0.875rem;
  line-height: 1.7;
  letter-spacing: 0.04em;
}

.lw .form__choices { gap: 0.75rem; }
.lw .form__choice {
  position: relative;
  gap: 0.6rem;
  min-height: 2.875rem;
  padding: 0 1.1rem 0 0.9rem;
  background-color: #fffefb;
  border: 1px solid var(--lw-field-border);
  border-radius: 2px;
}
.lw .form__choice-label {
  gap: 0.75em;
  font-size: 1rem;
  letter-spacing: 0.06em;
}
.lw .form__choice-label::before { content: ""; position: absolute; inset: 0; }
.lw .form__radio,
.lw .form__checkbox { width: 1.25rem; height: 1.25rem; }
.lw .form__choice:has(.form__radio:checked) { border-color: var(--lw-moss); background-color: var(--rose-soft); }   /* 選択状態：ごく淡いくすみピンク */
.lw .form__choice:has(:focus-visible) { outline: 2px solid var(--lw-moss); outline-offset: 2px; }

.lw .form__field--consent { margin-top: 2rem; padding-top: 1.5rem; border-top-color: var(--lw-rule); }
.lw .form__field--consent .form__choice {
  min-height: 2.75rem;
  padding: 0;
  background: none;
  border: 0;
}
.lw .form__field--consent .form__choice-label { font-size: 0.9375rem; }
.lw .form__field--consent .form__choice-label::before { display: none; }
.lw .form__field--consent .form__choice:has(:focus-visible) { outline-offset: 4px; }
.lw .form__field--consent .form__choice-label { min-height: 2.75rem; }

.lw .form__action { margin-top: 2.25rem; }
.lw .btn {
  border-radius: 2px;
  font-size: 0.9375rem;
  letter-spacing: 0.12em;
}
.lw .btn--wide { width: min(26rem, 100%); min-height: 3.5rem; }
.lw .btn--primary:focus-visible,
.lw .btn--outline:focus-visible { outline: 2px solid var(--lw-moss-deep); outline-offset: 3px; }
@media (max-width: 767px) {
  .lw .btn--wide { width: 100%; }
  .lw .price__action .btn { width: 100%; }
}


/* ==========================================================================
   14. 番号のウェイト／日本語の字間
   ========================================================================== */

/* 番号：色・サイズ・配置は変更せず、ウェイトだけ細くする（細字がない環境では400で表示） */
.lw .worry-block__no,
.lw .strength__no { font-weight: 300; }

/* 仮名の詰まりの主因だったプロポーショナル字形（palt）を下層のみ外し、字間を整える。
   英字（.en）は各自の字間設定をそのまま使う。 */
.lw {
  font-feature-settings: normal;
  letter-spacing: 0.025em;            /* 日本語本文 */
}
/* 「、」だけは専用spanでプロポーショナル字形にし、前後に余計な空きを作らない */
.lw .jp-c {
  letter-spacing: 0;
  font-feature-settings: "palt" 1;
}

/* 日本語の見出し・小見出し */
.lw .section__title,
.lw .worry-block__title,
.lw .strength__title,
.lw .tool__title,
.lw .step__title,
.lw .method__title,
.lw .price-item__name,
.lw .notice__title,
.lw .inset__title,
.lw .contact__form-title,
.lw .faq__q { letter-spacing: 0.03em; }
.lw .section__title--en { letter-spacing: 0.14em; }   /* 英字見出し（PROFILE / CONTACT）は従来どおり */
.lw .profile__body .section__title--en { letter-spacing: 0.22em; }

/* 明朝のリード文・引用（見出しより穏やかに） */
.lw .section__sub,
.lw .section__head-lead p:first-child,
.lw .strength__body p:first-of-type,
.lw .tool__body p:first-child,
.lw .inset p:first-of-type,
.lw .contact__intro,
.lw .profile__text .profile__stance { letter-spacing: 0.025em; }

/* リード文は行末に短い言葉が残らないよう、行の長さをそろえて折り返す */
.lw .section__head-lead p:first-child,
.lw .strength__body p:first-of-type,
.lw .tool__body p:first-child,
.lw .inset p:first-of-type,
.lw .profile__text .profile__stance,
.lw .contact__intro p { text-wrap: balance; }
.lw .worries__closing { letter-spacing: 0.04em; }
/* ボタン・フォームラベル・タグは、もともと十分な字間のため従来値を維持（palt解除のみ反映） */


/* ==========================================================================
   15. スクロール演出（一度だけ・静か・JS有効時のみ）
   --------------------------------------------------------------------------
   ・準備クラス .lw-anim は main.js が付与したときだけ有効。付与されなければ全内容が表示される。
   ・.rv = 表示前の状態、.is-in = 表示済み。移動は最大16px、ズーム・回転・バウンドなし。
   ========================================================================== */
.lw {
  --lw-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --lw-ease-line: cubic-bezier(0.45, 0, 0.2, 1);
}

.lw-anim .rv {
  opacity: 0;
  transform: translateY(var(--rv-y, 16px));
  transition:
    opacity var(--rv-dur, 0.8s) var(--lw-ease) var(--rv-d, 0ms),
    transform var(--rv-dur, 0.8s) var(--lw-ease) var(--rv-d, 0ms);
}
.lw-anim .rv--fade { transform: none; }
.lw-anim .rv.is-in { opacity: 1; transform: none; }
/* 「鑑定で大切にしていること」のアイコン：表示後も本来の透明度（0.9）を保つ */
.lw-anim .brand-message-mark.rv.is-in { opacity: 0.9; }

/* 英字ラベル下の短い罫線：左から伸ばす */
.lw-anim .section__eyebrow::after,
.lw-anim .profile__body .section__title--en::after,
.lw-anim #contact .section__title::after {
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.9s var(--lw-ease-line) 0.18s;
}
.lw-anim .section__eyebrow.is-in::after,
.lw-anim .profile__body .section__title--en.is-in::after,
.lw-anim #contact .section__title.is-in::after { transform: none; }

/* 区切り線：罫線（border）を同じ位置の疑似要素に置き換え、左から伸ばす */
.lw .worry-block, .lw .strengths, .lw .strength, .lw .tool-list, .lw .tool,
.lw .price-item, .lw .notice, .lw .threads__aside { --ln-c: var(--lw-rule-strong); }
.lw .strength, .lw .tool { --ln-c: var(--lw-rule); }
.lw .price-item:first-child { --ln-w: 2px; --ln-c: var(--lw-heading); }
.lw .notice, .lw .threads__aside { --ln-c: var(--lw-moss); }

.lw-anim .ln-t, .lw-anim .ln-b { position: relative; }
.lw-anim .ln-t { border-top-color: transparent !important; }
.lw-anim .ln-b { border-bottom-color: transparent !important; }
.lw-anim .ln-t::before,
.lw-anim .ln-b::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: var(--ln-w, 1px);
  background: var(--ln-c, #b7b09b);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.1s var(--lw-ease-line) var(--rv-d, 0ms);
}
.lw-anim .ln-t::before { top: calc(var(--ln-w, 1px) * -1); }
.lw-anim .ln-b::after  { bottom: calc(var(--ln-w, 1px) * -1); }
.lw-anim .ln-t.is-in::before,
.lw-anim .ln-b.is-in::after { transform: none; }
.lw-anim .price-item.ln-b { --ln-c: var(--lw-rule-strong); }
.lw-anim .price-item.ln-b::after { --ln-w: 1px; }

/* 安心メッセージ手前の短い罫線 */
.lw-anim .worries__closing::before {
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.9s var(--lw-ease-line) calc(var(--rv-d, 0ms) + 150ms);
}
.lw-anim .worries__closing.is-in::before { transform: none; }

/* 鑑定で大切にしていること：左の縦線を上から下へ */
.lw-anim .inset { position: relative; border-left-color: transparent; }
.lw-anim .inset::before {
  content: "";
  position: absolute;
  left: -2px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--lw-moss);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 1.1s var(--lw-ease-line) 0.2s;
}
.lw-anim .inset.is-in::before { transform: none; }

/* 鑑定方法：外枠のあとに内側の水平線・縦線を伸ばす */
.lw-anim .method { position: relative; }
.lw-anim .method + .method { border-top-color: transparent; }
.lw-anim .method + .method::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  height: 1px;
  background: var(--lw-rule-strong);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1s var(--lw-ease-line) var(--rv-d, 0ms);
}
.lw-anim .method + .method.is-in::before { transform: none; }
@media (min-width: 768px) {
  .lw-anim .method + .method:nth-child(3) { border-left-color: transparent; }
  .lw-anim .method:nth-child(3)::after {
    content: "";
    position: absolute;
    left: -1px;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--lw-rule-strong);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 1.1s var(--lw-ease-line) calc(var(--rv-d, 0ms) + 120ms);
  }
  .lw-anim .method:nth-child(3).is-in::after { transform: none; }
}

/* 鑑定の流れ：縦線を上から下へ（各STEPの区間ごと） */
.lw-anim .step::before {
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 1.1s cubic-bezier(0.4, 0, 0.2, 1) calc(var(--rv-d, 0ms) + 120ms);
}
.lw-anim .step.is-in::before { transform: none; }

/* 動きを減らす設定：すべて即時表示（罫線・タイムラインを含む） */
@media (prefers-reduced-motion: reduce) {
  .lw-anim .rv,
  .lw-anim .rv.is-in,
  .lw-anim .ln-t, .lw-anim .ln-b,
  .lw-anim .ln-t::before, .lw-anim .ln-b::after,
  .lw-anim .section__eyebrow::after,
  .lw-anim .profile__body .section__title--en::after,
  .lw-anim #contact .section__title::after,
  .lw-anim .worries__closing::before,
  .lw-anim .inset::before,
  .lw-anim .method::before, .lw-anim .method::after,
  .lw-anim .step::before {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* ==========================================================================
   16. 日本語（漢字・ひらがな）だけの字間／小見出しのウェイト
   --------------------------------------------------------------------------
   ・漢字・ひらがなの連続部分だけを <span class="k"> で囲み、そこにだけ字間を足します。
     カタカナ・英字・数字・「、」「。」「・」などは囲まないため、従来の字間のままです。
   ・.k の末尾には、その文字の字間を打ち消すマージンを付け、「・」「、」の直前に余計な空きを作りません。
   ・--k = 追加後の字間、--km = 元の字間との差（末尾の打ち消し量）。役割ごとに値を切り替えます。
   ========================================================================== */
.lw {
  --k: 0.0425em;     /* 日本語本文 */
  --km: -0.0175em;
}
.lw .k {
  letter-spacing: var(--k);
  margin-inline-end: var(--km);
}

/* 日本語のメインタイトル（大きいほど広め） */
.lw .section__title { --k: 0.075em; --km: -0.045em; }

/* 日本語のサブタイトル／項目見出し */
.lw .worry-block__title,
.lw .strength__title,
.lw .tool__title,
.lw .step__title,
.lw .method__title,
.lw .price-item__name,
.lw .notice__title,
.lw .inset__title,
.lw .contact__form-title { --k: 0.06em; --km: -0.03em; }
.lw .faq__q { --k: 0.05em; --km: -0.02em; }
/* 明朝のリード文（文字が大きいぶん、本文よりわずかに控えめ） */
.lw .section__head-lead p:first-child,
.lw .strength__body p:first-of-type,
.lw .tool__body p:first-child,
.lw .inset p:first-of-type,
.lw .contact__intro p,
.lw .profile__text .profile__stance { --k: 0.04em; --km: -0.015em; }

/* もともとの字間を保つ（増やさない）要素 */
.lw .profile__name { --k: 0.16em; --km: 0em; }
.lw .profile__intro { --k: 0.14em; --km: 0em; }
.lw .worries__closing { --k: 0.04em; --km: 0em; }
.lw .profile .def-list__desc { --k: 0.06em; --km: 0em; }
.lw .def-list--compact .def-list__desc { --k: 0.04em; --km: 0em; }
.lw .price-item__prefix,
.lw .price-item__tax { --k: 0.06em; --km: 0em; }
.lw .price-item__unit { --k: 0.04em; --km: 0em; }

/* 小見出し・項目見出しのウェイト：現在の600（太字）→400。本文（400・ゴシック）とはサイズ・書体で階層を保つ */
.lw .worry-block__title,
.lw .strength__title,
.lw .tool__title,
.lw .step__title,
.lw .method__title,
.lw .price-item__name,
.lw .notice__title,
.lw .inset__title,
.lw .contact__form-title { font-weight: 400; }

/* 番号（お悩み01/02・鑑定について01〜03）：細字を指定（細字を持たない書体では最も細い400で表示） */
.lw .worry-block__no.en,
.lw .strength__no.en { font-weight: 300; }


/* ==========================================================================
   17. 実際のLightフォント（自前配信・OFLライセンス）
   --------------------------------------------------------------------------
   ・番号（お悩み01/02・鑑定について01〜03）：Cormorant Garamond（可変 300〜400）の数字サブセット。
   ・下層の日本語サブタイトル／項目見出し：Noto Serif JP（可変 300〜400）。サイト内の使用文字のみのサブセット。
   ・ヘッダー・ヒーローで使う .en / --f-serif-en には影響しないよう、専用のファミリー名で宣言しています。
   ========================================================================== */
@font-face {
  font-family: "Cormorant Garamond LW";
  font-style: normal;
  font-weight: 300 400;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-digits.woff2") format("woff2");
  unicode-range: U+30-39;
}
@font-face {
  font-family: "Noto Serif JP LW";
  font-style: normal;
  font-weight: 300 400;
  font-display: swap;
  src: url("../fonts/noto-serif-jp-subset.woff2") format("woff2");
}

.lw .worry-block__no.en,
.lw .strength__no.en {
  font-family: "Cormorant Garamond LW", "Cormorant Garamond", "EB Garamond", Garamond, "Times New Roman", serif;
  font-weight: 300;
}

/* 日本語サブタイトル／項目見出し（メインタイトル・本文・金額・STEPは対象外） */
.lw .worry-block__title,
.lw .strength__title,
.lw .tool__title,
.lw .step__title,
.lw .method__title,
.lw .price-item__name,
.lw .contact__form-title,
.lw .inset__title,
.lw .notice__title {
  font-family: "Noto Serif JP LW", var(--f-mincho);
  font-weight: 300;
}

/* Noto Serif JP のサブセットには半角詰め（palt）が無いため、「、」の右側の空きを同等量だけ詰めて、従来の見た目に合わせる */
.lw .worry-block__title .jp-c,
.lw .strength__title .jp-c,
.lw .tool__title .jp-c,
.lw .step__title .jp-c,
.lw .method__title .jp-c,
.lw .price-item__name .jp-c,
.lw .contact__form-title .jp-c,
.lw .inset__title .jp-c,
.lw .notice__title .jp-c { margin-inline-end: -0.5em; }

/* スマホ：小さい表示でも線が消えないよう、同じフォントファミリーの可変軸で少しだけ太くして見た目の細さをPCにそろえる */
@media (max-width: 767px) {
  .lw .worry-block__no.en,
  .lw .strength__no.en { font-weight: 350; }
  .lw .worry-block__title,
  .lw .strength__title,
  .lw .tool__title,
  .lw .step__title,
  .lw .method__title,
  .lw .price-item__name,
  .lw .contact__form-title,
  .lw .inset__title,
  .lw .notice__title { font-weight: 340; }
}


/* ==========================================================================
   18. お問い合わせフォーム：Formspree連携（確認画面・送信状態）
   --------------------------------------------------------------------------
   既存のフォームデザインは変更せず、確認画面と送信状態の表示だけを追加しています。
   ========================================================================== */

/* 迷惑送信対策（ハニーポット）：見た目・レイアウト・読み上げに影響しない1pxの領域 */
.form-honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  opacity: 0;
  pointer-events: none;
  white-space: nowrap;
}

.lw .form[hidden],
.lw .contact__form-title[hidden] { display: none; }

/* 入力内容の確認・送信中・送信完了・失敗の表示は contact-form.css（.cf-*）にまとめています */
.lw .form-noscript { margin-top: 1.25rem; color: var(--lw-text-soft); font-size: 0.875rem; line-height: 1.8; }


/* ==========================================================================
   17. 写真（5枚を一つのビジュアルシステムとして扱う）
   --------------------------------------------------------------------------
   ・構造：figure（レイアウト領域のみ。背景・枠・影なし）＞ picture（写真・境界線・角丸・マスクの対象）＞ img。
     影は figure の ::before（同じ大きさの透明な矩形＋完成済みの影）に持たせ、写真の外側に描く。
   ・枠：細い罫線（サイトのモスグリーンの薄い色）＋ 2px の角丸。カード風の外枠・大きな角丸は使わない。
   ・影：黒ではなく、サイトの深緑・グレージュを含む柔らかい環境光の影。
   ========================================================================== */
.lw {
  --lw-photo-gap: clamp(3rem, 5vw, 5rem);
  --lw-photo-radius: 2px;
  --lw-photo-line: rgba(69, 87, 63, 0.14);   /* --c-moss (#45573f) の薄い罫線 */
  --lw-photo-rgb: 42, 54, 44;                /* 深緑寄りのダークグリーングレー */
  --lw-photo-shadow:
    0 20px 52px rgba(var(--lw-photo-rgb), 0.13),
    0 4px 12px rgba(var(--lw-photo-rgb), 0.08);
  --lw-photo-shadow-closing:
    0 18px 48px rgba(var(--lw-photo-rgb), 0.115),
    0 3px 10px rgba(var(--lw-photo-rgb), 0.07);

  /* くすみピンク（温かさと余韻を加える副色。使う場所は「鑑定で大切にしていること」の面と線画、
     「鑑定の流れ」の番号、FAQ の開いている項目の3か所だけ。ボタン・本文・主要見出し・フォームには使わない） */
  --rose-ink:  #986368;   /* 文字・小見出し用（小さな箇所のみ） */
  --rose-line: #d9bcbb;   /* 細い罫線・装飾線用（文字色には使わない） */
  --rose-soft: #f6ecea;   /* ごく淡い面・背景用（文字色には使わない） */
}
@media (max-width: 767px) {
  .lw {
    --lw-photo-gap: 2.5rem;
    --lw-photo-shadow:
      0 14px 34px rgba(var(--lw-photo-rgb), 0.12),
      0 3px 9px rgba(var(--lw-photo-rgb), 0.07);
    --lw-photo-shadow-closing:
      0 12px 30px rgba(var(--lw-photo-rgb), 0.105),
      0 2px 7px rgba(var(--lw-photo-rgb), 0.06);
  }
}

.lw-photo {
  grid-column: 1 / -1;
  margin: 0 0 var(--lw-photo-gap);
  aspect-ratio: 3 / 2;
}
.lw-photo,
.lw .figure--profile { position: relative; isolation: isolate; }
/* 影：写真と同じ大きさの矩形（背景なし）。写真の外側にだけ描かれる。マスクの対象外 */
.lw-photo::before,
.lw .figure--profile::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: var(--lw-photo-radius);
  box-shadow: var(--lw-photo-shadow);
  pointer-events: none;
}
.lw-photo--closing::before { box-shadow: var(--lw-photo-shadow-closing); }
/* 写真・境界線・角丸は picture にまとめる（マスクを掛けると三つが同じ範囲で現れる） */
.lw-photo picture,
.lw .figure--profile picture {
  display: block;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  overflow: hidden;
  background-color: var(--lw-tint);
  border: 1px solid var(--lw-photo-line);
  border-radius: var(--lw-photo-radius);
}
.lw-photo__img { display: block; width: 100%; max-width: 100%; height: 100%; object-fit: cover; }

/* 12カラムのグリッド上で、写真ごとに位置と幅を変える（すべて同じ幅・同じ位置には並べない） */
@media (min-width: 900px) {
  .lw-photo--about  { grid-column: 5 / 13; }   /* 右寄せ・8カラム：導入文の開始位置（第5カラム）に左端をそろえる */
  .lw-photo--tools  { grid-column: 1 / 9; }    /* 左寄せ・8カラム */
  .lw-photo--method { grid-column: 2 / 11; }   /* 9カラム */
  .lw-photo--closing { grid-column: 2 / 12; }  /* Threads〜お問い合わせをつなぐ独立した写真（10カラム＝通常より少し広い） */
}
/* 直後の要素（番号ブロック・道具リスト・鑑定方法）は、これまでの罫線・余白のまま続く */
.lw-photo + .strengths,
.lw-photo + .tool-list,
.lw-photo + .methods { margin-top: 0; }

/* Threads〜お問い合わせ：Threads の下余白と写真前後の余白を同じ値にそろえる */
.lw.lw-photo-break {
  --lw-threads-py: clamp(3.75rem, 2.6rem + 4vw, 6rem);
  padding-block: 0 var(--lw-photo-gap);
  margin-top: calc(var(--lw-photo-gap) - var(--lw-threads-py));
}
.lw-photo--closing { margin-bottom: 0; }


/* ==========================================================================
   18. 写真のスクロール演出（一度だけ・JS有効時のみ）
   --------------------------------------------------------------------------
   ・準備クラス .lw-anim（main.js が付与）があるときだけ有効。JS無効・失敗・動きを減らす設定では、
     写真・境界線・影がそのまま表示される（マスクなし・opacity 1・transform なし）。
   ・写真が出る前は、picture（写真＋境界線）を clip-path で完全に隠し、影（::before）は opacity 0。
     figure には背景・枠を付けていないため、空の枠・影・輪郭は一切見えない（領域だけは確保）。
   ・出現：picture の横マスク（clip-path）／img の弱いスケール／影は 0.2 秒遅れて opacity だけを変える。
   ・.is-in（表示開始）→ .is-done（完了。clip-path・transform・will-change を解除）。
   ========================================================================== */
.photo-reveal {
  --pr-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --pr-dur: 1.3s;          /* マスクの継続時間 */
  --pr-img-dur: 1.55s;     /* 写真内側のスケール時間 */
  --pr-scale: 1.025;
  --pr-shadow-delay: 0.2s; /* 影は写真が現れ始めてから */
  --pr-total: 1.8s;        /* 完了処理までの時間（JSが読む） */
}
@media (max-width: 767px) {
  .photo-reveal { --pr-dur: 1.22s; --pr-img-dur: 1.45s; --pr-total: 1.65s; }   /* 負荷を抑えるため 0.08 秒短縮 */
}
.photo-reveal--about   { --pr-dur: 1.3s;  --pr-img-dur: 1.55s; --pr-scale: 1.025; --pr-total: 1.8s; }
.photo-reveal--tools   { --pr-dur: 1.3s;  --pr-img-dur: 1.55s; --pr-scale: 1.025; --pr-total: 1.8s; }
.photo-reveal--method  { --pr-dur: 1.35s; --pr-img-dur: 1.6s;  --pr-scale: 1.022; --pr-total: 1.85s; }
.photo-reveal--closing { --pr-dur: 1.45s; --pr-img-dur: 1.75s; --pr-scale: 1.02;  --pr-total: 2s; }
.photo-reveal--profile { --pr-ease: cubic-bezier(0.45, 0, 0.2, 1); --pr-dur: 1.45s; --pr-img-dur: 1.6s; --pr-scale: 1.018; --pr-total: 2s; }   /* 左→右のマスク（人物は左側で右を見ている構図に合わせる） */
@media (max-width: 767px) {
  .photo-reveal--about   { --pr-dur: 1.22s; --pr-img-dur: 1.47s; --pr-total: 1.7s; }
  .photo-reveal--tools   { --pr-dur: 1.22s; --pr-img-dur: 1.47s; --pr-total: 1.7s; }
  .photo-reveal--method  { --pr-dur: 1.27s; --pr-img-dur: 1.52s; --pr-total: 1.75s; }
  .photo-reveal--closing { --pr-dur: 1.37s; --pr-img-dur: 1.67s; --pr-total: 1.9s; }
  .photo-reveal--profile { --pr-dur: 1.35s; --pr-img-dur: 1.5s; --pr-total: 1.9s; }
}

@media (prefers-reduced-motion: no-preference) {
  /* ---- 表示前（写真・境界線・影はすべて見えない） ---- */
  .lw-anim .photo-reveal--ltr:not(.is-in) picture { -webkit-clip-path: inset(0 100% 0 0); clip-path: inset(0 100% 0 0); opacity: 0.92; will-change: clip-path, opacity; }
  .lw-anim .photo-reveal--rtl:not(.is-in) picture { -webkit-clip-path: inset(0 0 0 100%); clip-path: inset(0 0 0 100%); opacity: 0.92; will-change: clip-path, opacity; }
  .lw-anim .photo-reveal--ltr:not(.is-in) .lw-photo__img,
  .lw-anim .photo-reveal--rtl:not(.is-in) .lw-photo__img { transform: scale(var(--pr-scale)); will-change: transform; }
  .lw-anim .photo-reveal:not(.is-in)::before { opacity: 0; }
  /* 影も写真と同じ向きのマスクで開く（マスクの外側＝まだ出ていない部分に影だけが出ないように）。影そのものが切れないよう、開いた後は外側へ十分に広げる */
  .lw-anim .photo-reveal--ltr:not(.is-in)::before { -webkit-clip-path: inset(-120px 100% -120px 0); clip-path: inset(-120px 100% -120px 0); }
  .lw-anim .photo-reveal--rtl:not(.is-in)::before { -webkit-clip-path: inset(-120px 0 -120px 100%); clip-path: inset(-120px 0 -120px 100%); }

  /* ---- 出現（transition は「表示開始後（.is-in）」の状態にだけ付ける。
       準備クラス .lw-anim が付いた瞬間に「表示→非表示」の遷移が見えてしまうのを防ぐため） ---- */
  .lw-anim .photo-reveal--ltr.is-in picture,
  .lw-anim .photo-reveal--rtl.is-in picture {
    -webkit-clip-path: inset(0);
    clip-path: inset(0);
    transition:
      -webkit-clip-path var(--pr-dur) var(--pr-ease),
      clip-path var(--pr-dur) var(--pr-ease),
      opacity var(--pr-dur) var(--pr-ease);
  }
  .lw-anim .photo-reveal--ltr.is-in .lw-photo__img,
  .lw-anim .photo-reveal--rtl.is-in .lw-photo__img { transition: transform var(--pr-img-dur) var(--pr-ease); }
  .lw-anim .photo-reveal.is-in::before {
    opacity: 1;
    transition: opacity calc(var(--pr-dur) - var(--pr-shadow-delay) - 0.1s) var(--pr-ease) var(--pr-shadow-delay);
  }
  /* 影：写真のマスクと同じ向き・同じイージングで開き（写真より先に出ない）、最後に外側の広がりを出す。不透明度は 0.2 秒遅れて 0→1。
     完成済みの影の形（位置・ぼかし・広がり）自体は動かさない */
  .lw-anim .photo-reveal--ltr.is-in::before { animation: pr-shadow-ltr calc(var(--pr-dur) * 1.25) linear both; }
  .lw-anim .photo-reveal--rtl.is-in::before { animation: pr-shadow-rtl calc(var(--pr-dur) * 1.25) linear both; }
  @keyframes pr-shadow-ltr {
    0%   { -webkit-clip-path: inset(-120px 100% -120px 0); clip-path: inset(-120px 100% -120px 0); animation-timing-function: var(--pr-ease); }
    80%  { -webkit-clip-path: inset(-120px 0 -120px 0);    clip-path: inset(-120px 0 -120px 0);    animation-timing-function: ease-out; }
    100% { -webkit-clip-path: inset(-120px);               clip-path: inset(-120px); }
  }
  @keyframes pr-shadow-rtl {
    0%   { -webkit-clip-path: inset(-120px 0 -120px 100%); clip-path: inset(-120px 0 -120px 100%); animation-timing-function: var(--pr-ease); }
    80%  { -webkit-clip-path: inset(-120px 0 -120px 0);    clip-path: inset(-120px 0 -120px 0);    animation-timing-function: ease-out; }
    100% { -webkit-clip-path: inset(-120px);               clip-path: inset(-120px); }
  }

  /* ---- 完了：マスク・transform・will-change を解除（PROFILE以外） ---- */
  .lw-anim .photo-reveal:not(.photo-reveal--profile).is-done picture {
    -webkit-clip-path: none; clip-path: none; opacity: 1; transition: none; will-change: auto;
  }
  .lw-anim .photo-reveal:not(.photo-reveal--profile).is-done .lw-photo__img { transform: none; transition: none; will-change: auto; }
  .lw-anim .photo-reveal:not(.photo-reveal--profile).is-done::before { animation: none; -webkit-clip-path: none; clip-path: none; transition: none; }

  /* ---- PROFILE：完了処理で見た目の状態を一切切り替えない ----
     写真のマスク（clip-path: inset(0)）・影のマスク（アニメーション最終フレーム）・img の transform は、
     完了後も最終フレームと同じ値のまま残す。以前は完了時に clip-path:none／animation:none へ切り替えており、
     合成レイヤーが作り直されて終端で一瞬引っ掛かって見えた。
     .is-done では、写真枠と影の will-change を外すだけ（main.js が全アニメーション終了の2フレーム後に付ける。外しても描画は変わらないことを実測済み）。 */
  .lw-anim .photo-reveal--profile.is-in:not(.is-done) picture { will-change: clip-path, opacity; }
  .lw-anim .photo-reveal--profile.is-in .lw-photo__img { will-change: transform; }   /* img だけは維持：外すとレイヤー→通常描画の切替で画像の再サンプリングが起き、モバイルで最大135階調の差が出るため（実測） */
  .lw-anim .photo-reveal--profile.is-in:not(.is-done)::before { will-change: clip-path, opacity; }
}

/* 動きを減らす設定：即時に完成状態（マスク・遅延・フェードなし） */
@media (prefers-reduced-motion: reduce) {
  .photo-reveal picture,
  .photo-reveal .lw-photo__img,
  .photo-reveal,
  .photo-reveal::before {
    -webkit-clip-path: none !important; clip-path: none !important;
    opacity: 1 !important; transform: none !important;
    transition: none !important; animation: none !important; will-change: auto !important;
  }
}


/* ==========================================================================
   20. PC版（1025px以上）限定：日本語カーニングの追加調整
   --------------------------------------------------------------------------
   ・上の「16. 日本語（漢字・ひらがな）だけの字間」は一切変更していません。
     ここに書いた指定は @media (min-width: 1025px) の中だけで有効になり、
     1024px以下（タブレット・スマートフォン）は従来どおりの値のまま変わりません。
   ・対象は「ABOUT MY READING」「PROFILE」「READING TOOLS」「HOW TO MEET」
     「FLOW」「PRICE」内の、指定されたセクション・文章・語句だけです。
     サイト全体へ一律の letter-spacing は指定していません。
   ・明朝体（リード文・小見出し）とゴシック体（本文）は別の数値にしています。
   ・特定の熟語だけをさらに広げたい場合は、意味のまとまりを保ったまま
     <span class="k-wide">（明朝用）/ <span class="k-wide-g">（ゴシック用）を
     既存の <span class="k"> の中に入れ子にして使います。
     letter-spacing は継承されるプロパティなので、入れ子にした語句の前後だけを
     ピンポイントで上書きできます（実際の空白文字・全角スペースは使いません）。
   ========================================================================== */
@media (min-width: 1025px) {

  /* 特定の熟語だけをさらに広げる（意味のまとまりを保つ専用span） */
  .lw .k-wide   { letter-spacing: 0.115em; margin-inline-end: -0.069em; }   /* 明朝体の語句用 */
  .lw .k-wide-g { letter-spacing: 0.105em; margin-inline-end: -0.053em; }   /* ゴシック体の語句用 */

  /* ---- ABOUT MY READING --------------------------------------------------
     「私の鑑定について」の「鑑定」、リード文の「経験」「丁寧」は
     index.html 側で <span class="k-wide"> を追加して個別に対応します。 */
  /* 本文（「未来を一方的に…鑑定を大切にしています。」）：ゴシック体、全体を広げる */
  .lw#about .section__head-lead p:nth-child(2) { --k: 0.062em; --km: -0.025em; }

  /* 01〜03の項目：明朝体（リード文）とゴシック体（本文）を別々に広げる */
  .lw#about .strength__title { --k: 0.085em; --km: -0.0425em; }
  .lw#about .strength__body p:first-of-type { --k: 0.058em; --km: -0.023em; }
  .lw#about .strength__body p:not(:first-of-type) { --k: 0.058em; --km: -0.023em; }
  /* 01番目の2つ目の段落だけは、1025px幅で3行に増えてしまうため、
     改行位置を変えない範囲の数値に弱めています（他の段落より控えめ） */
  .lw#about .strengths .strength:nth-child(1) .strength__body p:nth-of-type(2) { --k: 0.045em; --km: -0.018em; }

  /* 「鑑定で大切にしていること」：見出しは広げる。本文は「鑑定」「大切」「希望」「結果」を
     個別に <span class="k-wide">/<span class="k-wide-g"> で対応するため、段落全体は変更しない */
  .lw#about .inset__title { --k: 0.085em; --km: -0.0425em; }

  /* ---- PROFILE ------------------------------------------------------------
     「12歳の頃…向き合ってきました。」（ゴシック体・本文）
     「鑑定では結果を…大切にしています。」（明朝体・profile__stance） */
  .lw#profile .profile__text p:not(.profile__intro):not(.profile__stance) { --k: 0.062em; --km: -0.025em; }
  .lw#profile .profile__text .profile__stance { --k: 0.058em; --km: -0.023em; }

  /* ---- READING TOOLS --------------------------------------------------------
     タイトル・リード文・01〜03の本文を全体的に広げる（明朝体／ゴシック体を別々に） */
  .lw#service .section__title { --k: 0.105em; --km: -0.063em; }
  .lw#service .section__head-lead p:first-child { --k: 0.058em; --km: -0.023em; }
  .lw#service .section__head-lead p:nth-child(2) { --k: 0.062em; --km: -0.025em; }
  .lw#service .tool__body p:first-child { --k: 0.058em; --km: -0.023em; }
  .lw#service .tool__body p:not(:first-child) { --k: 0.062em; --km: -0.025em; }

  /* ---- HOW TO MEET ----------------------------------------------------------
     タイトル（.method__title）は対象外。本文（ゴシック体）だけを広げる */
  .lw#method .method__body p { --k: 0.062em; --km: -0.025em; }

  /* ---- FLOW -------------------------------------------------------------
     見出し（.step__title）は実際には明朝体（Noto Serif JP LW）のため明朝側の値、
     説明文（.step__body p）はゴシック体のため別の値で広げる */
  .lw#flow .step__title { --k: 0.085em; --km: -0.0425em; }
  .lw#flow .step__body p { --k: 0.062em; --km: -0.025em; }

  /* ---- PRICE --------------------------------------------------------------
     見出し（.price-item__name）は明朝体、説明文（.price-item__desc p）はゴシック体。
     金額・単位・（税込）まわり（.price-item__prefix / __unit / __tax）は
     既存の調整のまま変更せず、数字・単位を過剰に広げない */
  .lw#price .price-item__name { --k: 0.085em; --km: -0.0425em; }
  .lw#price .price-item__desc p { --k: 0.062em; --km: -0.025em; }
}


/* ==========================================================================
   21. PC版（1025px以上）限定：改行・配置の追加調整
   ========================================================================== */
.pc-only-break { display: none; }
.sp-only-break { display: none; }   /* スマホ（767px以下）だけで有効になる改行 */
@media (max-width: 767px) { .sp-only-break { display: inline; } }
@media (min-width: 1025px) {
  .pc-only-break { display: inline; }
}

@media (min-width: 1025px) {
  /* 鑑定で大切にしていること：3文目を2行に */
  .lw#about .inset p:nth-of-type(3) { --k: 0.035em; --km: -0.014em; max-width: 48em; font-size: 0.9375rem; }
}

@media (min-width: 1025px) {
  /* PROFILE：「Anastacia」の視覚的な字面のはじまりを、PROFILE／東京生まれの左端に光学的にそろえる */
  .lw#profile .profile__name { margin-left: -0.02em; }
}

@media (min-width: 1025px) {
  /* PROFILE：「生まれ」だけ字間を詰め、自然な一語に見せる（「東京」側は変更しない） */
  .lw#profile .profile-intro-tight { --k: 0.05em; }
}

@media (min-width: 1025px) {
  /* PROFILE本文3文目：3行に固定するため、専用の字間・幅にする */
  .lw#profile .profile__text p:nth-of-type(3) { --k: 0.045em; --km: -0.018em; }
}

@media (min-width: 1025px) {
  /* READING TOOLS：鑑定内容の説明文字を3行に固定 */
  .lw#service .section__head-lead { margin-left: calc(var(--lw-col) * 4 + var(--lw-gap) * 0.5); max-width: 55em; }
  .lw#service .section__head-lead p:nth-child(2) { --k: 0.05em; --km: -0.02em; }
}

@media (min-width: 1025px) {
  /* PRICE：本文を1〜2行に調整。「同じ役割の本文は同一サイズ」のため、
     price-item__desc は3項目すべてに同じ値を適用する（金額・単位・(税込)は対象外） */
  .lw#price .price-item__desc { max-width: 44em; }
}

@media (min-width: 1025px) {
  /* CONCERNSの導入文：3文それぞれを1行にするため、右方向へ使用幅を広げる（左端は変えない） */
  .lw .worries__lead { grid-column: 5 / 13; }
}

/* 1025〜1279pxだけで使う改行（1280px以上では1行に収まるため非表示） */
.pc-narrow-break { display: none; }
@media (min-width: 1025px) and (max-width: 1279px) {
  .pc-narrow-break { display: inline; }
}

@media (min-width: 1025px) {
  /* HOW TO MEET：オンライン鑑定・電話鑑定カードの左右余白を少し狭め、本文の使用幅を広げる（写真・タイトル位置には影響しない） */
  .lw#method .method:not(.method--lead) { padding-inline: clamp(0.75rem, 0.35rem + 1.6vw, 1.75rem); }
}

@media (min-width: 1025px) {
  /* READING TOOLS 短いリード文：「て、」は現状の字間を維持し、それ以外だけ広げる */
  .lw#service .k-service-wide { --k: 0.08em; --km: -0.032em; }
}

@media (min-width: 1025px) {
  /* READING TOOLS 01〜03：番号・タイトルの位置（グリッド開始列・幅とも）は変更せず、
     本文（説明文）だけを列間の余白ぶん左へ広げる */
  .lw#service .tool__body { grid-column: 5 / 12; max-width: 44em; margin-left: calc(-1 * var(--lw-gap)); }
}

@media (min-width: 1025px) {
  /* ABOUT MY READING 01〜03：番号（グリッド開始列・自身の位置）は変更せず、
     番号の右側にできる余白ぶんだけ本文を左へ寄せて導入文（1文目）を広く使えるようにする */
  .lw#about .strength__body { margin-left: calc(-5.6 * var(--lw-col) - 4.6 * var(--lw-gap)); max-width: 68em; }
  .lw#about .strength__body p:first-of-type { --k: 0.045em; --km: -0.018em; }
}

@media (min-width: 1025px) {
  /* PROFILE：写真の開始位置（列1）はそのまま、写真列をわずかに狭めて本文列を左へ広げる
     （写真自体の見え方・縦横比・シャドウ・マスクアニメーションは変更しない） */
  .lw#profile .profile__visual { grid-column: 1 / 5; }
  .lw#profile .profile__body { grid-column: 6 / 13; }
  .lw#profile .profile__text { max-width: 42em; }
}

@media (min-width: 1025px) {
  /* FLOW：メインタイトルの位置は変更せず、ステップ一覧全体を左へ広げる
     （STEP番号・丸・縦線は .step 内部の相対位置のため崩れない） */
  .lw#flow .steps { grid-column: 2 / 13; }
  .lw#flow .step__body { max-width: 48em; }
}

@media (min-width: 1025px) {
  /* PRICE：メインタイトル位置は変更せず、料金リスト全体を左へ広げる
     （基本鑑定・延長のレイアウト・金額・文字サイズには影響しない） */
  .lw#price .price-list { grid-column: 3 / 13; }
  .lw#price .price-item__desc { max-width: 54em; }
}

@media (min-width: 1025px) {
  /* Threads：「ユーザーネーム」行を、既存のくすみピンク（--rose-ink）に統一 */
  .lw#threads .def-list--compact .def-list__term,
  .lw#threads .def-list--compact .def-list__desc {
    color: var(--rose-ink);
  }
}

/* ==========================================================================
   スマホ版（767px以下）専用：Threads / Contact の微調整
   ========================================================================== */
@media (max-width: 767px) {
  /* Threads見出し：字面の左端を「THREADS」に光学的に揃える（かな・カタカナの左側の余白ぶん左へ） */
  .lw#threads .section__title { margin-left: -0.15em; }

  /* ユーザーネーム：PC版と同じ --rose-ink（文字色のみ） */
  .lw#threads .def-list--compact .def-list__term,
  .lw#threads .def-list--compact .def-list__desc { color: var(--rose-ink); }

  /* Threadsボタン：ピンクベージュ（ロゴは currentColor で文字と同色） */
  .lw .threads__action .btn {
    background-color: #E8D7D4;
    border-color: #B98682;
    color: #5B4642;
  }
  .lw .threads__action .btn:active,
  .lw .threads__action .btn:focus-visible {
    background-color: #DFC8C4;
    border-color: #B98682;
    color: #5B4642;
  }
}

/* ==========================================================================
   スマホ版（767px以下）専用：小タイトル・説明文の日本語カーニング
   --------------------------------------------------------------------------
   ・既存の .k（漢字・かなの連続部分）にだけ効く --k / --km を、既存値から 約0.02〜0.03em 広げる。
     数字・英字・カタカナ・「、」「。」・鉤括弧は .k の外にあるため、字間は従来のまま。
   ・ヒーロー・ヘッダー・フッター・各セクションの大タイトルは対象外（セレクターに含めない）。
   ・小タイトルは明朝（Noto Serif JP LW）、説明文はゴシック、リード文は明朝と、書体ごとに別の値。
   ========================================================================== */
@media (max-width: 767px) {
  /* 小タイトル／カードタイトル（明朝） */
  .lw .worry-block__title,
  .lw .strength__title,
  .lw .tool__title,
  .lw .step__title,
  .lw .method__title,
  .lw .price-item__name,
  .lw .notice__title,
  .lw .inset__title,
  .lw .contact__form-title { --k: 0.085em; --km: -0.055em; }
  .lw .faq__q { --k: 0.072em; --km: -0.042em; }

  /* 説明文・本文（ゴシック） */
  .lw .worries__lead p,
  .lw .leaf-list li,
  .lw .section__head-lead p,
  .lw .strength__body p,
  .lw .tool__body p,
  .lw .method__body p,
  .lw .step__body p,
  .lw .price-item__desc p,
  .lw .notice p,
  .lw .inset p,
  .lw .profile__text p:not(.profile__intro):not(.profile__stance),
  .lw .faq__a p,
  .lw .threads__text p { --k: 0.066em; --km: -0.041em; }

  /* リード文（明朝）：本文より少し控えめ */
  .lw .section__head-lead p:first-child,
  .lw .strength__body p:first-of-type,
  .lw .tool__body p:first-child,
  .lw .inset p:first-of-type,
  .lw .contact__intro p,
  .lw .profile__text .profile__stance { --k: 0.06em; --km: -0.035em; }

  /* 文中の「。」の直後：全角の右側の空きを詰める（改行位置は変えない） */
  .lw .jp-p { margin-inline-end: -0.3em; }

  /* PROFILE「東京生まれ。」：「生まれ」だけ詰め、「れ」と「。」の間は広げない */
  .lw#profile .profile-intro-tight { --k: 0.05em; margin-inline-end: -0.05em; }

  /* FAQ大タイトル：「ご質問」だけ広げる（「よくある」と位置・サイズ・改行はそのまま） */
  .lw#faq .faq-title-q { letter-spacing: 0.125em; margin-inline-end: -0.05em; }
}

/* 上の一括指定で折り返し位置が変わってしまう段落・見出しだけ、既存の改行位置を保てる範囲まで字間の広げ幅を戻す（375/390/430pxで検証） */
@media (max-width: 767px) {
  #worries > div:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0440em; --km: -0.0190em; }
  #worries > div:nth-child(1) > div:nth-child(2) > p:nth-child(3) { --k: 0.0520em; --km: -0.0270em; }
  #about > div:nth-child(1) > header:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0460em; --km: -0.0210em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(1) > div:nth-child(2) > p:nth-child(3) { --k: 0.0440em; --km: -0.0190em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(2) > p:nth-child(3) { --k: 0.0440em; --km: -0.0190em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(2) > p:nth-child(3) { --k: 0.0480em; --km: -0.0230em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(2) > p:nth-child(4) { --k: 0.0440em; --km: -0.0190em; }
  #about > div:nth-child(1) > section:nth-child(4) > p:nth-child(4) { --k: 0.0420em; --km: -0.0170em; }
  #about > div:nth-child(1) > section:nth-child(4) > p:nth-child(5) { --k: 0.0420em; --km: -0.0170em; }
  #profile > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) { --k: 0.0600em; --km: -0.0350em; }
  #profile > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(3) { --k: 0.0460em; --km: -0.0210em; }
  #service > div:nth-child(1) > header:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0440em; --km: -0.0190em; }
  #service > div:nth-child(1) > header:nth-child(1) > div:nth-child(2) > p:nth-child(2) .jp-p { margin-inline-end: 0; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(1) > div:nth-child(3) > p:nth-child(2) { --k: 0.0480em; --km: -0.0230em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(3) > p:nth-child(2) { --k: 0.0500em; --km: -0.0250em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(3) > p:nth-child(1) { --k: 0.0460em; --km: -0.0210em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(3) > p:nth-child(2) { --k: 0.0440em; --km: -0.0190em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(3) > p:nth-child(3) { --k: 0.0500em; --km: -0.0250em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(3) > p:nth-child(4) { --k: 0.0520em; --km: -0.0270em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0440em; --km: -0.0190em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(1) > div:nth-child(2) > p:nth-child(3) { --k: 0.0440em; --km: -0.0190em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(2) > p:nth-child(1) { --k: 0.0440em; --km: -0.0190em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(2) > p:nth-child(2) { --k: 0.0440em; --km: -0.0190em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(2) > p:nth-child(2) { --k: 0.0440em; --km: -0.0190em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(2) > p:nth-child(3) { --k: 0.0520em; --km: -0.0270em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(2) > div:nth-child(2) > p:nth-child(2) { --k: 0.0520em; --km: -0.0270em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(2) > div:nth-child(2) > p:nth-child(3) { --k: 0.0560em; --km: -0.0310em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(3) > div:nth-child(2) > p:nth-child(2) { --k: 0.0560em; --km: -0.0310em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(4) > div:nth-child(2) > p:nth-child(4) { --k: 0.0600em; --km: -0.0350em; }
  #reschedule > div:nth-child(2) > p:nth-child(2) { --k: 0.0440em; --km: -0.0190em; }
  #reschedule > div:nth-child(2) > p:nth-child(3) { --k: 0.0440em; --km: -0.0190em; }
  #reschedule > div:nth-child(2) > p:nth-child(4) { --k: 0.0520em; --km: -0.0270em; }
  #decline > div:nth-child(2) > p:nth-child(1) { --k: 0.0460em; --km: -0.0210em; }
  #decline > div:nth-child(2) > p:nth-child(3) { --k: 0.0480em; --km: -0.0230em; }
  #price > div:nth-child(1) > div:nth-child(2) > article:nth-child(2) > div:nth-child(3) > p:nth-child(1) { --k: 0.0480em; --km: -0.0230em; }
  #price > div:nth-child(1) > div:nth-child(2) > article:nth-child(3) > div:nth-child(3) > p:nth-child(1) { --k: 0.0520em; --km: -0.0270em; }
  #price > div:nth-child(1) > div:nth-child(2) > article:nth-child(4) > div:nth-child(3) > p:nth-child(1) { --k: 0.0640em; --km: -0.0390em; }
  #price > div:nth-child(1) > div:nth-child(2) > article:nth-child(4) > div:nth-child(3) > p:nth-child(2) { --k: 0.0440em; --km: -0.0190em; }
  #price > div:nth-child(1) > div:nth-child(2) > article:nth-child(4) > div:nth-child(3) > p:nth-child(3) { --k: 0.0460em; --km: -0.0210em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(1) > summary:nth-child(1) { --k: 0.0520em; --km: -0.0220em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(1) > div:nth-child(2) > p:nth-child(1) { --k: 0.0460em; --km: -0.0210em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0640em; --km: -0.0390em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(2) > summary:nth-child(1) { --k: 0.0600em; --km: -0.0300em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(3) > summary:nth-child(1) { --k: 0.0540em; --km: -0.0240em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(3) > div:nth-child(2) > p:nth-child(1) { --k: 0.0540em; --km: -0.0290em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(4) > summary:nth-child(1) { --k: 0.0600em; --km: -0.0300em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(4) > div:nth-child(2) > p:nth-child(2) { --k: 0.0560em; --km: -0.0310em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(5) > summary:nth-child(1) { --k: 0.0620em; --km: -0.0320em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(5) > div:nth-child(2) > p:nth-child(2) { --k: 0.0580em; --km: -0.0330em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(6) > div:nth-child(2) > p:nth-child(1) { --k: 0.0600em; --km: -0.0350em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(7) > div:nth-child(2) > p:nth-child(1) { --k: 0.0560em; --km: -0.0310em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(7) > div:nth-child(2) > p:nth-child(2) { --k: 0.0540em; --km: -0.0290em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(8) > summary:nth-child(1) { --k: 0.0560em; --km: -0.0260em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(8) > div:nth-child(2) > p:nth-child(1) { --k: 0.0580em; --km: -0.0330em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(8) > div:nth-child(2) > p:nth-child(2) { --k: 0.0540em; --km: -0.0290em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(8) > div:nth-child(2) > p:nth-child(2) .jp-p { margin-inline-end: 0; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(8) > div:nth-child(2) > p:nth-child(3) { --k: 0.0520em; --km: -0.0270em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(8) > div:nth-child(2) > p:nth-child(4) { --k: 0.0620em; --km: -0.0370em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(9) > summary:nth-child(1) { --k: 0.0600em; --km: -0.0300em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(10) > summary:nth-child(1) { --k: 0.0560em; --km: -0.0260em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(10) > div:nth-child(2) > p:nth-child(1) { --k: 0.0440em; --km: -0.0190em; }
  #threads > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > p:nth-child(1) { --k: 0.0480em; --km: -0.0230em; }
  #threads > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > p:nth-child(3) { --k: 0.0460em; --km: -0.0210em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(4) > div:nth-child(2) > p:nth-child(3) { --k: 0.0425em; --km: -0.0175em; }
}

/* ==========================================================================
   PC版（1025px以上）専用：FAQ大タイトルのカーニング / PRICE見出しの配置
   ========================================================================== */
@media (min-width: 1025px) {
  /* FAQ「よくあるご質問」：「よくある」は詰め、「ご質問」は広げる（「る」と「ご」の間は既存のまま） */
  .lw#faq .faq-title-y { letter-spacing: 0.03em; }
  .lw#faq .faq-title-q { letter-spacing: 0.13em; margin-inline-end: -0.055em; }

  /* PRICE：「料金」の右に説明文を置く（見出しブロック内で完結。料金一覧・罫線には触れない） */
  .lw#price .section__head {
    display: grid;
    grid-template-columns: max-content max-content;
    justify-content: start;
    align-items: end;
    column-gap: clamp(2rem, 1.2rem + 1.6vw, 3rem);
  }
  .lw#price .section__eyebrow { grid-column: 1 / -1; }
  .lw#price .section__title { grid-column: 1; white-space: nowrap; }
  .lw#price .section__sub { grid-column: 2; margin-top: 0; padding-bottom: 0.55em; white-space: nowrap; }
}

/* ==========================================================================
   Threads：ユーザーネームのラベルと値を1つのグループとして中央に配置（PC・スマホ共通）
   ========================================================================== */
.lw#threads .def-list--compact .def-list__row {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 1.5rem;
  text-align: center;
}
@media (max-width: 479px) {
  .lw#threads .def-list--compact .def-list__row {
    flex-direction: column;
    row-gap: 0.1rem;
  }
}

/* ==========================================================================
   ABOUT / READING TOOLS / 鑑定で大切にしていること：色の役割の整理（PC・スマホ共通）
   ・日本語の小タイトルだけを深いモスグリーン（--lw-moss-deep）に。番号（ゴールド）・英字（淡いグリーン）・大タイトルは維持
   ・区切り線は既存の線色（--lw-rule / --lw-rule-strong）を黒側へ約10％だけ寄せる（太さ・長さ・位置は不変）
   ========================================================================== */
.lw#about .strength__title,
.lw#service .tool__title { color: var(--lw-moss-deep); }

.lw#about .strengths, .lw#service .tool-list {
  --ln-c: color-mix(in srgb, var(--lw-rule-strong), #000 10%);
  border-top-color: var(--ln-c);
}
.lw#about .strength, .lw#service .tool {
  --ln-c: color-mix(in srgb, var(--lw-rule), #000 10%);
  border-bottom-color: var(--ln-c);
}

/* READING TOOLS：最初の一文だけ、後続文（ソフトグレー）より少し濃いチャコールグレー（色の濃淡のみ） */
.lw#service .tool__body p:first-child { color: var(--lw-text); }

/* 「鑑定で大切にしていること」のアイコン：約1.4倍。縦横比は aspect-ratio で維持し、
   画像左側の透明な余白（幅の約25％）ぶんを左へ戻して、ボックス内の文字の左端に字面を揃える */
.lw .brand-message-mark {
  height: 3.4rem;
  margin-left: -0.72rem;
  margin-bottom: 1.1rem;
}
@media (max-width: 767px) {
  .lw .brand-message-mark { height: 2.8rem; margin-left: -0.59rem; margin-bottom: 0.9rem; }
}

/* ==========================================================================
   CONCERNS / ABOUT の微調整
   ========================================================================== */
/* 大タイトル「ひとりで」だけ、深いモスグリーン（PC・スマホ共通） */
.lw#worries .worries-solo { color: var(--lw-moss-deep); }

/* 説明文の最初の一文だけ、後続文（ソフトグレー）より少し濃いチャコールグレー */
.lw#worries .worries__lead p:first-child { color: var(--lw-text); }

/* スマホ：説明文の終わりから区切り線・01までの余白を約17％詰める（52px → 約43px） */
@media (max-width: 767px) {
  .lw#worries .worries__grid { margin-top: 2.7rem; }
}

/* 「アゲ鑑定」の鉤括弧の外側（「の直前・」の直後）の余分な空きだけを詰める。括弧の内側・他の括弧は対象外 */
.lw#about .kagi-o { margin-inline-start: -0.3em; }
.lw#about .kagi-c { margin-inline-end: -0.3em; }
/* 375px前後は行の折り返しがぎりぎりのため、既存の改行位置を保てる範囲に控えめにする */
@media (max-width: 389px) {
  .lw#about .kagi-o { margin-inline-start: -0.1em; }
  .lw#about .kagi-c { margin-inline-end: -0.025em; }
}

/* ==========================================================================
   PC版（1025px以上）専用：説明文・本文の日本語カーニングの追加調整
   --------------------------------------------------------------------------
   ・既存の .k（漢字・かなの連続部分）の字間 --k を、要素ごとに約0.005〜0.03em だけ広げる。
     数字・英字・「、」「。」・括弧・中黒は .k の外なので字間は従来のまま。
   ・広げ幅は、1025 / 1280 / 1440 / 1920px のすべてで調整前と改行位置が一致する最大値（要素ごとに検証）。
   ========================================================================== */
@media (min-width: 1025px) {
  #worries > div:nth-child(1) > div:nth-child(2) > p:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > div:nth-child(2) > p:nth-child(3) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > div:nth-child(3) > section:nth-child(1) > ul:nth-child(3) > li:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > div:nth-child(3) > section:nth-child(1) > ul:nth-child(3) > li:nth-child(2) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > div:nth-child(3) > section:nth-child(1) > ul:nth-child(3) > li:nth-child(3) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > div:nth-child(3) > section:nth-child(1) > ul:nth-child(3) > li:nth-child(4) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > div:nth-child(3) > section:nth-child(2) > ul:nth-child(3) > li:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > div:nth-child(3) > section:nth-child(2) > ul:nth-child(3) > li:nth-child(2) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > div:nth-child(3) > section:nth-child(2) > ul:nth-child(3) > li:nth-child(3) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > div:nth-child(3) > section:nth-child(2) > ul:nth-child(3) > li:nth-child(4) { --k: 0.0725em; --km: -0.0475em; }
  #worries > div:nth-child(1) > p:nth-child(4) { --k: 0.0675em; --km: -0.0275em; }
  #about > div:nth-child(1) > header:nth-child(1) > div:nth-child(2) > p:nth-child(1) { --k: 0.0700em; --km: -0.0450em; }
  #about > div:nth-child(1) > header:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0670em; --km: -0.0300em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0600em; --km: -0.0330em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(1) > div:nth-child(2) > p:nth-child(3) { --k: 0.0750em; --km: -0.0480em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(2) > p:nth-child(2) { --k: 0.0750em; --km: -0.0480em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(2) > p:nth-child(3) { --k: 0.0880em; --km: -0.0530em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(2) > p:nth-child(2) { --k: 0.0750em; --km: -0.0480em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(2) > p:nth-child(3) { --k: 0.0880em; --km: -0.0530em; }
  #about > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(2) > p:nth-child(4) { --k: 0.0880em; --km: -0.0530em; }
  #about > div:nth-child(1) > section:nth-child(4) > p:nth-child(3) { --k: 0.0700em; --km: -0.0450em; }
  #about > div:nth-child(1) > section:nth-child(4) > p:nth-child(4) { --k: 0.0725em; --km: -0.0475em; }
  #about > div:nth-child(1) > section:nth-child(4) > p:nth-child(5) { --k: 0.0425em; --km: -0.0215em; }
  #profile > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) { --k: 0.0920em; --km: -0.0550em; }
  #profile > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(3) { --k: 0.0920em; --km: -0.0550em; }
  #profile > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(4) { --k: 0.0855em; --km: -0.0505em; }
  #service > div:nth-child(1) > header:nth-child(1) > div:nth-child(2) > p:nth-child(1) { --k: 0.0880em; --km: -0.0530em; }
  #service > div:nth-child(1) > header:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0800em; --km: -0.0500em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(1) > div:nth-child(3) > p:nth-child(1) { --k: 0.0880em; --km: -0.0530em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(1) > div:nth-child(3) > p:nth-child(2) { --k: 0.0920em; --km: -0.0550em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(3) > p:nth-child(1) { --k: 0.0730em; --km: -0.0380em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(3) > p:nth-child(2) { --k: 0.0720em; --km: -0.0350em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(3) > p:nth-child(3) { --k: 0.0920em; --km: -0.0550em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(3) > p:nth-child(3) { --k: 0.0920em; --km: -0.0550em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(3) > p:nth-child(4) { --k: 0.0920em; --km: -0.0550em; }
  #service > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(3) > p:nth-child(5) { --k: 0.0920em; --km: -0.0550em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0920em; --km: -0.0550em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(2) > p:nth-child(1) { --k: 0.0920em; --km: -0.0550em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(2) > p:nth-child(2) { --k: 0.0920em; --km: -0.0550em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(2) > div:nth-child(2) > p:nth-child(3) { --k: 0.0920em; --km: -0.0550em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(2) > p:nth-child(1) { --k: 0.0920em; --km: -0.0550em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(2) > p:nth-child(2) { --k: 0.0770em; --km: -0.0400em; }
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(3) > div:nth-child(2) > p:nth-child(3) { --k: 0.0920em; --km: -0.0550em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0920em; --km: -0.0550em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(2) > div:nth-child(2) > p:nth-child(2) { --k: 0.0920em; --km: -0.0550em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(2) > div:nth-child(2) > p:nth-child(3) { --k: 0.0920em; --km: -0.0550em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(3) > div:nth-child(2) > p:nth-child(2) { --k: 0.0920em; --km: -0.0550em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(4) > div:nth-child(2) > p:nth-child(2) { --k: 0.0920em; --km: -0.0550em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(4) > div:nth-child(2) > p:nth-child(3) { --k: 0.0920em; --km: -0.0550em; }
  #flow > div:nth-child(1) > ol:nth-child(2) > li:nth-child(4) > div:nth-child(2) > p:nth-child(4) { --k: 0.0920em; --km: -0.0550em; }
  #reschedule > div:nth-child(2) > p:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #decline > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #decline > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) { --k: 0.0725em; --km: -0.0475em; }
  #decline > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) { --k: 0.0725em; --km: -0.0475em; }
  #decline > div:nth-child(2) > ul:nth-child(2) > li:nth-child(4) { --k: 0.0725em; --km: -0.0475em; }
  #decline > div:nth-child(2) > ul:nth-child(2) > li:nth-child(5) { --k: 0.0725em; --km: -0.0475em; }
  #decline > div:nth-child(2) > ul:nth-child(2) > li:nth-child(6) { --k: 0.0725em; --km: -0.0475em; }
  #decline > div:nth-child(2) > p:nth-child(3) { --k: 0.0525em; --km: -0.0275em; }
  #decline > div:nth-child(2) > p:nth-child(4) { --k: 0.0600em; --km: -0.0350em; }
  #price > div:nth-child(1) > div:nth-child(2) > article:nth-child(2) > div:nth-child(3) > p:nth-child(1) { --k: 0.0920em; --km: -0.0550em; }
  #price > div:nth-child(1) > div:nth-child(2) > article:nth-child(3) > div:nth-child(3) > p:nth-child(1) { --k: 0.0920em; --km: -0.0550em; }
  #price > div:nth-child(1) > div:nth-child(2) > article:nth-child(4) > div:nth-child(3) > p:nth-child(1) { --k: 0.0920em; --km: -0.0550em; }
  #price > div:nth-child(1) > div:nth-child(2) > article:nth-child(4) > div:nth-child(3) > p:nth-child(3) { --k: 0.0920em; --km: -0.0550em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(1) > div:nth-child(2) > p:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(1) > div:nth-child(2) > p:nth-child(2) { --k: 0.0725em; --km: -0.0475em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(2) > div:nth-child(2) > p:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(2) > div:nth-child(2) > p:nth-child(2) { --k: 0.0475em; --km: -0.0225em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(3) > div:nth-child(2) > p:nth-child(1) { --k: 0.0475em; --km: -0.0225em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(4) > div:nth-child(2) > p:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(5) > div:nth-child(2) > p:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(5) > div:nth-child(2) > p:nth-child(2) { --k: 0.0575em; --km: -0.0325em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(6) > div:nth-child(2) > p:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(6) > div:nth-child(2) > p:nth-child(2) { --k: 0.0550em; --km: -0.0300em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(7) > div:nth-child(2) > p:nth-child(2) { --k: 0.0525em; --km: -0.0275em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(7) > div:nth-child(2) > p:nth-child(3) { --k: 0.0725em; --km: -0.0475em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(8) > div:nth-child(2) > p:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(8) > div:nth-child(2) > p:nth-child(3) { --k: 0.0500em; --km: -0.0250em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(8) > div:nth-child(2) > p:nth-child(4) { --k: 0.0475em; --km: -0.0225em; }
  #faq > div:nth-child(1) > div:nth-child(2) > details:nth-child(9) > div:nth-child(2) > p:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #threads > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > p:nth-child(1) { --k: 0.0725em; --km: -0.0475em; }
  #threads > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > p:nth-child(2) { --k: 0.0725em; --km: -0.0475em; }
  #threads > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > p:nth-child(3) { --k: 0.0725em; --km: -0.0475em; }
  #contact > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > p:nth-child(1) { --k: 0.0550em; --km: -0.0300em; }
  #contact > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > p:nth-child(2) { --k: 0.0700em; --km: -0.0450em; }
  #contact > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > p:nth-child(3) { --k: 0.0700em; --km: -0.0450em; }
  #contact > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > p:nth-child(4) { --k: 0.0700em; --km: -0.0450em; }
}

/* Concerns「ひとりで」：周囲のチャコールと区別できるよう一段明るい緑（既存の #4d6759 と同値）。PC・スマホ共通 */
.lw#worries .worries-solo { color: #4d6759; }

/* PC版（1025px以上）：句読点まわりの調整
   ・文中の「。」の直後：「、」（palt で右側の空きを詰め済み）との差が目立つため、全角の右側の空きを詰める
   ・行頭の開き括弧「は text-spacing-trim で詰めると折り返し位置が動くため、今回は変更しない */
@media (min-width: 1025px) {
  .lw .jp-p { margin-inline-end: -0.25em; }
}
@media (min-width: 1025px) {
  #method > div:nth-child(1) > div:nth-child(3) > article:nth-child(1) > div:nth-child(2) > p:nth-child(3) .jp-p { margin-inline-end: 0; }   /* 1025pxで折り返し位置が動くため、この段落だけ据え置き */
}

/* ==========================================================================
   CONCERNS「ひとりで」：モスグリーンの文字の上を、明るいセージグリーンの濃淡が左から右へ一度だけ通過する
   ・発火は大タイトルの表示（.section__title.is-in）。タイトルのフェード（約1.1秒）がほぼ終わってから始まる。
   ・文字は複製せず、background-clip:text のグラデーション位置だけを動かす。通過中だけ文字色を透過し、
     終了後は通常の #4d6759 に戻る（アニメーション終了でグラデーション・透過は残らない）。
   ・背景サイズを250%にして、帯（文字幅の約30%）が文字の左外側から入り、右外側へ抜け切るようにしている。
   ・非対応の環境・動きを減らす設定では、静止した #4d6759 のまま。
   ========================================================================== */
@keyframes concerns-solo-light {
  0%   { background-position: 100% 0; color: transparent; }
  100% { background-position: 0 0;    color: transparent; }
}
@media (prefers-reduced-motion: no-preference) {
  @supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .lw-anim .lw#worries .section__title.is-in .worries-solo {
      background-image: linear-gradient(105deg,
        #4d6759 0%, #4d6759 44%, #7f9386 47%, #a2b0a5 50%, #7f9386 53%, #4d6759 56%, #4d6759 100%);
      background-size: 250% 100%;
      background-position: 100% 0;
      background-repeat: no-repeat;
      -webkit-background-clip: text;
      background-clip: text;
      animation: concerns-solo-light 1.6s cubic-bezier(0.35, 0, 0.25, 1) 1.1s 1 none;
    }
  }
}

/* スマホ版（767px以下）：光の通過を一段はっきりさせる（帯は文字幅の約40％・1.8秒）。仕組み・発火条件・キーフレームは共通のまま */
@media (max-width: 767px) and (prefers-reduced-motion: no-preference) {
  @supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .lw-anim .lw#worries .section__title.is-in .worries-solo {
      background-image: linear-gradient(105deg,
        #4d6759 0%, #4d6759 42%, #84988a 46%, #b7c2b9 50%, #84988a 54%, #4d6759 58%, #4d6759 100%);
      animation-duration: 1.8s;
    }
  }
}

/* PC版（1025px以上）のみ：「ひとりで」の「で」と「抱」の間だけ、約0.06em 広げる（行全体の字間は変更しない） */
@media (min-width: 1025px) {
  .lw#worries .worries-solo { margin-inline-end: calc(var(--km, -0.045em) + 0.06em); }
}

/* ==========================================================================
   THREADS大タイトル「もっと気軽に、タロットを身近に。」の文字間（PC・スマホ共通）
   ・字間は「その文字の右側」に付くため、指定した文字間ごとに専用spanで個別に指定する（タイトル全体の letter-spacing は不変）。
   ・基準は漢字・かなの連続部分 .k の 0.075em、カタカナは 0.03em。
   ・詰める：もっ／っと／と気（-0.055em → 0.02em）、ロッ／ット（-0.05em → -0.02em）
   ・広げる：気軽／身近（+0.06em → 0.135em）、軽に／近に（+0.04em → 0.115em）
   ========================================================================== */
.lw#threads .tm1, .lw#threads .tm2, .lw#threads .tm3 { letter-spacing: 0.02em; }
.lw#threads .tt1, .lw#threads .tt2 { letter-spacing: -0.02em; }
.lw#threads .tk1, .lw#threads .tm4 { letter-spacing: 0.135em; }
.lw#threads .tk2, .lw#threads .tm5 { letter-spacing: 0.115em; }   /* 「に」は字面の右側の空きが大きいため、漢字どうしより控えめ */

/* 基本鑑定：2つのプラン（30分／50分）を同格の2行で並べる。桁頭・「円」の位置は既存の金額グリッドをそのまま使う */
.lw .price-item__plans {
  width: max-content;
  max-width: 100%;
  margin-bottom: 1.15rem;
}
.lw .price-item__plans .price-item__amount { margin-bottom: 0; }
.lw .price-item__plans .price-item__amount + .price-item__amount {
  margin-top: 0.7rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--lw-rule);
}
.lw .price-item--main .price-item__plans .price-item__figure {
  font-size: clamp(3rem, 2.2rem + 3.6vw, 4.75rem);
}
.lw .price-item--main .price-item__plans .price-item__unit { font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.6rem); }

/* PRICE副題「ご相談内容に合わせて選べる鑑定時間」：漢字が続く「相談内容」「鑑定時間」だけ字間を広げる（PC・スマホ共通） */
.lw#price .price-sub-a,
.lw#price .price-sub-b { letter-spacing: 0.08em; }

/* ==========================================================================
   PRICE「お試しオンライン鑑定」（料金表の先頭。既存の項目と同じ行レイアウトのまま、入口として静かに識別する）
   ・くすみピンクは、英字ラベル（文字）・短い罫線（線）・注記の小さな淡い面（背景）の3か所だけ。
   ・金額の大きさは「延長」「ペンデュラム追加」と同じ標準サイズ。基本鑑定より目立たせない。
   ========================================================================== */
.lw .price-item__label {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-bottom: 0.7rem;
  color: var(--rose-ink);
  font-size: var(--lw-fs-label);
  letter-spacing: 0.2em;
  line-height: 1.6;
}
.lw .price-item__label::after {
  content: "";
  width: 2.5rem;
  border-top: 1px solid var(--rose-line);
}
.lw .price-item__note {
  display: inline-block;
  padding: 0.3em 0.9em;
  background-color: var(--rose-soft);
  border-radius: 2px;
  color: var(--lw-text-soft);
  font-size: 0.875rem;
  line-height: 1.7;
  white-space: nowrap;
}
/* 「天からのメッセージ」は括弧ごと途中で折り返さない */
.lw .nb { white-space: nowrap; }

/* リンクの細い下線（プライバシーポリシー内など）：くすみピンク。文字色・ホバーの色変化は従来どおり */
.lw .text-link { border-bottom-color: var(--rose-ink); }
.lw .text-link:hover { border-bottom-color: var(--c-moss); }
.lw .price-item--trial .price-item__desc { max-width: 40em; }
/* 320px前後：「今必要な「天からのメッセージ」を、」が1行に収まるよう、この1文だけ文字サイズを少し下げる */
@media (max-width: 359px) {
  .lw .price-item--trial .price-item__desc p:first-child { font-size: 0.9375rem; }
}
/* 320px前後（359px以下）だけで有効になる改行：FAQ「鑑定時間を延長できますか」が「…できま｜す。」と語中で折れないようにする */
.xs-only-break { display: none; }
@media (max-width: 359px) { .xs-only-break { display: inline; } }
