@charset "UTF-8";

/* ==== 00-base.css ==== */
/* 銀座Spiria LP
   Figma: A4wbzZTarFL2bckL4Dn69o / PC 165:54 (1366) / SP 165:463 (375)
   基準幅: PC 1366 / SP 375。767px以下をSP正本、768px以上をPC正本とする。 */

/* ---------------------------------------------------------------- tokens */
:root {
  /* Figma VariableID:21:46 — ページ地色 */
  --c-bg: #f4f3ee;
  --c-white: #ffffff;
  --c-pink: #c9878b;       /* CTAピル fill */
  --c-cream: #efe7c6;      /* CTAピル stroke */
  --font-mincho: "Shippori Mincho", "Noto Serif JP", serif;
}

/* ------------------------------------------------------------- baseline */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

/* -------------------------------------------------- 等比スケール基盤(rem)
   PC/SP正本のpx値は tools/px2rem.py で一括rem化済み（各正本で1rem = 10px）。
   768px以上はPC 1366基準（100vw/136.6）、767px以下はSP 375基準
   （100vw/37.5）。文字/余白/絶対配置/画像枠/section高を画面幅比例で等比変形する。
   767→768ではSP正本からPC正本へ意図的に切り替わる。メディア条件はpx固定。 */
html { font-size: 62.5%; }

@media (max-width: 767px) {
  html { font-size: calc(100vw / 37.5); }
}

@media (min-width: 768px) {
  html { font-size: calc(100vw / 136.6); }
}

body {
  margin: 0;
  background: var(--c-bg);
  font-family: var(--font-mincho);
  color: #3a352d;
  font-size: 1.6rem; /* 正本幅で16px。両スコープともroot倍率に追従 */
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }

/* Figma 165:55 / 165:464 — ページ全面の白50%＋ノイズ＋背景ぼかしのベール。
   セクションより下のレイヤーなので pointer-events は殺す。 */
/* PC正本の固定1366pxキャンバスは768–1365pxで左右をクロップする。
   S05/S08の境界跨ぎCTAは縦方向を維持したまま、document横overflowだけを防ぐ。 */
.page { position: relative; overflow-x: clip; }

/* 165:55 の BACKGROUND_BLUR 40 は背面が単色 #f4f3ee のフレーム塗りしかないため
   出力が入力と同じになる恒等変換。実際に backdrop-filter を掛けると全面合成で
   Chromiumが落ちる（メモリ）だけで見た目は変わらないので、等価な平面として実装する。
   NOISE(monotone white a=0.7 size1) は未再現 → HOLD。 */
.page__veil {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: rgba(255, 255, 255, 0.5);
  pointer-events: none;
}

.page > *:not(.page__veil) { position: relative; z-index: 1; }

/* ==== 01-components.css ==== */
/* ------------------------------------------------ shared components */
/* CTAピル — Figma 165:58 (PC) / 165:467 (SP)。中間CTAでも使い回す */
.btn-consult {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  width: 30.4rem;
  min-height: 7.1rem;
  padding: 1.2rem 4rem;
  border: 0.6rem solid var(--c-cream);
  border-radius: 7.5rem;
  background: var(--c-pink);
  color: var(--c-white);
  font-size: 2rem;
  font-weight: 600;
  line-height: 2.896rem;
  letter-spacing: 0.2rem;
  white-space: nowrap;
}

.btn-consult__icon {
  flex: none;
  width: 3.3rem;
  height: 3.5rem;
  /* Figma imageTransform [[0.595703125,0,0.2216796875],[0,0.6318359375,0.1435546875]]
     = 1024px原本を x:22.17%〜81.74% / y:14.36%〜77.54% で切り出し */
  background-image: url("/assets/img/icon-moon.webp");
  background-repeat: no-repeat;
  background-size: 5.5398rem 5.5394rem;
  background-position: -1.2281rem -0.7952rem;
}

.btn-consult__label {
  /* letter-spacing の末尾アキをFigmaのテキスト箱幅に合わせて相殺 */
  margin-right: -0.2rem;
}

/* Figma 165:61 は path bbox 5x12 / stroke CENTER 1.028px。
   SVG原本は塗り込みで7x13あるので、レイアウト箱はtruthの5x12に保ったまま
   原寸のSVGを path bbox 基準でオーバーフローさせる。 */
.btn-consult__arrow {
  position: relative;
  flex: none;
  width: 0.5rem;
  height: 1.2rem;
}

.btn-consult__arrow::before {
  content: "";
  position: absolute;
  left: -0.0395rem;
  top: -0.0329rem;
  width: 0.7rem;
  height: 1.3rem;
  background: url("/assets/img/arrow-right.svg") no-repeat center / 100% 100%;
}

@media (max-width: 767px) {
  .btn-consult {
    gap: 0.6rem;
    width: 18.4rem;
    min-height: 4.4rem;
    padding: 0.8rem 1.6rem;
    border-width: 0.3rem;
    font-size: 1.5rem;
    line-height: 2.172rem;
    letter-spacing: 0.15rem;
  }

  .btn-consult__icon {
    width: 1.7rem;
    height: 1.9rem;
    background-size: 2.8538rem 3.0071rem;
    background-position: -0.6326rem -0.4317rem;
  }

  .btn-consult__label { margin-right: -0.15rem; }

  .btn-consult__arrow {
    width: 0.3rem;
    height: 0.8rem;
  }

  .btn-consult__arrow::before {
    left: -0.0237rem;
    top: -0.0219rem;
    width: 0.42rem;
    height: 0.867rem;
  }
}

/* ==== s01.css ==== */
/* ------------------------------------------------- S01 header (165:56) */
.site-header {
  background: var(--c-white);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 10.3rem;
  padding: 1.6rem 5rem;
}

.site-header__logo img {
  width: 21.4rem;
  height: 6rem;
  object-fit: cover;
}

@media (max-width: 767px) {
  .site-header__inner {
    min-height: 6rem;
    padding: 0.8rem 1.6rem;
  }

  .site-header__logo img {
    width: 10rem;
    height: 2.82rem;
  }
}

/* ==== s02.css ==== */
/* ---------------------------------------------------- S02 FV (165:62) */
/* PC正本 1366x793。セクション内は固定キャンバス合成なので絶対配置で座標を再現する。
   1366px超はキャンバスを中央維持（正本なしのためfallback）。 */
.fv {
  position: relative;
  height: 79.3rem;
  overflow: hidden;
  /* page veil(#fff 50%) over #f4f3ee の実地色。未結合セクションの跨ぎ要素が
     build途中でFVへ逆流しても、FV正本の背景とpaint orderを保つ。 */
  background: #faf9f7;
}

.page > .fv { z-index: 4; }

.fv__inner {
  position: relative;
  width: 136.6rem;
  height: 79.3rem;
  margin: 0 auto;
}

/* 165:63 Mask group — 波形マスク 165:64 (path bbox 1365x740) で上部グループを切り抜く */
.fv__scene {
  position: absolute;
  left: 0.1rem;
  top: 0;
  width: 136.5rem;
  height: 74rem;
  /* rem等比スケール対応: px固定の path() ではなく s02.html の
     objectBoundingBox clipPathで要素サイズに追従。SPも専用の正規化pathへ切替える。 */
  clip-path: url("#fv-wave-clip");
  z-index: 1;
}

/* 165:66 Mask group — グラデーションマスク済みの人物写真を1枚で書き出したもの。
   マスク枠は 346,103 の 1020x719 だが、実画素は image3 (165:69) が始まる x=462 からしか
   無いのでFigmaの書き出しも 904x719。枠幅へ引き伸ばさず実寸で置く。 */
.fv__photo {
  position: absolute;
  left: 46.1rem;
  top: 0;
  width: 90.4rem;
  height: 71.9rem;
  background: url("/assets/img/fv/hero-photo.webp") no-repeat 0 0 / 90.4rem 71.9rem;
}

/* 165:86 Group 3 */
.fv__copy {
  position: absolute;
  left: 10rem;
  top: 4rem;
  width: 64rem;
}

.fv__headline {
  margin: 0;
  font-size: 4.8rem;
  font-weight: 600;
  line-height: 6.95rem;
  letter-spacing: 0.48rem;
}

.fv__headline-line {
  display: block;
  /* 箱はFigmaのテキストbboxに合わせて固定する。CSSはletter-spacingの末尾アキを
     箱に含めるので、max-contentのままだと4.8/7.2px太る。 */
  height: 7rem;
  /* Figma幅ぴったりだと末尾アキ分で折り返して2行目が箱外＝無塗りになるため禁止 */
  white-space: nowrap;
  /* 165:88-90 の縦グラデーション。handle y 0.1897→0.8793 を stop 位置へ写す。
     箱をFigma幅に固定すると末尾アキ分の文字が塗り漏れるので、背景だけ右へ伸ばす。 */
  background-image: linear-gradient(180deg, #9e869f 18.97%, #9b889e 53.45%, #9b829a 87.93%);
  background-size: calc(100% + 0.8rem) 100%;
  background-repeat: no-repeat;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.fv__headline-line:nth-child(1) { width: 31.2rem; }
.fv__headline-line:nth-child(2) { width: 62.9rem; }
.fv__headline-line:nth-child(3) { width: 54.8rem; }
.fv__headline-line + .fv__headline-line { margin-top: 0.8rem; }

.fv__headline-line--lg {
  font-size: 7.2rem;
  line-height: 10.426rem;
  letter-spacing: 0.72rem;
  height: 10.4rem;
}

.fv__lead {
  margin: 0;
  position: absolute;
  top: 28.4rem;
  left: 0;
  width: 64rem;
  /* 165:91 は fs20/lh28.96 に対して箱が35pxの固定枠 */
  min-height: 3.5rem;
  white-space: nowrap;
  color: #796a56;
  font-size: 2rem;
  font-weight: 600;
  line-height: 2.896rem;
  letter-spacing: 0.2rem;
}

/* 165:91 の characterStyleOverrides。base は fs20/w600/#796a56 で、
   style3 = weight 500、style2 = fs24 + #ab795e。文字レベルの指定が正本。 */
.fv__lead-plain { font-weight: 500; }

.fv__lead-em {
  font-size: 2.4rem;
  color: #ab795e;
}

/* 165:92 image 9 — 「霊視・スピリチュアル」下の装飾ライン */
.fv__lead-mark {
  position: absolute;
  left: 28.7rem;
  top: 31.5rem;
  width: 29.6rem;
  height: 1.7rem;
  background: url("/assets/img/fv/headline-underline.webp") no-repeat center / 100% 100%;
}

/* 165:70 Frame 8 — 相談テーマの丸ピル5個 */
.fv__topics {
  position: absolute;
  left: 10.1rem;
  top: 39.5rem;
  display: flex;
  gap: 0.8rem;
  margin: 0;
  padding: 0;
  list-style: none;
  z-index: 1;
}

.fv__topic {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 12.5rem;
  height: 12.5rem;
  padding: 1rem;
  border: 0.1rem solid;
  border-radius: 12.1rem;
  background: var(--c-white);
}

.fv__topic--kimochi { border-color: #ff98be; }
.fv__topic--renai   { border-color: #cfabea; }
.fv__topic--kekkon  { border-color: #ffdadc; }
.fv__topic--mayoi   { border-color: #d3994e; }
.fv__topic--shimei  { border-color: #98cdfa; gap: 0; }

.fv__topic-icon {
  flex: none;
  width: 5.5rem;
  height: 5.5rem;
  background-repeat: no-repeat;
  background-size: 5.5rem 5.5rem;
}

.fv__topic--kimochi .fv__topic-icon { background-image: url("/assets/img/fv/topic-kimochi.webp"); }
.fv__topic--renai   .fv__topic-icon { background-image: url("/assets/img/fv/topic-renai.webp"); }
.fv__topic--kekkon  .fv__topic-icon { background-image: url("/assets/img/fv/topic-kekkon.webp"); }
.fv__topic--mayoi   .fv__topic-icon { background-image: url("/assets/img/fv/topic-mayoi.webp"); }
.fv__topic--shimei  .fv__topic-icon { background-image: url("/assets/img/fv/topic-shimei.webp"); }

.fv__topic-label {
  color: #796a56;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 2.027rem;
  letter-spacing: 0.14rem;
  white-space: nowrap;
  margin-right: -0.14rem;
}

/* 165:93 Mask group — 下部の虹色ライン帯 */
.fv__band {
  position: absolute;
  left: 0.1rem;
  top: 52.2rem;
  width: 136.5rem;
  height: 27.1rem;
  background: url("/assets/img/fv/bottom-band.webp") no-repeat 0 0 / 136.5rem 27.1rem;
  z-index: 2;
}

/* 165:96 Frame 2 — FVのCTA */
.btn-consult--fv {
  position: absolute;
  left: 10.1rem;
  top: 54.4rem;
  width: 39rem;
  min-height: 7.9rem;
  padding: 1.6rem 4rem;
  border-radius: 17.1rem;
  z-index: 3;
}

/* 165:100 Frame 12 — 3つの安心バッジ */
.fv__badges {
  position: absolute;
  left: 15.7rem;
  top: 66.9rem;
  display: flex;
  width: 105.2rem;
  margin: 0;
  padding: 1.6rem 0;
  border: 0.1rem solid rgba(121, 106, 86, 0.5);
  border-radius: 0.8rem;
  background: var(--c-white);
  list-style: none;
  box-sizing: border-box;
  z-index: 4;
}

.fv__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  width: 35rem;
  padding: 1rem;
  background: var(--c-white);
  box-sizing: border-box;
}

.fv__badge:first-child { gap: 1.6rem; }
.fv__badge:not(:last-child) { border-right: 0.1rem solid rgba(121, 106, 86, 0.5); }

.fv__badge-icon {
  flex: none;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.fv__badge-icon--koshitsu { width: 6.1rem; height: 7rem; background-image: url("/assets/img/fv/badge-koshitsu.webp"); }
.fv__badge-icon--online   { width: 7rem; height: 7rem; background-image: url("/assets/img/fv/badge-online.webp"); }
.fv__badge-icon--jisseki  { width: 7rem; height: 7rem; background-image: url("/assets/img/fv/badge-jisseki.webp"); }

.fv__badge-label {
  color: #796a56;
  font-size: 2rem;
  font-weight: 600;
  line-height: 2.896rem;
  letter-spacing: 0.2rem;
  white-space: nowrap;
  margin-right: -0.2rem;
}

/* PCでは連続1行、SPではFigmaテキストノードどおりの確定改行にする。 */
.fv__lead-break--sp,
.fv__badge-break--sp { display: none; }

/* ------------------------------------------------ S02 FV / SP (165:471) */
@media (max-width: 767px) {
  .fv {
    height: 68.9rem;
  }

  .fv__inner {
    width: 37.5rem;
    height: 68.9rem;
  }

  /* 165:472 / 165:473 fillGeometry。objectBoundingBox正規化で中間幅にも追従。 */
  .fv__scene {
    left: 0;
    top: 0;
    width: 37.5rem;
    height: 52.3rem;
    clip-path: url("#fv-wave-clip-sp");
  }

  /* 165:475 Mask groupをFigma APIから2xで書き出した正本画像。 */
  .fv__photo {
    left: 0;
    top: 22.2rem;
    width: 37.5rem;
    height: 30.2rem;
    background-image: url("/assets/img/fv/sp-photo.webp");
    background-size: 37.5rem 30.2rem;
  }

  .fv__copy {
    left: 1.6rem;
    top: 1.8rem;
    width: 32.65918rem;
  }

  .fv__headline {
    font-size: 2.4rem;
    line-height: 3.4752rem;
    letter-spacing: 0.12rem;
  }

  .fv__headline-line {
    height: 3.5rem;
    background-size: calc(100% + 0.5rem) 100%;
  }

  .fv__headline-line:nth-child(1) { width: 15.11999rem; }
  .fv__headline-line:nth-child(2) { width: 30.44158rem; }
  .fv__headline-line:nth-child(3) { width: 30.64318rem; }

  .fv__headline-line--lg {
    height: 5.8rem;
    font-size: 4rem;
    line-height: 5.792rem;
    letter-spacing: 0.4rem;
  }

  .fv__lead {
    left: 0;
    top: 16.8rem;
    width: 32.65918rem;
    height: 5.4rem;
    min-height: 5.4rem;
    white-space: normal;
    font-size: 1.6rem;
    line-height: 2.896rem;
    letter-spacing: 0.2rem;
  }

  .fv__lead-em { font-size: 2rem; }
  .fv__lead-line2 { white-space: nowrap; }
  /* Browserは行末にも2px trackingを加えるため、Figmaの2行目を箱内に保つ。 */
  .fv__lead-plain:last-child { margin-right: -0.2rem; }
  .fv__lead-break--sp,
  .fv__badge-break--sp { display: initial; }

  .fv__lead-mark {
    left: 3.8rem;
    top: 21.57918rem;
    width: 23.5593rem;
    height: 1.31908rem;
    /* 165:485 のSP固有imageTransform込みnode export。PC素材の再cropは禁止。 */
    background-image: url("/assets/img/fv/sp-headline-underline.webp");
  }

  /* SPではsceneの後ろにある165:486を写真の上、165:489をさらに上へ描く。 */
  .fv__band {
    left: 0.29761rem;
    top: 44.85494rem;
    width: 37.2024rem;
    height: 7.44506rem;
    background-image: url("/assets/img/fv/sp-band.webp");
    background-size: 37.2024rem 7.44506rem;
  }

  .fv__topics {
    left: 1.6rem;
    top: 41.1rem;
    display: block;
    width: 34rem;
    height: 6.8rem;
    z-index: 3;
  }

  .fv__topic {
    position: absolute;
    display: flex;
    flex-direction: row;
    width: 10.8rem;
    height: 3rem;
    padding: 0.4rem 0.8rem;
    gap: 0.4rem;
  }

  .fv__topic:nth-child(1) { left: 0; top: 0; }
  .fv__topic:nth-child(2) { left: 11.6rem; top: 0; }
  .fv__topic:nth-child(3) { left: 23.2rem; top: 0; }
  .fv__topic:nth-child(4) { left: 5.8rem; top: 3.8rem; }
  .fv__topic:nth-child(5) { left: 17.4rem; top: 3.8rem; }

  .fv__topic-icon {
    width: 2rem;
    height: 2rem;
    background-size: 2rem 2rem;
    background-position: 0 0;
  }

  /* 165:492/495/498/502/505 の各imageTransform込みnode export。 */
  .fv__topic--kimochi .fv__topic-icon { background-image: url("/assets/img/fv/sp-topic-kimochi.webp"); }
  .fv__topic--renai   .fv__topic-icon { background-image: url("/assets/img/fv/sp-topic-renai.webp"); }
  .fv__topic--kekkon  .fv__topic-icon { background-image: url("/assets/img/fv/sp-topic-kekkon.webp"); }
  .fv__topic--mayoi   .fv__topic-icon { background-image: url("/assets/img/fv/sp-topic-mayoi.webp"); }
  .fv__topic--shimei  .fv__topic-icon { background-image: url("/assets/img/fv/sp-topic-shimei.webp"); }

  .fv__topic-label {
    height: 1.6rem;
    margin-right: 0;
    font-size: 1.1rem;
    line-height: 1.5928rem;
    letter-spacing: 0;
  }

  .fv__topic--kimochi .fv__topic-label { width: 6.6rem; }
  .fv__topic--renai .fv__topic-label { width: 5.5rem; }
  .fv__topic--kekkon .fv__topic-label { width: 6.6rem; }
  .fv__topic--mayoi .fv__topic-label,
  .fv__topic--shimei .fv__topic-label {
    letter-spacing: 0.11rem;
  }
  .fv__topic--mayoi .fv__topic-label { width: 6rem; }
  .fv__topic--shimei .fv__topic-label { width: 2.4rem; }

  .fv__badges {
    left: 1.7rem;
    top: 50.3rem;
    width: 34.0278rem;
    height: 11.8rem;
    padding: 0.8rem 0;
  }

  .fv__badge {
    flex-direction: column;
    width: 11.30927rem;
    height: 10rem;
    padding: 0 1rem;
    gap: 1rem;
  }

  .fv__badge:nth-child(3) { width: 11.20926rem; }
  .fv__badge:first-child {
    justify-content: flex-start;
    gap: 1.6rem;
  }

  /* 165:509/512/515 のSP固有imageTransform込みnode export。 */
  .fv__badge-icon--koshitsu {
    width: 4.4rem;
    height: 5rem;
    background-image: url("/assets/img/fv/sp-badge-koshitsu.webp");
  }
  .fv__badge-icon--online,
  .fv__badge-icon--jisseki { width: 5rem; height: 5rem; }
  .fv__badge-icon--online { background-image: url("/assets/img/fv/sp-badge-online.webp"); }
  .fv__badge-icon--jisseki { background-image: url("/assets/img/fv/sp-badge-jisseki.webp"); }

  .fv__badge-label {
    height: auto;
    margin-right: 0;
    color: #796a56;
    font-size: 1.4rem;
    line-height: 2.0272rem;
    letter-spacing: 0;
    text-align: center;
  }

  .fv__badge:nth-child(1) .fv__badge-label { width: 5.6rem; }
  .fv__badge:nth-child(2) .fv__badge-label { width: 9.8rem; }
  .fv__badge:nth-child(3) .fv__badge-label { width: 7.2rem; }

  .btn-consult--fv {
    left: 6rem;
    top: 63.7rem;
    width: 25.4rem;
    min-height: 5.2rem;
    padding: 1.2rem 2.4rem;
    gap: 0.8rem;
    border-radius: 7.5rem;
    z-index: 5;
  }

  /* 165:518 のimageTransform込みnode export。 */
  .btn-consult--fv .btn-consult__icon {
    background-image: url("/assets/img/fv/sp-icon-moon.webp");
    background-size: 1.7rem 1.9rem;
    background-position: 0 0;
  }
}

/* ==== s03.css ==== */
/* -------------------------------------- S03 Problems / PC (165:110) */
.page > .s03-problems { z-index: 4; }

.s03-problems {
  position: relative;
  height: 63.2rem;
  overflow: hidden;
  isolation: isolate;
  background: #f4f3ee;
}

/* 165:111 Group 8を use_absolute_bounds=true / 1x でFigma APIから書き出した、
   文字を含まない背景正本。LAYER_BLUR・BACKGROUND_BLUR・NOISE・165:115の
   マスク帯を焼き込むことで、Chromiumの全面blur crashを避けつつ出力を一致させる。 */
.s03-problems__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url("/assets/img/s03/background-pc.webp") no-repeat 0 0 / 136.6rem 63.2rem;
  pointer-events: none;
}

.s03-problems__title,
.s03-problems__card,
.s03-problems__lead {
  position: absolute;
  z-index: 1;
}

.s03-problems__title {
  left: 37.7rem;
  top: 10rem;
  width: 61.2rem;
  height: 5.8rem;
  margin: 0;
  color: #9b889e;
  font-size: 4rem;
  font-weight: 500;
  line-height: 5.792rem;
  letter-spacing: 0.4rem;
  white-space: nowrap;
}

/* 165:120 Frame 15。INSIDE stroke 1pxをborder-boxで再現する。 */
.s03-problems__card {
  left: 10rem;
  top: 19.8rem;
  display: flex;
  align-items: center;
  gap: 4rem;
  width: 116.6rem;
  height: 26.5rem;
  padding: 4rem;
  border: 0.1rem solid rgba(121, 106, 86, 0.5);
  border-radius: 0.8rem;
  background: #ffffff;
}

.s03-problems__column {
  display: flex;
  flex: none;
  flex-direction: column;
  justify-content: center;
  gap: 2.4rem;
  width: 50.15rem;
  height: 18.3rem;
}

.s03-problems__divider {
  flex: none;
  width: 0.1rem;
  height: 18.3rem;
  background: rgba(121, 106, 86, 0.5);
}

.s03-problems__item {
  display: flex;
  flex: none;
  align-items: center;
  gap: 1.6rem;
  width: 50.15rem;
  height: 5.3rem;
  margin: 0;
  padding: 0 0 2.4rem;
}

.s03-problems__item:last-child {
  height: 2.9rem;
  padding-bottom: 0;
}

.s03-problems__check {
  position: relative;
  flex: none;
  width: 2rem;
  height: 2rem;
  border: 0.1rem solid #b8a2c1;
  border-radius: 6.5rem;
  background: #b8a2c1;
}

.s03-problems__check::after {
  content: "";
  position: absolute;
  left: 0.4rem;
  top: 0.5rem;
  width: 1.1rem;
  height: 0.9rem;
  background: url("/assets/img/s03/check-arrow.svg") no-repeat center / 1.1rem 0.9rem;
}

.s03-problems__text {
  flex: none;
  height: 2.9rem;
  color: #796a56;
  font-size: 2rem;
  font-weight: 500;
  line-height: 2.896rem;
  letter-spacing: 0.2rem;
  white-space: nowrap;
}

.s03-problems__column:nth-of-type(1) .s03-problems__item:nth-child(1) .s03-problems__text { width: 30.6rem; }
.s03-problems__column:nth-of-type(1) .s03-problems__item:nth-child(2) .s03-problems__text { width: 39.4rem; }
.s03-problems__column:nth-of-type(1) .s03-problems__item:nth-child(3) .s03-problems__text { width: 46rem; }
.s03-problems__column:nth-of-type(2) .s03-problems__item:nth-child(1) .s03-problems__text { width: 46rem; }
.s03-problems__column:nth-of-type(2) .s03-problems__item:nth-child(2) .s03-problems__text,
.s03-problems__column:nth-of-type(2) .s03-problems__item:nth-child(3) .s03-problems__text { width: 41.6rem; }

.s03-problems__br--sp { display: none; }

.s03-problems__lead {
  left: 35.4rem;
  top: 50.3rem;
  width: 65.8rem;
  height: 2.9rem;
  margin: 0;
  color: #796a56;
  font-size: 2rem;
  font-weight: 500;
  line-height: 2.896rem;
  letter-spacing: 0.2rem;
  white-space: nowrap;
}

.s03-problems__lead-break { display: none; }

/* ---------------------------------------- S03 Problems / SP (165:521) */
@media (max-width: 767px) {
  .s03-problems {
    height: 77.3rem;
  }

  /* 165:522 Group 9。group bboxは376px、親165:521が375pxでclipする。 */
  .s03-problems__bg {
    width: 37.6rem;
    background-image: url("/assets/img/s03/background-sp.webp");
    background-size: 37.6rem 77.3rem;
  }

  .s03-problems__title {
    left: 3.45rem;
    top: 8rem;
    width: 30.6rem;
    height: 2.9rem;
    font-size: 2rem;
    line-height: 2.896rem;
    letter-spacing: 0.2rem;
  }

  .s03-problems__card {
    left: 1.6rem;
    top: 14.9rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 2.4rem;
    width: 34.3rem;
    height: 44.6rem;
    padding: 2.4rem 1.6rem;
  }

  .s03-problems__column {
    gap: 2.4rem;
    width: 30.9rem;
    height: 18.6rem;
  }

  .s03-problems__divider { display: none; }

  .s03-problems__item,
  .s03-problems__item:last-child {
    width: 30.9rem;
    height: 4.6rem;
    padding: 0;
  }

  .s03-problems__text {
    height: 4.6rem;
    font-size: 1.6rem;
    line-height: 2.3168rem;
    letter-spacing: 0.16rem;
  }

  .s03-problems__column:nth-of-type(1) .s03-problems__item:nth-child(1) .s03-problems__text,
  .s03-problems__column:nth-of-type(1) .s03-problems__item:nth-child(2) .s03-problems__text { width: 17.5rem; }
  .s03-problems__column:nth-of-type(1) .s03-problems__item:nth-child(3) .s03-problems__text { width: 22.8rem; }
  .s03-problems__column:nth-of-type(2) .s03-problems__item:nth-child(1) .s03-problems__text { width: 26.3rem; }
  .s03-problems__column:nth-of-type(2) .s03-problems__item:nth-child(2) .s03-problems__text,
  .s03-problems__column:nth-of-type(2) .s03-problems__item:nth-child(3) .s03-problems__text { width: 21rem; }

  .s03-problems__br--sp { display: inline; }

  /* SP正本165:549だけPCの全角スラッシュが読点へ変わる。DOMは一語のまま、
     表示字形だけviewportに合わせる。 */
  .s03-problems__punct { font-size: 0; }
  .s03-problems__punct::after {
    content: "、";
    font-size: 1.6rem;
  }

  .s03-problems__lead {
    left: 4.75rem;
    top: 63.5rem;
    width: 28rem;
    height: 5.8rem;
    font-size: 1.6rem;
    line-height: 2.88rem;
    letter-spacing: 0.16rem;
    text-align: center;
    /* Figmaは165:558内の確定改行だけ。日本語の自動折返しで「は」が孤立しないよう固定。 */
    white-space: nowrap;
  }

  .s03-problems__lead-break { display: inline; }
}

/* ==== s04.css ==== */
/* ----------------------------------- S04 Customer voices / PC (165:149) */
.page > .s04-voices { z-index: 3; }

.s04-voices {
  position: relative;
  height: 69.7rem;
  overflow: hidden;
  isolation: isolate;
  background: #f4f3ee;
}

/* 165:150/151を use_absolute_bounds=true / 1x で個別書出し。
   BACKGROUND_BLUR 40 と白NOISEを正本レンダラで焼き込み、正本のdraw orderで重ねる。 */
.s04-voices__base,
.s04-voices__wash,
.s04-voices__band {
  position: absolute;
  left: 0;
  z-index: 0;
  pointer-events: none;
}

.s04-voices__base,
.s04-voices__wash {
  top: 0;
  width: 136.6rem;
  height: 69.7rem;
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 136.6rem 69.7rem;
}

.s04-voices__base { background-image: url("/assets/img/s04/background-base-pc.webp"); }
.s04-voices__wash { background-image: url("/assets/img/s04/background-wash-pc.webp"); }

/* 165:152 mask group。親165:149のclipsContentでy=697より下は切れる。 */
.s04-voices__band {
  top: 48.1rem;
  width: 136.5rem;
  height: 27.1rem;
  background: url("/assets/img/s04/bottom-band-pc.webp") no-repeat 0 0 / 136.5rem 27.1rem;
}

.s04-voices__heading,
.s04-voices__lead,
.s04-voices__cards {
  position: absolute;
  z-index: 1;
}

.s04-voices__heading {
  left: 57.4rem;
  top: 10rem;
  width: 21.8rem;
  height: 5.8rem;
}

.s04-voices__title {
  width: 21.8rem;
  height: 5.8rem;
  margin: 0;
  color: #9b889e;
  font-size: 4rem;
  font-weight: 700;
  line-height: 5.792rem;
  letter-spacing: 0.44rem;
  white-space: nowrap;
}

/* 165:157 imageTransform込みnode export。Frame 22から左右39pxずつ張り出す。 */
.s04-voices__rule {
  position: absolute;
  left: -3.9rem;
  top: 5.8rem;
  width: 29.6rem;
  height: 1.7rem;
  background: url("/assets/img/s04/heading-rule-pc.webp") no-repeat 0 0 / 29.6rem 1.7rem;
}

.s04-voices__lead {
  left: 30.35rem;
  top: 19.8rem;
  width: 75.9rem;
  height: 2.9rem;
  margin: 0;
  color: #796a56;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.896rem;
  letter-spacing: 0.2rem;
  text-align: left;
  white-space: nowrap;
}

.s04-voices__lead-break--sp { display: none; }

/* 165:159 Frame 14 */
.s04-voices__cards {
  left: 10rem;
  top: 26.7rem;
  display: flex;
  gap: 1.6rem;
  width: 116.6rem;
  height: 22.1rem;
}

.s04-voices__card {
  display: flex;
  flex: none;
  align-items: center;
  gap: 1.6rem;
  width: 37.8rem;
  height: 22.1rem;
  padding: 1.6rem;
  border: 0.1rem solid #bcb5ab;
  border-radius: 0.8rem;
  background: #ffffff;
}

.s04-voices__card--wide-detail { gap: 1rem; }

/* 165:162/175。IMAGE FILL + radius 100をFigma node exportへ焼込み、
   PC/SPで共通する140x187のcrop/zoom/offsetをそのまま使用する。 */
.s04-voices__portrait {
  flex: none;
  width: 14rem;
  height: 18.7rem;
  max-width: none;
}

.s04-voices__detail {
  display: flex;
  flex: none;
  flex-direction: column;
  justify-content: space-between;
  width: 18.8rem;
  height: 18.7rem;
}

.s04-voices__card--wide-detail .s04-voices__detail { width: 19.4rem; }

.s04-voices__review {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  width: 100%;
}

.s04-voices__stars {
  display: flex;
  flex: none;
  gap: 0.4rem;
  width: 13.6rem;
  height: 2.4rem;
}

.s04-voices__stars span {
  flex: none;
  width: 2.4rem;
  height: 2.4rem;
  background: url("/assets/img/s04/star.svg") no-repeat 0 0 / 2.4rem 2.4rem;
}

.s04-voices__quote,
.s04-voices__profile {
  margin: 0;
  color: #796a56;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.3168rem;
  letter-spacing: 0.16rem;
}

.s04-voices__quote {
  width: 100%;
  height: 9.2rem;
}

.s04-voices__card:nth-child(2) .s04-voices__quote { height: 6.9rem; }

.s04-voices__card:nth-child(3) .s04-voices__quote {
  height: auto;
  font-size: 1.4rem;
  line-height: 2.0272rem;
  letter-spacing: 0.14rem;
}

.s04-voices__profile {
  width: 7.5rem;
  height: 2.3rem;
  white-space: nowrap;
}

/* ------------------------------------- S04 Customer voices / SP (165:559) */
@media (max-width: 767px) {
  .s04-voices { height: 118rem; }

  .s04-voices__base,
  .s04-voices__wash {
    width: 37.5rem;
    height: 118rem;
    background-size: 37.5rem 118rem;
  }

  .s04-voices__base { background-image: url("/assets/img/s04/background-base-sp.webp"); }
  .s04-voices__wash { background-image: url("/assets/img/s04/background-wash-sp.webp"); }

  .s04-voices__band {
    top: 97.4rem;
    width: 37.5rem;
    height: 7.445rem;
    background-image: url("/assets/img/s04/bottom-band-sp.webp");
    background-size: 37.5rem 7.445rem;
  }

  .s04-voices__heading {
    left: 8.95rem;
    top: 8rem;
    width: 19.6rem;
    height: 5.2rem;
  }

  .s04-voices__title {
    width: 19.6rem;
    height: 5.2rem;
    font-size: 3.6rem;
    line-height: 5.2128rem;
    letter-spacing: 0.396rem;
  }

  .s04-voices__rule {
    left: 0.05rem;
    top: 5.2rem;
    width: 19.6rem;
    height: 1.1rem;
    background-image: url("/assets/img/s04/heading-rule-sp.webp");
    background-size: 19.6rem 1.1rem;
  }

  .s04-voices__lead {
    left: 5.6rem;
    top: 17.2rem;
    width: 26.3rem;
    height: 8.7rem;
    font-size: 1.6rem;
    line-height: 2.88rem;
    letter-spacing: 0.16rem;
    text-align: center;
    white-space: nowrap;
  }

  .s04-voices__lead-break--sp { display: initial; }

  .s04-voices__cards {
    left: 1.6rem;
    top: 29.9rem;
    flex-direction: column;
    width: 34.3rem;
    height: 69.5rem;
  }

  .s04-voices__card { width: 34.3rem; }

  .s04-voices__detail { width: 15.3rem; }
  .s04-voices__card--wide-detail .s04-voices__detail { width: 15.9rem; }

  .s04-voices__card:nth-child(3) .s04-voices__quote { height: auto; }
}

/* ==== s05.css ==== */
/* ------------------------------------------ S05 overlap CTA (PC 165:241 / SP 165:649) */
/* S04/S06 boundary is y=2225 (SP y=2702). The source card crosses that boundary:
   PC top -109 / bottom +109, SP top -106 / bottom +105. Keep this section at zero
   flow-height so S06 starts at its Figma boundary, then paint the card above S06. */
.page > .s05-cta {
  position: relative;
  z-index: 3;
  height: 0;
  overflow: visible;
}

.s05-cta__card {
  position: absolute;
  left: 50%;
  top: -10.9rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.4rem;
  width: 116.6rem;
  height: 21.8rem;
  margin-left: -58.2rem;
  padding: 2.4rem;
  overflow: hidden;
  border: 0.1rem solid rgba(121, 106, 86, 0.5);
  border-radius: 1.6rem;
  background: #ffffff;
}

.s05-cta__title {
  position: relative;
  z-index: 1;
  width: 50rem;
  height: 3.5rem;
  margin: 0;
  color: #9b889e;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 3.4752rem;
  letter-spacing: 0.24rem;
  white-space: nowrap;
}

.s05-cta__actions {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.7rem;
  width: 39rem;
  height: 10.9rem;
}

.s05-cta__note {
  width: 32.8rem;
  height: 2.3rem;
  margin: 0;
  color: #796a56;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.3168rem;
  letter-spacing: 0.24rem;
  white-space: nowrap;
}

.btn-consult--s05 {
  width: 39rem;
  min-height: 7.9rem;
  padding: 1.6rem 4rem;
  border-width: 0.6rem;
  border-radius: 17.1rem;
}

/* Figma auto-resize TEXT bbox excludes the browser's trailing tracking advance. */
.btn-consult--s05 .btn-consult__label {
  width: 21.8rem;
  margin-right: 0;
}

.s05-cta__decor {
  position: absolute;
  z-index: 2;
  display: block;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  pointer-events: none;
}

/* Exact Figma node exports: 165:249 / 165:250. */
.s05-cta__decor--left {
  /* absolute offsets resolve from the card padding edge (1px inside its border). */
  left: 11.1rem;
  top: 6.3rem;
  width: 17.8rem;
  height: 12.9rem;
  background-image: url("/assets/img/s05/decor-left-pc.webp");
}

.s05-cta__decor--right {
  left: 85.9rem;
  top: 5.9rem;
  width: 17.1rem;
  height: 12.1rem;
  background-image: url("/assets/img/s05/decor-right-pc.webp");
}

@media (max-width: 767px) {
  .s05-cta__card {
    top: -10.6rem;
    width: 34.3rem;
    height: 21.1rem;
    margin-left: -17.15rem;
    padding: 2.4rem 1.6rem;
  }

  .s05-cta__title {
    width: 21.8rem;
    height: 5.8rem;
    color: #9b889e;
    font-size: 2rem;
    line-height: 2.8959999084472656rem;
    letter-spacing: 0.2rem;
    text-align: center;
    white-space: nowrap;
  }

  .s05-cta__title span { display: block; }

  .s05-cta__actions {
    width: 28.7rem;
    height: 7.9rem;
  }

  .s05-cta__note {
    width: 28.7rem;
    height: 2rem;
    font-size: 1.4rem;
    line-height: 2.027199935913086rem;
    letter-spacing: 0.21rem;
  }

  .btn-consult--s05 {
    gap: 0.8rem;
    width: 25.4rem;
    min-height: 5.2rem;
    padding: 1.2rem 2.4rem;
    border-width: 0.3rem;
    border-radius: 7.5rem;
  }

  .btn-consult--s05 .btn-consult__label { width: 16.4rem; }

  /* SP uses independent truth exports; PC crops are not reused. */
  .s05-cta__decor--left {
    left: -0.1rem;
    top: 1.8rem;
    width: 5.8rem;
    height: 4.2rem;
    background-image: url("/assets/img/s05/decor-left-sp.webp");
  }

  .s05-cta__decor--right {
    left: 27.6rem;
    top: 15.4rem;
    width: 6.642141723632812rem;
    height: 4.700010681152344rem;
    background-image: url("/assets/img/s05/decor-right-sp.webp");
  }
}

/* ==== s06.css ==== */
/* ----------------------------------------------- S06 reasons (PC 165:200 / SP 165:610) */
.page > .s06-reasons {
  position: relative;
  z-index: 1;
}

.s06-reasons {
  height: 128.7rem;
  overflow: hidden;
  isolation: isolate;
  background: #f4f3ee;
}

.s06-reasons__orb {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
}

/* Figma LAYER_BLUR radius 180 -> CSS blur(90px). */
.s06-reasons__orb--violet {
  left: calc(50% - 68.8rem);
  top: 20.9rem;
  width: 21rem;
  height: 21rem;
  background: #d2a7fe;
  filter: blur(9rem);
}

/* Figma LAYER_BLUR radius 200 -> CSS blur(100px). */
.s06-reasons__orb--yellow {
  left: calc(50% + 50.6rem);
  top: 53.5rem;
  width: 19.7rem;
  height: 19.7rem;
  background: #fff2b3;
  filter: blur(10rem);
}

/* 165:203: white 50% plane above both blurred ellipses.
   Figma BACKGROUND_BLUR 40 / NOISE(monotone white, density 1, size 1) are HOLD per
   CODING-RULES: this Chromium target cannot reproduce those effects safely. */
.s06-reasons__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(255, 255, 255, 0.5);
  pointer-events: none;
}

/* Exact masked-group export 165:204 (includes image fill opacity .2 and rotation/crop). */
.s06-reasons__bottom-texture {
  position: absolute;
  left: calc(50% - 68.3rem);
  top: 88.4rem;
  z-index: 2;
  width: 136.6rem;
  height: 37.6rem;
  background: url("/assets/img/s06/bottom-texture-pc.webp") no-repeat 0 0 / 100% 100%;
  pointer-events: none;
}

.s06-reasons__section-heading {
  position: absolute;
  left: calc(50% - 26.65rem);
  top: 20.9rem;
  z-index: 3;
  width: 53.3rem;
  height: 7.5rem;
}

.s06-reasons__section-title {
  width: 53.3rem;
  height: 5.8rem;
  margin: 0;
  color: #9b889e;
  font-size: 4rem;
  font-weight: 500;
  line-height: 5.792rem;
  letter-spacing: 0.4rem;
  white-space: nowrap;
}

.s06-reasons__section-mark {
  position: absolute;
  left: 11.85rem;
  top: 5.8rem;
  display: block;
  width: 29.6rem;
  height: 1.7rem;
  background: url("/assets/img/s06/heading-mark-pc.webp") no-repeat 0 0 / 100% 100%;
}

.s06-reasons__list {
  position: absolute;
  left: calc(50% - 58.3rem);
  top: 34.7rem;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  width: 116.6rem;
  height: 84rem;
}

.s06-reasons__card {
  position: relative;
  display: flex;
  flex: none;
  align-items: center;
  gap: 6rem;
  width: 116.6rem;
  height: 26.4rem;
  overflow: hidden;
  border: 0.1rem solid #bcb5ab;
  border-radius: 1.6rem;
  background: #ffffff;
}

/* 165:211 alone has the semitransparent #796a56 stroke. */
.s06-reasons__card--01 { border-color: rgba(121, 106, 86, 0.5); }

.s06-reasons__photo {
  display: block;
  flex: none;
  width: 38.9rem;
  height: 26.2rem;
}

.s06-reasons__photo img {
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: fill;
}

.s06-reasons__content {
  display: flex;
  flex: none;
  flex-direction: column;
  gap: 1rem;
}

.s06-reasons__card--01 .s06-reasons__content { width: 63.2rem; height: 16.7rem; }
.s06-reasons__card--02 .s06-reasons__content { width: 50.9rem; height: 16.7rem; }
.s06-reasons__card--03 .s06-reasons__content { width: 68.5rem; height: 13.8rem; }

.s06-reasons__title-row {
  display: flex;
  flex: none;
  align-items: center;
  gap: 2.4rem;
  height: 7rem;
}

.s06-reasons__card--01 .s06-reasons__title-row { width: 47.6rem; }
.s06-reasons__card--02 .s06-reasons__title-row,
.s06-reasons__card--03 .s06-reasons__title-row { width: 34.6rem; }

.s06-reasons__number {
  position: relative;
  flex: none;
  width: 6rem;
  height: 7rem;
}

.s06-reasons__card--01 .s06-reasons__number { width: 5.8rem; }

.s06-reasons__number-text {
  display: block;
  width: 100%;
  height: 7rem;
  color: #b8a2c1;
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 6.9504rem;
  letter-spacing: 0;
  white-space: nowrap;
}

.s06-reasons__number-rule {
  position: absolute;
  left: 0;
  top: 6.45rem;
  display: block;
  width: 6rem;
  max-width: none;
  height: 0.7071rem;
}

.s06-reasons__card--01 .s06-reasons__number-rule {
  top: 6.25rem;
  width: 5.8rem;
}

.s06-reasons__card--03 .s06-reasons__number-rule { top: 6.5rem; }
.s06-reasons__number-tab { display: none; }

.s06-reasons__card-title {
  flex: none;
  height: 5.8rem;
  margin: 0;
  color: #796a56;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.896rem;
  letter-spacing: 0.2rem;
  white-space: nowrap;
}

.s06-reasons__card--01 .s06-reasons__card-title { width: 39.4rem; }
.s06-reasons__card--02 .s06-reasons__card-title,
.s06-reasons__card--03 .s06-reasons__card-title { width: 26.2rem; }

.s06-reasons__title-line--block { display: block; }

.s06-reasons__body {
  flex: none;
  margin: 0;
  color: #796a56;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.88rem;
  letter-spacing: 0.16rem;
  white-space: nowrap;
}

.s06-reasons__card--01 .s06-reasons__body { width: 63.2rem; height: 8.7rem; }
.s06-reasons__card--02 .s06-reasons__body { width: 50.9rem; height: 8.7rem; }
.s06-reasons__card--03 .s06-reasons__body { width: 68.5rem; height: 5.8rem; }

.s06-reasons__br { display: block; }
.s06-reasons__br--sp { display: none; }

@media (max-width: 767px) {
  .s06-reasons {
    height: 183.1012939453125rem;
  }

  .s06-reasons__orb--violet {
    left: calc(50% - 18.75rem);
    top: 25.2rem;
    width: 13.6rem;
    height: 13.6rem;
  }

  .s06-reasons__orb--yellow {
    left: calc(50% - 0.95rem);
    top: 119.6rem;
    width: 19.7rem;
    height: 19.7rem;
  }

  .s06-reasons__veil { height: 185.5rem; }

  /* Independent SP mask export 165:615; no reuse/scaling of the PC crop. */
  .s06-reasons__bottom-texture {
    left: calc(50% - 18.75rem);
    top: 173.03896484375rem;
    width: 37.5rem;
    height: 10.322108459472656rem;
    background-image: url("/assets/img/s06/bottom-texture-sp.webp");
  }

  .s06-reasons__section-heading {
    left: calc(50% - 12.15rem);
    top: 18.5rem;
    width: 24.4rem;
    height: 11.8rem;
  }

  .s06-reasons__section-title {
    width: 24.3rem;
    height: 10.4rem;
    font-size: 3.6rem;
    line-height: 5.212799835205078rem;
    letter-spacing: 0.36rem;
  }

  .s06-reasons__section-title span { display: block; }

  .s06-reasons__section-mark {
    left: 0;
    top: 10.4rem;
    width: 24.4rem;
    height: 1.4rem;
    background-image: url("/assets/img/s06/heading-mark-sp.webp");
  }

  .s06-reasons__list {
    left: calc(50% - 17.15rem);
    top: 32.9rem;
    width: 34.3rem;
    height: 142.2012939453125rem;
  }

  .s06-reasons__card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 34.3rem;
    border-color: #bcb5ab;
  }

  .s06-reasons__card--01 { height: 48.567095947265625rem; }
  .s06-reasons__card--02 { height: 43.167095947265625rem; }
  .s06-reasons__card--03 { height: 45.667095947265625rem; }

  .s06-reasons__photo {
    width: 34.1rem;
    height: 22.96709442138672rem;
  }

  .s06-reasons__content {
    flex: none;
    width: 34.1rem !important;
    padding: 1.6rem;
  }

  .s06-reasons__card--01 .s06-reasons__content { height: 25.4rem; }
  .s06-reasons__card--02 .s06-reasons__content { height: 20rem; }
  .s06-reasons__card--03 .s06-reasons__content { height: 22.5rem; }

  .s06-reasons__title-row {
    display: block;
    height: auto;
  }

  .s06-reasons__card--01 .s06-reasons__title-row { width: 24rem; height: 8.7rem; }
  .s06-reasons__card--02 .s06-reasons__title-row,
  .s06-reasons__card--03 .s06-reasons__title-row { width: 26.2rem; height: 5.8rem; }

  .s06-reasons__number {
    position: absolute;
    left: 1.6rem;
    top: -0.1rem;
    z-index: 4;
    width: 7.4rem !important;
    height: 10.2rem;
  }

  .s06-reasons__number-tab {
    position: absolute;
    inset: 0;
    display: block;
    width: 7.4rem;
    max-width: none;
    height: 10.2rem;
  }

  .s06-reasons__number-text {
    position: absolute;
    left: 0.8rem;
    top: 2.7rem;
    z-index: 1;
    width: 6rem;
    height: 3.5rem;
  }

  .s06-reasons__card--01 .s06-reasons__number-text { width: 5.8rem; }
  .s06-reasons__number-rule { display: none; }

  .s06-reasons__card-title {
    width: 26.2rem !important;
    height: 5.8rem;
  }

  .s06-reasons__card--01 .s06-reasons__card-title {
    width: 24rem !important;
    height: 8.7rem;
  }

  .s06-reasons__title-line--third { display: block; }

  .s06-reasons__body {
    width: 30.9rem !important;
    font-size: 1.4rem;
    line-height: 2.519999885559082rem;
    letter-spacing: 0.14rem;
    white-space: normal;
  }

  .s06-reasons__card--01 .s06-reasons__body { height: 12.5rem; }
  .s06-reasons__card--02 .s06-reasons__body { height: 10rem; }
  .s06-reasons__card--03 .s06-reasons__body { height: 12.5rem; }

  .s06-reasons__br--pc { display: none; }
  .s06-reasons__br--sp { display: block; }
}

/* ==== s07.css ==== */
/* --------------------------------------------- S07 teachers (PC 165:254 / SP 165:662) */
.s07-teachers {
  position: relative;
  height: 114.2rem;
  overflow: hidden;
  isolation: isolate;
  background: #f4f3ee;
}

.s07-teachers__veil,
.s07-teachers__gradient {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* 165:255: white 50%. BACKGROUND_BLUR 40 and white NOISE are HOLD per CODING-RULES. */
.s07-teachers__veil {
  z-index: 0;
  background: rgba(255, 255, 255, 0.5);
}

/* 165:256: #b8a2c1, layer opacity .4, solid through handle y=.7683 then transparent. */
.s07-teachers__gradient {
  z-index: 1;
  border-radius: 8rem 8rem 0 0;
  background: linear-gradient(to bottom, rgba(184, 162, 193, 0.4) 0%, rgba(184, 162, 193, 0.4) 76.83%, rgba(184, 162, 193, 0) 100%);
  /* BACKGROUND_BLUR 40 and white NOISE are HOLD per CODING-RULES. */
}

.s07-teachers__heading {
  position: absolute;
  left: calc(50% - 37.55rem);
  top: 10rem;
  z-index: 2;
  width: 75.1rem;
  height: 7.5rem;
}

.s07-teachers__title {
  width: 75.1rem;
  height: 5.8rem;
  margin: 0;
  color: #9b889e;
  font-size: 4rem;
  font-weight: 700;
  line-height: 5.792rem;
  letter-spacing: 0.44rem;
  text-align: left;
  white-space: nowrap;
}

.s07-teachers__heading-mark {
  position: absolute;
  left: 22.75rem;
  top: 5.8rem;
  width: 29.6rem;
  height: 1.7rem;
  background: url("/assets/img/s07/heading-mark-pc.webp") no-repeat 0 0 / 100% 100%;
}

.s07-teachers__lead {
  position: absolute;
  left: calc(50% - 36.9rem);
  top: 19.8rem;
  z-index: 2;
  width: 73.8rem;
  height: 10.8rem;
  margin: 0;
  color: #796a56;
  font-size: 2rem;
  font-weight: 700;
  line-height: 3.6rem;
  letter-spacing: 0.2rem;
  text-align: center;
  white-space: nowrap;
}

.s07-teachers__lead--sp { display: none; }

.s07-teachers__slider {
  position: absolute;
  left: 50%;
  top: 34.6rem;
  z-index: 2;
  width: 116.6rem;
  height: 53.5rem;
  overflow: hidden;
  outline: none;
  touch-action: pan-y;
  transform: translateX(-50%);
}

.s07-teachers__slider:focus-visible {
  outline: 0.2rem solid #9b889e;
  outline-offset: -0.2rem;
}

.s07-teachers__track {
  position: relative;
  height: 53.5rem;
}

.s07-teachers__card {
  position: relative;
  flex-shrink: 0;
  width: 37.8rem;
  height: 53.5rem;
}

.s07-teachers__card-inner {
  position: relative;
  width: 37.8rem;
  height: 53.5rem;
  overflow: hidden;
  border: 0.1rem solid #bcb5ab;
  border-radius: 0.8rem;
  background: #ffffff;
}

.s07-teachers__photo {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 37.6rem;
  height: 28rem;
  background: #f4f3ee;
}

.s07-teachers__photo img {
  flex: none;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: var(--s07-photo-x, 50%) var(--s07-photo-y, 34%);
}

.s07-teachers__card[data-teacher^="心結"] { --s07-photo-y: 32%; }
.s07-teachers__card[data-teacher^="れいりん"] { --s07-photo-y: 34%; }
.s07-teachers__card[data-teacher^="透真"] { --s07-photo-y: 34%; }
.s07-teachers__card[data-teacher^="凛迦"] { --s07-photo-y: 34%; }
.s07-teachers__card[data-teacher^="美輝"] { --s07-photo-y: 35%; }
.s07-teachers__card[data-teacher^="Maju"] { --s07-photo-x: 52%; --s07-photo-y: 30%; }
.s07-teachers__card[data-teacher^="快龍"] { --s07-photo-y: 32%; }
.s07-teachers__card[data-teacher^="沙蘭"] { --s07-photo-y: 28%; }
.s07-teachers__card[data-teacher^="金刺"] { --s07-photo-x: 48%; --s07-photo-y: 25%; }
.s07-teachers__card[data-teacher^="KIMI"] { --s07-photo-y: 28%; }

.s07-teachers__card-body {
  position: absolute;
  left: 1.6rem;
  top: 29.6rem;
  width: 34.4rem;
  height: 22.1rem;
}

.s07-teachers__info {
  position: absolute;
  inset: 0 0 auto;
}

.s07-teachers__identity {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  width: 34.4rem;
  height: 6.3rem;
}

.s07-teachers__role {
  width: 34.4rem;
  height: 2rem;
  margin: 0;
  color: #796a56;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 2.0272rem;
  letter-spacing: 0.14rem;
  white-space: nowrap;
}

.s07-teachers__name-row {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  height: 3.5rem;
  white-space: nowrap;
}

.s07-teachers__name {
  flex: none;
  height: 3.5rem;
  margin: 0;
  color: #9b889e;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 3.4752rem;
  letter-spacing: 0.24rem;
}

.s07-teachers__tag {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  height: 2.4rem;
  padding: 0.2rem 0.8rem;
  border-radius: 0.4rem;
  background: #b8a2c1;
  color: #ffffff;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 2.0272rem;
  letter-spacing: 0;
  white-space: nowrap;
}

.s07-teachers__summary {
  position: absolute;
  left: 0;
  top: 7.9rem;
  margin: 0;
  color: #796a56;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 2.3168rem;
  letter-spacing: 0.16rem;
  white-space: nowrap;
}

.s07-teachers__detail {
  position: absolute;
  left: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  width: 34.4rem;
  height: 5.7rem;
  padding: 0.8rem 4rem;
  border: 0.6rem solid #efe7c6;
  border-radius: 17.1rem;
  background: #ffffff;
  color: #796a56;
  font-family: inherit;
  font-size: 2rem;
  font-weight: 600;
  line-height: 2.896rem;
  letter-spacing: 0.2rem;
  cursor: pointer;
}

.s07-teachers__detail span { margin-right: -0.2rem; }
.s07-teachers__detail img { flex: none; width: 0.7rem; max-width: none; height: 1.3rem; }
.s07-teachers__detail:focus-visible { outline: 0.3rem solid #9b889e; outline-offset: 0.2rem; }

.s07-teachers__nav {
  position: absolute;
  top: 62.4rem;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6rem;
  height: 6rem;
  padding: 0;
  border: 0.2rem solid #b8a2c1;
  border-radius: 0.8rem;
  background: #ffffff;
  box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.15);
  cursor: pointer;
}

.s07-teachers__nav--prev { left: calc(50% - 65.9rem); }
.s07-teachers__nav--next { right: calc(50% - 65.9rem); top: 62.3rem; box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.16); }

.s07-teachers__nav-icon {
  width: 2.3rem;
  height: 1.5rem;
  background: no-repeat center / 2.3rem 1.5rem;
}
.s07-teachers__nav--prev .s07-teachers__nav-icon { background-image: url("/assets/img/s07/slider-prev.svg"); }
.s07-teachers__nav--next .s07-teachers__nav-icon { background-image: url("/assets/img/s07/slider-next.svg"); }
.s07-teachers__nav:focus-visible { outline: 0.3rem solid #796a56; outline-offset: 0.2rem; }

.s07-teachers__dots {
  position: absolute;
  left: calc(50% - 13.2rem);
  top: 92.1rem;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: 1.6rem;
  width: 26.4rem;
  height: 1.2rem;
}

.s07-teachers__dot {
  display: block;
  flex: none;
  width: 1.2rem;
  height: 1.2rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #ffffff;
  opacity: 1;
}
button.s07-teachers__dot { cursor: pointer; }
.s07-teachers__dot.is-active { background: #b8a2c1; }
.s07-teachers__dot:focus-visible { outline: 0.2rem solid #796a56; outline-offset: 0.2rem; }

/* Exact masked-group exports 165:357 / 165:702, including the .5 image fill. */
.s07-teachers__bottom-texture {
  position: absolute;
  left: calc(50% - 68.1rem);
  top: 87.1rem;
  z-index: 3;
  width: 136.5rem;
  height: 27.1rem;
  background: url("/assets/img/s07/bottom-texture-pc.webp") no-repeat 0 0 / 100% 100%;
  pointer-events: none;
}

/* Modal is a confirmed functional requirement outside the static Figma frame. */
.s07-modal[hidden] { display: none; }
.s07-teachers.is-modal-open { overflow: visible; }
.s07-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: grid;
  place-items: center;
  padding: 2.4rem;
}
.s07-modal__backdrop { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.62); }
.s07-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(68rem, 100%);
  max-height: calc(100dvh - 4.8rem);
  padding: 4rem;
  overflow-y: auto;
  border: 0.1rem solid #bcb5ab;
  border-radius: 1.6rem;
  background: #ffffff;
  color: #796a56;
  box-shadow: 0 1.2rem 3.6rem rgba(59, 51, 43, 0.2);
  outline: none;
}
.s07-modal__close {
  position: absolute;
  right: 1.4rem;
  top: 1rem;
  width: 3.6rem;
  height: 3.6rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #796a56;
  font: 3.2rem/3.6rem sans-serif;
  cursor: pointer;
}
.s07-modal__profile { display: grid; grid-template-columns: 22rem minmax(0, 1fr); gap: 2.4rem; align-items: start; }
.s07-modal__photo { width: 22rem; height: 16.4rem; overflow: hidden; border-radius: 0.8rem; background: #f4f3ee; }
.s07-modal__photo img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 34%; }
.s07-modal__details { min-width: 0; }
.s07-modal__role { margin: 0 0 0.4rem; font-size: 1.4rem; font-weight: 500; line-height: 2.0272rem; letter-spacing: 0.14rem; }
.s07-modal__name { margin: 0 0 1.6rem; color: #9b889e; font-size: 2.4rem; line-height: 3.4752rem; letter-spacing: 0.24rem; }
.s07-modal__metadata { display: grid; gap: 1.2rem; margin: 0; }
.s07-modal__metadata-row { display: grid; grid-template-columns: 10.2rem minmax(0, 1fr); gap: 0.8rem; align-items: start; }
.s07-modal__metadata-row dt { margin: 0; color: #9b889e; font-size: 1.3rem; font-weight: 700; line-height: 2.0272rem; white-space: nowrap; }
.s07-modal__metadata-row dd { margin: 0; font-size: 1.4rem; font-weight: 600; line-height: 2.0272rem; letter-spacing: 0.08rem; }
.s07-modal__tag { display: inline-flex; padding: 0.2rem 0.8rem; border-radius: 0.4rem; background: #b8a2c1; color: #fff; font-size: 1.4rem; font-weight: 700; line-height: 2.0272rem; white-space: nowrap; }
.s07-modal__message-section { margin: 2.4rem 0 2.8rem; padding-top: 2rem; border-top: 0.1rem solid #e3ded7; }
.s07-modal__message-title { margin: 0 0 1.2rem; color: #9b889e; font-size: 1.8rem; line-height: 2.6rem; letter-spacing: 0.18rem; }
.s07-modal__message { margin: 0; font-size: 1.5rem; font-weight: 500; line-height: 2.5rem; letter-spacing: 0.08rem; }
.btn-consult--s07 { display: flex; margin: 0 auto; }
body.s07-modal-lock { overflow: hidden; }

@media (max-width: 767px) {
  .s07-teachers { height: 119.8rem; }

  .s07-teachers__gradient { border-radius: 4rem 4rem 0 0; }

  .s07-teachers__heading {
    left: calc(50% - 13.8rem);
    top: 8rem;
    width: 27.6rem;
    height: 17.1rem;
  }

  .s07-teachers__title {
    width: 27.6rem;
    height: 15.6rem;
    font-size: 3.6rem;
    line-height: 5.212799835205078rem;
    letter-spacing: 0.396rem;
    text-align: center;
    white-space: normal;
  }

  .s07-teachers__title span {
    display: block;
    white-space: nowrap;
  }

  .s07-teachers__heading-mark {
    left: 0.05rem;
    top: 15.6rem;
    width: 27.5rem;
    height: 1.5rem;
    background-image: url("/assets/img/s07/heading-mark-sp.webp");
  }

  .s07-teachers__lead--pc { display: none; }
  .s07-teachers__lead--sp {
    left: calc(50% - 16.65rem);
    top: 27.6rem;
    display: block;
    width: 33.3rem;
    height: 17.4rem;
    font-size: 1.6rem;
    line-height: 2.8799999237060547rem;
    letter-spacing: 0.16rem;
  }

  .s07-teachers__slider {
    left: 50%;
    top: 49rem;
    width: 34.3rem;
    height: 47rem;
  }

  .s07-teachers__track {
    height: 47rem;
  }

  .s07-teachers__card {
    width: 34.3rem;
    height: 47rem;
  }

  .s07-teachers__card-inner {
    width: 31.1rem;
    height: 47rem;
    margin-left: 1.6rem;
    border: 0;
    border-radius: 0.8rem;
  }

  .s07-teachers__photo {
    width: 31.1rem;
    height: 23.2rem;
  }

  .s07-teachers__card-body {
    left: 0;
    top: 23.2rem;
    width: 31.1rem;
    height: 23.8rem;
    padding: 1.6rem;
    background: #ffffff;
  }

  .s07-teachers__info { left: 1.6rem; top: 1.6rem; right: auto; width: 27.9rem; }
  .s07-teachers__identity { width: 27.9rem; height: 5.7rem; }
  .s07-teachers__role { width: 27.9rem; }
  .s07-teachers__name-row { gap: 0.4rem; height: 2.9rem; }
  .s07-teachers__name { height: 2.9rem; font-size: 2rem; line-height: 2.8959999084472656rem; letter-spacing: 0.2rem; }
  .s07-teachers__summary { top: 7.3rem; font-size: 1.4rem; line-height: 2.027199935913086rem; letter-spacing: 0.14rem; }

  .s07-teachers__detail {
    left: 1.6rem;
    bottom: 1.6rem;
    width: 27.9rem;
  }

  .s07-teachers__nav {
    top: 70.3rem;
    width: 3.5rem;
    height: 3.5rem;
  }
  .s07-teachers__nav--prev { left: calc(50% - 17.15rem); }
  .s07-teachers__nav--next { right: calc(50% - 17.25rem); top: 70.3rem; box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.15); }
  .s07-teachers__nav-icon { width: 1.6rem; height: 1.5rem; background-size: 1.6rem 1.5rem; }
  .s07-teachers__nav--prev .s07-teachers__nav-icon { background-image: url("/assets/img/s07/slider-prev-sp.svg"); }
  .s07-teachers__nav--next .s07-teachers__nav-icon { background-image: url("/assets/img/s07/slider-next-sp.svg"); }

  .s07-teachers__dots {
    left: calc(50% - 13.2rem);
    top: 100rem;
  }

  .s07-teachers__bottom-texture {
    left: calc(50% - 18.55rem);
    top: 100.9rem;
    width: 37.3rem;
    height: 7.4rem;
    background-image: url("/assets/img/s07/bottom-texture-sp.webp");
  }

  .s07-modal { padding: 1.6rem; }
  .s07-modal__dialog { max-height: calc(100dvh - 3.2rem); padding: 4.2rem 2rem 2.8rem; }
  .s07-modal__profile { grid-template-columns: 1fr; gap: 1.6rem; }
  .s07-modal__photo { width: 100%; height: 18rem; }
  .s07-modal__name { margin-bottom: 1.2rem; font-size: 2.2rem; line-height: 3.2rem; }
  .s07-modal__metadata-row { grid-template-columns: 9.8rem minmax(0, 1fr); }
  .s07-modal__message-section { margin: 2rem 0 2.4rem; padding-top: 1.6rem; }
  .s07-modal__message-title { font-size: 1.6rem; line-height: 2.3rem; }
  .s07-modal__message { font-size: 1.4rem; line-height: 2.3rem; }
  .s07-modal .btn-consult { width: 22rem; }
}

@media (prefers-reduced-motion: reduce) {
  .s07-teachers__track { transition-duration: 0ms !important; }
}

/* ==== s08.css ==== */
/* ------------------------------------------ S08 overlap CTA (PC 165:401 / SP 165:746) */
/* S07/S09 boundary is y=4574 (SP y=5699.0126953125). The source card crosses it:
   PC top -109 / bottom +109, SP top -106.0126953125 / bottom +104.9873046875.
   Keep S08 at zero flow-height so the future S09 starts at the Figma boundary. */
.page > .s08-cta {
  position: relative;
  z-index: 3;
  height: 0;
  overflow: visible;
}

.s08-cta__card {
  position: absolute;
  left: 50%;
  top: -10.9rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.4rem;
  width: 116.7rem;
  height: 21.8rem;
  margin-left: -58.2rem;
  padding: 2.4rem;
  overflow: hidden;
  border: 0.1rem solid rgba(121, 106, 86, 0.5);
  border-radius: 1.6rem;
  background: #ffffff;
}

.s08-cta__title {
  position: relative;
  z-index: 1;
  width: 71.1rem;
  height: 3.5rem;
  margin: 0;
  color: #9b889e;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 3.4752rem;
  letter-spacing: 0.24rem;
  white-space: nowrap;
}

.s08-cta__title-copy { display: block; }
.s08-cta__title-copy--sp { display: none; }

.s08-cta__actions {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.7rem;
  width: 39rem;
  height: 10.9rem;
}

.s08-cta__note {
  width: 32.8rem;
  height: 2.3rem;
  margin: 0;
  color: #796a56;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.3168rem;
  letter-spacing: 0.24rem;
  white-space: nowrap;
}

.btn-consult--s08 {
  width: 39rem;
  min-height: 7.9rem;
  padding: 1.6rem 4rem;
  border-width: 0.6rem;
  border-radius: 17.1rem;
}

.btn-consult--s08 .btn-consult__label {
  width: 21.8rem;
  margin-right: 0;
}

.s08-cta__decor {
  position: absolute;
  z-index: 2;
  display: block;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  pointer-events: none;
}

/* Exact current Figma REST exports: PC 165:409 / 165:410. */
.s08-cta__decor--left {
  left: 11.1rem;
  top: 6.3rem;
  width: 17.8rem;
  height: 12.9rem;
  background-image: url("/assets/img/s08/decor-left-pc.webp");
}

.s08-cta__decor--right {
  left: 85.9rem;
  top: 5.9rem;
  width: 17.1rem;
  height: 12.1rem;
  background-image: url("/assets/img/s08/decor-right-pc.webp");
}

@media (max-width: 767px) {
  .s08-cta__card {
    top: -10.60126953125rem;
    width: 34.3rem;
    height: 21.1rem;
    margin-left: -17.15rem;
    padding: 2.4rem 1.6rem;
  }

  .s08-cta__title {
    width: 21.8rem;
    height: 5.8rem;
    color: #9b889e;
    font-size: 2rem;
    line-height: 2.8959999084472656rem;
    letter-spacing: 0.2rem;
    text-align: center;
    white-space: nowrap;
  }

  .s08-cta__title-copy--pc { display: none; }
  .s08-cta__title-copy--sp { display: block; }
  .s08-cta__title-copy--sp span { display: block; }

  .s08-cta__actions {
    width: 28.7rem;
    height: 7.9rem;
  }

  .s08-cta__note {
    width: 28.7rem;
    height: 2rem;
    font-size: 1.4rem;
    line-height: 2.027199935913086rem;
    letter-spacing: 0.21rem;
  }

  .btn-consult--s08 {
    gap: 0.8rem;
    width: 25.4rem;
    min-height: 5.2rem;
    padding: 1.2rem 2.4rem;
    border-width: 0.3rem;
    border-radius: 7.5rem;
  }

  .btn-consult--s08 .btn-consult__label { width: 16.4rem; }

  /* SP uses independent current Figma node exports: 165:754 / 165:755. */
  .s08-cta__decor--left {
    left: -0.1rem;
    top: 1.8rem;
    width: 5.8rem;
    height: 4.2rem;
    background-image: url("/assets/img/s08/decor-left-sp.webp");
  }

  .s08-cta__decor--right {
    left: 27.6rem;
    top: 15.4rem;
    width: 6.642129516601562rem;
    height: 4.699986267089844rem;
    background-image: url("/assets/img/s08/decor-right-sp.webp");
  }
}

/* ==== s09.css ==== */
/* ---------------------------------------- S09 consultation flow (PC 165:360 / SP 165:705) */
.s09-flow {
  position: relative;
  height: 126.7rem;
  overflow: hidden;
  isolation: isolate;
  background: #f4f3ee;
}

.s09-flow__glow,
.s09-flow__veil,
.s09-flow__bottom-texture {
  position: absolute;
  display: block;
  pointer-events: none;
}

/* Figma LAYER_BLUR radii 180 / 200; CODING-RULES maps these to CSS blur(R/2). */
.s09-flow__glow { z-index: 0; border-radius: 50%; }
.s09-flow__glow--purple {
  left: calc(50% - 66.7rem);
  top: 42.5rem;
  width: 23.6rem;
  height: 23.6rem;
  background: #d2a7fe;
  filter: blur(9rem);
}
.s09-flow__glow--yellow {
  left: calc(50% + 35.2rem);
  top: 22.1rem;
  width: 23.2rem;
  height: 23.2rem;
  background: #fff2b3;
  filter: blur(10rem);
}

/* 165:363: white fill .5. BACKGROUND_BLUR 40 and NOISE are HOLD per CODING-RULES. */
.s09-flow__veil {
  inset: 0;
  z-index: 1;
  background: rgba(255, 255, 255, 0.5);
}

.s09-flow__bottom-texture {
  left: calc(50% - 68.3rem);
  top: 94.5rem;
  z-index: 2;
  width: 136.6rem;
  height: 26.2rem;
  background: url("/assets/img/s09/bottom-texture-pc.webp") no-repeat 0 0 / 100% 100%;
}

.s09-flow__content {
  position: absolute;
  left: calc(50% - 58.3rem);
  top: 20.9rem;
  z-index: 3;
  width: 116.6rem;
  height: 95.8rem;
}

.s09-flow__heading {
  position: absolute;
  left: 32.1rem;
  top: 0;
  width: 52.4rem;
  height: 7.5rem;
}

.s09-flow__title {
  width: 52.4rem;
  height: 5.8rem;
  margin: 0;
  color: #9b889e;
  font-size: 4rem;
  font-weight: 500;
  line-height: 5.792rem;
  letter-spacing: 0.4rem;
  text-align: left;
  white-space: nowrap;
}
.s09-flow__title span { display: inline; }

.s09-flow__heading-mark {
  position: absolute;
  left: 11.85rem;
  top: 5.8rem;
  width: 29.6rem;
  height: 1.7rem;
  background: url("/assets/img/s09/heading-mark.webp") no-repeat 0 0 / 100% 100%;
}

.s09-flow__steps {
  position: absolute;
  left: 0;
  top: 13.8rem;
  width: 116.6rem;
  height: 82rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.s09-flow__step {
  position: absolute;
  left: 18.3rem;
  width: 80rem;
  height: 16rem;
  border: 0.1rem solid #bcb5ab;
  border-radius: 29.6rem;
  background: #ffffff;
}
.s09-flow__step--01 { top: 0; }
.s09-flow__step--02 { top: 22rem; }
.s09-flow__step--03 { top: 44rem; }
.s09-flow__step--04 { top: 66rem; }

.s09-flow__connector {
  position: absolute;
  left: 39.9rem;
  top: 15.9rem;
  width: 0.2rem;
  height: 6rem;
  background: #bcb5ab;
}

.s09-flow__icon {
  position: absolute;
  left: 5rem;
  top: 2.4rem;
  width: 11rem;
  max-width: none;
  height: 11rem;
}

.s09-flow__copy {
  position: absolute;
  left: 20rem;
  top: 4.2rem;
  height: 7.4rem;
}
.s09-flow__step--01 .s09-flow__copy { width: 26.3rem; }
.s09-flow__step--02 .s09-flow__copy { width: 44.7rem; }
.s09-flow__step--03 .s09-flow__copy { width: 36.5rem; }
.s09-flow__step--04 .s09-flow__copy { top: 3.35rem; width: 26.3rem; height: 9.1rem; }

.s09-flow__step-title {
  height: 3.5rem;
  margin: 0;
  color: #9b889e;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 3.4752rem;
  letter-spacing: 0.24rem;
  white-space: nowrap;
}
.s09-flow__step-title span { display: inline; }
.s09-flow__step--01 .s09-flow__step-title,
.s09-flow__step--04 .s09-flow__step-title { width: 23.6rem; }
.s09-flow__step--02 .s09-flow__step-title { width: 44.7rem; }
.s09-flow__step--03 .s09-flow__step-title { width: 36.5rem; }

.s09-flow__description {
  margin: 1.6rem 0 0;
  color: #796a56;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 2.3168rem;
  letter-spacing: 0.16rem;
  white-space: nowrap;
}
.s09-flow__step--01 .s09-flow__description,
.s09-flow__step--04 .s09-flow__description { width: 26.3rem; }
.s09-flow__step--02 .s09-flow__description,
.s09-flow__step--03 .s09-flow__description { width: 21rem; }
.s09-flow__step--04 .s09-flow__description { margin-top: 1rem; }

.s09-flow__number {
  position: absolute;
  left: 0.6rem;
  top: -3.1rem;
  z-index: 1;
  height: 5.8rem;
  color: #b8a2c1;
  font-size: 4rem;
  font-weight: 600;
  line-height: 5.792rem;
  letter-spacing: 0.4rem;
  white-space: nowrap;
}
.s09-flow__step--01 .s09-flow__number { left: 0.7rem; width: 19.4rem; }
.s09-flow__step--02 .s09-flow__number { width: 19.6rem; }
.s09-flow__step--03 .s09-flow__number { left: 0.5rem; width: 19.6rem; }
.s09-flow__step--04 .s09-flow__number { top: -3rem; width: 19.6rem; }

@media (max-width: 767px) {
  .s09-flow { height: 171.6rem; }

  .s09-flow__glow--purple {
    left: calc(50% - 18.75rem);
    top: 120.8rem;
    width: 17.1rem;
    height: 17.1rem;
  }
  .s09-flow__glow--yellow {
    left: calc(50% + 4.45rem);
    top: 14.5rem;
    width: 14.3rem;
    height: 14.3rem;
  }

  .s09-flow__bottom-texture {
    left: calc(50% - 18.75rem);
    top: 159.5rem;
    width: 37.5rem;
    height: 7.192533111572266rem;
    background-image: url("/assets/img/s09/bottom-texture-sp.webp");
  }

  .s09-flow__content {
    left: calc(50% - 17.15rem);
    top: 18.5rem;
    width: 34.3rem;
    height: 145.1rem;
  }

  .s09-flow__heading {
    left: 3.45rem;
    width: 27.4rem;
    height: 12.1rem;
  }

  .s09-flow__title {
    width: 27.4rem;
    height: 10.4rem;
    font-size: 3.6rem;
    line-height: 5.212799835205078rem;
    letter-spacing: 0.36rem;
    text-align: center;
    white-space: normal;
  }
  .s09-flow__title span { display: block; white-space: nowrap; }

  .s09-flow__heading-mark {
    left: -1.05rem;
    top: 10.4rem;
  }

  .s09-flow__steps {
    top: 18.4rem;
    width: 34.3rem;
    height: 126.7rem;
  }

  .s09-flow__step {
    left: 0;
    width: 34.3rem;
    border-radius: 1.6rem;
  }
  .s09-flow__step--01 { top: 0; height: 25rem; }
  .s09-flow__step--02 { top: 31rem; height: 28.5rem; }
  .s09-flow__step--03 { top: 65.5rem; height: 28.5rem; }
  .s09-flow__step--04 { top: 100rem; height: 26.7rem; }

  .s09-flow__connector {
    left: 17.1rem;
    top: calc(100% - 0.1rem);
  }

  .s09-flow__icon {
    left: 11.55rem;
    top: 2.4rem;
  }

  .s09-flow__copy {
    top: 15rem;
    height: 7.4rem;
  }
  .s09-flow__step--01 .s09-flow__copy { left: 3.9rem; }
  .s09-flow__step--02 .s09-flow__copy { left: 3.95rem; width: 26.2rem; height: 10.9rem; }
  .s09-flow__step--03 .s09-flow__copy { left: 6.55rem; width: 21rem; height: 10.9rem; }
  .s09-flow__step--04 .s09-flow__copy { left: 3.9rem; top: 15rem; width: 26.3rem; height: 9.1rem; }

  .s09-flow__step-title { height: auto; }
  .s09-flow__step-title span { display: block; white-space: nowrap; }
  .s09-flow__step--02 .s09-flow__step-title { width: 26.2rem; }
  .s09-flow__step--03 .s09-flow__step-title { width: 20.9rem; }

  .s09-flow__number {
    left: 0;
    top: -3.7rem;
    height: 4.6rem;
    font-size: 3.2rem;
    line-height: 4.633599853515625rem;
    letter-spacing: 0.32rem;
  }
  .s09-flow__step--01 .s09-flow__number { left: 0; width: 15.6rem; }
  .s09-flow__step--02 .s09-flow__number { left: -0.1rem; width: 15.7rem; }
  .s09-flow__step--03 .s09-flow__number { left: -0.2rem; width: 15.7rem; }
  .s09-flow__step--04 .s09-flow__number { left: 0; top: -3.7rem; width: 15.7rem; }
}

/* ==== s10.css ==== */
/* ---------------------------------------- S10 consultation fees (PC 165:414 / SP 165:759) */
.s10-fees {
  position: relative;
  height: 64.7rem;
  overflow: hidden;
  isolation: isolate;
  background: #f4f3ee;
}

.s10-fees__glow,
.s10-fees__veil {
  position: absolute;
  display: block;
  pointer-events: none;
}

/* Figma LAYER_BLUR radii 180 / 200; CODING-RULES maps these to CSS blur(R/2). */
.s10-fees__glow { z-index: 0; border-radius: 50%; }
.s10-fees__glow--purple {
  left: calc(50% + 43.6rem);
  top: 10.8rem;
  width: 21rem;
  height: 21rem;
  background: #d2a7fe;
  filter: blur(9rem);
}
.s10-fees__glow--yellow {
  left: calc(50% - 63.9rem);
  top: 23.8rem;
  width: 19.7rem;
  height: 19.7rem;
  background: #fff2b3;
  filter: blur(10rem);
}

/* 165:417: white fill .5. BACKGROUND_BLUR 40 and NOISE are HOLD per CODING-RULES. */
.s10-fees__veil {
  inset: 0;
  z-index: 1;
  background: rgba(255, 255, 255, 0.5);
}

.s10-fees__content {
  position: absolute;
  left: calc(50% - 53.3rem);
  top: 0;
  z-index: 2;
  width: 106.6rem;
  height: 54.7rem;
}

.s10-fees__heading {
  position: absolute;
  left: 42.5rem;
  top: 0;
  width: 21.6rem;
  height: 7.5rem;
}
.s10-fees__title {
  width: 21.6rem;
  height: 5.8rem;
  margin: 0;
  color: #9b889e;
  font-size: 4rem;
  font-weight: 500;
  line-height: 5.792rem;
  letter-spacing: 0.4rem;
  text-align: left;
  white-space: nowrap;
}
.s10-fees__heading-mark {
  position: absolute;
  left: -4rem;
  top: 5.8rem;
  width: 29.6rem;
  height: 1.7rem;
  background: url("/assets/img/s10/heading-mark-pc.webp") no-repeat 0 0 / 100% 100%;
}

.s10-fees__card {
  position: absolute;
  left: 0;
  top: 9.8rem;
  width: 106.6rem;
  height: 44.9rem;
  border: 0.1rem solid rgba(121, 106, 86, 0.5);
  border-radius: 1.6rem;
  background: #fdf9f6;
}
.s10-fees__main {
  position: absolute;
  left: 10rem;
  top: 5rem;
  width: 86.4rem;
  height: 34.7rem;
}

.s10-fees__lead {
  position: absolute;
  left: 0;
  top: 0;
  width: 30.3rem;
  height: 5.8rem;
}
.s10-fees__first-icon {
  position: absolute;
  left: 0;
  top: 0;
  width: 5.5rem;
  max-width: none;
  height: 5.8rem;
}
.s10-fees__lead-title {
  position: absolute;
  left: 7.1rem;
  top: 0;
  width: 23.2rem;
  height: 5.8rem;
  margin: 0;
  color: #796a56;
  font-size: 4rem;
  font-weight: 500;
  line-height: 5.792rem;
  letter-spacing: 0.8rem;
  white-space: nowrap;
}

.s10-fees__price-area {
  position: absolute;
  left: 0;
  top: 9.8rem;
  width: 69.9rem;
  height: 24.9rem;
}
.s10-fees__price-row {
  position: absolute;
  left: 0;
  top: 0;
  width: 69.9rem;
  height: 14rem;
}
.s10-fees__duration {
  position: absolute;
  left: 0;
  top: 0;
  width: 14rem;
  height: 14rem;
  border: 0.1rem solid #b8a2c1;
  border-radius: 15.6rem;
}
.s10-fees__duration span {
  position: absolute;
  left: 1.5rem;
  top: 3.4rem;
  width: 10.8rem;
  height: 7rem;
  color: #b8a2c1;
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 6.9504rem;
  letter-spacing: 0;
  white-space: nowrap;
}
.s10-fees__price {
  position: absolute;
  left: 17.2rem;
  top: 1.45rem;
  width: 52.7rem;
  height: 11.1rem;
}
.s10-fees__amount {
  position: absolute;
  left: 0;
  top: 0;
  width: 43rem;
  height: 11.1rem;
  color: #c07b82;
  font-size: 15rem;
  font-weight: 700;
  line-height: 19.5rem;
  letter-spacing: 0.75rem;
  white-space: nowrap;
}
.s10-fees__price-tail {
  position: absolute;
  left: 44rem;
  top: 3.8rem;
  width: 8.7rem;
  height: 7.3rem;
}
.s10-fees__tax,
.s10-fees__yen {
  position: absolute;
  left: 0;
  white-space: nowrap;
}
.s10-fees__tax {
  top: 0;
  width: 7.4rem;
  height: 1.8rem;
  color: #bcb5ab;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 3.4752rem;
  letter-spacing: 0.24rem;
}
.s10-fees__yen {
  top: 3.8rem;
  width: 8.7rem;
  height: 3.5rem;
  color: #c07b82;
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 6.9504rem;
  letter-spacing: 0.48rem;
}
.s10-fees__amount-ink,
.s10-fees__tax-ink,
.s10-fees__yen-ink {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  white-space: nowrap;
}
.s10-fees__amount-ink { transform: translateY(-5.25rem); }
.s10-fees__tax-ink { transform: translateY(-0.95rem); }
.s10-fees__yen-ink { transform: translateY(-2.05rem); }

.s10-fees__price-underline {
  position: absolute;
  left: 0;
  top: 15rem;
  width: 69.9rem;
  height: 4.3rem;
  background: url("/assets/img/s10/price-underline-pc.webp") no-repeat 0 0 / 100% 100%;
}
.s10-fees__note {
  position: absolute;
  left: 13.95rem;
  top: 22rem;
  width: 42rem;
  height: 2.9rem;
  margin: 0;
}
.s10-fees__note-mark,
.s10-fees__note-copy {
  position: absolute;
  color: #796a56;
  font-weight: 500;
  white-space: nowrap;
}
.s10-fees__note-mark {
  left: 0;
  top: 0.3rem;
  width: 1.6rem;
  height: 2.3rem;
  font-size: 1.6rem;
  line-height: 2.3168rem;
  letter-spacing: 0.16rem;
}
.s10-fees__note-copy {
  left: 2.6rem;
  top: 0;
  width: 39.4rem;
  height: 2.9rem;
  font-size: 2rem;
  line-height: 2.896rem;
  letter-spacing: 0.2rem;
}

.s10-fees__corner-botanical,
.s10-fees__photo-collage,
.s10-fees__bottom-botanical,
.s10-fees__photo-collage-sp {
  position: absolute;
  max-width: none;
  pointer-events: none;
}
.s10-fees__corner-botanical.s10-fees__pc-only {
  left: -5.7rem;
  top: 1.3rem;
  width: 21.19rem;
  height: 18.17rem;
}
.s10-fees__photo-collage {
  left: 82.1rem;
  top: 22rem;
  width: 34.4534rem;
  height: 34.7016rem;
}
.s10-fees__sp-only { display: none; }

@media (max-width: 767px) {
  .s10-fees { height: 49rem; }

  .s10-fees__glow--purple {
    left: calc(50% - 0.75rem);
    top: 39rem;
    width: 11.4rem;
    height: 11.4rem;
  }
  .s10-fees__glow--yellow {
    left: calc(50% - 18.75rem);
    top: 37.3rem;
    width: 13.7rem;
    height: 13.7rem;
  }

  .s10-fees__content {
    left: calc(50% - 17.15rem);
    width: 34.3rem;
    height: 41rem;
  }

  .s10-fees__heading {
    left: 7.4rem;
    width: 19.5rem;
    height: 6.4rem;
  }
  .s10-fees__title {
    width: 19.5rem;
    height: 5.2rem;
    font-size: 3.6rem;
    line-height: 5.212799835205078rem;
    letter-spacing: 0.36rem;
  }
  .s10-fees__heading-mark {
    left: -0.7rem;
    top: 5.2rem;
    width: 21rem;
    height: 1.2rem;
    background-image: url("/assets/img/s10/heading-mark-sp.webp");
  }

  .s10-fees__card {
    top: 9.2rem;
    width: 34.3rem;
    height: 31.8rem;
  }
  .s10-fees__main {
    left: 1.6rem;
    top: 5rem;
    width: 30.9rem;
    height: 21.6rem;
  }

  .s10-fees__lead {
    left: 1.85rem;
    width: 27.2rem;
  }
  .s10-fees__first-icon { background: none; }
  .s10-fees__lead-title {
    left: 6.3rem;
    top: 0.3rem;
    width: 20.9rem;
    height: 5.2rem;
    font-size: 3.6rem;
    line-height: 5.212799835205078rem;
    letter-spacing: 0.72rem;
  }

  .s10-fees__price-area {
    top: 9.8rem;
    width: 30.9rem;
    height: 11.8rem;
  }
  .s10-fees__price-row {
    width: 30.9rem;
    height: 5.5rem;
  }
  .s10-fees__duration {
    left: 0.7rem;
    width: 5.5rem;
    height: 5.5rem;
  }
  .s10-fees__duration span {
    left: 0.4rem;
    top: 1.2rem;
    width: 4.5rem;
    height: 2.9rem;
    font-size: 2rem;
    line-height: 2.8959999084472656rem;
  }
  .s10-fees__price {
    left: 7rem;
    top: 0.4rem;
    width: 23.2rem;
    height: 4.7rem;
  }
  .s10-fees__amount {
    width: 18.4rem;
    height: 4.7rem;
    font-size: 6.4rem;
    line-height: 8.319999694824219rem;
    letter-spacing: 0.32rem;
  }
  .s10-fees__price-tail {
    left: 18.8rem;
    top: 1.1rem;
    width: 4.4rem;
    height: 3.6rem;
  }
  .s10-fees__tax {
    width: 4.4rem;
    height: 1rem;
    font-size: 1.4rem;
    line-height: 2.027199935913086rem;
    letter-spacing: 0.14000000000000001rem;
  }
  .s10-fees__yen {
    top: 1.8rem;
    width: 4.4rem;
    height: 1.8rem;
    font-size: 2.4rem;
    line-height: 3.475199890136719rem;
    letter-spacing: 0.24000000000000004rem;
  }
  .s10-fees__amount-ink { transform: translateY(-2.15rem); }
  .s10-fees__tax-ink { transform: translateY(-0.65rem); }
  .s10-fees__yen-ink { transform: translateY(-0.9rem); }

  .s10-fees__price-underline {
    left: 0.1rem;
    top: 6.5rem;
    width: 30.8rem;
    height: 1.9rem;
    background-image: url("/assets/img/s10/price-underline-sp.webp");
  }
  .s10-fees__note {
    left: 0.6rem;
    top: 9.5rem;
    width: 29.7rem;
    height: 2.3rem;
  }
  .s10-fees__note-mark { top: 0; }
  .s10-fees__note-copy {
    left: 2.1rem;
    top: 0.15rem;
    width: 27.6rem;
    height: 2rem;
    font-size: 1.4rem;
    line-height: 2.027199935913086rem;
    letter-spacing: 0.14000000000000001rem;
  }

  .s10-fees__pc-only { display: none; }
  .s10-fees__sp-only { display: block; }
  .s10-fees__corner-botanical.s10-fees__sp-only {
    left: -2.4rem;
    top: 6.6rem;
    width: 9.576rem;
    height: 8.199rem;
  }
  .s10-fees__bottom-botanical {
    left: 23.9rem;
    top: 33.7rem;
    width: 11.189rem;
    height: 10.658rem;
  }
  .s10-fees__photo-collage-sp {
    left: calc(50% - 17.15rem);
    top: 36.3rem;
    z-index: 3;
    width: 11.6rem;
    height: 9.98906478881836rem;
  }
}

/* ==== s11.css ==== */
/* --------------------------------------------- S11 closing CTA (PC 165:446 / SP 165:791) */
.s11-closing {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4rem;
  padding: 10rem;
  overflow: hidden;
  background: #f4f3ee;
}

/* 165:447: #b8a2c1 layer opacity .4 + 白NOISE(monotone, density 1, size 1)。
   s04と同じく正本レンダラで焼き込んだPNGを重ねる。BACKGROUND_BLUR 40 は
   背面が単色 #f4f3ee のため視覚効果なし（s04と同判断）。 */
.s11-closing__wash {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url("/assets/img/s11/wash-pc.webp") no-repeat 0 0 / 136.6rem 56.5rem;
  pointer-events: none;
}

/* 165:448 Mask group: image 8 (fill opacity .5) を (1,251) 1365x271 でマスク。
   マスク結果をFigmaノード書き出しPNGで配置（文字を含まないマスク）。 */
.s11-closing__band {
  position: absolute;
  left: 0.1rem;
  top: 25.1rem;
  z-index: 0;
  width: 136.5rem;
  height: 27.1rem;
  background: url("/assets/img/s11/band-pc.webp") no-repeat 0 0 / 136.5rem 27.1rem;
  pointer-events: none;
}

.s11-closing__photo {
  position: absolute;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  pointer-events: none;
}

/* 165:451 image 27 */
.s11-closing__photo--left {
  left: 2.7rem;
  top: 5.1rem;
  z-index: 0;
  width: 25.2rem;
  height: 18.4rem;
  background-image: url("/assets/img/s11/photo-left.webp");
}

/* 165:459 image 28 — Figma draw orderで最上位（copy/CTAより後に描画） */
.s11-closing__photo--right {
  left: 105.9rem;
  top: 20.4rem;
  z-index: 2;
  width: 18.6rem;
  height: 18.2rem;
  background-image: url("/assets/img/s11/photo-right.webp");
}

/* 165:452: Shippori Mincho 20/36 ls3.6 #796a56, 6行（ /\n改行が正本） */
.s11-closing__copy {
  position: relative;
  z-index: 1;
  width: 75.2rem;
  margin: 0;
  /* 中央寄せ行はletter-spacingの行末アキで ls/2 左へズレるため、
     padding-left: ls でインク中心をFigmaへ合わせる */
  padding-left: 0.36rem;
  color: #796a56;
  font-size: 2rem;
  font-weight: 700;
  line-height: 3.6rem;
  letter-spacing: 0.36rem;
  text-align: center;
  white-space: nowrap;
}

.s11-closing__copy-text { display: block; }
.s11-closing__copy-text--sp { display: none; }

/* 165:453 Frame 31 */
.s11-closing__actions {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.7rem;
  width: 39rem;
}

/* 165:454 */
.s11-closing__note {
  width: 32.8rem;
  height: 2.3rem;
  margin: 0;
  color: #796a56;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.3168rem;
  letter-spacing: 0.24rem;
  white-space: nowrap;
}

/* 165:455 Frame 2: 390x79 pad16/40 radius171 stroke6 #efe7c6 */
.btn-consult--s11 {
  width: 39rem;
  min-height: 7.9rem;
  padding: 1.6rem 4rem;
  border-width: 0.6rem;
  border-radius: 17.1rem;
}

.btn-consult--s11 .btn-consult__label {
  width: 21.8rem;
  margin-right: 0;
}

@media (max-width: 767px) {
  .s11-closing {
    padding: 8rem 1.6rem;
  }

  /* 165:792 */
  .s11-closing__wash {
    background: url("/assets/img/s11/wash-sp.webp") no-repeat 0 0 / 37.5rem 56.9rem;
  }

  /* 165:793: (1,437) 374x74.25 */
  .s11-closing__band {
    left: 0.1rem;
    top: 43.7rem;
    width: 37.4rem;
    height: 7.425rem;
    background: url("/assets/img/s11/band-sp.webp") no-repeat 0 0 / 37.4rem 7.425rem;
  }

  /* 165:796 */
  .s11-closing__photo--left {
    left: 0.6rem;
    top: 1.1rem;
    width: 9.5rem;
    height: 6.9rem;
  }

  /* 165:798 */
  .s11-closing__photo--right {
    left: 27.7rem;
    top: 32.6rem;
    width: 8.6rem;
    height: 8.4rem;
  }

  /* 165:797: 16/28.8 ls0.8, 10行。Figma箱高290(=10行288+スラック2)をmin-heightで再現 */
  .s11-closing__copy {
    width: 31.9rem;
    min-height: 29rem;
    padding-left: 0.08rem;
    font-size: 1.6rem;
    line-height: 2.8799999237060547rem;
    letter-spacing: 0.08rem;
  }

  .s11-closing__copy-text--pc { display: none; }
  .s11-closing__copy-text--sp { display: block; }

  /* 165:799 Frame 32 */
  .s11-closing__actions {
    width: 28.7rem;
  }

  /* 165:800 */
  .s11-closing__note {
    width: 28.7rem;
    height: 2rem;
    font-size: 1.4rem;
    line-height: 2.027199935913086rem;
    letter-spacing: 0.21rem;
  }

  /* 165:801 Frame 2: 254x52 pad12/24 radius75 stroke3 */
  .btn-consult--s11 {
    gap: 0.8rem;
    width: 25.4rem;
    min-height: 5.2rem;
    padding: 1.2rem 2.4rem;
    border-width: 0.3rem;
    border-radius: 7.5rem;
  }

  .btn-consult--s11 .btn-consult__label {
    width: 16.4rem;
    margin-right: 0;
  }
}

/* ==== s12.css ==== */
/* ----------------------------------------------- S12 footer (165:460) */
/* PC 1366x92 / SP 375x90。どちらもauto layoutなので固定高は書かず、
   padding + 中身の実寸で高さが出る（PC 16+60+16=92 / SP 16+28+8+22+16=90）。 */
.site-footer {
  background: var(--c-white);
}

/* 165:460 HORIZONTAL / SPACE_BETWEEN / counter CENTER / pad 16 50 */
.site-footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.6rem 5rem;
}

/* 165:461 は header と同一 imageRef (2a70323b…) */
.site-footer__logo img {
  width: 21.4rem;
  height: 6rem;
  object-fit: cover;
}

/* 165:462 fs14 / w700 / lh25.2 / ls2.52 / #796a56。
   Figmaのグリフ右端は1315.47、箱の右端は1316。CSSは行末にもlsが付くので
   margin-right で相殺しないとグリフが2.52px内側に寄る。 */
.site-footer__copy {
  margin: 0 -0.252rem 0 0;
  color: #796a56;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 2.52rem;
  letter-spacing: 0.252rem;
  text-align: center;
  white-space: nowrap;
}

/* --------------------------------------------------------------- SP 375 */
@media (max-width: 767px) {
  /* 165:805 VERTICAL / gap 8 / counter CENTER / pad 16 */
  .site-footer__inner {
    flex-direction: column;
    justify-content: flex-start;
    gap: 0.8rem;
    padding: 1.6rem;
  }

  /* 165:806 */
  .site-footer__logo img {
    width: 10rem;
    height: 2.8rem;
  }

  /* 165:807 fs12 / w700 / lh21.6 / ls0.6。Figmaのhug高はceil(21.6)=22なので
     明示高で合わせる（16+28+8+22+16=90） */
  .site-footer__copy {
    height: 2.2rem;
    margin-right: -0.06rem;
    font-size: 1.2rem;
    line-height: 2.16rem;
    letter-spacing: 0.06rem;
  }
}
